From: Oliver Neukum <oneukum@xxxxxxx> Date: Mon, 29 Jul 2013 07:20:24 +0200 > On Sat, 2013-07-27 at 20:21 -0700, David Miller wrote: >> From: Hayes Wang <hayeswang@xxxxxxxxxxx> >> Date: Thu, 25 Jul 2013 15:59:02 +0800 >> >> > Some USB buffers use stack which may not be DMA-able. >> > Use the buffers from kmalloc to replace those one. >> > >> > Signed-off-by: Hayes Wang <hayeswang@xxxxxxxxxxx> >> >> I don't think it's reasonable to kmalloc() a small integer every time >> you want to use a USB message transfer to read or write chip >> registers. >> >> Instead, add a scratch buffer to struct r8152 which is allocated once >> at driver attach time and which you can use for the transfers. >> >> I think you only need an array of two u32's so something like: >> >> u32 transfer_buf[2]; >> >> ought to be sufficient. > > We cannot do that. It would violate the rules about DMA coherency. > We must not touch the same cacheline while DMA is in operation. Good point, then it'll need to be: u32 *transfer_buf; and allocated appropriately. -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html