mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-09-29 13:53:33 +00:00
net: ethernet: mtk_eth_soc: fix uninitialized variable
Variable dma_addr in function mtk_poll_rx can be uninitialized on some of the error paths. In practise this doesn't matter, even random data present in uninitialized stack memory can safely be used in the way it happens in the error path. However, in order to make Smatch happy make sure the variable is always initialized. Signed-off-by: Daniel Golle <daniel@makrotopia.org> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
c821a88bd7
commit
e10a35abb3
1 changed files with 3 additions and 2 deletions
|
@ -2005,11 +2005,11 @@ static int mtk_poll_rx(struct napi_struct *napi, int budget,
|
||||||
u8 *data, *new_data;
|
u8 *data, *new_data;
|
||||||
struct mtk_rx_dma_v2 *rxd, trxd;
|
struct mtk_rx_dma_v2 *rxd, trxd;
|
||||||
int done = 0, bytes = 0;
|
int done = 0, bytes = 0;
|
||||||
|
dma_addr_t dma_addr = DMA_MAPPING_ERROR;
|
||||||
|
|
||||||
while (done < budget) {
|
while (done < budget) {
|
||||||
unsigned int pktlen, *rxdcsum;
|
unsigned int pktlen, *rxdcsum;
|
||||||
struct net_device *netdev;
|
struct net_device *netdev;
|
||||||
dma_addr_t dma_addr;
|
|
||||||
u32 hash, reason;
|
u32 hash, reason;
|
||||||
int mac = 0;
|
int mac = 0;
|
||||||
|
|
||||||
|
@ -2186,7 +2186,8 @@ static int mtk_poll_rx(struct napi_struct *napi, int budget,
|
||||||
else
|
else
|
||||||
rxd->rxd2 = RX_DMA_PREP_PLEN0(ring->buf_size);
|
rxd->rxd2 = RX_DMA_PREP_PLEN0(ring->buf_size);
|
||||||
|
|
||||||
if (MTK_HAS_CAPS(eth->soc->caps, MTK_36BIT_DMA))
|
if (MTK_HAS_CAPS(eth->soc->caps, MTK_36BIT_DMA) &&
|
||||||
|
likely(dma_addr != DMA_MAPPING_ERROR))
|
||||||
rxd->rxd2 |= RX_DMA_PREP_ADDR64(dma_addr);
|
rxd->rxd2 |= RX_DMA_PREP_ADDR64(dma_addr);
|
||||||
|
|
||||||
ring->calc_idx = idx;
|
ring->calc_idx = idx;
|
||||||
|
|
Loading…
Reference in a new issue