Lines Matching refs:ifr
22 struct ifreq ifr; in dev_ifname() local
29 if (copy_from_user(&ifr, arg, sizeof(struct ifreq))) in dev_ifname()
32 error = netdev_get_name(net, ifr.ifr_name, ifr.ifr_ifindex); in dev_ifname()
36 if (copy_to_user(arg, &ifr, sizeof(struct ifreq))) in dev_ifname()
121 static int dev_ifsioc_locked(struct net *net, struct ifreq *ifr, unsigned int cmd) in dev_ifsioc_locked() argument
124 struct net_device *dev = dev_get_by_name_rcu(net, ifr->ifr_name); in dev_ifsioc_locked()
131 ifr->ifr_flags = (short) dev_get_flags(dev); in dev_ifsioc_locked()
136 ifr->ifr_metric = 0; in dev_ifsioc_locked()
140 ifr->ifr_mtu = dev->mtu; in dev_ifsioc_locked()
145 memset(ifr->ifr_hwaddr.sa_data, 0, sizeof ifr->ifr_hwaddr.sa_data); in dev_ifsioc_locked()
147 memcpy(ifr->ifr_hwaddr.sa_data, dev->dev_addr, in dev_ifsioc_locked()
148 min(sizeof ifr->ifr_hwaddr.sa_data, (size_t) dev->addr_len)); in dev_ifsioc_locked()
149 ifr->ifr_hwaddr.sa_family = dev->type; in dev_ifsioc_locked()
157 ifr->ifr_map.mem_start = dev->mem_start; in dev_ifsioc_locked()
158 ifr->ifr_map.mem_end = dev->mem_end; in dev_ifsioc_locked()
159 ifr->ifr_map.base_addr = dev->base_addr; in dev_ifsioc_locked()
160 ifr->ifr_map.irq = dev->irq; in dev_ifsioc_locked()
161 ifr->ifr_map.dma = dev->dma; in dev_ifsioc_locked()
162 ifr->ifr_map.port = dev->if_port; in dev_ifsioc_locked()
166 ifr->ifr_ifindex = dev->ifindex; in dev_ifsioc_locked()
170 ifr->ifr_qlen = dev->tx_queue_len; in dev_ifsioc_locked()
185 static int net_hwtstamp_validate(struct ifreq *ifr) in net_hwtstamp_validate() argument
193 if (copy_from_user(&cfg, ifr->ifr_data, sizeof(cfg))) in net_hwtstamp_validate()
239 static int dev_ifsioc(struct net *net, struct ifreq *ifr, unsigned int cmd) in dev_ifsioc() argument
242 struct net_device *dev = __dev_get_by_name(net, ifr->ifr_name); in dev_ifsioc()
252 return dev_change_flags(dev, ifr->ifr_flags); in dev_ifsioc()
259 return dev_set_mtu(dev, ifr->ifr_mtu); in dev_ifsioc()
262 return dev_set_mac_address(dev, &ifr->ifr_hwaddr); in dev_ifsioc()
265 if (ifr->ifr_hwaddr.sa_family != dev->type) in dev_ifsioc()
267 memcpy(dev->broadcast, ifr->ifr_hwaddr.sa_data, in dev_ifsioc()
268 min(sizeof ifr->ifr_hwaddr.sa_data, (size_t) dev->addr_len)); in dev_ifsioc()
276 return ops->ndo_set_config(dev, &ifr->ifr_map); in dev_ifsioc()
282 ifr->ifr_hwaddr.sa_family != AF_UNSPEC) in dev_ifsioc()
286 return dev_mc_add_global(dev, ifr->ifr_hwaddr.sa_data); in dev_ifsioc()
290 ifr->ifr_hwaddr.sa_family != AF_UNSPEC) in dev_ifsioc()
294 return dev_mc_del_global(dev, ifr->ifr_hwaddr.sa_data); in dev_ifsioc()
297 if (ifr->ifr_qlen < 0) in dev_ifsioc()
299 dev->tx_queue_len = ifr->ifr_qlen; in dev_ifsioc()
303 ifr->ifr_newname[IFNAMSIZ-1] = '\0'; in dev_ifsioc()
304 return dev_change_name(dev, ifr->ifr_newname); in dev_ifsioc()
307 err = net_hwtstamp_validate(ifr); in dev_ifsioc()
334 err = ops->ndo_do_ioctl(dev, ifr, cmd); in dev_ifsioc()
394 struct ifreq ifr; in dev_ioctl() local
412 if (copy_from_user(&ifr, arg, sizeof(struct ifreq))) in dev_ioctl()
415 ifr.ifr_name[IFNAMSIZ-1] = 0; in dev_ioctl()
417 colon = strchr(ifr.ifr_name, ':'); in dev_ioctl()
440 dev_load(net, ifr.ifr_name); in dev_ioctl()
442 ret = dev_ifsioc_locked(net, &ifr, cmd); in dev_ioctl()
447 if (copy_to_user(arg, &ifr, in dev_ioctl()
454 dev_load(net, ifr.ifr_name); in dev_ioctl()
456 ret = dev_ethtool(net, &ifr); in dev_ioctl()
461 if (copy_to_user(arg, &ifr, in dev_ioctl()
478 dev_load(net, ifr.ifr_name); in dev_ioctl()
480 ret = dev_ifsioc(net, &ifr, cmd); in dev_ioctl()
485 if (copy_to_user(arg, &ifr, in dev_ioctl()
529 dev_load(net, ifr.ifr_name); in dev_ioctl()
531 ret = dev_ifsioc(net, &ifr, cmd); in dev_ioctl()
551 dev_load(net, ifr.ifr_name); in dev_ioctl()
553 ret = dev_ifsioc(net, &ifr, cmd); in dev_ioctl()
555 if (!ret && copy_to_user(arg, &ifr, in dev_ioctl()
562 return wext_handle_ioctl(net, &ifr, cmd, arg); in dev_ioctl()