aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/ata/libata-core.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/drivers/ata/libata-core.c b/drivers/ata/libata-core.c
index 2b57547bd740..c9e6bd4d0686 100644
--- a/drivers/ata/libata-core.c
+++ b/drivers/ata/libata-core.c
@@ -5309,12 +5309,15 @@ static void atapi_pio_bytes(struct ata_queued_cmd *qc)
5309 bytes = (bc_hi << 8) | bc_lo; 5309 bytes = (bc_hi << 8) | bc_lo;
5310 5310
5311 /* shall be cleared to zero, indicating xfer of data */ 5311 /* shall be cleared to zero, indicating xfer of data */
5312 if (ireason & (1 << 0)) 5312 if (unlikely(ireason & (1 << 0)))
5313 goto err_out; 5313 goto err_out;
5314 5314
5315 /* make sure transfer direction matches expected */ 5315 /* make sure transfer direction matches expected */
5316 i_write = ((ireason & (1 << 1)) == 0) ? 1 : 0; 5316 i_write = ((ireason & (1 << 1)) == 0) ? 1 : 0;
5317 if (do_write != i_write) 5317 if (unlikely(do_write != i_write))
5318 goto err_out;
5319
5320 if (unlikely(!bytes))
5318 goto err_out; 5321 goto err_out;
5319 5322
5320 VPRINTK("ata%u: xfering %d bytes\n", ap->print_id, bytes); 5323 VPRINTK("ata%u: xfering %d bytes\n", ap->print_id, bytes);