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(-)