Messages in this thread | | | From | Dave Carroll <> | Subject | RE: aacraid code passes GFP_DMA32 to kmalloc this will not work | Date | Wed, 4 Apr 2018 21:56:08 +0000 |
| |
> -----Original Message----- > From: Hans de Goede [mailto:hdegoede@redhat.com] > Sent: Thursday, March 29, 2018 8:51 AM > To: dl-esc-Aacraid Linux Driver <aacraid@microsemi.com>; James E.J. > Bottomley <jejb@linux.vnet.ibm.com>; Martin K. Petersen > <martin.petersen@oracle.com>; SCSI development list <linux- > scsi@vger.kernel.org>; Linux Kernel Mailing List <linux-kernel@vger.kernel.org> > Subject: aacraid code passes GFP_DMA32 to kmalloc this will not work > > > Hi All, > > Since I made the same mistake myself I've done a quick grep for > GFP_DMA32 in the kernel and drivers/scsi/aacraid/commctrl.c came up as a > result of this grep, it does: > > p = kmalloc(sg_count[i], GFP_KERNEL|GFP_DMA32); > > But kmalloc always returns memory from the normal memory-zone, if you need > memory from a specific memory-zone like the > DMA32 zone, you must use the dma allocation functions (which from a quick > glance at the code seems appropriate here) or directly call alloc_page or > __get_free_page.
Hi Hans,
I did run into this issue myself recently ... Thanks for a reminder to send in a patch to correct this.
-Dave > > Regards, > > Hans
| |