Michael Ellerman
e37a469827
drivers/macintosh: Fix memleak in windfarm_pm112 driver
commit 93900337b9 upstream.
create_cpu_loop() calls smu_sat_get_sdb_partition() which does
kmalloc() and returns the allocated buffer. In fact it's called twice,
and neither buffer is freed.
This results in a memory leak as reported by Erhard:
unreferenced object 0xc00000047081f840 (size 32):
comm "kwindfarm", pid 203, jiffies 4294880630 (age 5552.877s)
hex dump (first 32 bytes):
c8 06 02 7f ff 02 ff 01 fb bf 00 41 00 20 00 00 ...........A. ..
00 07 89 37 00 a0 00 00 00 00 00 00 00 00 00 00 ...7............
backtrace:
[<0000000083f0a65c>] .smu_sat_get_sdb_partition+0xc4/0x2d0 [windfarm_smu_sat]
[<000000003010fcb7>] .pm112_wf_notify+0x104c/0x13bc [windfarm_pm112]
[<00000000b958b2dd>] .notifier_call_chain+0xa8/0x180
[<0000000070490868>] .blocking_notifier_call_chain+0x64/0x90
[<00000000131d8149>] .wf_thread_func+0x114/0x1a0
[<000000000d54838d>] .kthread+0x13c/0x190
[<00000000669b72bc>] .ret_from_kernel_thread+0x58/0x64
unreferenced object 0xc0000004737089f0 (size 16):
comm "kwindfarm", pid 203, jiffies 4294880879 (age 5552.050s)
hex dump (first 16 bytes):
c4 04 01 7f 22 11 e0 e6 ff 55 7b 12 ec 11 00 00 ...."....U{.....
backtrace:
[<0000000083f0a65c>] .smu_sat_get_sdb_partition+0xc4/0x2d0 [windfarm_smu_sat]
[<00000000b94ef7e1>] .pm112_wf_notify+0x1294/0x13bc [windfarm_pm112]
[<00000000b958b2dd>] .notifier_call_chain+0xa8/0x180
[<0000000070490868>] .blocking_notifier_call_chain+0x64/0x90
[<00000000131d8149>] .wf_thread_func+0x114/0x1a0
[<000000000d54838d>] .kthread+0x13c/0x190
[<00000000669b72bc>] .ret_from_kernel_thread+0x58/0x64
Fix it by rearranging the logic so we deal with each buffer
separately, which then makes it easy to free the buffer once we're
done with it.
Fixes: ac171c4666 ("[PATCH] powerpc: Thermal control for dual core G5s")
Cc: stable@vger.kernel.org # v2.6.16+
Reported-by: Erhard F. <erhard_f@mailbox.org>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Tested-by: Erhard F. <erhard_f@mailbox.org>
Link: https://lore.kernel.org/r/20200423060038.3308530-1-mpe@ellerman.id.au
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2020-06-22 09:05:29 +02:00
..
2020-06-22 09:05:09 +02:00
2020-05-02 17:25:48 +02:00
2020-04-17 10:48:52 +02:00
2020-02-24 08:34:42 +01:00
2020-06-10 21:35:01 +02:00
2020-01-27 14:51:09 +01:00
2020-06-07 13:17:56 +02:00
2020-06-22 09:05:26 +02:00
2020-04-17 10:48:37 +02:00
2020-06-22 09:05:23 +02:00
2020-06-22 09:05:03 +02:00
2020-06-22 09:05:11 +02:00
2020-05-20 08:18:40 +02:00
2020-06-22 09:05:20 +02:00
2020-06-22 09:05:18 +02:00
2020-03-05 16:42:18 +01:00
2020-06-22 09:05:23 +02:00
2020-03-11 14:14:45 +01:00
2020-04-13 10:45:03 +02:00
2020-06-22 09:05:10 +02:00
2020-01-27 14:51:00 +01:00
2020-06-22 09:05:28 +02:00
2020-06-22 09:05:23 +02:00
2020-06-22 09:05:09 +02:00
2020-06-07 13:17:53 +02:00
2020-04-23 10:30:17 +02:00
2020-06-22 09:05:23 +02:00
2020-03-25 08:06:11 +01:00
2020-06-22 09:05:23 +02:00
2020-02-24 08:34:49 +01:00
2020-06-10 21:35:00 +02:00
2020-06-22 09:05:00 +02:00
2020-06-22 09:05:00 +02:00
2020-06-03 08:19:41 +02:00
2020-05-27 17:37:43 +02:00
2020-04-23 10:30:13 +02:00
2020-06-22 09:05:23 +02:00
2020-02-24 08:34:35 +01:00
2020-01-27 14:50:45 +01:00
2020-06-22 09:05:29 +02:00
2020-01-27 14:51:14 +01:00
2020-06-22 09:05:28 +02:00
2020-06-22 09:05:27 +02:00
2020-01-27 14:50:13 +01:00
2020-05-10 10:30:11 +02:00
2020-06-22 09:05:24 +02:00
2020-06-22 09:05:20 +02:00
2020-05-27 17:37:30 +02:00
2020-06-22 09:05:27 +02:00
2020-06-10 21:34:59 +02:00
2020-01-27 14:50:55 +01:00
2020-06-07 13:17:53 +02:00
2020-06-22 09:05:16 +02:00
2020-06-10 21:35:00 +02:00
2020-04-23 10:30:14 +02:00
2020-06-22 09:05:26 +02:00
2020-06-22 09:05:14 +02:00
2020-03-11 14:15:10 +01:00
2020-06-22 09:05:27 +02:00
2020-06-22 09:05:20 +02:00
2020-06-22 09:05:27 +02:00
2020-04-29 16:31:14 +02:00
2020-05-27 17:37:43 +02:00
2020-02-24 08:34:40 +01:00
2020-05-02 17:25:47 +02:00
2020-02-24 08:34:44 +01:00
2020-04-13 10:45:16 +02:00
2020-04-23 10:30:18 +02:00
2020-04-29 16:31:13 +02:00
2020-06-22 09:05:07 +02:00
2020-04-23 10:30:17 +02:00
2020-06-22 09:05:23 +02:00
2020-06-22 09:05:19 +02:00
2020-05-06 08:13:31 +02:00
2020-02-05 14:43:50 +00:00
2020-03-05 16:42:22 +01:00
2020-05-27 17:37:40 +02:00
2020-06-22 09:05:25 +02:00
2020-02-24 08:34:37 +01:00
2020-06-22 09:05:23 +02:00
2020-05-06 08:13:31 +02:00
2020-05-27 17:37:32 +02:00
2020-06-22 09:05:06 +02:00
2020-02-24 08:34:54 +01:00
2020-02-24 08:34:47 +01:00
2020-02-24 08:34:47 +01:00
2020-04-29 16:31:09 +02:00
2020-06-22 09:05:09 +02:00