Lines Matching defs:groups

406 	WARN_ON(nlk_sk(sk)->groups);
550 for (i = 0; i < NLGRPLONGS(tbl->groups); i++) {
554 mask |= nlk_sk(sk)->groups[i];
727 kfree(nlk->groups);
728 nlk->groups = NULL;
766 if (test_bit(i, nlk->groups))
940 unsigned int groups;
946 groups = nl_table[sk->sk_protocol].groups;
952 if (nlk->ngroups >= groups)
955 new_groups = krealloc(nlk->groups, NLGRPSZ(groups), GFP_ATOMIC);
961 NLGRPSZ(groups) - NLGRPSZ(nlk->ngroups));
963 nlk->groups = new_groups;
964 nlk->ngroups = groups;
970 static void netlink_undo_bind(int group, long unsigned int groups,
980 if (test_bit(undo, &groups))
992 unsigned long groups;
1000 groups = nladdr->nl_groups;
1003 if (groups) {
1012 groups &= (1UL << nlk->ngroups) - 1;
1024 if (nlk->netlink_bind && groups) {
1027 /* nl_groups is a u32, so cap the maximum groups we can bind */
1029 if (!test_bit(group, &groups))
1034 netlink_undo_bind(group, groups, sk);
1048 netlink_undo_bind(BITS_PER_TYPE(u32), groups, sk);
1053 if (!groups && (nlk->groups == NULL || !(u32)nlk->groups[0]))
1059 hweight32(groups) -
1060 hweight32(nlk->groups[0]));
1061 nlk->groups[0] = (nlk->groups[0] & ~0xffffffffUL) | groups;
1137 nladdr->nl_groups = nlk->groups ? nlk->groups[0] : 0;
1377 if (listeners && group - 1 < nl_table[sk->sk_protocol].groups)
1432 !test_bit(p->group - 1, nlk->groups))
1578 !test_bit(p->group - 1, nlk->groups))
1632 old = test_bit(group - 1, nlk->groups);
1635 __set_bit(group - 1, nlk->groups);
1637 __clear_bit(group - 1, nlk->groups);
1779 if (put_user((u32)(nlk->groups[idx] >> shift),
2031 unsigned int groups;
2046 if (!cfg || cfg->groups < 32)
2047 groups = 32;
2049 groups = cfg->groups;
2051 listeners = kzalloc(sizeof(*listeners) + NLGRPSZ(groups), GFP_KERNEL);
2067 nl_table[unit].groups = groups;
2107 int __netlink_change_ngroups(struct sock *sk, unsigned int groups)
2112 if (groups < 32)
2113 groups = 32;
2115 if (NLGRPSZ(tbl->groups) < NLGRPSZ(groups)) {
2116 new = kzalloc(sizeof(*new) + NLGRPSZ(groups), GFP_ATOMIC);
2120 memcpy(new->masks, old->masks, NLGRPSZ(tbl->groups));
2125 tbl->groups = groups;
2131 * netlink_change_ngroups - change number of multicast groups
2133 * This changes the number of multicast groups that are available
2135 * change the number of groups to below 32. Also note that it does
2137 * number of groups is reduced.
2140 * @groups: The new number of groups.
2142 int netlink_change_ngroups(struct sock *sk, unsigned int groups)
2147 err = __netlink_change_ngroups(sk, groups);
2654 nlk->groups ? (u32)nlk->groups[0] : 0,
2796 int groups = 32;
2798 listeners = kzalloc(sizeof(*listeners) + NLGRPSZ(groups), GFP_KERNEL);
2804 nl_table[NETLINK_USERSOCK].groups = groups;