mirror of https://gitee.com/openkylin/linux.git
NTB: ntb_transport: Ensure qp->tx_mw_dma_addr is initaliazed
Dan Carpenter's static checker reported:
drivers/ntb/ntb_transport.c:1926 ntb_transport_create_queue()
error: we previously assumed 'qp->tx_dma_chan' could be null (see line 1872)
This is because the tx_mw_dma_addr is uninitialized in this function and
may be incorrectly released using a NULL DMA channel.
In practice this bug will not likely be seen. I'd guess you could hit
this if you loaded ntb_netdev with use_dma=True, then unloaded it and
loaded it again after setting the module parameter to use_dma=False.
To fix this, we simply ensure that tx_mw_dma_addr is always
initialized to zero. This is the safest in case any other part of the
code operates on it if it is non-zero.
Fixes: c59666bb32
("NTB: ntb_transport: Ensure the destination buffer is mapped for TX DMA")
Signed-off-by: Logan Gunthorpe <logang@deltatee.com>
Cc: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Jon Mason <jdmason@kudzu.us>
This commit is contained in:
parent
a5c3666f1c
commit
51cb8dbf13
|
@ -1869,6 +1869,7 @@ ntb_transport_create_queue(void *data, struct device *client_dev,
|
|||
qp->rx_dma_chan = NULL;
|
||||
}
|
||||
|
||||
qp->tx_mw_dma_addr = 0;
|
||||
if (qp->tx_dma_chan) {
|
||||
qp->tx_mw_dma_addr =
|
||||
dma_map_resource(qp->tx_dma_chan->device->dev,
|
||||
|
|
Loading…
Reference in New Issue