1. 27 Jul, 2016 1 commit
    • Sam Mendoza-Jonas's avatar
      tty/hvc: Use IRQF_SHARED for OPAL hvc consoles · bbc3dfe8
      Sam Mendoza-Jonas authored
      Commit 2def86a7 ("hvc: Convert to using interrupts instead of opal
      events") enabled the use of interrupts in the hvc_driver for OPAL
      platforms. However on machines with more than one hvc console, any
      console after the first will fail to register an interrupt handler in
      notifier_add_irq() since all consoles share the same IRQ number but do
      not set the IRQF_SHARED flag:
      
        genirq: Flags mismatch irq 31. 00000000 (hvc_console) vs. 00000000 (hvc_console)
        hvc_open: request_irq failed with rc -16.
      
      This error propagates up to hvc_open() and the console is closed, but
      OPAL will still generate interrupts that are not handled, leading to
      rcu_sched stall warnings.
      
      Set IRQF_SHARED when calling request_irq(), allowing additional consoles
      to start properly. This is only set for consoles handled by
      hvc_opal_probe(), leaving other types unaffected.
      Signed-off-by: default avatarSamuel Mendoza-Jonas <sam@mendozajonas.com>
      Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
      bbc3dfe8
  2. 26 Jul, 2016 5 commits
  3. 21 Jul, 2016 31 commits
  4. 20 Jul, 2016 2 commits
    • Benjamin Herrenschmidt's avatar
      dt: Add of_device_compatible_match() · b9c13fe3
      Benjamin Herrenschmidt authored
      This provides an equivalent of of_fdt_match() for non-flat trees.
      
      This is more practical than matching an array of of_device_id structs
      when converting a bunch of existing users of of_fdt_match().
      Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
      Acked-by: default avatarRob Herring <robh@kernel.org>
      Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
      b9c13fe3
    • Tyrel Datwyler's avatar
      PCI: rpaphp: Fix slot registration for multiple slots under a PHB · e2413a7d
      Tyrel Datwyler authored
      The underlying slot hotplug registration code assumed multiple slots, but
      the actual implementation is broken for multiple slots.
      
      This went unnoticed for years do to the fact that PowerVM seems to only
      ever provide a single hotplug slot per PHB.
      
      Under qemu/kvm the hotplug slot model aligns more with x86 where
      multiple slots are presented under a single PHB. As seen in the
      following each additional slot after the first fails to register due to
      each slot always being compared against the first child node of the PHB
      in the device tree.
      
        rpaphp: RPA HOT Plug PCI Controller Driver version: 0.1
        rpaphp: Slot [Slot 0] registered
        rpaphp: pci_hp_register failed with error -16
        rpaphp: pci_hp_register failed with error -16
        rpaphp: pci_hp_register failed with error -16
        rpaphp: pci_hp_register failed with error -16
      
      The registration logic is fixed so that each slot is compared
      against the existing child devices of the PHB in the device tree to
      determine present slots vs empty slots.
      
        rpaphp: RPA HOT Plug PCI Controller Driver version: 0.1
        rpaphp: Slot [C0] registered
        rpaphp: Slot [C1] registered
        rpaphp: Slot [C2] registered
        rpaphp: Slot [C3] registered
        rpaphp: Slot [C4] registered
      Signed-off-by: default avatarTyrel Datwyler <tyreld@linux.vnet.ibm.com>
      Reviewed-by: default avatarNathan Fontenot <nfont@linux.vnet.ibm.com>
      [mpe: Massage changelog]
      Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
      e2413a7d
  5. 19 Jul, 2016 1 commit