On Sat, 2018-08-04 at 16:21 -0700, Nathan Chancellor wrote: > On Sun, Aug 05, 2018 at 12:12:02AM +0100, Dmitry Safonov wrote: > > On Sat, 2018-08-04 at 15:49 -0700, Nathan Chancellor wrote: > > > dmesg output attached, please let me know if you need anything > > > else. > > > > Could you try with this diff instead? > > It looks like, I'm too bad with shifts and shifted for 64 bytes. > > > > -- > > Thanks, > > Dmitry > > diff --git a/net/netlink/af_netlink.c b/net/netlink/af_netlink.c > > index 7d860a22e5fb..b78bb7dc06fe 100644 > > --- a/net/netlink/af_netlink.c > > +++ b/net/netlink/af_netlink.c > > @@ -1011,7 +1011,7 @@ static int netlink_bind(struct socket *sock, > > struct sockaddr *addr, > > > > if (nlk->ngroups == 0) > > groups = 0; > > - else > > + else if (nlk->ngroups < 64) > > groups &= (1ULL << nlk->ngroups) - 1; > > > > bound = nlk->bound; > > This fixed my issue. If needed: > > Tested-by: Nathan Chancellor <natechancellor@xxxxxxxxx> > Thanks for the testing, sorry again for the breakage. Will send the patch shortly (with sizeof(unsigned long long) instead of hard-coded 64). Hopefully, not too late. (and then will go to bed and feel myself awful - not knowing C after so many years). -- Thanks, Dmitry