atheros: ignore reports about oversized ethernet frames, as can be caused by the header mode of marvell 88e6060 switches (see https://dev.openwrt.org/ticket/3507#comment:16)

SVN-Revision: 15185
master
Felix Fietkau 16 years ago
parent 2f9590a84c
commit f607e2cc76
  1. 5
      target/linux/atheros/patches-2.6.28/110-ar2313_ethernet.patch
  2. 4
      target/linux/atheros/patches-2.6.28/200-ar2313_enable_mvswitch.patch

@ -25,7 +25,7 @@
obj-$(CONFIG_DECLANCE) += declance.o obj-$(CONFIG_DECLANCE) += declance.o
--- /dev/null --- /dev/null
+++ b/drivers/net/ar231x.c +++ b/drivers/net/ar231x.c
@@ -0,0 +1,1265 @@ @@ -0,0 +1,1264 @@
+/* +/*
+ * ar231x.c: Linux driver for the Atheros AR231x Ethernet device. + * ar231x.c: Linux driver for the Atheros AR231x Ethernet device.
+ * + *
@ -833,8 +833,7 @@
+ break; + break;
+ } + }
+ +
+ if ((status & (DMA_RX_ERROR | DMA_RX_ERR_LENGTH)) && + if (status & DMA_RX_ERROR) {
+ (!(status & DMA_RX_LONG))) {
+ dev->stats.rx_errors++; + dev->stats.rx_errors++;
+ dev->stats.rx_dropped++; + dev->stats.rx_dropped++;
+ +

@ -19,7 +19,7 @@
sp->rx_skb[idx] = skb; sp->rx_skb[idx] = skb;
rd = (ar231x_descr_t *) & sp->rx_ring[idx]; rd = (ar231x_descr_t *) & sp->rx_ring[idx];
@@ -826,20 +829,23 @@ static int ar231x_rx_int(struct net_devi @@ -825,20 +828,23 @@ static int ar231x_rx_int(struct net_devi
/* alloc new buffer. */ /* alloc new buffer. */
skb_new = netdev_alloc_skb(dev, AR2313_BUFSIZE + RX_OFFSET); skb_new = netdev_alloc_skb(dev, AR2313_BUFSIZE + RX_OFFSET);
if (skb_new != NULL) { if (skb_new != NULL) {
@ -48,7 +48,7 @@
/* reset descriptor's curr_addr */ /* reset descriptor's curr_addr */
rxdesc->addr = virt_to_phys(skb_new->data); rxdesc->addr = virt_to_phys(skb_new->data);
@@ -1241,6 +1247,8 @@ static int ar231x_mdiobus_probe (struct @@ -1240,6 +1246,8 @@ static int ar231x_mdiobus_probe (struct
return PTR_ERR(phydev); return PTR_ERR(phydev);
} }

Loading…
Cancel
Save