In this series, we revert the commit 333f796235a527 ("tipc: fix a
race condition leading to subscriber refcnt bug") and provide an
alternate solution to fix the race conditions in commits 2-4.
We have to do this as the above commit introduced a nametbl soft
lockup at module exit as described by patch#4.
---
v7: Following updates in Patch #2:
Fix incorrect deletion of all prior subscriptions until the specified
subscription.
Protect exported tipc_subscrp_report_overlap() with subscription refcount.
Ensure that subscription can be freed correctly at subscription timer
expiry. The
earlier patch#2 in v5/v6, had refcount bug which prevents the above. This
was
introduced when we skipped get/put refcount in
tipc_subscrb_subscrp_delete(), but
instead do get in tipc_subscrp_subscribe() before starting the timer. Thus
the
subscription_create() initialized the refcount and tipc_subscrp_subscribe
steps it
to 2. At subscription timeout, we perform put only once and we cannot
compensate for
this additional refcount safely.
v6: Address krefcount warning for John Thompson in Patch#3
v5: Address Ying's comment in Patch #2 to remove del_timer_sync().
v4: Address Ying's comment by introducing subscription refcount.
Parthasarathy Bhuvaragan (6):
tipc: fix nametbl_lock soft lockup at node/link events
tipc: add subscription refcount to avoid invalid delete
tipc: fix connection refcount error
tipc: fix nametbl_lock soft lockup at module exit
tipc: ignore requests when the connection state is not CONNECTED
tipc: fix cleanup at module unload
net/tipc/node.c | 9 +++-
net/tipc/server.c | 48 +++++++++------------
net/tipc/subscr.c | 124 ++++++++++++++++++++++++++++++------------------------
net/tipc/subscr.h | 1 +
4 files changed, 99 insertions(+), 83 deletions(-)
--
2.1.4
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, SlashDot.org! http://sdm.link/slashdot
_______________________________________________
tipc-discussion mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/tipc-discussion