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.