1. 31 8月, 2017 2 次提交
  2. 22 11月, 2016 1 次提交
    • R
      powerpc/pci: Always print PHB and PE numbers as hexadecimal · 1f52f176
      Russell Currey 提交于
      PHB, PE (and by association MVE) numbers are printed as a mix of decimal
      and hexadecimal throughout the kernel.  This can be misleading, so make
      them all hexadecimal.
      
      Standardising on hex instead of dec because:
      
       - PHB numbers are presented in hex in sysfs/debugfs (and lspci, etc)
       - PE numbers are presented as hex in sysfs and parsed in hex in debugfs
      
      The only place I think this could cause confusing are the messages during
      boot, i.e.
      
      	pci 000a:01     : [PE# 000] Secondary bus 1 associated with PE#0
      
      which can be a quick way to check PE numbers.  pe_level_printk() will
      only print two characters instead of three, so the above would be
      
      	pci 000a:01     : [PE# 00] Secondary bus 1 associated with PE#0
      
      which gives a hint it's in hex.
      Signed-off-by: NRussell Currey <ruscur@russell.cc>
      Signed-off-by: NMichael Ellerman <mpe@ellerman.id.au>
      1f52f176
  3. 14 6月, 2016 1 次提交
  4. 30 5月, 2016 2 次提交
  5. 21 10月, 2015 1 次提交
  6. 13 5月, 2015 1 次提交
  7. 24 3月, 2015 2 次提交
  8. 30 9月, 2014 3 次提交
  9. 05 8月, 2014 3 次提交
  10. 28 7月, 2014 1 次提交
    • M
      powerpc/pseries: Switch pseries drivers to use machine_xxx_initcall() · 8e83e905
      Michael Ellerman 提交于
      A lot of the code in platforms/pseries is using non-machine initcalls.
      That means if a kernel built with pseries support runs on another
      platform, for example powernv, the initcalls will still run.
      
      Most of these cases are OK, though sometimes only due to luck. Some were
      having more effect:
      
       * hcall_inst_init
        - Checking FW_FEATURE_LPAR which is set on ps3 & celleb.
       * mobility_sysfs_init
        - created sysfs files unconditionally
        - but no effect due to ENOSYS from rtas_ibm_suspend_me()
       * apo_pm_init
        - created sysfs, allows write
        - nothing checks the value written to though
       * alloc_dispatch_log_kmem_cache
        - creating kmem_cache on non-pseries machines
      Signed-off-by: NMichael Ellerman <mpe@ellerman.id.au>
      Signed-off-by: NBenjamin Herrenschmidt <benh@kernel.crashing.org>
      8e83e905
  11. 28 4月, 2014 3 次提交
  12. 17 2月, 2014 1 次提交
  13. 15 1月, 2014 1 次提交
  14. 21 11月, 2013 1 次提交
  15. 24 7月, 2013 3 次提交
    • G
      powerpc/eeh: Introdce flag to protect sysfs · ab55d218
      Gavin Shan 提交于
      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: NGavin Shan <shangw@linux.vnet.ibm.com>
      Signed-off-by: NBenjamin Herrenschmidt <benh@kernel.crashing.org>
      ab55d218
    • G
      powerpc/eeh: Don't use pci_dev during BAR restore · 4b83bd45
      Gavin Shan 提交于
      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: NGavin Shan <shangw@linux.vnet.ibm.com>
      Signed-off-by: NBenjamin Herrenschmidt <benh@kernel.crashing.org>
      4b83bd45
    • G
      powerpc/eeh: Use partial hotplug for EEH unaware drivers · f5c57710
      Gavin Shan 提交于
      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: NGavin Shan <shangw@linux.vnet.ibm.com>
      Signed-off-by: NBenjamin Herrenschmidt <benh@kernel.crashing.org>
      f5c57710
  16. 10 6月, 2013 1 次提交
  17. 10 9月, 2012 4 次提交
    • G
      powerpc/eeh: Probe mode support · d7bb8862
      Gavin Shan 提交于
      While EEH module is installed, PCI devices is checked one by one
      to see if it supports eeh. On different platforms, the PCI devices
      are referred through different ways when the EEH module is loaded.
      For example, on pSeries platform, that is done by OF node. However,
      we would do that by real PCI devices (struct pci_dev) on PowerNV
      platform in future. So we needs some mechanism to differentiate
      those cases by classifying them to probe modes, either from OF
      nodes or real PCI devices.
      
      The patch implements the support to eeh probe mode. Also, the
      EEH on pSeries has set it into EEH_PROBE_MODE_DEVTREE. That means
      the probe will be done based on OF nodes on pSeries platform.
      
      In addition, On pSeries platform, it's done by OF nodes. The patch
      moves the the probe function from EEH core to platform dependent
      backend and some cleanup applied.
      Signed-off-by: NGavin Shan <shangw@linux.vnet.ibm.com>
      Signed-off-by: NBenjamin Herrenschmidt <benh@kernel.crashing.org>
      d7bb8862
    • G
      powerpc/eeh: Make EEH operations based on PE · 371a395d
      Gavin Shan 提交于
      Originally, all the EEH operations were implemented based on OF node.
      
      Actually, it explicitly breaks the rules that the operation target
      is PE instead of device. Therefore, the patch makes all the operations
      based on PE instead of device.
      
      Unfortunately, the backend for config space has to be kept as original
      because it doesn't depend on PE.
      Signed-off-by: NGavin Shan <shangw@linux.vnet.ibm.com>
      Signed-off-by: NBenjamin Herrenschmidt <benh@kernel.crashing.org>
      371a395d
    • G
      powerpc/eeh: More logs for EEH initialization · 3ea1ae98
      Gavin Shan 提交于
      The patch adds more logs to EEH initialization functions for
      debugging purpose. Also, the machine type (pSeries) is checked
      in the platform initialization to assure it's the correct platform
      to invoke it.
      Signed-off-by: NGavin Shan <shangw@linux.vnet.ibm.com>
      Signed-off-by: NBenjamin Herrenschmidt <benh@kernel.crashing.org>
      3ea1ae98
    • G
      powerpc/eeh: Move EEH initialization around · 35e5cfe2
      Gavin Shan 提交于
      Currently, we have 3 phases for EEH initialization on pSeries platform.
      All of them are done through builtin functions: platform initialization,
      EEH device creation, and EEH subsystem enablement. All of them are done
      no later than ppc_md.setup_arch. That means that the slab/slub isn't ready
      yet, so we have to allocate memory chunks on basis of PAGE_SIZE for those
      dynamically created EEH devices. That's pretty expensive.
      
      In order to utilize slab/slub for memory allocation, we have to move the EEH
      initialization functions around, but all of them should be called after slab
      is ready.
      Signed-off-by: NGavin Shan <shangw@linux.vnet.ibm.com>
      Signed-off-by: NBenjamin Herrenschmidt <benh@kernel.crashing.org>
      35e5cfe2
  18. 10 7月, 2012 1 次提交
  19. 09 3月, 2012 8 次提交