Re: [PATCH] x86 microcode: revert some work_on_cpu

From: Rusty Russell
Date: Wed Apr 15 2009 - 00:44:24 EST


On Wed, 15 Apr 2009 03:55:42 am Hugh Dickins wrote:
> Revert part of af5c820a3169e81af869c113e18ec7588836cd50
> x86: cpumask: use work_on_cpu in arch/x86/kernel/microcode_core.c
>
> That change is causing only one Intel CPU's microcode to be updated e.g.
> microcode: CPU3 updated from revision 0x9 to 0x17, date = 2005-04-22
> where before it announced that also for CPU0 and CPU1 and CPU2.
>
> We cannot use work_on_cpu() in the CONFIG_MICROCODE_OLD_INTERFACE code,
> because Intel's request_microcode_user() involves a copy_from_user() from
> /sbin/microcode_ctl, which therefore needs to be on that CPU at the time.

Erk. Ack the reversion, but this needs to be fixed properly.

We can't just mug a process's affinity. I'll look at this code again and
see what I can do.

> May be not the only problem with that commit: I've seen lockdep
> warnings from s2ram when suspending; but I think there have been other
> work_on_cpu() lockdep issues, and you may already be on to them?

Yep.

Thanks,
Rusty.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/