[PATCH 2/4] char: xillybus: replace __get_free_pages() with kmalloc()
David Laight
david.laight.linux at gmail.com
Tue Sep 1 01:37:35 PDT 2026
On Tue, 1 Sep 2026 10:59:16 +0300
Mike Rapoport <rppt at kernel.org> wrote:
> On Mon, Aug 31, 2026 at 12:39:37PM +0100, David Laight wrote:
> > On Mon, 31 Aug 2026 12:13:08 +0200
> > Eli Billauer <eli.billauer at gmail.com> wrote:
> >
> > > On 30/08/2026 9:47, Mike Rapoport (Microsoft) wrote:
> > > > fifo_init() allocates the buffers backing the software FIFO and
> > > > endpoint_alloc() allocates the transfer buffers of a USB endpoint.
> > > >
> > > > These buffers can be allocated with kmalloc() as there's nothing special
> > > > about them to go directly to the page allocator.
> > >
> > > Except that they are a bit large.
> > >
> > > fifo_init() may be requested to allocate up to 256 MB of buffer memory.
> > > This memory resource is split into an array of buffers (fifo->mem[i]),
> > > each 64 kiB (or less, if there's trouble obtaining segments of this size).
> >
> > Would it really make sense to allocate the four buffers separately?
> > And/or use vmalloc().
>
> My understanding is that the buffers don't need to be physically
> contiguous and vmalloc()ing the entire fifo->mem in one go should work.
What is the minimum size?
Remember PAGE_SIZE can be 64k.
David
>
> Eli, what do you think?
>
> > David
>
More information about the linux-arm-kernel
mailing list