diff options
Diffstat (limited to 'drivers/ata/sata_nv.c')
-rw-r--r-- | drivers/ata/sata_nv.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/drivers/ata/sata_nv.c b/drivers/ata/sata_nv.c index 388d07fab5f7..9d9670a9b117 100644 --- a/drivers/ata/sata_nv.c +++ b/drivers/ata/sata_nv.c | |||
@@ -874,8 +874,14 @@ static irqreturn_t nv_adma_interrupt(int irq, void *dev_instance) | |||
874 | 874 | ||
875 | if (status & (NV_ADMA_STAT_DONE | | 875 | if (status & (NV_ADMA_STAT_DONE | |
876 | NV_ADMA_STAT_CPBERR)) { | 876 | NV_ADMA_STAT_CPBERR)) { |
877 | u32 check_commands = notifier | notifier_error; | 877 | u32 check_commands; |
878 | int pos, error = 0; | 878 | int pos, error = 0; |
879 | |||
880 | if(ata_tag_valid(ap->active_tag)) | ||
881 | check_commands = 1 << ap->active_tag; | ||
882 | else | ||
883 | check_commands = ap->sactive; | ||
884 | |||
879 | /** Check CPBs for completed commands */ | 885 | /** Check CPBs for completed commands */ |
880 | while ((pos = ffs(check_commands)) && !error) { | 886 | while ((pos = ffs(check_commands)) && !error) { |
881 | pos--; | 887 | pos--; |