net: net/core/dev.c cleanups
Subsystems (2)
PATCH 1/1 net: net/core/dev.c cleanups
Pure style cleanup patch before surgery :)
--- net/core/dev.c | 589 +++++++++++++++++++++++------------------------ 1 files changed, 292 insertions(+), 297 deletions(-)
net/core/dev.c +292 -297
@@ -191,7 +191,6 @@ static struct list_head ptype_all __read_mostly; /* Taps */* semaphore held. */ DEFINE_RWLOCK (dev_base_lock); -EXPORT_SYMBOL (dev_base_lock);#define NETDEV_HASHBITS 8
@@ -248,6 +247,7 @@ static RAW_NOTIFIER_HEAD(netdev_chain);*/ DEFINE_PER_CPU(struct softnet_data, softnet_data); +EXPORT_PER_CPU_SYMBOL (softnet_data);#ifdef CONFIG_LOCKDEP /*
@@ -381,6 +381,7 @@ void dev_add_pack(struct packet_type *pt) }spin_unlock_bh (&ptype_lock); } +EXPORT_SYMBOL (dev_add_pack);/** * __dev_remove_pack - remove packet handler
@@ -418,6 +419,8 @@ void __dev_remove_pack(struct packet_type *pt) out:spin_unlock_bh (&ptype_lock); } +EXPORT_SYMBOL (__dev_remove_pack); +/** * dev_remove_pack - remove packet handler * @pt: packet type declaration
@@ -436,6 +439,7 @@ void dev_remove_pack(struct packet_type *pt)synchronize_net (); } +EXPORT_SYMBOL (dev_remove_pack);/******************************************************************************
@@ -499,6 +503,7 @@ int netdev_boot_setup_check(struct net_device *dev) }return 0 ; } +EXPORT_SYMBOL (netdev_boot_setup_check);/**
@@ -591,6 +596,7 @@ struct net_device *__dev_get_by_name(struct net *net, const char *name) }return NULL ; } +EXPORT_SYMBOL (__dev_get_by_name);/** * dev_get_by_name - find a device by its name
@@ -615,6 +621,7 @@ struct net_device *dev_get_by_name(struct net *net, const char *name)read_unlock (&dev_base_lock);return dev; } +EXPORT_SYMBOL (dev_get_by_name);/** * __dev_get_by_index - find a device by its ifindex
@@ -640,6 +647,7 @@ struct net_device *__dev_get_by_index(struct net *net, int ifindex) }return NULL ; } +EXPORT_SYMBOL (__dev_get_by_index);/**
@@ -664,6 +672,7 @@ struct net_device *dev_get_by_index(struct net *net, int ifindex)read_unlock (&dev_base_lock);return dev; } +EXPORT_SYMBOL (dev_get_by_index);/** * dev_getbyhwaddr - find a device by its hardware address
@@ -693,7 +702,6 @@ struct net_device *dev_getbyhwaddr(struct net *net, unsigned short type, char *hreturn NULL ; } -EXPORT_SYMBOL (dev_getbyhwaddr);struct net_device *__dev_getfirstbyhwtype (struct net *net,unsigned short type)
@@ -707,7 +715,6 @@ struct net_device *__dev_getfirstbyhwtype(struct net *net, unsigned short type)return NULL ; } -EXPORT_SYMBOL (__dev_getfirstbyhwtype);struct net_device *dev_getfirstbyhwtype (struct net *net,unsigned short type)
@@ -721,7 +728,6 @@ struct net_device *dev_getfirstbyhwtype(struct net *net, unsigned short type)rtnl_unlock ();return dev; } -EXPORT_SYMBOL (dev_getfirstbyhwtype);/**
@@ -736,7 +742,8 @@ EXPORT_SYMBOL(dev_getfirstbyhwtype);* dev_put to indicate they have finished with it. */ -struct net_device *dev_get_by_flags (struct net *net,unsigned short if_flags,unsigned short mask) +struct net_device *dev_get_by_flags (struct net *net,unsigned short if_flags, +unsigned short mask) {struct net_device *dev, *ret;
@@ -752,6 +759,7 @@ struct net_device * dev_get_by_flags(struct net *net, unsigned short if_flags, uread_unlock (&dev_base_lock);return ret; } +EXPORT_SYMBOL (dev_get_by_flags);/** * dev_valid_name - check if name is okay for network device
@@ -777,6 +785,7 @@ int dev_valid_name(const char *name) }return 1 ; } +EXPORT_SYMBOL (dev_valid_name);/** * __dev_alloc_name - allocate a name for a device
@@ -870,6 +879,7 @@ int dev_alloc_name(struct net_device *dev, const char *name)strlcpy (dev->name, buf,IFNAMSIZ );return ret; } +EXPORT_SYMBOL (dev_alloc_name);/**
@@ -906,8 +916,7 @@ int dev_change_name(struct net_device *dev, const char *newname) err =dev_alloc_name (dev, newname);if (err <0 )return err; - } -else if (__dev_get_by_name (net, newname)) + }else if (__dev_get_by_name (net, newname))return -EEXIST ;else strlcpy (dev->name, newname,IFNAMSIZ );
@@ -970,7 +979,7 @@ int dev_set_alias(struct net_device *dev, const char *alias, size_t len)return 0 ; } - dev->ifalias =krealloc (dev->ifalias, len+1 ,GFP_KERNEL ); + dev->ifalias =krealloc (dev->ifalias, len +1 ,GFP_KERNEL );if (!dev->ifalias)return -ENOMEM ;
@@ -1006,6 +1015,7 @@ void netdev_state_change(struct net_device *dev)rtmsg_ifinfo (RTM_NEWLINK , dev,0 ); } } +EXPORT_SYMBOL (netdev_state_change);void netdev_bonding_change (struct net_device *dev) {
@@ -1034,6 +1044,7 @@ void dev_load(struct net *net, const char *name)if (!dev &&capable (CAP_SYS_MODULE ))request_module ("%s" , name); } +EXPORT_SYMBOL (dev_load);/** * dev_open - prepare an interface for use.
@@ -1118,6 +1129,7 @@ int dev_open(struct net_device *dev)return ret; } +EXPORT_SYMBOL (dev_open);/** * dev_close - shutdown an interface.
@@ -1184,6 +1196,7 @@ int dev_close(struct net_device *dev)return 0 ; } +EXPORT_SYMBOL (dev_close);/**
@@ -1279,6 +1292,7 @@ rollback:raw_notifier_chain_unregister (&netdev_chain, nb); goto unlock; } +EXPORT_SYMBOL (register_netdevice_notifier);/** * unregister_netdevice_notifier - unregister a network notifier block
@@ -1299,6 +1313,7 @@ int unregister_netdevice_notifier(struct notifier_block *nb)rtnl_unlock ();return err; } +EXPORT_SYMBOL (unregister_netdevice_notifier);/** * call_netdevice_notifiers - call all network notifier blocks
@@ -1321,11 +1336,13 @@ void net_enable_timestamp(void) {atomic_inc (&netstamp_needed); } +EXPORT_SYMBOL (net_enable_timestamp);void net_disable_timestamp (void ) {atomic_dec (&netstamp_needed); } +EXPORT_SYMBOL (net_disable_timestamp);static inline void net_timestamp (struct sk_buff *skb) {
@@ -1359,7 +1376,7 @@ static void dev_queue_xmit_nit(struct sk_buff *skb, struct net_device *dev)if ((ptype->dev == dev || !ptype->dev) && (ptype->af_packet_priv ==NULL || (struct sock *)ptype->af_packet_priv != skb->sk)) { -struct sk_buff *skb2=skb_clone (skb,GFP_ATOMIC ); +struct sk_buff *skb2 =skb_clone (skb,GFP_ATOMIC );if (!skb2)break ;
@@ -1527,6 +1544,7 @@ out_set_summed: out:return ret; } +EXPORT_SYMBOL (skb_checksum_help);/** * skb_gso_segment - Perform segmentation on skb.
@@ -1589,7 +1607,6 @@ struct sk_buff *skb_gso_segment(struct sk_buff *skb, int features)return segs; } -EXPORT_SYMBOL (skb_gso_segment);/* Take action when hardware reception checksum errors are detected. */
@@ -1755,7 +1772,7 @@ u16 skb_tx_hash(const struct net_device *dev, const struct sk_buff *skb)if (skb_rx_queue_recorded (skb)) { hash =skb_get_rx_queue (skb); -while (unlikely (hash >= dev->real_num_tx_queues)) +while (unlikely (hash >= dev->real_num_tx_queues)) hash -= dev->real_num_tx_queues;return hash; }
@@ -1890,7 +1907,7 @@ gso: q =rcu_dereference (txq->qdisc);#ifdef CONFIG_NET_CLS_ACT - skb->tc_verd =SET_TC_AT (skb->tc_verd,AT_EGRESS ); + skb->tc_verd =SET_TC_AT (skb->tc_verd,AT_EGRESS );#endif if (q->enqueue) { rc =__dev_xmit_skb (skb, q, dev, txq);
@@ -1946,6 +1963,7 @@ out:rcu_read_unlock_bh ();return rc; } +EXPORT_SYMBOL (dev_queue_xmit);/*=======================================================================
@@ -2012,6 +2030,7 @@ enqueue:kfree_skb (skb);return NET_RX_DROP ; } +EXPORT_SYMBOL (netif_rx);int netif_rx_ni (struct sk_buff *skb) {
@@ -2025,7 +2044,6 @@ int netif_rx_ni(struct sk_buff *skb)return err; } -EXPORT_SYMBOL (netif_rx_ni);static void net_tx_action (struct softirq_action *h)
@@ -2358,6 +2376,7 @@ out:rcu_read_unlock ();return ret; } +EXPORT_SYMBOL (netif_receive_skb);/* Network device is going away, flush any packets still pending */ static void flush_backlog (void *arg)
@@ -2874,7 +2893,7 @@ softnet_break: goto out; } -static gifconf_func_t * gifconf_list [NPROTO ]; +static gifconf_func_t *gifconf_list[NPROTO ];/** * register_gifconf - register a SIOCGIF handler
@@ -2885,13 +2904,14 @@ static gifconf_func_t * gifconf_list [NPROTO];* that is passed must not be freed or reused until it has been replaced * by another handler. */ -int register_gifconf (unsigned int family,gifconf_func_t * gifconf) +int register_gifconf (unsigned int family,gifconf_func_t *gifconf) {if (family >=NPROTO )return -EINVAL ; gifconf_list[family] = gifconf;return 0 ; } +EXPORT_SYMBOL (register_gifconf);/*
@@ -3102,7 +3122,7 @@ static int softnet_seq_show(struct seq_file *seq, void *v)seq_printf (seq,"%08x %08x %08x %08x %08x %08x %08x %08x %08x\n" , s->total, s->dropped, s->time_squeeze,0 ,0 ,0 ,0 ,0 ,/* was fastroute */ - s->cpu_collision ); + s->cpu_collision);return 0 ; }
@@ -3338,6 +3358,7 @@ int netdev_set_master(struct net_device *slave, struct net_device *master)rtmsg_ifinfo (RTM_NEWLINK , slave,IFF_SLAVE );return 0 ; } +EXPORT_SYMBOL (netdev_set_master);static void dev_change_rx_flags (struct net_device *dev,int flags) {
@@ -3416,6 +3437,7 @@ int dev_set_promiscuity(struct net_device *dev, int inc)dev_set_rx_mode (dev);return err; } +EXPORT_SYMBOL (dev_set_promiscuity);/** * dev_set_allmulti - update allmulti count on a device
@@ -3459,6 +3481,7 @@ int dev_set_allmulti(struct net_device *dev, int inc) }return 0 ; } +EXPORT_SYMBOL (dev_set_allmulti);/* * Upload unicast and multicast address lists to device and
@@ -4088,6 +4111,7 @@ unsigned dev_get_flags(const struct net_device *dev)return flags; } +EXPORT_SYMBOL (dev_get_flags);/** * dev_change_flags - change device settings
@@ -4138,12 +4162,13 @@ int dev_change_flags(struct net_device *dev, unsigned flags) }if (dev->flags &IFF_UP && - ((old_flags ^ dev->flags) &~ (IFF_UP |IFF_PROMISC |IFF_ALLMULTI | + ((old_flags ^ dev->flags) & ~(IFF_UP |IFF_PROMISC |IFF_ALLMULTI |IFF_VOLATILE )))call_netdevice_notifiers (NETDEV_CHANGE , dev);if ((flags ^ dev->gflags) &IFF_PROMISC ) { -int inc = (flags &IFF_PROMISC ) ?+1 :-1 ; +int inc = (flags &IFF_PROMISC ) ?1 :-1 ; + dev->gflags ^=IFF_PROMISC ;dev_set_promiscuity (dev, inc); }
@@ -4153,7 +4178,8 @@ int dev_change_flags(struct net_device *dev, unsigned flags)IFF_ALLMULTI is requested not asking us and not reporting. */ if ((flags ^ dev->gflags) &IFF_ALLMULTI ) { -int inc = (flags &IFF_ALLMULTI ) ?+1 :-1 ; +int inc = (flags &IFF_ALLMULTI ) ?1 :-1 ; + dev->gflags ^=IFF_ALLMULTI ;dev_set_allmulti (dev, inc); }
@@ -4165,6 +4191,7 @@ int dev_change_flags(struct net_device *dev, unsigned flags)return ret; } +EXPORT_SYMBOL (dev_change_flags);/** * dev_set_mtu - Change maximum transfer unit
@@ -4198,6 +4225,7 @@ int dev_set_mtu(struct net_device *dev, int new_mtu)call_netdevice_notifiers (NETDEV_CHANGEMTU , dev);return err; } +EXPORT_SYMBOL (dev_set_mtu);/** * dev_set_mac_address - Change Media Access Control Address
@@ -4222,6 +4250,7 @@ int dev_set_mac_address(struct net_device *dev, struct sockaddr *sa)call_netdevice_notifiers (NETDEV_CHANGEADDR , dev);return err; } +EXPORT_SYMBOL (dev_set_mac_address);/* * Perform the SIOCxIFxxx calls, inside read_lock(dev_base_lock)
@@ -4235,56 +4264,56 @@ static int dev_ifsioc_locked(struct net *net, struct ifreq *ifr, unsigned int cmreturn -ENODEV ;switch (cmd) { -case SIOCGIFFLAGS :/* Get interface flags */ - ifr->ifr_flags = (short )dev_get_flags (dev); -return 0 ; +case SIOCGIFFLAGS :/* Get interface flags */ + ifr->ifr_flags = (short )dev_get_flags (dev); +return 0 ; -case SIOCGIFMETRIC :/* Get the metric on the interface -(currently unused) */ - ifr->ifr_metric =0 ; -return 0 ; +case SIOCGIFMETRIC :/* Get the metric on the interface +(currently unused) */ + ifr->ifr_metric =0 ; +return 0 ; -case SIOCGIFMTU :/* Get the MTU of a device */ - ifr->ifr_mtu = dev->mtu; -return 0 ; +case SIOCGIFMTU :/* Get the MTU of a device */ + ifr->ifr_mtu = dev->mtu; +return 0 ; -case SIOCGIFHWADDR : -if (!dev->addr_len) -memset (ifr->ifr_hwaddr.sa_data,0 ,sizeof ifr->ifr_hwaddr.sa_data); -else -memcpy (ifr->ifr_hwaddr.sa_data, dev->dev_addr, -min (sizeof ifr->ifr_hwaddr.sa_data, (size_t ) dev->addr_len)); - ifr->ifr_hwaddr.sa_family = dev->type; -return 0 ; +case SIOCGIFHWADDR : +if (!dev->addr_len) +memset (ifr->ifr_hwaddr.sa_data,0 ,sizeof ifr->ifr_hwaddr.sa_data); +else +memcpy (ifr->ifr_hwaddr.sa_data, dev->dev_addr, +min (sizeof ifr->ifr_hwaddr.sa_data, (size_t ) dev->addr_len)); + ifr->ifr_hwaddr.sa_family = dev->type; +return 0 ; -case SIOCGIFSLAVE : - err = -EINVAL ; -break ; +case SIOCGIFSLAVE : + err = -EINVAL ; +break ; -case SIOCGIFMAP : - ifr->ifr_map.mem_start = dev->mem_start; - ifr->ifr_map.mem_end = dev->mem_end; - ifr->ifr_map.base_addr = dev->base_addr; - ifr->ifr_map.irq = dev->irq; - ifr->ifr_map.dma = dev->dma; - ifr->ifr_map.port = dev->if_port; -return 0 ; +case SIOCGIFMAP : + ifr->ifr_map.mem_start = dev->mem_start; + ifr->ifr_map.mem_end = dev->mem_end; + ifr->ifr_map.base_addr = dev->base_addr; + ifr->ifr_map.irq = dev->irq; + ifr->ifr_map.dma = dev->dma; + ifr->ifr_map.port = dev->if_port; +return 0 ; -case SIOCGIFINDEX : - ifr->ifr_ifindex = dev->ifindex; -return 0 ; +case SIOCGIFINDEX : + ifr->ifr_ifindex = dev->ifindex; +return 0 ; -case SIOCGIFTXQLEN : - ifr->ifr_qlen = dev->tx_queue_len; -return 0 ; +case SIOCGIFTXQLEN : + ifr->ifr_qlen = dev->tx_queue_len; +return 0 ; -default : -/* dev_ioctl() should ensure this case -* is never reached -*/ -WARN_ON (1 ); - err = -EINVAL ; -break ; +default : +/* dev_ioctl() should ensure this case +* is never reached +*/ +WARN_ON (1 ); + err = -EINVAL ; +break ; }return err;
@@ -4305,92 +4334,91 @@ static int dev_ifsioc(struct net *net, struct ifreq *ifr, unsigned int cmd) ops = dev->netdev_ops;switch (cmd) { -case SIOCSIFFLAGS :/* Set interface flags */ -return dev_change_flags (dev, ifr->ifr_flags); - -case SIOCSIFMETRIC :/* Set the metric on the interface -(currently unused) */ -return -EOPNOTSUPP ; - -case SIOCSIFMTU :/* Set the MTU of a device */ -return dev_set_mtu (dev, ifr->ifr_mtu); +case SIOCSIFFLAGS :/* Set interface flags */ +return dev_change_flags (dev, ifr->ifr_flags); -case SIOCSIFHWADDR : -return dev_set_mac_address (dev, &ifr->ifr_hwaddr); +case SIOCSIFMETRIC :/* Set the metric on the interface +(currently unused) */ +return -EOPNOTSUPP ; -case SIOCSIFHWBROADCAST : -if (ifr->ifr_hwaddr.sa_family != dev->type) -return -EINVAL ; -memcpy (dev->broadcast, ifr->ifr_hwaddr.sa_data, -min (sizeof ifr->ifr_hwaddr.sa_data, (size_t ) dev->addr_len)); -call_netdevice_notifiers (NETDEV_CHANGEADDR , dev); -return 0 ; +case SIOCSIFMTU :/* Set the MTU of a device */ +return dev_set_mtu (dev, ifr->ifr_mtu); -case SIOCSIFMAP : -if (ops->ndo_set_config) { -if (!netif_device_present (dev)) -return -ENODEV ; -return ops->ndo_set_config (dev, &ifr->ifr_map); - } -return -EOPNOTSUPP ; +case SIOCSIFHWADDR : +return dev_set_mac_address (dev, &ifr->ifr_hwaddr); -case SIOCADDMULTI : -if ((!ops->ndo_set_multicast_list && !ops->ndo_set_rx_mode) || - ifr->ifr_hwaddr.sa_family !=AF_UNSPEC ) -return -EINVAL ; -if (!netif_device_present (dev)) -return -ENODEV ; -return dev_mc_add (dev, ifr->ifr_hwaddr.sa_data, - dev->addr_len,1 ); +case SIOCSIFHWBROADCAST : +if (ifr->ifr_hwaddr.sa_family != dev->type) +return -EINVAL ; +memcpy (dev->broadcast, ifr->ifr_hwaddr.sa_data, +min (sizeof ifr->ifr_hwaddr.sa_data, (size_t ) dev->addr_len)); +call_netdevice_notifiers (NETDEV_CHANGEADDR , dev); +return 0 ; -case SIOCDELMULTI : -if ((!ops->ndo_set_multicast_list && !ops->ndo_set_rx_mode) || - ifr->ifr_hwaddr.sa_family !=AF_UNSPEC ) -return -EINVAL ; +case SIOCSIFMAP : +if (ops->ndo_set_config) {if (!netif_device_present (dev))return -ENODEV ; -return dev_mc_delete (dev, ifr->ifr_hwaddr.sa_data, - dev->addr_len,1 ); +return ops->ndo_set_config (dev, &ifr->ifr_map); + } +return -EOPNOTSUPP ; -case SIOCSIFTXQLEN : -if (ifr->ifr_qlen <0 ) -return -EINVAL ; - dev->tx_queue_len = ifr->ifr_qlen; -return 0 ; +case SIOCADDMULTI : +if ((!ops->ndo_set_multicast_list && !ops->ndo_set_rx_mode) || + ifr->ifr_hwaddr.sa_family !=AF_UNSPEC ) +return -EINVAL ; +if (!netif_device_present (dev)) +return -ENODEV ; +return dev_mc_add (dev, ifr->ifr_hwaddr.sa_data, + dev->addr_len,1 ); + +case SIOCDELMULTI : +if ((!ops->ndo_set_multicast_list && !ops->ndo_set_rx_mode) || + ifr->ifr_hwaddr.sa_family !=AF_UNSPEC ) +return -EINVAL ; +if (!netif_device_present (dev)) +return -ENODEV ; +return dev_mc_delete (dev, ifr->ifr_hwaddr.sa_data, + dev->addr_len,1 ); -case SIOCSIFNAME : - ifr->ifr_newname[IFNAMSIZ -1 ] ='\0' ; -return dev_change_name (dev, ifr->ifr_newname); +case SIOCSIFTXQLEN : +if (ifr->ifr_qlen <0 ) +return -EINVAL ; + dev->tx_queue_len = ifr->ifr_qlen; +return 0 ; -/* -* Unknown or private ioctl -*/ +case SIOCSIFNAME : + ifr->ifr_newname[IFNAMSIZ -1 ] ='\0' ; +return dev_change_name (dev, ifr->ifr_newname); -default : -if ((cmd >=SIOCDEVPRIVATE && - cmd <=SIOCDEVPRIVATE +15 ) || - cmd ==SIOCBONDENSLAVE || - cmd ==SIOCBONDRELEASE || - cmd ==SIOCBONDSETHWADDR || - cmd ==SIOCBONDSLAVEINFOQUERY || - cmd ==SIOCBONDINFOQUERY || - cmd ==SIOCBONDCHANGEACTIVE || - cmd ==SIOCGMIIPHY || - cmd ==SIOCGMIIREG || - cmd ==SIOCSMIIREG || - cmd ==SIOCBRADDIF || - cmd ==SIOCBRDELIF || - cmd ==SIOCSHWTSTAMP || - cmd ==SIOCWANDEV ) { - err = -EOPNOTSUPP ; -if (ops->ndo_do_ioctl) { -if (netif_device_present (dev)) - err = ops->ndo_do_ioctl (dev, ifr, cmd); -else - err = -ENODEV ; - } - }else - err = -EINVAL ; +/* +* Unknown or private ioctl +*/ +default : +if ((cmd >=SIOCDEVPRIVATE && + cmd <=SIOCDEVPRIVATE +15 ) || + cmd ==SIOCBONDENSLAVE || + cmd ==SIOCBONDRELEASE || + cmd ==SIOCBONDSETHWADDR || + cmd ==SIOCBONDSLAVEINFOQUERY || + cmd ==SIOCBONDINFOQUERY || + cmd ==SIOCBONDCHANGEACTIVE || + cmd ==SIOCGMIIPHY || + cmd ==SIOCGMIIREG || + cmd ==SIOCSMIIREG || + cmd ==SIOCBRADDIF || + cmd ==SIOCBRDELIF || + cmd ==SIOCSHWTSTAMP || + cmd ==SIOCWANDEV ) { + err = -EOPNOTSUPP ; +if (ops->ndo_do_ioctl) { +if (netif_device_present (dev)) + err = ops->ndo_do_ioctl (dev, ifr, cmd); +else + err = -ENODEV ; + } + }else + err = -EINVAL ; }return err;
@@ -4447,135 +4475,135 @@ int dev_ioctl(struct net *net, unsigned int cmd, void __user *arg)*/ switch (cmd) { -/* -* These ioctl calls: -* - can be done by all. -* - atomic and do not require locking. -* - return a value -*/ -case SIOCGIFFLAGS : -case SIOCGIFMETRIC : -case SIOCGIFMTU : -case SIOCGIFHWADDR : -case SIOCGIFSLAVE : -case SIOCGIFMAP : -case SIOCGIFINDEX : -case SIOCGIFTXQLEN : -dev_load (net, ifr.ifr_name); -read_lock (&dev_base_lock); - ret =dev_ifsioc_locked (net, &ifr, cmd); -read_unlock (&dev_base_lock); -if (!ret) { -if (colon) - *colon =':' ; -if (copy_to_user (arg, &ifr, -sizeof (struct ifreq ))) - ret = -EFAULT ; - } -return ret; +/* +* These ioctl calls: +* - can be done by all. +* - atomic and do not require locking. +* - return a value +*/ +case SIOCGIFFLAGS : +case SIOCGIFMETRIC : +case SIOCGIFMTU : +case SIOCGIFHWADDR : +case SIOCGIFSLAVE : +case SIOCGIFMAP : +case SIOCGIFINDEX : +case SIOCGIFTXQLEN : +dev_load (net, ifr.ifr_name); +read_lock (&dev_base_lock); + ret =dev_ifsioc_locked (net, &ifr, cmd); +read_unlock (&dev_base_lock); +if (!ret) { +if (colon) + *colon =':' ; +if (copy_to_user (arg, &ifr, +sizeof (struct ifreq ))) + ret = -EFAULT ; + } +return ret; -case SIOCETHTOOL : -dev_load (net, ifr.ifr_name); -rtnl_lock (); - ret =dev_ethtool (net, &ifr); -rtnl_unlock (); -if (!ret) { -if (colon) - *colon =':' ; -if (copy_to_user (arg, &ifr, -sizeof (struct ifreq ))) - ret = -EFAULT ; - } -return ret; +case SIOCETHTOOL : +dev_load (net, ifr.ifr_name); +rtnl_lock (); + ret =dev_ethtool (net, &ifr); +rtnl_unlock (); +if (!ret) { +if (colon) + *colon =':' ; +if (copy_to_user (arg, &ifr, +sizeof (struct ifreq ))) + ret = -EFAULT ; + } +return ret; -/* -* These ioctl calls: -* - require superuser power. -* - require strict serialization. -* - return a value -*/ -case SIOCGMIIPHY : -case SIOCGMIIREG : -case SIOCSIFNAME : -if (!capable (CAP_NET_ADMIN )) -return -EPERM ; -dev_load (net, ifr.ifr_name); -rtnl_lock (); - ret =dev_ifsioc (net, &ifr, cmd); -rtnl_unlock (); -if (!ret) { -if (colon) - *colon =':' ; -if (copy_to_user (arg, &ifr, -sizeof (struct ifreq ))) - ret = -EFAULT ; - } -return ret; +/* +* These ioctl calls: +* - require superuser power. +* - require strict serialization. +* - return a value +*/ +case SIOCGMIIPHY : +case SIOCGMIIREG : +case SIOCSIFNAME : +if (!capable (CAP_NET_ADMIN )) +return -EPERM ; +dev_load (net, ifr.ifr_name); +rtnl_lock (); + ret =dev_ifsioc (net, &ifr, cmd); +rtnl_unlock (); +if (!ret) { +if (colon) + *colon =':' ; +if (copy_to_user (arg, &ifr, +sizeof (struct ifreq ))) + ret = -EFAULT ; + } +return ret; -/* -* These ioctl calls: -* - require superuser power. -* - require strict serialization. -* - do not return a value -*/ -case SIOCSIFFLAGS : -case SIOCSIFMETRIC : -case SIOCSIFMTU : -case SIOCSIFMAP : -case SIOCSIFHWADDR : -case SIOCSIFSLAVE : -case SIOCADDMULTI : -case SIOCDELMULTI : -case SIOCSIFHWBROADCAST : -case SIOCSIFTXQLEN : -case SIOCSMIIREG : -case SIOCBONDENSLAVE : -case SIOCBONDRELEASE : -case SIOCBONDSETHWADDR : -case SIOCBONDCHANGEACTIVE : -case SIOCBRADDIF : -case SIOCBRDELIF : -case SIOCSHWTSTAMP : -if (!capable (CAP_NET_ADMIN )) -return -EPERM ; -/* fall through */ -case SIOCBONDSLAVEINFOQUERY : -case SIOCBONDINFOQUERY : +/* +* These ioctl calls: +* - require superuser power. +* - require strict serialization. +* - do not return a value +*/ +case SIOCSIFFLAGS : +case SIOCSIFMETRIC : +case SIOCSIFMTU : +case SIOCSIFMAP : +case SIOCSIFHWADDR : +case SIOCSIFSLAVE : +case SIOCADDMULTI : +case SIOCDELMULTI : +case SIOCSIFHWBROADCAST : +case SIOCSIFTXQLEN : +case SIOCSMIIREG : +case SIOCBONDENSLAVE : +case SIOCBONDRELEASE : +case SIOCBONDSETHWADDR : +case SIOCBONDCHANGEACTIVE : +case SIOCBRADDIF : +case SIOCBRDELIF : +case SIOCSHWTSTAMP : +if (!capable (CAP_NET_ADMIN )) +return -EPERM ; +/* fall through */ +case SIOCBONDSLAVEINFOQUERY : +case SIOCBONDINFOQUERY : +dev_load (net, ifr.ifr_name); +rtnl_lock (); + ret =dev_ifsioc (net, &ifr, cmd); +rtnl_unlock (); +return ret; + +case SIOCGIFMEM : +/* Get the per device memory space. We can add this but +* currently do not support it */ +case SIOCSIFMEM : +/* Set the per device memory buffer space. +* Not applicable in our case */ +case SIOCSIFLINK : +return -EINVAL ; + +/* +* Unknown or private ioctl. +*/ +default : +if (cmd ==SIOCWANDEV || + (cmd >=SIOCDEVPRIVATE && + cmd <=SIOCDEVPRIVATE +15 )) {dev_load (net, ifr.ifr_name);rtnl_lock (); ret =dev_ifsioc (net, &ifr, cmd);rtnl_unlock (); +if (!ret &©_to_user (arg, &ifr, +sizeof (struct ifreq ))) + ret = -EFAULT ;return ret; - -case SIOCGIFMEM : -/* Get the per device memory space. We can add this but -* currently do not support it */ -case SIOCSIFMEM : -/* Set the per device memory buffer space. -* Not applicable in our case */ -case SIOCSIFLINK : -return -EINVAL ; - -/* -* Unknown or private ioctl. -*/ -default : -if (cmd ==SIOCWANDEV || - (cmd >=SIOCDEVPRIVATE && - cmd <=SIOCDEVPRIVATE +15 )) { -dev_load (net, ifr.ifr_name); -rtnl_lock (); - ret =dev_ifsioc (net, &ifr, cmd); -rtnl_unlock (); -if (!ret &©_to_user (arg, &ifr, -sizeof (struct ifreq ))) - ret = -EFAULT ; -return ret; - } -/* Take care of Wireless Extensions */ -if (cmd >=SIOCIWFIRST && cmd <=SIOCIWLAST ) -return wext_handle_ioctl (net, &ifr, cmd, arg); -return -EINVAL ; + } +/* Take care of Wireless Extensions */ +if (cmd >=SIOCIWFIRST && cmd <=SIOCIWLAST ) +return wext_handle_ioctl (net, &ifr, cmd, arg); +return -EINVAL ; } }
@@ -4840,6 +4868,7 @@ err_uninit: dev->netdev_ops->ndo_uninit (dev); goto out; } +EXPORT_SYMBOL (register_netdevice);/** * init_dummy_netdev - init a dummy network device for NAPI
@@ -5126,6 +5155,8 @@ struct net_device *alloc_netdev_mq(int sizeof_priv, const char *name, } dev =PTR_ALIGN (p,NETDEV_ALIGN ); +pr_err ("%s dev=%p queue_count=%d tx=%p\n" , name, dev, queue_count, tx); +WARN_ON (queue_count ==1 ); dev->padded = (char *)dev - (char *)p;if (dev_addr_init (dev))
@@ -5192,6 +5223,7 @@ void free_netdev(struct net_device *dev)/* will free via device release */ put_device (&dev->dev); } +EXPORT_SYMBOL (free_netdev);/** * synchronize_net - Synchronize with packet receive processing
@@ -5204,6 +5236,7 @@ void synchronize_net(void)might_sleep ();synchronize_rcu (); } +EXPORT_SYMBOL (synchronize_net);/** * unregister_netdevice - remove device from the kernel
@@ -5224,6 +5257,7 @@ void unregister_netdevice(struct net_device *dev)/* Finish processing unregister after unlock */ net_set_todo (dev); } +EXPORT_SYMBOL (unregister_netdevice);/** * unregister_netdev - remove device from the kernel
@@ -5242,7 +5276,6 @@ void unregister_netdev(struct net_device *dev)unregister_netdevice (dev);rtnl_unlock (); } -EXPORT_SYMBOL (unregister_netdev);/**
@@ -5432,7 +5465,7 @@ unsigned long netdev_increment_features(unsigned long all, unsigned long one, unsigned long mask) {/* If device needs checksumming, downgrade to it. */ -if (all &NETIF_F_NO_CSUM && !(one &NETIF_F_NO_CSUM )) +if (all &NETIF_F_NO_CSUM && !(one &NETIF_F_NO_CSUM )) all ^=NETIF_F_NO_CSUM | (one &NETIF_F_ALL_CSUM );else if (mask &NETIF_F_ALL_CSUM ) {/* If one device supports v4/v6 checksumming, set for all. */
@@ -5658,41 +5691,3 @@ static int __init initialize_hashrnd(void)late_initcall_sync (initialize_hashrnd); -EXPORT_SYMBOL (__dev_get_by_index); -EXPORT_SYMBOL (__dev_get_by_name); -EXPORT_SYMBOL (__dev_remove_pack); -EXPORT_SYMBOL (dev_valid_name); -EXPORT_SYMBOL (dev_add_pack); -EXPORT_SYMBOL (dev_alloc_name); -EXPORT_SYMBOL (dev_close); -EXPORT_SYMBOL (dev_get_by_flags); -EXPORT_SYMBOL (dev_get_by_index); -EXPORT_SYMBOL (dev_get_by_name); -EXPORT_SYMBOL (dev_open); -EXPORT_SYMBOL (dev_queue_xmit); -EXPORT_SYMBOL (dev_remove_pack); -EXPORT_SYMBOL (dev_set_allmulti); -EXPORT_SYMBOL (dev_set_promiscuity); -EXPORT_SYMBOL (dev_change_flags); -EXPORT_SYMBOL (dev_set_mtu); -EXPORT_SYMBOL (dev_set_mac_address); -EXPORT_SYMBOL (free_netdev); -EXPORT_SYMBOL (netdev_boot_setup_check); -EXPORT_SYMBOL (netdev_set_master); -EXPORT_SYMBOL (netdev_state_change); -EXPORT_SYMBOL (netif_receive_skb); -EXPORT_SYMBOL (netif_rx); -EXPORT_SYMBOL (register_gifconf); -EXPORT_SYMBOL (register_netdevice); -EXPORT_SYMBOL (register_netdevice_notifier); -EXPORT_SYMBOL (skb_checksum_help); -EXPORT_SYMBOL (synchronize_net); -EXPORT_SYMBOL (unregister_netdevice); -EXPORT_SYMBOL (unregister_netdevice_notifier); -EXPORT_SYMBOL (net_enable_timestamp); -EXPORT_SYMBOL (net_disable_timestamp); -EXPORT_SYMBOL (dev_get_flags); - -EXPORT_SYMBOL (dev_load); - -EXPORT_PER_CPU_SYMBOL (softnet_data);
David Miller
maintainerFrom: Eric Dumazet <[email protected]>
Date: Thu, 03 Sep 2009 10:19:08 +0200
Quoted 3 lines
Pure style cleanup patch before surgery :)
Signed-off-by Eric Dumazet <[email protected]>
Applied :-)
Hmm, this patch causes following warnings for me:
eth%d dev=ffff88007b9dc000 queue_count=1 tx=ffff88007c565e00
------------[ cut here ]------------ WARNING: at net/core/dev.c:5159 alloc_netdev_mq+0xda/0x1fa() Hardware name: Product Name To Be Filled By O.E.M. Modules linked in: e1000e(+) 8139too pcspkr snd_timer snd soundcore mii snd_page_alloc ata_generic pata_acpi Pid: 1396, comm: work_for_cpu Tainted: G W 2.6.31-rc5testing #6 Call Trace: [<ffffffff812f99a4>] ? alloc_netdev_mq+0xda/0x1fa [<ffffffff8104d08c>] warn_slowpath_common+0x77/0xa4 [<ffffffff8104d0c8>] warn_slowpath_null+0xf/0x11 [<ffffffff812f99a4>] alloc_netdev_mq+0xda/0x1fa [<ffffffff811af36e>] ? pci_find_capability+0x6f/0x71 [<ffffffff81308262>] ? ether_setup+0x0/0x5c [<ffffffff8105e674>] ? do_work_for_cpu+0x0/0x25 [<ffffffff81308260>] alloc_etherdev_mq+0x19/0x1b [<ffffffffa00649eb>] e1000_probe+0x16e/0xb85 [e1000e] [<ffffffff81038b31>] ? __wake_up_common+0x46/0x76 [<ffffffff8105e674>] ? do_work_for_cpu+0x0/0x25 [<ffffffff811b21cf>] local_pci_probe+0x12/0x16 [<ffffffff8105e687>] do_work_for_cpu+0x13/0x25 [<ffffffff8105e674>] ? do_work_for_cpu+0x0/0x25 [<ffffffff81062068>] kthread+0x88/0x90 [<ffffffff81011c6a>] child_rip+0xa/0x20 [<ffffffff81061fe0>] ? kthread+0x0/0x90 [<ffffffff81011c60>] ? child_rip+0x0/0x20 ---[ end trace 4eaa2a86a8e2da27 ]---
Quoted 1,049 lines · Thu, Sep 03, 2009 at 10:19:08AM CEST, [email protected] wrote:
Pure style cleanup patch before surgery :)
Signed-off-by Eric Dumazet <[email protected]>---
net/core/dev.c| 589 +++++++++++++++++++++++------------------------1 files changed, 292 insertions(+), 297 deletions(-)net/core/dev.c +2
-1@@ -191,7 +191,6 @@ static struct list_head ptype_all __read_mostly; /* Taps */* semaphore held. */ DEFINE_RWLOCK (dev_base_lock); -EXPORT_SYMBOL (dev_base_lock);#define NETDEV_HASHBITS 8@@ -248,6 +247,7 @@ static RAW_NOTIFIER_HEAD(netdev_chain);*/ DEFINE_PER_CPU(struct softnet_data, softnet_data); +EXPORT_PER_CPU_SYMBOL (softnet_data);#ifdef CONFIG_LOCKDEP /* @@ -381,6 +381,7 @@ void dev_add_pack(struct packet_type *pt) }spin_unlock_bh (&ptype_lock); } +EXPORT_SYMBOL (dev_add_pack);/** * __dev_remove_pack - remove packet handler @@ -418,6 +419,8 @@ void __dev_remove_pack(struct packet_type *pt)out:
spin_unlock_bh(&ptype_lock); }net/core/dev.c +2
-0+EXPORT_SYMBOL (__dev_remove_pack); +/**
*dev_remove_pack- remove packet handler
* @pt: packet type declarationnet/core/dev.c +22
-8@@ -436,6 +439,7 @@ void dev_remove_pack(struct packet_type *pt)synchronize_net (); } +EXPORT_SYMBOL (dev_remove_pack);/****************************************************************************** @@ -499,6 +503,7 @@ int netdev_boot_setup_check(struct net_device *dev) }return 0 ; } +EXPORT_SYMBOL (netdev_boot_setup_check);/** @@ -591,6 +596,7 @@ struct net_device *__dev_get_by_name(struct net *net, const char *name) }return NULL ; } +EXPORT_SYMBOL (__dev_get_by_name);/** * dev_get_by_name - find a device by its name @@ -615,6 +621,7 @@ struct net_device *dev_get_by_name(struct net *net, const char *name)read_unlock (&dev_base_lock);return dev; } +EXPORT_SYMBOL (dev_get_by_name);/** * __dev_get_by_index - find a device by its ifindex @@ -640,6 +647,7 @@ struct net_device *__dev_get_by_index(struct net *net, int ifindex) }return NULL ; } +EXPORT_SYMBOL (__dev_get_by_index);/** @@ -664,6 +672,7 @@ struct net_device *dev_get_by_index(struct net *net, int ifindex)read_unlock (&dev_base_lock);return dev; } +EXPORT_SYMBOL (dev_get_by_index);/** * dev_getbyhwaddr - find a device by its hardware address @@ -693,7 +702,6 @@ struct net_device *dev_getbyhwaddr(struct net *net, unsigned short type, char *hreturn NULL ; } -EXPORT_SYMBOL (dev_getbyhwaddr);struct net_device *__dev_getfirstbyhwtype (struct net *net,unsigned short type)@@ -707,7 +715,6 @@ struct net_device *__dev_getfirstbyhwtype(struct net *net, unsigned short type)return NULL ; } -EXPORT_SYMBOL (__dev_getfirstbyhwtype);struct net_device *dev_getfirstbyhwtype (struct net *net,unsigned short type)@@ -721,7 +728,6 @@ struct net_device *dev_getfirstbyhwtype(struct net *net, unsigned short type)rtnl_unlock ();return dev; } -EXPORT_SYMBOL (dev_getfirstbyhwtype);/** @@ -736,7 +742,8 @@ EXPORT_SYMBOL(dev_getfirstbyhwtype);* dev_put to indicate they have finished with it. */ -struct net_device *dev_get_by_flags (struct net *net,unsigned short if_flags,unsigned short mask) +struct net_device *dev_get_by_flags (struct net *net,unsigned short if_flags, +unsigned short mask) {struct net_device *dev, *ret;@@ -752,6 +759,7 @@ struct net_device * dev_get_by_flags(struct net *net, unsigned short if_flags, uread_unlock (&dev_base_lock);return ret; } +EXPORT_SYMBOL (dev_get_by_flags);/** * dev_valid_name - check if name is okay for network device @@ -777,6 +785,7 @@ int dev_valid_name(const char *name) }return 1 ; } +EXPORT_SYMBOL (dev_valid_name);/** * __dev_alloc_name - allocate a name for a device @@ -870,6 +879,7 @@ int dev_alloc_name(struct net_device *dev, const char *name)strlcpy (dev->name, buf,IFNAMSIZ );return ret; } +EXPORT_SYMBOL (dev_alloc_name);/** @@ -906,8 +916,7 @@ int dev_change_name(struct net_device *dev, const char *newname) err =dev_alloc_name (dev, newname);if (err <0 )return err; - } -else if (__dev_get_by_name (net, newname)) + }else if (__dev_get_by_name (net, newname))return -EEXIST ;else strlcpy (dev->name, newname,IFNAMSIZ );@@ -970,7 +979,7 @@ int dev_set_alias(struct net_device *dev, const char *alias, size_t len)return 0 ; } - dev->ifalias =krealloc (dev->ifalias, len+1 ,GFP_KERNEL ); + dev->ifalias =krealloc (dev->ifalias, len +1 ,GFP_KERNEL );if (!dev->ifalias)return -ENOMEM ;@@ -1006,6 +1015,7 @@ void netdev_state_change(struct net_device *dev)rtmsg_ifinfo (RTM_NEWLINK , dev,0 ); } } +EXPORT_SYMBOL (netdev_state_change);void netdev_bonding_change (struct net_device *dev) {@@ -1034,6 +1044,7 @@ void dev_load(struct net *net, const char *name)if (!dev &&capable (CAP_SYS_MODULE ))request_module ("%s" , name); } +EXPORT_SYMBOL (dev_load);/** * dev_open - prepare an interface for use. @@ -1118,6 +1129,7 @@ int dev_open(struct net_device *dev)return ret; } +EXPORT_SYMBOL (dev_open);/** * dev_close - shutdown an interface. @@ -1184,6 +1196,7 @@ int dev_close(struct net_device *dev)return 0 ; } +EXPORT_SYMBOL (dev_close);/** @@ -1279,6 +1292,7 @@ rollback:raw_notifier_chain_unregister (&netdev_chain, nb); goto unlock; } +EXPORT_SYMBOL (register_netdevice_notifier);/** * unregister_netdevice_notifier - unregister a network notifier block @@ -1299,6 +1313,7 @@ int unregister_netdevice_notifier(struct notifier_block *nb)rtnl_unlock ();return err; } +EXPORT_SYMBOL (unregister_netdevice_notifier);/** * call_netdevice_notifiers - call all network notifier blocks @@ -1321,11 +1336,13 @@ void net_enable_timestamp(void) {atomic_inc (&netstamp_needed); } +EXPORT_SYMBOL (net_enable_timestamp);void net_disable_timestamp (void ) {atomic_dec (&netstamp_needed); } +EXPORT_SYMBOL (net_disable_timestamp);static inline void net_timestamp (struct sk_buff *skb) {@@ -1359,7 +1376,7 @@ static void dev_queue_xmit_nit(struct sk_buff *skb, struct net_device *dev)if ((ptype->dev == dev || !ptype->dev) && (ptype->af_packet_priv ==NULL || (struct sock *)ptype->af_packet_priv != skb->sk)) { -struct sk_buff *skb2=skb_clone (skb,GFP_ATOMIC ); +struct sk_buff *skb2 =skb_clone (skb,GFP_ATOMIC );if (!skb2)break ;@@ -1527,6 +1544,7 @@ out_set_summed:out:
return ret; }+EXPORT_SYMBOL(skb_checksum_help);
/**
*skb_gso_segment- Perform segmentation on skb.net/core/dev.c +265
-289@@ -1589,7 +1607,6 @@ struct sk_buff *skb_gso_segment(struct sk_buff *skb, int features)return segs; } -EXPORT_SYMBOL (skb_gso_segment);/* Take action when hardware reception checksum errors are detected. */ @@ -1755,7 +1772,7 @@ u16 skb_tx_hash(const struct net_device *dev, const struct sk_buff *skb)if (skb_rx_queue_recorded (skb)) { hash =skb_get_rx_queue (skb); -while (unlikely (hash >= dev->real_num_tx_queues)) +while (unlikely (hash >= dev->real_num_tx_queues)) hash -= dev->real_num_tx_queues;return hash; }@@ -1890,7 +1907,7 @@ gso: q =rcu_dereference (txq->qdisc);#ifdef CONFIG_NET_CLS_ACT - skb->tc_verd =SET_TC_AT (skb->tc_verd,AT_EGRESS ); + skb->tc_verd =SET_TC_AT (skb->tc_verd,AT_EGRESS );#endif if (q->enqueue) { rc =__dev_xmit_skb (skb, q, dev, txq);@@ -1946,6 +1963,7 @@ out:rcu_read_unlock_bh ();return rc; } +EXPORT_SYMBOL (dev_queue_xmit);/*======================================================================= @@ -2012,6 +2030,7 @@ enqueue:kfree_skb (skb);return NET_RX_DROP ; } +EXPORT_SYMBOL (netif_rx);int netif_rx_ni (struct sk_buff *skb) {@@ -2025,7 +2044,6 @@ int netif_rx_ni(struct sk_buff *skb)return err; } -EXPORT_SYMBOL (netif_rx_ni);static void net_tx_action (struct softirq_action *h)@@ -2358,6 +2376,7 @@ out:rcu_read_unlock ();return ret; } +EXPORT_SYMBOL (netif_receive_skb);/* Network device is going away, flush any packets still pending */ static void flush_backlog (void *arg)@@ -2874,7 +2893,7 @@ softnet_break: goto out; } -static gifconf_func_t * gifconf_list [NPROTO ]; +static gifconf_func_t *gifconf_list[NPROTO ];/** * register_gifconf - register a SIOCGIF handler @@ -2885,13 +2904,14 @@ static gifconf_func_t * gifconf_list [NPROTO];* that is passed must not be freed or reused until it has been replaced * by another handler. */ -int register_gifconf (unsigned int family,gifconf_func_t * gifconf) +int register_gifconf (unsigned int family,gifconf_func_t *gifconf) {if (family >=NPROTO )return -EINVAL ; gifconf_list[family] = gifconf;return 0 ; } +EXPORT_SYMBOL (register_gifconf);/* @@ -3102,7 +3122,7 @@ static int softnet_seq_show(struct seq_file *seq, void *v)seq_printf (seq,"%08x %08x %08x %08x %08x %08x %08x %08x %08x\n" , s->total, s->dropped, s->time_squeeze,0 ,0 ,0 ,0 ,0 ,/* was fastroute */ - s->cpu_collision ); + s->cpu_collision);return 0 ; }@@ -3338,6 +3358,7 @@ int netdev_set_master(struct net_device *slave, struct net_device *master)rtmsg_ifinfo (RTM_NEWLINK , slave,IFF_SLAVE );return 0 ; } +EXPORT_SYMBOL (netdev_set_master);static void dev_change_rx_flags (struct net_device *dev,int flags) {@@ -3416,6 +3437,7 @@ int dev_set_promiscuity(struct net_device *dev, int inc)dev_set_rx_mode (dev);return err; } +EXPORT_SYMBOL (dev_set_promiscuity);/** * dev_set_allmulti - update allmulti count on a device @@ -3459,6 +3481,7 @@ int dev_set_allmulti(struct net_device *dev, int inc) }return 0 ; } +EXPORT_SYMBOL (dev_set_allmulti);/* * Upload unicast and multicast address lists to device and @@ -4088,6 +4111,7 @@ unsigned dev_get_flags(const struct net_device *dev)return flags; } +EXPORT_SYMBOL (dev_get_flags);/** * dev_change_flags - change device settings @@ -4138,12 +4162,13 @@ int dev_change_flags(struct net_device *dev, unsigned flags) }if (dev->flags &IFF_UP && - ((old_flags ^ dev->flags) &~ (IFF_UP |IFF_PROMISC |IFF_ALLMULTI | + ((old_flags ^ dev->flags) & ~(IFF_UP |IFF_PROMISC |IFF_ALLMULTI |IFF_VOLATILE )))call_netdevice_notifiers (NETDEV_CHANGE , dev);if ((flags ^ dev->gflags) &IFF_PROMISC ) { -int inc = (flags &IFF_PROMISC ) ?+1 :-1 ; +int inc = (flags &IFF_PROMISC ) ?1 :-1 ; + dev->gflags ^=IFF_PROMISC ;dev_set_promiscuity (dev, inc); }@@ -4153,7 +4178,8 @@ int dev_change_flags(struct net_device *dev, unsigned flags)IFF_ALLMULTI is requested not asking us and not reporting. */ if ((flags ^ dev->gflags) &IFF_ALLMULTI ) { -int inc = (flags &IFF_ALLMULTI ) ?+1 :-1 ; +int inc = (flags &IFF_ALLMULTI ) ?1 :-1 ; + dev->gflags ^=IFF_ALLMULTI ;dev_set_allmulti (dev, inc); }@@ -4165,6 +4191,7 @@ int dev_change_flags(struct net_device *dev, unsigned flags)return ret; } +EXPORT_SYMBOL (dev_change_flags);/** * dev_set_mtu - Change maximum transfer unit @@ -4198,6 +4225,7 @@ int dev_set_mtu(struct net_device *dev, int new_mtu)call_netdevice_notifiers (NETDEV_CHANGEMTU , dev);return err; } +EXPORT_SYMBOL (dev_set_mtu);/** * dev_set_mac_address - Change Media Access Control Address @@ -4222,6 +4250,7 @@ int dev_set_mac_address(struct net_device *dev, struct sockaddr *sa)call_netdevice_notifiers (NETDEV_CHANGEADDR , dev);return err; } +EXPORT_SYMBOL (dev_set_mac_address);/* * Perform the SIOCxIFxxx calls, inside read_lock(dev_base_lock) @@ -4235,56 +4264,56 @@ static int dev_ifsioc_locked(struct net *net, struct ifreq *ifr, unsigned int cmreturn -ENODEV ;switch (cmd) { -case SIOCGIFFLAGS :/* Get interface flags */ - ifr->ifr_flags = (short )dev_get_flags (dev); -return 0 ; +case SIOCGIFFLAGS :/* Get interface flags */ + ifr->ifr_flags = (short )dev_get_flags (dev); +return 0 ; -case SIOCGIFMETRIC :/* Get the metric on the interface -(currently unused) */ - ifr->ifr_metric =0 ; -return 0 ; +case SIOCGIFMETRIC :/* Get the metric on the interface +(currently unused) */ + ifr->ifr_metric =0 ; +return 0 ; -case SIOCGIFMTU :/* Get the MTU of a device */ - ifr->ifr_mtu = dev->mtu; -return 0 ; +case SIOCGIFMTU :/* Get the MTU of a device */ + ifr->ifr_mtu = dev->mtu; +return 0 ; -case SIOCGIFHWADDR : -if (!dev->addr_len) -memset (ifr->ifr_hwaddr.sa_data,0 ,sizeof ifr->ifr_hwaddr.sa_data); -else -memcpy (ifr->ifr_hwaddr.sa_data, dev->dev_addr, -min (sizeof ifr->ifr_hwaddr.sa_data, (size_t ) dev->addr_len)); - ifr->ifr_hwaddr.sa_family = dev->type; -return 0 ; +case SIOCGIFHWADDR : +if (!dev->addr_len) +memset (ifr->ifr_hwaddr.sa_data,0 ,sizeof ifr->ifr_hwaddr.sa_data); +else +memcpy (ifr->ifr_hwaddr.sa_data, dev->dev_addr, +min (sizeof ifr->ifr_hwaddr.sa_data, (size_t ) dev->addr_len)); + ifr->ifr_hwaddr.sa_family = dev->type; +return 0 ; -case SIOCGIFSLAVE : - err = -EINVAL ; -break ; +case SIOCGIFSLAVE : + err = -EINVAL ; +break ; -case SIOCGIFMAP : - ifr->ifr_map.mem_start = dev->mem_start; - ifr->ifr_map.mem_end = dev->mem_end; - ifr->ifr_map.base_addr = dev->base_addr; - ifr->ifr_map.irq = dev->irq; - ifr->ifr_map.dma = dev->dma; - ifr->ifr_map.port = dev->if_port; -return 0 ; +case SIOCGIFMAP : + ifr->ifr_map.mem_start = dev->mem_start; + ifr->ifr_map.mem_end = dev->mem_end; + ifr->ifr_map.base_addr = dev->base_addr; + ifr->ifr_map.irq = dev->irq; + ifr->ifr_map.dma = dev->dma; + ifr->ifr_map.port = dev->if_port; +return 0 ; -case SIOCGIFINDEX : - ifr->ifr_ifindex = dev->ifindex; -return 0 ; +case SIOCGIFINDEX : + ifr->ifr_ifindex = dev->ifindex; +return 0 ; -case SIOCGIFTXQLEN : - ifr->ifr_qlen = dev->tx_queue_len; -return 0 ; +case SIOCGIFTXQLEN : + ifr->ifr_qlen = dev->tx_queue_len; +return 0 ; -default : -/* dev_ioctl() should ensure this case -* is never reached -*/ -WARN_ON (1 ); - err = -EINVAL ; -break ; +default : +/* dev_ioctl() should ensure this case +* is never reached +*/ +WARN_ON (1 ); + err = -EINVAL ; +break ; }return err;@@ -4305,92 +4334,91 @@ static int dev_ifsioc(struct net *net, struct ifreq *ifr, unsigned int cmd) ops = dev->netdev_ops;switch (cmd) { -case SIOCSIFFLAGS :/* Set interface flags */ -return dev_change_flags (dev, ifr->ifr_flags); - -case SIOCSIFMETRIC :/* Set the metric on the interface -(currently unused) */ -return -EOPNOTSUPP ; - -case SIOCSIFMTU :/* Set the MTU of a device */ -return dev_set_mtu (dev, ifr->ifr_mtu); +case SIOCSIFFLAGS :/* Set interface flags */ +return dev_change_flags (dev, ifr->ifr_flags); -case SIOCSIFHWADDR : -return dev_set_mac_address (dev, &ifr->ifr_hwaddr); +case SIOCSIFMETRIC :/* Set the metric on the interface +(currently unused) */ +return -EOPNOTSUPP ; -case SIOCSIFHWBROADCAST : -if (ifr->ifr_hwaddr.sa_family != dev->type) -return -EINVAL ; -memcpy (dev->broadcast, ifr->ifr_hwaddr.sa_data, -min (sizeof ifr->ifr_hwaddr.sa_data, (size_t ) dev->addr_len)); -call_netdevice_notifiers (NETDEV_CHANGEADDR , dev); -return 0 ; +case SIOCSIFMTU :/* Set the MTU of a device */ +return dev_set_mtu (dev, ifr->ifr_mtu); -case SIOCSIFMAP : -if (ops->ndo_set_config) { -if (!netif_device_present (dev)) -return -ENODEV ; -return ops->ndo_set_config (dev, &ifr->ifr_map); - } -return -EOPNOTSUPP ; +case SIOCSIFHWADDR : +return dev_set_mac_address (dev, &ifr->ifr_hwaddr); -case SIOCADDMULTI : -if ((!ops->ndo_set_multicast_list && !ops->ndo_set_rx_mode) || - ifr->ifr_hwaddr.sa_family !=AF_UNSPEC ) -return -EINVAL ; -if (!netif_device_present (dev)) -return -ENODEV ; -return dev_mc_add (dev, ifr->ifr_hwaddr.sa_data, - dev->addr_len,1 ); +case SIOCSIFHWBROADCAST : +if (ifr->ifr_hwaddr.sa_family != dev->type) +return -EINVAL ; +memcpy (dev->broadcast, ifr->ifr_hwaddr.sa_data, +min (sizeof ifr->ifr_hwaddr.sa_data, (size_t ) dev->addr_len)); +call_netdevice_notifiers (NETDEV_CHANGEADDR , dev); +return 0 ; -case SIOCDELMULTI : -if ((!ops->ndo_set_multicast_list && !ops->ndo_set_rx_mode) || - ifr->ifr_hwaddr.sa_family !=AF_UNSPEC ) -return -EINVAL ; +case SIOCSIFMAP : +if (ops->ndo_set_config) {if (!netif_device_present (dev))return -ENODEV ; -return dev_mc_delete (dev, ifr->ifr_hwaddr.sa_data, - dev->addr_len,1 ); +return ops->ndo_set_config (dev, &ifr->ifr_map); + } +return -EOPNOTSUPP ; -case SIOCSIFTXQLEN : -if (ifr->ifr_qlen <0 ) -return -EINVAL ; - dev->tx_queue_len = ifr->ifr_qlen; -return 0 ; +case SIOCADDMULTI : +if ((!ops->ndo_set_multicast_list && !ops->ndo_set_rx_mode) || + ifr->ifr_hwaddr.sa_family !=AF_UNSPEC ) +return -EINVAL ; +if (!netif_device_present (dev)) +return -ENODEV ; +return dev_mc_add (dev, ifr->ifr_hwaddr.sa_data, + dev->addr_len,1 ); + +case SIOCDELMULTI : +if ((!ops->ndo_set_multicast_list && !ops->ndo_set_rx_mode) || + ifr->ifr_hwaddr.sa_family !=AF_UNSPEC ) +return -EINVAL ; +if (!netif_device_present (dev)) +return -ENODEV ; +return dev_mc_delete (dev, ifr->ifr_hwaddr.sa_data, + dev->addr_len,1 ); -case SIOCSIFNAME : - ifr->ifr_newname[IFNAMSIZ -1 ] ='\0' ; -return dev_change_name (dev, ifr->ifr_newname); +case SIOCSIFTXQLEN : +if (ifr->ifr_qlen <0 ) +return -EINVAL ; + dev->tx_queue_len = ifr->ifr_qlen; +return 0 ; -/* -* Unknown or private ioctl -*/ +case SIOCSIFNAME : + ifr->ifr_newname[IFNAMSIZ -1 ] ='\0' ; +return dev_change_name (dev, ifr->ifr_newname); -default : -if ((cmd >=SIOCDEVPRIVATE && - cmd <=SIOCDEVPRIVATE +15 ) || - cmd ==SIOCBONDENSLAVE || - cmd ==SIOCBONDRELEASE || - cmd ==SIOCBONDSETHWADDR || - cmd ==SIOCBONDSLAVEINFOQUERY || - cmd ==SIOCBONDINFOQUERY || - cmd ==SIOCBONDCHANGEACTIVE || - cmd ==SIOCGMIIPHY || - cmd ==SIOCGMIIREG || - cmd ==SIOCSMIIREG || - cmd ==SIOCBRADDIF || - cmd ==SIOCBRDELIF || - cmd ==SIOCSHWTSTAMP || - cmd ==SIOCWANDEV ) { - err = -EOPNOTSUPP ; -if (ops->ndo_do_ioctl) { -if (netif_device_present (dev)) - err = ops->ndo_do_ioctl (dev, ifr, cmd); -else - err = -ENODEV ; - } - }else - err = -EINVAL ; +/* +* Unknown or private ioctl +*/ +default : +if ((cmd >=SIOCDEVPRIVATE && + cmd <=SIOCDEVPRIVATE +15 ) || + cmd ==SIOCBONDENSLAVE || + cmd ==SIOCBONDRELEASE || + cmd ==SIOCBONDSETHWADDR || + cmd ==SIOCBONDSLAVEINFOQUERY || + cmd ==SIOCBONDINFOQUERY || + cmd ==SIOCBONDCHANGEACTIVE || + cmd ==SIOCGMIIPHY || + cmd ==SIOCGMIIREG || + cmd ==SIOCSMIIREG || + cmd ==SIOCBRADDIF || + cmd ==SIOCBRDELIF || + cmd ==SIOCSHWTSTAMP || + cmd ==SIOCWANDEV ) { + err = -EOPNOTSUPP ; +if (ops->ndo_do_ioctl) { +if (netif_device_present (dev)) + err = ops->ndo_do_ioctl (dev, ifr, cmd); +else + err = -ENODEV ; + } + }else + err = -EINVAL ; }return err;@@ -4447,135 +4475,135 @@ int dev_ioctl(struct net *net, unsigned int cmd, void __user *arg)*/ switch (cmd) { -/* -* These ioctl calls: -* - can be done by all. -* - atomic and do not require locking. -* - return a value -*/ -case SIOCGIFFLAGS : -case SIOCGIFMETRIC : -case SIOCGIFMTU : -case SIOCGIFHWADDR : -case SIOCGIFSLAVE : -case SIOCGIFMAP : -case SIOCGIFINDEX : -case SIOCGIFTXQLEN : -dev_load (net, ifr.ifr_name); -read_lock (&dev_base_lock); - ret =dev_ifsioc_locked (net, &ifr, cmd); -read_unlock (&dev_base_lock); -if (!ret) { -if (colon) - *colon =':' ; -if (copy_to_user (arg, &ifr, -sizeof (struct ifreq ))) - ret = -EFAULT ; - } -return ret; +/* +* These ioctl calls: +* - can be done by all. +* - atomic and do not require locking. +* - return a value +*/ +case SIOCGIFFLAGS : +case SIOCGIFMETRIC : +case SIOCGIFMTU : +case SIOCGIFHWADDR : +case SIOCGIFSLAVE : +case SIOCGIFMAP : +case SIOCGIFINDEX : +case SIOCGIFTXQLEN : +dev_load (net, ifr.ifr_name); +read_lock (&dev_base_lock); + ret =dev_ifsioc_locked (net, &ifr, cmd); +read_unlock (&dev_base_lock); +if (!ret) { +if (colon) + *colon =':' ; +if (copy_to_user (arg, &ifr, +sizeof (struct ifreq ))) + ret = -EFAULT ; + } +return ret; -case SIOCETHTOOL : -dev_load (net, ifr.ifr_name); -rtnl_lock (); - ret =dev_ethtool (net, &ifr); -rtnl_unlock (); -if (!ret) { -if (colon) - *colon =':' ; -if (copy_to_user (arg, &ifr, -sizeof (struct ifreq ))) - ret = -EFAULT ; - } -return ret; +case SIOCETHTOOL : +dev_load (net, ifr.ifr_name); +rtnl_lock (); + ret =dev_ethtool (net, &ifr); +rtnl_unlock (); +if (!ret) { +if (colon) + *colon =':' ; +if (copy_to_user (arg, &ifr, +sizeof (struct ifreq ))) + ret = -EFAULT ; + } +return ret; -/* -* These ioctl calls: -* - require superuser power. -* - require strict serialization. -* - return a value -*/ -case SIOCGMIIPHY : -case SIOCGMIIREG : -case SIOCSIFNAME : -if (!capable (CAP_NET_ADMIN )) -return -EPERM ; -dev_load (net, ifr.ifr_name); -rtnl_lock (); - ret =dev_ifsioc (net, &ifr, cmd); -rtnl_unlock (); -if (!ret) { -if (colon) - *colon =':' ; -if (copy_to_user (arg, &ifr, -sizeof (struct ifreq ))) - ret = -EFAULT ; - } -return ret; +/* +* These ioctl calls: +* - require superuser power. +* - require strict serialization. +* - return a value +*/ +case SIOCGMIIPHY : +case SIOCGMIIREG : +case SIOCSIFNAME : +if (!capable (CAP_NET_ADMIN )) +return -EPERM ; +dev_load (net, ifr.ifr_name); +rtnl_lock (); + ret =dev_ifsioc (net, &ifr, cmd); +rtnl_unlock (); +if (!ret) { +if (colon) + *colon =':' ; +if (copy_to_user (arg, &ifr, +sizeof (struct ifreq ))) + ret = -EFAULT ; + } +return ret; -/* -* These ioctl calls: -* - require superuser power. -* - require strict serialization. -* - do not return a value -*/ -case SIOCSIFFLAGS : -case SIOCSIFMETRIC : -case SIOCSIFMTU : -case SIOCSIFMAP : -case SIOCSIFHWADDR : -case SIOCSIFSLAVE : -case SIOCADDMULTI : -case SIOCDELMULTI : -case SIOCSIFHWBROADCAST : -case SIOCSIFTXQLEN : -case SIOCSMIIREG : -case SIOCBONDENSLAVE : -case SIOCBONDRELEASE : -case SIOCBONDSETHWADDR : -case SIOCBONDCHANGEACTIVE : -case SIOCBRADDIF : -case SIOCBRDELIF : -case SIOCSHWTSTAMP : -if (!capable (CAP_NET_ADMIN )) -return -EPERM ; -/* fall through */ -case SIOCBONDSLAVEINFOQUERY : -case SIOCBONDINFOQUERY : +/* +* These ioctl calls: +* - require superuser power. +* - require strict serialization. +* - do not return a value +*/ +case SIOCSIFFLAGS : +case SIOCSIFMETRIC : +case SIOCSIFMTU : +case SIOCSIFMAP : +case SIOCSIFHWADDR : +case SIOCSIFSLAVE : +case SIOCADDMULTI : +case SIOCDELMULTI : +case SIOCSIFHWBROADCAST : +case SIOCSIFTXQLEN : +case SIOCSMIIREG : +case SIOCBONDENSLAVE : +case SIOCBONDRELEASE : +case SIOCBONDSETHWADDR : +case SIOCBONDCHANGEACTIVE : +case SIOCBRADDIF : +case SIOCBRDELIF : +case SIOCSHWTSTAMP : +if (!capable (CAP_NET_ADMIN )) +return -EPERM ; +/* fall through */ +case SIOCBONDSLAVEINFOQUERY : +case SIOCBONDINFOQUERY : +dev_load (net, ifr.ifr_name); +rtnl_lock (); + ret =dev_ifsioc (net, &ifr, cmd); +rtnl_unlock (); +return ret; + +case SIOCGIFMEM : +/* Get the per device memory space. We can add this but +* currently do not support it */ +case SIOCSIFMEM : +/* Set the per device memory buffer space. +* Not applicable in our case */ +case SIOCSIFLINK : +return -EINVAL ; + +/* +* Unknown or private ioctl. +*/ +default : +if (cmd ==SIOCWANDEV || + (cmd >=SIOCDEVPRIVATE && + cmd <=SIOCDEVPRIVATE +15 )) {dev_load (net, ifr.ifr_name);rtnl_lock (); ret =dev_ifsioc (net, &ifr, cmd);rtnl_unlock (); +if (!ret &©_to_user (arg, &ifr, +sizeof (struct ifreq ))) + ret = -EFAULT ;return ret; - -case SIOCGIFMEM : -/* Get the per device memory space. We can add this but -* currently do not support it */ -case SIOCSIFMEM : -/* Set the per device memory buffer space. -* Not applicable in our case */ -case SIOCSIFLINK : -return -EINVAL ; - -/* -* Unknown or private ioctl. -*/ -default : -if (cmd ==SIOCWANDEV || - (cmd >=SIOCDEVPRIVATE && - cmd <=SIOCDEVPRIVATE +15 )) { -dev_load (net, ifr.ifr_name); -rtnl_lock (); - ret =dev_ifsioc (net, &ifr, cmd); -rtnl_unlock (); -if (!ret &©_to_user (arg, &ifr, -sizeof (struct ifreq ))) - ret = -EFAULT ; -return ret; - } -/* Take care of Wireless Extensions */ -if (cmd >=SIOCIWFIRST && cmd <=SIOCIWLAST ) -return wext_handle_ioctl (net, &ifr, cmd, arg); -return -EINVAL ; + } +/* Take care of Wireless Extensions */ +if (cmd >=SIOCIWFIRST && cmd <=SIOCIWLAST ) +return wext_handle_ioctl (net, &ifr, cmd, arg); +return -EINVAL ; } }@@ -4840,6 +4868,7 @@ err_uninit: dev->netdev_ops->ndo_uninit (dev); goto out; } +EXPORT_SYMBOL (register_netdevice);/** * init_dummy_netdev - init a dummy network device for NAPI @@ -5126,6 +5155,8 @@ struct net_device *alloc_netdev_mq(int sizeof_priv, const char *name, } dev =PTR_ALIGN (p,NETDEV_ALIGN ); +pr_err ("%s dev=%p queue_count=%d tx=%p\n" , name, dev, queue_count, tx); +WARN_ON (queue_count ==1 ); dev->padded = (char *)dev - (char *)p;if (dev_addr_init (dev))@@ -5192,6 +5223,7 @@ void free_netdev(struct net_device *dev)/* will free via device release */ put_device (&dev->dev); } +EXPORT_SYMBOL (free_netdev);/** * synchronize_net - Synchronize with packet receive processing @@ -5204,6 +5236,7 @@ void synchronize_net(void)might_sleep ();synchronize_rcu (); } +EXPORT_SYMBOL (synchronize_net);/** * unregister_netdevice - remove device from the kernel @@ -5224,6 +5257,7 @@ void unregister_netdevice(struct net_device *dev)/* Finish processing unregister after unlock */ net_set_todo (dev); } +EXPORT_SYMBOL (unregister_netdevice);/** * unregister_netdev - remove device from the kernel @@ -5242,7 +5276,6 @@ void unregister_netdev(struct net_device *dev)unregister_netdevice (dev);rtnl_unlock (); } -EXPORT_SYMBOL (unregister_netdev);/** @@ -5432,7 +5465,7 @@ unsigned long netdev_increment_features(unsigned long all, unsigned long one, unsigned long mask) {/* If device needs checksumming, downgrade to it. */ -if (all &NETIF_F_NO_CSUM && !(one &NETIF_F_NO_CSUM )) +if (all &NETIF_F_NO_CSUM && !(one &NETIF_F_NO_CSUM )) all ^=NETIF_F_NO_CSUM | (one &NETIF_F_ALL_CSUM );else if (mask &NETIF_F_ALL_CSUM ) {/* If one device supports v4/v6 checksumming, set for all. */ @@ -5658,41 +5691,3 @@ static int __init initialize_hashrnd(void)late_initcall_sync (initialize_hashrnd); -EXPORT_SYMBOL (__dev_get_by_index); -EXPORT_SYMBOL (__dev_get_by_name); -EXPORT_SYMBOL (__dev_remove_pack); -EXPORT_SYMBOL (dev_valid_name); -EXPORT_SYMBOL (dev_add_pack); -EXPORT_SYMBOL (dev_alloc_name); -EXPORT_SYMBOL (dev_close); -EXPORT_SYMBOL (dev_get_by_flags); -EXPORT_SYMBOL (dev_get_by_index); -EXPORT_SYMBOL (dev_get_by_name); -EXPORT_SYMBOL (dev_open); -EXPORT_SYMBOL (dev_queue_xmit); -EXPORT_SYMBOL (dev_remove_pack); -EXPORT_SYMBOL (dev_set_allmulti); -EXPORT_SYMBOL (dev_set_promiscuity); -EXPORT_SYMBOL (dev_change_flags); -EXPORT_SYMBOL (dev_set_mtu); -EXPORT_SYMBOL (dev_set_mac_address); -EXPORT_SYMBOL (free_netdev); -EXPORT_SYMBOL (netdev_boot_setup_check); -EXPORT_SYMBOL (netdev_set_master); -EXPORT_SYMBOL (netdev_state_change); -EXPORT_SYMBOL (netif_receive_skb); -EXPORT_SYMBOL (netif_rx); -EXPORT_SYMBOL (register_gifconf); -EXPORT_SYMBOL (register_netdevice); -EXPORT_SYMBOL (register_netdevice_notifier); -EXPORT_SYMBOL (skb_checksum_help); -EXPORT_SYMBOL (synchronize_net); -EXPORT_SYMBOL (unregister_netdevice); -EXPORT_SYMBOL (unregister_netdevice_notifier); -EXPORT_SYMBOL (net_enable_timestamp); -EXPORT_SYMBOL (net_disable_timestamp); -EXPORT_SYMBOL (dev_get_flags); - -EXPORT_SYMBOL (dev_load); - -EXPORT_PER_CPU_SYMBOL (softnet_data); --To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Quoted 3 lines · Jiri Pirko
Hmm, this patch causes following warnings for me:
eth%d dev=ffff88007b9dc000 queue_count=1 tx=ffff88007c565e00
Oops !
Sorry, I left a debugging aid :(
Thanks Jiri
[PATCH net-next-2.6] net: Remove debugging code
Remove a debugging aid I accidently left in previous 'cleanup' patch
---
net/core/dev.c +0 -2
@@ -5155,8 +5155,6 @@ struct net_device *alloc_netdev_mq(int sizeof_priv, const char *name, } dev =PTR_ALIGN (p,NETDEV_ALIGN ); -pr_err ("%s dev=%p queue_count=%d tx=%p\n" , name, dev, queue_count, tx); -WARN_ON (queue_count ==1 ); dev->padded = (char *)dev - (char *)p;if (dev_addr_init (dev))
From: Eric Dumazet <[email protected]>
Date: Thu, 03 Sep 2009 14:03:09 +0200
Quoted 5 lines
[PATCH net-next-2.6] net: Remove debugging code
Remove a debugging aid I accidently left in previous 'cleanup' patch
Signed-off-by Eric Dumazet <[email protected]>
Sadly I went over the original patch with a fine-toothed comb and I completely missed this :-(
Applied, thanks.