Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6
* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6: (1429 commits) net: Allow dependancies of FDDI & Tokenring to be modular. igb: Fix build warning when DCA is disabled. net: Fix warning fallout from recent NAPI interface changes. gro: Fix potential use after free sfc: If AN is enabled, always read speed/duplex from the AN advertising bits sfc: When disabling the NIC, close the device rather than unregistering it sfc: SFT9001: Add cable diagnostics sfc: Add support for multiple PHY self-tests sfc: Merge top-level functions for self-tests sfc: Clean up PHY mode management in loopback self-test sfc: Fix unreliable link detection in some loopback modes sfc: Generate unique names for per-NIC workqueues 802.3ad: use standard ethhdr instead of ad_header 802.3ad: generalize out mac address initializer 802.3ad: initialize ports LACPDU from const initializer 802.3ad: remove typedef around ad_system 802.3ad: turn ports is_individual into a bool 802.3ad: turn ports is_enabled into a bool 802.3ad: make ntt bool ixgbe: Fix set_ringparam in ixgbe to use the same memory pools. ... Fixed trivial IPv4/6 address printing conflicts in fs/cifs/connect.c due to the conversion to %pI (in this networking merge) and the addition of doing IPv6 addresses (from the earlier merge of CIFS).
This commit is contained in:
@ -305,6 +305,23 @@ tun_net_change_mtu(struct net_device *dev, int new_mtu)
|
||||
return 0;
|
||||
}
|
||||
|
||||
static const struct net_device_ops tun_netdev_ops = {
|
||||
.ndo_open = tun_net_open,
|
||||
.ndo_stop = tun_net_close,
|
||||
.ndo_start_xmit = tun_net_xmit,
|
||||
.ndo_change_mtu = tun_net_change_mtu,
|
||||
};
|
||||
|
||||
static const struct net_device_ops tap_netdev_ops = {
|
||||
.ndo_open = tun_net_open,
|
||||
.ndo_stop = tun_net_close,
|
||||
.ndo_start_xmit = tun_net_xmit,
|
||||
.ndo_change_mtu = tun_net_change_mtu,
|
||||
.ndo_set_multicast_list = tun_net_mclist,
|
||||
.ndo_set_mac_address = eth_mac_addr,
|
||||
.ndo_validate_addr = eth_validate_addr,
|
||||
};
|
||||
|
||||
/* Initialize net device. */
|
||||
static void tun_net_init(struct net_device *dev)
|
||||
{
|
||||
@ -312,11 +329,12 @@ static void tun_net_init(struct net_device *dev)
|
||||
|
||||
switch (tun->flags & TUN_TYPE_MASK) {
|
||||
case TUN_TUN_DEV:
|
||||
dev->netdev_ops = &tun_netdev_ops;
|
||||
|
||||
/* Point-to-Point TUN Device */
|
||||
dev->hard_header_len = 0;
|
||||
dev->addr_len = 0;
|
||||
dev->mtu = 1500;
|
||||
dev->change_mtu = tun_net_change_mtu;
|
||||
|
||||
/* Zero header length */
|
||||
dev->type = ARPHRD_NONE;
|
||||
@ -325,10 +343,9 @@ static void tun_net_init(struct net_device *dev)
|
||||
break;
|
||||
|
||||
case TUN_TAP_DEV:
|
||||
dev->netdev_ops = &tun_netdev_ops;
|
||||
/* Ethernet TAP Device */
|
||||
ether_setup(dev);
|
||||
dev->change_mtu = tun_net_change_mtu;
|
||||
dev->set_multicast_list = tun_net_mclist;
|
||||
|
||||
random_ether_addr(dev->dev_addr);
|
||||
|
||||
@ -529,7 +546,6 @@ static __inline__ ssize_t tun_get_user(struct tun_struct *tun, struct iovec *iv,
|
||||
}
|
||||
|
||||
netif_rx_ni(skb);
|
||||
tun->dev->last_rx = jiffies;
|
||||
|
||||
tun->dev->stats.rx_packets++;
|
||||
tun->dev->stats.rx_bytes += len;
|
||||
@ -676,9 +692,6 @@ static void tun_setup(struct net_device *dev)
|
||||
tun->owner = -1;
|
||||
tun->group = -1;
|
||||
|
||||
dev->open = tun_net_open;
|
||||
dev->hard_start_xmit = tun_net_xmit;
|
||||
dev->stop = tun_net_close;
|
||||
dev->ethtool_ops = &tun_ethtool_ops;
|
||||
dev->destructor = free_netdev;
|
||||
dev->features |= NETIF_F_NETNS_LOCAL;
|
||||
@ -752,6 +765,7 @@ static int tun_set_iff(struct net *net, struct file *file, struct ifreq *ifr)
|
||||
return -ENOMEM;
|
||||
|
||||
dev_net_set(dev, net);
|
||||
|
||||
tun = netdev_priv(dev);
|
||||
tun->dev = dev;
|
||||
tun->flags = flags;
|
||||
@ -885,7 +899,6 @@ static int tun_chr_ioctl(struct inode *inode, struct file *file,
|
||||
void __user* argp = (void __user*)arg;
|
||||
struct ifreq ifr;
|
||||
int ret;
|
||||
DECLARE_MAC_BUF(mac);
|
||||
|
||||
if (cmd == TUNSETIFF || _IOC_TYPE(cmd) == 0x89)
|
||||
if (copy_from_user(&ifr, argp, sizeof ifr))
|
||||
@ -1013,8 +1026,8 @@ static int tun_chr_ioctl(struct inode *inode, struct file *file,
|
||||
|
||||
case SIOCSIFHWADDR:
|
||||
/* Set hw address */
|
||||
DBG(KERN_DEBUG "%s: set hw address: %s\n",
|
||||
tun->dev->name, print_mac(mac, ifr.ifr_hwaddr.sa_data));
|
||||
DBG(KERN_DEBUG "%s: set hw address: %pM\n",
|
||||
tun->dev->name, ifr.ifr_hwaddr.sa_data);
|
||||
|
||||
rtnl_lock();
|
||||
ret = dev_set_mac_address(tun->dev, &ifr.ifr_hwaddr);
|
||||
|
Reference in New Issue
Block a user