Skip to content
  1. May 18, 2020
  2. May 15, 2020
    • Michael Ellerman's avatar
      drivers/macintosh: Fix memleak in windfarm_pm112 driver · 93900337
      Michael Ellerman authored
      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: ac171c46
      
       ("[PATCH] powerpc: Thermal control for dual core G5s")
      Cc: stable@vger.kernel.org # v2.6.16+
      Reported-by: default avatarErhard F. <erhard_f@mailbox.org>
      Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
      Tested-by: default avatarErhard F. <erhard_f@mailbox.org>
      Link: https://lore.kernel.org/r/20200423060038.3308530-1-mpe@ellerman.id.au
      93900337
    • Michael Ellerman's avatar
      selftests/powerpc: Add a test of counting larx/stcx · 7481cad4
      Michael Ellerman authored
      
      
      This is based on the count_instructions test.
      
      However this one also counts the number of failed stcx's, and in
      conjunction with knowing the size of the stcx loop, can calculate the
      total number of instructions executed even in the face of
      non-deterministic stcx failures.
      
      Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
      Link: https://lore.kernel.org/r/20200426114410.3917383-1-mpe@ellerman.id.au
      7481cad4