[PULL,SRU,Bionic] hisi_sas driver fixes

Message ID 20180531220702.GA9580@xps13.dannf
State New
Headers show
Series
  • [PULL,SRU,Bionic] hisi_sas driver fixes
Related show

Pull-request

git://git.launchpad.net/~dannf/ubuntu/+source/linux/+git/linux hisi_sas-updates-bionic

Message

dann frazier May 31, 2018, 10:07 p.m.
I've combined fixes for the following bugs in this PR, as the fixes
all touch the same code:

hisi_sas robustness fixes:
  BugLink: https://bugs.launchpad.net/bugs/1774466

hisi_sas: Support newer v3 hardware:
  BugLink: https://bugs.launchpad.net/bugs/1774467

hisi_sas: improve performance by optimizing DQ locking:
  BugLink: https://bugs.launchpad.net/bugs/1774472

First one is a clean cherry-pick from mainline, remainder are all
clean cherry-picks from linux-next. Tested on HiSilicon D05 and
D06 platforms.

The following changes since commit b7be50f6450d62d2a2e3ad7599b63c6ca5c0006f:

  UBUNTU: Ubuntu-4.15.0-23.25 (2018-05-23 18:56:27 +0200)

are available in the Git repository at:

  git://git.launchpad.net/~dannf/ubuntu/+source/linux/+git/linux hisi_sas-updates-bionic

for you to fetch changes up to 0496497a32a3bdaed5bd18800945cf31c97a417f:

  scsi: hisi_sas: Mark PHY as in reset for nexus reset (2018-05-31 15:18:44 -0600)

----------------------------------------------------------------
John Garry (3):
      scsi: hisi_sas: print device id for errors
      scsi: hisi_sas: stop controller timer for reset
      scsi: hisi_sas: add readl poll timeout helper wrappers

Wei Yongjun (1):
      scsi: hisi_sas: fix a typo in hisi_sas_task_prep()

Xiang Chen (19):
      scsi: hisi_sas: initialize dq spinlock before use
      scsi: hisi_sas: delete timer when removing hisi_sas driver
      scsi: hisi_sas: optimise the usage of DQ locking
      scsi: hisi_sas: Add some checks to avoid free'ing a sas_task twice
      scsi: hisi_sas: check host frozen before calling "done" function
      scsi: hisi_sas: fix PI memory size
      scsi: hisi_sas: check sas_dev gone earlier in hisi_sas_abort_task()
      scsi: hisi_sas: update PHY linkrate after a controller reset
      scsi: hisi_sas: config ATA de-reset as an constrained command for v3 hw
      scsi: hisi_sas: relocate smp sg map
      scsi: hisi_sas: make return type of prep functions void
      scsi: hisi_sas: allocate slot buffer earlier
      scsi: hisi_sas: Don't lock DQ for complete task sending
      scsi: hisi_sas: Use device lock to protect slot alloc/free
      scsi: hisi_sas: change slot index allocation mode
      scsi: hisi_sas: Change common allocation mode of device id
      scsi: hisi_sas: Reset disks when discovered
      scsi: hisi_sas: Create a scsi_host_template per HW module
      scsi: hisi_sas: Mark PHY as in reset for nexus reset

Xiaofei Tan (12):
      scsi: hisi_sas: update RAS feature for later revision of v3 HW
      scsi: hisi_sas: check IPTT is valid before using it for v3 hw
      scsi: hisi_sas: remove redundant handling to event95 for v3
      scsi: hisi_sas: workaround a v3 hw hilink bug
      scsi: hisi_sas: add check of device in hisi_sas_task_exec()
      scsi: hisi_sas: Add LED feature for v3 hw
      scsi: hisi_sas: Init disks after controller reset
      scsi: hisi_sas: Try wait commands before before controller reset
      scsi: hisi_sas: Include TMF elements in struct hisi_sas_slot
      scsi: hisi_sas: Add v2 hw force PHY function for internal ATA command
      scsi: hisi_sas: Terminate STP reject quickly for v2 hw
      scsi: hisi_sas: Fix return value when get_free_slot() failed

 drivers/scsi/hisi_sas/hisi_sas.h       |  49 ++-
 drivers/scsi/hisi_sas/hisi_sas_main.c  | 560 +++++++++++++++++++++++----------
 drivers/scsi/hisi_sas/hisi_sas_v1_hw.c | 129 ++++----
 drivers/scsi/hisi_sas/hisi_sas_v2_hw.c | 262 ++++++++-------
 drivers/scsi/hisi_sas/hisi_sas_v3_hw.c | 429 +++++++++++++++++--------
 5 files changed, 930 insertions(+), 499 deletions(-)

Comments

