• Jiri Pirko's avatar
    net: consolidate and fix ethtool_ops->get_settings calling · 4bc71cb9
    Jiri Pirko authored
    
    
    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: default avatarJiri 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: default avatarRalf Baechle <ralf@linux-mips.org>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    4bc71cb9