net: Initialize every fl_net member in struct flowi
Subsystems (14)
PATCH 2/4 net: Initialize every fl_net member in struct flowi
net: Initialize every fl_net member in struct flowi
Signed-off-by Denis V. Lunev <[email protected]>
Signed-off-by Eric W. Biederman <[email protected]>
--- drivers/infiniband/core/addr.c | 2 ++ drivers/infiniband/hw/cxgb3/iwch_cm.c | 3 ++- drivers/net/bonding/bond_main.c | 1 + include/net/route.h | 4 +++- net/atm/clip.c | 5 ++++- net/bridge/br_netfilter.c | 1 + net/dccp/ipv4.c | 3 ++- net/dccp/ipv6.c | 5 +++++ net/decnet/af_decnet.c | 1 + net/decnet/dn_fib.c | 1 + net/decnet/dn_nsp_out.c | 1 + net/decnet/dn_route.c | 7 +++++-- net/decnet/dn_rules.c | 5 ++++- net/ipv4/af_inet.c | 1 + net/ipv4/arp.c | 18 ++++++++++++------ net/ipv4/fib_frontend.c | 16 ++++++++++++---- net/ipv4/fib_semantics.c | 1 + net/ipv4/icmp.c | 4 +++- net/ipv4/igmp.c | 12 ++++++++---- net/ipv4/inet_connection_sock.c | 3 ++- net/ipv4/ip_gre.c | 10 +++++++--- net/ipv4/ip_output.c | 6 ++++-- net/ipv4/ipip.c | 7 +++++-- net/ipv4/ipmr.c | 6 ++++-- net/ipv4/ipvs/ip_vs_xmit.c | 3 +++ net/ipv4/netfilter.c | 1 + net/ipv4/netfilter/nf_nat_rule.c | 5 ++++- net/ipv4/raw.c | 3 ++- net/ipv4/route.c | 7 +++++-- net/ipv4/syncookies.c | 3 ++- net/ipv4/udp.c | 3 ++- net/ipv4/xfrm4_policy.c | 2 ++ net/ipv6/af_inet6.c | 1 + net/ipv6/datagram.c | 1 + net/ipv6/icmp.c | 2 ++ net/ipv6/inet6_connection_sock.c | 1 + net/ipv6/ip6_flowlabel.c | 1 + net/ipv6/ip6_tunnel.c | 1 + net/ipv6/ipv6_sockglue.c | 1 + net/ipv6/ndisc.c | 1 + net/ipv6/netfilter.c | 1 + net/ipv6/netfilter/ip6t_REJECT.c | 1 + net/ipv6/raw.c | 1 + net/ipv6/route.c | 4 ++++ net/ipv6/sit.c | 7 +++++-- net/ipv6/tcp_ipv6.c | 6 ++++++ net/ipv6/udp.c | 1 + net/ipv6/xfrm6_policy.c | 5 ++++- net/netfilter/nf_conntrack_h323_main.c | 2 ++ net/rxrpc/ar-peer.c | 1 + net/sctp/ipv6.c | 2 ++ net/sctp/protocol.c | 1 + net/xfrm/xfrm_policy.c | 1 + 53 files changed, 151 insertions(+), 41 deletions(-)
drivers/infiniband/core/addr.c +2 -0
@@ -157,6 +157,7 @@ static void addr_send_arp(struct sockaddr_in *dst_in)u32 dst_ip = dst_in->sin_addr.s_addr;memset (&fl,0 ,sizeof fl); + fl.fl_net = &init_net; fl.nl_u.ip4_u.daddr = dst_ip;if (ip_route_output_key (&rt, &fl))return ;
@@ -177,6 +178,7 @@ static int addr_resolve_remote(struct sockaddr_in *src_in,int ret;memset (&fl,0 ,sizeof fl); + fl.fl_net = &init_net; fl.nl_u.ip4_u.daddr = dst_ip; fl.nl_u.ip4_u.saddr = src_ip; ret =ip_route_output_key (&rt, &fl);
drivers/infiniband/hw/cxgb3/iwch_cm.c +2 -1
@@ -329,7 +329,8 @@ static struct rtable *find_route(struct t3cdev *dev, __be32 local_ip, .ports = { .sport = local_port, .dport = peer_port} - } + }, + .fl_net = &init_net, };if (ip_route_output_flow (&rt, &fl,NULL ,0 ))
drivers/net/bonding/bond_main.c +1 -0
@@ -2508,6 +2508,7 @@ static void bond_arp_send_all(struct bonding *bond, struct slave *slave)* can tag the ARP with the proper VLAN tag. */ memset (&fl,0 ,sizeof (fl)); + fl.fl_net = &init_net; fl.fl4_dst = targets[i]; fl.fl4_tos =RTO_ONLINK ;
include/net/route.h +3 -1
@@ -147,7 +147,8 @@ static inline int ip_route_connect(struct rtable **rp, __be32 dst, __be16 sport, __be16 dport, struct sock *sk, int flags) { - struct flowi fl = { .oif = oif, + struct flowi fl = { .fl_net = &init_net, + .oif = oif, .nl_u = { .ip4_u = { .daddr = dst, .saddr = src, .tos = tos } },
@@ -178,6 +179,7 @@ static inline int ip_route_newports(struct rtable **rp, u8 protocol,struct flowi fl;memcpy (&fl, &(*rp)->fl,sizeof (fl)); + fl.fl_net = &init_net; fl.fl_ip_sport = sport; fl.fl_ip_dport = dport; fl.proto = protocol;
net/atm/clip.c +4 -1
@@ -517,7 +517,10 @@ static int clip_setentry(struct atm_vcc *vcc, __be32 ip)struct atmarp_entry *entry;int error;struct clip_vcc *clip_vcc; -struct flowi fl = { .nl_u = { .ip4_u = { .daddr = ip, .tos =1 }} }; +struct flowi fl = { + .fl_net = &init_net, + .nl_u = { .ip4_u = { .daddr = ip, .tos =1 }} + };struct rtable *rt;if (vcc->push != clip_push) {
net/bridge/br_netfilter.c +1 -0
@@ -310,6 +310,7 @@ static int br_nf_pre_routing_finish(struct sk_buff *skb)if ((err =ip_route_input (skb, iph->daddr, iph->saddr, iph->tos, dev))) {struct rtable *rt;struct flowi fl = { + .fl_net = &init_net, .nl_u = { .ip4_u = { .daddr = iph->daddr,
net/dccp/ipv4.c +2 -1
@@ -456,7 +456,8 @@ static struct dst_entry* dccp_v4_route_skb(struct sock *sk, struct sk_buff *skb) {struct rtable *rt; -struct flowi fl = { .oif = ((struct rtable *)skb->dst)->rt_iif, +struct flowi fl = { .fl_net = &init_net, + .oif = ((struct rtable *)skb->dst)->rt_iif, .nl_u = { .ip4_u = { .daddr =ip_hdr (skb)->saddr, .saddr =ip_hdr (skb)->daddr,
net/dccp/ipv6.c +5 -0
@@ -142,6 +142,7 @@ static void dccp_v6_err(struct sk_buff *skb, struct inet6_skb_parm *opt,for now. */ memset (&fl,0 ,sizeof (fl)); + fl.fl_net = &init_net; fl.proto =IPPROTO_DCCP ;ipv6_addr_copy (&fl.fl6_dst, &np->daddr);ipv6_addr_copy (&fl.fl6_src, &np->saddr);
@@ -242,6 +243,7 @@ static int dccp_v6_send_response(struct sock *sk, struct request_sock *req,int err =-1 ;memset (&fl,0 ,sizeof (fl)); + fl.fl_net = &init_net, fl.proto =IPPROTO_DCCP ;ipv6_addr_copy (&fl.fl6_dst, &ireq6->rmt_addr);ipv6_addr_copy (&fl.fl6_src, &ireq6->loc_addr);
@@ -320,6 +322,7 @@ static void dccp_v6_ctl_send_reset(struct sock *sk, struct sk_buff *rxskb) &rxip6h->daddr);memset (&fl,0 ,sizeof (fl)); + fl.fl_net = &init_net;ipv6_addr_copy (&fl.fl6_dst, &rxip6h->saddr);ipv6_addr_copy (&fl.fl6_src, &rxip6h->daddr);
@@ -536,6 +539,7 @@ static struct sock *dccp_v6_request_recv_sock(struct sock *sk,struct flowi fl;memset (&fl,0 ,sizeof (fl)); + fl.fl_net = &init_net; fl.proto =IPPROTO_DCCP ;ipv6_addr_copy (&fl.fl6_dst, &ireq6->rmt_addr);if (opt !=NULL && opt->srcrt !=NULL ) {
@@ -888,6 +892,7 @@ static int dccp_v6_connect(struct sock *sk, struct sockaddr *uaddr,return -EAFNOSUPPORT ;memset (&fl,0 ,sizeof (fl)); + fl.fl_net = &init_net;if (np->sndflow) { fl.fl6_flowlabel = usin->sin6_flowinfo &IPV6_FLOWINFO_MASK ;
net/decnet/af_decnet.c +1 -0
@@ -947,6 +947,7 @@ static int __dn_connect(struct sock *sk, struct sockaddr_dn *addr, int addrlen, err = -EHOSTUNREACH ;memset (&fl,0 ,sizeof (fl)); + fl.fl_net = &init_net; fl.oif = sk->sk_bound_dev_if; fl.fld_dst =dn_saddr2dn (&scp->peer); fl.fld_src =dn_saddr2dn (&scp->addr);
net/decnet/dn_fib.c +1 -0
@@ -221,6 +221,7 @@ static int dn_fib_check_nh(const struct rtmsg *r, struct dn_fib_info *fi, struct }memset (&fl,0 ,sizeof (fl)); + fl.fl_net = &init_net; fl.fld_dst = nh->nh_gw; fl.oif = nh->nh_oif; fl.fld_scope = r->rtm_scope +1 ;
net/decnet/dn_nsp_out.c +1 -0
@@ -91,6 +91,7 @@ try_again: }memset (&fl,0 ,sizeof (fl)); + fl.fl_net = &init_net; fl.oif = sk->sk_bound_dev_if; fl.fld_src =dn_saddr2dn (&scp->addr); fl.fld_dst =dn_saddr2dn (&scp->peer);
net/decnet/dn_route.c +5 -2
@@ -866,7 +866,8 @@ static inline __le16 dn_fib_rules_map_destination(__le16 daddr, struct dn_fib_restatic int dn_route_output_slow (struct dst_entry **pprt,const struct flowi *oldflp,int try_hard) { -struct flowi fl = { .nl_u = { .dn_u = +struct flowi fl = { .fl_net = &init_net, + .nl_u = { .dn_u = { .daddr = oldflp->fld_dst, .saddr = oldflp->fld_src, .scope =RT_SCOPE_UNIVERSE ,
@@ -1213,7 +1214,8 @@ static int dn_route_input_slow(struct sk_buff *skb)int flags =0 ;__le16 gateway =0 ;__le16 local_src =0 ; -struct flowi fl = { .nl_u = { .dn_u = +struct flowi fl = { .fl_net = &init_net, + .nl_u = { .dn_u = { .daddr = cb->dst, .saddr = cb->src, .scope =RT_SCOPE_UNIVERSE ,
@@ -1524,6 +1526,7 @@ static int dn_cache_getroute(struct sk_buff *in_skb, struct nlmsghdr *nlh, voidreturn -EINVAL ;memset (&fl,0 ,sizeof (fl)); + fl.fl_net = &init_net; fl.proto =DNPROTO_NSP ; skb =alloc_skb (NLMSG_GOODSIZE ,GFP_KERNEL );
net/decnet/dn_rules.c +4 -1
@@ -175,7 +175,10 @@ static int dn_fib_rule_compare(struct fib_rule *rule, struct fib_rule_hdr *frh,unsigned dnet_addr_type (__le16 addr) { -struct flowi fl = { .nl_u = { .dn_u = { .daddr = addr } } }; +struct flowi fl = { + .fl_net = &init_net, + .nl_u = { .dn_u = { .daddr = addr } } + };struct dn_fib_res res;unsigned ret =RTN_UNICAST ;struct dn_fib_table *tb =dn_fib_get_table (RT_TABLE_LOCAL ,0 );
net/ipv4/af_inet.c +1 -0
@@ -1089,6 +1089,7 @@ int inet_sk_rebuild_header(struct sock *sk) daddr = inet->opt->faddr; {struct flowi fl = { + .fl_net = &init_net, .oif = sk->sk_bound_dev_if, .nl_u = { .ip4_u = {
net/ipv4/arp.c +12 -6
@@ -420,8 +420,10 @@ static int arp_ignore(struct in_device *in_dev, struct net_device *dev,static int arp_filter (__be32 sip,__be32 tip,struct net_device *dev) { -struct flowi fl = { .nl_u = { .ip4_u = { .daddr = sip, - .saddr = tip } } }; +struct flowi fl = { + .fl_net = &init_net, + .nl_u = { .ip4_u = { .daddr = sip, .saddr = tip } } + };struct rtable *rt;int flag =0 ;/*unsigned long now; */
@@ -987,8 +989,10 @@ static int arp_req_set(struct arpreq *r, struct net_device * dev)if (r->arp_flags &ATF_PERM ) r->arp_flags |=ATF_COM ;if (dev ==NULL ) { -struct flowi fl = { .nl_u = { .ip4_u = { .daddr = ip, - .tos =RTO_ONLINK } } }; +struct flowi fl = { + .fl_net = &init_net, + .nl_u = { .ip4_u = { .daddr = ip, .tos =RTO_ONLINK } } + };struct rtable * rt;if ((err =ip_route_output_key (&rt, &fl)) !=0 )return err;
@@ -1094,8 +1098,10 @@ static int arp_req_delete(struct arpreq *r, struct net_device * dev) }if (dev ==NULL ) { -struct flowi fl = { .nl_u = { .ip4_u = { .daddr = ip, - .tos =RTO_ONLINK } } }; +struct flowi fl = { + .fl_net = &init_net, + .nl_u = { .ip4_u = { .daddr = ip, .tos =RTO_ONLINK } } + };struct rtable * rt;if ((err =ip_route_output_key (&rt, &fl)) !=0 )return err;
net/ipv4/fib_frontend.c +12 -4
@@ -132,7 +132,10 @@ static void fib_flush(void)struct net_device *ip_dev_find (__be32 addr) { -struct flowi fl = { .nl_u = { .ip4_u = { .daddr = addr } } }; +struct flowi fl = { + .fl_net = &init_net, + .nl_u = { .ip4_u = { .daddr = addr } } + };struct fib_result res;struct net_device *dev =NULL ;struct fib_table *local_table;
@@ -157,7 +160,10 @@ out:unsigned inet_addr_type (__be32 addr) { -struct flowi fl = { .nl_u = { .ip4_u = { .daddr = addr } } }; +struct flowi fl = { + .fl_net = &init_net, + .nl_u = { .ip4_u = { .daddr = addr } } + };struct fib_result res;unsigned ret =RTN_BROADCAST ;struct fib_table *local_table;
@@ -194,7 +200,8 @@ int fib_validate_source(__be32 src, __be32 dst, u8 tos, int oif, struct net_device *dev, __be32 *spec_dst, u32 *itag) { struct in_device *in_dev; - struct flowi fl = { .nl_u = { .ip4_u = + struct flowi fl = { .fl_net = &init_net, + .nl_u = { .ip4_u = { .daddr = src, .saddr = dst, .tos = tos } },
@@ -780,7 +787,8 @@ static void nl_fib_lookup(struct fib_result_nl *frn, struct fib_table *tb ) {struct fib_result res; -struct flowi fl = { .mark = frn->fl_mark, +struct flowi fl = { .fl_net = &init_net, + .mark = frn->fl_mark, .nl_u = { .ip4_u = { .daddr = frn->fl_addr, .tos = frn->fl_tos, .scope = frn->fl_scope } } };
net/ipv4/fib_semantics.c +1 -0
@@ -544,6 +544,7 @@ static int fib_check_nh(struct fib_config *cfg, struct fib_info *fi, } {struct flowi fl = { + .fl_net = &init_net, .nl_u = { .ip4_u = { .daddr = nh->nh_gw,
net/ipv4/icmp.c +3 -1
@@ -397,7 +397,8 @@ static void icmp_reply(struct icmp_bxm *icmp_param, struct sk_buff *skb) daddr = icmp_param->replyopts.faddr; } { -struct flowi fl = { .nl_u = { .ip4_u = +struct flowi fl = { .fl_net = &init_net, + .nl_u = { .ip4_u = { .daddr = daddr, .saddr = rt->rt_spec_dst, .tos =RT_TOS (ip_hdr (skb)->tos) } },
@@ -547,6 +548,7 @@ void icmp_send(struct sk_buff *skb_in, int type, int code, __be32 info) {struct flowi fl = { + .fl_net = &init_net, .nl_u = { .ip4_u = { .daddr = icmp_param.replyopts.srr ?
net/ipv4/igmp.c +8 -4
@@ -297,7 +297,8 @@ static struct sk_buff *igmpv3_newpack(struct net_device *dev, int size)return NULL ; { -struct flowi fl = { .oif = dev->ifindex, +struct flowi fl = { .fl_net = &init_net, + .oif = dev->ifindex, .nl_u = { .ip4_u = { .daddr =IGMPV3_ALL_MCR } }, .proto =IPPROTO_IGMP };
@@ -642,7 +643,8 @@ static int igmp_send_report(struct in_device *in_dev, struct ip_mc_list *pmc, dst = group; { -struct flowi fl = { .oif = dev->ifindex, +struct flowi fl = { .fl_net = &init_net, + .oif = dev->ifindex, .nl_u = { .ip4_u = { .daddr = dst } }, .proto =IPPROTO_IGMP };if (ip_route_output_key (&rt, &fl))
@@ -1382,8 +1384,10 @@ void ip_mc_destroy_dev(struct in_device *in_dev)static struct in_device *ip_mc_find_dev (struct ip_mreqn *imr) { -struct flowi fl = { .nl_u = { .ip4_u = - { .daddr = imr->imr_multiaddr.s_addr } } }; +struct flowi fl = { + .fl_net = &init_net, + .nl_u = { .ip4_u = { .daddr = imr->imr_multiaddr.s_addr } } + };struct rtable *rt;struct net_device *dev =NULL ;struct in_device *idev =NULL ;
net/ipv4/inet_connection_sock.c +2 -1
@@ -320,7 +320,8 @@ struct dst_entry* inet_csk_route_req(struct sock *sk,struct rtable *rt;const struct inet_request_sock *ireq =inet_rsk (req);struct ip_options *opt =inet_rsk (req)->opt; -struct flowi fl = { .oif = sk->sk_bound_dev_if, +struct flowi fl = { .fl_net = &init_net, + .oif = sk->sk_bound_dev_if, .nl_u = { .ip4_u = { .daddr = ((opt && opt->srr) ? opt->faddr :
net/ipv4/ip_gre.c +7 -3
@@ -475,6 +475,7 @@ out:/* Try to guess incoming interface */ memset (&fl,0 ,sizeof (fl)); + fl.fl_net = &init_net; fl.fl4_dst = eiph->saddr; fl.fl4_tos =RT_TOS (eiph->tos); fl.proto =IPPROTO_GRE ;
@@ -740,7 +741,8 @@ static int ipgre_tunnel_xmit(struct sk_buff *skb, struct net_device *dev) } { -struct flowi fl = { .oif = tunnel->parms.link, +struct flowi fl = { .fl_net = &init_net, + .oif = tunnel->parms.link, .nl_u = { .ip4_u = { .daddr = dst, .saddr = tiph->saddr,
@@ -1109,7 +1111,8 @@ static int ipgre_open(struct net_device *dev)struct ip_tunnel *t =netdev_priv (dev);if (MULTICAST (t->parms.iph.daddr)) { -struct flowi fl = { .oif = t->parms.link, +struct flowi fl = { .fl_net = &init_net, + .oif = t->parms.link, .nl_u = { .ip4_u = { .daddr = t->parms.iph.daddr, .saddr = t->parms.iph.saddr,
@@ -1181,7 +1184,8 @@ static int ipgre_tunnel_init(struct net_device *dev)/* Guess output device to choose reasonable mtu and hard_header_len */ if (iph->daddr) { -struct flowi fl = { .oif = tunnel->parms.link, +struct flowi fl = { .fl_net = &init_net, + .oif = tunnel->parms.link, .nl_u = { .ip4_u = { .daddr = iph->daddr, .saddr = iph->saddr,
net/ipv4/ip_output.c +4 -2
@@ -335,7 +335,8 @@ int ip_queue_xmit(struct sk_buff *skb, int ipfragok) daddr = opt->faddr; { -struct flowi fl = { .oif = sk->sk_bound_dev_if, +struct flowi fl = { .fl_net = &init_net, + .oif = sk->sk_bound_dev_if, .nl_u = { .ip4_u = { .daddr = daddr, .saddr = inet->saddr,
@@ -1368,7 +1369,8 @@ void ip_send_reply(struct sock *sk, struct sk_buff *skb, struct ip_reply_arg *ar } { -struct flowi fl = { .oif = arg->bound_dev_if, +struct flowi fl = { .fl_net = &init_net, + .oif = arg->bound_dev_if, .nl_u = { .ip4_u = { .daddr = daddr, .saddr = rt->rt_spec_dst,
net/ipv4/ipip.c +5 -2
@@ -402,6 +402,7 @@ out:/* Try to guess incoming interface */ memset (&fl,0 ,sizeof (fl)); + fl.fl_net = &init_net; fl.fl4_daddr = eiph->saddr; fl.fl4_tos =RT_TOS (eiph->tos); fl.proto =IPPROTO_IPIP ;
@@ -541,7 +542,8 @@ static int ipip_tunnel_xmit(struct sk_buff *skb, struct net_device *dev) } { -struct flowi fl = { .oif = tunnel->parms.link, +struct flowi fl = { .fl_net = &init_net, + .oif = tunnel->parms.link, .nl_u = { .ip4_u = { .daddr = dst, .saddr = tiph->saddr,
@@ -805,7 +807,8 @@ static int ipip_tunnel_init(struct net_device *dev)memcpy (dev->broadcast, &tunnel->parms.iph.daddr,4 );if (iph->daddr) { -struct flowi fl = { .oif = tunnel->parms.link, +struct flowi fl = { .fl_net = &init_net, + .oif = tunnel->parms.link, .nl_u = { .ip4_u = { .daddr = iph->daddr, .saddr = iph->saddr,
net/ipv4/ipmr.c +4 -2
@@ -1177,7 +1177,8 @@ static void ipmr_queue_xmit(struct sk_buff *skb, struct mfc_cache *c, int vifi)#endif if (vif->flags&VIFF_TUNNEL ) { -struct flowi fl = { .oif = vif->link, +struct flowi fl = { .fl_net = &init_net, + .oif = vif->link, .nl_u = { .ip4_u = { .daddr = vif->remote, .saddr = vif->local,
@@ -1187,7 +1188,8 @@ static void ipmr_queue_xmit(struct sk_buff *skb, struct mfc_cache *c, int vifi) goto out_free; encap =sizeof (struct iphdr ); }else { -struct flowi fl = { .oif = vif->link, +struct flowi fl = { .fl_net = &init_net, + .oif = vif->link, .nl_u = { .ip4_u = { .daddr = iph->daddr, .tos = RT_TOS(iph->tos) } },
net/ipv4/ipvs/ip_vs_xmit.c +3 -0
@@ -70,6 +70,7 @@ __ip_vs_get_out_rt(struct ip_vs_conn *cp, u32 rtos)if (!(rt = (struct rtable *)__ip_vs_dst_check (dest, rtos,0 ))) {struct flowi fl = { + .fl_net = &init_net, .oif =0 , .nl_u = { .ip4_u = {
@@ -93,6 +94,7 @@ __ip_vs_get_out_rt(struct ip_vs_conn *cp, u32 rtos)spin_unlock (&dest->dst_lock); }else {struct flowi fl = { + .fl_net = &init_net, .oif =0 , .nl_u = { .ip4_u = {
@@ -160,6 +162,7 @@ ip_vs_bypass_xmit(struct sk_buff *skb, struct ip_vs_conn *cp,u8 tos = iph->tos;int mtu;struct flowi fl = { + .fl_net = &init_net, .oif =0 , .nl_u = { .ip4_u = {
net/ipv4/netfilter.c +1 -0
@@ -18,6 +18,7 @@ int ip_route_me_harder(struct sk_buff *skb, unsigned addr_type)unsigned int hh_len;unsigned int type; + fl.fl_net = &init_net; type =inet_addr_type (iph->saddr);if (addr_type ==RTN_UNSPEC ) addr_type = type;
net/ipv4/netfilter/nf_nat_rule.c +4 -1
@@ -94,7 +94,10 @@ static unsigned int ipt_snat_target(struct sk_buff *skb,static void warn_if_extra_mangle (__be32 dstip,__be32 srcip) {static int warned =0 ; -struct flowi fl = { .nl_u = { .ip4_u = { .daddr = dstip } } }; +struct flowi fl = { + .fl_net = &init_net, + .nl_u = { .ip4_u = { .daddr = dstip } } + };struct rtable *rt;if (ip_route_output_key (&rt, &fl) !=0 )
net/ipv4/raw.c +2 -1
@@ -536,7 +536,8 @@ static int raw_sendmsg(struct kiocb *iocb, struct sock *sk, struct msghdr *msg, } { -struct flowi fl = { .oif = ipc.oif, +struct flowi fl = { .fl_net = &init_net, + .oif = ipc.oif, .nl_u = { .ip4_u = { .daddr = daddr, .saddr = saddr,
net/ipv4/route.c +5 -2
@@ -1777,7 +1777,8 @@ static int ip_route_input_slow(struct sk_buff *skb, __be32 daddr, __be32 saddr, {struct fib_result res;struct in_device *in_dev =in_dev_get (dev); -struct flowi fl = { .nl_u = { .ip4_u = +struct flowi fl = { .fl_net = &init_net, + .nl_u = { .ip4_u = { .daddr = daddr, .saddr = saddr, .tos = tos,
@@ -2156,7 +2157,8 @@ static inline int ip_mkroute_output(struct rtable **rp,static int ip_route_output_slow (struct rtable **rp,const struct flowi *oldflp) {u32 tos =RT_FL_TOS (oldflp); -struct flowi fl = { .nl_u = { .ip4_u = +struct flowi fl = { .fl_net = &init_net, + .nl_u = { .ip4_u = { .daddr = oldflp->fl4_dst, .saddr = oldflp->fl4_src, .tos = tos &IPTOS_RT_MASK ,
@@ -2618,6 +2620,7 @@ static int inet_rtm_getroute(struct sk_buff *in_skb, struct nlmsghdr* nlh, void err = -rt->u.dst.error; }else {struct flowi fl = { + .fl_net = &init_net, .nl_u = { .ip4_u = { .daddr = dst,
net/ipv4/syncookies.c +2 -1
@@ -253,7 +253,8 @@ struct sock *cookie_v4_check(struct sock *sk, struct sk_buff *skb,* no easy way to do this. */ { -struct flowi fl = { .nl_u = { .ip4_u = +struct flowi fl = { .fl_net = &init_net, + .nl_u = { .ip4_u = { .daddr = ((opt && opt->srr) ? opt->faddr : ireq->rmt_addr),
net/ipv4/udp.c +2 -1
@@ -633,7 +633,8 @@ int udp_sendmsg(struct kiocb *iocb, struct sock *sk, struct msghdr *msg, rt = (struct rtable *)sk_dst_check (sk,0 );if (rt ==NULL ) { -struct flowi fl = { .oif = ipc.oif, +struct flowi fl = { .fl_net = &init_net, + .oif = ipc.oif, .nl_u = { .ip4_u = { .daddr = faddr, .saddr = saddr,
net/ipv4/xfrm4_policy.c +2 -0
@@ -22,6 +22,7 @@ static struct dst_entry *xfrm4_dst_lookup(int tos, xfrm_address_t *saddr, xfrm_address_t *daddr) {struct flowi fl = { + .fl_net = &init_net, .nl_u = { .ip4_u = { .tos = tos,
@@ -121,6 +122,7 @@ _decode_session4(struct sk_buff *skb, struct flowi *fl)u8 *xprth =skb_network_header (skb) + iph->ihl *4 ;memset (fl,0 ,sizeof (struct flowi )); + fl->fl_net = &init_net;if (!(iph->frag_off &htons (IP_MF |IP_OFFSET ))) {switch (iph->protocol) {case IPPROTO_UDP :
net/ipv6/af_inet6.c +1 -0
@@ -653,6 +653,7 @@ int inet6_sk_rebuild_header(struct sock *sk)struct flowi fl;memset (&fl,0 ,sizeof (fl)); + fl.fl_net = &init_net; fl.proto = sk->sk_protocol;ipv6_addr_copy (&fl.fl6_dst, &np->daddr);ipv6_addr_copy (&fl.fl6_src, &np->saddr);
net/ipv6/datagram.c +1 -0
@@ -60,6 +60,7 @@ int ip6_datagram_connect(struct sock *sk, struct sockaddr *uaddr, int addr_len)return -EAFNOSUPPORT ;memset (&fl,0 ,sizeof (fl)); + fl.fl_net = &init_net;if (np->sndflow) { fl.fl6_flowlabel = usin->sin6_flowinfo&IPV6_FLOWINFO_MASK ;if (fl.fl6_flowlabel&IPV6_FLOWLABEL_MASK ) {
net/ipv6/icmp.c +2 -0
@@ -379,6 +379,7 @@ void icmpv6_send(struct sk_buff *skb, int type, int code, __u32 info,mip6_addr_swap (skb);memset (&fl,0 ,sizeof (fl)); + fl.fl_net = &init_net; fl.proto =IPPROTO_ICMPV6 ;ipv6_addr_copy (&fl.fl6_dst, &hdr->saddr);if (saddr)
@@ -495,6 +496,7 @@ static void icmpv6_echo_reply(struct sk_buff *skb) tmp_hdr.icmp6_type =ICMPV6_ECHO_REPLY ;memset (&fl,0 ,sizeof (fl)); + fl.fl_net = &init_net; fl.proto =IPPROTO_ICMPV6 ;ipv6_addr_copy (&fl.fl6_dst, &ipv6_hdr (skb)->saddr);if (saddr)
net/ipv6/inet6_connection_sock.c +1 -0
@@ -184,6 +184,7 @@ int inet6_csk_xmit(struct sk_buff *skb, int ipfragok)struct in6_addr *final_p =NULL , final;memset (&fl,0 ,sizeof (fl)); + fl.fl_net = &init_net; fl.proto = sk->sk_protocol;ipv6_addr_copy (&fl.fl6_dst, &np->daddr);ipv6_addr_copy (&fl.fl6_src, &np->saddr);
net/ipv6/ip6_flowlabel.c +1 -0
@@ -329,6 +329,7 @@ fl_create(struct in6_flowlabel_req *freq, char __user *optval, int optlen, int * msg.msg_controllen = olen; msg.msg_control = (void *)(fl->opt+1 ); + flowi.fl_net = &init_net; flowi.oif =0 ; err =datagram_send_ctl (&msg, &flowi, fl->opt, &junk, &junk);
net/ipv6/ip6_tunnel.c +1 -0
@@ -530,6 +530,7 @@ ip4ip6_err(struct sk_buff *skb, struct inet6_skb_parm *opt,/* Try to guess incoming interface */ memset (&fl,0 ,sizeof (fl)); + fl.fl_net = &init_net; fl.fl4_dst = eiph->saddr; fl.fl4_tos =RT_TOS (eiph->tos); fl.proto =IPPROTO_IPIP ;
net/ipv6/ipv6_sockglue.c +1 -0
@@ -458,6 +458,7 @@ sticky_done:struct flowi fl;int junk; + fl.fl_net = &init_net; fl.fl6_flowlabel =0 ; fl.oif = sk->sk_bound_dev_if;
net/ipv6/ndisc.c +1 -0
@@ -447,6 +447,7 @@ static inline void ndisc_flow_init(struct flowi *fl, u8 type, int oif) {memset (fl,0 ,sizeof (*fl)); + fl->fl_net = &init_net;ipv6_addr_copy (&fl->fl6_src, saddr);ipv6_addr_copy (&fl->fl6_dst, daddr); fl->proto =IPPROTO_ICMPV6 ;
net/ipv6/netfilter.c +1 -0
@@ -14,6 +14,7 @@ int ip6_route_me_harder(struct sk_buff *skb)struct ipv6hdr *iph =ipv6_hdr (skb);struct dst_entry *dst;struct flowi fl = { + .fl_net = &init_net, .oif = skb->sk ? skb->sk->sk_bound_dev_if :0 , .mark = skb->mark, .nl_u =
net/ipv6/netfilter/ip6t_REJECT.c +1 -0
@@ -87,6 +87,7 @@ static void send_reset(struct sk_buff *oldskb) }memset (&fl,0 ,sizeof (fl)); + fl.fl_net = &init_net; fl.proto =IPPROTO_TCP ;ipv6_addr_copy (&fl.fl6_src, &oip6h->daddr);ipv6_addr_copy (&fl.fl6_dst, &oip6h->saddr);
net/ipv6/raw.c +1 -0
@@ -757,6 +757,7 @@ static int rawv6_sendmsg(struct kiocb *iocb, struct sock *sk,* Get and verify the address. */ memset (&fl,0 ,sizeof (fl)); + fl.fl_net = &init_net;if (sin6) {if (addr_len <SIN6_LEN_RFC2133 )
net/ipv6/route.c +4 -0
@@ -554,6 +554,7 @@ struct rt6_info *rt6_lookup(struct in6_addr *daddr, struct in6_addr *saddr, int oif, int strict) {struct flowi fl = { + .fl_net = &init_net, .oif = oif, .nl_u = { .ip6_u = {
@@ -738,6 +739,7 @@ void ip6_route_input(struct sk_buff *skb)struct ipv6hdr *iph =ipv6_hdr (skb);int flags =RT6_LOOKUP_F_HAS_SADDR ;struct flowi fl = { + .fl_net = &init_net, .iif = skb->dev->ifindex, .nl_u = { .ip6_u = {
@@ -1369,6 +1371,7 @@ static struct rt6_info *ip6_route_redirect(struct in6_addr *dest,int flags =RT6_LOOKUP_F_HAS_SADDR ;struct ip6rd_flowi rdfl = { .fl = { + .fl_net = &init_net, .oif = dev->ifindex, .nl_u = { .ip6_u = {
@@ -2174,6 +2177,7 @@ static int inet6_rtm_getroute(struct sk_buff *in_skb, struct nlmsghdr* nlh, void err = -EINVAL ;memset (&fl,0 ,sizeof (fl)); + fl.fl_net = &init_net;if (tb[RTA_SRC ]) {if (nla_len (tb[RTA_SRC ]) <sizeof (struct in6_addr ))
net/ipv6/sit.c +5 -2
@@ -391,6 +391,7 @@ isatap_srcok(struct sk_buff *skb, struct iphdr *iph, struct net_device *dev) iph6 =ipv6_hdr (skb);memset (&fl,0 ,sizeof (fl)); + fl.fl_net = &init_net; fl.proto = iph6->nexthdr;ipv6_addr_copy (&fl.fl6_dst, &iph6->saddr); fl.oif = dev->ifindex;
@@ -551,7 +552,8 @@ static int ipip6_tunnel_xmit(struct sk_buff *skb, struct net_device *dev) } { -struct flowi fl = { .nl_u = { .ip4_u = +struct flowi fl = { .fl_net = &init_net, + .nl_u = { .ip4_u = { .daddr = dst, .saddr = tiph->saddr, .tos =RT_TOS (tos) } },
@@ -822,7 +824,8 @@ static int ipip6_tunnel_init(struct net_device *dev)memcpy (dev->broadcast, &tunnel->parms.iph.daddr,4 );if (iph->daddr) { -struct flowi fl = { .nl_u = { .ip4_u = +struct flowi fl = { .fl_net = &init_net, + .nl_u = { .ip4_u = { .daddr = iph->daddr, .saddr = iph->saddr, .tos =RT_TOS (iph->tos) } },
net/ipv6/tcp_ipv6.c +6 -0
@@ -142,6 +142,7 @@ static int tcp_v6_connect(struct sock *sk, struct sockaddr *uaddr,return (-EAFNOSUPPORT );memset (&fl,0 ,sizeof (fl)); + fl.fl_net = &init_net;if (np->sndflow) { fl.fl6_flowlabel = usin->sin6_flowinfo&IPV6_FLOWINFO_MASK ;
@@ -380,6 +381,7 @@ static void tcp_v6_err(struct sk_buff *skb, struct inet6_skb_parm *opt,for now. */ memset (&fl,0 ,sizeof (fl)); + fl.fl_net = &init_net; fl.proto =IPPROTO_TCP ;ipv6_addr_copy (&fl.fl6_dst, &np->daddr);ipv6_addr_copy (&fl.fl6_src, &np->saddr);
@@ -473,6 +475,7 @@ static int tcp_v6_send_synack(struct sock *sk, struct request_sock *req,int err =-1 ;memset (&fl,0 ,sizeof (fl)); + fl.fl_net = &init_net; fl.proto =IPPROTO_TCP ;ipv6_addr_copy (&fl.fl6_dst, &treq->rmt_addr);ipv6_addr_copy (&fl.fl6_src, &treq->loc_addr);
@@ -1052,6 +1055,7 @@ static void tcp_v6_send_reset(struct sock *sk, struct sk_buff *skb) buff->csum =csum_partial ((char *)t1,sizeof (*t1),0 );memset (&fl,0 ,sizeof (fl)); + fl.fl_net = &init_net;ipv6_addr_copy (&fl.fl6_dst, &ipv6_hdr (skb)->saddr);ipv6_addr_copy (&fl.fl6_src, &ipv6_hdr (skb)->daddr);
@@ -1153,6 +1157,7 @@ static void tcp_v6_send_ack(struct tcp_timewait_sock *tw, buff->csum =csum_partial ((char *)t1, tot_len,0 );memset (&fl,0 ,sizeof (fl)); + fl.fl_net = &init_net;ipv6_addr_copy (&fl.fl6_dst, &ipv6_hdr (skb)->saddr);ipv6_addr_copy (&fl.fl6_src, &ipv6_hdr (skb)->daddr);
@@ -1391,6 +1396,7 @@ static struct sock * tcp_v6_syn_recv_sock(struct sock *sk, struct sk_buff *skb,struct flowi fl;memset (&fl,0 ,sizeof (fl)); + fl.fl_net = &init_net; fl.proto =IPPROTO_TCP ;ipv6_addr_copy (&fl.fl6_dst, &treq->rmt_addr);if (opt && opt->srcrt) {
net/ipv6/udp.c +1 -0
@@ -652,6 +652,7 @@ do_udp_sendmsg: ulen +=sizeof (struct udphdr );memset (&fl,0 ,sizeof (fl)); + fl.fl_net = &init_net;if (sin6) {if (sin6->sin6_port ==0 )
net/ipv6/xfrm6_policy.c +4 -1
@@ -30,7 +30,9 @@ static struct xfrm_policy_afinfo xfrm6_policy_afinfo;static struct dst_entry *xfrm6_dst_lookup (int tos,xfrm_address_t *saddr,xfrm_address_t *daddr) { -struct flowi fl = {}; +struct flowi fl = { + .fl_net = &init_net, + };struct dst_entry *dst;int err;
@@ -133,6 +135,7 @@ _decode_session6(struct sk_buff *skb, struct flowi *fl)u8 nexthdr = nh[IP6CB (skb)->nhoff];memset (fl,0 ,sizeof (struct flowi )); + fl->fl_net = &init_net;ipv6_addr_copy (&fl->fl6_dst, &hdr->daddr);ipv6_addr_copy (&fl->fl6_src, &hdr->saddr);
net/netfilter/nf_conntrack_h323_main.c +2 -0
@@ -713,6 +713,8 @@ static int callforward_do_filter(union nf_conntrack_address *src,memset (&fl1,0 ,sizeof (fl1));memset (&fl2,0 ,sizeof (fl2)); + fl1.fl_net = &init_net; + fl2.fl_net = &init_net;switch (family) {case AF_INET : {
net/rxrpc/ar-peer.c +1 -0
@@ -41,6 +41,7 @@ static void rxrpc_assess_MTU_size(struct rxrpc_peer *peer) peer->if_mtu =1500 ;memset (&fl,0 ,sizeof (fl)); + fl.fl_net = &init_net;switch (peer->srx.transport.family) {case AF_INET :
net/sctp/ipv6.c +2 -0
@@ -201,6 +201,7 @@ static int sctp_v6_xmit(struct sk_buff *skb, struct sctp_transport *transport,memset (&fl,0 ,sizeof (fl)); + fl.fl_net = &init_net; fl.proto = sk->sk_protocol;/* Fill in the dest address from the route entry passed with the skb
@@ -242,6 +243,7 @@ static struct dst_entry *sctp_v6_get_dst(struct sctp_association *asoc,struct flowi fl;memset (&fl,0 ,sizeof (fl)); + fl.fl_net = &init_net;ipv6_addr_copy (&fl.fl6_dst, &daddr->v6.sin6_addr);if (ipv6_addr_type (&daddr->v6.sin6_addr) &IPV6_ADDR_LINKLOCAL ) fl.oif = daddr->v6.sin6_scope_id;
net/sctp/protocol.c +1 -0
@@ -439,6 +439,7 @@ static struct dst_entry *sctp_v4_get_dst(struct sctp_association *asoc,union sctp_addr dst_saddr;memset (&fl,0x0 ,sizeof (struct flowi )); + fl.fl_net = &init_net; fl.fl4_dst = daddr->v4.sin_addr.s_addr; fl.proto =IPPROTO_SCTP ;if (asoc) {
net/xfrm/xfrm_policy.c +1 -0
@@ -1738,6 +1738,7 @@ xfrm_decode_session(struct sk_buff *skb, struct flowi *fl, unsigned short familyif (unlikely (afinfo ==NULL ))return -EAFNOSUPPORT ; + fl->fl_net = &init_net; afinfo->decode_session (skb, fl); err =security_xfrm_decode_session (skb, &fl->secid);xfrm_policy_put_afinfo (afinfo);
Signature · 1 line
1.5.3.rc5