diff options
Diffstat (limited to 'net/ipv4/raw.c')
| -rw-r--r-- | net/ipv4/raw.c | 10 | 
1 files changed, 4 insertions, 6 deletions
| 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, | 
