1. 17 6月, 2009 2 次提交
  2. 12 6月, 2009 1 次提交
    • A
      PCI: Add support for turning PCIe ECRC on or off · 43c16408
      Andrew Patterson 提交于
      Adds support for PCI Express transaction layer end-to-end CRC checking
      (ECRC).  This patch will enable/disable ECRC checking by setting/clearing
      the ECRC Check Enable and/or ECRC Generation Enable bits for devices that
      support ECRC.
      
      The ECRC setting is controlled by the "pci=ecrc=<policy>" command-line
      option. If this option is not set or is set to 'bios", the enable and
      generation bits are left in whatever state that firmware/BIOS set them to.
      The "off" setting turns them off, and the "on" option turns them on (if the
      device supports it).
      
      Turning ECRC on or off can be a data integrity versus performance
      tradeoff.  In theory, turning it on will catch more data errors, turning
      it off means possibly better performance since CRC does not need to be
      calculated by the PCIe hardware and packet sizes are reduced.
      Signed-off-by: NAndrew Patterson <andrew.patterson@hp.com>
      Signed-off-by: NJesse Barnes <jbarnes@virtuousgeek.org>
      43c16408
  3. 20 3月, 2009 1 次提交
    • R
      PCI: PCIe portdrv: Remove struct pcie_port_service_id · 22106368
      Rafael J. Wysocki 提交于
      The PCI Express port driver uses 'struct pcie_port_service_id' for
      matching port service devices and drivers, but this structure
      contains fields that duplicate information from the port device
      itself (vendor, device, subvendor, subdevice) and fields that are not
      used by any existing port service driver (class, class_mask,
      drvier_data).  Also, both existing port service drivers (AER and
      PCIe HP) don't even use the vendor and device fields for device
      matching.  Therefore 'struct pcie_port_service_id' can be removed
      altogether and the only useful members of it (port_type, service) can
      be introduced directly into the port service device and port service
      driver structures.  That simplifies the code quite a bit and reduces
      its size.
      Signed-off-by: NRafael J. Wysocki <rjw@sisk.pl>
      Signed-off-by: NJesse Barnes <jbarnes@virtuousgeek.org>
      22106368
  4. 13 3月, 2009 1 次提交
  5. 25 2月, 2009 1 次提交
  6. 17 12月, 2008 1 次提交
  7. 21 10月, 2008 2 次提交
  8. 26 6月, 2008 1 次提交
  9. 21 4月, 2008 2 次提交
  10. 29 11月, 2007 1 次提交
  11. 12 7月, 2007 2 次提交
  12. 22 11月, 2006 1 次提交
    • D
      WorkStruct: Pass the work_struct pointer instead of context data · 65f27f38
      David Howells 提交于
      Pass the work_struct pointer to the work function rather than context data.
      The work function can use container_of() to work out the data.
      
      For the cases where the container of the work_struct may go away the moment the
      pending bit is cleared, it is made possible to defer the release of the
      structure by deferring the clearing of the pending bit.
      
      To make this work, an extra flag is introduced into the management side of the
      work_struct.  This governs auto-release of the structure upon execution.
      
      Ordinarily, the work queue executor would release the work_struct for further
      scheduling or deallocation by clearing the pending bit prior to jumping to the
      work function.  This means that, unless the driver makes some guarantee itself
      that the work_struct won't go away, the work function may not access anything
      else in the work_struct or its container lest they be deallocated..  This is a
      problem if the auxiliary data is taken away (as done by the last patch).
      
      However, if the pending bit is *not* cleared before jumping to the work
      function, then the work function *may* access the work_struct and its container
      with no problems.  But then the work function must itself release the
      work_struct by calling work_release().
      
      In most cases, automatic release is fine, so this is the default.  Special
      initiators exist for the non-auto-release case (ending in _NAR).
      Signed-Off-By: NDavid Howells <dhowells@redhat.com>
      65f27f38
  13. 27 9月, 2006 2 次提交
    • G
      PCI: fix __must_check warnings · b19441af
      Greg Kroah-Hartman 提交于
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      b19441af
    • Z
      PCI-Express AER implemetation: AER core and aerdriver · 6c2b374d
      Zhang, Yanmin 提交于
      Patch 3 implements the core part of PCI-Express AER and aerdrv
      port service driver.
      
      When a root port service device is probed, the aerdrv will call
      request_irq to register irq handler for AER error interrupt.
      
      When a device sends an PCI-Express error message to the root port,
      the root port will trigger an interrupt, by either MSI or IO-APIC,
      then kernel would run the irq handler. The handler collects root
      error status register and schedules a work. The work will call
      the core part to process the error based on its type
      (Correctable/non-fatal/fatal).
      
      As for Correctable errors, the patch chooses to just clear the correctable
      error status register of the device.
      
      As for the non-fatal error, the patch follows generic PCI error handler
      rules to call the error callback functions of the endpoint's driver. If
      the device is a bridge, the patch chooses to broadcast the error to
      downstream devices.
      
      As for the fatal error, the patch resets the pci-express link and
      follows generic PCI error handler rules to call the error callback
      functions of the endpoint's driver. If the device is a bridge, the patch
      chooses to broadcast the error to downstream devices.
      Signed-off-by: NZhang Yanmin <yanmin.zhang@intel.com>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      6c2b374d