net: cavium: liquidio: Avoid dma_unmap_single on uninitialized ndata
authorFlorian Fainelli <f.fainelli@gmail.com>
Fri, 15 Jul 2016 23:42:16 +0000 (16:42 -0700)
committerDavid S. Miller <davem@davemloft.net>
Sun, 17 Jul 2016 05:06:00 +0000 (22:06 -0700)
commit8e6ce7ebeb34f0992f56de078c3744fb383657fa
tree45e45ffd2d44c992615d3f3495df7e271858e75a
parentea6ff112b095dce2060c304195904d859c3e2625
net: cavium: liquidio: Avoid dma_unmap_single on uninitialized ndata

The label lio_xmit_failed is used 3 times through liquidio_xmit() but it
always makes a call to dma_unmap_single() using potentially
uninitialized variables from "ndata" variable. Out of the 3 gotos, 2 run
after ndata has been initialized, and had a prior dma_map_single() call.

Fix this by adding a new error label: lio_xmit_dma_failed which does
this dma_unmap_single() and then processed with the lio_xmit_failed
fallthrough.

Fixes: f21fb3ed364bb ("Add support of Cavium Liquidio ethernet adapters")
Reported-by: coverity (CID 1309740)
Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/cavium/liquidio/lio_main.c