]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
amd-xgbe: Check for complete packet on skb allocation error
authorLendacky, Thomas <Thomas.Lendacky@amd.com>
Thu, 6 Nov 2014 23:02:19 +0000 (17:02 -0600)
committerDavid S. Miller <davem@davemloft.net>
Fri, 7 Nov 2014 00:00:15 +0000 (19:00 -0500)
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>
drivers/net/ethernet/amd/xgbe/xgbe-drv.c

index ec5fff38108d772ec8fa1e1da9cf4bd18520da99..0544931329d16143f8b14d8620616762504aaad2 100644 (file)
@@ -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;