net: introduce upper device lists and remove dev->master
authorDavid S. Miller <davem@davemloft.net>
Fri, 4 Jan 2013 21:32:04 +0000 (13:32 -0800)
committerDavid S. Miller <davem@davemloft.net>
Fri, 4 Jan 2013 21:33:14 +0000 (13:33 -0800)
commit912df2628bd1367d25d04860430f9179fbf144d2
treef14aed911d388b41d4abde15605186a5f8e9509f
parent04e406dcc54cfd84d333ea673fa986fb5a1840e7
parent85464ef271a0f5496f404c6a2f2dfbf1d76e1a49
net: introduce upper device lists and remove dev->master

Jiri Pirko says:

====================
This is a V6 of a repost of my previous patchset:
"[patch net-next v2 00/15] net: introduce upper device lists and remove dev->master" from Aug 14

The discussion around
"[net-next] bonding: don't allow the master to become its slave"
forced me to think about upper<->lower device connections.

This patchset adds a possibility to record upper device linkage.
All upper<->lower devices are converted to use this mechanism right after.
That leads to dev->master removal because this info becomes redundant since
"master links" have the same value.

After all changes, there is no longer possible to do things as:
"bond->someotherdevice->samebond"

Also I think that drivers like cxgb3, qlcnic, qeth would benefit by this
in future by being able to get more appropriate info about l3 addresses.

v5->v6:
- netdev_has_upper_dev() - added statement to comment that this is looking at
  the immediate upper devices only.
- renamed "RTNL semaphore" -> "RTNL lock" in all comments
- renamed __netdev_has_upper_dev() to __netdev_search_upper_dev() to emhasize
  the difference to netdev_has_upper_dev()

v4->v5:
- fixed missed typo in drivers/infiniband/hw/nes/nes_cm.c

v3->v4:
- comments in __netdev_upper_dev_link() squashed into one line
- kfree_rcu used instead of call_rcu in netdev_upper_dev_unlink()

v2->v3:
- removed recursion in __netdev_has_upper_dev()
- refreshed bits to be applicable on current net-next

v1->v2:
- s/unique/master/ better naming + stays closer to the past
- fixed vlan err goto
- original patch 15 (WARN_ON change) is squashed into the first patch
====================

Signed-off-by: David S. Miller <davem@davemloft.net>