aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/ethernet/amd/xgbe/xgbe-drv.c
diff options
context:
space:
mode:
authorLendacky, Thomas <Thomas.Lendacky@amd.com>2014-11-06 17:02:19 -0600
committerDavid S. Miller <davem@davemloft.net>2014-11-06 19:00:15 -0500
commitf5eecbbef0b7d28b171b3b873e1e4a69aabd7b58 (patch)
treebfda906e32b1522b4d1c051cf207adb6ca7138f8 /drivers/net/ethernet/amd/xgbe/xgbe-drv.c
parentamd-xgbe: Free channel/ring structures later (diff)
downloadlinux-dev-f5eecbbef0b7d28b171b3b873e1e4a69aabd7b58.tar.xz
linux-dev-f5eecbbef0b7d28b171b3b873e1e4a69aabd7b58.zip
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>
Diffstat (limited to '')
-rw-r--r--drivers/net/ethernet/amd/xgbe/xgbe-drv.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/net/ethernet/amd/xgbe/xgbe-drv.c b/drivers/net/ethernet/amd/xgbe/xgbe-drv.c
index ec5fff38108d..0544931329d1 100644
--- a/drivers/net/ethernet/amd/xgbe/xgbe-drv.c
+++ b/drivers/net/ethernet/amd/xgbe/xgbe-drv.c
@@ -1908,7 +1908,7 @@ read_again:
skb = xgbe_create_skb(pdata, rdata, &put_len);
if (!skb) {
error = 1;
- goto read_again;
+ goto skip_data;
}
}
@@ -1926,10 +1926,10 @@ read_again:
}
}
+skip_data:
if (incomplete || context_next)
goto read_again;
- /* Stray Context Descriptor? */
if (!skb)
goto next_packet;