07 Jan, 2012

1 commit

  • pci_block_user_cfg_access was designed for the use case that a single
    context, the IPR driver, temporarily delays user space accesses to the
    config space via sysfs. This assumption became invalid by the time
    pci_dev_reset was added as locking instance. Today, if you run two loops
    in parallel that reset the same device via sysfs, you end up with a
    kernel BUG as pci_block_user_cfg_access detect the broken assumption.

    This reworks the pci_block_user_cfg_access to a sleeping service
    pci_cfg_access_lock and an atomic-compatible variant called
    pci_cfg_access_trylock. The former not only blocks user space access as
    before but also waits if access was already locked. The latter service
    just returns false in this case, allowing the caller to resolve the
    conflict instead of raising a BUG.

    Adaptions of the ipr driver were originally written by Brian King.

    Acked-by: Brian King
    Acked-by: Michael S. Tsirkin
    Signed-off-by: Jan Kiszka
    Signed-off-by: Jesse Barnes

    Jan Kiszka
     

31 Oct, 2011

1 commit


20 Oct, 2011

1 commit

  • If an adapter dump times out, the ipr driver will abort the
    dump and proceed to reset and recover the adapter. When an
    adapter dump completes, the work thread which is reading the
    adapter dump will initiate an adapter reset to recover the
    adapter. However, when the adapter dump gets aborted, the
    work thread should not initiate an adapter reset, since an
    adapter reset is already in progress. This fixes a case of
    calling pci_block_user_cfg_access overlapped, which results
    in a BUG.

    Signed-off-by: Brian King
    Signed-off-by: James Bottomley

    Brian King
     

16 Oct, 2011

1 commit

  • The write buffer command is used to download and burn new IOA FW images.
    The same interface can now be used to flash FPGA and flash back DRAM images.
    To download and flash the new images takes more than 15 minutes, so increase
    the write buffer command timeout to 30 minutes.

    The FPGA and flash back DRAM images don't have the same card_type as the IOA FW
    image. So, remove the sanity checking from the driver. The adapter has sanity
    checking and will only accept a valid image.

    Signed-off-by: Wayne Boyer
    Acked-by: Brian King
    Signed-off-by: James Bottomley

    Wayne Boyer
     

22 Sep, 2011

1 commit

  • When the ipr driver decides to dump the adapter, it changes the
    sdt_state to GET_DUMP, then prepares the adapter so that the dump
    can be read. However, if the ipr worker thread wakes up for some
    reason before the driver has put the adapter in a state where it
    can succesfully dump the adapter, the driver will start dumping
    the adapter too early, which can potentially trigger a BUG check
    in the pci config blocking API. Fix this by adding a new
    sdt_state to differentiate between the ipr driver wanting to dump
    the adapter in the near future and wanting to dump the adapter now.

    Signed-off-by: Brian King
    Signed-off-by: James Bottomley

    Brian King
     

02 May, 2011

2 commits


01 May, 2011

1 commit


22 Dec, 2010

1 commit


26 Oct, 2010

1 commit


08 Oct, 2010

1 commit

  • The structure definitions for reporting array errors did not have the correct
    size for the Array WWID field. This patch fixes those definitions. It also
    fixes part of the output formatting that did not have newlines and fixes size
    calculations.

    Signed-off-by: Wayne Boyer
    Acked-by: Brian King
    Signed-off-by: James Bottomley

    Wayne Boyer
     

06 Sep, 2010

2 commits


28 Jul, 2010

5 commits


22 Jul, 2010

1 commit

  • It was possible to overflow the buffer used to print out the formatted
    version of the resource path. The fix is to limit the number of
    bytes that get formatted.

    This patch also updates the ipr_show_resource_path function to display the
    resource address for devices that are attached to adapters that don't
    support resource paths.

    Signed-off-by: Wayne Boyer
    Acked-by: Brian King
    Signed-off-by: James Bottomley

    Wayne Boyer
     

25 May, 2010

3 commits


03 Mar, 2010

7 commits


07 Nov, 2009

1 commit


23 Aug, 2009

1 commit

  • ipr_cmd_label[] isn't big enough for an eight byte string plus terminator.
    Fix by shortening the string to seven bytes.

    Signed-off-by: Brian King
    Signed-off-by: James Bottomley
    Signed-off-by: James Bottomley

    Brian King
     

21 Jun, 2009

2 commits

  • MSI has only been tested on and known to work with PCI-E based adapters. This
    patch adds a field to struct ipr_chip_t to indicate which type of interrupt to
    use based on what is known about the chip.

    Signed-off-by: Wayne Boyer
    Acked-by: Brian King
    Signed-off-by: James Bottomley

    Wayne Boyer
     
  • The return value from pci_enable_msi() can not always be trusted. This patch
    adds code to generate an interrupt after MSI has been enabled and tests
    whether or not we can receive and process it. If the tests fails, then fall
    back to LSI.

    Signed-off-by: Wayne Boyer
    Acked-by: Brian King
    Signed-off-by: James Bottomley

    Wayne Boyer
     

13 Mar, 2009

1 commit


03 Jan, 2009

1 commit


30 Dec, 2008

1 commit


27 Jul, 2008

1 commit


09 May, 2007

1 commit

  • Use a newly added PCI API to issue a PCI Fundamental reset
    (warm reset) to a new ipr PCI-E adapter. Typically, the
    ipr adapter uses the start BIST bit in config space to reset
    an adapter. Issuing start BIST on this particular adapter
    results in the PCI-E logic on the card losing sync, which
    causes PCI-E errors, making the card unusable. The only reset
    mechanism that exists on this hardware that does not have this
    problem is PCI Fundamental reset (warm reset).

    Signed-off-by: Brian King
    Signed-off-by: James Bottomley

    Brian King
     

06 May, 2007

2 commits