void igmp6_cleanup(void);
 void igmp6_late_cleanup(void);
 
-int igmp6_event_query(struct sk_buff *skb);
+void igmp6_event_query(struct sk_buff *skb);
 
-int igmp6_event_report(struct sk_buff *skb);
+void igmp6_event_report(struct sk_buff *skb);
 
 
 #ifdef CONFIG_SYSCTL
 
 }
 
 /* called with rcu_read_lock() */
-int igmp6_event_query(struct sk_buff *skb)
+void igmp6_event_query(struct sk_buff *skb)
 {
        struct inet6_dev *idev = __in6_dev_get(skb->dev);
 
-       if (!idev)
-               return -EINVAL;
-
-       if (idev->dead) {
-               kfree_skb(skb);
-               return -ENODEV;
-       }
+       if (!idev || idev->dead)
+               goto out;
 
        spin_lock_bh(&idev->mc_query_lock);
        if (skb_queue_len(&idev->mc_query_queue) < MLD_MAX_SKBS) {
                __skb_queue_tail(&idev->mc_query_queue, skb);
                if (!mod_delayed_work(mld_wq, &idev->mc_query_work, 0))
                        in6_dev_hold(idev);
+               skb = NULL;
        }
        spin_unlock_bh(&idev->mc_query_lock);
-
-       return 0;
+out:
+       kfree_skb(skb);
 }
 
 static void __mld_query_work(struct sk_buff *skb)
 }
 
 /* called with rcu_read_lock() */
-int igmp6_event_report(struct sk_buff *skb)
+void igmp6_event_report(struct sk_buff *skb)
 {
        struct inet6_dev *idev = __in6_dev_get(skb->dev);
 
-       if (!idev)
-               return -EINVAL;
-
-       if (idev->dead) {
-               kfree_skb(skb);
-               return -ENODEV;
-       }
+       if (!idev || idev->dead)
+               goto out;
 
        spin_lock_bh(&idev->mc_report_lock);
        if (skb_queue_len(&idev->mc_report_queue) < MLD_MAX_SKBS) {
                __skb_queue_tail(&idev->mc_report_queue, skb);
                if (!mod_delayed_work(mld_wq, &idev->mc_report_work, 0))
                        in6_dev_hold(idev);
+               skb = NULL;
        }
        spin_unlock_bh(&idev->mc_report_lock);
-
-       return 0;
+out:
+       kfree_skb(skb);
 }
 
 static void __mld_report_work(struct sk_buff *skb)