So, is the sequence: p = kmalloc(upsg->sg[i].count,GFP_KERNEL); . . . addr = pci_map_single(dev->pdev, p, upsg->sg[i].count, data_dir); Going to ensure that we have a 31 bit (not 32 bit) physical address? If not, then I reject this patch. We can not consider replacement with pci_alloc_consistent until it works on AMD respecting the DMA masks. Sincerely -- Mark Salyzyn > -----Original Message----- > From: linux-kernel-owner@xxxxxxxxxxxxxxx > [mailto:linux-kernel-owner@xxxxxxxxxxxxxxx] On Behalf Of Aubrey Li > Sent: Tuesday, May 22, 2007 10:41 PM > To: Christoph Lameter > Cc: Bernhard Walle; linux-scsi@xxxxxxxxxxxxxxx; Andrew > Morton; linux-kernel@xxxxxxxxxxxxxxx; James Bottomley > Subject: Re: [PATCH] [scsi] Remove __GFP_DMA > > > On 5/23/07, Christoph Lameter <clameter@xxxxxxx> wrote: > > On Mon, 21 May 2007, Bernhard Walle wrote: > > > > > [PATCH] [scsi] Remove __GFP_DMA > > > > > > After 821de3a27bf33f11ec878562577c586cd5f83c64, it's not > necessary to alloate a > > > DMA buffer any more in sd.c. > > > > > > Signed-off-by: Bernhard Walle <bwalle@xxxxxxx> > > > > Great that avoids a DMA kmalloc slab. Any other GFP_DMAs > left in the scsi > > layer? > > > > Acked-by: Christoph Lameter <clameter@xxxxxxx> > > Yes, here is another patch > > Signed-off-by: Aubrey.Li <aubreylee@xxxxxxxxx> > --- > drivers/scsi/aacraid/commctrl.c | 12 ++++++------ > 1 files changed, 6 insertions(+), 6 deletions(-) > > diff --git a/drivers/scsi/aacraid/commctrl.c > b/drivers/scsi/aacraid/commctrl.c > index 72b0393..405722d 100644 > --- a/drivers/scsi/aacraid/commctrl.c > +++ b/drivers/scsi/aacraid/commctrl.c > @@ -580,8 +580,8 @@ static int aac_send_raw_srb(struct aac_dev* dev, > void __user * arg) > for (i = 0; i < upsg->count; i++) { > u64 addr; > void* p; > - /* Does this really need to be > GFP_DMA? */ > - p = > kmalloc(upsg->sg[i].count,GFP_KERNEL|__GFP_DMA); > + > + p = > kmalloc(upsg->sg[i].count,GFP_KERNEL); > if(p == 0) { > > dprintk((KERN_DEBUG"aacraid: Could not allocate SG buffer - size > = %d buffer number %d of %d\n", > > upsg->sg[i].count,i,upsg->count)); > @@ -624,8 +624,8 @@ static int aac_send_raw_srb(struct aac_dev* dev, > void __user * arg) > for (i = 0; i < usg->count; i++) { > u64 addr; > void* p; > - /* Does this really need to be > GFP_DMA? */ > - p = > kmalloc(usg->sg[i].count,GFP_KERNEL|__GFP_DMA); > + > + p = > kmalloc(usg->sg[i].count,GFP_KERNEL); > if(p == 0) { > kfree (usg); > > dprintk((KERN_DEBUG"aacraid: Could not allocate SG buffer - size > = %d buffer number %d of %d\n", > @@ -666,8 +666,8 @@ static int aac_send_raw_srb(struct aac_dev* dev, > void __user * arg) > for (i = 0; i < upsg->count; i++) { > u64 addr; > void* p; > - /* Does this really need to be > GFP_DMA? */ > - p = > kmalloc(usg->sg[i].count,GFP_KERNEL|__GFP_DMA); > + > + p = > kmalloc(usg->sg[i].count,GFP_KERNEL); > if(p == 0) { > > dprintk((KERN_DEBUG"aacraid: Could not allocate SG buffer - size > = %d buffer number %d of %d\n", > > usg->sg[i].count,i,usg->count)); > -- > 1.5.1.1 > - > To unsubscribe from this list: send the line "unsubscribe > linux-kernel" in > the body of a message to majordomo@xxxxxxxxxxxxxxx > More majordomo info at http://vger.kernel.org/majordomo-info.html > Please read the FAQ at http://www.tux.org/lkml/ > - To unsubscribe from this list: send the line "unsubscribe linux-scsi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html