]> www.infradead.org Git - users/jedix/linux-maple.git/commit
RDS/IB: track signaled sends
authorZach Brown <zach.brown@oracle.com>
Wed, 14 Jul 2010 02:23:32 +0000 (19:23 -0700)
committerMukesh Kacker <mukesh.kacker@oracle.com>
Tue, 7 Jul 2015 23:41:24 +0000 (16:41 -0700)
commit29ad8f00530affa693d538007c02198a1253e4ee
tree112c69b956329e9eaefac68b33a49280982673e2
parent6995bba26a678bff1455fbea6c314e6c1dd7737d
RDS/IB: track signaled sends

RDS/IB: track signaled sends

We're seeing bugs today where IB connection shutdown clears the send
ring while the tasklet is processing completed sends.  Implementation
details cause this to dereference a null pointer.  Shutdown needs to
wait for send completion to stop before tearing down the connection.  We
can't simply wait for the ring to empty because it may contain
unsignaled sends that will never be processed.

This patch tracks the number of signaled sends that we've posted and
waits for them to complete.  It also makes sure that the tasklet has
finished executing.

Signed-off-by: Zach Brown <zach.brown@oracle.com>
Signed-off-by: Chris Mason <chris.mason@oracle.com>
Signed-off-by: Bang Nguyen <bang.nguyen@oracle.com>
net/rds/ib.h
net/rds/ib_cm.c
net/rds/ib_send.c