Tejun Heo wrote: > From: Albert Lee <albertcc@xxxxxxxxxx> > > Treat zero xfer length as HSM violation. While at it, add > unlikely()'s to ATAPI ireason and transfer length checks. > > tj: Formatted patch and added unlikely()'s. > > Signed-off-by: Albert Lee <albertcc@xxxxxxxxxx> > Signed-off-by: Tejun Heo <htejun@xxxxxxxxx> > --- > drivers/ata/libata-core.c | 7 +++++-- > 1 files changed, 5 insertions(+), 2 deletions(-) > > diff --git a/drivers/ata/libata-core.c b/drivers/ata/libata-core.c > index 597e07c..88f7637 100644 > --- a/drivers/ata/libata-core.c > +++ b/drivers/ata/libata-core.c > @@ -5280,12 +5280,15 @@ static void atapi_pio_bytes(struct ata_queued_cmd *qc) > bytes = (bc_hi << 8) | bc_lo; > > /* shall be cleared to zero, indicating xfer of data */ > - if (ireason & (1 << 0)) > + if (unlikely(ireason & (1 << 0))) > goto err_out; > > /* make sure transfer direction matches expected */ > i_write = ((ireason & (1 << 1)) == 0) ? 1 : 0; > - if (do_write != i_write) > + if (unlikely(do_write != i_write)) > + goto err_out; > + > + if (unlikely(!bytes)) > goto err_out; > > VPRINTK("ata%u: xfering %d bytes\n", ap->print_id, bytes); Looks good. Acked-by: Albert Lee <albertcc@xxxxxxxxxx> - To unsubscribe from this list: send the line "unsubscribe linux-ide" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html