Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f5eecbbe authored by Lendacky, Thomas's avatar Lendacky, Thomas Committed by David S. Miller
Browse files

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: default avatarTom Lendacky <thomas.lendacky@amd.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent e98c72c9
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -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;