OSDN Git Service

powerpc/powermac: Use early_* IO variants in via_calibrate_decr()
authorBenjamin Gray <bgray@linux.ibm.com>
Thu, 6 Jul 2023 01:08:16 +0000 (11:08 +1000)
committerMichael Ellerman <mpe@ellerman.id.au>
Wed, 2 Aug 2023 12:57:22 +0000 (22:57 +1000)
commit86582e6189dd8f9f52c25d46c70fe5d111da6345
treecec403b3482fa53b0820f4bd8dc94e6475ab79e3
parent2dc0bc1138eecc88b2c376ccb0b0acb215c25a5c
powerpc/powermac: Use early_* IO variants in via_calibrate_decr()

On a powermac platform, via the call path:

  start_kernel()
    time_init()
      ppc_md.calibrate_decr() (pmac_calibrate_decr)
        via_calibrate_decr()

ioremap() and iounmap() are called. The unmap can enable interrupts
unexpectedly (cond_resched() in vunmap_pmd_range()), which causes a
warning later in the boot sequence in start_kernel().

Use the early_* variants of these IO functions to prevent this.

The issue is pre-existing, but is surfaced by commit 721255b9826b
("genirq: Use a maple tree for interrupt descriptor management").

Signed-off-by: Benjamin Gray <bgray@linux.ibm.com>
Reviewed-by: Christophe Leroy <christophe.leroy@csgroup.eu>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://msgid.link/20230706010816.72682-1-bgray@linux.ibm.com
arch/powerpc/platforms/powermac/time.c