diff mbox

mptsas: Fixup device hotplug for VMWare ESXi

Message ID 1503579163-104386-1-git-send-email-hare@suse.de (mailing list archive)
State Accepted
Headers show

Commit Message

Hannes Reinecke Aug. 24, 2017, 12:52 p.m. UTC
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.

Bugzilla: https://bugzilla.suse.com/show_bug.cgi?id=1030850
Signed-off-by: Hannes Reinecke <hare@suse.com>
---
 drivers/message/fusion/mptsas.c | 7 +++----
 1 file changed, 3 insertions(+), 4 deletions(-)

Comments

Martin K. Petersen Aug. 25, 2017, 9:33 p.m. UTC | #1
Hannes,

> 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.

Applied to 4.14/scsi-queue. Thanks!
diff mbox

Patch

diff --git a/drivers/message/fusion/mptsas.c b/drivers/message/fusion/mptsas.c
index f6308ad..b9bd6aa 100644
--- a/drivers/message/fusion/mptsas.c
+++ b/drivers/message/fusion/mptsas.c
@@ -4352,11 +4352,10 @@  static void mptsas_expander_delete(MPT_ADAPTER *ioc,
 			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 hostplug */
+		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,