All of lore.kernel.org
 help / color / mirror / Atom feed
* [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

* [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

* 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

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.