Merge branch 'fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
[linux] / net / rxrpc / conn_object.c
index 885dae8..c332722 100644 (file)
@@ -86,11 +86,12 @@ struct rxrpc_connection *rxrpc_find_connection_rcu(struct rxrpc_local *local,
 
        _enter(",%x", sp->hdr.cid & RXRPC_CIDMASK);
 
-       if (rxrpc_extract_addr_from_skb(local, &srx, skb) < 0)
+       if (rxrpc_extract_addr_from_skb(&srx, skb) < 0)
                goto not_found;
 
-       /* We may have to handle mixing IPv4 and IPv6 */
-       if (srx.transport.family != local->srx.transport.family) {
+       if (srx.transport.family != local->srx.transport.family &&
+           (srx.transport.family == AF_INET &&
+            local->srx.transport.family != AF_INET6)) {
                pr_warn_ratelimited("AF_RXRPC: Protocol mismatch %u not %u\n",
                                    srx.transport.family,
                                    local->srx.transport.family);