]> git.proxmox.com Git - mirror_ubuntu-artful-kernel.git/commitdiff
scsi: mptsas: Fixup device hotplug for VMWare ESXi
authorHannes Reinecke <hare@suse.de>
Wed, 8 Nov 2017 04:10:00 +0000 (05:10 +0100)
committerStefan Bader <stefan.bader@canonical.com>
Mon, 20 Nov 2017 10:16:28 +0000 (11:16 +0100)
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>
Acked-by: Kleber Sacilotto de Souza <kleber.souza@canonical.com>
Signed-off-by: Stefan Bader <stefan.bader@canonical.com>
drivers/message/fusion/mptsas.c

index 7ebccfa8072a7ff8075ab2e71197713afc397dcf..43415fecc0b02a6d1f8d51d386bd5706bbb192c9 100644 (file)
@@ -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,