* [PATCH 0/2] pasemi_mac: two bugfixes for 2.6.24 @ 2007-11-07 4:20 Olof Johansson 2007-11-07 4:20 ` [PATCH 1/2] pasemi_mac: Don't set replace-source-address descriptor bits Olof Johansson 2007-11-07 4:21 ` [PATCH 2/2] pasemi_mac: Fix CRC checks Olof Johansson 0 siblings, 2 replies; 5+ messages in thread From: Olof Johansson @ 2007-11-07 4:20 UTC (permalink / raw) To: jgarzik; +Cc: netdev, linuxppc-dev Hi Jeff, Two bugfixes for pasemi_mac for 2.6.24: [PATCH 1/2] pasemi_mac: Don't set replace-source-address descriptor bits [PATCH 2/2] pasemi_mac: Fix CRC checks Thanks, -Olof ^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH 1/2] pasemi_mac: Don't set replace-source-address descriptor bits 2007-11-07 4:20 [PATCH 0/2] pasemi_mac: two bugfixes for 2.6.24 Olof Johansson @ 2007-11-07 4:20 ` Olof Johansson 2007-11-08 17:47 ` Jeff Garzik 2007-11-07 4:21 ` [PATCH 2/2] pasemi_mac: Fix CRC checks Olof Johansson 1 sibling, 1 reply; 5+ messages in thread From: Olof Johansson @ 2007-11-07 4:20 UTC (permalink / raw) To: jgarzik; +Cc: netdev, linuxppc-dev Don't use the "replace source address with local MAC address" bits, since it causes problems on some variations of the hardware due to an erratum. Signed-off-by: Olof Johansson <olof@lixom.net> Index: k.org/drivers/net/pasemi_mac.c =================================================================== --- k.org.orig/drivers/net/pasemi_mac.c +++ k.org/drivers/net/pasemi_mac.c @@ -1126,7 +1126,7 @@ static int pasemi_mac_start_tx(struct sk unsigned long flags; int i, nfrags; - dflags = XCT_MACTX_O | XCT_MACTX_ST | XCT_MACTX_SS | XCT_MACTX_CRC_PAD; + dflags = XCT_MACTX_O | XCT_MACTX_ST | XCT_MACTX_CRC_PAD; if (skb->ip_summed == CHECKSUM_PARTIAL) { const unsigned char *nh = skb_network_header(skb); ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH 1/2] pasemi_mac: Don't set replace-source-address descriptor bits 2007-11-07 4:20 ` [PATCH 1/2] pasemi_mac: Don't set replace-source-address descriptor bits Olof Johansson @ 2007-11-08 17:47 ` Jeff Garzik 0 siblings, 0 replies; 5+ messages in thread From: Jeff Garzik @ 2007-11-08 17:47 UTC (permalink / raw) To: Olof Johansson; +Cc: netdev, jgarzik, linuxppc-dev On Tue, Nov 06, 2007 at 10:20:39PM -0600, Olof Johansson wrote: > Don't use the "replace source address with local MAC address" bits, since > it causes problems on some variations of the hardware due to an erratum. > > > Signed-off-by: Olof Johansson <olof@lixom.net> applied 1-2 ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH 1/2] pasemi_mac: Don't set replace-source-address descriptor bits @ 2007-11-08 17:47 ` Jeff Garzik 0 siblings, 0 replies; 5+ messages in thread From: Jeff Garzik @ 2007-11-08 17:47 UTC (permalink / raw) To: Olof Johansson; +Cc: jgarzik, netdev, linuxppc-dev On Tue, Nov 06, 2007 at 10:20:39PM -0600, Olof Johansson wrote: > Don't use the "replace source address with local MAC address" bits, since > it causes problems on some variations of the hardware due to an erratum. > > > Signed-off-by: Olof Johansson <olof@lixom.net> applied 1-2 ^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH 2/2] pasemi_mac: Fix CRC checks 2007-11-07 4:20 [PATCH 0/2] pasemi_mac: two bugfixes for 2.6.24 Olof Johansson 2007-11-07 4:20 ` [PATCH 1/2] pasemi_mac: Don't set replace-source-address descriptor bits Olof Johansson @ 2007-11-07 4:21 ` Olof Johansson 1 sibling, 0 replies; 5+ messages in thread From: Olof Johansson @ 2007-11-07 4:21 UTC (permalink / raw) To: jgarzik; +Cc: netdev, linuxppc-dev Make sure we don't feed packets with bad CRC up the network stack, and discount the packet length as reported from the MAC for the CRC field. Signed-off-by: Olof Johansson <olof@lixom.net> Index: k.org/drivers/net/pasemi_mac.c =================================================================== --- k.org.orig/drivers/net/pasemi_mac.c +++ k.org/drivers/net/pasemi_mac.c @@ -580,6 +580,16 @@ static int pasemi_mac_clean_rx(struct pa len = (macrx & XCT_MACRX_LLEN_M) >> XCT_MACRX_LLEN_S; + pci_unmap_single(mac->dma_pdev, dma, len, PCI_DMA_FROMDEVICE); + + if (macrx & XCT_MACRX_CRC) { + /* CRC error flagged */ + mac->netdev->stats.rx_errors++; + mac->netdev->stats.rx_crc_errors++; + dev_kfree_skb_irq(skb); + goto next; + } + if (len < 256) { struct sk_buff *new_skb; @@ -595,11 +605,10 @@ static int pasemi_mac_clean_rx(struct pa } else info->skb = NULL; - pci_unmap_single(mac->dma_pdev, dma, len, PCI_DMA_FROMDEVICE); - info->dma = 0; - skb_put(skb, len); + /* Don't include CRC */ + skb_put(skb, len-4); if (likely((macrx & XCT_MACRX_HTY_M) == XCT_MACRX_HTY_IPV4_OK)) { skb->ip_summed = CHECKSUM_UNNECESSARY; @@ -614,6 +623,7 @@ static int pasemi_mac_clean_rx(struct pa skb->protocol = eth_type_trans(skb, mac->netdev); netif_receive_skb(skb); +next: RX_RING(mac, n) = 0; RX_RING(mac, n+1) = 0; ^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2007-11-08 17:53 UTC | newest] Thread overview: 5+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2007-11-07 4:20 [PATCH 0/2] pasemi_mac: two bugfixes for 2.6.24 Olof Johansson 2007-11-07 4:20 ` [PATCH 1/2] pasemi_mac: Don't set replace-source-address descriptor bits Olof Johansson 2007-11-08 17:47 ` Jeff Garzik 2007-11-08 17:47 ` Jeff Garzik 2007-11-07 4:21 ` [PATCH 2/2] pasemi_mac: Fix CRC checks Olof Johansson
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.