mbox series

[v3,0/6] mpt3sas: Hot-Plug Surprise removal support on IOC.

Message ID 1537770916-16337-1-git-send-email-suganath-prabu.subramani@broadcom.com (mailing list archive)
Headers show
Series mpt3sas: Hot-Plug Surprise removal support on IOC. | expand

Message

Suganath Prabu S Sept. 24, 2018, 6:35 a.m. UTC
Posting below set of patches to support PCIe Hot Plug surprise removal,
and few defect fixes.

This is NOT the normal PCIe Hot Plug support, whereby the user informs the
OS that a hot removal is desired, the OS does an orderly shutdown of the
driver on the device, special hot plug circuitry removes power from the
PCIe slot, then the user can remove the device and replace it
(where orderly bring-up of the device is done).

With a true surprise removal (just removing HBA from a slot)
there is a possibility to get all kinds of PCIe transaction errors,
Below patches addresses those issues and remove HBA without bringing
the system down.

For surprise removal detection, driver does a PCI
read of IOC's vendor field in IOC's PCI configuration space.
If the read value is 0xFFFFFFFF this indicates that the device
might have hot removed and the device will be removed from driver.

V1 changes:
In Patch 0001 - unlock mutex, if active reset is in progress.

V2 changes:
Replaced mpt3sas_base_pci_device_is_unplugged with
pci_device_is_present.

V3 Change Set:
Simplified function "mpt3sas_base_pci_device_is_available" and
made inline

Suganath Prabu S (6):
  mpt3sas: Introduce      mpt3sas_base_pci_device_is_available
  mpt3sas: Separate out      mpt3sas_wait_for_ioc_to_operational
  mpt3sas: Introdude  _scsih_get_shost_and_ioc.
  mpt3sas: Fix Sync cache command failure during driver      unload.
  mpt3sas: Fix driver modifying NVRAM/persistent data.
  mpt3sas: Bump driver version to 27.100.00.00.

 drivers/scsi/mpt3sas/mpt3sas_base.c      | 135 +++++++++++++++-------
 drivers/scsi/mpt3sas/mpt3sas_base.h      |  11 +-
 drivers/scsi/mpt3sas/mpt3sas_config.c    |  32 +-----
 drivers/scsi/mpt3sas/mpt3sas_ctl.c       |  26 +----
 drivers/scsi/mpt3sas/mpt3sas_scsih.c     | 189 +++++++++++++++++++++++++++----
 drivers/scsi/mpt3sas/mpt3sas_transport.c |  82 +++-----------
 6 files changed, 298 insertions(+), 177 deletions(-)

Comments

Andy Shevchenko Sept. 25, 2018, 8:38 a.m. UTC | #1
On Mon, Sep 24, 2018 at 9:36 AM Suganath Prabu S
<suganath-prabu.subramani@broadcom.com> wrote:
>
> Posting below set of patches to support PCIe Hot Plug surprise removal,
> and few defect fixes.
>
> This is NOT the normal PCIe Hot Plug support, whereby the user informs the
> OS that a hot removal is desired, the OS does an orderly shutdown of the
> driver on the device, special hot plug circuitry removes power from the
> PCIe slot, then the user can remove the device and replace it
> (where orderly bring-up of the device is done).
>
> With a true surprise removal (just removing HBA from a slot)
> there is a possibility to get all kinds of PCIe transaction errors,
> Below patches addresses those issues and remove HBA without bringing
> the system down.
>
> For surprise removal detection, driver does a PCI
> read of IOC's vendor field in IOC's PCI configuration space.
> If the read value is 0xFFFFFFFF this indicates that the device
> might have hot removed and the device will be removed from driver.
>

AFAIR Lukas asked you to Cc new versions to Linux PCI mailing list
and, if I'm not mistaken, to him.

> V1 changes:
> In Patch 0001 - unlock mutex, if active reset is in progress.
>
> V2 changes:
> Replaced mpt3sas_base_pci_device_is_unplugged with
> pci_device_is_present.
>
> V3 Change Set:
> Simplified function "mpt3sas_base_pci_device_is_available" and
> made inline
>
> Suganath Prabu S (6):
>   mpt3sas: Introduce      mpt3sas_base_pci_device_is_available
>   mpt3sas: Separate out      mpt3sas_wait_for_ioc_to_operational
>   mpt3sas: Introdude  _scsih_get_shost_and_ioc.
>   mpt3sas: Fix Sync cache command failure during driver      unload.
>   mpt3sas: Fix driver modifying NVRAM/persistent data.
>   mpt3sas: Bump driver version to 27.100.00.00.
>
>  drivers/scsi/mpt3sas/mpt3sas_base.c      | 135 +++++++++++++++-------
>  drivers/scsi/mpt3sas/mpt3sas_base.h      |  11 +-
>  drivers/scsi/mpt3sas/mpt3sas_config.c    |  32 +-----
>  drivers/scsi/mpt3sas/mpt3sas_ctl.c       |  26 +----
>  drivers/scsi/mpt3sas/mpt3sas_scsih.c     | 189 +++++++++++++++++++++++++++----
>  drivers/scsi/mpt3sas/mpt3sas_transport.c |  82 +++-----------
>  6 files changed, 298 insertions(+), 177 deletions(-)
>
> --
> 1.8.3.1
>