]> git.baikalelectronics.ru Git - kernel.git/commit
RDS/IB: track signaled sends
authorZach Brown <zach.brown@oracle.com>
Wed, 14 Jul 2010 20:55:35 +0000 (13:55 -0700)
committerAndy Grover <andy.grover@oracle.com>
Thu, 9 Sep 2010 01:16:40 +0000 (18:16 -0700)
commite4a378c078cd19d0d5421041773bd88291c0105c
treed184275400dee81f2a5027728bda849bec338d99
parentd9f26cff98aa87e7da239b4d633f1c4b291c81aa
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>
net/rds/ib.h
net/rds/ib_cm.c
net/rds/ib_send.c