Lines Matching refs:pnd

51 	struct phonet_device *pnd = kmalloc(sizeof(*pnd), GFP_ATOMIC);
52 if (pnd == NULL)
54 pnd->netdev = dev;
55 bitmap_zero(pnd->addrs, 64);
58 list_add_rcu(&pnd->list, &pndevs->list);
59 return pnd;
65 struct phonet_device *pnd;
68 list_for_each_entry(pnd, &pndevs->list, list) {
69 if (pnd->netdev == dev)
70 return pnd;
78 struct phonet_device *pnd;
80 list_for_each_entry_rcu(pnd, &pndevs->list, list) {
81 if (pnd->netdev == dev)
82 return pnd;
90 struct phonet_device *pnd;
95 pnd = __phonet_get(dev);
96 if (pnd)
97 list_del_rcu(&pnd->list);
100 if (pnd) {
103 for_each_set_bit(addr, pnd->addrs, 64)
105 kfree(pnd);
112 struct phonet_device *pnd;
116 list_for_each_entry_rcu(pnd, &pndevs->list, list) {
117 dev = pnd->netdev;
121 ((pnd->netdev->flags & IFF_UP)) == IFF_UP)
134 struct phonet_device *pnd;
139 pnd = __phonet_get(dev);
140 if (pnd == NULL)
141 pnd = __phonet_device_alloc(dev);
142 if (unlikely(pnd == NULL))
144 else if (test_and_set_bit(addr >> 2, pnd->addrs))
153 struct phonet_device *pnd;
157 pnd = __phonet_get(dev);
158 if (!pnd || !test_and_clear_bit(addr >> 2, pnd->addrs)) {
160 pnd = NULL;
161 } else if (bitmap_empty(pnd->addrs, 64))
162 list_del_rcu(&pnd->list);
164 pnd = NULL;
167 if (pnd)
168 kfree_rcu(pnd, rcu);
176 struct phonet_device *pnd;
180 pnd = __phonet_get_rcu(dev);
181 if (pnd) {
182 BUG_ON(bitmap_empty(pnd->addrs, 64));
185 if (test_bit(daddr >> 2, pnd->addrs))
188 saddr = find_first_bit(pnd->addrs, 64) << 2;
210 struct phonet_device *pnd;
214 list_for_each_entry_rcu(pnd, &pndevs->list, list) {
216 if ((pnd->netdev->reg_state != NETREG_REGISTERED) ||
217 ((pnd->netdev->flags & IFF_UP)) != IFF_UP)
220 if (test_bit(addr >> 2, pnd->addrs)) {