Reviewed-by: Marcus Wolf <linux@xxxxxxxxxxxxxxxxxxxxx> Maybe tx_buffer is a bit more clearly then buffer. Thanks, Marcus Am Mo, 31.07.2017, 10:57 schrieb Arnd Bergmann: > Putting a 900 byte array on the stack is a clearly too much in the > kernel, and sometimes results in warnings like: > > drivers/staging/pi433/pi433_if.c: In function 'pi433_tx_thread': > drivers/staging/pi433/pi433_if.c:645:1: error: the frame size of 1028 bytes is larger than 1024 bytes [-Werror=frame-larger-than=] > > This moves the buffer into the dynamically allocated per-device > structure. > > Signed-off-by: Arnd Bergmann <arnd@xxxxxxxx> > --- > drivers/staging/pi433/pi433_if.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/drivers/staging/pi433/pi433_if.c b/drivers/staging/pi433/pi433_if.c > index ed737f4b1e77..ec9811ae4735 100644 > --- a/drivers/staging/pi433/pi433_if.c > +++ b/drivers/staging/pi433/pi433_if.c > @@ -92,6 +92,7 @@ struct pi433_device { > struct task_struct *tx_task_struct; > wait_queue_head_t tx_wait_queue; > u8 free_in_fifo; > + char buffer[MAX_MSG_SIZE]; > > /* rx related values */ > struct pi433_rx_cfg rx_cfg; > @@ -471,7 +472,7 @@ pi433_tx_thread(void *data) > struct pi433_device *device = data; > struct spi_device *spi = device->spi; /* needed for SET_CHECKED */ > struct pi433_tx_cfg tx_cfg; > - u8 buffer[MAX_MSG_SIZE]; > + u8 *buffer = device->buffer; > size_t size; > bool rx_interrupted = false; > int position, repetitions; > -- > 2.9.0 > > > _______________________________________________ devel mailing list devel@xxxxxxxxxxxxxxxxxxxxxx http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel