Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
packages
kernel
linux
Commits
086e5551
Commit
086e5551
authored
Jan 12, 2020
by
Lorenzo "Palinuro" Faletra
Browse files
Import Upstream version 5.4.8
parent
d2ab784c
Changes
624
Hide whitespace changes
Inline
Side-by-side
Documentation/devicetree/bindings/Makefile
View file @
086e5551
...
@@ -12,7 +12,6 @@ $(obj)/%.example.dts: $(src)/%.yaml FORCE
...
@@ -12,7 +12,6 @@ $(obj)/%.example.dts: $(src)/%.yaml FORCE
$(
call
if_changed,chk_binding
)
$(
call
if_changed,chk_binding
)
DT_TMP_SCHEMA
:=
processed-schema.yaml
DT_TMP_SCHEMA
:=
processed-schema.yaml
extra-y
+=
$(DT_TMP_SCHEMA)
quiet_cmd_mk_schema
=
SCHEMA
$@
quiet_cmd_mk_schema
=
SCHEMA
$@
cmd_mk_schema
=
$(DT_MK_SCHEMA)
$(DT_MK_SCHEMA_FLAGS)
-o
$@
$
(
real-prereqs
)
cmd_mk_schema
=
$(DT_MK_SCHEMA)
$(DT_MK_SCHEMA_FLAGS)
-o
$@
$
(
real-prereqs
)
...
@@ -26,8 +25,12 @@ DT_DOCS = $(shell \
...
@@ -26,8 +25,12 @@ DT_DOCS = $(shell \
DT_SCHEMA_FILES
?=
$(
addprefix
$(src)
/,
$(DT_DOCS)
)
DT_SCHEMA_FILES
?=
$(
addprefix
$(src)
/,
$(DT_DOCS)
)
ifeq
($(CHECK_DTBS),)
extra-y
+=
$(
patsubst
$(src)
/%.yaml,%.example.dts,
$(DT_SCHEMA_FILES)
)
extra-y
+=
$(
patsubst
$(src)
/%.yaml,%.example.dts,
$(DT_SCHEMA_FILES)
)
extra-y
+=
$(
patsubst
$(src)
/%.yaml,%.example.dt.yaml,
$(DT_SCHEMA_FILES)
)
extra-y
+=
$(
patsubst
$(src)
/%.yaml,%.example.dt.yaml,
$(DT_SCHEMA_FILES)
)
endif
$(obj)/$(DT_TMP_SCHEMA)
:
$(DT_SCHEMA_FILES) FORCE
$(obj)/$(DT_TMP_SCHEMA)
:
$(DT_SCHEMA_FILES) FORCE
$(
call
if_changed,mk_schema
)
$(
call
if_changed,mk_schema
)
extra-y
+=
$(DT_TMP_SCHEMA)
Documentation/devicetree/writing-schema.rst
View file @
086e5551
...
@@ -130,11 +130,13 @@ binding schema. All of the DT binding documents can be validated using the
...
@@ -130,11 +130,13 @@ binding schema. All of the DT binding documents can be validated using the
make dt_binding_check
make dt_binding_check
In order to perform validation of DT source files, use the `dtbs_check` target::
In order to perform validation of DT source files, use the
`
`dtbs_check`
`
target::
make dtbs_check
make dtbs_check
This will first run the `dt_binding_check` which generates the processed schema.
Note that ``dtbs_check`` will skip any binding schema files with errors. It is
necessary to use ``dt_binding_check`` to get all the validation errors in the
binding schema files.
It is also possible to run checks with a single schema file by setting the
It is also possible to run checks with a single schema file by setting the
``DT_SCHEMA_FILES`` variable to a specific schema file.
``DT_SCHEMA_FILES`` variable to a specific schema file.
...
...
Makefile
View file @
086e5551
# SPDX-License-Identifier: GPL-2.0
# SPDX-License-Identifier: GPL-2.0
VERSION
=
5
VERSION
=
5
PATCHLEVEL
=
4
PATCHLEVEL
=
4
SUBLEVEL
=
6
SUBLEVEL
=
8
EXTRAVERSION
=
EXTRAVERSION
=
NAME
=
Kleptomaniac Octopus
NAME
=
Kleptomaniac Octopus
...
...
arch/arm/boot/compressed/libfdt_env.h
View file @
086e5551
...
@@ -2,11 +2,13 @@
...
@@ -2,11 +2,13 @@
#ifndef _ARM_LIBFDT_ENV_H
#ifndef _ARM_LIBFDT_ENV_H
#define _ARM_LIBFDT_ENV_H
#define _ARM_LIBFDT_ENV_H
#include
<linux/limits.h>
#include
<linux/types.h>
#include
<linux/types.h>
#include
<linux/string.h>
#include
<linux/string.h>
#include
<asm/byteorder.h>
#include
<asm/byteorder.h>
#define INT_MAX ((int)(~0U>>1))
#define INT32_MAX S32_MAX
#define UINT32_MAX U32_MAX
typedef
__be16
fdt16_t
;
typedef
__be16
fdt16_t
;
typedef
__be32
fdt32_t
;
typedef
__be32
fdt32_t
;
...
...
arch/arm/boot/dts/motorola-cpcap-mapphone.dtsi
View file @
086e5551
...
@@ -160,12 +160,12 @@ vcam: VCAM {
...
@@ -160,12 +160,12 @@ vcam: VCAM {
regulator-enable-ramp-delay = <1000>;
regulator-enable-ramp-delay = <1000>;
};
};
/* Used by DSS */
/* Used by DSS
and is the "zerov_regulator" trigger for SoC off mode
*/
vcsi: VCSI {
vcsi: VCSI {
regulator-min-microvolt = <1800000>;
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
regulator-enable-ramp-delay = <1000>;
regulator-enable-ramp-delay = <1000>;
regulator-
boot
-on;
regulator-
always
-on;
};
};
vdac: VDAC {
vdac: VDAC {
...
...
arch/arm/mm/dma-mapping-nommu.c
View file @
086e5551
...
@@ -35,7 +35,7 @@ static void *arm_nommu_dma_alloc(struct device *dev, size_t size,
...
@@ -35,7 +35,7 @@ static void *arm_nommu_dma_alloc(struct device *dev, size_t size,
unsigned
long
attrs
)
unsigned
long
attrs
)
{
{
void
*
ret
=
dma_alloc_from_global_coherent
(
size
,
dma_handle
);
void
*
ret
=
dma_alloc_from_global_coherent
(
dev
,
size
,
dma_handle
);
/*
/*
* dma_alloc_from_global_coherent() may fail because:
* dma_alloc_from_global_coherent() may fail because:
...
...
arch/arm/mm/proc-v7-bugs.c
View file @
086e5551
...
@@ -65,6 +65,9 @@ static void cpu_v7_spectre_init(void)
...
@@ -65,6 +65,9 @@ static void cpu_v7_spectre_init(void)
break
;
break
;
#ifdef CONFIG_ARM_PSCI
#ifdef CONFIG_ARM_PSCI
case
ARM_CPU_PART_BRAHMA_B53
:
/* Requires no workaround */
break
;
default:
default:
/* Other ARM CPUs require no workaround */
/* Other ARM CPUs require no workaround */
if
(
read_cpuid_implementor
()
==
ARM_CPU_IMP_ARM
)
if
(
read_cpuid_implementor
()
==
ARM_CPU_IMP_ARM
)
...
...
arch/arm64/kernel/psci.c
View file @
086e5551
...
@@ -81,7 +81,8 @@ static void cpu_psci_cpu_die(unsigned int cpu)
...
@@ -81,7 +81,8 @@ static void cpu_psci_cpu_die(unsigned int cpu)
static
int
cpu_psci_cpu_kill
(
unsigned
int
cpu
)
static
int
cpu_psci_cpu_kill
(
unsigned
int
cpu
)
{
{
int
err
,
i
;
int
err
;
unsigned
long
start
,
end
;
if
(
!
psci_ops
.
affinity_info
)
if
(
!
psci_ops
.
affinity_info
)
return
0
;
return
0
;
...
@@ -91,16 +92,18 @@ static int cpu_psci_cpu_kill(unsigned int cpu)
...
@@ -91,16 +92,18 @@ static int cpu_psci_cpu_kill(unsigned int cpu)
* while it is dying. So, try again a few times.
* while it is dying. So, try again a few times.
*/
*/
for
(
i
=
0
;
i
<
10
;
i
++
)
{
start
=
jiffies
;
end
=
start
+
msecs_to_jiffies
(
100
);
do
{
err
=
psci_ops
.
affinity_info
(
cpu_logical_map
(
cpu
),
0
);
err
=
psci_ops
.
affinity_info
(
cpu_logical_map
(
cpu
),
0
);
if
(
err
==
PSCI_0_2_AFFINITY_LEVEL_OFF
)
{
if
(
err
==
PSCI_0_2_AFFINITY_LEVEL_OFF
)
{
pr_info
(
"CPU%d killed.
\n
"
,
cpu
);
pr_info
(
"CPU%d killed (polled %d ms)
\n
"
,
cpu
,
jiffies_to_msecs
(
jiffies
-
start
));
return
0
;
return
0
;
}
}
msleep
(
10
);
usleep_range
(
100
,
1000
);
pr_info
(
"Retrying again to check for CPU kill
\n
"
);
}
while
(
time_before
(
jiffies
,
end
));
}
pr_warn
(
"CPU%d may not have shut down cleanly (AFFINITY_INFO reports %d)
\n
"
,
pr_warn
(
"CPU%d may not have shut down cleanly (AFFINITY_INFO reports %d)
\n
"
,
cpu
,
err
);
cpu
,
err
);
...
...
arch/arm64/kvm/sys_regs.c
View file @
086e5551
...
@@ -2360,8 +2360,11 @@ static const struct sys_reg_desc *index_to_sys_reg_desc(struct kvm_vcpu *vcpu,
...
@@ -2360,8 +2360,11 @@ static const struct sys_reg_desc *index_to_sys_reg_desc(struct kvm_vcpu *vcpu,
if
((
id
&
KVM_REG_ARM_COPROC_MASK
)
!=
KVM_REG_ARM64_SYSREG
)
if
((
id
&
KVM_REG_ARM_COPROC_MASK
)
!=
KVM_REG_ARM64_SYSREG
)
return
NULL
;
return
NULL
;
if
(
!
index_to_params
(
id
,
&
params
))
return
NULL
;
table
=
get_target_table
(
vcpu
->
arch
.
target
,
true
,
&
num
);
table
=
get_target_table
(
vcpu
->
arch
.
target
,
true
,
&
num
);
r
=
find_reg
_by_id
(
id
,
&
params
,
table
,
num
);
r
=
find_reg
(
&
params
,
table
,
num
);
if
(
!
r
)
if
(
!
r
)
r
=
find_reg
(
&
params
,
sys_reg_descs
,
ARRAY_SIZE
(
sys_reg_descs
));
r
=
find_reg
(
&
params
,
sys_reg_descs
,
ARRAY_SIZE
(
sys_reg_descs
));
...
...
arch/mips/include/asm/pgtable-64.h
View file @
086e5551
...
@@ -18,10 +18,12 @@
...
@@ -18,10 +18,12 @@
#include
<asm/fixmap.h>
#include
<asm/fixmap.h>
#define __ARCH_USE_5LEVEL_HACK
#define __ARCH_USE_5LEVEL_HACK
#if
defined(CONFIG_PAGE_SIZE_64KB) && !defined(CONFIG_MIPS_VA_BITS_48)
#if
CONFIG_PGTABLE_LEVELS == 2
#include
<asm-generic/pgtable-nopmd.h>
#include
<asm-generic/pgtable-nopmd.h>
#elif
!(defined(CONFIG_PAGE_SIZE_4KB) && defined(CONFIG_MIPS_VA_BITS_48))
#elif
CONFIG_PGTABLE_LEVELS == 3
#include
<asm-generic/pgtable-nopud.h>
#include
<asm-generic/pgtable-nopud.h>
#else
#include
<asm-generic/5level-fixup.h>
#endif
#endif
/*
/*
...
@@ -216,6 +218,9 @@ static inline unsigned long pgd_page_vaddr(pgd_t pgd)
...
@@ -216,6 +218,9 @@ static inline unsigned long pgd_page_vaddr(pgd_t pgd)
return
pgd_val
(
pgd
);
return
pgd_val
(
pgd
);
}
}
#define pgd_phys(pgd) virt_to_phys((void *)pgd_val(pgd))
#define pgd_page(pgd) (pfn_to_page(pgd_phys(pgd) >> PAGE_SHIFT))
static
inline
pud_t
*
pud_offset
(
pgd_t
*
pgd
,
unsigned
long
address
)
static
inline
pud_t
*
pud_offset
(
pgd_t
*
pgd
,
unsigned
long
address
)
{
{
return
(
pud_t
*
)
pgd_page_vaddr
(
*
pgd
)
+
pud_index
(
address
);
return
(
pud_t
*
)
pgd_page_vaddr
(
*
pgd
)
+
pud_index
(
address
);
...
...
arch/mips/ralink/Kconfig
View file @
086e5551
...
@@ -51,6 +51,7 @@ choice
...
@@ -51,6 +51,7 @@ choice
select MIPS_GIC
select MIPS_GIC
select COMMON_CLK
select COMMON_CLK
select CLKSRC_MIPS_GIC
select CLKSRC_MIPS_GIC
select HAVE_PCI if PCI_MT7621
endchoice
endchoice
choice
choice
...
...
arch/powerpc/Makefile
View file @
086e5551
...
@@ -91,11 +91,13 @@ MULTIPLEWORD := -mmultiple
...
@@ -91,11 +91,13 @@ MULTIPLEWORD := -mmultiple
endif
endif
ifdef
CONFIG_PPC64
ifdef
CONFIG_PPC64
ifndef
CONFIG_CC_IS_CLANG
cflags-$(CONFIG_CPU_BIG_ENDIAN)
+=
$(
call
cc-option,-mabi
=
elfv1
)
cflags-$(CONFIG_CPU_BIG_ENDIAN)
+=
$(
call
cc-option,-mabi
=
elfv1
)
cflags-$(CONFIG_CPU_BIG_ENDIAN)
+=
$(
call
cc-option,-mcall-aixdesc
)
cflags-$(CONFIG_CPU_BIG_ENDIAN)
+=
$(
call
cc-option,-mcall-aixdesc
)
aflags-$(CONFIG_CPU_BIG_ENDIAN)
+=
$(
call
cc-option,-mabi
=
elfv1
)
aflags-$(CONFIG_CPU_BIG_ENDIAN)
+=
$(
call
cc-option,-mabi
=
elfv1
)
aflags-$(CONFIG_CPU_LITTLE_ENDIAN)
+=
-mabi
=
elfv2
aflags-$(CONFIG_CPU_LITTLE_ENDIAN)
+=
-mabi
=
elfv2
endif
endif
endif
ifndef
CONFIG_CC_IS_CLANG
ifndef
CONFIG_CC_IS_CLANG
cflags-$(CONFIG_CPU_LITTLE_ENDIAN)
+=
-mno-strict-align
cflags-$(CONFIG_CPU_LITTLE_ENDIAN)
+=
-mno-strict-align
...
@@ -141,6 +143,7 @@ endif
...
@@ -141,6 +143,7 @@ endif
endif
endif
CFLAGS-$(CONFIG_PPC64)
:=
$(
call
cc-option,-mtraceback
=
no
)
CFLAGS-$(CONFIG_PPC64)
:=
$(
call
cc-option,-mtraceback
=
no
)
ifndef
CONFIG_CC_IS_CLANG
ifdef
CONFIG_CPU_LITTLE_ENDIAN
ifdef
CONFIG_CPU_LITTLE_ENDIAN
CFLAGS-$(CONFIG_PPC64)
+=
$(
call
cc-option,-mabi
=
elfv2,
$(
call
cc-option,-mcall-aixdesc
))
CFLAGS-$(CONFIG_PPC64)
+=
$(
call
cc-option,-mabi
=
elfv2,
$(
call
cc-option,-mcall-aixdesc
))
AFLAGS-$(CONFIG_PPC64)
+=
$(
call
cc-option,-mabi
=
elfv2
)
AFLAGS-$(CONFIG_PPC64)
+=
$(
call
cc-option,-mabi
=
elfv2
)
...
@@ -149,6 +152,7 @@ CFLAGS-$(CONFIG_PPC64) += $(call cc-option,-mabi=elfv1)
...
@@ -149,6 +152,7 @@ CFLAGS-$(CONFIG_PPC64) += $(call cc-option,-mabi=elfv1)
CFLAGS-$(CONFIG_PPC64)
+=
$(
call
cc-option,-mcall-aixdesc
)
CFLAGS-$(CONFIG_PPC64)
+=
$(
call
cc-option,-mcall-aixdesc
)
AFLAGS-$(CONFIG_PPC64)
+=
$(
call
cc-option,-mabi
=
elfv1
)
AFLAGS-$(CONFIG_PPC64)
+=
$(
call
cc-option,-mabi
=
elfv1
)
endif
endif
endif
CFLAGS-$(CONFIG_PPC64)
+=
$(
call
cc-option,-mcmodel
=
medium,
$(
call
cc-option,-mminimal-toc
))
CFLAGS-$(CONFIG_PPC64)
+=
$(
call
cc-option,-mcmodel
=
medium,
$(
call
cc-option,-mminimal-toc
))
CFLAGS-$(CONFIG_PPC64)
+=
$(
call
cc-option,-mno-pointers-to-nested-functions
)
CFLAGS-$(CONFIG_PPC64)
+=
$(
call
cc-option,-mno-pointers-to-nested-functions
)
...
...
arch/powerpc/boot/libfdt_env.h
View file @
086e5551
...
@@ -6,6 +6,8 @@
...
@@ -6,6 +6,8 @@
#include
<string.h>
#include
<string.h>
#define INT_MAX ((int)(~0U>>1))
#define INT_MAX ((int)(~0U>>1))
#define UINT32_MAX ((u32)~0U)
#define INT32_MAX ((s32)(UINT32_MAX >> 1))
#include
"of.h"
#include
"of.h"
...
...
arch/powerpc/include/asm/fixmap.h
View file @
086e5551
...
@@ -77,7 +77,12 @@ enum fixed_addresses {
...
@@ -77,7 +77,12 @@ enum fixed_addresses {
static
inline
void
__set_fixmap
(
enum
fixed_addresses
idx
,
static
inline
void
__set_fixmap
(
enum
fixed_addresses
idx
,
phys_addr_t
phys
,
pgprot_t
flags
)
phys_addr_t
phys
,
pgprot_t
flags
)
{
{
map_kernel_page
(
fix_to_virt
(
idx
),
phys
,
flags
);
if
(
__builtin_constant_p
(
idx
))
BUILD_BUG_ON
(
idx
>=
__end_of_fixed_addresses
);
else
if
(
WARN_ON
(
idx
>=
__end_of_fixed_addresses
))
return
;
map_kernel_page
(
__fix_to_virt
(
idx
),
phys
,
flags
);
}
}
#endif
/* !__ASSEMBLY__ */
#endif
/* !__ASSEMBLY__ */
...
...
arch/powerpc/include/asm/uaccess.h
View file @
086e5551
...
@@ -401,7 +401,7 @@ copy_to_user_mcsafe(void __user *to, const void *from, unsigned long n)
...
@@ -401,7 +401,7 @@ copy_to_user_mcsafe(void __user *to, const void *from, unsigned long n)
return
n
;
return
n
;
}
}
extern
unsigned
long
__clear_user
(
void
__user
*
addr
,
unsigned
long
size
);
unsigned
long
__
arch_
clear_user
(
void
__user
*
addr
,
unsigned
long
size
);
static
inline
unsigned
long
clear_user
(
void
__user
*
addr
,
unsigned
long
size
)
static
inline
unsigned
long
clear_user
(
void
__user
*
addr
,
unsigned
long
size
)
{
{
...
@@ -409,12 +409,17 @@ static inline unsigned long clear_user(void __user *addr, unsigned long size)
...
@@ -409,12 +409,17 @@ static inline unsigned long clear_user(void __user *addr, unsigned long size)
might_fault
();
might_fault
();
if
(
likely
(
access_ok
(
addr
,
size
)))
{
if
(
likely
(
access_ok
(
addr
,
size
)))
{
allow_write_to_user
(
addr
,
size
);
allow_write_to_user
(
addr
,
size
);
ret
=
__clear_user
(
addr
,
size
);
ret
=
__
arch_
clear_user
(
addr
,
size
);
prevent_write_to_user
(
addr
,
size
);
prevent_write_to_user
(
addr
,
size
);
}
}
return
ret
;
return
ret
;
}
}
static
inline
unsigned
long
__clear_user
(
void
__user
*
addr
,
unsigned
long
size
)
{
return
clear_user
(
addr
,
size
);
}
extern
long
strncpy_from_user
(
char
*
dst
,
const
char
__user
*
src
,
long
count
);
extern
long
strncpy_from_user
(
char
*
dst
,
const
char
__user
*
src
,
long
count
);
extern
__must_check
long
strnlen_user
(
const
char
__user
*
str
,
long
n
);
extern
__must_check
long
strnlen_user
(
const
char
__user
*
str
,
long
n
);
...
...
arch/powerpc/kernel/eeh_driver.c
View file @
086e5551
...
@@ -897,12 +897,12 @@ void eeh_handle_normal_event(struct eeh_pe *pe)
...
@@ -897,12 +897,12 @@ void eeh_handle_normal_event(struct eeh_pe *pe)
/* Log the event */
/* Log the event */
if
(
pe
->
type
&
EEH_PE_PHB
)
{
if
(
pe
->
type
&
EEH_PE_PHB
)
{
pr_err
(
"EEH:
PHB#%x failure detected
, location: %s
\n
"
,
pr_err
(
"EEH:
Recovering PHB#%x
, location: %s
\n
"
,
pe
->
phb
->
global_number
,
eeh_pe_loc_get
(
pe
));
pe
->
phb
->
global_number
,
eeh_pe_loc_get
(
pe
));
}
else
{
}
else
{
struct
eeh_pe
*
phb_pe
=
eeh_phb_pe_get
(
pe
->
phb
);
struct
eeh_pe
*
phb_pe
=
eeh_phb_pe_get
(
pe
->
phb
);
pr_err
(
"EEH:
Frozen
PHB#%x-PE#%x
detected
\n
"
,
pr_err
(
"EEH:
Recovering
PHB#%x-PE#%x
\n
"
,
pe
->
phb
->
global_number
,
pe
->
addr
);
pe
->
phb
->
global_number
,
pe
->
addr
);
pr_err
(
"EEH: PE location: %s, PHB location: %s
\n
"
,
pr_err
(
"EEH: PE location: %s, PHB location: %s
\n
"
,
eeh_pe_loc_get
(
pe
),
eeh_pe_loc_get
(
phb_pe
));
eeh_pe_loc_get
(
pe
),
eeh_pe_loc_get
(
phb_pe
));
...
...
arch/powerpc/kernel/irq.c
View file @
086e5551
...
@@ -619,8 +619,6 @@ void __do_irq(struct pt_regs *regs)
...
@@ -619,8 +619,6 @@ void __do_irq(struct pt_regs *regs)
trace_irq_entry
(
regs
);
trace_irq_entry
(
regs
);
check_stack_overflow
();
/*
/*
* Query the platform PIC for the interrupt & ack it.
* Query the platform PIC for the interrupt & ack it.
*
*
...
@@ -652,6 +650,8 @@ void do_IRQ(struct pt_regs *regs)
...
@@ -652,6 +650,8 @@ void do_IRQ(struct pt_regs *regs)
irqsp
=
hardirq_ctx
[
raw_smp_processor_id
()];
irqsp
=
hardirq_ctx
[
raw_smp_processor_id
()];
sirqsp
=
softirq_ctx
[
raw_smp_processor_id
()];
sirqsp
=
softirq_ctx
[
raw_smp_processor_id
()];
check_stack_overflow
();
/* Already there ? */
/* Already there ? */
if
(
unlikely
(
cursp
==
irqsp
||
cursp
==
sirqsp
))
{
if
(
unlikely
(
cursp
==
irqsp
||
cursp
==
sirqsp
))
{
__do_irq
(
regs
);
__do_irq
(
regs
);
...
...
arch/powerpc/kernel/security.c
View file @
086e5551
...
@@ -142,32 +142,33 @@ ssize_t cpu_show_meltdown(struct device *dev, struct device_attribute *attr, cha
...
@@ -142,32 +142,33 @@ ssize_t cpu_show_meltdown(struct device *dev, struct device_attribute *attr, cha
thread_priv
=
security_ftr_enabled
(
SEC_FTR_L1D_THREAD_PRIV
);
thread_priv
=
security_ftr_enabled
(
SEC_FTR_L1D_THREAD_PRIV
);
if
(
rfi_flush
||
thread_priv
)
{
if
(
rfi_flush
)
{
struct
seq_buf
s
;
struct
seq_buf
s
;
seq_buf_init
(
&
s
,
buf
,
PAGE_SIZE
-
1
);
seq_buf_init
(
&
s
,
buf
,
PAGE_SIZE
-
1
);
seq_buf_printf
(
&
s
,
"Mitigation: "
);
seq_buf_printf
(
&
s
,
"Mitigation: RFI Flush"
);
if
(
rfi_flush
)
seq_buf_printf
(
&
s
,
"RFI Flush"
);
if
(
rfi_flush
&&
thread_priv
)
seq_buf_printf
(
&
s
,
", "
);
if
(
thread_priv
)
if
(
thread_priv
)
seq_buf_printf
(
&
s
,
"L1D private per thread"
);
seq_buf_printf
(
&
s
,
"
,
L1D private per thread"
);
seq_buf_printf
(
&
s
,
"
\n
"
);
seq_buf_printf
(
&
s
,
"
\n
"
);
return
s
.
len
;
return
s
.
len
;
}
}
if
(
thread_priv
)
return
sprintf
(
buf
,
"Vulnerable: L1D private per thread
\n
"
);
if
(
!
security_ftr_enabled
(
SEC_FTR_L1D_FLUSH_HV
)
&&
if
(
!
security_ftr_enabled
(
SEC_FTR_L1D_FLUSH_HV
)
&&
!
security_ftr_enabled
(
SEC_FTR_L1D_FLUSH_PR
))
!
security_ftr_enabled
(
SEC_FTR_L1D_FLUSH_PR
))
return
sprintf
(
buf
,
"Not affected
\n
"
);
return
sprintf
(
buf
,
"Not affected
\n
"
);
return
sprintf
(
buf
,
"Vulnerable
\n
"
);
return
sprintf
(
buf
,
"Vulnerable
\n
"
);
}
}
ssize_t
cpu_show_l1tf
(
struct
device
*
dev
,
struct
device_attribute
*
attr
,
char
*
buf
)
{
return
cpu_show_meltdown
(
dev
,
attr
,
buf
);
}
#endif
#endif
ssize_t
cpu_show_spectre_v1
(
struct
device
*
dev
,
struct
device_attribute
*
attr
,
char
*
buf
)
ssize_t
cpu_show_spectre_v1
(
struct
device
*
dev
,
struct
device_attribute
*
attr
,
char
*
buf
)
...
...
arch/powerpc/kernel/time.c
View file @
086e5551
...
@@ -232,7 +232,7 @@ static u64 scan_dispatch_log(u64 stop_tb)
...
@@ -232,7 +232,7 @@ static u64 scan_dispatch_log(u64 stop_tb)
* Accumulate stolen time by scanning the dispatch trace log.
* Accumulate stolen time by scanning the dispatch trace log.
* Called on entry from user mode.
* Called on entry from user mode.
*/
*/
void
accumulate_stolen_time
(
void
)
void
notrace
accumulate_stolen_time
(
void
)
{
{
u64
sst
,
ust
;
u64
sst
,
ust
;
unsigned
long
save_irq_soft_mask
=
irq_soft_mask_return
();
unsigned
long
save_irq_soft_mask
=
irq_soft_mask_return
();
...
...
arch/powerpc/kernel/traps.c
View file @
086e5551
...
@@ -250,15 +250,22 @@ static void oops_end(unsigned long flags, struct pt_regs *regs,
...
@@ -250,15 +250,22 @@ static void oops_end(unsigned long flags, struct pt_regs *regs,
}
}
NOKPROBE_SYMBOL
(
oops_end
);
NOKPROBE_SYMBOL
(
oops_end
);
static
char
*
get_mmu_str
(
void
)
{
if
(
early_radix_enabled
())
return
" MMU=Radix"
;
if
(
early_mmu_has_feature
(
MMU_FTR_HPTE_TABLE
))
return
" MMU=Hash"
;
return
""
;
}
static
int
__die
(
const
char
*
str
,
struct
pt_regs
*
regs
,
long
err
)
static
int
__die
(
const
char
*
str
,
struct
pt_regs
*
regs
,
long
err
)
{
{
printk
(
"Oops: %s, sig: %ld [#%d]
\n
"
,
str
,
err
,
++
die_counter
);
printk
(
"Oops: %s, sig: %ld [#%d]
\n
"
,
str
,
err
,
++
die_counter
);
printk
(
"%s PAGE_SIZE=%luK%s%s%s%s%s%s
%s
%s
\n
"
,
printk
(
"%s PAGE_SIZE=%luK%s%s%s%s%s%s %s
\n
"
,
IS_ENABLED
(
CONFIG_CPU_LITTLE_ENDIAN
)
?
"LE"
:
"BE"
,
IS_ENABLED
(
CONFIG_CPU_LITTLE_ENDIAN
)
?
"LE"
:
"BE"
,
PAGE_SIZE
/
1024
,
PAGE_SIZE
/
1024
,
get_mmu_str
(),
early_radix_enabled
()
?
" MMU=Radix"
:
""
,
early_mmu_has_feature
(
MMU_FTR_HPTE_TABLE
)
?
" MMU=Hash"
:
""
,
IS_ENABLED
(
CONFIG_PREEMPT
)
?
" PREEMPT"
:
""
,
IS_ENABLED
(
CONFIG_PREEMPT
)
?
" PREEMPT"
:
""
,
IS_ENABLED
(
CONFIG_SMP
)
?
" SMP"
:
""
,
IS_ENABLED
(
CONFIG_SMP
)
?
" SMP"
:
""
,
IS_ENABLED
(
CONFIG_SMP
)
?
(
" NR_CPUS="
__stringify
(
NR_CPUS
))
:
""
,
IS_ENABLED
(
CONFIG_SMP
)
?
(
" NR_CPUS="
__stringify
(
NR_CPUS
))
:
""
,
...
...
Prev
1
2
3
4
5
…
32
Next
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment