On 08.07.2015 07:05, Mahesh Bandewar wrote:
On Fri, Jul 3, 2015 at 5:58 AM, Konstantin Khlebnikov
<khlebni...@yandex-team.ru> wrote:
Inet6addr notifier is atomic and runs in bh context without RTNL when
ipv6 receives router advertisement packet and performs autoconfiguration.

This patch adds ipvl_port->addr_lock and helpers: ipvlan_addr_lock_bh,
ipvlan_addr_unlock_bh for protecting ipvlan addresses and hash table.

Frankly I'm not comfortable adding spin-locks all over. I think any
config that mostly takes place with RTNL makes sense but this
inet6addr needs to be thought through and implanting spin-locks in
IPvlan is a work-around for a problem some where else.
Why can't a work-queue that takes RTNL to call inet6addr-notifier be
implemented when called from bh?

We already have that work: ipv6 DAD. In v1 patchset was a patch
which moves inet6addr-notifier into it and makes it blockable:

http://www.spinics.net/lists/netdev/msg329017.html

But David Miller objected.

I'm ok with any solution: when spinlock nests inside locked RTNL it
never spins in most cases.


Signed-off-by: Konstantin Khlebnikov <khlebni...@yandex-team.ru>
---
  drivers/net/ipvlan/ipvlan.h      |   11 +++++++++++
  drivers/net/ipvlan/ipvlan_core.c |    2 --
  drivers/net/ipvlan/ipvlan_main.c |   33 ++++++++++++++++++++++++++++++---
  3 files changed, 41 insertions(+), 5 deletions(-)

[snip]



--
Konstantin
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to