net: lantiq_xrx200: fix lock under memory pressure
[ Upstream commit c4b6e9341f930e4dd089231c0414758f5f1f9dbd ] When the xrx200_hw_receive() function returns -ENOMEM, the NAPI poll function immediately returns an error. This is incorrect for two reasons: * the function terminates without enabling interrupts or scheduling NAPI, * the error code (-ENOMEM) is returned instead of the number of received packets. After the first memory allocation failure occurs, packet reception is locked due to disabled interrupts from DMA.. Fixes: fe1a56420cf2 ("net: lantiq: Add Lantiq / Intel VRX200 Ethernet driver") Signed-off-by: Aleksander Jan Bajkowski <olek2@wp.pl> Signed-off-by: Jakub Kicinski <kuba@kernel.org> Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
parent
73f4758652
commit
0d9981b063
@ -294,7 +294,7 @@ static int xrx200_poll_rx(struct napi_struct *napi, int budget)
|
||||
if (ret == XRX200_DMA_PACKET_IN_PROGRESS)
|
||||
continue;
|
||||
if (ret != XRX200_DMA_PACKET_COMPLETE)
|
||||
return ret;
|
||||
break;
|
||||
rx++;
|
||||
} else {
|
||||
break;
|
||||
|
Loading…
x
Reference in New Issue
Block a user