diff options
Diffstat (limited to 'drivers/net/e1000')
-rw-r--r-- | drivers/net/e1000/e1000_ethtool.c | 9 | ||||
-rw-r--r-- | drivers/net/e1000/e1000_main.c | 8 |
2 files changed, 8 insertions, 9 deletions
diff --git a/drivers/net/e1000/e1000_ethtool.c b/drivers/net/e1000/e1000_ethtool.c index cfdf0b24ffc1..6ed7f599eba3 100644 --- a/drivers/net/e1000/e1000_ethtool.c +++ b/drivers/net/e1000/e1000_ethtool.c | |||
@@ -871,13 +871,16 @@ e1000_intr_test(struct e1000_adapter *adapter, uint64_t *data) | |||
871 | *data = 0; | 871 | *data = 0; |
872 | 872 | ||
873 | /* Hook up test interrupt handler just for this test */ | 873 | /* Hook up test interrupt handler just for this test */ |
874 | if (!request_irq(irq, &e1000_test_intr, 0, netdev->name, netdev)) { | 874 | if (!request_irq(irq, &e1000_test_intr, SA_PROBEIRQ, netdev->name, |
875 | shared_int = FALSE; | 875 | netdev)) { |
876 | } else if (request_irq(irq, &e1000_test_intr, SA_SHIRQ, | 876 | shared_int = FALSE; |
877 | } else if (request_irq(irq, &e1000_test_intr, SA_SHIRQ, | ||
877 | netdev->name, netdev)){ | 878 | netdev->name, netdev)){ |
878 | *data = 1; | 879 | *data = 1; |
879 | return -1; | 880 | return -1; |
880 | } | 881 | } |
882 | DPRINTK(PROBE,INFO, "testing %s interrupt\n", | ||
883 | (shared_int ? "shared" : "unshared")); | ||
881 | 884 | ||
882 | /* Disable all the interrupts */ | 885 | /* Disable all the interrupts */ |
883 | E1000_WRITE_REG(&adapter->hw, IMC, 0xFFFFFFFF); | 886 | E1000_WRITE_REG(&adapter->hw, IMC, 0xFFFFFFFF); |
diff --git a/drivers/net/e1000/e1000_main.c b/drivers/net/e1000/e1000_main.c index 564fab4914e1..56c7492e3e91 100644 --- a/drivers/net/e1000/e1000_main.c +++ b/drivers/net/e1000/e1000_main.c | |||
@@ -3509,7 +3509,7 @@ e1000_clean_rx_irq(struct e1000_adapter *adapter, | |||
3509 | buffer_info = &rx_ring->buffer_info[i]; | 3509 | buffer_info = &rx_ring->buffer_info[i]; |
3510 | 3510 | ||
3511 | while (rx_desc->status & E1000_RXD_STAT_DD) { | 3511 | while (rx_desc->status & E1000_RXD_STAT_DD) { |
3512 | struct sk_buff *skb, *next_skb; | 3512 | struct sk_buff *skb; |
3513 | u8 status; | 3513 | u8 status; |
3514 | #ifdef CONFIG_E1000_NAPI | 3514 | #ifdef CONFIG_E1000_NAPI |
3515 | if (*work_done >= work_to_do) | 3515 | if (*work_done >= work_to_do) |
@@ -3527,8 +3527,6 @@ e1000_clean_rx_irq(struct e1000_adapter *adapter, | |||
3527 | prefetch(next_rxd); | 3527 | prefetch(next_rxd); |
3528 | 3528 | ||
3529 | next_buffer = &rx_ring->buffer_info[i]; | 3529 | next_buffer = &rx_ring->buffer_info[i]; |
3530 | next_skb = next_buffer->skb; | ||
3531 | prefetch(next_skb->data - NET_IP_ALIGN); | ||
3532 | 3530 | ||
3533 | cleaned = TRUE; | 3531 | cleaned = TRUE; |
3534 | cleaned_count++; | 3532 | cleaned_count++; |
@@ -3659,7 +3657,7 @@ e1000_clean_rx_irq_ps(struct e1000_adapter *adapter, | |||
3659 | struct e1000_buffer *buffer_info, *next_buffer; | 3657 | struct e1000_buffer *buffer_info, *next_buffer; |
3660 | struct e1000_ps_page *ps_page; | 3658 | struct e1000_ps_page *ps_page; |
3661 | struct e1000_ps_page_dma *ps_page_dma; | 3659 | struct e1000_ps_page_dma *ps_page_dma; |
3662 | struct sk_buff *skb, *next_skb; | 3660 | struct sk_buff *skb; |
3663 | unsigned int i, j; | 3661 | unsigned int i, j; |
3664 | uint32_t length, staterr; | 3662 | uint32_t length, staterr; |
3665 | int cleaned_count = 0; | 3663 | int cleaned_count = 0; |
@@ -3689,8 +3687,6 @@ e1000_clean_rx_irq_ps(struct e1000_adapter *adapter, | |||
3689 | prefetch(next_rxd); | 3687 | prefetch(next_rxd); |
3690 | 3688 | ||
3691 | next_buffer = &rx_ring->buffer_info[i]; | 3689 | next_buffer = &rx_ring->buffer_info[i]; |
3692 | next_skb = next_buffer->skb; | ||
3693 | prefetch(next_skb->data - NET_IP_ALIGN); | ||
3694 | 3690 | ||
3695 | cleaned = TRUE; | 3691 | cleaned = TRUE; |
3696 | cleaned_count++; | 3692 | cleaned_count++; |