• Logan Gunthorpe's avatar
    NTB: ntb_transport: Ensure qp->tx_mw_dma_addr is initaliazed · 51cb8dbf
    Logan Gunthorpe authored
    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: c59666bb ("NTB: ntb_transport: Ensure the destination buffer is mapped for TX DMA")
    Signed-off-by: default avatarLogan Gunthorpe <logang@deltatee.com>
    Cc: Dan Carpenter <dan.carpenter@oracle.com>
    Signed-off-by: default avatarJon Mason <jdmason@kudzu.us>
    51cb8dbf
ntb_transport.c 57.3 KB