From: Bartlomiej Zolnierkiewicz <bzolnier@elka.pw.edu.pl>
To: linux-ide@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: [patch][3/9] ide: add ide_sg_init() helper
Date: Wed, 8 Sep 2004 21:26:49 +0200 [thread overview]
Message-ID: <200409082126.49832.bzolnier@elka.pw.edu.pl> (raw)
[patch] ide: add ide_sg_init() helper
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@elka.pw.edu.pl>
---
linux-2.6.9-rc1-bk10-bzolnier/drivers/ide/arm/icside.c | 5 +----
linux-2.6.9-rc1-bk10-bzolnier/drivers/ide/ide-dma.c | 10 ++--------
linux-2.6.9-rc1-bk10-bzolnier/drivers/ide/ppc/pmac.c | 10 ++--------
linux-2.6.9-rc1-bk10-bzolnier/include/linux/ide.h | 9 +++++++++
4 files changed, 14 insertions(+), 20 deletions(-)
diff -puN drivers/ide/arm/icside.c~ide_sg_init drivers/ide/arm/icside.c
--- linux-2.6.9-rc1-bk10/drivers/ide/arm/icside.c~ide_sg_init 2004-09-05 19:51:15.566405800 +0200
+++ linux-2.6.9-rc1-bk10-bzolnier/drivers/ide/arm/icside.c 2004-09-05 19:51:15.581403520 +0200
@@ -225,10 +225,7 @@ static void icside_build_sglist(ide_driv
else
hwif->sg_dma_direction = DMA_FROM_DEVICE;
- memset(sg, 0, sizeof(*sg));
- sg->page = virt_to_page(rq->buffer);
- sg->offset = offset_in_page(rq->buffer);
- sg->length = rq->nr_sectors * SECTOR_SIZE;
+ ide_sg_init(sg, rq->buffer, rq->nr_sectors * SECTOR_SIZE);
nents = 1;
} else {
nents = blk_rq_map_sg(drive->queue, rq, sg);
diff -puN drivers/ide/ide-dma.c~ide_sg_init drivers/ide/ide-dma.c
--- linux-2.6.9-rc1-bk10/drivers/ide/ide-dma.c~ide_sg_init 2004-09-05 19:51:15.568405496 +0200
+++ linux-2.6.9-rc1-bk10-bzolnier/drivers/ide/ide-dma.c 2004-09-05 19:51:15.583403216 +0200
@@ -256,18 +256,12 @@ int ide_raw_build_sglist(ide_drive_t *dr
#else
while (sector_count > 128) {
#endif
- memset(&sg[nents], 0, sizeof(*sg));
- sg[nents].page = virt_to_page(virt_addr);
- sg[nents].offset = offset_in_page(virt_addr);
- sg[nents].length = 128 * SECTOR_SIZE;
+ ide_sg_init(&sg[nents], virt_addr, 128 * SECTOR_SIZE);
nents++;
virt_addr = virt_addr + (128 * SECTOR_SIZE);
sector_count -= 128;
}
- memset(&sg[nents], 0, sizeof(*sg));
- sg[nents].page = virt_to_page(virt_addr);
- sg[nents].offset = offset_in_page(virt_addr);
- sg[nents].length = sector_count * SECTOR_SIZE;
+ ide_sg_init(&sg[nents], virt_addr, sector_count * SECTOR_SIZE);
nents++;
return pci_map_sg(hwif->pci_dev, sg, nents, hwif->sg_dma_direction);
diff -puN drivers/ide/ppc/pmac.c~ide_sg_init drivers/ide/ppc/pmac.c
--- linux-2.6.9-rc1-bk10/drivers/ide/ppc/pmac.c~ide_sg_init 2004-09-05 19:51:15.570405192 +0200
+++ linux-2.6.9-rc1-bk10-bzolnier/drivers/ide/ppc/pmac.c 2004-09-05 19:51:15.585402912 +0200
@@ -1611,18 +1611,12 @@ pmac_ide_raw_build_sglist(ide_drive_t *d
pmif->sg_dma_direction = PCI_DMA_FROMDEVICE;
if (sector_count > 128) {
- memset(&sg[nents], 0, sizeof(*sg));
- sg[nents].page = virt_to_page(virt_addr);
- sg[nents].offset = offset_in_page(virt_addr);
- sg[nents].length = 128 * SECTOR_SIZE;
+ ide_sg_init(&sg[nents], virt_addr, 128 * SECTOR_SIZE);
nents++;
virt_addr = virt_addr + (128 * SECTOR_SIZE);
sector_count -= 128;
}
- memset(&sg[nents], 0, sizeof(*sg));
- sg[nents].page = virt_to_page(virt_addr);
- sg[nents].offset = offset_in_page(virt_addr);
- sg[nents].length = sector_count * SECTOR_SIZE;
+ ide_sg_init(&sg[nents], virt_addr, sector_count * SECTOR_SIZE);
nents++;
return pci_map_sg(hwif->pci_dev, sg, nents, pmif->sg_dma_direction);
diff -puN include/linux/ide.h~ide_sg_init include/linux/ide.h
--- linux-2.6.9-rc1-bk10/include/linux/ide.h~ide_sg_init 2004-09-05 19:51:15.573404736 +0200
+++ linux-2.6.9-rc1-bk10-bzolnier/include/linux/ide.h 2004-09-05 19:51:15.587402608 +0200
@@ -1567,6 +1567,15 @@ typedef struct ide_pci_device_s {
extern void ide_setup_pci_device(struct pci_dev *, ide_pci_device_t *);
extern void ide_setup_pci_devices(struct pci_dev *, struct pci_dev *, ide_pci_device_t *);
+static inline void ide_sg_init(struct scatterlist *sg, u8 *buf, unsigned int buflen)
+{
+ memset(sg, 0, sizeof(*sg));
+
+ sg->page = virt_to_page(buf);
+ sg->offset = offset_in_page(buf);
+ sg->length = buflen;
+}
+
#define BAD_DMA_DRIVE 0
#define GOOD_DMA_DRIVE 1
_
next reply other threads:[~2004-09-08 19:30 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-09-08 19:26 Bartlomiej Zolnierkiewicz [this message]
2004-09-09 3:17 ` Jeff Garzik
2004-09-09 13:54 ` Bartlomiej Zolnierkiewicz
2004-09-09 14:47 ` Jens Axboe
2004-09-09 15:31 ` Bartlomiej Zolnierkiewicz
2004-09-09 15:38 ` Jens Axboe
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=200409082126.49832.bzolnier@elka.pw.edu.pl \
--to=bzolnier@elka.pw.edu.pl \
--cc=linux-ide@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®