Stefan Bader June 5, 2018, 7:47 p.m. | #1
On 31.05.2018 15:07, dann frazier wrote:
> I've combined fixes for the following bugs in this PR, as the fixes
> all touch the same code:
> 
> hisi_sas robustness fixes:
>   BugLink: https://bugs.launchpad.net/bugs/1774466
> 
> hisi_sas: Support newer v3 hardware:
>   BugLink: https://bugs.launchpad.net/bugs/1774467
> 
> hisi_sas: improve performance by optimizing DQ locking:
>   BugLink: https://bugs.launchpad.net/bugs/1774472
> 
> First one is a clean cherry-pick from mainline, remainder are all
> clean cherry-picks from linux-next. Tested on HiSilicon D05 and
> D06 platforms.
> 
> The following changes since commit b7be50f6450d62d2a2e3ad7599b63c6ca5c0006f:
> 
>   UBUNTU: Ubuntu-4.15.0-23.25 (2018-05-23 18:56:27 +0200)
> 
> are available in the Git repository at:
> 
>   git://git.launchpad.net/~dannf/ubuntu/+source/linux/+git/linux hisi_sas-updates-bionic
> 
> for you to fetch changes up to 0496497a32a3bdaed5bd18800945cf31c97a417f:
> 
>   scsi: hisi_sas: Mark PHY as in reset for nexus reset (2018-05-31 15:18:44 -0600)
> 
> ----------------------------------------------------------------
> John Garry (3):
>       scsi: hisi_sas: print device id for errors
>       scsi: hisi_sas: stop controller timer for reset
>       scsi: hisi_sas: add readl poll timeout helper wrappers
> 
> Wei Yongjun (1):
>       scsi: hisi_sas: fix a typo in hisi_sas_task_prep()
> 
> Xiang Chen (19):
>       scsi: hisi_sas: initialize dq spinlock before use
>       scsi: hisi_sas: delete timer when removing hisi_sas driver
>       scsi: hisi_sas: optimise the usage of DQ locking
>       scsi: hisi_sas: Add some checks to avoid free'ing a sas_task twice
>       scsi: hisi_sas: check host frozen before calling "done" function
>       scsi: hisi_sas: fix PI memory size
>       scsi: hisi_sas: check sas_dev gone earlier in hisi_sas_abort_task()
>       scsi: hisi_sas: update PHY linkrate after a controller reset
>       scsi: hisi_sas: config ATA de-reset as an constrained command for v3 hw
>       scsi: hisi_sas: relocate smp sg map
>       scsi: hisi_sas: make return type of prep functions void
>       scsi: hisi_sas: allocate slot buffer earlier
>       scsi: hisi_sas: Don't lock DQ for complete task sending
>       scsi: hisi_sas: Use device lock to protect slot alloc/free
>       scsi: hisi_sas: change slot index allocation mode
>       scsi: hisi_sas: Change common allocation mode of device id
>       scsi: hisi_sas: Reset disks when discovered
>       scsi: hisi_sas: Create a scsi_host_template per HW module
>       scsi: hisi_sas: Mark PHY as in reset for nexus reset
> 
> Xiaofei Tan (12):
>       scsi: hisi_sas: update RAS feature for later revision of v3 HW
>       scsi: hisi_sas: check IPTT is valid before using it for v3 hw
>       scsi: hisi_sas: remove redundant handling to event95 for v3
>       scsi: hisi_sas: workaround a v3 hw hilink bug
>       scsi: hisi_sas: add check of device in hisi_sas_task_exec()
>       scsi: hisi_sas: Add LED feature for v3 hw
>       scsi: hisi_sas: Init disks after controller reset
>       scsi: hisi_sas: Try wait commands before before controller reset
>       scsi: hisi_sas: Include TMF elements in struct hisi_sas_slot
>       scsi: hisi_sas: Add v2 hw force PHY function for internal ATA command
>       scsi: hisi_sas: Terminate STP reject quickly for v2 hw
>       scsi: hisi_sas: Fix return value when get_free_slot() failed
> 
>  drivers/scsi/hisi_sas/hisi_sas.h       |  49 ++-
>  drivers/scsi/hisi_sas/hisi_sas_main.c  | 560 +++++++++++++++++++++++----------
>  drivers/scsi/hisi_sas/hisi_sas_v1_hw.c | 129 ++++----
>  drivers/scsi/hisi_sas/hisi_sas_v2_hw.c | 262 ++++++++-------
>  drivers/scsi/hisi_sas/hisi_sas_v3_hw.c | 429 +++++++++++++++++--------
>  5 files changed, 930 insertions(+), 499 deletions(-)
> 
Acked-by: Stefan Bader <stefan.bader@canonical.com>
Kleber Souza June 6, 2018, 12:37 a.m. | #2
On 05/31/18 15:07, dann frazier wrote:
> I've combined fixes for the following bugs in this PR, as the fixes
> all touch the same code:
> 
> hisi_sas robustness fixes:
>   BugLink: https://bugs.launchpad.net/bugs/1774466
> 
> hisi_sas: Support newer v3 hardware:
>   BugLink: https://bugs.launchpad.net/bugs/1774467
> 
> hisi_sas: improve performance by optimizing DQ locking:
>   BugLink: https://bugs.launchpad.net/bugs/1774472
> 
> First one is a clean cherry-pick from mainline, remainder are all
> clean cherry-picks from linux-next. Tested on HiSilicon D05 and
> D06 platforms.
> 
> The following changes since commit b7be50f6450d62d2a2e3ad7599b63c6ca5c0006f:
> 
>   UBUNTU: Ubuntu-4.15.0-23.25 (2018-05-23 18:56:27 +0200)
> 
> are available in the Git repository at:
> 
>   git://git.launchpad.net/~dannf/ubuntu/+source/linux/+git/linux hisi_sas-updates-bionic
> 
> for you to fetch changes up to 0496497a32a3bdaed5bd18800945cf31c97a417f:
> 
>   scsi: hisi_sas: Mark PHY as in reset for nexus reset (2018-05-31 15:18:44 -0600)
> 
> ----------------------------------------------------------------
> John Garry (3):
>       scsi: hisi_sas: print device id for errors
>       scsi: hisi_sas: stop controller timer for reset
>       scsi: hisi_sas: add readl poll timeout helper wrappers
> 
> Wei Yongjun (1):
>       scsi: hisi_sas: fix a typo in hisi_sas_task_prep()
> 
> Xiang Chen (19):
>       scsi: hisi_sas: initialize dq spinlock before use
>       scsi: hisi_sas: delete timer when removing hisi_sas driver
>       scsi: hisi_sas: optimise the usage of DQ locking
>       scsi: hisi_sas: Add some checks to avoid free'ing a sas_task twice
>       scsi: hisi_sas: check host frozen before calling "done" function
>       scsi: hisi_sas: fix PI memory size
>       scsi: hisi_sas: check sas_dev gone earlier in hisi_sas_abort_task()
>       scsi: hisi_sas: update PHY linkrate after a controller reset
>       scsi: hisi_sas: config ATA de-reset as an constrained command for v3 hw
>       scsi: hisi_sas: relocate smp sg map
>       scsi: hisi_sas: make return type of prep functions void
>       scsi: hisi_sas: allocate slot buffer earlier
>       scsi: hisi_sas: Don't lock DQ for complete task sending
>       scsi: hisi_sas: Use device lock to protect slot alloc/free
>       scsi: hisi_sas: change slot index allocation mode
>       scsi: hisi_sas: Change common allocation mode of device id
>       scsi: hisi_sas: Reset disks when discovered
>       scsi: hisi_sas: Create a scsi_host_template per HW module
>       scsi: hisi_sas: Mark PHY as in reset for nexus reset
> 
> Xiaofei Tan (12):
>       scsi: hisi_sas: update RAS feature for later revision of v3 HW
>       scsi: hisi_sas: check IPTT is valid before using it for v3 hw
>       scsi: hisi_sas: remove redundant handling to event95 for v3
>       scsi: hisi_sas: workaround a v3 hw hilink bug
>       scsi: hisi_sas: add check of device in hisi_sas_task_exec()
>       scsi: hisi_sas: Add LED feature for v3 hw
>       scsi: hisi_sas: Init disks after controller reset
>       scsi: hisi_sas: Try wait commands before before controller reset
>       scsi: hisi_sas: Include TMF elements in struct hisi_sas_slot
>       scsi: hisi_sas: Add v2 hw force PHY function for internal ATA command
>       scsi: hisi_sas: Terminate STP reject quickly for v2 hw
>       scsi: hisi_sas: Fix return value when get_free_slot() failed
> 
>  drivers/scsi/hisi_sas/hisi_sas.h       |  49 ++-
>  drivers/scsi/hisi_sas/hisi_sas_main.c  | 560 +++++++++++++++++++++++----------
>  drivers/scsi/hisi_sas/hisi_sas_v1_hw.c | 129 ++++----
>  drivers/scsi/hisi_sas/hisi_sas_v2_hw.c | 262 ++++++++-------
>  drivers/scsi/hisi_sas/hisi_sas_v3_hw.c | 429 +++++++++++++++++--------
>  5 files changed, 930 insertions(+), 499 deletions(-)
> 

