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 tipc-discussion@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/tipc-discussion