[PATCH] [v2] iommu/io-pgtable-arm: dynamically allocate selftest device struct
Joerg Roedel
joro at 8bytes.org
Mon Apr 28 04:21:36 PDT 2025
On Wed, Apr 23, 2025 at 06:48:16PM +0200, Arnd Bergmann wrote:
> From: Arnd Bergmann <arnd at arndb.de>
>
> In general a 'struct device' is way too large to be put on the kernel
> stack. Apparently something just caused it to grow a slightly larger,
> which pushed the arm_lpae_do_selftests() function over the warning
> limit in some configurations:
>
> drivers/iommu/io-pgtable-arm.c:1423:19: error: stack frame size (1032) exceeds limit (1024) in 'arm_lpae_do_selftests' [-Werror,-Wframe-larger-than]
> 1423 | static int __init arm_lpae_do_selftests(void)
> | ^
>
> Change the function to use a dynamically allocated faux_device
> instead of the on-stack device structure.
>
> Fixes: ca25ec247aad ("iommu/io-pgtable-arm: Remove iommu_dev==NULL special case")
> Link: https://lore.kernel.org/all/ab75a444-22a1-47f5-b3c0-253660395b5a@arm.com/
> Signed-off-by: Arnd Bergmann <arnd at arndb.de>
> ---
> v2: use faux device instead of platform_device, as Robin suggested.
> The faux device is more appropriate here since the is no actual physical
> device, though on the other hand the v1 patch had the advantage of not
> actually needing to register the device.
> ---
> drivers/iommu/io-pgtable-arm.c | 13 +++++++++----
> 1 file changed, 9 insertions(+), 4 deletions(-)
Applied, thanks.
More information about the linux-arm-kernel
mailing list