Zhang Rui
d567c686ae
Thermal: fix a NULL pointer dereference when generic thermal layer is built as a module
[ 12.761956] BUG: unable to handle kernel NULL pointer dereference at 0000000000000018
[ 12.762016] IP: [<ffffffffa0005277>] handle_thermal_trip+0x47/0x130 [thermal_sys]
[ 12.762060] PGD 1fec74067 PUD 1fee5b067 PMD 0
[ 12.762127] Oops: 0000 [#1] SMP
[ 12.762177] Modules linked in: hid_generic crc32c_intel usbhid hid firewire_ohci(+) e1000e(+) firewire_core crc_itu_t xhci_hcd(+) thermal(+) fan thermal_sys hwmon
[ 12.762423] CPU 1
[ 12.762443] Pid: 187, comm: modprobe Tainted: G A 3.7.0-thermal-module+ #25 /DH77DF
[ 12.762496] RIP: 0010:[<ffffffffa0005277>] [<ffffffffa0005277>] handle_thermal_trip+0x47/0x130 [thermal_sys]
[ 12.762682] RSP: 0018:ffff8801fe7ddc18 EFLAGS: 00010282
[ 12.762704] RAX: 0000000000000000 RBX: ffff8801ff3e9c00 RCX: ffff8801fdc39800
[ 12.762728] RDX: ffff8801fe7ddc24 RSI: 0000000000000001 RDI: ffff8801ff3e9c00
[ 12.762764] RBP: ffff8801fe7ddc48 R08: 0000000004000000 R09: ffffffffa001f568
[ 12.762797] R10: ffffffff81363083 R11: 0000000000000001 R12: 0000000000000001
[ 12.762832] R13: 0000000000000000 R14: 0000000000000001 R15: ffff8801fde73e68
[ 12.762866] FS: 00007f5548516700(0000) GS:ffff88021f240000(0000) knlGS:0000000000000000
[ 12.762912] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[ 12.762946] CR2: 0000000000000018 CR3: 00000001fefe2000 CR4: 00000000001407e0
[ 12.762979] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
[ 12.763014] DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
[ 12.763048] Process modprobe (pid: 187, threadinfo ffff8801fe7dc000, task ffff8801fe5bdb40)
[ 12.763095] Stack:
[ 12.763122] 0000000000019640 00000000fdc39800 ffff8801fe7ddc48 ffff8801ff3e9c00
[ 12.763225] 0000000000000002 0000000000000000 ffff8801fe7ddc78 ffffffffa00053e7
[ 12.763338] ffff8801ff3e9c00 0000000000006c98 ffffffffa0007480 ffff8801ff3e9c00
[ 12.763440] Call Trace:
[ 12.763470] [<ffffffffa00053e7>] thermal_zone_device_update+0x77/0xa0 [thermal_sys]
[ 12.763515] [<ffffffffa0006d38>] thermal_zone_device_register+0x788/0xa88 [thermal_sys]
[ 12.763562] [<ffffffffa001f394>] acpi_thermal_add+0x360/0x4c8 [thermal]
[ 12.763598] [<ffffffff8133902a>] acpi_device_probe+0x50/0x190
[ 12.763632] [<ffffffff811bd793>] ? sysfs_create_link+0x13/0x20
[ 12.763666] [<ffffffff813cc41b>] driver_probe_device+0x7b/0x240
[ 12.763699] [<ffffffff813cc68b>] __driver_attach+0xab/0xb0
[ 12.763732] [<ffffffff813cc5e0>] ? driver_probe_device+0x240/0x240
[ 12.763766] [<ffffffff813ca836>] bus_for_each_dev+0x56/0x90
[ 12.763799] [<ffffffff813cbf4e>] driver_attach+0x1e/0x20
[ 12.763831] [<ffffffff813cbac0>] bus_add_driver+0x190/0x290
[ 12.763864] [<ffffffffa0022000>] ? 0xffffffffa0021fff
[ 12.763896] [<ffffffff813ccbea>] driver_register+0x7a/0x160
[ 12.763928] [<ffffffffa0022000>] ? 0xffffffffa0021fff
[ 12.763960] [<ffffffff813399fb>] acpi_bus_register_driver+0x43/0x45
[ 12.763995] [<ffffffffa002203a>] acpi_thermal_init+0x3a/0x42 [thermal]
[ 12.764029] [<ffffffff8100207f>] do_one_initcall+0x3f/0x170
[ 12.764063] [<ffffffff810b1a5f>] sys_init_module+0x8f/0x200
[ 12.764097] [<ffffffff815ff259>] system_call_fastpath+0x16/0x1b
[ 12.764129] Code: 48 8b 87 c8 02 00 00 41 89 f4 48 8d 55 dc ff 50 28 44 8b 6d dc 41 8d 45 fe 83 f8 01 76 5e 48 8b 83 d8 02 00 00 44 89 e6 48 89 df <ff> 50 18 4c 8d a3 10 03 00 00 4c 89 e7 e8 87 f1 5e e1 8b 83 bc
[ 12.765164] RIP [<ffffffffa0005277>] handle_thermal_trip+0x47/0x130 [thermal_sys]
[ 12.765223] RSP <ffff8801fe7ddc18>
[ 12.765252] CR2: 0000000000000018
[ 12.765284] ---[ end trace 7723294cdfb00d2a ]---
This is because thermal_zone_device_update() is invoked before
any thermal governors being registered.
Signed-off-by: Zhang Rui <rui.zhang@intel.com>
2012-12-12 15:23:54 +08:00
..
2012-11-05 13:59:57 +08:00
2012-10-05 22:32:05 -03:00
2012-10-06 03:04:40 +09:00
2012-10-26 14:23:35 -07:00
2012-10-15 14:45:51 -04:00
2012-10-30 08:37:31 +01:00
2012-10-02 13:38:27 -07:00
2012-10-01 19:39:48 -07:00
2012-10-25 12:05:50 -07:00
2012-10-02 17:26:42 -07:00
2012-10-02 18:32:35 -07:00
2012-10-02 13:38:27 -07:00
2012-10-31 21:02:57 +01:00
2012-10-08 22:52:54 -04:00
2012-10-07 20:55:16 +09:00
2012-10-26 14:59:01 -07:00
2012-10-24 16:13:27 +02:00
2012-10-23 16:32:18 +09:00
2012-10-09 18:26:28 +02:00
2012-10-19 14:07:47 -07:00
2012-10-30 15:56:22 -07:00
2012-11-02 10:31:37 +10:00
2012-10-31 15:39:28 -07:00
2012-10-24 15:46:27 -07:00
2012-11-01 17:31:20 -07:00
2012-11-03 15:14:54 -07:00
2012-10-06 03:04:41 +09:00
2012-10-19 19:44:06 +01:00
2012-10-23 09:03:49 -07:00
2012-11-02 16:11:15 -07:00
2012-10-24 16:58:53 +02:00
2012-10-26 02:20:36 -04:00
2012-10-10 20:14:07 +09:00
2012-10-07 21:04:56 +09:00
2012-10-06 03:16:12 +09:00
2012-10-31 11:42:30 +11:00
2012-10-17 16:45:56 -03:00
2012-10-07 17:29:24 +09:00
2012-10-10 20:15:24 +09:00
2012-10-11 17:21:40 -04:00
2012-10-09 15:08:42 +01:00
2012-11-02 21:58:09 -04:00
2012-10-17 15:53:03 -05:00
2012-10-09 16:22:18 +09:00
2012-10-09 16:11:46 +09:00
2012-10-06 03:16:12 +09:00
2012-10-19 15:40:18 -07:00
2012-10-23 11:52:25 +02:00
2012-11-05 13:59:57 +08:00
2012-11-05 13:59:57 +08:00
2012-10-06 03:04:56 +09:00
2012-10-10 20:15:24 +09:00
2012-10-11 08:50:15 +09:00
2012-10-05 12:01:30 +09:00
2012-10-07 21:04:56 +09:00
2012-10-07 21:04:56 +09:00
2012-10-25 14:37:53 -07:00
2012-10-18 17:50:08 +02:00
2012-10-26 12:29:46 -07:00
2012-10-15 14:08:48 +09:00
2012-10-28 11:13:54 -07:00
2012-11-05 13:59:57 +08:00
2012-11-01 00:38:45 -07:00
2012-12-12 15:23:54 +08:00
2012-10-24 11:57:21 -07:00
2012-10-09 16:22:19 +09:00
2012-10-25 13:13:48 -07:00
2012-10-10 09:10:32 -06:00
2012-10-24 23:19:30 -04:00
2012-11-02 13:26:11 -07:00
2012-10-01 12:09:59 -07:00
2012-10-07 21:06:10 +09:00
2012-11-02 13:26:11 -07:00
2012-10-01 18:46:13 -07:00
2012-10-16 18:07:12 -07:00