mirror of https://gitee.com/openkylin/linux.git
amd-xgbe: Check for complete packet on skb allocation error
If the skb allocation fails during receive processing, the driver would continue reading descriptors without first determining if there were any more descriptors for the current packet. Update the code to check whether more descriptors are associated with the current packet or whether to move on to the next descriptor as a new packet. Signed-off-by: Tom Lendacky <thomas.lendacky@amd.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
e98c72c942
commit
f5eecbbef0
|
@ -1908,7 +1908,7 @@ static int xgbe_rx_poll(struct xgbe_channel *channel, int budget)
|
|||
skb = xgbe_create_skb(pdata, rdata, &put_len);
|
||||
if (!skb) {
|
||||
error = 1;
|
||||
goto read_again;
|
||||
goto skip_data;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1926,10 +1926,10 @@ static int xgbe_rx_poll(struct xgbe_channel *channel, int budget)
|
|||
}
|
||||
}
|
||||
|
||||
skip_data:
|
||||
if (incomplete || context_next)
|
||||
goto read_again;
|
||||
|
||||
/* Stray Context Descriptor? */
|
||||
if (!skb)
|
||||
goto next_packet;
|
||||
|
||||
|
|
Loading…
Reference in New Issue