diff options
-rw-r--r-- | drivers/net/ethernet/intel/e1000/e1000_main.c | 24 |
1 files changed, 0 insertions, 24 deletions
diff --git a/drivers/net/ethernet/intel/e1000/e1000_main.c b/drivers/net/ethernet/intel/e1000/e1000_main.c index f1aef68e1e83..fefbf4d66e18 100644 --- a/drivers/net/ethernet/intel/e1000/e1000_main.c +++ b/drivers/net/ethernet/intel/e1000/e1000_main.c | |||
@@ -4391,30 +4391,6 @@ e1000_alloc_jumbo_rx_buffers(struct e1000_adapter *adapter, | |||
4391 | break; | 4391 | break; |
4392 | } | 4392 | } |
4393 | 4393 | ||
4394 | /* Fix for errata 23, can't cross 64kB boundary */ | ||
4395 | if (!e1000_check_64k_bound(adapter, skb->data, bufsz)) { | ||
4396 | struct sk_buff *oldskb = skb; | ||
4397 | e_err(rx_err, "skb align check failed: %u bytes at " | ||
4398 | "%p\n", bufsz, skb->data); | ||
4399 | /* Try again, without freeing the previous */ | ||
4400 | skb = netdev_alloc_skb_ip_align(netdev, bufsz); | ||
4401 | /* Failed allocation, critical failure */ | ||
4402 | if (!skb) { | ||
4403 | dev_kfree_skb(oldskb); | ||
4404 | adapter->alloc_rx_buff_failed++; | ||
4405 | break; | ||
4406 | } | ||
4407 | |||
4408 | if (!e1000_check_64k_bound(adapter, skb->data, bufsz)) { | ||
4409 | /* give up */ | ||
4410 | dev_kfree_skb(skb); | ||
4411 | dev_kfree_skb(oldskb); | ||
4412 | break; /* while (cleaned_count--) */ | ||
4413 | } | ||
4414 | |||
4415 | /* Use new allocation */ | ||
4416 | dev_kfree_skb(oldskb); | ||
4417 | } | ||
4418 | buffer_info->skb = skb; | 4394 | buffer_info->skb = skb; |
4419 | buffer_info->length = adapter->rx_buffer_len; | 4395 | buffer_info->length = adapter->rx_buffer_len; |
4420 | check_page: | 4396 | check_page: |