This patch set updates ppc "irq" and PTE translation display of book3e.
- Support "irq" command for recent kernel
The ppc's "irq" could not work well for recent kernel at all
because ppc_init() always made SIZE(irq_desc_t) invalid by itself.
And also, "irq" options were not supported entirely.
Stash legacy ppc_dump_irq() behind generic_dump_irq() so that
"irq" works on recent kernel and follow toward mainline updates lightly
by using generic irq functions.
- Fix PTE translation for book3e
Although book3e uses multiple PTE bits for one attribute,
ppc_translate_pte() can not handle such attributes well.
And further privilege (kernel) RW protection bit assign of book3e
are different from user's ones.
Fix and add these translation features in ppc_translate_pte().
- results of update
Before: irq can not work at all.
crash> help -m | grep dump_irq
dump_irq: ppc_dump_irq()
crash> irq
irq: cannot determine number of IRQs
After: "irq" command work well
crash> irq 36
IRQ: 36
STATUS: 24004 (IRQ_LEVEL)
HANDLER: ebc08004
typename: c07c7044 " OpenPIC "
startup: c00ca754 <default_startup>
shutdown: c00ca6f0 <default_shutdown>
enable: c00ca7b8 <default_enable>
disable: c00ca5a8 <default_disable>
:
ACTION: eac56e80
handler: c043e398 <serial8250_interrupt>
flags: 8080
name: c07c4534 "serial"
dev_id: ebe3bec0
next: 0
DEPTH: 0
crash> irq -s
CPU0 CPU1 CPU2 CPU3 CPU4 CPU5 CPU6
CPU7
16: 0 0 0 0 0 0 0
0 OpenPIC bman-err,qman-err,error_rx,fman-err,fman-err,pme-err
17: 0 0 0 0 0 0 0
0 OpenPIC ds3232
:
crash> irq -c 0 -s
CPU0
16: 0 OpenPIC bman-err,qman-err,error_rx,fman-err,fman-err,pme-err
17: 0 OpenPIC ds3232
:
crash> irq -a
IRQ NAME AFFINITY
16 bman-err,qman-err,error_rx,fman-err,fman-err,pme-err 0-7
17 ds3232 0-7
:
Before/After: PTE translation is updated like
crash> vtop f987c01c [kernel vaddr]
PTE PHYSICAL FLAGS
ff974241255 ff974000 (PRESENT|USER|RW|COHERENT|DIRTY|ACCESSED)
* multiple bits attribute USER or RW(non privilege) is not set in 255h
=> Fix as below
PTE PHYSICAL FLAGS
ff974241255 ff974000 (PRESENT|K-RW|COHERENT|DIRTY|ACCESSED)
Thanks,
Toshi
Toshikazu Nakayama (6):
ppc: update dump_irq()
ppc: rework nr_irqs initialization
ppc: add show_interrupts
ppc: add get_irq_affinity
ppc: fix the handling of PTE flags in translate_pte
ppc: handle privilege level rw access from pte
defs.h | 7 ++++-
ppc.c | 65 ++++++++++++++++++++++++++++++++++++++++++++-------------------
2 files changed, 50 insertions(+), 22 deletions(-)