From: David Ahern <d...@cumulusnetworks.com>
Date: Thu, 29 Dec 2016 15:39:37 -0800

> IP_MULTICAST_IF fails if sk_bound_dev_if is already set and the new index
> does not match it. e.g.,
> 
>     ntpd[15381]: setsockopt IP_MULTICAST_IF 192.168.1.23 fails: Invalid 
> argument
> 
> Relax the check in setsockopt to allow setting mc_index to an L3 slave if
> sk_bound_dev_if points to an L3 master.
> 
> Make a similar change for IPv6. In this case change the device lookup to
> take the rcu_read_lock avoiding a refcnt. The rcu lock is also needed for
> the lookup of a potential L3 master device.
> 
> This really only silences a setsockopt failure since uses of mc_index are
> secondary to sk_bound_dev_if if it is set. In both cases, if either index
> is an L3 slave or master, lookups are directed to the same FIB table so
> relaxing the check at setsockopt time causes no harm.
> 
> Patch is based on a suggested change by Darwin for a problem noted in
> their code base.
> 
> Suggested-by: Darwin Dingel <darwin.din...@alliedtelesis.co.nz>
> Signed-off-by: David Ahern <d...@cumulusnetworks.com>

This seems ok, applied, thanks.

Reply via email to