[PATCH 15/24] MAINTAINERS: remove firmware/isci/

2012-11-23 Thread Cesar Eduardo Barros
This directory was removed by commit 7d99b3a (isci, firmware: Remove
isci fallback parameter blob and generator).

Cc: Ben Hutchings 
Cc: Dan Williams 
Cc: James Bottomley 
Cc: Intel SCU Linux support 
Cc: Lukasz Dorau 
Cc: Maciej Patelczyk 
Cc: Dave Jiang 
Cc: linux-scsi@vger.kernel.org
Signed-off-by: Cesar Eduardo Barros 
---
 MAINTAINERS | 1 -
 1 file changed, 1 deletion(-)

diff --git a/MAINTAINERS b/MAINTAINERS
index bd3049f..3a09993 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -3876,7 +3876,6 @@ L:linux-scsi@vger.kernel.org
 T: git git://git.code.sf.net/p/intel-sas/isci
 S: Supported
 F: drivers/scsi/isci/
-F: firmware/isci/
 
 INTEL IDLE DRIVER
 M: Len Brown 
-- 
1.7.11.7

--
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [RESEND][PATCH 11/20][SCSI] mpt3sas: Ioctl Support for MPT based controller

2012-11-23 Thread James Bottomley
On Mon, 2012-10-08 at 06:28 +0530, sreekanth.re...@lsi.com wrote:
> At the line number 475 of mpt3sas.ctl file(i.e at line number 488 in patch 
> file)
> and in the function "mpt3sas_ctl_reset_handler" there was type mistake.
> i.e instead of MPT3SAS_FMT it is typed as MPT3SAS_FMT9/13/2012.
> So because of this type mistake there was a compilation error.
> 
> This patch provide ioctl Support for MPT (Message Passing Technology)
> based controller

This still doesn't seem to fix the compile failure:

drivers/scsi/mpt3sas/mpt3sas_scsih.c: In function
‘_scsih_sas_broadcast_primitive_event’:
drivers/scsi/mpt3sas/mpt3sas_scsih.c:5368:2: error: ‘event_data’
undeclared (first use in this function)
drivers/scsi/mpt3sas/mpt3sas_scsih.c:5368:2: note: each undeclared
identifier is reported only once for each function it appears in
make[3]: *** [drivers/scsi/mpt3sas/mpt3sas_scsih.o] Error 1

Could you please build against scsi.git scsi-misc and see if you can
find the actual problem.

Thanks,

James


--
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 00/20, v4] Make ib_srp better suited for H.A. purposes

2012-11-23 Thread Bart Van Assche

On 09/27/12 02:31, David Dillow wrote:

On Tue, 2012-09-25 at 17:05 +0200, Bart Van Assche wrote:

On 08/09/12 17:41, Bart Van Assche wrote:

[ ... ]


Hello Dave,

More than six weeks have elapsed since I posted version four of this
patch series. It would be appreciated if you could tell me when review
comments for this patch series will be posted. I'd also like to remind
you that some time ago you asked other people to wait with posting more
ib_srp patches until this patch series is upstream [1, 2].


Yes, it has taken me far more time than I expected to get to these. I am
in the middle of fiscal-year-end thrash, and will attend to the SRP
backlog next week.


(replying to an e-mail of one month ago)

Hello Dave,

Will you have time next week to review the srp-ha patch series ?

Thanks,

Bart.
--
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH 3/5] qla4xxx: Fix memory corruption issue in qla4xxx_get_ep_fwdb.

2012-11-23 Thread vikas . chaudhary
From: Manish Rangankar 

In qla4xxx_get_ep_fwdb(), dst_addr is of type struct sockaddr.
We are copying sizeof(struct sockaddr_in6) bytes to dst_addr
which is 12 bytes larger. This will cause memory corruption.
So we change dst_addr to struct sockaddr_storage which is
of 128 byte, large enough to hold sizeof(struct sockaddr_in6).

