linux/arch/x86/kernel
Ingo Molnar 50c668d678 Revert "cpumask: use work_on_cpu in acpi-cpufreq.c for drv_read and drv_write"
This reverts commit 7503bfbae8.

Dieter Ries reported bootup soft-hangs and bisected it back to
this commit, and reverting this commit gave him a working system.

The commit introduces work_on_cpu() use into the cpufreq code,
but that is subtly problematic from a lock hierarchy POV: the
hotplug-cpu lock is an highlevel lock that is taken before
lowlevel locks, and in this codepath we are called with the
policy lock taken.

Dieter did not have lockdep enabled so we dont have a nice stack
trace proof for this, but using work_on_cpu() in such a lowlevel
place certainly looks wrong, so we revert the patch.

work_on_cpu() needs to be reworked to be more generally usable.

Reported-by: Dieter Ries <clip2@gmx.de>
Tested-by: Dieter Ries <clip2@gmx.de>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
2009-01-12 19:24:23 +01:00
..
acpi Merge branch 'cpus4096-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2009-01-10 06:12:18 -08:00
cpu Revert "cpumask: use work_on_cpu in acpi-cpufreq.c for drv_read and drv_write" 2009-01-12 19:24:23 +01:00
.gitignore
Makefile Merge branch 'core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2008-12-30 16:10:19 -08:00
alternative.c x86: improve UP kernel when CPU-hotplug and SMP is enabled 2008-10-13 10:33:46 +02:00
amd_iommu.c AMD IOMMU: remove now unnecessary #ifdefs 2009-01-03 16:44:15 +01:00
amd_iommu_init.c Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/joro/linux-2.6-iommu 2009-01-03 12:03:52 -08:00
aperture_64.c aperture_64.c: clarify that too small aperture is valid reason for this code 2008-11-28 15:24:39 +01:00
apic.c x86: fix apic.c build error on latest git 2009-01-12 19:24:23 +01:00
apm_32.c x86: update Alan Cox's email addresses 2009-01-05 15:19:16 +01:00
asm-offsets.c
asm-offsets_32.c x86: signal: move sigframe.h to arch/x86/include/asm 2008-12-18 11:28:54 +01:00
asm-offsets_64.c x86: asm-offset_64: use rt_sigframe_ia32 2008-12-18 15:01:24 -08:00
audit_64.c
bios_uv.c x86: bios_uv.c: uv_systab should be static 2008-12-29 22:08:28 -08:00
bootflag.c
check.c x86: corruption-check: some post-move cleanups 2008-10-27 18:09:45 +01:00
cpuid.c Merge branch 'cpus4096-for-linus-3' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2009-01-03 12:04:39 -08:00
crash.c kdump: forcibly disable VMX and SVM on machine_crash_shutdown() 2008-12-31 16:52:30 +02:00
crash_dump_32.c kdump: make elfcorehdr_addr independent of CONFIG_PROC_VMCORE 2008-10-20 08:52:39 -07:00
crash_dump_64.c kdump: make elfcorehdr_addr independent of CONFIG_PROC_VMCORE 2008-10-20 08:52:39 -07:00
doublefault_32.c x86: fix virt_addr_valid() with CONFIG_DEBUG_VIRTUAL=y, v2 2008-10-13 10:33:15 +02:00
ds.c Merge branch 'x86/ptrace' into x86/tsc 2008-12-23 16:29:31 +01:00
dumpstack.c ftrace: print real return in dumpstack for function graph 2008-12-03 08:56:25 +01:00
dumpstack.h ftrace: print real return in dumpstack for function graph 2008-12-03 08:56:25 +01:00
dumpstack_32.c ftrace: print real return in dumpstack for function graph 2008-12-03 08:56:25 +01:00
dumpstack_64.c ftrace: print real return in dumpstack for function graph 2008-12-03 08:56:25 +01:00
e820.c Merge branch 'linus' into release 2009-01-09 03:39:43 -05:00
early-quirks.c x86: only scan the root bus in early PCI quirks 2009-01-09 12:46:22 -08:00
early_printk.c x86: early_printk - use sizeof instead of hardcoded number 2009-01-02 10:27:46 +01:00
efi.c x86: Add UV EFI table entry v4 2008-10-16 16:53:13 +02:00
efi_32.c
efi_64.c
efi_stub_32.S
efi_stub_64.S
entry_32.S Merge branch 'tracing-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2008-12-28 12:21:10 -08:00
entry_64.S Merge branch 'tracing-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2008-12-28 12:21:10 -08:00
es7000_32.c Merge branch 'linus' into x86/quirks 2008-12-08 15:07:49 +01:00
ftrace.c tracing/function-graph-tracer: append the tracing_graph_flag 2008-12-08 15:11:45 +01:00
genapic_64.c x86: fix wakeup_cpu with numaq/es7000, v2, fix 2008-11-18 00:27:24 +01:00
genapic_flat_64.c x86: fix cpu_mask_to_apicid_and to include cpu_online_mask 2008-12-18 11:59:24 +01:00
genx2apic_cluster.c x86: use logical apicid in x2apic_cluster's x2apic_cpu_mask_to_apicid_and() 2008-12-23 22:37:30 +01:00
genx2apic_phys.c Merge branch 'linus' into x86/cleanups 2009-01-02 22:41:36 +01:00
genx2apic_uv_x.c Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux-2.6-cpumask into merge-rr-cpumask 2009-01-03 18:53:31 +01:00
geode_32.c
head.c x86, debug: remove EBDA debug printk 2008-12-12 11:08:42 +01:00
head32.c x86: change static allocation of trampoline area 2008-12-08 13:49:45 +01:00
head64.c x86: fix incorrect __read_mostly on _boot_cpu_pda 2009-01-02 17:16:29 +01:00
head_32.S x86, cpa: rename PTE attribute macros for kernel direct mapping in early boot 2008-10-10 19:29:11 +02:00
head_64.S x86: fix RIP printout in early_idt_handler 2009-01-04 10:20:29 +01:00
hpet.c Merge branch 'cpus4096-for-linus-2' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2009-01-02 11:44:09 -08:00
i386_ksyms_32.c ftrace: rename FTRACE to FUNCTION_TRACER 2008-10-20 18:27:03 +02:00
i387.c x86: fix __cpuinit/__init tangle in init_thread_xstate() 2008-11-20 16:43:41 +01:00
i8237.c
i8253.c cpumask: convert struct clock_event_device to cpumask pointers. 2008-12-13 21:20:26 +10:30
i8259.c x86: i8259.c fix style problems 2009-01-04 18:19:37 +01:00
init_task.c take init_fs to saner place 2008-12-31 18:07:42 -05:00
io_apic.c Merge branches 'x86/cleanups', 'x86/mpparse', 'x86/numa' and 'x86/uv' into x86/urgent 2009-01-06 17:39:52 +01:00
io_delay.c x86: add io delay quirk for Presario F700 2008-09-03 16:42:51 -07:00
ioport.c x86: ioport.c fix style problems 2009-01-04 13:23:07 +01:00
ipi.c x86: cosmetic changes apic-related files. 2008-12-16 17:40:57 -08:00
irq.c x86: irq.c fix style problems 2009-01-04 13:23:04 +01:00
irq_32.c x86: irq_32.c fix style problems 2009-01-04 18:19:37 +01:00
irq_64.c x86: irq_64.c fix style problems 2009-01-04 13:23:04 +01:00
irqinit_32.c x86: irqinit_32.c fix style problems 2009-01-04 18:19:38 +01:00
irqinit_64.c x86: irqinit_64.c init_ISA_irqs should be static 2009-01-04 18:19:41 +01:00
k8.c x86, gart: fix gart detection for Fam11h CPUs 2008-10-28 17:10:27 +01:00
kdebugfs.c arch/x86/kernel/kdebugfs.c: introduce missing kfree 2008-09-10 14:03:49 +02:00
kgdb.c kgdb, x86: Avoid invoking kgdb_nmicallback twice per NMI 2008-10-06 13:50:59 -05:00
kprobes.c Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2009-01-07 11:31:52 -08:00
kvm.c x86, paravirt_ops: use unsigned long instead of u32 for alloc_p*() pfn args 2008-08-22 05:34:44 +02:00
kvmclock.c x86: KVM guest: kvm_get_tsc_khz: return khz, not lpj 2008-12-31 16:55:44 +02:00
ldt.c x86: ldt.c fix style problems 2009-01-02 17:46:24 +01:00
machine_kexec_32.c kexec/i386: setup kexec page table in C 2008-10-31 10:01:57 +01:00
machine_kexec_64.c
mca_32.c
mfgpt_32.c trivial: fix then -> than typos in comments and documentation 2009-01-06 11:28:06 +01:00
microcode_amd.c x86: fix warning in arch/x86/kernel/microcode_amd.c 2008-12-19 01:31:54 +01:00
microcode_core.c Merge branches 'x86/apic', 'x86/cleanups', 'x86/cpufeature', 'x86/crashdump', 'x86/debug', 'x86/defconfig', 'x86/detect-hyper', 'x86/doc', 'x86/dumpstack', 'x86/early-printk', 'x86/fpu', 'x86/idle', 'x86/io', 'x86/memory-corruption-check', 'x86/microcode', 'x86/mm', 'x86/mtrr', 'x86/nmi-watchdog', 'x86/pat2', 'x86/pci-ioapic-boot-irq-quirks', 'x86/ptrace', 'x86/quirks', 'x86/reboot', 'x86/setup-memory', 'x86/signal', 'x86/sparse-fixes', 'x86/time', 'x86/uv' and 'x86/xen' into x86/core 2008-12-23 16:27:23 +01:00
microcode_intel.c Merge branches 'x86/apic', 'x86/cleanups', 'x86/cpufeature', 'x86/crashdump', 'x86/debug', 'x86/defconfig', 'x86/detect-hyper', 'x86/doc', 'x86/dumpstack', 'x86/early-printk', 'x86/fpu', 'x86/idle', 'x86/io', 'x86/memory-corruption-check', 'x86/microcode', 'x86/mm', 'x86/mtrr', 'x86/nmi-watchdog', 'x86/pat2', 'x86/pci-ioapic-boot-irq-quirks', 'x86/ptrace', 'x86/quirks', 'x86/reboot', 'x86/setup-memory', 'x86/signal', 'x86/sparse-fixes', 'x86/time', 'x86/uv' and 'x86/xen' into x86/core 2008-12-23 16:27:23 +01:00
mmconf-fam10h_64.c x86, pci: move arch/x86/pci/pci.h to arch/x86/include/asm/pci_x86.h 2008-12-29 18:17:36 +01:00
module_32.c
module_64.c
mpparse.c x86: fix mpparse.c build error on latest git 2009-01-12 19:24:22 +01:00
msr.c x86: cleanup some remaining usages of NR_CPUS where s/b nr_cpu_ids 2009-01-03 19:00:55 +01:00
nmi.c x86: remove duplicated #include's 2009-01-06 13:34:03 +01:00
numaq_32.c x86: rename all fields of mpc_oemtable oem_X to X 2009-01-05 14:08:34 +01:00
olpc.c x86, olpc: fix endian bug in openfirmware workaround 2008-09-24 10:29:04 +02:00
paravirt-spinlocks.c x86: fix default_spin_lock_flags() prototype 2008-12-08 16:08:29 +01:00
paravirt.c Merge branch 'linus' into x86/xen 2008-10-12 12:37:32 +02:00
paravirt_patch_32.c
paravirt_patch_64.c
pci-calgary_64.c arch/x86/kernel/pci-calgary_64.c: change simple_strtol to simple_strtoul 2008-11-25 15:56:03 +01:00
pci-dma.c PCI: struct device - replace bus_id with dev_name(), dev_set_name() 2009-01-07 11:12:23 -08:00
pci-gart_64.c x86_64: pci-gart_64.c iommu_fullflush should be static 2008-12-29 18:17:33 +01:00
pci-nommu.c x86: export pci-nommu's alloc_coherent 2008-09-25 11:02:25 +02:00
pci-swiotlb_64.c Merge branch 'core/iommu' into core/urgent 2009-01-05 14:17:24 +01:00
pcspeaker.c x86: use platform_device_register_simple() 2008-09-22 12:58:36 +02:00
pmtimer_64.c
probe_roms_32.c
process.c Merge branch 'tracing-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2008-12-28 12:21:10 -08:00
process_32.c x86: process_32.c fix style problems 2009-01-04 13:23:03 +01:00
process_64.c x86, bts: add fork and exit handling 2008-12-20 09:15:46 +01:00
ptrace.c x86, bts: memory accounting 2008-12-20 09:15:47 +01:00
pvclock.c x86: pvclock: fix shadowed variable warning 2008-10-15 14:25:14 +02:00
quirks.c x86: enable HPET on Fujitsu u9200 2008-12-16 20:36:44 +01:00
reboot.c Merge branch 'cpus4096-for-linus-3' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2009-01-03 12:04:39 -08:00
reboot_fixups_32.c
relocate_kernel_32.S kexec/i386: setup kexec page table in C 2008-10-31 10:01:57 +01:00
relocate_kernel_64.S
rtc.c rtc: use bcd2bin/bin2bcd 2008-10-20 08:52:41 -07:00
scx200_32.c
setup.c Merge branch 'irq-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2008-12-30 16:20:19 -08:00
setup_percpu.c Merge branch 'x86-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2009-01-10 06:13:09 -08:00
signal.c x86: signal: move sigframe.h to arch/x86/include/asm 2008-12-18 11:28:54 +01:00
smp.c Merge branch 'x86-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2009-01-10 06:13:09 -08:00
smpboot.c Merge branch 'x86-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2009-01-10 06:13:09 -08:00
smpcommon.c
stacktrace.c tracing/stack-tracer: fix style issues 2008-11-23 11:53:48 +01:00
step.c
summit_32.c
sys_i386_32.c
sys_x86_64.c Merge branches 'x86/alternatives', 'x86/cleanups', 'x86/commandline', 'x86/crashdump', 'x86/debug', 'x86/defconfig', 'x86/doc', 'x86/exports', 'x86/fpu', 'x86/gart', 'x86/idle', 'x86/mm', 'x86/mtrr', 'x86/nmi-watchdog', 'x86/oprofile', 'x86/paravirt', 'x86/reboot', 'x86/sparse-fixes', 'x86/tsc', 'x86/urgent' and 'x86/vmalloc' into x86-v28-for-linus-phase1 2008-10-06 18:17:07 +02:00
syscall_64.c x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
syscall_table_32.S
tce_64.c
test_nx.c
test_rodata.c
time_32.c x86: time_32.c fix style problems 2009-01-04 13:23:05 +01:00
time_64.c x86: time_64.c fix style problems 2009-01-04 13:23:05 +01:00
tlb_32.c Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux-2.6-cpumask into merge-rr-cpumask 2009-01-03 18:53:31 +01:00
tlb_64.c Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux-2.6-cpumask into merge-rr-cpumask 2009-01-03 18:53:31 +01:00
tlb_uv.c x86, UV: remove erroneous BAU initialization 2009-01-02 17:26:25 +01:00
tls.c
tls.h
topology.c
trampoline.c x86: change static allocation of trampoline area 2008-12-08 13:49:45 +01:00
trampoline_32.S
trampoline_64.S
traps.c Merge branch 'x86-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2009-01-10 06:13:09 -08:00
tsc.c Merge branches 'x86/apic', 'x86/cleanups', 'x86/cpufeature', 'x86/crashdump', 'x86/debug', 'x86/defconfig', 'x86/detect-hyper', 'x86/doc', 'x86/dumpstack', 'x86/early-printk', 'x86/fpu', 'x86/idle', 'x86/io', 'x86/memory-corruption-check', 'x86/microcode', 'x86/mm', 'x86/mtrr', 'x86/nmi-watchdog', 'x86/pat2', 'x86/pci-ioapic-boot-irq-quirks', 'x86/ptrace', 'x86/quirks', 'x86/reboot', 'x86/setup-memory', 'x86/signal', 'x86/sparse-fixes', 'x86/time', 'x86/uv' and 'x86/xen' into x86/core 2008-12-23 16:27:23 +01:00
tsc_sync.c Merge branches 'x86/apic', 'x86/cleanups', 'x86/cpufeature', 'x86/crashdump', 'x86/debug', 'x86/defconfig', 'x86/detect-hyper', 'x86/doc', 'x86/dumpstack', 'x86/early-printk', 'x86/fpu', 'x86/idle', 'x86/io', 'x86/memory-corruption-check', 'x86/microcode', 'x86/mm', 'x86/mtrr', 'x86/nmi-watchdog', 'x86/pat2', 'x86/pci-ioapic-boot-irq-quirks', 'x86/ptrace', 'x86/quirks', 'x86/reboot', 'x86/setup-memory', 'x86/signal', 'x86/sparse-fixes', 'x86/time', 'x86/uv' and 'x86/xen' into x86/core 2008-12-23 16:27:23 +01:00
uv_irq.c x86, UV: add uv_setup_irq() and uv_teardown_irq() functions, v3, fix 2008-10-16 16:53:13 +02:00
uv_sysfs.c x86: Add sysfs entries for UV v4 2008-10-16 16:53:13 +02:00
verify_cpu_64.S
visws_quirks.c x86: rename all fields of mpc_cpu mpc_X to X 2009-01-05 14:08:33 +01:00
vm86_32.c
vmi_32.c Merge branch 'x86/fpu' into x86/cleanups 2008-12-26 09:21:05 +01:00
vmiclock_32.c cpumask: convert struct clock_event_device to cpumask pointers. 2008-12-13 21:20:26 +10:30
vmlinux.lds.S
vmlinux_32.lds.S tracing/function-graph-tracer: add a new .irqentry.text section, fix 2008-12-12 12:14:05 +01:00
vmlinux_64.lds.S tracing/function-graph-tracer: add a new .irqentry.text section 2008-12-12 11:14:07 +01:00
vsmp_64.c x86: two trivial sparse annotations 2008-10-29 08:02:28 +01:00
vsyscall_64.c Merge branch 'tracing-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2008-12-28 12:21:10 -08:00
x8664_ksyms_64.c ftrace: rename FTRACE to FUNCTION_TRACER 2008-10-20 18:27:03 +02:00
xsave.c x86: xsave.c: restore_user_xstate should be static 2008-12-30 13:31:41 -08:00