aboutsummaryrefslogtreecommitdiffstats
path: root/net/ipv6/ipv6_sockglue.c
diff options
context:
space:
mode:
Diffstat (limited to 'net/ipv6/ipv6_sockglue.c')
-rw-r--r--net/ipv6/ipv6_sockglue.c21
1 files changed, 13 insertions, 8 deletions
diff --git a/net/ipv6/ipv6_sockglue.c b/net/ipv6/ipv6_sockglue.c
index f2b731df8d77..cc5883791bac 100644
--- a/net/ipv6/ipv6_sockglue.c
+++ b/net/ipv6/ipv6_sockglue.c
@@ -124,6 +124,11 @@ static bool setsockopt_needs_rtnl(int optname)
124 case IPV6_DROP_MEMBERSHIP: 124 case IPV6_DROP_MEMBERSHIP:
125 case MCAST_JOIN_GROUP: 125 case MCAST_JOIN_GROUP:
126 case MCAST_LEAVE_GROUP: 126 case MCAST_LEAVE_GROUP:
127 case MCAST_JOIN_SOURCE_GROUP:
128 case MCAST_LEAVE_SOURCE_GROUP:
129 case MCAST_BLOCK_SOURCE:
130 case MCAST_UNBLOCK_SOURCE:
131 case MCAST_MSFILTER:
127 return true; 132 return true;
128 } 133 }
129 return false; 134 return false;
@@ -597,9 +602,9 @@ done:
597 break; 602 break;
598 603
599 if (optname == IPV6_ADD_MEMBERSHIP) 604 if (optname == IPV6_ADD_MEMBERSHIP)
600 retv = __ipv6_sock_mc_join(sk, mreq.ipv6mr_ifindex, &mreq.ipv6mr_multiaddr); 605 retv = ipv6_sock_mc_join(sk, mreq.ipv6mr_ifindex, &mreq.ipv6mr_multiaddr);
601 else 606 else
602 retv = __ipv6_sock_mc_drop(sk, mreq.ipv6mr_ifindex, &mreq.ipv6mr_multiaddr); 607 retv = ipv6_sock_mc_drop(sk, mreq.ipv6mr_ifindex, &mreq.ipv6mr_multiaddr);
603 break; 608 break;
604 } 609 }
605 case IPV6_JOIN_ANYCAST: 610 case IPV6_JOIN_ANYCAST:
@@ -638,11 +643,11 @@ done:
638 } 643 }
639 psin6 = (struct sockaddr_in6 *)&greq.gr_group; 644 psin6 = (struct sockaddr_in6 *)&greq.gr_group;
640 if (optname == MCAST_JOIN_GROUP) 645 if (optname == MCAST_JOIN_GROUP)
641 retv = __ipv6_sock_mc_join(sk, greq.gr_interface, 646 retv = ipv6_sock_mc_join(sk, greq.gr_interface,
642 &psin6->sin6_addr); 647 &psin6->sin6_addr);
643 else 648 else
644 retv = __ipv6_sock_mc_drop(sk, greq.gr_interface, 649 retv = ipv6_sock_mc_drop(sk, greq.gr_interface,
645 &psin6->sin6_addr); 650 &psin6->sin6_addr);
646 break; 651 break;
647 } 652 }
648 case MCAST_JOIN_SOURCE_GROUP: 653 case MCAST_JOIN_SOURCE_GROUP:
@@ -674,8 +679,8 @@ done:
674 struct sockaddr_in6 *psin6; 679 struct sockaddr_in6 *psin6;
675 680
676 psin6 = (struct sockaddr_in6 *)&greqs.gsr_group; 681 psin6 = (struct sockaddr_in6 *)&greqs.gsr_group;
677 retv = __ipv6_sock_mc_join(sk, greqs.gsr_interface, 682 retv = ipv6_sock_mc_join(sk, greqs.gsr_interface,
678 &psin6->sin6_addr); 683 &psin6->sin6_addr);
679 /* prior join w/ different source is ok */ 684 /* prior join w/ different source is ok */
680 if (retv && retv != -EADDRINUSE) 685 if (retv && retv != -EADDRINUSE)
681 break; 686 break;