[phantom] Guard against partially-written status descriptors
authorMichael Brown <mcb30@etherboot.org>
Thu, 17 Jul 2008 14:45:40 +0000 (15:45 +0100)
committerMichael Brown <mcb30@etherboot.org>
Thu, 17 Jul 2008 14:45:40 +0000 (15:45 +0100)
commit4e033c774b3731488cc7750f2d4d89c12661a254
tree6bb41e3a7b7370c948314e7d0a2a4dd7b72a7968
parentbb41ec385ce4fa74bc3036a47fc5fa709ce05d9c
[phantom] Guard against partially-written status descriptors

Conjecture: The hardware issues 64-bit DMA writes of status descriptors,
which some PCI bridges seem to split into two 32-bit writes in reverse
order (i.e. dword 1 first).  This means that we sometimes observe a
partial status descriptor.  Add an explicit check to ensure that the
descriptor is complete before processing it.

Also ensure that the RDS consumer counter is incremented only when we
know that we have actually consumed an RX descriptor.
src/drivers/net/phantom/phantom.c