aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorDavid S. Miller <davem@davemloft.net>2008-07-14 23:23:54 -0400
committerDavid S. Miller <davem@davemloft.net>2008-07-14 23:23:54 -0400
commit2aec609fb45e84d65bc8eabc7b650bbecb1cc179 (patch)
treeeb3e8a79604113392d0ee74b19dbc1dfce579c11 /drivers
parent4c8894980010536915c4f5513ee180e3614aeca9 (diff)
parent9076689ab07974a6f5d230fc241448f7a77e9078 (diff)
Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
Conflicts: net/netfilter/nf_conntrack_proto_tcp.c
Diffstat (limited to 'drivers')
-rw-r--r--drivers/net/arm/ixp4xx_eth.c3
-rw-r--r--drivers/net/tun.c6
-rw-r--r--drivers/net/wireless/libertas/scan.c4
-rw-r--r--drivers/net/wireless/rt2x00/rt2400pci.c11
-rw-r--r--drivers/net/wireless/rt2x00/rt2500pci.c11
-rw-r--r--drivers/net/wireless/rt2x00/rt2500usb.c7
-rw-r--r--drivers/net/wireless/rt2x00/rt61pci.c9
-rw-r--r--drivers/net/wireless/rt2x00/rt73usb.c9
-rw-r--r--drivers/net/wireless/zd1211rw/zd_mac.c1
9 files changed, 57 insertions, 4 deletions
diff --git a/drivers/net/arm/ixp4xx_eth.c b/drivers/net/arm/ixp4xx_eth.c
index c617b64c288e..9b777d9433cd 100644
--- a/drivers/net/arm/ixp4xx_eth.c
+++ b/drivers/net/arm/ixp4xx_eth.c
@@ -522,7 +522,6 @@ static int eth_poll(struct napi_struct *napi, int budget)
522#endif 522#endif
523 523
524 if ((n = queue_get_desc(rxq, port, 0)) < 0) { 524 if ((n = queue_get_desc(rxq, port, 0)) < 0) {
525 received = 0; /* No packet received */
526#if DEBUG_RX 525#if DEBUG_RX
527 printk(KERN_DEBUG "%s: eth_poll netif_rx_complete\n", 526 printk(KERN_DEBUG "%s: eth_poll netif_rx_complete\n",
528 dev->name); 527 dev->name);
@@ -543,7 +542,7 @@ static int eth_poll(struct napi_struct *napi, int budget)
543 printk(KERN_DEBUG "%s: eth_poll all done\n", 542 printk(KERN_DEBUG "%s: eth_poll all done\n",
544 dev->name); 543 dev->name);
545#endif 544#endif
546 return 0; /* all work done */ 545 return received; /* all work done */
547 } 546 }
548 547
549 desc = rx_desc_ptr(port, n); 548 desc = rx_desc_ptr(port, n);
diff --git a/drivers/net/tun.c b/drivers/net/tun.c
index aa4ee4439f04..2693f883ecda 100644
--- a/drivers/net/tun.c
+++ b/drivers/net/tun.c
@@ -690,6 +690,12 @@ static int tun_set_iff(struct net *net, struct file *file, struct ifreq *ifr)
690 tun->attached = 1; 690 tun->attached = 1;
691 get_net(dev_net(tun->dev)); 691 get_net(dev_net(tun->dev));
692 692
693 /* Make sure persistent devices do not get stuck in
694 * xoff state.
695 */
696 if (netif_running(tun->dev))
697 netif_wake_queue(tun->dev);
698
693 strcpy(ifr->ifr_name, tun->dev->name); 699 strcpy(ifr->ifr_name, tun->dev->name);
694 return 0; 700 return 0;
695 701
diff --git a/drivers/net/wireless/libertas/scan.c b/drivers/net/wireless/libertas/scan.c
index 343ed38f772d..4b274562f965 100644
--- a/drivers/net/wireless/libertas/scan.c
+++ b/drivers/net/wireless/libertas/scan.c
@@ -567,11 +567,11 @@ static int lbs_process_bss(struct bss_descriptor *bss,
567 pos += 8; 567 pos += 8;
568 568
569 /* beacon interval is 2 bytes long */ 569 /* beacon interval is 2 bytes long */
570 bss->beaconperiod = le16_to_cpup((void *) pos); 570 bss->beaconperiod = get_unaligned_le16(pos);
571 pos += 2; 571 pos += 2;
572 572
573 /* capability information is 2 bytes long */ 573 /* capability information is 2 bytes long */
574 bss->capability = le16_to_cpup((void *) pos); 574 bss->capability = get_unaligned_le16(pos);
575 lbs_deb_scan("process_bss: capabilities 0x%04x\n", bss->capability); 575 lbs_deb_scan("process_bss: capabilities 0x%04x\n", bss->capability);
576 pos += 2; 576 pos += 2;
577 577
diff --git a/drivers/net/wireless/rt2x00/rt2400pci.c b/drivers/net/wireless/rt2x00/rt2400pci.c
index ee953ca0c6a3..91cbd9e560bd 100644
--- a/drivers/net/wireless/rt2x00/rt2400pci.c
+++ b/drivers/net/wireless/rt2x00/rt2400pci.c
@@ -733,6 +733,17 @@ static int rt2400pci_init_registers(struct rt2x00_dev *rt2x00dev)
733 (rt2x00dev->rx->data_size / 128)); 733 (rt2x00dev->rx->data_size / 128));
734 rt2x00pci_register_write(rt2x00dev, CSR9, reg); 734 rt2x00pci_register_write(rt2x00dev, CSR9, reg);
735 735
736 rt2x00pci_register_read(rt2x00dev, CSR14, &reg);
737 rt2x00_set_field32(&reg, CSR14_TSF_COUNT, 0);
738 rt2x00_set_field32(&reg, CSR14_TSF_SYNC, 0);
739 rt2x00_set_field32(&reg, CSR14_TBCN, 0);
740 rt2x00_set_field32(&reg, CSR14_TCFP, 0);
741 rt2x00_set_field32(&reg, CSR14_TATIMW, 0);
742 rt2x00_set_field32(&reg, CSR14_BEACON_GEN, 0);
743 rt2x00_set_field32(&reg, CSR14_CFP_COUNT_PRELOAD, 0);
744 rt2x00_set_field32(&reg, CSR14_TBCM_PRELOAD, 0);
745 rt2x00pci_register_write(rt2x00dev, CSR14, reg);
746
736 rt2x00pci_register_write(rt2x00dev, CNT3, 0x3f080000); 747 rt2x00pci_register_write(rt2x00dev, CNT3, 0x3f080000);
737 748
738 rt2x00pci_register_read(rt2x00dev, ARCSR0, &reg); 749 rt2x00pci_register_read(rt2x00dev, ARCSR0, &reg);
diff --git a/drivers/net/wireless/rt2x00/rt2500pci.c b/drivers/net/wireless/rt2x00/rt2500pci.c
index 0423c251c78e..0f2a0e22fd71 100644
--- a/drivers/net/wireless/rt2x00/rt2500pci.c
+++ b/drivers/net/wireless/rt2x00/rt2500pci.c
@@ -831,6 +831,17 @@ static int rt2500pci_init_registers(struct rt2x00_dev *rt2x00dev)
831 rt2x00_set_field32(&reg, CSR11_CW_SELECT, 0); 831 rt2x00_set_field32(&reg, CSR11_CW_SELECT, 0);
832 rt2x00pci_register_write(rt2x00dev, CSR11, reg); 832 rt2x00pci_register_write(rt2x00dev, CSR11, reg);
833 833
834 rt2x00pci_register_read(rt2x00dev, CSR14, &reg);
835 rt2x00_set_field32(&reg, CSR14_TSF_COUNT, 0);
836 rt2x00_set_field32(&reg, CSR14_TSF_SYNC, 0);
837 rt2x00_set_field32(&reg, CSR14_TBCN, 0);
838 rt2x00_set_field32(&reg, CSR14_TCFP, 0);
839 rt2x00_set_field32(&reg, CSR14_TATIMW, 0);
840 rt2x00_set_field32(&reg, CSR14_BEACON_GEN, 0);
841 rt2x00_set_field32(&reg, CSR14_CFP_COUNT_PRELOAD, 0);
842 rt2x00_set_field32(&reg, CSR14_TBCM_PRELOAD, 0);
843 rt2x00pci_register_write(rt2x00dev, CSR14, reg);
844
834 rt2x00pci_register_write(rt2x00dev, CNT3, 0); 845 rt2x00pci_register_write(rt2x00dev, CNT3, 0);
835 846
836 rt2x00pci_register_read(rt2x00dev, TXCSR8, &reg); 847 rt2x00pci_register_read(rt2x00dev, TXCSR8, &reg);
diff --git a/drivers/net/wireless/rt2x00/rt2500usb.c b/drivers/net/wireless/rt2x00/rt2500usb.c
index 0dd1cb537b92..367db10b96d9 100644
--- a/drivers/net/wireless/rt2x00/rt2500usb.c
+++ b/drivers/net/wireless/rt2x00/rt2500usb.c
@@ -812,6 +812,13 @@ static int rt2500usb_init_registers(struct rt2x00_dev *rt2x00dev)
812 rt2x00_set_field16(&reg, TXRX_CSR8_BBP_ID1_VALID, 0); 812 rt2x00_set_field16(&reg, TXRX_CSR8_BBP_ID1_VALID, 0);
813 rt2500usb_register_write(rt2x00dev, TXRX_CSR8, reg); 813 rt2500usb_register_write(rt2x00dev, TXRX_CSR8, reg);
814 814
815 rt2500usb_register_read(rt2x00dev, TXRX_CSR19, &reg);
816 rt2x00_set_field16(&reg, TXRX_CSR19_TSF_COUNT, 0);
817 rt2x00_set_field16(&reg, TXRX_CSR19_TSF_SYNC, 0);
818 rt2x00_set_field16(&reg, TXRX_CSR19_TBCN, 0);
819 rt2x00_set_field16(&reg, TXRX_CSR19_BEACON_GEN, 0);
820 rt2500usb_register_write(rt2x00dev, TXRX_CSR19, reg);
821
815 rt2500usb_register_write(rt2x00dev, TXRX_CSR21, 0xe78f); 822 rt2500usb_register_write(rt2x00dev, TXRX_CSR21, 0xe78f);
816 rt2500usb_register_write(rt2x00dev, MAC_CSR9, 0xff1d); 823 rt2500usb_register_write(rt2x00dev, MAC_CSR9, 0xff1d);
817 824
diff --git a/drivers/net/wireless/rt2x00/rt61pci.c b/drivers/net/wireless/rt2x00/rt61pci.c
index bbf1048f6400..5a1330c5de71 100644
--- a/drivers/net/wireless/rt2x00/rt61pci.c
+++ b/drivers/net/wireless/rt2x00/rt61pci.c
@@ -1198,6 +1198,15 @@ static int rt61pci_init_registers(struct rt2x00_dev *rt2x00dev)
1198 rt2x00_set_field32(&reg, TXRX_CSR8_ACK_CTS_54MBS, 42); 1198 rt2x00_set_field32(&reg, TXRX_CSR8_ACK_CTS_54MBS, 42);
1199 rt2x00pci_register_write(rt2x00dev, TXRX_CSR8, reg); 1199 rt2x00pci_register_write(rt2x00dev, TXRX_CSR8, reg);
1200 1200
1201 rt2x00pci_register_read(rt2x00dev, TXRX_CSR9, &reg);
1202 rt2x00_set_field32(&reg, TXRX_CSR9_BEACON_INTERVAL, 0);
1203 rt2x00_set_field32(&reg, TXRX_CSR9_TSF_TICKING, 0);
1204 rt2x00_set_field32(&reg, TXRX_CSR9_TSF_SYNC, 0);
1205 rt2x00_set_field32(&reg, TXRX_CSR9_TBTT_ENABLE, 0);
1206 rt2x00_set_field32(&reg, TXRX_CSR9_BEACON_GEN, 0);
1207 rt2x00_set_field32(&reg, TXRX_CSR9_TIMESTAMP_COMPENSATE, 0);
1208 rt2x00pci_register_write(rt2x00dev, TXRX_CSR9, reg);
1209
1201 rt2x00pci_register_write(rt2x00dev, TXRX_CSR15, 0x0000000f); 1210 rt2x00pci_register_write(rt2x00dev, TXRX_CSR15, 0x0000000f);
1202 1211
1203 rt2x00pci_register_write(rt2x00dev, MAC_CSR6, 0x00000fff); 1212 rt2x00pci_register_write(rt2x00dev, MAC_CSR6, 0x00000fff);
diff --git a/drivers/net/wireless/rt2x00/rt73usb.c b/drivers/net/wireless/rt2x00/rt73usb.c
index 3ef318e098e7..25d8b660051f 100644
--- a/drivers/net/wireless/rt2x00/rt73usb.c
+++ b/drivers/net/wireless/rt2x00/rt73usb.c
@@ -1016,6 +1016,15 @@ static int rt73usb_init_registers(struct rt2x00_dev *rt2x00dev)
1016 rt2x00_set_field32(&reg, TXRX_CSR8_ACK_CTS_54MBS, 42); 1016 rt2x00_set_field32(&reg, TXRX_CSR8_ACK_CTS_54MBS, 42);
1017 rt73usb_register_write(rt2x00dev, TXRX_CSR8, reg); 1017 rt73usb_register_write(rt2x00dev, TXRX_CSR8, reg);
1018 1018
1019 rt73usb_register_read(rt2x00dev, TXRX_CSR9, &reg);
1020 rt2x00_set_field32(&reg, TXRX_CSR9_BEACON_INTERVAL, 0);
1021 rt2x00_set_field32(&reg, TXRX_CSR9_TSF_TICKING, 0);
1022 rt2x00_set_field32(&reg, TXRX_CSR9_TSF_SYNC, 0);
1023 rt2x00_set_field32(&reg, TXRX_CSR9_TBTT_ENABLE, 0);
1024 rt2x00_set_field32(&reg, TXRX_CSR9_BEACON_GEN, 0);
1025 rt2x00_set_field32(&reg, TXRX_CSR9_TIMESTAMP_COMPENSATE, 0);
1026 rt73usb_register_write(rt2x00dev, TXRX_CSR9, reg);
1027
1019 rt73usb_register_write(rt2x00dev, TXRX_CSR15, 0x0000000f); 1028 rt73usb_register_write(rt2x00dev, TXRX_CSR15, 0x0000000f);
1020 1029
1021 rt73usb_register_read(rt2x00dev, MAC_CSR6, &reg); 1030 rt73usb_register_read(rt2x00dev, MAC_CSR6, &reg);
diff --git a/drivers/net/wireless/zd1211rw/zd_mac.c b/drivers/net/wireless/zd1211rw/zd_mac.c
index 665f76af2fec..feaf43d17249 100644
--- a/drivers/net/wireless/zd1211rw/zd_mac.c
+++ b/drivers/net/wireless/zd1211rw/zd_mac.c
@@ -707,6 +707,7 @@ static void zd_op_remove_interface(struct ieee80211_hw *hw,
707{ 707{
708 struct zd_mac *mac = zd_hw_mac(hw); 708 struct zd_mac *mac = zd_hw_mac(hw);
709 mac->type = IEEE80211_IF_TYPE_INVALID; 709 mac->type = IEEE80211_IF_TYPE_INVALID;
710 zd_set_beacon_interval(&mac->chip, 0);
710 zd_write_mac_addr(&mac->chip, NULL); 711 zd_write_mac_addr(&mac->chip, NULL);
711} 712}
712 713