Reported-by: Dan Carpenter 
Signed-off-by: Manish Rangankar 
Signed-off-by: Vikas Chaudhary 
---
 drivers/scsi/qla4xxx/ql4_os.c |   11 +++
 1 files changed, 7 insertions(+), 4 deletions(-)

diff --git a/drivers/scsi/qla4xxx/ql4_os.c b/drivers/scsi/qla4xxx/ql4_os.c
index 25e994f..6096866 100644
--- a/drivers/scsi/qla4xxx/ql4_os.c
+++ b/drivers/scsi/qla4xxx/ql4_os.c
@@ -4685,7 +4685,8 @@ static struct iscsi_endpoint *qla4xxx_get_ep_fwdb(struct 
scsi_qla_host *ha,
struct iscsi_endpoint *ep;
struct sockaddr_in *addr;
struct sockaddr_in6 *addr6;
-   struct sockaddr *dst_addr;
+   struct sockaddr *t_addr;
+   struct sockaddr_storage *dst_addr;
char *ip;
 
/* TODO: need to destroy on unload iscsi_endpoint*/
@@ -4694,21 +4695,23 @@ static struct iscsi_endpoint 
*qla4xxx_get_ep_fwdb(struct scsi_qla_host *ha,
return NULL;
 
if (fw_ddb_entry->options & DDB_OPT_IPV6_DEVICE) {
-   dst_addr->sa_family = AF_INET6;
+   t_addr = (struct sockaddr *)dst_addr;
+   t_addr->sa_family = AF_INET6;
addr6 = (struct sockaddr_in6 *)dst_addr;
ip = (char *)&addr6->sin6_addr;
memcpy(ip, fw_ddb_entry->ip_addr, IPv6_ADDR_LEN);
addr6->sin6_port = htons(le16_to_cpu(fw_ddb_entry->port));
 
} else {
-   dst_addr->sa_family = AF_INET;
+   t_addr = (struct sockaddr *)dst_addr;
+   t_addr->sa_family = AF_INET;
addr = (struct sockaddr_in *)dst_addr;
ip = (char *)&addr->sin_addr;
memcpy(ip, fw_ddb_entry->ip_addr, IP_ADDR_LEN);
addr->sin_port = htons(le16_to_cpu(fw_ddb_entry->port));
}
 
-   ep = qla4xxx_ep_connect(ha->host, dst_addr, 0);
+   ep = qla4xxx_ep_connect(ha->host, (struct sockaddr *)dst_addr, 0);
vfree(dst_addr);
return ep;
 }
-- 
1.7.8.GIT

--
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH 1/5] qla4xxx: Fix MBOX intr switching from polling to intr mode for ISP83XX

2012-11-23 Thread vikas . chaudhary
From: Vikas Chaudhary 

Issue:
Mailbox command timed out after switching from polling mode to interrupt mode.

Events:-
 1. Mailbox interrupts are disabled
 2. FW generates AEN and at same time driver enables Mailbox Interrupt
 3. Driver issues new mailbox to Firmware

In above case driver will not get AEN interrupts generated by FW in step #2 as
FW generated this AEN when interrupts are disabled. During the same time driver
enabled the mailbox interrupt, so driver will not poll for interrupt.
Driver will never process AENs generated in step #2 and issues new mailbox to 
FW,
but now FW is not able to post mailbox completion as AENs generated before are 
not
processed by driver.

Fix:
Enable Mailbox / AEN interrupts before initializing FW in case of ISP83XX.
This will make sure we process all Mailbox and AENs in interrupt mode.

Signed-off-by: Vikas Chaudhary 
---
 drivers/scsi/qla4xxx/ql4_83xx.c |   53 +-
 drivers/scsi/qla4xxx/ql4_def.h  |2 +
 drivers/scsi/qla4xxx/ql4_glbl.h |5 ++-
 drivers/scsi/qla4xxx/ql4_init.c |   10 +++
 drivers/scsi/qla4xxx/ql4_isr.c  |   17 +++-
 drivers/scsi/qla4xxx/ql4_mbx.c  |   41 ++
 drivers/scsi/qla4xxx/ql4_nx.c   |8 +++---
 drivers/scsi/qla4xxx/ql4_os.c   |   10 +++
 8 files changed, 103 insertions(+), 43 deletions(-)

diff --git a/drivers/scsi/qla4xxx/ql4_83xx.c b/drivers/scsi/qla4xxx/ql4_83xx.c
index 6e9af20..4177383 100644
--- a/drivers/scsi/qla4xxx/ql4_83xx.c
+++ b/drivers/scsi/qla4xxx/ql4_83xx.c
@@ -1351,31 +1351,58 @@ exit_start_fw:
 
 /*--Interrupt Related functions -*/
 
-void qla4_83xx_disable_intrs(struct scsi_qla_host *ha)
+static void qla4_83xx_disable_iocb_intrs(struct scsi_qla_host *ha)
+{
+   if (test_and_clear_bit(AF_83XX_IOCB_INTR_ON, &ha->flags))
+   qla4_8xxx_intr_disable(ha);
+}
+
+static void qla4_83xx_disable_mbox_intrs(struct scsi_qla_host *ha)
 {
uint32_t mb_int, ret;
 
-   if (test_and_clear_bit(AF_INTERRUPTS_ON, &ha->flags))
-   qla4_8xxx_mbx_intr_disable(ha);
+   if (test_and_clear_bit(AF_83XX_MBOX_INTR_ON, &ha->flags)) {
+   ret = readl(&ha->qla4_83xx_reg->mbox_int);
+   mb_int = ret & ~INT_ENABLE_FW_MB;
+   writel(mb_int, &ha->qla4_83xx_reg->mbox_int);
+   writel(1, &ha->qla4_83xx_reg->leg_int_mask);
+   }
+}
 
-   ret = readl(&ha->qla4_83xx_reg->mbox_int);
-   mb_int = ret & ~INT_ENABLE_FW_MB;
-   writel(mb_int, &ha->qla4_83xx_reg->mbox_int);
-   writel(1, &ha->qla4_83xx_reg->leg_int_mask);
+void qla4_83xx_disable_intrs(struct scsi_qla_host *ha)
+{
+   qla4_83xx_disable_mbox_intrs(ha);
+   qla4_83xx_disable_iocb_intrs(ha);
 }
 
-void qla4_83xx_enable_intrs(struct scsi_qla_host *ha)
+static void qla4_83xx_enable_iocb_intrs(struct scsi_qla_host *ha)
+{
+   if (!test_bit(AF_83XX_IOCB_INTR_ON, &ha->flags)) {
+   qla4_8xxx_intr_enable(ha);
+   set_bit(AF_83XX_IOCB_INTR_ON, &ha->flags);
+   }
+}
+
+void qla4_83xx_enable_mbox_intrs(struct scsi_qla_host *ha)
 {
uint32_t mb_int;
 
-   qla4_8xxx_mbx_intr_enable(ha);
-   mb_int = INT_ENABLE_FW_MB;
-   writel(mb_int, &ha->qla4_83xx_reg->mbox_int);
-   writel(0, &ha->qla4_83xx_reg->leg_int_mask);
+   if (!test_bit(AF_83XX_MBOX_INTR_ON, &ha->flags)) {
+   mb_int = INT_ENABLE_FW_MB;
+   writel(mb_int, &ha->qla4_83xx_reg->mbox_int);
+   writel(0, &ha->qla4_83xx_reg->leg_int_mask);
+   set_bit(AF_83XX_MBOX_INTR_ON, &ha->flags);
+   }
+}
 
-   set_bit(AF_INTERRUPTS_ON, &ha->flags);
+
+void qla4_83xx_enable_intrs(struct scsi_qla_host *ha)
+{
+   qla4_83xx_enable_mbox_intrs(ha);
+   qla4_83xx_enable_iocb_intrs(ha);
 }
 
