forked from luck/tmp_suning_uos_patched
SCSI fixes on 20150314
This is a simple fix for a domain revalidation crash which has recently turned up in the libsas code (applies to mvsas, isc and aic94xx). Signed-off-by: James Bottomley <JBottomley@Parallels.com> -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 iQEcBAABAgAGBQJVBHs/AAoJEDeqqVYsXL0M9AkH/3x305Mi8z4Lcf4ZT6ZY8Xik pSYXPzBEKSTKYYdVJ1sIWoi1lhGLTDQEEB1WrCCy5esJK0uJY656ZeQM7kEyDBiA ynfu5WWad4vRSEXUAOtWoqplHWBIjXIbhxv+DA4oeFOr6q02wxOHuAQO3s8yFLXi 6hSPvH9Fu3EHQIF6NgJ3XSvnLfKyFeJsvwJwrPnFijsvKCOLzyRLup5w2W1EvWKz +dozzVoRBEmhllskIQaGECeQww44tPiDpiLayMIsRt7cqk7e+UBd+h5kZEOqSvQX pgJiCQFp2J9lRLCU8Er/xDx/BLcr+BFWi6IM46XqcoAWpRBwUYI9KLOZyCyxijk= =U7/F -----END PGP SIGNATURE----- Merge tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi Pull SCSI fix from James Bottomley: "This is a simple fix for a domain revalidation crash which has recently turned up in the libsas code (applies to mvsas, isc and aic94xx)" * tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi: libsas: Fix Kernel Crash in smp_execute_task
This commit is contained in:
commit
60b3e7bd6a
|
@ -500,6 +500,7 @@ static void sas_revalidate_domain(struct work_struct *work)
|
||||||
struct sas_discovery_event *ev = to_sas_discovery_event(work);
|
struct sas_discovery_event *ev = to_sas_discovery_event(work);
|
||||||
struct asd_sas_port *port = ev->port;
|
struct asd_sas_port *port = ev->port;
|
||||||
struct sas_ha_struct *ha = port->ha;
|
struct sas_ha_struct *ha = port->ha;
|
||||||
|
struct domain_device *ddev = port->port_dev;
|
||||||
|
|
||||||
/* prevent revalidation from finding sata links in recovery */
|
/* prevent revalidation from finding sata links in recovery */
|
||||||
mutex_lock(&ha->disco_mutex);
|
mutex_lock(&ha->disco_mutex);
|
||||||
|
@ -514,8 +515,9 @@ static void sas_revalidate_domain(struct work_struct *work)
|
||||||
SAS_DPRINTK("REVALIDATING DOMAIN on port %d, pid:%d\n", port->id,
|
SAS_DPRINTK("REVALIDATING DOMAIN on port %d, pid:%d\n", port->id,
|
||||||
task_pid_nr(current));
|
task_pid_nr(current));
|
||||||
|
|
||||||
if (port->port_dev)
|
if (ddev && (ddev->dev_type == SAS_FANOUT_EXPANDER_DEVICE ||
|
||||||
res = sas_ex_revalidate_domain(port->port_dev);
|
ddev->dev_type == SAS_EDGE_EXPANDER_DEVICE))
|
||||||
|
res = sas_ex_revalidate_domain(ddev);
|
||||||
|
|
||||||
SAS_DPRINTK("done REVALIDATING DOMAIN on port %d, pid:%d, res 0x%x\n",
|
SAS_DPRINTK("done REVALIDATING DOMAIN on port %d, pid:%d, res 0x%x\n",
|
||||||
port->id, task_pid_nr(current), res);
|
port->id, task_pid_nr(current), res);
|
||||||
|
|
Loading…
Reference in New Issue
Block a user