On Wed, Jul 20, 2016 at 08:53:06PM -0700, John Stultz wrote: > ds = kzalloc(sizeof(*ds) + num * sizeof(ds->desc_hw[0]), GFP_ATOMIC); > - if (!ds) { > - dev_dbg(chan->device->dev, "vchan %p: kzalloc fail\n", &c->vc); > + if (!ds)
This is an unrelated change > + > + ds = kzalloc(sizeof(*ds) + num * sizeof(ds->desc_hw[0]), GFP_ATOMIC); we should use GFP_NOWAIT. And looks like driver doesn't use GFP_NOWAIT< so you may fix that up as well > + if (!ds) > + return NULL; > + > + ds->desc_hw_lli = __virt_to_phys((unsigned long)&ds->desc_hw[0]); why no dma_map_single(()? Also __api is internal APIs, driver should not use them. Why not plain virt_to_phys() -- ~Vinod