Commit 667b6249 authored by Linus Torvalds's avatar Linus Torvalds

Merge tag 'x86-urgent-2020-05-24' of git://

Pull x86 fixes from Thomas Gleixner:
 "Two fixes for x86:

   - Unbreak stack dumps for inactive tasks by interpreting the special
     first frame left by __switch_to_asm() correctly.

     The recent change not to skip the first frame so ORC and frame
     unwinder behave in the same way caused all entries to be
     unreliable, i.e. prepended with '?'.

   - Use cpumask_available() instead of an implicit NULL check of a
     cpumask_var_t in mmio trace to prevent a Clang build warning"

* tag 'x86-urgent-2020-05-24' of git://
  x86/unwind/orc: Fix unwind_get_return_address_ptr() for inactive tasks
  x86/mmiotrace: Use cpumask_available() for cpumask_var_t variables
parents 9e61d12b 187b96db
......@@ -320,12 +320,19 @@ EXPORT_SYMBOL_GPL(unwind_get_return_address);
unsigned long *unwind_get_return_address_ptr(struct unwind_state *state)
struct task_struct *task = state->task;
if (unwind_done(state))
return NULL;
if (state->regs)
return &state->regs->ip;
if (task != current && state->sp == task->thread.sp) {
struct inactive_task_frame *frame = (void *)task->thread.sp;
return &frame->ret_addr;
if (state->sp)
return (unsigned long *)state->sp - 1;
......@@ -372,7 +372,7 @@ static void enter_uniprocessor(void)
int cpu;
int err;
if (downed_cpus == NULL &&
if (!cpumask_available(downed_cpus) &&
!alloc_cpumask_var(&downed_cpus, GFP_KERNEL)) {
pr_notice("Failed to allocate mask\n");
goto out;
......@@ -402,7 +402,7 @@ static void leave_uniprocessor(void)
int cpu;
int err;
if (downed_cpus == NULL || cpumask_weight(downed_cpus) == 0)
if (!cpumask_available(downed_cpus) || cpumask_weight(downed_cpus) == 0)
pr_notice("Re-enabling CPUs...\n");
for_each_cpu(cpu, downed_cpus) {
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment