static void igmp_group_added(struct ip_mc_list *im)
 {
        struct in_device *in_dev = im->interface;
+#ifdef CONFIG_IP_MULTICAST
        struct net *net = dev_net(in_dev->dev);
+#endif
 
        if (im->loaded == 0) {
                im->loaded = 1;
 void ip_mc_inc_group(struct in_device *in_dev, __be32 addr)
 {
        struct ip_mc_list *im;
+#ifdef CONFIG_IP_MULTICAST
        struct net *net = dev_net(in_dev->dev);
+#endif
 
        ASSERT_RTNL();
 
 
 void ip_mc_init_dev(struct in_device *in_dev)
 {
+#ifdef CONFIG_IP_MULTICAST
        struct net *net = dev_net(in_dev->dev);
+#endif
        ASSERT_RTNL();
 
 #ifdef CONFIG_IP_MULTICAST
 void ip_mc_up(struct in_device *in_dev)
 {
        struct ip_mc_list *pmc;
+#ifdef CONFIG_IP_MULTICAST
        struct net *net = dev_net(in_dev->dev);
+#endif
 
        ASSERT_RTNL();
 
                goto out_sock;
        }
 
+       /* Sysctl initialization */
+       net->ipv4.sysctl_igmp_max_memberships = 20;
+       net->ipv4.sysctl_igmp_max_msf = 10;
+       /* IGMP reports for link-local multicast groups are enabled by default */
+       net->ipv4.sysctl_igmp_llm_reports = 1;
+       net->ipv4.sysctl_igmp_qrv = 2;
        return 0;
 
 out_sock:
 
        net->ipv4.sysctl_tcp_fin_timeout = TCP_FIN_TIMEOUT;
        net->ipv4.sysctl_tcp_notsent_lowat = UINT_MAX;
 
-       net->ipv4.sysctl_igmp_max_memberships = 20;
-       net->ipv4.sysctl_igmp_max_msf = 10;
-       /* IGMP reports for link-local multicast groups are enabled by default */
-       net->ipv4.sysctl_igmp_llm_reports = 1;
-       net->ipv4.sysctl_igmp_qrv = 2;
-
        return 0;
 fail:
        tcp_sk_exit(net);