[TG3]: Fix missing memory barriers and SD_STATUS_UPDATED bit clearing.
authorDavid S. Miller <davem@davemloft.net>
Sat, 25 Jun 2005 03:17:10 +0000 (20:17 -0700)
committerDavid S. Miller <davem@davemloft.net>
Sat, 25 Jun 2005 03:17:10 +0000 (20:17 -0700)
commitcd024c8baf9756759c57f0a19be639da8d3d4f8c
treedbbb56422f949a85291383600472d869a8d08765
parentc54d7e03c3a21b38c587f671704c5a12aa3987fc
[TG3]: Fix missing memory barriers and SD_STATUS_UPDATED bit clearing.

There must be a rmb() between reading the status block tag
and calling tg3_has_work().  This was missing in tg3_mis()
and tg3_interrupt_tagged().  tg3_poll() got it right.

Also, SD_STATUS_UPDATED must be cleared in the status block
right before we call tg3_has_work().  Only tg3_poll() got this
wrong.

Based upon patches and commentary from Grant Grundler and
Michael Chan.

Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/tg3.c