提交 60b3e7bd 编写于 作者: L Linus Torvalds

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
...@@ -500,6 +500,7 @@ static void sas_revalidate_domain(struct work_struct *work) ...@@ -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) ...@@ -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);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册