Lines Matching defs:rdev

70 	struct cfg802154_registered_device *result = NULL, *rdev;
74 list_for_each_entry(rdev, &cfg802154_rdev_list, list) {
75 if (rdev->wpan_phy_idx == wpan_phy_idx) {
76 result = rdev;
86 struct cfg802154_registered_device *rdev;
90 rdev = cfg802154_rdev_by_wpan_phy_idx(wpan_phy_idx);
91 if (!rdev)
93 return &rdev->wpan_phy;
100 struct cfg802154_registered_device *rdev;
103 alloc_size = sizeof(*rdev) + priv_size;
104 rdev = kzalloc(alloc_size, GFP_KERNEL);
105 if (!rdev)
108 rdev->ops = ops;
110 rdev->wpan_phy_idx = atomic_inc_return(&wpan_phy_counter);
112 if (unlikely(rdev->wpan_phy_idx < 0)) {
115 kfree(rdev);
120 rdev->wpan_phy_idx--;
122 INIT_LIST_HEAD(&rdev->wpan_dev_list);
123 device_initialize(&rdev->wpan_phy.dev);
124 dev_set_name(&rdev->wpan_phy.dev, PHY_NAME "%d", rdev->wpan_phy_idx);
126 rdev->wpan_phy.dev.class = &wpan_phy_class;
127 rdev->wpan_phy.dev.platform_data = rdev;
129 wpan_phy_net_set(&rdev->wpan_phy, &init_net);
131 init_waitqueue_head(&rdev->dev_wait);
132 init_waitqueue_head(&rdev->wpan_phy.sync_txq);
134 spin_lock_init(&rdev->wpan_phy.queue_lock);
136 return &rdev->wpan_phy;
142 struct cfg802154_registered_device *rdev = wpan_phy_to_rdev(phy);
152 list_add_rcu(&rdev->list, &cfg802154_rdev_list);
166 struct cfg802154_registered_device *rdev = wpan_phy_to_rdev(phy);
168 wait_event(rdev->dev_wait, ({
171 __count = rdev->opencount;
179 WARN_ON(!list_empty(&rdev->wpan_dev_list));
184 list_del_rcu(&rdev->list);
220 int cfg802154_switch_netns(struct cfg802154_registered_device *rdev,
226 list_for_each_entry(wpan_dev, &rdev->wpan_dev_list, list) {
238 net = wpan_phy_net(&rdev->wpan_phy);
241 &rdev->wpan_dev_list,
255 wpan_phy_net_set(&rdev->wpan_phy, net);
257 err = device_rename(&rdev->wpan_phy.dev, dev_name(&rdev->wpan_phy.dev));
263 void cfg802154_dev_free(struct cfg802154_registered_device *rdev)
265 kfree(rdev);
269 cfg802154_update_iface_num(struct cfg802154_registered_device *rdev,
274 rdev->num_running_ifaces += num;
282 struct cfg802154_registered_device *rdev;
287 rdev = wpan_phy_to_rdev(wpan_dev->wpan_phy);
295 wpan_dev->identifier = ++rdev->wpan_dev_id;
296 list_add_rcu(&wpan_dev->list, &rdev->wpan_dev_list);
297 rdev->devlist_generation++;
305 cfg802154_update_iface_num(rdev, wpan_dev->iftype, -1);
307 rdev->opencount--;
308 wake_up(&rdev->dev_wait);
311 cfg802154_update_iface_num(rdev, wpan_dev->iftype, 1);
313 rdev->opencount++;
326 rdev->devlist_generation++;
349 struct cfg802154_registered_device *rdev;
352 list_for_each_entry(rdev, &cfg802154_rdev_list, list) {
353 if (net_eq(wpan_phy_net(&rdev->wpan_phy), net))
354 WARN_ON(cfg802154_switch_netns(rdev, &init_net));