Lines Matching refs:groups

960 	WARN_ON(nlk_sk(sk)->groups);  in netlink_sock_destruct()
1094 for (i = 0; i < NLGRPLONGS(tbl->groups); i++) { in netlink_update_listeners()
1098 mask |= nlk_sk(sk)->groups[i]; in netlink_update_listeners()
1296 if (test_bit(i, nlk->groups)) in netlink_release()
1338 kfree(nlk->groups); in netlink_release()
1339 nlk->groups = NULL; in netlink_release()
1473 unsigned int groups; in netlink_realloc_groups() local
1479 groups = nl_table[sk->sk_protocol].groups; in netlink_realloc_groups()
1485 if (nlk->ngroups >= groups) in netlink_realloc_groups()
1488 new_groups = krealloc(nlk->groups, NLGRPSZ(groups), GFP_ATOMIC); in netlink_realloc_groups()
1494 NLGRPSZ(groups) - NLGRPSZ(nlk->ngroups)); in netlink_realloc_groups()
1496 nlk->groups = new_groups; in netlink_realloc_groups()
1497 nlk->ngroups = groups; in netlink_realloc_groups()
1503 static void netlink_undo_bind(int group, long unsigned int groups, in netlink_undo_bind() argument
1513 if (test_bit(undo, &groups)) in netlink_undo_bind()
1525 long unsigned int groups = nladdr->nl_groups; in netlink_bind() local
1535 if (groups) { in netlink_bind()
1552 if (nlk->netlink_bind && groups) { in netlink_bind()
1556 if (!test_bit(group, &groups)) in netlink_bind()
1561 netlink_undo_bind(group, groups, sk); in netlink_bind()
1574 netlink_undo_bind(nlk->ngroups, groups, sk); in netlink_bind()
1579 if (!groups && (nlk->groups == NULL || !(u32)nlk->groups[0])) in netlink_bind()
1584 hweight32(groups) - in netlink_bind()
1585 hweight32(nlk->groups[0])); in netlink_bind()
1586 nlk->groups[0] = (nlk->groups[0] & ~0xffffffffUL) | groups; in netlink_bind()
1648 nladdr->nl_groups = nlk->groups ? nlk->groups[0] : 0; in netlink_getname()
1962 if (listeners && group - 1 < nl_table[sk->sk_protocol].groups) in netlink_has_listeners()
2009 !test_bit(p->group - 1, nlk->groups)) in do_one_broadcast()
2154 !test_bit(p->group - 1, nlk->groups)) in do_one_set_err()
2207 old = test_bit(group - 1, nlk->groups); in netlink_update_socket_mc()
2210 __set_bit(group - 1, nlk->groups); in netlink_update_socket_mc()
2212 __clear_bit(group - 1, nlk->groups); in netlink_update_socket_mc()
2381 if (put_user((u32)(nlk->groups[idx] >> shift), in netlink_getsockopt()
2627 unsigned int groups; in __netlink_kernel_create() local
2642 if (!cfg || cfg->groups < 32) in __netlink_kernel_create()
2643 groups = 32; in __netlink_kernel_create()
2645 groups = cfg->groups; in __netlink_kernel_create()
2647 listeners = kzalloc(sizeof(*listeners) + NLGRPSZ(groups), GFP_KERNEL); in __netlink_kernel_create()
2663 nl_table[unit].groups = groups; in __netlink_kernel_create()
2703 int __netlink_change_ngroups(struct sock *sk, unsigned int groups) in __netlink_change_ngroups() argument
2708 if (groups < 32) in __netlink_change_ngroups()
2709 groups = 32; in __netlink_change_ngroups()
2711 if (NLGRPSZ(tbl->groups) < NLGRPSZ(groups)) { in __netlink_change_ngroups()
2712 new = kzalloc(sizeof(*new) + NLGRPSZ(groups), GFP_ATOMIC); in __netlink_change_ngroups()
2716 memcpy(new->masks, old->masks, NLGRPSZ(tbl->groups)); in __netlink_change_ngroups()
2721 tbl->groups = groups; in __netlink_change_ngroups()
2738 int netlink_change_ngroups(struct sock *sk, unsigned int groups) in netlink_change_ngroups() argument
2743 err = __netlink_change_ngroups(sk, groups); in netlink_change_ngroups()
3184 nlk->groups ? (u32)nlk->groups[0] : 0, in netlink_seq_show()
3279 int groups = 32; in netlink_add_usersock_entry() local
3281 listeners = kzalloc(sizeof(*listeners) + NLGRPSZ(groups), GFP_KERNEL); in netlink_add_usersock_entry()
3287 nl_table[NETLINK_USERSOCK].groups = groups; in netlink_add_usersock_entry()