From: David S. Miller Date: Mon, 14 Apr 2008 09:30:23 +0000 (-0700) Subject: Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 X-Git-Tag: v2.6.26-rc1~1138^2~92 X-Git-Url: http://pilppa.com/gitweb/?a=commitdiff_plain;h=df39e8ba56a788733d369068c7319e04b1da3cd5;p=linux-2.6-omap-h63xx.git Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 Conflicts: drivers/net/ehea/ehea_main.c drivers/net/wireless/iwlwifi/Kconfig drivers/net/wireless/rt2x00/rt61pci.c net/ipv4/inet_timewait_sock.c net/ipv6/raw.c net/mac80211/ieee80211_sta.c --- df39e8ba56a788733d369068c7319e04b1da3cd5 diff --cc drivers/net/ehea/ehea_main.c index 0c1c360a85c,f460b623c07..9ff7538b759 --- a/drivers/net/ehea/ehea_main.c +++ b/drivers/net/ehea/ehea_main.c @@@ -2839,23 -2857,22 +2858,24 @@@ static void ehea_rereg_mrs(struct work_ /* Shutdown all ports */ for (i = 0; i < EHEA_MAX_PORTS; i++) { struct ehea_port *port = adapter->port[i]; + struct net_device *dev; - if (port) { - struct net_device *dev = port->netdev; + if (!port) + continue; - if (dev->flags & IFF_UP) { - down(&port->port_lock); - netif_stop_queue(dev); - ehea_flush_sq(port); - ret = ehea_stop_qps(dev); - if (ret) { - up(&port->port_lock); - goto out; - } - port_napi_disable(port); - up(&port->port_lock); + dev = port->netdev; + + if (dev->flags & IFF_UP) { + mutex_lock(&port->port_lock); + netif_stop_queue(dev); ++ ehea_flush_sq(port); + ret = ehea_stop_qps(dev); + if (ret) { + mutex_unlock(&port->port_lock); + goto out; } + port_napi_disable(port); + mutex_unlock(&port->port_lock); } } diff --cc drivers/net/smc91x.c index 97bdb2a43bc,63a54e29d56..600b92af333 --- a/drivers/net/smc91x.c +++ b/drivers/net/smc91x.c @@@ -1322,10 -1322,11 +1322,11 @@@ static irqreturn_t smc_interrupt(int ir } while (--timeout); /* restore register states */ - SMC_SET_PTR(saved_pointer); - SMC_SET_INT_MASK(mask); + SMC_SET_PTR(lp, saved_pointer); + SMC_SET_INT_MASK(lp, mask); spin_unlock(&lp->lock); + #ifndef CONFIG_NET_POLL_CONTROLLER if (timeout == MAX_IRQ_LOOPS) PRINTK("%s: spurious interrupt (mask = 0x%02x)\n", dev->name, mask); diff --cc drivers/net/wireless/rt2x00/rt61pci.c index 1cb056be448,ad2e7d53b3d..468a31c8c11 --- a/drivers/net/wireless/rt2x00/rt61pci.c +++ b/drivers/net/wireless/rt2x00/rt61pci.c @@@ -2377,12 -2398,9 +2377,10 @@@ static int rt61pci_beacon_update(struc * We need to append the descriptor in front of the * beacon frame. */ - if (skb_headroom(skb) < TXD_DESC_SIZE) { - if (pskb_expand_head(skb, TXD_DESC_SIZE, 0, GFP_ATOMIC)) + if (skb_headroom(skb) < intf->beacon->queue->desc_size) { + if (pskb_expand_head(skb, intf->beacon->queue->desc_size, - 0, GFP_ATOMIC)) { - dev_kfree_skb(skb); ++ 0, GFP_ATOMIC)) return -ENOMEM; - } } /* diff --cc net/bridge/br_netfilter.c index 0278a069c6f,af7e8be8d8d..bb90cd7bace --- a/net/bridge/br_netfilter.c +++ b/net/bridge/br_netfilter.c @@@ -110,7 -110,8 +110,10 @@@ static inline __be16 pppoe_proto(const * ipt_REJECT needs it. Future netfilter modules might * require us to fill additional fields. */ static struct net_device __fake_net_device = { - .hard_header_len = ETH_HLEN + .hard_header_len = ETH_HLEN, ++#ifdef CONFIG_NET_NS + .nd_net = &init_net, ++#endif }; static struct rtable __fake_rtable = { diff --cc net/ipv6/addrconf.c index 9d49ed2578d,e08955baedf..8a0fd4007bd --- a/net/ipv6/addrconf.c +++ b/net/ipv6/addrconf.c @@@ -2529,10 -2457,10 +2530,10 @@@ static int addrconf_ifdown(struct net_d ASSERT_RTNL(); - if (dev == init_net.loopback_dev && how == 1) + if ((dev->flags & IFF_LOOPBACK) && how == 1) how = 0; - rt6_ifdown(dev); + rt6_ifdown(net, dev); neigh_ifdown(&nd_tbl, dev); idev = __in6_dev_get(dev);