Re: [PATCH v4 2/3] usb: host: ohci-sm501: init genalloc for local memory

From: Christoph Hellwig
Date: Tue May 21 2019 - 06:42:49 EST


On Thu, May 16, 2019 at 02:47:20PM +0300, laurentiu.tudor@xxxxxxx wrote:
> + hcd->localmem_pool = devm_gen_pool_create(dev, PAGE_SHIFT,
> + dev_to_node(dev),
> + "ohci-sm501");
> + if (IS_ERR(hcd->localmem_pool)) {
> + retval = PTR_ERR(hcd->localmem_pool);
> + goto err5;
> + }
> +
> + local_mem = devm_ioremap(dev, mem->start, resource_size(mem));
> + if (!local_mem) {
> + retval = -ENOMEM;
> + goto err5;
> + }
> +
> + retval = gen_pool_add_virt(hcd->localmem_pool,
> + (unsigned long)local_mem,
> + mem->start - mem->parent->start,
> + resource_size(mem),
> + dev_to_node(dev));

I wonder if having a helper for these operations would be useful,
explaining what we do here. That is create a pool for a resource,
where the virtual address is the ioremap of said resource. We
could also make that a managed API so that you can get rid of the
cleanup path.