[SRU,X/Z/A] scsi: mptsas: Fixup device hotplug for VMWare ESXi

Message ID 1510114215-11365-2-git-send-email-gavin.guo@canonical.com
State New
Headers show
Series
  • [SRU,X/Z/A] scsi: mptsas: Fixup device hotplug for VMWare ESXi
Related show

Commit Message

Gavin Guo Nov. 8, 2017, 4:10 a.m.
From: Hannes Reinecke <hare@suse.de>

BugLink: http://bugs.launchpad.net/bugs/1730852

VMWare ESXi emulates an mptsas HBA, but exposes all drives as
direct-attached SAS drives.  This it not how the driver originally
envisioned things; SAS drives were supposed to be connected via an
expander, and only SATA drives would be direct attached.  As such, any
hotplug event for direct-attach SAS drives was silently ignored, and the
guest failed to detect new drives from within a VMWare ESXi environment.

[mkp: typos]

Bugzilla: https://bugzilla.suse.com/show_bug.cgi?id=1030850
Signed-off-by: Hannes Reinecke <hare@suse.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
(cherry picked from commit ee3e2d8392f695343d2fdfd43e881d14fb406d24)
Signed-off-by: Gavin Guo <gavin.guo@canonical.com>
---
 drivers/message/fusion/mptsas.c | 7 +++----
 1 file changed, 3 insertions(+), 4 deletions(-)

Comments

Kleber Souza Nov. 15, 2017, 10:31 a.m. | #1
On 11/08/17 05:10, Gavin Guo wrote:
> From: Hannes Reinecke <hare@suse.de>
> 
> BugLink: http://bugs.launchpad.net/bugs/1730852
> 
> VMWare ESXi emulates an mptsas HBA, but exposes all drives as
> direct-attached SAS drives.  This it not how the driver originally
> envisioned things; SAS drives were supposed to be connected via an
> expander, and only SATA drives would be direct attached.  As such, any
> hotplug event for direct-attach SAS drives was silently ignored, and the
> guest failed to detect new drives from within a VMWare ESXi environment.
> 
> [mkp: typos]
> 
> Bugzilla: https://bugzilla.suse.com/show_bug.cgi?id=1030850
> Signed-off-by: Hannes Reinecke <hare@suse.com>
> Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
> (cherry picked from commit ee3e2d8392f695343d2fdfd43e881d14fb406d24)
> Signed-off-by: Gavin Guo <gavin.guo@canonical.com>

Clean cherry-pick, limited to a single driver and good test results.

Acked-by: Kleber Sacilotto de Souza <kleber.souza@canonical.com>

> ---
>  drivers/message/fusion/mptsas.c | 7 +++----
>  1 file changed, 3 insertions(+), 4 deletions(-)
> 
> diff --git a/drivers/message/fusion/mptsas.c b/drivers/message/fusion/mptsas.c
> index 7ebccfa8072a..43415fecc0b0 100644
> --- a/drivers/message/fusion/mptsas.c
> +++ b/drivers/message/fusion/mptsas.c
> @@ -4351,11 +4351,10 @@ mptsas_hotplug_work(MPT_ADAPTER *ioc, struct fw_event_work *fw_event,
>  			return;
>  
>  		phy_info = mptsas_refreshing_device_handles(ioc, &sas_device);
> -		/* Only For SATA Device ADD */
> -		if (!phy_info && (sas_device.device_info &
> -				MPI_SAS_DEVICE_INFO_SATA_DEVICE)) {
> +		/* Device hot plug */
> +		if (!phy_info) {
>  			devtprintk(ioc, printk(MYIOC_s_DEBUG_FMT
> -				"%s %d SATA HOT PLUG: "
> +				"%s %d HOT PLUG: "
>  				"parent handle of device %x\n", ioc->name,
>  				__func__, __LINE__, sas_device.handle_parent));
>  			port_info = mptsas_find_portinfo_by_handle(ioc,
>
Stefan Bader Nov. 15, 2017, 10:41 a.m. | #2
On 08.11.2017 05:10, Gavin Guo wrote:
> From: Hannes Reinecke <hare@suse.de>
> 
> BugLink: http://bugs.launchpad.net/bugs/1730852
> 
> VMWare ESXi emulates an mptsas HBA, but exposes all drives as
> direct-attached SAS drives.  This it not how the driver originally
> envisioned things; SAS drives were supposed to be connected via an
> expander, and only SATA drives would be direct attached.  As such, any
> hotplug event for direct-attach SAS drives was silently ignored, and the
> guest failed to detect new drives from within a VMWare ESXi environment.
> 
> [mkp: typos]
> 
> Bugzilla: https://bugzilla.suse.com/show_bug.cgi?id=1030850
> Signed-off-by: Hannes Reinecke <hare@suse.com>
> Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
> (cherry picked from commit ee3e2d8392f695343d2fdfd43e881d14fb406d24)
> Signed-off-by: Gavin Guo <gavin.guo@canonical.com>
Acked-by: Stefan Bader <stefan.bader@canonical.com>

> ---
>  drivers/message/fusion/mptsas.c | 7 +++----
>  1 file changed, 3 insertions(+), 4 deletions(-)
> 
> diff --git a/drivers/message/fusion/mptsas.c b/drivers/message/fusion/mptsas.c
> index 7ebccfa8072a..43415fecc0b0 100644
> --- a/drivers/message/fusion/mptsas.c
> +++ b/drivers/message/fusion/mptsas.c
> @@ -4351,11 +4351,10 @@ mptsas_hotplug_work(MPT_ADAPTER *ioc, struct fw_event_work *fw_event,
>  			return;
>  
>  		phy_info = mptsas_refreshing_device_handles(ioc, &sas_device);
> -		/* Only For SATA Device ADD */
> -		if (!phy_info && (sas_device.device_info &
> -				MPI_SAS_DEVICE_INFO_SATA_DEVICE)) {
> +		/* Device hot plug */
> +		if (!phy_info) {
>  			devtprintk(ioc, printk(MYIOC_s_DEBUG_FMT
> -				"%s %d SATA HOT PLUG: "
> +				"%s %d HOT PLUG: "
>  				"parent handle of device %x\n", ioc->name,
>  				__func__, __LINE__, sas_device.handle_parent));
>  			port_info = mptsas_find_portinfo_by_handle(ioc,
>

Patch

diff --git a/drivers/message/fusion/mptsas.c b/drivers/message/fusion/mptsas.c
index 7ebccfa8072a..43415fecc0b0 100644
--- a/drivers/message/fusion/mptsas.c
+++ b/drivers/message/fusion/mptsas.c
@@ -4351,11 +4351,10 @@  mptsas_hotplug_work(MPT_ADAPTER *ioc, struct fw_event_work *fw_event,
 			return;
 
 		phy_info = mptsas_refreshing_device_handles(ioc, &sas_device);
-		/* Only For SATA Device ADD */
-		if (!phy_info && (sas_device.device_info &
-				MPI_SAS_DEVICE_INFO_SATA_DEVICE)) {
+		/* Device hot plug */
+		if (!phy_info) {
 			devtprintk(ioc, printk(MYIOC_s_DEBUG_FMT
-				"%s %d SATA HOT PLUG: "
+				"%s %d HOT PLUG: "
 				"parent handle of device %x\n", ioc->name,
 				__func__, __LINE__, sas_device.handle_parent));
 			port_info = mptsas_find_portinfo_by_handle(ioc,