Hello, On Mon, 7 Sep 2015, Simon Horman wrote: > [CC Julian, lvs-dev] > > Hi Alex, Hi All, > > On Tue, Sep 01, 2015 at 10:03:31AM +0800, kbuild test robot wrote: > > tree: git://git.kernel.org/pub/scm/linux/kernel/git/horms/ipvs-next.git master > > head: 5e26b1b3abce05c177feb589260031519a1bc7b1 > > commit: 5e26b1b3abce05c177feb589260031519a1bc7b1 [14/14] ipvs: support scheduling inverse and icmp SCTP packets > > config: x86_64-randconfig-x001-201535 (attached as .config) > > reproduce: > > git checkout 5e26b1b3abce05c177feb589260031519a1bc7b1 > > # save the attached .config to linux build tree > > make ARCH=x86_64 > > > > Note: it may well be a FALSE warning. FWIW you are at least aware of it now. > > http://gcc.gnu.org/wiki/Better_Uninitialized_Warnings > > > > All warnings (new ones prefixed by >>): > > > > In file included from net/netfilter/ipvs/ip_vs_proto_sctp.c:9:0: > > net/netfilter/ipvs/ip_vs_proto_sctp.c: In function 'sctp_conn_schedule': > > >> include/net/ip_vs.h:1080:2: warning: 'ipvs' may be used uninitialized in this function [-Wmaybe-uninitialized] > > return ipvs->sysctl_sloppy_sctp; > > ^ > > net/netfilter/ipvs/ip_vs_proto_sctp.c:18:21: note: 'ipvs' was declared here > > struct netns_ipvs *ipvs; > > I wonder if squashing the following into the commit noted above is > a good way to resolve this problem. > > It looks to me that 'ipvs' may indeed be initialised. > But that may be resolved by simply initialising it before rather > than after the call to sctp_conn_schedule() in question. My compiler is silent about this problem :( It needs to be fixed... > My main concern is that rcu_read_lock() may also need to move. Not needed. > diff --git a/net/netfilter/ipvs/ip_vs_proto_sctp.c b/net/netfilter/ipvs/ip_vs_proto_sctp.c > index 2026fca7e1c3..e000e6e76d71 100644 > --- a/net/netfilter/ipvs/ip_vs_proto_sctp.c > +++ b/net/netfilter/ipvs/ip_vs_proto_sctp.c > @@ -13,9 +13,9 @@ sctp_conn_schedule(int af, struct sk_buff *skb, struct ip_vs_proto_data *pd, > int *verdict, struct ip_vs_conn **cpp, > struct ip_vs_iphdr *iph) > { > - struct net *net; > + struct net *net = skb_net(skb); > + struct netns_ipvs *ipvs = net_ipvs(net); > struct ip_vs_service *svc; > - struct netns_ipvs *ipvs; > sctp_chunkhdr_t _schunkh, *sch; > sctp_sctphdr_t *sh, _sctph; > __be16 _ports[2], *ports = NULL; > @@ -40,8 +40,6 @@ sctp_conn_schedule(int af, struct sk_buff *skb, struct ip_vs_proto_data *pd, > return 0; > } > > - net = skb_net(skb); > - ipvs = net_ipvs(net); > rcu_read_lock(); > if (likely(!ip_vs_iph_inverse(iph))) > svc = ip_vs_service_find(net, af, skb->mark, iph->protocol, > Such patch looks good to me. Regards -- Julian Anastasov <ja@xxxxxx> -- To unsubscribe from this list: send the line "unsubscribe lvs-devel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html