]> git.karo-electronics.de Git - karo-tx-linux.git/commit
IB/mthca: Use mmiowb after doorbell ring
authorArthur Kepner <akepner@sgi.com>
Sun, 11 Mar 2007 06:35:15 +0000 (07:35 +0100)
committerAdrian Bunk <bunk@stusta.de>
Sun, 11 Mar 2007 06:35:15 +0000 (07:35 +0100)
commit11bb9d392c1d5b63e2b9a0c8cc8a64cf49808757
tree65d9b830cb27c996b23b670a6c79b171f293bd98
parentec333318b748e4f4ac3679a197620503b6d19d20
IB/mthca: Use mmiowb after doorbell ring

We discovered a problem when running IPoIB applications on multiple
CPUs on an Altix system. Many messages such as:

ib_mthca 0002:01:00.0: SQ 000014 full (19941644 head, 19941707 tail, 64 max, 0 nreq)

appear in syslog, and the driver wedges up.

Apparently this is because writes to the doorbells from different CPUs
reach the device out of order. The following patch adds mmiowb() calls
after doorbell rings to ensure the doorbell writes are ordered.

Signed-off-by: Arthur Kepner <akepner@sgi.com>
Signed-off-by: Roland Dreier <rolandd@cisco.com>
Signed-off-by: Adrian Bunk <bunk@stusta.de>
drivers/infiniband/hw/mthca/mthca_cq.c
drivers/infiniband/hw/mthca/mthca_qp.c
drivers/infiniband/hw/mthca/mthca_srq.c