Skip to content

Commit 101f0cd

Browse files
gal-pressmandavem330
authored andcommitted
net: ena: Fix use of uninitialized DMA address bits field
UBSAN triggers the following undefined behaviour warnings: [...] [ 13.236124] UBSAN: Undefined behaviour in drivers/net/ethernet/amazon/ena/ena_eth_com.c:468:22 [ 13.240043] shift exponent 64 is too large for 64-bit type 'long long unsigned int' [...] [ 13.744769] UBSAN: Undefined behaviour in drivers/net/ethernet/amazon/ena/ena_eth_com.c:373:4 [ 13.748694] shift exponent 64 is too large for 64-bit type 'long long unsigned int' [...] When splitting the address to high and low, GENMASK_ULL is used to generate a bitmask with dma_addr_bits field from io_sq (in ena_com_prepare_tx and ena_com_add_single_rx_desc). The problem is that dma_addr_bits is not initialized with a proper value (besides being cleared in ena_com_create_io_queue). Assign dma_addr_bits the correct value that is stored in ena_dev when initializing the SQ. Fixes: 1738cd3 ("net: ena: Add a driver for Amazon Elastic Network Adapters (ENA)") Signed-off-by: Gal Pressman <[email protected]> Signed-off-by: David S. Miller <[email protected]>
1 parent 9e630bc commit 101f0cd

File tree

1 file changed

+1
-0
lines changed

1 file changed

+1
-0
lines changed

drivers/net/ethernet/amazon/ena/ena_com.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -333,6 +333,7 @@ static int ena_com_init_io_sq(struct ena_com_dev *ena_dev,
333333

334334
memset(&io_sq->desc_addr, 0x0, sizeof(io_sq->desc_addr));
335335

336+
io_sq->dma_addr_bits = ena_dev->dma_addr_bits;
336337
io_sq->desc_entry_size =
337338
(io_sq->direction == ENA_COM_IO_QUEUE_DIRECTION_TX) ?
338339
sizeof(struct ena_eth_io_tx_desc) :

0 commit comments

Comments
 (0)