xen/gntdev: remove struct gntdev_copy_batch from stack
authorJuergen Gross <jgross@suse.com>
Thu, 3 Jul 2025 07:32:59 +0000 (09:32 +0200)
committerJuergen Gross <jgross@suse.com>
Mon, 14 Jul 2025 15:10:09 +0000 (17:10 +0200)
commit70045cf6593cbf0740956ea9b7b4269142c6ee38
treebadc3dcc0471c3b7d0a46aeb9b92a660383620ad
parent532c8b51b3a8676cbf533a291f8156774f30ea87
xen/gntdev: remove struct gntdev_copy_batch from stack

When compiling the kernel with LLVM, the following warning was issued:

  drivers/xen/gntdev.c:991: warning: stack frame size (1160) exceeds
  limit (1024) in function 'gntdev_ioctl'

The main reason is struct gntdev_copy_batch which is located on the
stack and has a size of nearly 1kb.

For performance reasons it shouldn't by just dynamically allocated
instead, so allocate a new instance when needed and instead of freeing
it put it into a list of free structs anchored in struct gntdev_priv.

Fixes: a4cdb556cae0 ("xen/gntdev: add ioctl for grant copy")
Reported-by: Abinash Singh <abinashsinghlalotra@gmail.com>
Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
Signed-off-by: Juergen Gross <jgross@suse.com>
Message-ID: <20250703073259.17356-1-jgross@suse.com>
drivers/xen/gntdev-common.h
drivers/xen/gntdev.c