Re: [patch 00/23] -stable review

From: Auke Kok
Date: Fri Aug 04 2006 - 09:49:45 EST


Jesper Juhl wrote:
On 04/08/06, Andrew Morton <akpm@xxxxxxxx> wrote:
On Fri, 4 Aug 2006 11:04:36 +0200
"Jesper Juhl" <jesper.juhl@xxxxxxxxx> wrote:

> On 04/08/06, Greg KH <gregkh@xxxxxxx> wrote:
> > This is the start of the stable review cycle for the 2.6.17.8 release.
> > There are 23 patches in this series, all will be posted as a response to
> > this one. If anyone has any issues with these being applied, please let
> > us know. If anyone is a maintainer of the proper subsystem, and wants
> > to add a Signed-off-by: line to the patch, please respond with it.
> >
> > These patches are sent out with a number of different people on the Cc:
> > line. If you wish to be a reviewer, please email stable@xxxxxxxxxx to
> > add your name to the list. If you want to be off the reviewer list,
> > also email us.
> >
> > Responses should be made by Sunday, August 6, 05:00:00 UTC. Anything
> > received after that time might be too late.
> >
> > I've also posted a roll-up patch with all changes in it if people want
> > to test it out. It can be found at:
> >
> > kernel.org/pub/linux/kernel/v2.6/testing/patch-2.6.17.8-rc1.gz
> >
>
> Any chance that the fixes in the (latest) e1000 driver version
> 7.1.9-k4 will get backported?

The post-2.6.17 e1000 changes are massive.

I know, I tried backporting the new driver but gave up.


> I can't run 2.6.17.7 on at least one of my servers due to bugs in the
> driver that are fixed in the latest e1000 version.
> I looked through the -stable patches but didn't find anything that
> would fix my problem.
> I get messages along the lines of "kernel: Virtual device XXX asks to
> queue packet!" and the device then refuses to work.
> The last kernel where I know for a fact that it worked OK is 2.6.11,
> so that's what the server is currently running.
>
> Getting the fix for that problem backported to -stable would really make my day.


Perhaps the e1000 developers can help us to identify the particular fix for
this problem.

That's what I was hoping for...

I suspect that this will have fixed it, but this is a followup to a patch that disables HW CRC stripping. perhaps commit eb0f805... might be involved as well, allthough I doubt that.

---
diff-tree f235a2abb27b9396d2108dd2987fb8262cb508a3 (from d3d9e484b2ca502c87156b6
Author: Auke Kok <auke\-jan.h.kok@xxxxxxxxx>
Date: Fri Jul 14 16:14:34 2006 -0700

e1000: remove CRC bytes from measured packet length

After removing the hardware CRC stripping which causes problems with
SOL and related issues, we need to compensate for this changed size.

Signed-off-by: Jesse Brandeburg <jesse.brandeburg@xxxxxxxxx>
Signed-off-by: Auke Kok <auke-jan.h.kok@xxxxxxxxx>

diff --git a/drivers/net/e1000/e1000_main.c b/drivers/net/e1000/e1000_main.c
index 1c6bcad..0074a3a 100644
--- a/drivers/net/e1000/e1000_main.c
+++ b/drivers/net/e1000/e1000_main.c
@@ -3673,6 +3673,9 @@ #endif

length = le16_to_cpu(rx_desc->length);

+ /* adjust length to remove Ethernet CRC */
+ length -= 4;
+
if (unlikely(!(status & E1000_RXD_STAT_EOP))) {
/* All receives must fit into a single buffer */
E1000_DBG("%s: Receive packet consumed multiple"
@@ -3877,8 +3880,9 @@ #endif
pci_dma_sync_single_for_device(pdev,
ps_page_dma->ps_page_dma[0],
PAGE_SIZE, PCI_DMA_FROMDEVICE);
+ /* remove the CRC */
+ l1 -= 4;
skb_put(skb, l1);
- length += l1;
goto copydone;
} /* if */
}
@@ -3896,6 +3900,10 @@ #endif
skb->data_len += length;
skb->truesize += length;
}
+
+ /* strip the ethernet crc, problem is we're using pages now so
+ * this whole operation can get a little cpu intensive */
+ pskb_trim(skb, skb->len - 4);

copydone:
e1000_rx_checksum(adapter, staterr,
---

hth,

Auke

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/