Jeff Garzik wrote: > > Somebody wanna review and/or test? > Hey Jeff. I have tested this on 2.4 and it works great on MIPS with one minor change below. Remove the 16 byte alignment of the IP header. I discovered this when trying to do a BOOTP and mount my NFS root filesystem. The BOOTP never succeeds. Patch against latest 2.4.25 attached. -Steve @@ -1467,13 +1469,16 @@ struct sk_buff *skb; int entry = np->dirty_rx % RX_RING_SIZE; if (np->rx_skbuff[entry] == NULL) { - skb = dev_alloc_skb(np->rx_buf_sz); + unsigned int buflen = np->rx_buf_sz + RX_OFFSET; + skb = dev_alloc_skb(buflen); np->rx_skbuff[entry] = skb; if (skb == NULL) break; /* Better luck next round. */ skb->dev = dev; /* Mark as being used by this device. */ + /* 16 byte align the IP header */ + skb_reserve(skb, RX_OFFSET); np->rx_dma[entry] = pci_map_single(np->pci_dev, - skb->data, skb->len, PCI_DMA_FROMDEVICE); + skb->tail, buflen, PCI_DMA_FROMDEVICE); np->rx_ring[entry].addr = cpu_to_le32(np->rx_dma[entry]); }