Maurice Petallo
05629296ee
thermal: Intel SoC DTS: Don't do thermal zone update inside spin_lock
The driver calls spin_lock_irqsave during DTS interrupt. The interrupt
handle then calls thermal_zone_device_update which implicitly calls
a sleep function and produce the following bug:
BUG: sleeping function called from invalid context at kernel/locking/mutex.c:97
in_atomic(): 1, irqs_disabled(): 1, pid: 920, name: irq/86-soc_dts
CPU: 0 PID: 920 Comm: irq/86-soc_dts Tainted: G E 3.17.0-rc2+ #1
Hardware name: Intel Corp. VALLEYVIEW B3 PLATFORM/NOTEBOOK, BIOS BYTICRB1.86C.0092.R31.1408290850 08/29/2014
00000000 00000000 c25dbe74 c1818cfd f3cc488c c25dbe9c c1059305 c1b4063b
00000001 00000001 00000398 f3cc488c f6817644 f6817644 f3ecc6c0 c25dbea8
c18208f2 f6817400 c25dbebc c159b0bb c25dbedc f6817400 f32a2300 c25dbee8
Call Trace:
[<c1818cfd>] dump_stack+0x48/0x60
[<c1059305>] __might_sleep+0xec/0xf4
[<c18208f2>] mutex_lock+0x1c/0x34
[<c159b0bb>] thermal_zone_get_temp+0x34/0x59
[<c159bde5>] thermal_zone_device_update+0x2d/0xcb
[<f85da16a>] ? iosf_mbi_write+0x6c/0x74 [iosf_mbi]
[<f7c7445d>] soc_irq_thread_fn+0x10c/0x163 [intel_soc_dts_thermal]
[<c107b72b>] irq_thread_fn+0x18/0x2a
[<c107bedb>] irq_thread+0x81/0x11f
[<c107b713>] ? irq_finalize_oneshot+0x7c/0x7c
[<c107bf79>] ? irq_thread+0x11f/0x11f
[<c107be5a>] ? wake_threads_waitq+0x31/0x31
[<c1054217>] kthread+0x87/0x8c
[<c1821e41>] ret_from_kernel_thread+0x21/0x30
[<c1054190>] ? __kthread_parkme+0x55/0x55
Signed-off-by: Maurice Petallo <mauricex.r.petallo@intel.com>
Acked-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
Acked-by: Eduardo Valentin <edubezval@gmail.com>
CC: Kweh, Hock Leong <hock.leong.kweh@intel.com>
Signed-off-by: Zhang Rui <rui.zhang@intel.com>
2014-12-09 11:38:16 +08:00
..
2014-11-20 01:24:16 +01:00
2014-09-30 01:16:44 +02:00
2014-11-04 12:56:25 -05:00
2014-11-23 14:29:44 -05:00
2014-11-14 15:17:32 +01:00
2014-10-23 14:02:06 -04:00
2014-11-13 16:17:05 -08:00
2014-10-13 11:28:42 +02:00
2014-10-08 17:37:16 -04:00
2014-11-13 18:07:52 -08:00
2014-11-17 11:25:29 -08:00
2014-11-19 10:43:51 +01:00
2014-11-08 02:10:04 +01:00
2014-10-24 12:48:47 -07:00
2014-11-06 23:10:20 +08:00
2014-09-29 20:22:36 +09:00
2014-11-21 16:24:27 -08:00
2014-10-09 02:39:07 -04:00
2014-10-22 22:59:00 +02:00
2014-11-14 12:10:13 +01:00
2014-10-23 14:45:09 -07:00
2014-10-09 14:58:15 -04:00
2014-11-30 16:21:37 -08:00
2014-11-13 16:19:14 -08:00
2014-11-19 14:06:47 -08:00
2014-11-07 19:03:18 +01:00
2014-10-18 12:12:45 -07:00
2014-11-16 20:25:00 +00:00
2014-11-21 16:28:45 -08:00
2014-11-27 17:51:50 -08:00
2014-10-15 07:23:49 +02:00
2014-11-26 06:28:42 +00:00
2014-10-14 15:05:35 -04:00
2014-10-21 08:18:38 -07:00
2014-09-25 23:14:37 +10:00
2014-10-21 11:21:19 -07:00
2014-11-16 15:34:31 -08:00
2014-11-03 19:08:06 -02:00
2014-10-14 02:18:22 +02:00
2014-10-07 21:29:18 -04:00
2014-11-10 15:22:04 +00:00
2014-10-28 19:52:52 +11:00
2014-11-05 09:28:48 +01:00
2014-11-02 14:45:52 -08:00
2014-11-26 16:38:35 -05:00
2014-10-07 14:48:29 -04:00
2014-10-17 07:08:51 -04:00
2014-11-20 15:32:49 +00:00
2014-10-13 16:23:15 +02:00
2014-11-24 14:11:34 +11:00
2014-11-05 14:34:06 -08:00
2014-10-28 11:16:26 +01:00
2014-11-10 21:16:15 -08:00
2014-10-14 02:18:25 +02:00
2014-11-15 15:22:51 -08:00
2014-10-21 08:17:43 -07:00
2014-11-05 14:59:25 +00:00
2014-10-29 16:33:14 -07:00
2014-11-03 10:43:00 +01:00
2014-11-29 10:15:31 -08:00
2014-10-28 22:05:07 +01:00
2014-11-26 19:05:25 +00:00
2014-10-09 14:58:15 -04:00
2014-11-27 08:55:01 -08:00
2014-11-02 22:04:57 -08:00
2014-12-09 11:38:16 +08:00
2014-11-25 12:46:39 -08:00
2014-10-02 21:35:54 -07:00
2014-11-24 17:01:55 -08:00
2014-10-15 07:23:49 +02:00
2014-10-28 13:54:16 -07:00
2014-10-30 14:53:49 +02:00
2014-10-18 10:25:09 -07:00
2014-10-20 21:09:17 +02:00
2014-10-23 16:24:02 +01:00
2014-09-24 09:49:14 -04:00