Acked-by: Kleber Sacilotto de Souza <kleber.souza@canonical.com>
Khaled Elmously June 8, 2018, 12:37 a.m. | #3
Applied to Bionic

On 2018-05-31 16:07:02 , dann frazier wrote:
> I've combined fixes for the following bugs in this PR, as the fixes
> all touch the same code:
> 
> hisi_sas robustness fixes:
>   BugLink: https://bugs.launchpad.net/bugs/1774466
> 
> hisi_sas: Support newer v3 hardware:
>   BugLink: https://bugs.launchpad.net/bugs/1774467
> 
> hisi_sas: improve performance by optimizing DQ locking:
>   BugLink: https://bugs.launchpad.net/bugs/1774472
> 
> First one is a clean cherry-pick from mainline, remainder are all
> clean cherry-picks from linux-next. Tested on HiSilicon D05 and
> D06 platforms.
> 
> The following changes since commit b7be50f6450d62d2a2e3ad7599b63c6ca5c0006f:
> 
>   UBUNTU: Ubuntu-4.15.0-23.25 (2018-05-23 18:56:27 +0200)
> 
> are available in the Git repository at:
> 
>   git://git.launchpad.net/~dannf/ubuntu/+source/linux/+git/linux hisi_sas-updates-bionic
> 
> for you to fetch changes up to 0496497a32a3bdaed5bd18800945cf31c97a417f:
> 
>   scsi: hisi_sas: Mark PHY as in reset for nexus reset (2018-05-31 15:18:44 -0600)
> 
> ----------------------------------------------------------------
> John Garry (3):
>       scsi: hisi_sas: print device id for errors
>       scsi: hisi_sas: stop controller timer for reset
>       scsi: hisi_sas: add readl poll timeout helper wrappers
> 
> Wei Yongjun (1):
>       scsi: hisi_sas: fix a typo in hisi_sas_task_prep()
> 
> Xiang Chen (19):
>       scsi: hisi_sas: initialize dq spinlock before use
>       scsi: hisi_sas: delete timer when removing hisi_sas driver
>       scsi: hisi_sas: optimise the usage of DQ locking
>       scsi: hisi_sas: Add some checks to avoid free'ing a sas_task twice
>       scsi: hisi_sas: check host frozen before calling "done" function
>       scsi: hisi_sas: fix PI memory size
>       scsi: hisi_sas: check sas_dev gone earlier in hisi_sas_abort_task()
>       scsi: hisi_sas: update PHY linkrate after a controller reset
>       scsi: hisi_sas: config ATA de-reset as an constrained command for v3 hw
>       scsi: hisi_sas: relocate smp sg map
>       scsi: hisi_sas: make return type of prep functions void
>       scsi: hisi_sas: allocate slot buffer earlier
>       scsi: hisi_sas: Don't lock DQ for complete task sending
>       scsi: hisi_sas: Use device lock to protect slot alloc/free
>       scsi: hisi_sas: change slot index allocation mode
>       scsi: hisi_sas: Change common allocation mode of device id
>       scsi: hisi_sas: Reset disks when discovered
>       scsi: hisi_sas: Create a scsi_host_template per HW module
>       scsi: hisi_sas: Mark PHY as in reset for nexus reset
> 
> Xiaofei Tan (12):
>       scsi: hisi_sas: update RAS feature for later revision of v3 HW
>       scsi: hisi_sas: check IPTT is valid before using it for v3 hw
>       scsi: hisi_sas: remove redundant handling to event95 for v3
>       scsi: hisi_sas: workaround a v3 hw hilink bug
>       scsi: hisi_sas: add check of device in hisi_sas_task_exec()
>       scsi: hisi_sas: Add LED feature for v3 hw
>       scsi: hisi_sas: Init disks after controller reset
>       scsi: hisi_sas: Try wait commands before before controller reset
>       scsi: hisi_sas: Include TMF elements in struct hisi_sas_slot
>       scsi: hisi_sas: Add v2 hw force PHY function for internal ATA command
>       scsi: hisi_sas: Terminate STP reject quickly for v2 hw
>       scsi: hisi_sas: Fix return value when get_free_slot() failed
> 
>  drivers/scsi/hisi_sas/hisi_sas.h       |  49 ++-
>  drivers/scsi/hisi_sas/hisi_sas_main.c  | 560 +++++++++++++++++++++++----------
>  drivers/scsi/hisi_sas/hisi_sas_v1_hw.c | 129 ++++----
>  drivers/scsi/hisi_sas/hisi_sas_v2_hw.c | 262 ++++++++-------
>  drivers/scsi/hisi_sas/hisi_sas_v3_hw.c | 429 +++++++++++++++++--------
>  5 files changed, 930 insertions(+), 499 deletions(-)
> 
> -- 
> kernel-team mailing list
> kernel-team@lists.ubuntu.com
> https://lists.ubuntu.com/mailman/listinfo/kernel-team