mbox series

[net,v2,0/3] bonding: fix bonding interface bugs

Message ID 20200215104949.21355-1-ap420073@gmail.com
Headers show
Series bonding: fix bonding interface bugs | expand

Message

Taehee Yoo Feb. 15, 2020, 10:49 a.m. UTC
This patchset fixes lockdep problem in bonding interface

1. The first patch is to add missing netdev_update_lockdep_key().
After bond_release(), netdev_update_lockdep_key() should be called.
But both ioctl path and attribute path don't call
netdev_update_lockdep_key().
This patch adds missing netdev_update_lockdep_key().

2. The second patch is to export netdev_next_lower_dev_rcu symbol.
netdev_next_lower_dev_rcu() is useful to implement the function,
which is to walk their all lower interfaces.
This patch is actually a preparing patch for the third patch.

3. The last patch is to fix lockdep waring in bond_get_stats().
The stats_lock uses a dynamic lockdep key.
So, after "nomaster" operation, updating the dynamic lockdep key
routine is needed. but it doesn't
So, lockdep warning occurs.

Change log:
v1 -> v2:
 - Update headline from "fix bonding interface bugs"
   to "bonding: fix bonding interface bugs"
 - Drop a patch("bonding: do not collect slave's stats")
 - Add new patches
   - ("net: export netdev_next_lower_dev_rcu()")
   - ("bonding: fix lockdep warning in bond_get_stats()")

Taehee Yoo (3):
  bonding: add missing netdev_update_lockdep_key()
  net: export netdev_next_lower_dev_rcu()
  bonding: fix lockdep warning in bond_get_stats()

 drivers/net/bonding/bond_main.c    | 55 ++++++++++++++++++++++++++++--
 drivers/net/bonding/bond_options.c |  2 ++
 include/linux/netdevice.h          |  7 ++--
 net/core/dev.c                     |  6 ++--
 4 files changed, 60 insertions(+), 10 deletions(-)

Comments

David Miller Feb. 17, 2020, 3:32 a.m. UTC | #1
From: Taehee Yoo <ap420073@gmail.com>
Date: Sat, 15 Feb 2020 10:49:49 +0000

> This patchset fixes lockdep problem in bonding interface
> 
> 1. The first patch is to add missing netdev_update_lockdep_key().
> After bond_release(), netdev_update_lockdep_key() should be called.
> But both ioctl path and attribute path don't call
> netdev_update_lockdep_key().
> This patch adds missing netdev_update_lockdep_key().
> 
> 2. The second patch is to export netdev_next_lower_dev_rcu symbol.
> netdev_next_lower_dev_rcu() is useful to implement the function,
> which is to walk their all lower interfaces.
> This patch is actually a preparing patch for the third patch.
> 
> 3. The last patch is to fix lockdep waring in bond_get_stats().
> The stats_lock uses a dynamic lockdep key.
> So, after "nomaster" operation, updating the dynamic lockdep key
> routine is needed. but it doesn't
> So, lockdep warning occurs.
> 
> Change log:
> v1 -> v2:
>  - Update headline from "fix bonding interface bugs"
>    to "bonding: fix bonding interface bugs"
>  - Drop a patch("bonding: do not collect slave's stats")
>  - Add new patches
>    - ("net: export netdev_next_lower_dev_rcu()")
>    - ("bonding: fix lockdep warning in bond_get_stats()")

Series applied, thank you.