25/10/2024 13:52, Morten Brørup:
> When configuring DPDK for one queue per port
> (#define RTE_MAX_QUEUES_PER_PORT 1), compilation of some network drivers
> fails with e.g.:
> 
> ../drivers/net/bnxt/bnxt_rxq.c: In function 'bnxt_rx_queue_stop':
> ../drivers/net/bnxt/bnxt_rxq.c:587:34: error: array subscript 1 is above 
> array bounds of 'uint8_t[1]' {aka 'unsigned char[1]'} [-Werror=array-bounds=]
>   587 |         dev->data->rx_queue_state[q_id] = RTE_ETH_QUEUE_STATE_STOPPED;
>       |         ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
> In file included from ../drivers/net/bnxt/bnxt.h:16,
>                  from ../drivers/net/bnxt/bnxt_rxq.c:10:
> ../lib/ethdev/ethdev_driver.h:168:17: note: while referencing 'rx_queue_state'
>   168 |         uint8_t rx_queue_state[RTE_MAX_QUEUES_PER_PORT];
>       |                 ^~~~~~~~~~~~~~
> 
> This series fixes those compiler emitted errros as follows:
> 1. A precondition hint macro is introduced, which can be used to prevent
>    the compiler/optimizer from considering scenarios that cannot occur.
> 2. The hint is added to the network drivers where a compiler in the CI has
>    been seen to emit the above error when DPDK is configured for one queue
>    per port, but we know that the error cannot occur.
> 
> Morten Brørup (2):
>   eal: add unreachable and precondition hints
>   drivers/net: support single queue per port

Applied, thanks.


Reply via email to