]> git.baikalelectronics.ru Git - kernel.git/commit
powerpc/64s: Mark the kuap/kuep functions non __init
authorAneesh Kumar K.V <aneesh.kumar@linux.ibm.com>
Mon, 14 Dec 2020 08:01:21 +0000 (13:31 +0530)
committerMichael Ellerman <mpe@ellerman.id.au>
Mon, 14 Dec 2020 12:12:27 +0000 (23:12 +1100)
commitfd16aa34c864b65feda9817b78c94d6649491fc4
tree80687fa4c6f9839e6e2867fa609baae4ef00d0d0
parent27b9da9a00825dddc0b42d0a717aa903d7585339
powerpc/64s: Mark the kuap/kuep functions non __init

The kernel calls these functions on CPU online and hence they must not
be marked __init.

Otherwise if the memory they occupied has been reused the system can
crash in various ways. Sachin reported it caused his LPAR to
spontaneously restart with no other output. With xmon enabled it may
drop into xmon with a dump like:

  cpu 0x1: Vector: 700 (Program Check) at [c000000003c5fcb0]
      pc: 00000000011e0a78
      lr: 00000000011c51d4
      sp: c000000003c5ff50
     msr: 8000000000081001
    current = 0xc000000002c12b00
    paca    = 0xc000000003cff280  irqmask: 0x03  irq_happened: 0x01
      pid   = 0, comm = swapper/1
  ...
  [c000000003c5ff500000000000087c38 (unreliable)
  [c000000003c5ff70000000000003870c
  [c000000003c5ff90000000000000d108

Fixes: e0db73578108 ("powerpc/book3s64/kuap: Move KUAP related function outside radix")
Reported-by: Sachin Sant <sachinp@linux.vnet.ibm.com>
Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@linux.ibm.com>
[mpe: Expand change log with details and xmon output]
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/20201214080121.358567-1-aneesh.kumar@linux.ibm.com
arch/powerpc/mm/book3s64/pkeys.c