net: stmmac: Avoid VLA usage
In the quest to remove all stack VLAs from the kernel[1], this switches the "status" stack buffer to use the existing small (8) upper bound on how many queues can be checked for DMA, and adds a sanity-check just to make sure it doesn't operate under pathological conditions. [1] http://lkml.kernel.org/r/CA+55aFzCG-zNmZwX4A2FQpadafLfEzK6CC=qPXydAacU1RqZWA@mail.gmail.com Signed-off-by: Kees Cook <keescook@chromium.org> Reviewed-by: Jose Abreu <joabreu@synopsys.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
795d8098d3
commit
8ac60ffb9a
1 changed files with 5 additions and 1 deletions
|
@ -2022,7 +2022,11 @@ static void stmmac_dma_interrupt(struct stmmac_priv *priv)
|
|||
tx_channel_count : rx_channel_count;
|
||||
u32 chan;
|
||||
bool poll_scheduled = false;
|
||||
int status[channels_to_check];
|
||||
int status[max_t(u32, MTL_MAX_TX_QUEUES, MTL_MAX_RX_QUEUES)];
|
||||
|
||||
/* Make sure we never check beyond our status buffer. */
|
||||
if (WARN_ON_ONCE(channels_to_check > ARRAY_SIZE(status)))
|
||||
channels_to_check = ARRAY_SIZE(status);
|
||||
|
||||
/* Each DMA channel can be used for rx and tx simultaneously, yet
|
||||
* napi_struct is embedded in struct stmmac_rx_queue rather than in a
|
||||
|
|
Loading…
Reference in a new issue