+
 void qla4_83xx_queue_mbox_cmd(struct scsi_qla_host *ha, uint32_t *mbx_cmd,
  int incount)
 {
diff --git a/drivers/scsi/qla4xxx/ql4_def.h b/drivers/scsi/qla4xxx/ql4_def.h
index 329d553..c71a371 100644
--- a/drivers/scsi/qla4xxx/ql4_def.h
+++ b/drivers/scsi/qla4xxx/ql4_def.h
@@ -516,6 +516,8 @@ struct scsi_qla_host {
 #define AF_8XXX_RST_OWNER  25 /* 0x0200 */
 #define AF_82XX_DUMP_READING   26 /* 0x0400 */
 #define AF_83XX_NO_FW_DUMP 27 /* 0x0800 */
+#define AF_83XX_IOCB_INTR_ON   28 /* 0x1000 */
+#define AF_83XX_MBOX_INTR_ON   29 /* 0x2000 */
 
unsigned long dpc_flags;
 
diff --git a/drivers/scsi/qla4xxx/ql4_glbl.h b/drivers/scsi/qla4xxx/ql4_glbl.h
index 57a5a3c..7a2a35a 100644
--- a/drivers/scsi/qla4xxx/ql4_glbl.h
+++ b/drivers/scsi/qla4xxx/ql4_glbl.h
@@ -253,12 +253,13 @@ void qla4_8xxx_set_rst_ready(struct scsi_qla_host *ha);
 void qla4_8xxx_clear_rst_ready(struct scsi_qla_host *ha);
 int qla4_8xxx_device_bootstrap(struct scsi_qla_host *ha);
 void qla4_8xxx_get_minidump(struct scsi_qla_host *ha);
-int qla4_8xxx_mbx_intr_dis

[PATCH 5/5] qla4xxx: Update driver version to 5.03.00-k2

2012-11-23 Thread vikas . chaudhary
From: Vikas Chaudhary 

Signed-off-by: Vikas Chaudhary 
---
 drivers/scsi/qla4xxx/ql4_version.h |2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/drivers/scsi/qla4xxx/ql4_version.h 
b/drivers/scsi/qla4xxx/ql4_version.h
index f6df2ea..4a20b88 100644
--- a/drivers/scsi/qla4xxx/ql4_version.h
+++ b/drivers/scsi/qla4xxx/ql4_version.h
@@ -5,4 +5,4 @@
  * See LICENSE.qla4xxx for copyright and licensing details.
  */
 
-#define QLA4XXX_DRIVER_VERSION "5.03.00-k1"
+#define QLA4XXX_DRIVER_VERSION "5.03.00-k2"
-- 
1.7.8.GIT

--
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH 4/5] scsi_transport_iscsi: export iscsi class session's target_id in sysfs.

2012-11-23 Thread vikas . chaudhary
From: Manish Rangankar 

Signed-off-by: Manish Rangankar 
Signed-off-by: Vikas Chaudhary 
---
 drivers/scsi/scsi_transport_iscsi.c |   12 
 1 files changed, 12 insertions(+), 0 deletions(-)

diff --git a/drivers/scsi/scsi_transport_iscsi.c 
b/drivers/scsi/scsi_transport_iscsi.c
index 31969f2..dac7f8d 100644
--- a/drivers/scsi/scsi_transport_iscsi.c
+++ b/drivers/scsi/scsi_transport_iscsi.c
@@ -2503,6 +2503,15 @@ show_priv_session_creator(struct device *dev, struct 
device_attribute *attr,
 }
 static ISCSI_CLASS_ATTR(priv_sess, creator, S_IRUGO, show_priv_session_creator,
NULL);
+static ssize_t
+show_priv_session_target_id(struct device *dev, struct device_attribute *attr,
+   char *buf)
+{
+   struct iscsi_cls_session *session = iscsi_dev_to_session(dev->parent);
+   return sprintf(buf, "%d\n", session->target_id);
+}
+static ISCSI_CLASS_ATTR(priv_sess, target_id, S_IRUGO,
+   show_priv_session_target_id, NULL);
 
 #define iscsi_priv_session_attr_show(field, format)\
 static ssize_t \
@@ -2575,6 +2584,7 @@ static struct attribute *iscsi_session_attrs[] = {
&dev_attr_priv_sess_creator.attr,
&dev_attr_sess_chap_out_idx.attr,
&dev_attr_sess_chap_in_idx.attr,
+   &dev_attr_priv_sess_target_id.attr,
NULL,
 };
 
@@ -2638,6 +2648,8 @@ static umode_t iscsi_session_attr_is_visible(struct 
kobject *kobj,
return S_IRUGO;
else if (attr == &dev_attr_priv_sess_creator.attr)
return S_IRUGO;
+   else if (attr == &dev_attr_priv_sess_target_id.attr)
+   return S_IRUGO;
else {
WARN_ONCE(1, "Invalid session attr");
return 0;
-- 
1.7.8.GIT

--
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH 2/5] qla4xxx: Allow reset in link down case

2012-11-23 Thread vikas . chaudhary
From: Harish Zunjarrao 

Issue:
Reset operation fails if port is in Link Down state

Fix:
Do not wait till HBA comes online after reset command is invoked.

Signed-off-by: Harish Zunjarrao 
Signed-off-by: Vikas Chaudhary 
---
 drivers/scsi/qla4xxx/ql4_os.c |8 
 1 files changed, 0 insertions(+), 8 deletions(-)

diff --git a/drivers/scsi/qla4xxx/ql4_os.c b/drivers/scsi/qla4xxx/ql4_os.c
index a9ece28..25e994f 100644
--- a/drivers/scsi/qla4xxx/ql4_os.c
+++ b/drivers/scsi/qla4xxx/ql4_os.c
@@ -6006,14 +6006,6 @@ static int qla4xxx_host_reset(struct Scsi_Host *shost, 
int reset_type)
goto exit_host_reset;
}
 
-   rval = qla4xxx_wait_for_hba_online(ha);
-   if (rval != QLA_SUCCESS) {
-   DEBUG2(ql4_printk(KERN_INFO, ha, "%s: Unable to reset host "
- "adapter\n", __func__));
-   rval = -EIO;
-   goto exit_host_reset;
-   }
-
if (test_bit(DPC_RESET_HA, &ha->dpc_flags))
goto recover_adapter;
 
-- 
1.7.8.GIT

--
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH 0/5] qla4xxx: Updates for scsi "misc" branch

