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