diff options
author | Guo-Fu Tseng <cooldavid@cooldavid.org> | 2010-10-18 14:10:42 +0000 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2010-10-21 03:52:10 -0700 |
commit | ea192aa89c3b26d56113e70c72238f6951d4097f (patch) | |
tree | ad9da86028bcbfcea07be56be4a3ab2df4470b01 | |
parent | 3ee94018a9f49ca98e3f77f54a769c784115dbb8 (diff) | |
download | linux-ea192aa89c3b26d56113e70c72238f6951d4097f.tar.gz linux-ea192aa89c3b26d56113e70c72238f6951d4097f.tar.bz2 linux-ea192aa89c3b26d56113e70c72238f6951d4097f.zip |
jme: Prevent possible read re-order error
Adding read memory barrier in between flag reading and data reading of
receive descriptors. This prevents the data being read before hardware
complete writing informations.
Reported-by: Stefan Hajnoczi <stefanha@gmail.com>
Signed-off-by: Guo-Fu Tseng <cooldavid@cooldavid.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r-- | drivers/net/jme.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/net/jme.c b/drivers/net/jme.c index 0ea0da32d7d8..095f8998714f 100644 --- a/drivers/net/jme.c +++ b/drivers/net/jme.c @@ -989,6 +989,7 @@ jme_process_receive(struct jme_adapter *jme, int limit) goto out; --limit; + rmb(); desccnt = rxdesc->descwb.desccnt & RXWBDCNT_DCNT; if (unlikely(desccnt > 1 || |