aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2010-10-16Merge branch 'core' of ↵Ingo Molnar18-510/+510
git://git.kernel.org/pub/scm/linux/kernel/git/rric/oprofile into perf/core
2010-10-16Merge branch 'tip/perf/recordmcount' of ↵Ingo Molnar2-3/+21
git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-2.6-trace into perf/core
2010-10-15ftrace: Use objtree for C version of recordmcountSteven Rostedt1-1/+1
The C version of recordmcount is compiled to a binary, which will end up located in the objtree. If the kernel is built with O=path, the srctree will not include the binary recordmcount caller. Cc: Michal Marek <[email protected]> Cc: [email protected] Signed-off-by: Steven Rostedt <[email protected]>
2010-10-15ftrace: Do not process kernel/trace/ftrace.o with C recordmcount programSteven Rostedt1-2/+20
The file kernel/trace/ftrace.c references the mcount() call to convert the mcount() callers to nops. But because it references mcount(), the mcount() address is placed in the relocation table. The C version of recordmcount reads the relocation table of all object files, and it will add all references to mcount to the __mcount_loc table that is used to find the places that call mcount() and change the call to a nop. When recordmcount finds the mcount reference in kernel/trace/ftrace.o, it saves that location even though the code is not a call, but references mcount as data. On boot up, when all calls are converted to nops, the code has a safety check to determine what op code it is actually replacing before it replaces it. If that op code at the address does not match, then a warning is printed and the function tracer is disabled. The reference to mcount in ftrace.c, causes this warning to trigger, since the reference is not a call to mcount(). The ftrace.c file is not compiled with the -pg flag, so no calls to mcount() should be expected. This patch simply makes recordmcount.c skip the kernel/trace/ftrace.c file. This was the same solution used by the perl version of recordmcount. Reported-by: Ingo Molnar <[email protected]> Cc: John Reiser <[email protected]> Signed-off-by: Steven Rostedt <[email protected]>
2010-10-15oprofile: make !CONFIG_PM function stubs static inlineRobert Richter1-2/+6
Make !CONFIG_PM function stubs static inline and remove section attribute. Signed-off-by: Robert Richter <[email protected]>
2010-10-15oprofile: fix linker errorsAnand Gadiyar2-2/+2
Commit e9677b3ce (oprofile, ARM: Use oprofile_arch_exit() to cleanup on failure) caused oprofile_perf_exit to be called in the cleanup path of oprofile_perf_init. The __exit tag for oprofile_perf_exit should therefore be dropped. The same has to be done for exit_driverfs as well, as this function is called from oprofile_perf_exit. Else, we get the following two linker errors. LD .tmp_vmlinux1 `oprofile_perf_exit' referenced in section `.init.text' of arch/arm/oprofile/built-in.o: defined in discarded section `.exit.text' of arch/arm/oprofile/built-in.o make: *** [.tmp_vmlinux1] Error 1 LD .tmp_vmlinux1 `exit_driverfs' referenced in section `.text' of arch/arm/oprofile/built-in.o: defined in discarded section `.exit.text' of arch/arm/oprofile/built-in.o make: *** [.tmp_vmlinux1] Error 1 Signed-off-by: Anand Gadiyar <[email protected]> Cc: Will Deacon <[email protected]> Signed-off-by: Robert Richter <[email protected]>
2010-10-15oprofile: include platform_device.h to fix build breakAnand Gadiyar1-0/+1
oprofile_perf.c needs to include platform_device.h Otherwise we get the following build break. CC arch/arm/oprofile/../../../drivers/oprofile/oprofile_perf.o arch/arm/oprofile/../../../drivers/oprofile/oprofile_perf.c:192: warning: 'struct platform_device' declared inside parameter list arch/arm/oprofile/../../../drivers/oprofile/oprofile_perf.c:192: warning: its scope is only this definition or declaration, which is probably not what you want arch/arm/oprofile/../../../drivers/oprofile/oprofile_perf.c:201: warning: 'struct platform_device' declared inside parameter list arch/arm/oprofile/../../../drivers/oprofile/oprofile_perf.c:210: error: variable 'oprofile_driver' has initializer but incomplete type arch/arm/oprofile/../../../drivers/oprofile/oprofile_perf.c:211: error: unknown field 'driver' specified in initializer arch/arm/oprofile/../../../drivers/oprofile/oprofile_perf.c:211: error: extra brace group at end of initializer arch/arm/oprofile/../../../drivers/oprofile/oprofile_perf.c:211: error: (near initialization for 'oprofile_driver') arch/arm/oprofile/../../../drivers/oprofile/oprofile_perf.c:213: warning: excess elements in struct initializer arch/arm/oprofile/../../../drivers/oprofile/oprofile_perf.c:213: warning: (near initialization for 'oprofile_driver') arch/arm/oprofile/../../../drivers/oprofile/oprofile_perf.c:214: error: unknown field 'resume' specified in initializer arch/arm/oprofile/../../../drivers/oprofile/oprofile_perf.c:214: warning: excess elements in struct initializer arch/arm/oprofile/../../../drivers/oprofile/oprofile_perf.c:214: warning: (near initialization for 'oprofile_driver') arch/arm/oprofile/../../../drivers/oprofile/oprofile_perf.c:215: error: unknown field 'suspend' specified in initializer arch/arm/oprofile/../../../drivers/oprofile/oprofile_perf.c:215: warning: excess elements in struct initializer arch/arm/oprofile/../../../drivers/oprofile/oprofile_perf.c:215: warning: (near initialization for 'oprofile_driver') arch/arm/oprofile/../../../drivers/oprofile/oprofile_perf.c: In function 'init_driverfs': Signed-off-by: Anand Gadiyar <[email protected]> Cc: Matt Fleming <[email protected]> Cc: Will Deacon <[email protected]> Signed-off-by: Robert Richter <[email protected]>
2010-10-15Merge remote branch 'tip/perf/core' into oprofile/coreRobert Richter463-3829/+8360
Conflicts: arch/arm/oprofile/common.c kernel/perf_event.c
2010-10-15Merge branch 'tip/perf/recordmcount-2' of ↵Ingo Molnar7-0/+728
git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-2.6-trace into perf/core
2010-10-14ftrace: Rename config option HAVE_C_MCOUNT_RECORD to HAVE_C_RECORDMCOUNTSteven Rostedt3-3/+3
The config option used by archs to let the build system know that the C version of the recordmcount works for said arch is currently called HAVE_C_MCOUNT_RECORD which enables BUILD_C_RECORDMCOUNT. To be more consistent with the name that all archs may use, it has been renamed to HAVE_C_RECORDMCOUNT. This will be less confusing since we are building a C recordmcount and not a mcount_record. Suggested-by: Ingo Molnar <[email protected]> Cc: <[email protected]> Cc: Michal Marek <[email protected]> Cc: [email protected] Cc: John Reiser <[email protected]> Signed-off-by: Steven Rostedt <[email protected]>
2010-10-15Merge branch 'perf/core' of ↵Ingo Molnar3-2/+9
git://git.kernel.org/pub/scm/linux/kernel/git/frederic/random-tracing into perf/core
2010-10-14ftrace: Remove duplicate code for 64 and 32 bit in recordmcount.cSteven Rostedt2-544/+370
The elf reader for recordmcount.c had duplicate functions for both 32 bit and 64 bit elf handling. This was due to the need of using the 32 and 64 bit elf structures. This patch consolidates the two by using macros to define the 32 and 64 bit names in a recordmcount.h file, and then by just defining a RECORD_MCOUNT_64 macro and including recordmcount.h twice we create the funtions for both the 32 bit version as well as the 64 bit version using one code source. Cc: John Reiser <[email protected]> Signed-off-by: Steven Rostedt <[email protected]>
2010-10-14ftrace/x86: Add support for C version of recordmcountSteven Rostedt5-0/+17
This patch adds the support for the C version of recordmcount and compile times show ~ 12% improvement. After verifying this works, other archs can add: HAVE_C_MCOUNT_RECORD in its Kconfig and it will use the C version of recordmcount instead of the perl version. Cc: <[email protected]> Cc: Michal Marek <[email protected]> Cc: [email protected] Cc: John Reiser <[email protected]> Signed-off-by: Steven Rostedt <[email protected]>
2010-10-14ftrace: Add C version of recordmcount compile time codeJohn Reiser1-0/+885
Currently, the mcount callers are found with a perl script that does an objdump on every file in the kernel. This is a C version of that same code which should increase the performance time of compiling the kernel with dynamic ftrace enabled. Signed-off-by: John Reiser <[email protected]> [ Updated the code to include .text.unlikely section as well as changing the format to follow Linux coding style. ] Signed-off-by: Steven Rostedt <[email protected]>
2010-10-14x86: Barf when vmalloc and kmemcheck faults happen in NMIFrederic Weisbecker2-0/+6
In x86, faults exit by executing the iret instruction, which then reenables NMIs if we faulted in NMI context. Then if a fault happens in NMI, another NMI can nest after the fault exits. But we don't yet support nested NMIs because we have only one NMI stack. To prevent from that, check that vmalloc and kmemcheck faults don't happen in this context. Most of the other kernel faults in NMIs can be more easily spotted by finding explicit copy_from,to_user() calls on review. Signed-off-by: Frederic Weisbecker <[email protected]> Cc: Ingo Molnar <[email protected]> Cc: Thomas Gleixner <[email protected]> Cc: H. Peter Anvin <[email protected]> Cc: Mathieu Desnoyers <[email protected]> Cc: Peter Zijlstra <[email protected]>
2010-10-14kconfig/x86: Add HAVE_TEXT_POKE_SMP config for stop_machine dependencyMasami Hiramatsu1-0/+5
Since the text_poke_smp() definately depends on actual stop_machine() on smp, add that dependency to Kconfig. Signed-off-by: Masami Hiramatsu <[email protected]> Cc: Rusty Russell <[email protected]> Cc: Ananth N Mavinakayanahalli <[email protected]> Cc: [email protected] Cc: Mathieu Desnoyers <[email protected]> LKML-Reference: <[email protected]> Signed-off-by: Ingo Molnar <[email protected]>
2010-10-14x86: Use __stop_machine() in text_poke_smp()Masami Hiramatsu1-1/+2
Use __stop_machine() in text_poke_smp() because the caller must get online_cpus before calling text_poke_smp(), but stop_machine() do it again. We don't need it. Signed-off-by: Masami Hiramatsu <[email protected]> Cc: Rusty Russell <[email protected]> Cc: Ananth N Mavinakayanahalli <[email protected]> Cc: [email protected] Cc: Mathieu Desnoyers <[email protected]> LKML-Reference: <[email protected]> Signed-off-by: Ingo Molnar <[email protected]>
2010-10-14stopmachine: Define __stop_machine when CONFIG_STOP_MACHINE=nMasami Hiramatsu1-2/+8
Define dummy __stop_machine() function even when CONFIG_STOP_MACHINE=n. This getcpu-required version of stop_machine() will be used from poke_text_smp(). Signed-off-by: Masami Hiramatsu <[email protected]> Acked-by: Tejun Heo <[email protected]> Cc: Rusty Russell <[email protected]> Cc: Ananth N Mavinakayanahalli <[email protected]> Cc: [email protected] Cc: Peter Zijlstra <[email protected]> LKML-Reference: <[email protected]> Signed-off-by: Ingo Molnar <[email protected]>
2010-10-14kprobes: Fix selftest to clear flags field for reusing probesMasami Hiramatsu1-3/+9
Fix selftest to clear flags field for reusing probes because the flags field can be modified by Kprobes. This also set NULL to kprobe.addr instead of 0. Signed-off-by: Masami Hiramatsu <[email protected]> Cc: Rusty Russell <[email protected]> Cc: Ananth N Mavinakayanahalli <[email protected]> Cc: [email protected] LKML-Reference: <[email protected]> Signed-off-by: Ingo Molnar <[email protected]>
2010-10-14kprobes: Update document about irq disabled state in kprobe handlerMasami Hiramatsu1-3/+5
Update kprobes.txt about interrupts disabled state inside kprobes handlers, because optimized probe/boosted kretprobe run without disabling interrrupts on x86. Signed-off-by: Masami Hiramatsu <[email protected]> Cc: Rusty Russell <[email protected]> Cc: Ananth N Mavinakayanahalli <[email protected]> Cc: [email protected] LKML-Reference: <[email protected]> Signed-off-by: Ingo Molnar <[email protected]>
2010-10-14perf, ARM: Fix sysfs bits removal build failureIngo Molnar1-1/+1
Fix this linux-next build failure that Stephen reported: arch/arm/kernel/perf_event.c: In function 'armpmu_event_init': arch/arm/kernel/perf_event.c:543: error: request for member 'num_events' in something not a structure or union Reported-by: Stephen Rothwell <[email protected]> Cc: Peter Zijlstra <[email protected]> Cc: paulus <[email protected]> LKML-Reference: <[email protected]> Signed-off-by: Ingo Molnar <[email protected]>
2010-10-13tracing: Fix function-graph build warning on 32-bitBorislav Petkov1-2/+3
Fix kernel/trace/trace_functions_graph.c: In function ‘trace_print_graph_duration’: kernel/trace/trace_functions_graph.c:652: warning: comparison of distinct pointer types lacks a cast when building 36-rc6 on a 32-bit due to the strict type check failing in the min() macro. Signed-off-by: Borislav Petkov <[email protected]> Cc: Chase Douglas <[email protected]> Cc: Steven Rostedt <[email protected]> Cc: Ingo Molnar <[email protected]> LKML-Reference: <[email protected]> Signed-off-by: Frederic Weisbecker <[email protected]>
2010-10-12oprofile: disable write access to oprofilefs while profiler is runningRobert Richter4-20/+18
Oprofile counters are setup when profiling is disabled. Thus, writing to oprofilefs has no immediate effect. Changes are updated only after oprofile is reenabled. To keep userland and kernel states synchronized, we now allow configuration of oprofile only if profiling is disabled. In this case it checks if the profiler is running and then disables write access to oprofilefs by returning -EBUSY. The change should be backward compatible with current oprofile userland daemon. Acked-by: Maynard Johnson <[email protected]> Cc: William Cohen <[email protected]> Cc: Suravee Suthikulpanit <[email protected]> Signed-off-by: Robert Richter <[email protected]>
2010-10-11Merge branch 'oprofile/perf' into oprofile/coreRobert Richter12-431/+412
Conflicts: arch/arm/oprofile/common.c Signed-off-by: Robert Richter <[email protected]>
2010-10-11oprofile, ARM: Use oprofile_arch_exit() to cleanup on failureRobert Richter1-28/+26
There is duplicate cleanup code in the init and exit functions. Now, oprofile_arch_exit() is also used if oprofile_arch_init() fails. Acked-by: Will Deacon <[email protected]> Signed-off-by: Robert Richter <[email protected]>
2010-10-11oprofile, ARM: Rework op_create_counter()Robert Richter1-10/+10
This patch simplifies op_create_counter(). Removing if/else if paths and return code variable by direct returning from function. Acked-by: Will Deacon <[email protected]> Signed-off-by: Robert Richter <[email protected]>
2010-10-11oprofile, ARM: Remove some goto statementsRobert Richter1-4/+2
This patch removes some unnecessary goto statements. Acked-by: Will Deacon <[email protected]> Signed-off-by: Robert Richter <[email protected]>
2010-10-11Merge branch 'oprofile/core' (early part) into oprofile/perfRobert Richter2-19/+60
Conflicts: arch/arm/oprofile/common.c Signed-off-by: Robert Richter <[email protected]>
2010-10-11oprofile, ARM: Release resources on failureRobert Richter1-0/+1
This patch fixes a resource leak on failure, where the oprofilefs and some counters may not released properly. Signed-off-by: Robert Richter <[email protected]> Acked-by: Will Deacon <[email protected]> Cc: [email protected] Cc: <[email protected]> # .35.x LKML-Reference: <[email protected]> Signed-off-by: Ingo Molnar <[email protected]>
2010-10-11Merge branch 'oprofile/urgent' (early part) into oprofile/perfRobert Richter652-4240/+7464
2010-10-11sh: oprofile: Use perf-events oprofile backendMatt Fleming4-125/+40
Now that we've got a generic perf-events based oprofile backend we might as well make use of it seeing as SH doesn't do anything special with its oprofile backend. Also introduce a new CONFIG_HW_PERF_EVENTS symbol so that we can fallback to using the timer interrupt for oprofile if the CPU doesn't support perf events. Also, to avoid a section mismatch warning we need to annotate oprofile_arch_exit() with an __exit marker. Signed-off-by: Matt Fleming <[email protected]> Acked-by: Paul Mundt <[email protected]> Signed-off-by: Robert Richter <[email protected]>
2010-10-11oprofile: Abstract the perf-events backendMatt Fleming4-319/+333
Move the perf-events backend from arch/arm/oprofile into drivers/oprofile so that the code can be shared between architectures. This allows each architecture to maintain only a single copy of the PMU accessor functions instead of one for both perf and OProfile. It also becomes possible for other architectures to delete much of their OProfile code in favour of the common code now available in drivers/oprofile/oprofile_perf.c. Signed-off-by: Matt Fleming <[email protected]> Tested-by: Will Deacon <[email protected]> Signed-off-by: Robert Richter <[email protected]>
2010-10-11ARM: oprofile: Move non-ARM code into separate init/exitMatt Fleming1-3/+14
In preparation for moving the majority of this oprofile code into an architecture-neutral place separate the architecture-independent code into oprofile_perf_init() and oprofile_perf_exit(). Signed-off-by: Matt Fleming <[email protected]> Tested-by: Will Deacon <[email protected]> Signed-off-by: Robert Richter <[email protected]>
2010-10-11ARM: oprofile: Rename op_arm to oprofile_perfMatt Fleming1-34/+34
In preparation for moving the generic functions out of this file, give the functions more general names (e.g. remove "arm" from the names). Signed-off-by: Matt Fleming <[email protected]> Tested-by: Will Deacon <[email protected]> Signed-off-by: Robert Richter <[email protected]>
2010-10-11oprofile: Make op_name_from_perf_id() globalMatt Fleming2-2/+8
Make op_name_from_perf_id() global so that we have a way for each architecture to construct an oprofile name for op->cpu_type. We need to remove the argument from the function prototype so that we can hide all implementation details inside the function. Signed-off-by: Matt Fleming <[email protected]> Signed-off-by: Robert Richter <[email protected]>
2010-10-11perf: New helper function for pmu nameMatt Fleming3-0/+15
Introduce perf_pmu_name() helper function that returns the name of the pmu. This gives us a generic way to get the name of a pmu regardless of how an architecture identifies it internally. Signed-off-by: Matt Fleming <[email protected]> Acked-by: Peter Zijlstra <[email protected]> Acked-by: Paul Mundt <[email protected]> Signed-off-by: Robert Richter <[email protected]>
2010-10-11perf: Add helper function to return number of countersMatt Fleming4-13/+34
The number of counters for the registered pmu is needed in a few places so provide a helper function that returns this number. Signed-off-by: Matt Fleming <[email protected]> Tested-by: Will Deacon <[email protected]> Acked-by: Paul Mundt <[email protected]> Acked-by: Peter Zijlstra <[email protected]> Signed-off-by: Robert Richter <[email protected]>
2010-10-08Merge commit 'v2.6.36-rc7' into perf/coreIngo Molnar359-1390/+2601
Conflicts: arch/x86/kernel/module.c Merge reason: Resolve the conflict, pick up fixes. Signed-off-by: Ingo Molnar <[email protected]>
2010-10-06Linux 2.6.36-rc7Linus Torvalds1-1/+1
2010-10-06Merge branch 'upstream' of git://git.linux-mips.org/pub/scm/upstream-linusLinus Torvalds28-57/+125
* 'upstream' of git://git.linux-mips.org/pub/scm/upstream-linus: MIPS: Octeon: Place cnmips_cu2_setup in __init memory. MIPS: Don't place cu2 notifiers in __cpuinitdata MIPS: Calculate VMLINUZ_LOAD_ADDRESS based on the length of vmlinux.bin MIPS: Alchemy: Resolve prom section mismatches MIPS: Fix syscall 64 bit number comments. MIPS: Hookup fanotify_init, fanotify_mark, and prlimit64 syscalls. MIPS: TX49xx: Rename ARCH_KMALLOC_MINALIGN to ARCH_DMA_MINALIGN MIPS: N32: Fix getdents64 syscall for n32 MIPS: Remove pr_<level> uses of KERN_<level> MIPS: PNX8550: Sort out machine halt, restart and powerdown functions. MIPS: GIC: Remove dependencies from Malta files. MIPS: Kconfig: Fix and clarify kconfig help text for VSMP and SMTC. MIPS: DMA: Fix computation of DMA flags from device's coherent_dma_mask. MIPS: Audit: Fix hang in entry.S. MIPS: Document why RELOC_HIDE is there. MIPS: Octeon: Determine if helper needs to be built MIPS: Use generic atomic64 for 32-bit kernels MIPS: RM7000: Symbol should be static MIPS: kspd: Adjust confusing if indentation MIPS: Fix a typo.
2010-10-06Merge branch 'for-linus' of git://git.kernel.dk/linux-2.6-blockLinus Torvalds1-15/+4
* 'for-linus' of git://git.kernel.dk/linux-2.6-block: writeback: always use sb->s_bdi for writeback purposes
2010-10-06Merge branch 'v2.6.36-rc6-urgent-fixes' of ↵Linus Torvalds2-5/+9
git://xenbits.xen.org/people/sstabellini/linux-pvhvm * 'v2.6.36-rc6-urgent-fixes' of git://xenbits.xen.org/people/sstabellini/linux-pvhvm: xen: do not initialize PV timers on HVM if !xen_have_vector_callback xen: do not set xenstored_ready before xenbus_probe on hvm
2010-10-06Merge branch 'for-linus' of ↵Linus Torvalds1-1/+1
git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/fuse * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/fuse: fuse: Initialize total_len in fuse_retrieve()
2010-10-05powerpc: remove unused variableStephen Rothwell1-1/+0
Since powerpc uses -Werror on arch powerpc, the build was broken like this: cc1: warnings being treated as errors arch/powerpc/kernel/module.c: In function 'module_finalize': arch/powerpc/kernel/module.c:66: error: unused variable 'err' Signed-off-by: Stephen Rothwell <[email protected]> Signed-off-by: Linus Torvalds <[email protected]>
2010-10-05Merge branch 'core-fixes-for-linus' of ↵Linus Torvalds2-4/+15
git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip * 'core-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: rcu: rcu_read_lock_bh_held(): disabling irqs also disables bh generic-ipi: Fix deadlock in __smp_call_function_single
2010-10-05Merge branch 'perf-fixes-for-linus' of ↵Linus Torvalds6-7/+15
git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip * 'perf-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: perf trace scripting: Fix extern struct definitions perf ui hist browser: Fix segfault on 'a' for annotate perf tools: Fix build breakage perf, x86: Handle in flight NMIs on P4 platform oprofile, ARM: Release resources on failure oprofile: Add Support for Intel CPU Family 6 / Model 29
2010-10-05wait: using uninitialized member of wait queueEvgeny Kuznetsov1-0/+1
The "flags" member of "struct wait_queue_t" is used in several places in the kernel code without beeing initialized by init_wait(). "flags" is used in bitwise operations. If "flags" not initialized then unexpected behaviour may take place. Incorrect flags might used later in code. Added initialization of "wait_queue_t.flags" with zero value into "init_wait". Signed-off-by: Evgeny Kuznetsov <[email protected]> [ The bit we care about does end up being initialized by both prepare_to_wait() and add_to_wait_queue(), so this doesn't seem to cause actual bugs, but is definitely the right thing to do -Linus ] Signed-off-by: Linus Torvalds <[email protected]>
2010-10-05modules: Fix module_bug_list list corruption raceLinus Torvalds11-26/+14
With all the recent module loading cleanups, we've minimized the code that sits under module_mutex, fixing various deadlocks and making it possible to do most of the module loading in parallel. However, that whole conversion totally missed the rather obscure code that adds a new module to the list for BUG() handling. That code was doubly obscure because (a) the code itself lives in lib/bugs.c (for dubious reasons) and (b) it gets called from the architecture-specific "module_finalize()" rather than from generic code. Calling it from arch-specific code makes no sense what-so-ever to begin with, and is now actively wrong since that code isn't protected by the module loading lock any more. So this commit moves the "module_bug_{finalize,cleanup}()" calls away from the arch-specific code, and into the generic code - and in the process protects it with the module_mutex so that the list operations are now safe. Future fixups: - move the module list handling code into kernel/module.c where it belongs. - get rid of 'module_bug_list' and just use the regular list of modules (called 'modules' - imagine that) that we already create and maintain for other reasons. Reported-and-tested-by: Thomas Gleixner <[email protected]> Cc: Rusty Russell <[email protected]> Cc: Adrian Bunk <[email protected]> Cc: Andrew Morton <[email protected]> Cc: [email protected] Signed-off-by: Linus Torvalds <[email protected]>
2010-10-05xen: do not initialize PV timers on HVM if !xen_have_vector_callbackStefano Stabellini1-2/+3
if !xen_have_vector_callback do not initialize PV timer unconditionally because we still don't know how many cpus are available and if there is more than one we won't be able to receive the timer interrupts on cpu > 0. This patch fixes an hang at boot when Xen does not support vector callbacks and the guest has multiple vcpus. Signed-off-by: Stefano Stabellini <[email protected]> Acked-by: Jeremy Fitzhardinge <[email protected]>
2010-10-05xen: do not set xenstored_ready before xenbus_probe on hvmStefano Stabellini1-3/+6
Register_xenstore_notifier should guarantee that the caller gets notified even if xenstore is already up. Therefore we revert "do not notify callers from register_xenstore_notifier" and set xenstored_read at the right time for PV on HVM guests too. In fact in case of PV on HVM guests xenstored is ready only after the platform pci driver has completed the initialization, so do not set xenstored_ready before the call to xenbus_probe(). This patch fixes a shutdown_event watcher registration bug that causes "xm shutdown" not to work properly. Signed-off-by: Stefano Stabellini <[email protected]> Acked-by: Jeremy Fitzhardinge <[email protected]>