aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/e1000
diff options
context:
space:
mode:
authorJeff Garzik <jeff@garzik.org>2006-06-08 15:55:45 -0400
committerJeff Garzik <jeff@garzik.org>2006-06-08 15:55:45 -0400
commitbcd618e4eac6fbf82de05d23c15ecb694c62b8af (patch)
treee1a85b6a5f10c7ac20ef3b3357e15c5802dca019 /drivers/net/e1000
parentba9b28d19a3251bb1dfe6a6f8cc89b96fb85f683 (diff)
parentcb15f81beb1e2ad015d6e7aea2f9b49fdbda9d1a (diff)
Merge branch 'upstream-fixes' into upstream
Conflicts: drivers/net/e1000/e1000_ethtool.c
Diffstat (limited to 'drivers/net/e1000')
-rw-r--r--drivers/net/e1000/e1000_ethtool.c9
-rw-r--r--drivers/net/e1000/e1000_main.c8
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 bd709e562778..115eff25d8c1 100644
--- a/drivers/net/e1000/e1000_main.c
+++ b/drivers/net/e1000/e1000_main.c
@@ -3494,7 +3494,7 @@ e1000_clean_rx_irq(struct e1000_adapter *adapter,
3494 buffer_info = &rx_ring->buffer_info[i]; 3494 buffer_info = &rx_ring->buffer_info[i];
3495 3495
3496 while (rx_desc->status & E1000_RXD_STAT_DD) { 3496 while (rx_desc->status & E1000_RXD_STAT_DD) {
3497 struct sk_buff *skb, *next_skb; 3497 struct sk_buff *skb;
3498 u8 status; 3498 u8 status;
3499#ifdef CONFIG_E1000_NAPI 3499#ifdef CONFIG_E1000_NAPI
3500 if (*work_done >= work_to_do) 3500 if (*work_done >= work_to_do)
@@ -3512,8 +3512,6 @@ e1000_clean_rx_irq(struct e1000_adapter *adapter,
3512 prefetch(next_rxd); 3512 prefetch(next_rxd);
3513 3513
3514 next_buffer = &rx_ring->buffer_info[i]; 3514 next_buffer = &rx_ring->buffer_info[i];
3515 next_skb = next_buffer->skb;
3516 prefetch(next_skb->data - NET_IP_ALIGN);
3517 3515
3518 cleaned = TRUE; 3516 cleaned = TRUE;
3519 cleaned_count++; 3517 cleaned_count++;
@@ -3644,7 +3642,7 @@ e1000_clean_rx_irq_ps(struct e1000_adapter *adapter,
3644 struct e1000_buffer *buffer_info, *next_buffer; 3642 struct e1000_buffer *buffer_info, *next_buffer;
3645 struct e1000_ps_page *ps_page; 3643 struct e1000_ps_page *ps_page;
3646 struct e1000_ps_page_dma *ps_page_dma; 3644 struct e1000_ps_page_dma *ps_page_dma;
3647 struct sk_buff *skb, *next_skb; 3645 struct sk_buff *skb;
3648 unsigned int i, j; 3646 unsigned int i, j;
3649 uint32_t length, staterr; 3647 uint32_t length, staterr;
3650 int cleaned_count = 0; 3648 int cleaned_count = 0;
@@ -3674,8 +3672,6 @@ e1000_clean_rx_irq_ps(struct e1000_adapter *adapter,
3674 prefetch(next_rxd); 3672 prefetch(next_rxd);
3675 3673
3676 next_buffer = &rx_ring->buffer_info[i]; 3674 next_buffer = &rx_ring->buffer_info[i];
3677 next_skb = next_buffer->skb;
3678 prefetch(next_skb->data - NET_IP_ALIGN);
3679 3675
3680 cleaned = TRUE; 3676 cleaned = TRUE;
3681 cleaned_count++; 3677 cleaned_count++;