diff --git a/net/ipv6/mcast.c b/net/ipv6/mcast.c
index 1b285371124af170064a6724f4131a7af4a798ff..e7c03bcc2788cd0a7c338520a79509eff215c24d 100644
--- a/net/ipv6/mcast.c
+++ b/net/ipv6/mcast.c
@@ -367,10 +367,6 @@ int ip6_mc_source(int add, int omode, struct sock *sk,
 	int pmclocked = 0;
 	int err;
 
-	if (pgsr->gsr_group.ss_family != AF_INET6 ||
-	    pgsr->gsr_source.ss_family != AF_INET6)
-		return -EINVAL;
-
 	source = &((struct sockaddr_in6 *)&pgsr->gsr_source)->sin6_addr;
 	group = &((struct sockaddr_in6 *)&pgsr->gsr_group)->sin6_addr;