2012-11-23 Thread vikas . chaudhary
From: Vikas Chaudhary 

James,

Please apply the following patches to the scsi tree at your earliest
convenience.

Thanks,
Vikas.

Harish Zunjarrao (1):
  qla4xxx: Allow reset in link down case

Manish Rangankar (2):
  qla4xxx: Fix memory corruption issue in qla4xxx_get_ep_fwdb.
  scsi_transport_iscsi: export iscsi class session's target_id in sysfs.

Vikas Chaudhary (2):
  qla4xxx: Fix MBOX intr switching from polling to intr mode for ISP83XX
  qla4xxx: Update driver version to 5.03.00-k2

--
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 425/493] scsi: remove use of __devexit

2012-11-23 Thread Masanori Goto
2012/11/23 Guennadi Liakhovetski :
> On Mon, 19 Nov 2012, Bill Pemberton wrote:
>
>> CONFIG_HOTPLUG is going away as an option so __devexit is no
>> longer needed.
>
>>  drivers/scsi/tmscsim.c| 2 +-
>
> Acked-by: Guennadi Liakhovetski 

Acked-by: GOTO Masanori 

Regards,
-- gotom

>
> Thanks
> Guennadi
> ---
> Guennadi Liakhovetski, Ph.D.
> Freelance Open-Source Software Developer
> http://www.open-technology.de/
>
--
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 097/493] scsi: remove use of __devexit_p

2012-11-23 Thread Masanori Goto
2012/11/23 Guennadi Liakhovetski :
> On Mon, 19 Nov 2012, Bill Pemberton wrote:
>
>> CONFIG_HOTPLUG is going away as an option so __devexit_p is no longer
>> needed.
>
>>  drivers/scsi/tmscsim.c| 2 +-
>
> Acked-by: Guennadi Liakhovetski 

