Lines Matching refs:pnd
66 struct phonet_device *pnd = kmalloc(sizeof(*pnd), GFP_ATOMIC); in __phonet_device_alloc() local
67 if (pnd == NULL) in __phonet_device_alloc()
69 pnd->netdev = dev; in __phonet_device_alloc()
70 bitmap_zero(pnd->addrs, 64); in __phonet_device_alloc()
73 list_add_rcu(&pnd->list, &pndevs->list); in __phonet_device_alloc()
74 return pnd; in __phonet_device_alloc()
80 struct phonet_device *pnd; in __phonet_get() local
83 list_for_each_entry(pnd, &pndevs->list, list) { in __phonet_get()
84 if (pnd->netdev == dev) in __phonet_get()
85 return pnd; in __phonet_get()
93 struct phonet_device *pnd; in __phonet_get_rcu() local
95 list_for_each_entry_rcu(pnd, &pndevs->list, list) { in __phonet_get_rcu()
96 if (pnd->netdev == dev) in __phonet_get_rcu()
97 return pnd; in __phonet_get_rcu()
105 struct phonet_device *pnd; in phonet_device_destroy() local
110 pnd = __phonet_get(dev); in phonet_device_destroy()
111 if (pnd) in phonet_device_destroy()
112 list_del_rcu(&pnd->list); in phonet_device_destroy()
115 if (pnd) { in phonet_device_destroy()
118 for_each_set_bit(addr, pnd->addrs, 64) in phonet_device_destroy()
120 kfree(pnd); in phonet_device_destroy()
127 struct phonet_device *pnd; in phonet_device_get() local
131 list_for_each_entry_rcu(pnd, &pndevs->list, list) { in phonet_device_get()
132 dev = pnd->netdev; in phonet_device_get()
136 ((pnd->netdev->flags & IFF_UP)) == IFF_UP) in phonet_device_get()
149 struct phonet_device *pnd; in phonet_address_add() local
154 pnd = __phonet_get(dev); in phonet_address_add()
155 if (pnd == NULL) in phonet_address_add()
156 pnd = __phonet_device_alloc(dev); in phonet_address_add()
157 if (unlikely(pnd == NULL)) in phonet_address_add()
159 else if (test_and_set_bit(addr >> 2, pnd->addrs)) in phonet_address_add()
168 struct phonet_device *pnd; in phonet_address_del() local
172 pnd = __phonet_get(dev); in phonet_address_del()
173 if (!pnd || !test_and_clear_bit(addr >> 2, pnd->addrs)) { in phonet_address_del()
175 pnd = NULL; in phonet_address_del()
176 } else if (bitmap_empty(pnd->addrs, 64)) in phonet_address_del()
177 list_del_rcu(&pnd->list); in phonet_address_del()
179 pnd = NULL; in phonet_address_del()
182 if (pnd) in phonet_address_del()
183 kfree_rcu(pnd, rcu); in phonet_address_del()
191 struct phonet_device *pnd; in phonet_address_get() local
195 pnd = __phonet_get_rcu(dev); in phonet_address_get()
196 if (pnd) { in phonet_address_get()
197 BUG_ON(bitmap_empty(pnd->addrs, 64)); in phonet_address_get()
200 if (test_bit(daddr >> 2, pnd->addrs)) in phonet_address_get()
203 saddr = find_first_bit(pnd->addrs, 64) << 2; in phonet_address_get()
225 struct phonet_device *pnd; in phonet_address_lookup() local
229 list_for_each_entry_rcu(pnd, &pndevs->list, list) { in phonet_address_lookup()
231 if ((pnd->netdev->reg_state != NETREG_REGISTERED) || in phonet_address_lookup()
232 ((pnd->netdev->flags & IFF_UP)) != IFF_UP) in phonet_address_lookup()
235 if (test_bit(addr >> 2, pnd->addrs)) { in phonet_address_lookup()