Lines Matching refs:vid_info
162 const struct vlan_vid_info *vid_info) in vlan_hw_filter_capable() argument
164 if (vid_info->proto == htons(ETH_P_8021Q) && in vlan_hw_filter_capable()
167 if (vid_info->proto == htons(ETH_P_8021AD) && in vlan_hw_filter_capable()
176 struct vlan_vid_info *vid_info; in vlan_vid_info_get() local
178 list_for_each_entry(vid_info, &vlan_info->vid_list, list) { in vlan_vid_info_get()
179 if (vid_info->proto == proto && vid_info->vid == vid) in vlan_vid_info_get()
180 return vid_info; in vlan_vid_info_get()
187 struct vlan_vid_info *vid_info; in vlan_vid_info_alloc() local
189 vid_info = kzalloc(sizeof(struct vlan_vid_info), GFP_KERNEL); in vlan_vid_info_alloc()
190 if (!vid_info) in vlan_vid_info_alloc()
192 vid_info->proto = proto; in vlan_vid_info_alloc()
193 vid_info->vid = vid; in vlan_vid_info_alloc()
195 return vid_info; in vlan_vid_info_alloc()
203 struct vlan_vid_info *vid_info; in __vlan_vid_add() local
206 vid_info = vlan_vid_info_alloc(proto, vid); in __vlan_vid_add()
207 if (!vid_info) in __vlan_vid_add()
210 if (vlan_hw_filter_capable(dev, vid_info)) { in __vlan_vid_add()
216 kfree(vid_info); in __vlan_vid_add()
220 list_add(&vid_info->list, &vlan_info->vid_list); in __vlan_vid_add()
222 *pvid_info = vid_info; in __vlan_vid_add()
229 struct vlan_vid_info *vid_info; in vlan_vid_add() local
242 vid_info = vlan_vid_info_get(vlan_info, proto, vid); in vlan_vid_add()
243 if (!vid_info) { in vlan_vid_add()
244 err = __vlan_vid_add(vlan_info, proto, vid, &vid_info); in vlan_vid_add()
248 vid_info->refcount++; in vlan_vid_add()
263 struct vlan_vid_info *vid_info) in __vlan_vid_del() argument
267 __be16 proto = vid_info->proto; in __vlan_vid_del()
268 u16 vid = vid_info->vid; in __vlan_vid_del()
271 if (vlan_hw_filter_capable(dev, vid_info)) { in __vlan_vid_del()
281 list_del(&vid_info->list); in __vlan_vid_del()
282 kfree(vid_info); in __vlan_vid_del()
289 struct vlan_vid_info *vid_info; in vlan_vid_del() local
297 vid_info = vlan_vid_info_get(vlan_info, proto, vid); in vlan_vid_del()
298 if (!vid_info) in vlan_vid_del()
300 vid_info->refcount--; in vlan_vid_del()
301 if (vid_info->refcount == 0) { in vlan_vid_del()
302 __vlan_vid_del(vlan_info, vid_info); in vlan_vid_del()
314 struct vlan_vid_info *vid_info; in vlan_vids_add_by_dev() local
324 list_for_each_entry(vid_info, &vlan_info->vid_list, list) { in vlan_vids_add_by_dev()
325 err = vlan_vid_add(dev, vid_info->proto, vid_info->vid); in vlan_vids_add_by_dev()
332 list_for_each_entry_continue_reverse(vid_info, in vlan_vids_add_by_dev()
335 vlan_vid_del(dev, vid_info->proto, vid_info->vid); in vlan_vids_add_by_dev()
345 struct vlan_vid_info *vid_info; in vlan_vids_del_by_dev() local
354 list_for_each_entry(vid_info, &vlan_info->vid_list, list) in vlan_vids_del_by_dev()
355 vlan_vid_del(dev, vid_info->proto, vid_info->vid); in vlan_vids_del_by_dev()