Messages in this thread | | | Date | Fri, 25 Apr 2008 19:57:43 -0500 | From | Jay Cliburn <> | Subject | Re: atl1 64-bit => 32-bit DMA borkage (reproducible, bisected) |
| |
On Mon, 21 Apr 2008 21:08:21 -0500 Jay Cliburn <jacliburn@bellsouth.net> wrote:
> > Alexey, can you please try this (very minimally tested) patch?
Alexey, have you found time to try this patch yet?
Thanks.
> > diff --git a/drivers/net/atlx/atl1.c b/drivers/net/atlx/atl1.c > index 5586fc6..07fe5c0 100644 > --- a/drivers/net/atlx/atl1.c > +++ b/drivers/net/atlx/atl1.c > @@ -1115,9 +1115,6 @@ static void atl1_free_ring_resources(struct > atl1_adapter *adapter) struct atl1_rrd_ring *rrd_ring = > &adapter->rrd_ring; struct atl1_ring_header *ring_header = > &adapter->ring_header; > - atl1_clean_tx_ring(adapter); > - atl1_clean_rx_ring(adapter); > - > kfree(tpd_ring->buffer_info); > pci_free_consistent(pdev, ring_header->size, > ring_header->desc, ring_header->dma); > @@ -3423,6 +3420,8 @@ static int atl1_set_ringparam(struct net_device > *netdev, adapter->rrd_ring = rrd_old; > adapter->tpd_ring = tpd_old; > adapter->ring_header = rhdr_old; > + atl1_clean_tx_ring(adapter); > + atl1_clean_rx_ring(adapter); > atl1_free_ring_resources(adapter); > adapter->rfd_ring = rfd_new; > adapter->rrd_ring = rrd_new;
| |