Re: [PATCH] usb/mcs7830: Don't use buffers from stack for USB transfers

From: Arnd Bergmann
Date: Tue Jan 20 2009 - 18:17:40 EST


On Tuesday 20 January 2009, David Miller wrote:
> You cannot DMA from/to the kernel stack, because it might not be in
> the aliased linear mapping of physical memory.  It could even be
> vmalloc()'d memory on some platforms.

Ok, I see. It seems a bit of a waste to do a kmalloc for something
that is guaranteed to be just a few bytes, but allocating the
buffer per-device would mean another mutex, which has about the
same overhead, so I'm basically ok with the patch.

> + buffer = kmalloc(size, GFP_NOIO);

GFP_NOIO seems out of place in a network driver: there is nothing
wrong with waiting for I/O here, so plain GFP_KERNEL should be fine.

> + if (buffer == NULL)
> + return -ENOMEM;

I'd prefer to write

if (!buffer)

here, as I do elsewhere in the driver.

Otherwise,

Acked-by: Arnd Bergmann <arnd@xxxxxxxx>
--
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/