Re: [PATCH] [v2] scsi: mpi3mr: reduce stack usage in mpi3mr_refresh_sas_ports()

From: John Garry
Date: Mon Feb 19 2024 - 07:08:54 EST


On 23/01/2024 13:07, Arnd Bergmann wrote:
From: Arnd Bergmann <arnd@xxxxxxxx>

Doubling the number of PHYs also doubled the stack usage of this function,
exceeding the 32-bit limit of 1024 bytes:

drivers/scsi/mpi3mr/mpi3mr_transport.c: In function 'mpi3mr_refresh_sas_ports':
drivers/scsi/mpi3mr/mpi3mr_transport.c:1818:1: error: the frame size of 1636 bytes is larger than 1024 bytes [-Werror=frame-larger-than=]

Since the sas_io_unit_pg0 structure is already allocated dynamically, use
the same method here. The size of the allocation can be smaller based on the
actual number of phys now, so use this as an upper bound.

Fixes: cb5b60894602 ("scsi: mpi3mr: Increase maximum number of PHYs to 64 from 32")
Reviewed-by: Johannes Thumshirn <johannes.thumshirn@xxxxxxx>
Cc: Sathya Prakash Veerichetty <sathya.prakash@xxxxxxxxxxxx>
Signed-off-by: Arnd Bergmann <arnd@xxxxxxxx>

Has this patch been missed?

I have this same build issue for i386 allmodconfig on v6.8-rc5 and earlier

Tested-by: John Garry <john.g.garry@xxxxxxxxxx> #build only