diff options
author | Matthew R. Ochs <[email protected]> | 2015-10-21 15:13:45 -0500 |
---|---|---|
committer | James Bottomley <[email protected]> | 2015-10-30 17:13:16 +0900 |
commit | 16798d3448d33af336e89f8cc6e72a0a3d04e230 (patch) | |
tree | 9744d10925c5286a83bb5450a8fa7612f81127ea | |
parent | ef51074a4efef50873fb8939e7feba5dd55488da (diff) |
cxlflash: Fix async interrupt bypass logic
A bug was introduced earlier in the development cycle when cleaning
up logic statements. Instead of skipping bits that are not set, set
bits are skipped, causing async interrupts to not be handled correctly.
To fix, simply add back in the proper evaluation for an unset bit.
Signed-off-by: Matthew R. Ochs <[email protected]>
Signed-off-by: Manoj N. Kumar <[email protected]>
Reviewed-by: Brian King <[email protected]>
Reviewed-by: Andrew Donnellan <[email protected]>
Reviewed-by: Tomas Henzl <[email protected]>
Signed-off-by: James Bottomley <[email protected]>
-rw-r--r-- | drivers/scsi/cxlflash/main.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/scsi/cxlflash/main.c b/drivers/scsi/cxlflash/main.c index 98fdac1e1c45..ed9fd8c2d7db 100644 --- a/drivers/scsi/cxlflash/main.c +++ b/drivers/scsi/cxlflash/main.c @@ -1315,7 +1315,7 @@ static irqreturn_t cxlflash_async_err_irq(int irq, void *data) /* check each bit that is on */ for (i = 0; reg_unmasked; i++, reg_unmasked = (reg_unmasked >> 1)) { info = find_ainfo(1ULL << i); - if ((reg_unmasked & 0x1) || !info) + if (((reg_unmasked & 0x1) == 0) || !info) continue; port = info->port; |