On Tue, May 21, 2019 at 11:04:12AM +0000, Laurentiu Tudor wrote: > > > On 21.05.2019 11:16, Greg KH wrote: > > On Thu, May 16, 2019 at 02:47:19PM +0300, laurentiu.tudor@xxxxxxx wrote: > >> From: Laurentiu Tudor <laurentiu.tudor@xxxxxxx> > >> > >> For HCs that have local memory, replace the current DMA API usage > >> with a genalloc generic allocator to manage the mappings for these > >> devices. > >> This is in preparation for dropping the existing "coherent" dma > >> mem declaration APIs. Current implementation was relying on a short > >> circuit in the DMA API that in the end, was acting as an allocator > >> for these type of devices. > >> > >> For context, see thread here: https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Flkml.org%2Flkml%2F2019%2F4%2F22%2F357&data=02%7C01%7Claurentiu.tudor%40nxp.com%7Cf5242fb28d154ff9653208d6ddc4b41c%7C686ea1d3bc2b4c6fa92cd99c5c301635%7C0%7C0%7C636940234237524499&sdata=KEEUP1KH%2BaraWcVKogeYBzrauh%2FFTzGjSxjk%2BuNozjA%3D&reserved=0 > >> > >> Signed-off-by: Laurentiu Tudor <laurentiu.tudor@xxxxxxx> > >> --- > >> drivers/usb/core/buffer.c | 15 +++++++++++---- > >> drivers/usb/host/ohci-hcd.c | 23 ++++++++++++++++++----- > >> include/linux/usb/hcd.h | 3 +++ > >> 3 files changed, 32 insertions(+), 9 deletions(-) > >> > >> diff --git a/drivers/usb/core/buffer.c b/drivers/usb/core/buffer.c > >> index f641342cdec0..22a8f3f5679b 100644 > >> --- a/drivers/usb/core/buffer.c > >> +++ b/drivers/usb/core/buffer.c > >> @@ -16,6 +16,7 @@ > >> #include <linux/io.h> > >> #include <linux/dma-mapping.h> > >> #include <linux/dmapool.h> > >> +#include <linux/genalloc.h> > >> #include <linux/usb.h> > >> #include <linux/usb/hcd.h> > >> > >> @@ -124,10 +125,12 @@ void *hcd_buffer_alloc( > >> if (size == 0) > >> return NULL; > >> > >> + if (hcd->driver->flags & HCD_LOCAL_MEM) > >> + return gen_pool_dma_alloc(hcd->localmem_pool, size, dma); > > > > Does this patch now break things? hcd->localmem_pool at this point in > > time is NULL, so this call will fail. There's no chance for any host > > controller driver to actually set up this pool in this patch, so is > > bisection broken? > > Unfortunately, yes. I could lump the patches together but I think > Christoph suggestion is much better. I do too, can you redo these patches to work in that manner please? thanks, greg k-h