diff options
author | Jeff Garzik <jeff@garzik.org> | 2006-06-20 05:08:44 -0400 |
---|---|---|
committer | Jeff Garzik <jeff@garzik.org> | 2006-06-20 05:08:44 -0400 |
commit | c5fa46e175ccd02803031ea071060cdb01521736 (patch) | |
tree | 5e6f49d86a2dcd069c45bfd434efd6d6fa311bea /drivers/scsi/sata_nv.c | |
parent | 5a44efff4f8fe8139c0c4166ad5aae5f2fa5bced (diff) |
[libata] sata_nv: s/spin_lock_irqsave/spin_lock/ in irq handler
We don't need to use the heavier spin lock in the irq handler.
It's quite possible we can do this in nv_generic_interrupt() as well,
but I didn't take the time to pursue that train of thought.
Signed-off-by: Jeff Garzik <jeff@garzik.org>
Diffstat (limited to 'drivers/scsi/sata_nv.c')
-rw-r--r-- | drivers/scsi/sata_nv.c | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/drivers/scsi/sata_nv.c b/drivers/scsi/sata_nv.c index 19deaa42fbf0..be8650f17020 100644 --- a/drivers/scsi/sata_nv.c +++ b/drivers/scsi/sata_nv.c | |||
@@ -371,14 +371,13 @@ static irqreturn_t nv_nf2_interrupt(int irq, void *dev_instance, | |||
371 | struct pt_regs *regs) | 371 | struct pt_regs *regs) |
372 | { | 372 | { |
373 | struct ata_host_set *host_set = dev_instance; | 373 | struct ata_host_set *host_set = dev_instance; |
374 | unsigned long flags; | ||
375 | u8 irq_stat; | 374 | u8 irq_stat; |
376 | irqreturn_t ret; | 375 | irqreturn_t ret; |
377 | 376 | ||
378 | spin_lock_irqsave(&host_set->lock, flags); | 377 | spin_lock(&host_set->lock); |
379 | irq_stat = inb(host_set->ports[0]->ioaddr.scr_addr + NV_INT_STATUS); | 378 | irq_stat = inb(host_set->ports[0]->ioaddr.scr_addr + NV_INT_STATUS); |
380 | ret = nv_do_interrupt(host_set, irq_stat); | 379 | ret = nv_do_interrupt(host_set, irq_stat); |
381 | spin_unlock_irqrestore(&host_set->lock, flags); | 380 | spin_unlock(&host_set->lock); |
382 | 381 | ||
383 | return ret; | 382 | return ret; |
384 | } | 383 | } |
@@ -387,14 +386,13 @@ static irqreturn_t nv_ck804_interrupt(int irq, void *dev_instance, | |||
387 | struct pt_regs *regs) | 386 | struct pt_regs *regs) |
388 | { | 387 | { |
389 | struct ata_host_set *host_set = dev_instance; | 388 | struct ata_host_set *host_set = dev_instance; |
390 | unsigned long flags; | ||
391 | u8 irq_stat; | 389 | u8 irq_stat; |
392 | irqreturn_t ret; | 390 | irqreturn_t ret; |
393 | 391 | ||
394 | spin_lock_irqsave(&host_set->lock, flags); | 392 | spin_lock(&host_set->lock); |
395 | irq_stat = readb(host_set->mmio_base + NV_INT_STATUS_CK804); | 393 | irq_stat = readb(host_set->mmio_base + NV_INT_STATUS_CK804); |
396 | ret = nv_do_interrupt(host_set, irq_stat); | 394 | ret = nv_do_interrupt(host_set, irq_stat); |
397 | spin_unlock_irqrestore(&host_set->lock, flags); | 395 | spin_unlock(&host_set->lock); |
398 | 396 | ||
399 | return ret; | 397 | return ret; |
400 | } | 398 | } |