Re: Softnet/eepro100 driver conversion bug in 2.3.43pre8?

From: David S. Miller (davem@redhat.com)
Date: Sat Feb 12 2000 - 21:19:53 EST


   Date: Sat, 12 Feb 2000 17:31:20 -0800
   From: David Mosberger <davidm@hpl.hp.com>

   The following patch seems to fix the problem for me. I think the
   cmpxchg should be #ifdef'd on HAVE_CMPXCHG but in our experience,
   atomicity is important for updating cmd_status, so if you can't do
   this atomically, you're probably hosed anyhow (you'll get lots of
   Tx timeouts, at least).

I don't think it needs to be atomic at all.

The correct behavior can be obtained without the atomic accesses
if the ordering of operations is done correctly (with _maybe_ some
help from some mb() calls), and this problem is no different than the
one nearly every other ring-descriptor based ethernet driver has to
deal with, the race between the card seeing a tx descriptor updated
and the cpu completing the update.

I'd really prefer if this driver does not try to treat the problem in
this way, it's not unique, and it's more expensive to do the atomic
operation as well.

Later,
David S. Miller
davem@redhat.com

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



This archive was generated by hypermail 2b29 : Tue Feb 15 2000 - 21:00:24 EST