diff options
| author | Srinivas Pandruvada <[email protected]> | 2013-09-24 18:05:16 +0000 |
|---|---|---|
| committer | Zhang Rui <[email protected]> | 2013-09-25 13:29:39 +0000 |
| commit | 7bed1b3caaedd5918f0820b29f3b7a2ddc812922 (patch) | |
| tree | 76697396d523375a3a3b5ed30989f8fd6ea671d5 /fs/btrfs/dev-replace.c | |
| parent | mm: Place preemption point in do_mlockall() loop (diff) | |
| download | kernel-7bed1b3caaedd5918f0820b29f3b7a2ddc812922.tar.gz kernel-7bed1b3caaedd5918f0820b29f3b7a2ddc812922.zip | |
Thermal: x86_pkg_temp: change spin lock
x86_pkg_temp receives thermal notifications via a callback from a
therm_throt driver, where thermal interrupts are processed.
This callback is pkg_temp_thermal_platform_thermal_notify. Here to
avoid multiple interrupts from cores in a package, we disable the
source and also set a variable to avoid scheduling delayed work function.
This variable is protected via spin_lock_irqsave. On one buggy platform,
we still receiving interrupts even if the source is disabled. This
can cause deadlock/lockdep warning, when interrupt is generated while under
spinlock in work function.
Change spin_lock to spin_lock_irqsave and spin_unlock to
spin_unlock_irqrestore as the data it is trying to protect can also
be modified in a notification call called from interrupt handler.
Signed-off-by: Srinivas Pandruvada <[email protected]>
Signed-off-by: Zhang Rui <[email protected]>
Diffstat (limited to 'fs/btrfs/dev-replace.c')
0 files changed, 0 insertions, 0 deletions
