1. 20 Aug, 2013 18 commits
  2. 05 Aug, 2013 1 commit
  3. 30 Jul, 2013 1 commit
  4. 25 Jul, 2013 6 commits
  5. 24 Jul, 2013 14 commits
    • Linus Torvalds's avatar
      Merge branch 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc · 07bc9dc1
      Linus Torvalds authored
      Pull powerpc fixes from Ben Herrenschmidt:
       "Here is a series of powerpc fixes.  It's a bit big, mostly because of
        the series of 11 "EEH" patches from Gavin.  The EEH (Our IBM specific
        PCI/PCIe Enhanced Error Handling) code had been rotting for a while
        and this merge window saw a significant rework & fixing of it by Gavin
        Shan.
      
        However, that wasn't complete and left some open issues.  There were
        still a few corner cases that didn't work properly, for example in
        relation to hotplug and devices without explicit error handlers.  We
        had some patches but they weren't quite good enough yet so I left them
        off the 3.11 merge window.
      
        Gavin since then fixed it all up, we ran quite a few rounds of testing
        and it seems fairly solid (at least probably more than it has ever
        been).  This should probably have made -rc1 but both Gavin and I took
        some vacation so it had to wait for -rc2.
      
        The rest is more bug fixes, mostly to new features recently added, for
        example, we missed the cpu table entry for one of the two models of P8
        (we didn't realize they had different PVR [Processor Version Register]
        values), some module CRC issues, etc..."
      
      * 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc: (23 commits)
        powerpc/perf: BHRB filter configuration should follow the task
        powerpc/perf: Ignore separate BHRB privilege state filter request
        powerpc/powernv: Mark pnv_pci_init_ioda2_phb() as __init
        powerpc/mm: Use the correct SLB(LLP) encoding in tlbie instruction
        powerpc/mm: Fix fallthrough bug in hpte_decode
        powerpc/pseries: Fix a typo in pSeries_lpar_hpte_insert()
        powerpc/eeh: Introdce flag to protect sysfs
        powerpc/eeh: Fix unbalanced enable for IRQ
        powerpc/eeh: Don't use pci_dev during BAR restore
        powerpc/eeh: Use partial hotplug for EEH unaware drivers
        powerpc/pci: Partial tree hotplug support
        powerpc/eeh: Use safe list traversal when walking EEH devices
        powerpc/eeh: Keep PE during hotplug
        powerpc/pci/hotplug: Don't need to remove from EEH cache twice
        powerpc/pci: Override pcibios_release_device()
        powerpc/eeh: Export functions for hotplug
        powerpc/eeh: Remove reference to PCI device
        powerpc: Fix the corrupt r3 error during MCE handling.
        powerpc/perf: Set PPC_FEATURE2_EBB when we register the power8 PMU
        powerpc/pseries: Drop "select HOTPLUG"
        ...
      07bc9dc1
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6 · b48a97be
      Linus Torvalds authored
      Pull crypto fixes from Herbert Xu:
       "This push fixes a memory corruption issue in caam, as well as
        reverting the new optimised crct10dif implementation as it breaks boot
        on initrd systems.
      
        Hopefully crct10dif will be reinstated once the supporting code is
        added so that it doesn't break boot"
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6:
        Revert "crypto: crct10dif - Wrap crc_t10dif function all to use crypto transform framework"
        crypto: caam - Fixed the memory out of bound overwrite issue
      b48a97be
    • Herbert Xu's avatar
      Revert "crypto: crct10dif - Wrap crc_t10dif function all to use crypto transform framework" · e70308ec
      Herbert Xu authored
      This reverts commits
          67822649
          39761214
          0b95a7f8
          31d93962
          2d31e518
      
      Unfortunately this change broke boot on some systems that used an
      initrd which does not include the newly created crct10dif modules.
      As these modules are required by sd_mod under certain configurations
      this is a serious problem.
      Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
      e70308ec
    • Anshuman Khandual's avatar
      powerpc/perf: BHRB filter configuration should follow the task · ff3d79dc
      Anshuman Khandual authored
      When the task moves around the system, the corresponding cpuhw
      per cpu strcuture should be popullated with the BHRB filter
      request value so that PMU could be configured appropriately with
      that during the next call into power_pmu_enable().
      Signed-off-by: default avatarAnshuman Khandual <khandual@linux.vnet.ibm.com>
      Acked-by: default avatarMichael Neuling <mikey@neuling.org>
      Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
      ff3d79dc
    • Anshuman Khandual's avatar
      powerpc/perf: Ignore separate BHRB privilege state filter request · 7689bdca
      Anshuman Khandual authored
      Completely ignore BHRB privilege state filter request as we are
      already configuring that with privilege state filtering attribute
      for the accompanying PMU event. This would help achieve cleaner
      user space interaction for BHRB.
      
      This patch fixes a situation like this
      
      Before patch:-
      ------------
      ./perf record -j any -e branch-misses:k ls
      Error:
      The sys_perf_event_open() syscall returned with 95 (Operation not
      supported) for event (branch-misses:k).
      /bin/dmesg may provide additional information.
      No CONFIG_PERF_EVENTS=y kernel support configured?
      
      Here 'perf record' actually copies over ':k' filter request into BHRB
      privilege state filter config and our previous check in kernel would
      fail that.
      
      After patch:-
      -------------
      ./perf record -j any -e branch-misses:k ls
      perf  perf.data  perf.data.old  test-mmap-ring
      [ perf record: Woken up 1 times to write data ]
      [ perf record: Captured and wrote 0.002 MB perf.data (~102 samples)]
      Signed-off-by: default avatarAnshuman Khandual <khandual@linux.vnet.ibm.com>
      Acked-by: default avatarMichael Neuling <mikey@neuling.org>
      Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
      7689bdca
    • Bjorn Helgaas's avatar
      powerpc/powernv: Mark pnv_pci_init_ioda2_phb() as __init · 67975005
      Bjorn Helgaas authored
      Mark pnv_pci_init_ioda2_phb() as __init.  It is called only from an
      init function (pnv_pci_init()), and it calls an init function
      (pnv_pci_init_ioda_phb()):
      
          pnv_pci_init                # init
            pnv_pci_init_ioda2_phb    # non-init
      	pnv_pci_init_ioda_phb   # init
      
      This should fix a section mismatch warning.
      Signed-off-by: default avatarBjorn Helgaas <bhelgaas@google.com>
      Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
      67975005
    • Aneesh Kumar K.V's avatar
      powerpc/mm: Use the correct SLB(LLP) encoding in tlbie instruction · de640959
      Aneesh Kumar K.V authored
      The sllp value is stored in mmu_psize_defs in such a way that we can easily OR
      the value to get the operand for slbmte instruction. ie, the L and LP bits are
      not contiguous. Decode the bits and use them correctly in tlbie.
      regression is introduced by 1f6aaacc
      "powerpc: Update tlbie/tlbiel as per ISA doc"
      Reported-by: default avatarPaul Mackerras <paulus@samba.org>
      Signed-off-by: default avatarAneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
      Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
      de640959
    • Aneesh Kumar K.V's avatar
      powerpc/mm: Fix fallthrough bug in hpte_decode · 83383b73
      Aneesh Kumar K.V authored
      We should not fallthrough different case statements in hpte_decode. Add
      break statement to break out of the switch. The regression is introduced by
      dcda287a "powerpc/mm: Simplify hpte_decode"
      Reported-by: default avatarPaul Mackerras <paulus@samba.org>
      Signed-off-by: default avatarAneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
      Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
      83383b73
    • Denis Kirjanov's avatar
      powerpc/pseries: Fix a typo in pSeries_lpar_hpte_insert() · ad92c615
      Denis Kirjanov authored
      Commit 801eb73f introduced
      a bug while checking PTE flags. We have to drop the _PAGE_COHERENT flag
      when __PAGE_NO_CACHE is set and the cache update policy is not write-through
      (i.e. _PAGE_WRITETHRU is not set)
      Signed-off-by: default avatarDenis Kirjanov <kda@linux-powerpc.org>
      Reviewed-by: default avatarAneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
      CC:  Michael Ellerman <michael@ellerman.id.au>
      Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
      ad92c615
    • Gavin Shan's avatar
      powerpc/eeh: Introdce flag to protect sysfs · ab55d218
      Gavin Shan authored
      The patch introduces flag EEH_DEV_SYSFS to keep track that the sysfs
      entries for the corresponding EEH device (then PCI device) has been
      added or removed, in order to avoid race condition.
      Signed-off-by: default avatarGavin Shan <shangw@linux.vnet.ibm.com>
      Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
      ab55d218
    • Gavin Shan's avatar
      powerpc/eeh: Fix unbalanced enable for IRQ · 91150af3
      Gavin Shan authored
      The patch fixes following issue:
      
      Unbalanced enable for IRQ 23
      ------------[ cut here ]------------
      WARNING: at kernel/irq/manage.c:437
      :
      NIP [c00000000016de8c] .__enable_irq+0x11c/0x140
      LR [c00000000016de88] .__enable_irq+0x118/0x140
      Call Trace:
      [c000003ea1f23880] [c00000000016de88] .__enable_irq+0x118/0x140 (unreliable)
      [c000003ea1f23910] [c00000000016df08] .enable_irq+0x58/0xa0
      [c000003ea1f239a0] [c0000000000388b4] .eeh_enable_irq+0xc4/0xe0
      [c000003ea1f23a30] [c000000000038a28] .eeh_report_reset+0x78/0x130
      [c000003ea1f23ac0] [c000000000037508] .eeh_pe_dev_traverse+0x98/0x170
      [c000003ea1f23b60] [c0000000000391ac] .eeh_handle_normal_event+0x2fc/0x3d0
      [c000003ea1f23bf0] [c000000000039538] .eeh_handle_event+0x2b8/0x2c0
      [c000003ea1f23c90] [c000000000039600] .eeh_event_handler+0xc0/0x170
      [c000003ea1f23d30] [c0000000000da9a0] .kthread+0xf0/0x100
      [c000003ea1f23e30] [c00000000000a1dc] .ret_from_kernel_thread+0x5c/0x80
      Signed-off-by: default avatarGavin Shan <shangw@linux.vnet.ibm.com>
      Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
      91150af3
    • Gavin Shan's avatar
      powerpc/eeh: Don't use pci_dev during BAR restore · 4b83bd45
      Gavin Shan authored
      While restoring BARs for one specific PCI device, the pci_dev
      instance should have been released. So it's not reliable to use
      the pci_dev instance on restoring BARs. However, we still need
      some information (e.g. PCIe capability position, header type) from
      the pci_dev instance. So we have to store those information to
      EEH device in advance.
      Signed-off-by: default avatarGavin Shan <shangw@linux.vnet.ibm.com>
      Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
      4b83bd45
    • Gavin Shan's avatar
      powerpc/eeh: Use partial hotplug for EEH unaware drivers · f5c57710
      Gavin Shan authored
      When EEH error happens to one specific PE, some devices with drivers
      supporting EEH won't except hotplug on the device. However, there
      might have other deivces without driver, or with driver without EEH
      support. For the case, we need do partial hotplug in order to make
      sure that the PE becomes absolutely quite during reset. Otherise,
      the PE reset might fail and leads to failure of error recovery.
      
      The current code doesn't handle that 'mixed' case properly, it either
      uses the error callbacks to the drivers, or tries hotplug, but doesn't
      handle a PE (EEH domain) composed of a combination of the two.
      
      The patch intends to support so-called "partial" hotplug for EEH:
      Before we do reset, we stop and remove those PCI devices without
      EEH sensitive driver. The corresponding EEH devices are not detached
      from its PE, but with special flag. After the reset is done, those
      EEH devices with the special flag will be scanned one by one.
      Signed-off-by: default avatarGavin Shan <shangw@linux.vnet.ibm.com>
      Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
      f5c57710
    • Gavin Shan's avatar
      powerpc/pci: Partial tree hotplug support · ab444ec9
      Gavin Shan authored
      When EEH error happens to one specific PE, the device drivers
      of its attached EEH devices (PCI devices) are checked to see
      the further action: reset with complete hotplug, or reset without
      hotplug. However, that's not enough for those PCI devices whose
      drivers can't support EEH, or those PCI devices without driver.
      So we need do so-called "partial hotplug" on basis of PCI devices.
      In the situation, part of PCI devices of the specific PE are
      unplugged and plugged again after PE reset.
      
      The patch changes pcibios_add_pci_devices() so that it can support
      full hotplug and so-called "partial" hotplug based on device-tree
      or real hardware. It's notable that pci_of_scan.c has been changed
      for a bit in order to support the "partial" hotplug based on dev-tree.
      
      Most of the generic code already supports that, we just need to
      plumb it properly on our side.
      Signed-off-by: default avatarGavin Shan <shangw@linux.vnet.ibm.com>
      Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
      ab444ec9