aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorLendacky, Thomas <Thomas.Lendacky@amd.com>2014-11-06 18:02:19 -0500
committerDavid S. Miller <davem@davemloft.net>2014-11-06 19:00:15 -0500
commitf5eecbbef0b7d28b171b3b873e1e4a69aabd7b58 (patch)
treebfda906e32b1522b4d1c051cf207adb6ca7138f8 /drivers
parente98c72c94205c59745f9ed0ac2837d5b83084a46 (diff)
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 'drivers')
-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:
1908 skb = xgbe_create_skb(pdata, rdata, &put_len); 1908 skb = xgbe_create_skb(pdata, rdata, &put_len);
1909 if (!skb) { 1909 if (!skb) {
1910 error = 1; 1910 error = 1;
1911 goto read_again; 1911 goto skip_data;
1912 } 1912 }
1913 } 1913 }
1914 1914
@@ -1926,10 +1926,10 @@ read_again:
1926 } 1926 }
1927 } 1927 }
1928 1928
1929skip_data:
1929 if (incomplete || context_next) 1930 if (incomplete || context_next)
1930 goto read_again; 1931 goto read_again;
1931 1932
1932 /* Stray Context Descriptor? */
1933 if (!skb) 1933 if (!skb)
1934 goto next_packet; 1934 goto next_packet;
1935 1935