aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/arm
diff options
context:
space:
mode:
authorPatrick McHardy <kaber@trash.net>2010-04-20 10:02:01 -0400
committerPatrick McHardy <kaber@trash.net>2010-04-20 10:02:01 -0400
commit62910554656cdcd6b6f84a5154c4155aae4ca231 (patch)
treedcf14004f6fd2ef7154362ff948bfeba0f3ea92d /drivers/net/arm
parent22265a5c3c103cf8c50be62e6c90d045eb649e6d (diff)
parentab9304717f7624c41927f442e6b6d418b2d8b3e4 (diff)
Merge branch 'master' of /repos/git/net-next-2.6
Conflicts: Documentation/feature-removal-schedule.txt net/ipv6/netfilter/ip6t_REJECT.c net/netfilter/xt_limit.c Signed-off-by: Patrick McHardy <kaber@trash.net>
Diffstat (limited to 'drivers/net/arm')
-rw-r--r--drivers/net/arm/am79c961a.c6
-rw-r--r--drivers/net/arm/at91_ether.c7
-rw-r--r--drivers/net/arm/ep93xx_eth.c1
-rw-r--r--drivers/net/arm/etherh.c1
-rw-r--r--drivers/net/arm/ixp4xx_eth.c9
-rw-r--r--drivers/net/arm/ks8695net.c35
-rw-r--r--drivers/net/arm/w90p910_ether.c2
7 files changed, 29 insertions, 32 deletions
diff --git a/drivers/net/arm/am79c961a.c b/drivers/net/arm/am79c961a.c
index f1f58c5e27bf..a4b5b08276f8 100644
--- a/drivers/net/arm/am79c961a.c
+++ b/drivers/net/arm/am79c961a.c
@@ -383,12 +383,12 @@ static void am79c961_setmulticastlist (struct net_device *dev)
383 } else if (dev->flags & IFF_ALLMULTI) { 383 } else if (dev->flags & IFF_ALLMULTI) {
384 memset(multi_hash, 0xff, sizeof(multi_hash)); 384 memset(multi_hash, 0xff, sizeof(multi_hash));
385 } else { 385 } else {
386 struct dev_mc_list *dmi; 386 struct netdev_hw_addr *ha;
387 387
388 memset(multi_hash, 0x00, sizeof(multi_hash)); 388 memset(multi_hash, 0x00, sizeof(multi_hash));
389 389
390 netdev_for_each_mc_addr(dmi, dev) 390 netdev_for_each_mc_addr(ha, dev)
391 am79c961_mc_hash(dmi->dmi_addr, multi_hash); 391 am79c961_mc_hash(ha->addr, multi_hash);
392 } 392 }
393 393
394 spin_lock_irqsave(&priv->chip_lock, flags); 394 spin_lock_irqsave(&priv->chip_lock, flags);
diff --git a/drivers/net/arm/at91_ether.c b/drivers/net/arm/at91_ether.c
index 8b23d5a175bf..0adab30f626b 100644
--- a/drivers/net/arm/at91_ether.c
+++ b/drivers/net/arm/at91_ether.c
@@ -27,6 +27,7 @@
27#include <linux/ethtool.h> 27#include <linux/ethtool.h>
28#include <linux/platform_device.h> 28#include <linux/platform_device.h>
29#include <linux/clk.h> 29#include <linux/clk.h>
30#include <linux/gfp.h>
30 31
31#include <asm/io.h> 32#include <asm/io.h>
32#include <asm/uaccess.h> 33#include <asm/uaccess.h>
@@ -556,14 +557,14 @@ static int hash_get_index(__u8 *addr)
556 */ 557 */
557static void at91ether_sethashtable(struct net_device *dev) 558static void at91ether_sethashtable(struct net_device *dev)
558{ 559{
559 struct dev_mc_list *curr; 560 struct netdev_hw_addr *ha;
560 unsigned long mc_filter[2]; 561 unsigned long mc_filter[2];
561 unsigned int bitnr; 562 unsigned int bitnr;
562 563
563 mc_filter[0] = mc_filter[1] = 0; 564 mc_filter[0] = mc_filter[1] = 0;
564 565
565 netdev_for_each_mc_addr(curr, dev) { 566 netdev_for_each_mc_addr(ha, dev) {
566 bitnr = hash_get_index(curr->dmi_addr); 567 bitnr = hash_get_index(ha->addr);
567 mc_filter[bitnr >> 5] |= 1 << (bitnr & 31); 568 mc_filter[bitnr >> 5] |= 1 << (bitnr & 31);
568 } 569 }
569 570
diff --git a/drivers/net/arm/ep93xx_eth.c b/drivers/net/arm/ep93xx_eth.c
index bf72d57a0afd..6995169d285a 100644
--- a/drivers/net/arm/ep93xx_eth.c
+++ b/drivers/net/arm/ep93xx_eth.c
@@ -23,6 +23,7 @@
23#include <linux/platform_device.h> 23#include <linux/platform_device.h>
24#include <linux/delay.h> 24#include <linux/delay.h>
25#include <linux/io.h> 25#include <linux/io.h>
26#include <linux/slab.h>
26 27
27#include <mach/hardware.h> 28#include <mach/hardware.h>
28 29
diff --git a/drivers/net/arm/etherh.c b/drivers/net/arm/etherh.c
index f52f668c49bf..4af235d41fda 100644
--- a/drivers/net/arm/etherh.c
+++ b/drivers/net/arm/etherh.c
@@ -33,7 +33,6 @@
33#include <linux/interrupt.h> 33#include <linux/interrupt.h>
34#include <linux/ioport.h> 34#include <linux/ioport.h>
35#include <linux/in.h> 35#include <linux/in.h>
36#include <linux/slab.h>
37#include <linux/string.h> 36#include <linux/string.h>
38#include <linux/errno.h> 37#include <linux/errno.h>
39#include <linux/netdevice.h> 38#include <linux/netdevice.h>
diff --git a/drivers/net/arm/ixp4xx_eth.c b/drivers/net/arm/ixp4xx_eth.c
index 6e2ae1d06df1..7800d7dfd299 100644
--- a/drivers/net/arm/ixp4xx_eth.c
+++ b/drivers/net/arm/ixp4xx_eth.c
@@ -32,6 +32,7 @@
32#include <linux/kernel.h> 32#include <linux/kernel.h>
33#include <linux/phy.h> 33#include <linux/phy.h>
34#include <linux/platform_device.h> 34#include <linux/platform_device.h>
35#include <linux/slab.h>
35#include <mach/npe.h> 36#include <mach/npe.h>
36#include <mach/qmgr.h> 37#include <mach/qmgr.h>
37 38
@@ -735,7 +736,7 @@ static int eth_xmit(struct sk_buff *skb, struct net_device *dev)
735static void eth_set_mcast_list(struct net_device *dev) 736static void eth_set_mcast_list(struct net_device *dev)
736{ 737{
737 struct port *port = netdev_priv(dev); 738 struct port *port = netdev_priv(dev);
738 struct dev_mc_list *mclist; 739 struct netdev_hw_addr *ha;
739 u8 diffs[ETH_ALEN], *addr; 740 u8 diffs[ETH_ALEN], *addr;
740 int i; 741 int i;
741 742
@@ -748,11 +749,11 @@ static void eth_set_mcast_list(struct net_device *dev)
748 memset(diffs, 0, ETH_ALEN); 749 memset(diffs, 0, ETH_ALEN);
749 750
750 addr = NULL; 751 addr = NULL;
751 netdev_for_each_mc_addr(mclist, dev) { 752 netdev_for_each_mc_addr(ha, dev) {
752 if (!addr) 753 if (!addr)
753 addr = mclist->dmi_addr; /* first MAC address */ 754 addr = ha->addr; /* first MAC address */
754 for (i = 0; i < ETH_ALEN; i++) 755 for (i = 0; i < ETH_ALEN; i++)
755 diffs[i] |= addr[i] ^ mclist->dmi_addr[i]; 756 diffs[i] |= addr[i] ^ ha->addr[i];
756 } 757 }
757 758
758 for (i = 0; i < ETH_ALEN; i++) { 759 for (i = 0; i < ETH_ALEN; i++) {
diff --git a/drivers/net/arm/ks8695net.c b/drivers/net/arm/ks8695net.c
index a1d4188c430b..7413a87e40ff 100644
--- a/drivers/net/arm/ks8695net.c
+++ b/drivers/net/arm/ks8695net.c
@@ -30,6 +30,7 @@
30#include <linux/platform_device.h> 30#include <linux/platform_device.h>
31#include <linux/irq.h> 31#include <linux/irq.h>
32#include <linux/io.h> 32#include <linux/io.h>
33#include <linux/slab.h>
33 34
34#include <asm/irq.h> 35#include <asm/irq.h>
35 36
@@ -331,16 +332,16 @@ ks8695_init_partial_multicast(struct ks8695_priv *ksp,
331{ 332{
332 u32 low, high; 333 u32 low, high;
333 int i; 334 int i;
334 struct dev_mc_list *dmi; 335 struct netdev_hw_addr *ha;
335 336
336 i = 0; 337 i = 0;
337 netdev_for_each_mc_addr(dmi, ndev) { 338 netdev_for_each_mc_addr(ha, ndev) {
338 /* Ran out of space in chip? */ 339 /* Ran out of space in chip? */
339 BUG_ON(i == KS8695_NR_ADDRESSES); 340 BUG_ON(i == KS8695_NR_ADDRESSES);
340 341
341 low = (dmi->dmi_addr[2] << 24) | (dmi->dmi_addr[3] << 16) | 342 low = (ha->addr[2] << 24) | (ha->addr[3] << 16) |
342 (dmi->dmi_addr[4] << 8) | (dmi->dmi_addr[5]); 343 (ha->addr[4] << 8) | (ha->addr[5]);
343 high = (dmi->dmi_addr[0] << 8) | (dmi->dmi_addr[1]); 344 high = (ha->addr[0] << 8) | (ha->addr[1]);
344 345
345 ks8695_writereg(ksp, KS8695_AAL_(i), low); 346 ks8695_writereg(ksp, KS8695_AAL_(i), low);
346 ks8695_writereg(ksp, KS8695_AAH_(i), AAH_E | high); 347 ks8695_writereg(ksp, KS8695_AAH_(i), AAH_E | high);
@@ -449,11 +450,10 @@ ks8695_rx_irq(int irq, void *dev_id)
449} 450}
450 451
451/** 452/**
452 * ks8695_rx - Receive packets called by NAPI poll method 453 * ks8695_rx - Receive packets called by NAPI poll method
453 * @ksp: Private data for the KS8695 Ethernet 454 * @ksp: Private data for the KS8695 Ethernet
454 * @budget: The max packets would be receive 455 * @budget: Number of packets allowed to process
455 */ 456 */
456
457static int ks8695_rx(struct ks8695_priv *ksp, int budget) 457static int ks8695_rx(struct ks8695_priv *ksp, int budget)
458{ 458{
459 struct net_device *ndev = ksp->ndev; 459 struct net_device *ndev = ksp->ndev;
@@ -461,7 +461,6 @@ static int ks8695_rx(struct ks8695_priv *ksp, int budget)
461 int buff_n; 461 int buff_n;
462 u32 flags; 462 u32 flags;
463 int pktlen; 463 int pktlen;
464 int last_rx_processed = -1;
465 int received = 0; 464 int received = 0;
466 465
467 buff_n = ksp->next_rx_desc_read; 466 buff_n = ksp->next_rx_desc_read;
@@ -471,6 +470,7 @@ static int ks8695_rx(struct ks8695_priv *ksp, int budget)
471 cpu_to_le32(RDES_OWN)))) { 470 cpu_to_le32(RDES_OWN)))) {
472 rmb(); 471 rmb();
473 flags = le32_to_cpu(ksp->rx_ring[buff_n].status); 472 flags = le32_to_cpu(ksp->rx_ring[buff_n].status);
473
474 /* Found an SKB which we own, this means we 474 /* Found an SKB which we own, this means we
475 * received a packet 475 * received a packet
476 */ 476 */
@@ -533,23 +533,18 @@ rx_failure:
533 ksp->rx_ring[buff_n].status = cpu_to_le32(RDES_OWN); 533 ksp->rx_ring[buff_n].status = cpu_to_le32(RDES_OWN);
534rx_finished: 534rx_finished:
535 received++; 535 received++;
536 /* And note this as processed so we can start
537 * from here next time
538 */
539 last_rx_processed = buff_n;
540 buff_n = (buff_n + 1) & MAX_RX_DESC_MASK; 536 buff_n = (buff_n + 1) & MAX_RX_DESC_MASK;
541 /*And note which RX descriptor we last did */
542 if (likely(last_rx_processed != -1))
543 ksp->next_rx_desc_read =
544 (last_rx_processed + 1) &
545 MAX_RX_DESC_MASK;
546 } 537 }
538
539 /* And note which RX descriptor we last did */
540 ksp->next_rx_desc_read = buff_n;
541
547 /* And refill the buffers */ 542 /* And refill the buffers */
548 ks8695_refill_rxbuffers(ksp); 543 ks8695_refill_rxbuffers(ksp);
549 544
550 /* Kick the RX DMA engine, in case it became 545 /* Kick the RX DMA engine, in case it became suspended */
551 * suspended */
552 ks8695_writereg(ksp, KS8695_DRSC, 0); 546 ks8695_writereg(ksp, KS8695_DRSC, 0);
547
553 return received; 548 return received;
554} 549}
555 550
diff --git a/drivers/net/arm/w90p910_ether.c b/drivers/net/arm/w90p910_ether.c
index febd813c916d..2491934b73e8 100644
--- a/drivers/net/arm/w90p910_ether.c
+++ b/drivers/net/arm/w90p910_ether.c
@@ -18,6 +18,7 @@
18#include <linux/ethtool.h> 18#include <linux/ethtool.h>
19#include <linux/platform_device.h> 19#include <linux/platform_device.h>
20#include <linux/clk.h> 20#include <linux/clk.h>
21#include <linux/gfp.h>
21 22
22#define DRV_MODULE_NAME "w90p910-emc" 23#define DRV_MODULE_NAME "w90p910-emc"
23#define DRV_MODULE_VERSION "0.1" 24#define DRV_MODULE_VERSION "0.1"
@@ -743,7 +744,6 @@ static void netdev_rx(struct net_device *dev)
743 return; 744 return;
744 } 745 }
745 746
746 skb->dev = dev;
747 skb_reserve(skb, 2); 747 skb_reserve(skb, 2);
748 skb_put(skb, length); 748 skb_put(skb, length);
749 skb_copy_to_linear_data(skb, data, length); 749 skb_copy_to_linear_data(skb, data, length);