[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <1353527481.26346.150.camel@shinybook.infradead.org>
Date: Wed, 21 Nov 2012 19:51:21 +0000
From: David Woodhouse <dwmw2@...radead.org>
To: Jeff Garzik <jgarzik@...ox.com>
Cc: Jason Wang <jasowang@...hat.com>,
"David S. Miller" <davem@...emloft.net>, netdev@...r.kernel.org
Subject: Re: 8139cp: set ring address before enabling receiver
On Wed, 2012-11-21 at 13:12 -0500, Jeff Garzik wrote:
>
> What sticks out at me from the commit message?
>
> It was not tested on the famously quirky 8139 hardware at all.
>
> While I have not looked at the 8139C+ data sheet in a while, sometimes
> the hardware _did_ have a strange init order.
>
> As this works in a simulator but fails on real hardware, it seems like
> an obvious regression caused by an untested [on read hardware] patch.
The data sheet (v1.6, from http://realtek.info/pdf/rtl8139cp.pdf ) says
in ยง6.33 (C+ Command Register):
"Enable C+ mode functions in C+CR register first,
=> Enable transmit/receive in Command register (offset 37h),
=> Configure other related registers (ex. Descriptor start address,
TCR, RCR, ...)."
I understand the concern expressed in the offending commit message about
DMA happening to invalid addresses, and I'll look at the data sheet
harder to see when the DMA actually starts happening. But it definitely
seems that our current code isn't doing what the data sheet says.
I wonder if I can find one of these lying around and stick it in a
machine with an IOMMU...
--
dwmw2
Download attachment "smime.p7s" of type "application/x-pkcs7-signature" (6171 bytes)
Powered by blists - more mailing lists