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: (1446 commits) macvlan: fix panic if lowerdev in a bond tg3: Add braces around 5906 workaround. tg3: Fix NETIF_F_LOOPBACK error macvlan: remove one synchronize_rcu() call networking: NET_CLS_ROUTE4 depends on INET irda: Fix error propagation in ircomm_lmp_connect_response() irda: Kill set but unused variable 'bytes' in irlan_check_command_param() irda: Kill set but unused variable 'clen' in ircomm_connect_indication() rxrpc: Fix set but unused variable 'usage' in rxrpc_get_transport() be2net: Kill set but unused variable 'req' in lancer_fw_download() irda: Kill set but unused vars 'saddr' and 'daddr' in irlan_provider_connect_indication() atl1c: atl1c_resume() is only used when CONFIG_PM_SLEEP is defined. rxrpc: Fix set but unused variable 'usage' in rxrpc_get_peer(). rxrpc: Kill set but unused variable 'local' in rxrpc_UDP_error_handler() rxrpc: Kill set but unused variable 'sp' in rxrpc_process_connection() rxrpc: Kill set but unused variable 'sp' in rxrpc_rotate_tx_window() pkt_sched: Kill set but unused variable 'protocol' in tc_classify() isdn: capi: Use pr_debug() instead of ifdefs. tg3: Update version to 3.119 tg3: Apply rx_discards fix to 5719/5720 ... Fix up trivial conflicts in arch/x86/Kconfig and net/mac80211/agg-tx.c as per Davem.
This commit is contained in:
@@ -250,11 +250,6 @@ static struct ip_tunnel *ipip6_tunnel_locate(struct net *net,
|
||||
|
||||
dev_net_set(dev, net);
|
||||
|
||||
if (strchr(name, '%')) {
|
||||
if (dev_alloc_name(dev, name) < 0)
|
||||
goto failed_free;
|
||||
}
|
||||
|
||||
nt = netdev_priv(dev);
|
||||
|
||||
nt->parms = *parms;
|
||||
@@ -447,7 +442,7 @@ out:
|
||||
}
|
||||
|
||||
static int
|
||||
isatap_chksrc(struct sk_buff *skb, struct iphdr *iph, struct ip_tunnel *t)
|
||||
isatap_chksrc(struct sk_buff *skb, const struct iphdr *iph, struct ip_tunnel *t)
|
||||
{
|
||||
struct ip_tunnel_prl_entry *p;
|
||||
int ok = 1;
|
||||
@@ -460,7 +455,8 @@ isatap_chksrc(struct sk_buff *skb, struct iphdr *iph, struct ip_tunnel *t)
|
||||
else
|
||||
skb->ndisc_nodetype = NDISC_NODETYPE_NODEFAULT;
|
||||
} else {
|
||||
struct in6_addr *addr6 = &ipv6_hdr(skb)->saddr;
|
||||
const struct in6_addr *addr6 = &ipv6_hdr(skb)->saddr;
|
||||
|
||||
if (ipv6_addr_is_isatap(addr6) &&
|
||||
(addr6->s6_addr32[3] == iph->saddr) &&
|
||||
ipv6_chk_prefix(addr6, t->dev))
|
||||
@@ -494,7 +490,7 @@ static int ipip6_err(struct sk_buff *skb, u32 info)
|
||||
8 bytes of packet payload. It means, that precise relaying of
|
||||
ICMP in the real Internet is absolutely infeasible.
|
||||
*/
|
||||
struct iphdr *iph = (struct iphdr*)skb->data;
|
||||
const struct iphdr *iph = (const struct iphdr *)skb->data;
|
||||
const int type = icmp_hdr(skb)->type;
|
||||
const int code = icmp_hdr(skb)->code;
|
||||
struct ip_tunnel *t;
|
||||
@@ -552,7 +548,7 @@ out:
|
||||
return err;
|
||||
}
|
||||
|
||||
static inline void ipip6_ecn_decapsulate(struct iphdr *iph, struct sk_buff *skb)
|
||||
static inline void ipip6_ecn_decapsulate(const struct iphdr *iph, struct sk_buff *skb)
|
||||
{
|
||||
if (INET_ECN_is_ce(iph->tos))
|
||||
IP6_ECN_set_ce(ipv6_hdr(skb));
|
||||
@@ -560,7 +556,7 @@ static inline void ipip6_ecn_decapsulate(struct iphdr *iph, struct sk_buff *skb)
|
||||
|
||||
static int ipip6_rcv(struct sk_buff *skb)
|
||||
{
|
||||
struct iphdr *iph;
|
||||
const struct iphdr *iph;
|
||||
struct ip_tunnel *tunnel;
|
||||
|
||||
if (!pskb_may_pull(skb, sizeof(struct ipv6hdr)))
|
||||
@@ -616,7 +612,7 @@ out:
|
||||
* comes from 6rd / 6to4 (RFC 3056) addr space.
|
||||
*/
|
||||
static inline
|
||||
__be32 try_6rd(struct in6_addr *v6dst, struct ip_tunnel *tunnel)
|
||||
__be32 try_6rd(const struct in6_addr *v6dst, struct ip_tunnel *tunnel)
|
||||
{
|
||||
__be32 dst = 0;
|
||||
|
||||
@@ -659,8 +655,8 @@ static netdev_tx_t ipip6_tunnel_xmit(struct sk_buff *skb,
|
||||
{
|
||||
struct ip_tunnel *tunnel = netdev_priv(dev);
|
||||
struct pcpu_tstats *tstats;
|
||||
struct iphdr *tiph = &tunnel->parms.iph;
|
||||
struct ipv6hdr *iph6 = ipv6_hdr(skb);
|
||||
const struct iphdr *tiph = &tunnel->parms.iph;
|
||||
const struct ipv6hdr *iph6 = ipv6_hdr(skb);
|
||||
u8 tos = tunnel->parms.iph.tos;
|
||||
__be16 df = tiph->frag_off;
|
||||
struct rtable *rt; /* Route to the other host */
|
||||
@@ -668,8 +664,9 @@ static netdev_tx_t ipip6_tunnel_xmit(struct sk_buff *skb,
|
||||
struct iphdr *iph; /* Our new IP header */
|
||||
unsigned int max_headroom; /* The extra header space needed */
|
||||
__be32 dst = tiph->daddr;
|
||||
struct flowi4 fl4;
|
||||
int mtu;
|
||||
struct in6_addr *addr6;
|
||||
const struct in6_addr *addr6;
|
||||
int addr_type;
|
||||
|
||||
if (skb->protocol != htons(ETH_P_IPV6))
|
||||
@@ -688,7 +685,7 @@ static netdev_tx_t ipip6_tunnel_xmit(struct sk_buff *skb,
|
||||
goto tx_error;
|
||||
}
|
||||
|
||||
addr6 = (struct in6_addr*)&neigh->primary_key;
|
||||
addr6 = (const struct in6_addr*)&neigh->primary_key;
|
||||
addr_type = ipv6_addr_type(addr6);
|
||||
|
||||
if ((addr_type & IPV6_ADDR_UNICAST) &&
|
||||
@@ -713,7 +710,7 @@ static netdev_tx_t ipip6_tunnel_xmit(struct sk_buff *skb,
|
||||
goto tx_error;
|
||||
}
|
||||
|
||||
addr6 = (struct in6_addr*)&neigh->primary_key;
|
||||
addr6 = (const struct in6_addr*)&neigh->primary_key;
|
||||
addr_type = ipv6_addr_type(addr6);
|
||||
|
||||
if (addr_type == IPV6_ADDR_ANY) {
|
||||
@@ -727,7 +724,7 @@ static netdev_tx_t ipip6_tunnel_xmit(struct sk_buff *skb,
|
||||
dst = addr6->s6_addr32[3];
|
||||
}
|
||||
|
||||
rt = ip_route_output_ports(dev_net(dev), NULL,
|
||||
rt = ip_route_output_ports(dev_net(dev), &fl4, NULL,
|
||||
dst, tiph->saddr,
|
||||
0, 0,
|
||||
IPPROTO_IPV6, RT_TOS(tos),
|
||||
@@ -821,8 +818,8 @@ static netdev_tx_t ipip6_tunnel_xmit(struct sk_buff *skb,
|
||||
iph->frag_off = df;
|
||||
iph->protocol = IPPROTO_IPV6;
|
||||
iph->tos = INET_ECN_encapsulate(tos, ipv6_get_dsfield(iph6));
|
||||
iph->daddr = rt->rt_dst;
|
||||
iph->saddr = rt->rt_src;
|
||||
iph->daddr = fl4.daddr;
|
||||
iph->saddr = fl4.saddr;
|
||||
|
||||
if ((iph->ttl = tiph->ttl) == 0)
|
||||
iph->ttl = iph6->hop_limit;
|
||||
@@ -844,13 +841,14 @@ static void ipip6_tunnel_bind_dev(struct net_device *dev)
|
||||
{
|
||||
struct net_device *tdev = NULL;
|
||||
struct ip_tunnel *tunnel;
|
||||
struct iphdr *iph;
|
||||
const struct iphdr *iph;
|
||||
struct flowi4 fl4;
|
||||
|
||||
tunnel = netdev_priv(dev);
|
||||
iph = &tunnel->parms.iph;
|
||||
|
||||
if (iph->daddr) {
|
||||
struct rtable *rt = ip_route_output_ports(dev_net(dev), NULL,
|
||||
struct rtable *rt = ip_route_output_ports(dev_net(dev), &fl4, NULL,
|
||||
iph->daddr, iph->saddr,
|
||||
0, 0,
|
||||
IPPROTO_IPV6,
|
||||
|
Reference in New Issue
Block a user