提交 08b1bc8f 编写于 作者: R Ron Mercer 提交者: David S. Miller

qlge: Get rid of irqsave/restore in intr disable.

The completion interrupt disable routine is only called from the ISR, so
there is no need for irqsave/restore.
Signed-off-by: NRon Mercer <ron.mercer@qlogic.com>
Signed-off-by: NDavid S. Miller <davem@davemloft.net>
上级 c9cf0a04
...@@ -587,7 +587,6 @@ u32 ql_enable_completion_interrupt(struct ql_adapter *qdev, u32 intr) ...@@ -587,7 +587,6 @@ u32 ql_enable_completion_interrupt(struct ql_adapter *qdev, u32 intr)
static u32 ql_disable_completion_interrupt(struct ql_adapter *qdev, u32 intr) static u32 ql_disable_completion_interrupt(struct ql_adapter *qdev, u32 intr)
{ {
u32 var = 0; u32 var = 0;
unsigned long hw_flags;
struct intr_context *ctx; struct intr_context *ctx;
/* HW disables for us if we're MSIX multi interrupts and /* HW disables for us if we're MSIX multi interrupts and
...@@ -597,14 +596,14 @@ static u32 ql_disable_completion_interrupt(struct ql_adapter *qdev, u32 intr) ...@@ -597,14 +596,14 @@ static u32 ql_disable_completion_interrupt(struct ql_adapter *qdev, u32 intr)
return 0; return 0;
ctx = qdev->intr_context + intr; ctx = qdev->intr_context + intr;
spin_lock_irqsave(&qdev->hw_lock, hw_flags); spin_lock(&qdev->hw_lock);
if (!atomic_read(&ctx->irq_cnt)) { if (!atomic_read(&ctx->irq_cnt)) {
ql_write32(qdev, INTR_EN, ql_write32(qdev, INTR_EN,
ctx->intr_dis_mask); ctx->intr_dis_mask);
var = ql_read32(qdev, STS); var = ql_read32(qdev, STS);
} }
atomic_inc(&ctx->irq_cnt); atomic_inc(&ctx->irq_cnt);
spin_unlock_irqrestore(&qdev->hw_lock, hw_flags); spin_unlock(&qdev->hw_lock);
return var; return var;
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册