OSDN Git Service

net: consolidate and fix ethtool_ops->get_settings calling
authorJiri Pirko <jpirko@redhat.com>
Sat, 3 Sep 2011 03:34:30 +0000 (03:34 +0000)
committerDavid S. Miller <davem@davemloft.net>
Thu, 15 Sep 2011 21:32:26 +0000 (17:32 -0400)
commit4bc71cb983fd2844e603bf633df2bb53385182d2
tree067b6df32fda6c554b2b9263a94a585c2e5a832d
parentc5dac7c9984d8a034eb7ae149cedf23ec9259f98
net: consolidate and fix ethtool_ops->get_settings calling

This patch does several things:
- introduces __ethtool_get_settings which is called from ethtool code and
  from drivers as well. Put ASSERT_RTNL there.
- dev_ethtool_get_settings() is replaced by __ethtool_get_settings()
- changes calling in drivers so rtnl locking is respected. In
  iboe_get_rate was previously ->get_settings() called unlocked. This
  fixes it. Also prb_calc_retire_blk_tmo() in af_packet.c had the same
  problem. Also fixed by calling __dev_get_by_index() instead of
  dev_get_by_index() and holding rtnl_lock for both calls.
- introduces rtnl_lock in bnx2fc_vport_create() and fcoe_vport_create()
  so bnx2fc_if_create() and fcoe_if_create() are called locked as they
  are from other places.
- use __ethtool_get_settings() in bonding code

Signed-off-by: Jiri Pirko <jpirko@redhat.com>
v2->v3:
-removed dev_ethtool_get_settings()
-added ASSERT_RTNL into __ethtool_get_settings()
-prb_calc_retire_blk_tmo - use __dev_get_by_index() and lock
 around it and __ethtool_get_settings() call
v1->v2:
        add missing export_symbol
Reviewed-by: Ben Hutchings <bhutchings@solarflare.com> [except FCoE bits]
Acked-by: Ralf Baechle <ralf@linux-mips.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
14 files changed:
arch/mips/txx9/generic/setup_tx4939.c
drivers/net/bonding/bond_main.c
drivers/net/macvlan.c
drivers/scsi/bnx2fc/bnx2fc_fcoe.c
drivers/scsi/fcoe/fcoe.c
include/linux/ethtool.h
include/linux/netdevice.h
include/rdma/ib_addr.h
net/8021q/vlan_dev.c
net/bridge/br_if.c
net/core/dev.c
net/core/ethtool.c
net/core/net-sysfs.c
net/packet/af_packet.c