}
 
        err = -EADDRNOTAVAIL;
-       /*
-        * changes to the ipv6_mc_list require the socket lock and
-        * a read lock on ip6_sk_mc_lock. We have the socket lock,
+       /* changes to the ipv6_mc_list require the socket lock and
+        * rtnl lock. We have the socket lock and rcu read lock,
         * so reading the list is safe.
         */
 
            copy_to_user(optval, gsf, GROUP_FILTER_SIZE(0))) {
                return -EFAULT;
        }
-       /* changes to psl require the socket lock, a read lock on
-        * on ipv6_sk_mc_lock and a write lock on pmc->sflock. We
-        * have the socket lock, so reading here is safe.
+       /* changes to psl require the socket lock, and a write lock
+        * on pmc->sflock. We have the socket lock so reading here is safe.
         */
        for (i = 0; i < copycount; i++) {
                struct sockaddr_in6 *psin6;
 {
        int err;
 
-       /* callers have the socket lock and a write lock on ipv6_sk_mc_lock,
+       /* callers have the socket lock and rtnl lock
         * so no other readers or writers of iml or its sflist
         */
        if (!iml->sflist) {