arm64 fixes for -rc2
- Fix build when KASLR is enabled but CONFIG_ARCH_RANDOM is not set - Fix context-switching of SSBS state on systems that implement it - Fix spinlock compiler warning introduced during the merge window - Fix incorrect header inclusion (linux/clk-provider.h) - Use SYSCTL_{ZERO,ONE} instead of rolling our own static variables - Don't scream if optional SMMUv3 PMU irq is missing - Remove some unused function prototypes -----BEGIN PGP SIGNATURE----- iQFEBAABCgAuFiEEPxTL6PPUbjXGY88ct6xw3ITBYzQFAl5FWgUQHHdpbGxAa2Vy bmVsLm9yZwAKCRC3rHDchMFjNHN3CACHwCJyfwTCo3A8+rKpMK29FE8CciheqPbz hsPuS7UIYYv8yXLeOGD9d2Jplg2gqx/kWVLh4rm6KvPbaMvSJW++HPbiMy1dMWrw xUPofQjvXajv2iOzXLonVRXF+gtLbHIYLpsUIpkg1IFZNnjRPzUW0wAqyMBwHhB7 WKoWRs+6wyGbfC1e9ZDZ5nmiyixoH3j5AZs6LN1hdkxGudc6M7FxutSgarcncxNH k5QGKo7cdAaNduIpHUE6VCDxu+5FwHADPvY7x/aq5tyJ5vxn0CnoXL9WCofMfZ3t X0U3VIwtGTgOrbTe29WYpy/SQtau63Yq/n96Tw7fXLvDmNSZQ/RT =mOtY -----END PGP SIGNATURE----- Merge tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux Pull arm64 fixes from Will Deacon: "Summary below, but it's all reasonably straightforward. There are some more fixes on the horizon, but nothing disastrous yet. Summary: - Fix build when KASLR is enabled but CONFIG_ARCH_RANDOM is not set - Fix context-switching of SSBS state on systems that implement it - Fix spinlock compiler warning introduced during the merge window - Fix incorrect header inclusion (linux/clk-provider.h) - Use SYSCTL_{ZERO,ONE} instead of rolling our own static variables - Don't scream if optional SMMUv3 PMU irq is missing - Remove some unused function prototypes" * tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux: arm64: time: Replace <linux/clk-provider.h> by <linux/of_clk.h> arm64: Fix CONFIG_ARCH_RANDOM=n build perf/smmuv3: Use platform_get_irq_optional() for wired interrupt arm64/spinlock: fix a -Wunused-function warning arm64: ssbs: Fix context-switch when SSBS is present on all CPUs arm64: use shared sysctl constants arm64: Drop do_el0_ia_bp_hardening() & do_sp_pc_abort() declarations
This commit is contained in:
Коммит
b19e8c6847
|
@ -33,7 +33,6 @@ static inline u32 disr_to_esr(u64 disr)
|
|||
|
||||
asmlinkage void enter_from_user_mode(void);
|
||||
void do_mem_abort(unsigned long addr, unsigned int esr, struct pt_regs *regs);
|
||||
void do_sp_pc_abort(unsigned long addr, unsigned int esr, struct pt_regs *regs);
|
||||
void do_undefinstr(struct pt_regs *regs);
|
||||
asmlinkage void bad_mode(struct pt_regs *regs, int reason, unsigned int esr);
|
||||
void do_debug_exception(unsigned long addr_if_watchpoint, unsigned int esr,
|
||||
|
@ -47,7 +46,4 @@ void bad_el0_sync(struct pt_regs *regs, int reason, unsigned int esr);
|
|||
void do_cp15instr(unsigned int esr, struct pt_regs *regs);
|
||||
void do_el0_svc(struct pt_regs *regs);
|
||||
void do_el0_svc_compat(struct pt_regs *regs);
|
||||
void do_el0_ia_bp_hardening(unsigned long addr, unsigned int esr,
|
||||
struct pt_regs *regs);
|
||||
|
||||
#endif /* __ASM_EXCEPTION_H */
|
||||
|
|
|
@ -18,6 +18,10 @@
|
|||
* See:
|
||||
* https://lore.kernel.org/lkml/20200110100612.GC2827@hirez.programming.kicks-ass.net
|
||||
*/
|
||||
#define vcpu_is_preempted(cpu) false
|
||||
#define vcpu_is_preempted vcpu_is_preempted
|
||||
static inline bool vcpu_is_preempted(int cpu)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
#endif /* __ASM_SPINLOCK_H */
|
||||
|
|
|
@ -11,6 +11,7 @@
|
|||
#include <linux/sched.h>
|
||||
#include <linux/types.h>
|
||||
|
||||
#include <asm/archrandom.h>
|
||||
#include <asm/cacheflush.h>
|
||||
#include <asm/fixmap.h>
|
||||
#include <asm/kernel-pgtable.h>
|
||||
|
|
|
@ -466,6 +466,13 @@ static void ssbs_thread_switch(struct task_struct *next)
|
|||
if (unlikely(next->flags & PF_KTHREAD))
|
||||
return;
|
||||
|
||||
/*
|
||||
* If all CPUs implement the SSBS extension, then we just need to
|
||||
* context-switch the PSTATE field.
|
||||
*/
|
||||
if (cpu_have_feature(cpu_feature(SSBS)))
|
||||
return;
|
||||
|
||||
/* If the mitigation is enabled, then we leave SSBS clear. */
|
||||
if ((arm64_get_ssbd_state() == ARM64_SSBD_FORCE_ENABLE) ||
|
||||
test_tsk_thread_flag(next, TIF_SSBD))
|
||||
|
@ -608,8 +615,6 @@ long get_tagged_addr_ctrl(void)
|
|||
* only prevents the tagged address ABI enabling via prctl() and does not
|
||||
* disable it for tasks that already opted in to the relaxed ABI.
|
||||
*/
|
||||
static int zero;
|
||||
static int one = 1;
|
||||
|
||||
static struct ctl_table tagged_addr_sysctl_table[] = {
|
||||
{
|
||||
|
@ -618,8 +623,8 @@ static struct ctl_table tagged_addr_sysctl_table[] = {
|
|||
.data = &tagged_addr_disabled,
|
||||
.maxlen = sizeof(int),
|
||||
.proc_handler = proc_dointvec_minmax,
|
||||
.extra1 = &zero,
|
||||
.extra2 = &one,
|
||||
.extra1 = SYSCTL_ZERO,
|
||||
.extra2 = SYSCTL_ONE,
|
||||
},
|
||||
{ }
|
||||
};
|
||||
|
|
|
@ -23,7 +23,7 @@
|
|||
#include <linux/irq.h>
|
||||
#include <linux/delay.h>
|
||||
#include <linux/clocksource.h>
|
||||
#include <linux/clk-provider.h>
|
||||
#include <linux/of_clk.h>
|
||||
#include <linux/acpi.h>
|
||||
|
||||
#include <clocksource/arm_arch_timer.h>
|
||||
|
|
|
@ -771,7 +771,7 @@ static int smmu_pmu_probe(struct platform_device *pdev)
|
|||
smmu_pmu->reloc_base = smmu_pmu->reg_base;
|
||||
}
|
||||
|
||||
irq = platform_get_irq(pdev, 0);
|
||||
irq = platform_get_irq_optional(pdev, 0);
|
||||
if (irq > 0)
|
||||
smmu_pmu->irq = irq;
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче