diff options
| author | Jens Axboe <axboe@hera.kernel.org> | 2002-09-10 13:38:43 -0700 |
|---|---|---|
| committer | Jens Axboe <axboe@hera.kernel.org> | 2002-09-10 13:38:43 -0700 |
| commit | fe0e434158eda051ea025b7fea02eec5f01e04d4 (patch) | |
| tree | c26262b77dc8c78313542aec1dcc53be99e4f441 | |
| parent | 76d07e0f8fd008f30db5518085ee195d8ee9ef07 (diff) | |
| parent | 37eb06f8584d6b7557ad802a458855ac775a8d65 (diff) | |
Merge axboe@brick.kernel.dk:/mnt/kernel/ide/linux-2.5
into hera.kernel.org:/home/axboe/BK/linux-2.5-ide
| -rw-r--r-- | drivers/ide/ide-disk.c | 8 | ||||
| -rw-r--r-- | drivers/ide/ide-taskfile.c | 2 | ||||
| -rw-r--r-- | include/linux/ide.h | 5 |
3 files changed, 8 insertions, 7 deletions
diff --git a/drivers/ide/ide-disk.c b/drivers/ide/ide-disk.c index 47fefdec269e..0dbc6e4366d4 100644 --- a/drivers/ide/ide-disk.c +++ b/drivers/ide/ide-disk.c @@ -173,7 +173,7 @@ read_next: drive->name, rq->sector, rq->sector+nsect-1, (unsigned long) rq->buffer+(nsect<<9), rq->nr_sectors-nsect); #endif - ide_unmap_buffer(to, &flags); + ide_unmap_buffer(rq, to, &flags); rq->sector += nsect; rq->errors = 0; i = (rq->nr_sectors -= nsect); @@ -227,7 +227,7 @@ static ide_startstop_t write_intr (ide_drive_t *drive) unsigned long flags; char *to = ide_map_buffer(rq, &flags); taskfile_output_data(drive, to, SECTOR_WORDS); - ide_unmap_buffer(to, &flags); + ide_unmap_buffer(rq, to, &flags); if (HWGROUP(drive)->handler != NULL) BUG(); ide_set_handler(drive, &write_intr, WAIT_CMD, NULL); @@ -304,7 +304,7 @@ int ide_multwrite (ide_drive_t *drive, unsigned int mcount) * re-entering us on the last transfer. */ taskfile_output_data(drive, buffer, nsect<<7); - ide_unmap_buffer(buffer, &flags); + ide_unmap_buffer(rq, buffer, &flags); } while (mcount); return 0; @@ -522,7 +522,7 @@ static ide_startstop_t do_rw_disk (ide_drive_t *drive, struct request *rq, unsig BUG(); ide_set_handler(drive, &write_intr, WAIT_CMD, NULL); taskfile_output_data(drive, to, SECTOR_WORDS); - ide_unmap_buffer(to, &flags); + ide_unmap_buffer(rq, to, &flags); } return ide_started; } diff --git a/drivers/ide/ide-taskfile.c b/drivers/ide/ide-taskfile.c index f0928799b457..5e03c4450911 100644 --- a/drivers/ide/ide-taskfile.c +++ b/drivers/ide/ide-taskfile.c @@ -60,7 +60,7 @@ #endif #define task_map_rq(rq, flags) ide_map_buffer((rq), (flags)) -#define task_unmap_rq(rq, buf, flags) ide_unmap_buffer((buf), (flags)) +#define task_unmap_rq(rq, buf, flags) ide_unmap_buffer((rq), (buf), (flags)) inline u32 task_read_24 (ide_drive_t *drive) { diff --git a/include/linux/ide.h b/include/linux/ide.h index 32409745ded5..c9064eff5996 100644 --- a/include/linux/ide.h +++ b/include/linux/ide.h @@ -894,9 +894,10 @@ extern inline void *ide_map_buffer(struct request *rq, unsigned long *flags) return rq->buffer + task_rq_offset(rq); } -extern inline void ide_unmap_buffer(char *buffer, unsigned long *flags) +extern inline void ide_unmap_buffer(struct request *rq, char *buffer, unsigned long *flags) { - bio_kunmap_irq(buffer, flags); + if (rq->bio) + bio_kunmap_irq(buffer, flags); } #define IDE_CHIPSET_PCI_MASK \ |
