Lines Matching refs:pnd

53 	struct phonet_device *pnd = kmalloc(sizeof(*pnd), GFP_ATOMIC);  in __phonet_device_alloc()  local
54 if (pnd == NULL) in __phonet_device_alloc()
56 pnd->netdev = dev; in __phonet_device_alloc()
57 bitmap_zero(pnd->addrs, 64); in __phonet_device_alloc()
60 list_add_rcu(&pnd->list, &pndevs->list); in __phonet_device_alloc()
61 return pnd; in __phonet_device_alloc()
67 struct phonet_device *pnd; in __phonet_get() local
70 list_for_each_entry(pnd, &pndevs->list, list) { in __phonet_get()
71 if (pnd->netdev == dev) in __phonet_get()
72 return pnd; in __phonet_get()
80 struct phonet_device *pnd; in __phonet_get_rcu() local
82 list_for_each_entry_rcu(pnd, &pndevs->list, list) { in __phonet_get_rcu()
83 if (pnd->netdev == dev) in __phonet_get_rcu()
84 return pnd; in __phonet_get_rcu()
92 struct phonet_device *pnd; in phonet_device_destroy() local
97 pnd = __phonet_get(dev); in phonet_device_destroy()
98 if (pnd) in phonet_device_destroy()
99 list_del_rcu(&pnd->list); in phonet_device_destroy()
102 if (pnd) { in phonet_device_destroy()
105 for_each_set_bit(addr, pnd->addrs, 64) in phonet_device_destroy()
107 kfree(pnd); in phonet_device_destroy()
114 struct phonet_device *pnd; in phonet_device_get() local
118 list_for_each_entry_rcu(pnd, &pndevs->list, list) { in phonet_device_get()
119 dev = pnd->netdev; in phonet_device_get()
123 ((pnd->netdev->flags & IFF_UP)) == IFF_UP) in phonet_device_get()
136 struct phonet_device *pnd; in phonet_address_add() local
141 pnd = __phonet_get(dev); in phonet_address_add()
142 if (pnd == NULL) in phonet_address_add()
143 pnd = __phonet_device_alloc(dev); in phonet_address_add()
144 if (unlikely(pnd == NULL)) in phonet_address_add()
146 else if (test_and_set_bit(addr >> 2, pnd->addrs)) in phonet_address_add()
155 struct phonet_device *pnd; in phonet_address_del() local
159 pnd = __phonet_get(dev); in phonet_address_del()
160 if (!pnd || !test_and_clear_bit(addr >> 2, pnd->addrs)) { in phonet_address_del()
162 pnd = NULL; in phonet_address_del()
163 } else if (bitmap_empty(pnd->addrs, 64)) in phonet_address_del()
164 list_del_rcu(&pnd->list); in phonet_address_del()
166 pnd = NULL; in phonet_address_del()
169 if (pnd) in phonet_address_del()
170 kfree_rcu(pnd, rcu); in phonet_address_del()
178 struct phonet_device *pnd; in phonet_address_get() local
182 pnd = __phonet_get_rcu(dev); in phonet_address_get()
183 if (pnd) { in phonet_address_get()
184 BUG_ON(bitmap_empty(pnd->addrs, 64)); in phonet_address_get()
187 if (test_bit(daddr >> 2, pnd->addrs)) in phonet_address_get()
190 saddr = find_first_bit(pnd->addrs, 64) << 2; in phonet_address_get()
212 struct phonet_device *pnd; in phonet_address_lookup() local
216 list_for_each_entry_rcu(pnd, &pndevs->list, list) { in phonet_address_lookup()
218 if ((pnd->netdev->reg_state != NETREG_REGISTERED) || in phonet_address_lookup()
219 ((pnd->netdev->flags & IFF_UP)) != IFF_UP) in phonet_address_lookup()
222 if (test_bit(addr >> 2, pnd->addrs)) { in phonet_address_lookup()