X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=net%2Fipv4%2Fraw.c;h=bbd604c68e68bd0a4b9a400d3055cb45055a6d42;hb=058bd4d2a4ff0aaa4a5381c67e776729d840c785;hp=3ccda5ae8a27b24855c86cf0f3e858c648fc5295;hpb=67d2433ee7aa631bc3ab14c2af6bbc1d44d13a00;p=deliverable%2Flinux.git diff --git a/net/ipv4/raw.c b/net/ipv4/raw.c index 3ccda5ae8a27..bbd604c68e68 100644 --- a/net/ipv4/raw.c +++ b/net/ipv4/raw.c @@ -491,11 +491,8 @@ static int raw_sendmsg(struct kiocb *iocb, struct sock *sk, struct msghdr *msg, if (msg->msg_namelen < sizeof(*usin)) goto out; if (usin->sin_family != AF_INET) { - static int complained; - if (!complained++) - printk(KERN_INFO "%s forgot to set AF_INET in " - "raw sendmsg. Fix it!\n", - current->comm); + pr_info_once("%s: %s forgot to set AF_INET. Fix it!\n", + __func__, current->comm); err = -EAFNOSUPPORT; if (usin->sin_family) goto out; @@ -563,7 +560,8 @@ static int raw_sendmsg(struct kiocb *iocb, struct sock *sk, struct msghdr *msg, ipc.oif = inet->mc_index; if (!saddr) saddr = inet->mc_addr; - } + } else if (!ipc.oif) + ipc.oif = inet->uc_index; flowi4_init_output(&fl4, ipc.oif, sk->sk_mark, tos, RT_SCOPE_UNIVERSE,