diff options
author | Steve French <sfrench@hera.kernel.org> | 2005-06-09 14:44:56 -0700 |
---|---|---|
committer | Steve French <sfrench@hera.kernel.org> | 2005-06-09 14:44:56 -0700 |
commit | f5d9b97ee0d6d00a29bf881263510d74291fb862 (patch) | |
tree | 90b22e6038da0ad40e54c3f52e8da67189730ae8 /drivers/scsi/libata-core.c | |
parent | 3079ca621e9e09f4593c20a9a2f24237c355f683 (diff) | |
parent | cf380ee7308db0f067ceb2ae8b852838788bf453 (diff) |
Merge with rsync://rsync.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git
Diffstat (limited to 'drivers/scsi/libata-core.c')
-rw-r--r-- | drivers/scsi/libata-core.c | 4 |
1 files changed, 1 insertions, 3 deletions
diff --git a/drivers/scsi/libata-core.c b/drivers/scsi/libata-core.c index 21d194c6ace3..9e58f134f68b 100644 --- a/drivers/scsi/libata-core.c +++ b/drivers/scsi/libata-core.c @@ -2577,7 +2577,6 @@ static void __atapi_pio_bytes(struct ata_queued_cmd *qc, unsigned int bytes) next_sg: sg = &qc->sg[qc->cursg]; -next_page: page = sg->page; offset = sg->offset + qc->cursg_ofs; @@ -2585,6 +2584,7 @@ next_page: page = nth_page(page, (offset >> PAGE_SHIFT)); offset %= PAGE_SIZE; + /* don't overrun current sg */ count = min(sg->length - qc->cursg_ofs, bytes); /* don't cross page boundaries */ @@ -2609,8 +2609,6 @@ next_page: kunmap(page); if (bytes) { - if (qc->cursg_ofs < sg->length) - goto next_page; goto next_sg; } } |