Acked-by: GOTO Masanori 

Regards,
-- gotom

>
> Thanks
> Guennadi
> ---
> Guennadi Liakhovetski, Ph.D.
> Freelance Open-Source Software Developer
> http://www.open-technology.de/
>
--
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 319/493] scsi: remove use of __devinitdata

2012-11-23 Thread Masanori Goto
2012/11/23 Guennadi Liakhovetski :
> On Mon, 19 Nov 2012, Bill Pemberton wrote:
>
>>  drivers/scsi/tmscsim.c  |  2 +-
>
> Acked-by: Guennadi Liakhovetski 

Acked-by: GOTO Masanori 

Regards,
-- gotom

>
> Thanks
> Guennadi
> ---
> Guennadi Liakhovetski, Ph.D.
> Freelance Open-Source Software Developer
> http://www.open-technology.de/
>
--
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 0/7 v5] More device removal fixes

2012-11-23 Thread Bart Van Assche
On 10/26/12 14:00, Bart Van Assche wrote:
> Fix a few race conditions that can be triggered by removing a device:
> [ ... ]

Hello,

I'd like to add the patch below to this series. This is something I came
up with after analyzing why a crash was triggered during an SRP failover
test. One of the functions in the crash call stack was blk_delay_work().

Bart.


[PATCH] block: Avoid scheduling delayed work on a dead queue

Running a queue must continue after it has been marked dying until
it has been marked dead. So the function blk_run_queue_async() must
not schedule delayed work after blk_cleanup_queue() has marked a queue
dead. Hence add a test for that queue state in blk_run_queue_async()
and make sure that queue_unplugged() invokes that function with the
queue lock held. This avoids that the queue state can change after
it has been tested and before mod_delayed_work() is invoked. Drop
the queue dying test in queue_unplugged() since it is now
superfluous: __blk_run_queue() already tests whether or not the
queue is dead.

Signed-off-by: Bart Van Assche 
Cc: Tejun Heo 
Cc: Mike Christie 
Cc: Jens Axboe 
---
 block/blk-core.c |   26 +-
 1 file changed, 5 insertions(+), 21 deletions(-)

diff --git a/block/blk-core.c b/block/blk-core.c
index e4f4e06..212c878 100644
--- a/block/blk-core.c
+++ b/block/blk-core.c
@@ -343,11 +343,11 @@ EXPORT_SYMBOL(__blk_run_queue);
  *
  * Description:
  *Tells kblockd to perform the equivalent of @blk_run_queue on behalf
- *of us.
+ *of us. The caller must hold the queue lock.
  */
 void blk_run_queue_async(struct request_queue *q)
 {
-   if (likely(!blk_queue_stopped(q)))
+   if (likely(!blk_queue_stopped(q) && !blk_queue_dead(q)))
mod_delayed_work(kblockd_workqueue, &q->delay_work, 0);
 }
 EXPORT_SYMBOL(blk_run_queue_async);
@@ -2923,27 +2923,11 @@ static void queue_unplugged(struct request_queue *q, 
unsigned int depth,
 {
trace_block_unplug(q, depth, !from_schedule);
 
-   /*
-* Don't mess with a dying queue.
-*/
-   if (unlikely(blk_queue_dying(q))) {
-   spin_unlock(q->queue_lock);
-   return;
-   }
-
-   /*
-* If we are punting this to kblockd, then we can safely drop
-* the queue_lock before waking kblockd (which needs to take
-* this lock).
-*/
-   if (from_schedule) {
-   spin_unlock(q->queue_lock);
+   if (from_schedule)
blk_run_queue_async(q);
-   } else {
+   else
__blk_run_queue(q);
-   spin_unlock(q->queue_lock);
-   }
-
+   spin_unlock(q->queue_lock);
 }
 
 static void flush_plug_callbacks(struct blk_plug *plug, bool from_schedule)
-- 
1.7.10.4


--
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html