Hi Erik / Jon,
The bug was introduced by:
commit 8985ecc7c1e07c42acc1e44ac56fa224f8a5c62f
Author: Jon Maloy <[email protected]>
Date: Thu Feb 15 10:40:46 2018 +0100
tipc: simplify endianness handling in topology subscriber
- /* Detect & process a subscription cancellation request */
- if (s->filter & htohl(TIPC_SUB_CANCEL, swap)) {
- s->filter &= ~htohl(TIPC_SUB_CANCEL, swap);
+ if (tipc_sub_read(s, filter) & TIPC_SUB_CANCEL) {
tipc_con_delete_sub(con, s);
return 0;
}
/Partha
On 2019-03-19 12:55, Erik Hugne wrote:
Well, i couldnt find any commit where the bug was introduced.. but i agree
that it should probably be in net.
Could you change the subject header and submit?
//E
On Tue, 19 Mar 2019, 11:56 Jon Maloy, <[email protected]> wrote:
Acked-by: Jon.
Why did you mark it "net-next"? To me this looks like a bug fix and should
go to 'net'.
I'll post it for you if you want.
///jon
-----Original Message-----
From: [email protected] <[email protected]>
Sent: 19-Mar-19 11:08
To: [email protected]; Jon Maloy
<[email protected]>; [email protected]
Cc: Erik Hugne <[email protected]>
Subject: [PATCH net-next] tipc: fix cancellation of topology
subscriptions
From: Erik Hugne <[email protected]>
When cancelling a subscription, we have to clear the cancel bit in the
request
before iterating over any established subscriptions with memcmp.
Otherwise
no subscription will ever be found, and it will not be possible to
unsubscribe.
Signed-off-by: Erik Hugne <[email protected]>
---
Ignore my previous garbage patch, this solve the problem with one line.
Looking through the history of topsrv.c, i cannot find that this has ever
worked.
net/tipc/topsrv.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/net/tipc/topsrv.c b/net/tipc/topsrv.c index
4a708a4e8583..b05a89a723b1 100644
--- a/net/tipc/topsrv.c
+++ b/net/tipc/topsrv.c
@@ -363,6 +363,7 @@ static int tipc_conn_rcv_sub(struct tipc_topsrv *srv,
struct tipc_subscription *sub;
if (tipc_sub_read(s, filter) & TIPC_SUB_CANCEL) {
+ s->filter ^= __constant_ntohl(TIPC_SUB_CANCEL);
tipc_conn_delete_sub(con, s);
return 0;
}
--
2.14.1
_______________________________________________
tipc-discussion mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/tipc-discussion
_______________________________________________
tipc-discussion mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/tipc-discussion