| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948 | 
							- From 4973056cceacc70966396039fae99867dfafd796 Mon Sep 17 00:00:00 2001
 
- From: Sean Anderson <[email protected]>
 
- Date: Fri, 22 Oct 2021 18:41:04 -0400
 
- Subject: [PATCH] net: convert users of bitmap_foo() to linkmode_foo()
 
- This converts instances of
 
- 	bitmap_foo(args..., __ETHTOOL_LINK_MODE_MASK_NBITS)
 
- to
 
- 	linkmode_foo(args...)
 
- I manually fixed up some lines to prevent them from being excessively
 
- long. Otherwise, this change was generated with the following semantic
 
- patch:
 
- // Generated with
 
- // echo linux/linkmode.h > includes
 
- // git grep -Flf includes include/ | cut -f 2- -d / | cat includes - \
 
- // | sort | uniq | tee new_includes | wc -l && mv new_includes includes
 
- // and repeating until the number stopped going up
 
- @i@
 
- @@
 
- (
 
-  #include <linux/acpi_mdio.h>
 
- |
 
-  #include <linux/brcmphy.h>
 
- |
 
-  #include <linux/dsa/loop.h>
 
- |
 
-  #include <linux/dsa/sja1105.h>
 
- |
 
-  #include <linux/ethtool.h>
 
- |
 
-  #include <linux/ethtool_netlink.h>
 
- |
 
-  #include <linux/fec.h>
 
- |
 
-  #include <linux/fs_enet_pd.h>
 
- |
 
-  #include <linux/fsl/enetc_mdio.h>
 
- |
 
-  #include <linux/fwnode_mdio.h>
 
- |
 
-  #include <linux/linkmode.h>
 
- |
 
-  #include <linux/lsm_audit.h>
 
- |
 
-  #include <linux/mdio-bitbang.h>
 
- |
 
-  #include <linux/mdio.h>
 
- |
 
-  #include <linux/mdio-mux.h>
 
- |
 
-  #include <linux/mii.h>
 
- |
 
-  #include <linux/mii_timestamper.h>
 
- |
 
-  #include <linux/mlx5/accel.h>
 
- |
 
-  #include <linux/mlx5/cq.h>
 
- |
 
-  #include <linux/mlx5/device.h>
 
- |
 
-  #include <linux/mlx5/driver.h>
 
- |
 
-  #include <linux/mlx5/eswitch.h>
 
- |
 
-  #include <linux/mlx5/fs.h>
 
- |
 
-  #include <linux/mlx5/port.h>
 
- |
 
-  #include <linux/mlx5/qp.h>
 
- |
 
-  #include <linux/mlx5/rsc_dump.h>
 
- |
 
-  #include <linux/mlx5/transobj.h>
 
- |
 
-  #include <linux/mlx5/vport.h>
 
- |
 
-  #include <linux/of_mdio.h>
 
- |
 
-  #include <linux/of_net.h>
 
- |
 
-  #include <linux/pcs-lynx.h>
 
- |
 
-  #include <linux/pcs/pcs-xpcs.h>
 
- |
 
-  #include <linux/phy.h>
 
- |
 
-  #include <linux/phy_led_triggers.h>
 
- |
 
-  #include <linux/phylink.h>
 
- |
 
-  #include <linux/platform_data/bcmgenet.h>
 
- |
 
-  #include <linux/platform_data/xilinx-ll-temac.h>
 
- |
 
-  #include <linux/pxa168_eth.h>
 
- |
 
-  #include <linux/qed/qed_eth_if.h>
 
- |
 
-  #include <linux/qed/qed_fcoe_if.h>
 
- |
 
-  #include <linux/qed/qed_if.h>
 
- |
 
-  #include <linux/qed/qed_iov_if.h>
 
- |
 
-  #include <linux/qed/qed_iscsi_if.h>
 
- |
 
-  #include <linux/qed/qed_ll2_if.h>
 
- |
 
-  #include <linux/qed/qed_nvmetcp_if.h>
 
- |
 
-  #include <linux/qed/qed_rdma_if.h>
 
- |
 
-  #include <linux/sfp.h>
 
- |
 
-  #include <linux/sh_eth.h>
 
- |
 
-  #include <linux/smsc911x.h>
 
- |
 
-  #include <linux/soc/nxp/lpc32xx-misc.h>
 
- |
 
-  #include <linux/stmmac.h>
 
- |
 
-  #include <linux/sunrpc/svc_rdma.h>
 
- |
 
-  #include <linux/sxgbe_platform.h>
 
- |
 
-  #include <net/cfg80211.h>
 
- |
 
-  #include <net/dsa.h>
 
- |
 
-  #include <net/mac80211.h>
 
- |
 
-  #include <net/selftests.h>
 
- |
 
-  #include <rdma/ib_addr.h>
 
- |
 
-  #include <rdma/ib_cache.h>
 
- |
 
-  #include <rdma/ib_cm.h>
 
- |
 
-  #include <rdma/ib_hdrs.h>
 
- |
 
-  #include <rdma/ib_mad.h>
 
- |
 
-  #include <rdma/ib_marshall.h>
 
- |
 
-  #include <rdma/ib_pack.h>
 
- |
 
-  #include <rdma/ib_pma.h>
 
- |
 
-  #include <rdma/ib_sa.h>
 
- |
 
-  #include <rdma/ib_smi.h>
 
- |
 
-  #include <rdma/ib_umem.h>
 
- |
 
-  #include <rdma/ib_umem_odp.h>
 
- |
 
-  #include <rdma/ib_verbs.h>
 
- |
 
-  #include <rdma/iw_cm.h>
 
- |
 
-  #include <rdma/mr_pool.h>
 
- |
 
-  #include <rdma/opa_addr.h>
 
- |
 
-  #include <rdma/opa_port_info.h>
 
- |
 
-  #include <rdma/opa_smi.h>
 
- |
 
-  #include <rdma/opa_vnic.h>
 
- |
 
-  #include <rdma/rdma_cm.h>
 
- |
 
-  #include <rdma/rdma_cm_ib.h>
 
- |
 
-  #include <rdma/rdmavt_cq.h>
 
- |
 
-  #include <rdma/rdma_vt.h>
 
- |
 
-  #include <rdma/rdmavt_qp.h>
 
- |
 
-  #include <rdma/rw.h>
 
- |
 
-  #include <rdma/tid_rdma_defs.h>
 
- |
 
-  #include <rdma/uverbs_ioctl.h>
 
- |
 
-  #include <rdma/uverbs_named_ioctl.h>
 
- |
 
-  #include <rdma/uverbs_std_types.h>
 
- |
 
-  #include <rdma/uverbs_types.h>
 
- |
 
-  #include <soc/mscc/ocelot.h>
 
- |
 
-  #include <soc/mscc/ocelot_ptp.h>
 
- |
 
-  #include <soc/mscc/ocelot_vcap.h>
 
- |
 
-  #include <trace/events/ib_mad.h>
 
- |
 
-  #include <trace/events/rdma_core.h>
 
- |
 
-  #include <trace/events/rdma.h>
 
- |
 
-  #include <trace/events/rpcrdma.h>
 
- |
 
-  #include <uapi/linux/ethtool.h>
 
- |
 
-  #include <uapi/linux/ethtool_netlink.h>
 
- |
 
-  #include <uapi/linux/mdio.h>
 
- |
 
-  #include <uapi/linux/mii.h>
 
- )
 
- @depends on i@
 
- expression list args;
 
- @@
 
- (
 
- - bitmap_zero(args, __ETHTOOL_LINK_MODE_MASK_NBITS)
 
- + linkmode_zero(args)
 
- |
 
- - bitmap_copy(args, __ETHTOOL_LINK_MODE_MASK_NBITS)
 
- + linkmode_copy(args)
 
- |
 
- - bitmap_and(args, __ETHTOOL_LINK_MODE_MASK_NBITS)
 
- + linkmode_and(args)
 
- |
 
- - bitmap_or(args, __ETHTOOL_LINK_MODE_MASK_NBITS)
 
- + linkmode_or(args)
 
- |
 
- - bitmap_empty(args, ETHTOOL_LINK_MODE_MASK_NBITS)
 
- + linkmode_empty(args)
 
- |
 
- - bitmap_andnot(args, __ETHTOOL_LINK_MODE_MASK_NBITS)
 
- + linkmode_andnot(args)
 
- |
 
- - bitmap_equal(args, __ETHTOOL_LINK_MODE_MASK_NBITS)
 
- + linkmode_equal(args)
 
- |
 
- - bitmap_intersects(args, __ETHTOOL_LINK_MODE_MASK_NBITS)
 
- + linkmode_intersects(args)
 
- |
 
- - bitmap_subset(args, __ETHTOOL_LINK_MODE_MASK_NBITS)
 
- + linkmode_subset(args)
 
- )
 
- Add missing linux/mii.h include to mellanox. -DaveM
 
- Signed-off-by: Sean Anderson <[email protected]>
 
- Signed-off-by: David S. Miller <[email protected]>
 
- ---
 
-  drivers/net/dsa/b53/b53_common.c              |  6 ++----
 
-  drivers/net/dsa/bcm_sf2.c                     |  8 +++----
 
-  drivers/net/dsa/hirschmann/hellcreek.c        |  6 ++----
 
-  drivers/net/dsa/lantiq_gswip.c                | 14 ++++++-------
 
-  drivers/net/dsa/microchip/ksz8795.c           |  8 +++----
 
-  drivers/net/dsa/mv88e6xxx/chip.c              |  5 ++---
 
-  drivers/net/dsa/ocelot/felix_vsc9959.c        |  8 +++----
 
-  drivers/net/dsa/ocelot/seville_vsc9953.c      |  8 +++----
 
-  drivers/net/dsa/qca/ar9331.c                  | 10 ++++-----
 
-  drivers/net/dsa/sja1105/sja1105_main.c        |  7 +++----
 
-  drivers/net/dsa/xrs700x/xrs700x.c             |  8 +++----
 
-  drivers/net/ethernet/amd/xgbe/xgbe-ethtool.c  |  8 +++----
 
-  drivers/net/ethernet/atheros/ag71xx.c         |  8 +++----
 
-  drivers/net/ethernet/cadence/macb_main.c      | 11 +++++-----
 
-  .../net/ethernet/freescale/enetc/enetc_pf.c   |  8 +++----
 
-  .../net/ethernet/huawei/hinic/hinic_ethtool.c | 10 ++++-----
 
-  .../net/ethernet/intel/ixgbe/ixgbe_ethtool.c  |  5 ++---
 
-  drivers/net/ethernet/marvell/mvneta.c         | 10 ++++-----
 
-  .../net/ethernet/marvell/mvpp2/mvpp2_main.c   |  7 +++----
 
-  .../marvell/octeontx2/nic/otx2_ethtool.c      |  5 ++---
 
-  drivers/net/ethernet/marvell/pxa168_eth.c     |  3 +--
 
-  .../net/ethernet/mellanox/mlx4/en_ethtool.c   | 21 +++++++------------
 
-  .../microchip/sparx5/sparx5_phylink.c         |  7 +++----
 
-  drivers/net/ethernet/mscc/ocelot_net.c        |  7 +++----
 
-  .../ethernet/pensando/ionic/ionic_ethtool.c   |  3 +--
 
-  .../net/ethernet/xilinx/xilinx_axienet_main.c |  8 +++----
 
-  drivers/net/pcs/pcs-xpcs.c                    |  2 +-
 
-  drivers/net/phy/sfp-bus.c                     |  2 +-
 
-  net/ethtool/ioctl.c                           |  7 +++----
 
-  29 files changed, 87 insertions(+), 133 deletions(-)
 
- --- a/drivers/net/dsa/b53/b53_common.c
 
- +++ b/drivers/net/dsa/b53/b53_common.c
 
- @@ -1349,10 +1349,8 @@ void b53_phylink_validate(struct dsa_swi
 
-  		phylink_set(mask, 100baseT_Full);
 
-  	}
 
-  
 
- -	bitmap_and(supported, supported, mask,
 
- -		   __ETHTOOL_LINK_MODE_MASK_NBITS);
 
- -	bitmap_and(state->advertising, state->advertising, mask,
 
- -		   __ETHTOOL_LINK_MODE_MASK_NBITS);
 
- +	linkmode_and(supported, supported, mask);
 
- +	linkmode_and(state->advertising, state->advertising, mask);
 
-  
 
-  	phylink_helper_basex_speed(state);
 
-  }
 
- --- a/drivers/net/dsa/bcm_sf2.c
 
- +++ b/drivers/net/dsa/bcm_sf2.c
 
- @@ -692,7 +692,7 @@ static void bcm_sf2_sw_validate(struct d
 
-  	    state->interface != PHY_INTERFACE_MODE_GMII &&
 
-  	    state->interface != PHY_INTERFACE_MODE_INTERNAL &&
 
-  	    state->interface != PHY_INTERFACE_MODE_MOCA) {
 
- -		bitmap_zero(supported, __ETHTOOL_LINK_MODE_MASK_NBITS);
 
- +		linkmode_zero(supported);
 
-  		if (port != core_readl(priv, CORE_IMP0_PRT_ID))
 
-  			dev_err(ds->dev,
 
-  				"Unsupported interface: %d for port %d\n",
 
- @@ -720,10 +720,8 @@ static void bcm_sf2_sw_validate(struct d
 
-  	phylink_set(mask, 100baseT_Half);
 
-  	phylink_set(mask, 100baseT_Full);
 
-  
 
- -	bitmap_and(supported, supported, mask,
 
- -		   __ETHTOOL_LINK_MODE_MASK_NBITS);
 
- -	bitmap_and(state->advertising, state->advertising, mask,
 
- -		   __ETHTOOL_LINK_MODE_MASK_NBITS);
 
- +	linkmode_and(supported, supported, mask);
 
- +	linkmode_and(state->advertising, state->advertising, mask);
 
-  }
 
-  
 
-  static void bcm_sf2_sw_mac_config(struct dsa_switch *ds, int port,
 
- --- a/drivers/net/dsa/hirschmann/hellcreek.c
 
- +++ b/drivers/net/dsa/hirschmann/hellcreek.c
 
- @@ -1476,10 +1476,8 @@ static void hellcreek_phylink_validate(s
 
-  	else
 
-  		phylink_set(mask, 1000baseT_Full);
 
-  
 
- -	bitmap_and(supported, supported, mask,
 
- -		   __ETHTOOL_LINK_MODE_MASK_NBITS);
 
- -	bitmap_and(state->advertising, state->advertising, mask,
 
- -		   __ETHTOOL_LINK_MODE_MASK_NBITS);
 
- +	linkmode_and(supported, supported, mask);
 
- +	linkmode_and(state->advertising, state->advertising, mask);
 
-  }
 
-  
 
-  static int
 
- --- a/drivers/net/dsa/lantiq_gswip.c
 
- +++ b/drivers/net/dsa/lantiq_gswip.c
 
- @@ -1452,10 +1452,8 @@ static void gswip_phylink_set_capab(unsi
 
-  	phylink_set(mask, 100baseT_Half);
 
-  	phylink_set(mask, 100baseT_Full);
 
-  
 
- -	bitmap_and(supported, supported, mask,
 
- -		   __ETHTOOL_LINK_MODE_MASK_NBITS);
 
- -	bitmap_and(state->advertising, state->advertising, mask,
 
- -		   __ETHTOOL_LINK_MODE_MASK_NBITS);
 
- +	linkmode_and(supported, supported, mask);
 
- +	linkmode_and(state->advertising, state->advertising, mask);
 
-  }
 
-  
 
-  static void gswip_xrx200_phylink_validate(struct dsa_switch *ds, int port,
 
- @@ -1483,7 +1481,7 @@ static void gswip_xrx200_phylink_validat
 
-  			goto unsupported;
 
-  		break;
 
-  	default:
 
- -		bitmap_zero(supported, __ETHTOOL_LINK_MODE_MASK_NBITS);
 
- +		linkmode_zero(supported);
 
-  		dev_err(ds->dev, "Unsupported port: %i\n", port);
 
-  		return;
 
-  	}
 
- @@ -1493,7 +1491,7 @@ static void gswip_xrx200_phylink_validat
 
-  	return;
 
-  
 
-  unsupported:
 
- -	bitmap_zero(supported, __ETHTOOL_LINK_MODE_MASK_NBITS);
 
- +	linkmode_zero(supported);
 
-  	dev_err(ds->dev, "Unsupported interface '%s' for port %d\n",
 
-  		phy_modes(state->interface), port);
 
-  }
 
- @@ -1523,7 +1521,7 @@ static void gswip_xrx300_phylink_validat
 
-  			goto unsupported;
 
-  		break;
 
-  	default:
 
- -		bitmap_zero(supported, __ETHTOOL_LINK_MODE_MASK_NBITS);
 
- +		linkmode_zero(supported);
 
-  		dev_err(ds->dev, "Unsupported port: %i\n", port);
 
-  		return;
 
-  	}
 
- @@ -1533,7 +1531,7 @@ static void gswip_xrx300_phylink_validat
 
-  	return;
 
-  
 
-  unsupported:
 
- -	bitmap_zero(supported, __ETHTOOL_LINK_MODE_MASK_NBITS);
 
- +	linkmode_zero(supported);
 
-  	dev_err(ds->dev, "Unsupported interface '%s' for port %d\n",
 
-  		phy_modes(state->interface), port);
 
-  }
 
- --- a/drivers/net/dsa/microchip/ksz8795.c
 
- +++ b/drivers/net/dsa/microchip/ksz8795.c
 
- @@ -1542,15 +1542,13 @@ static void ksz8_validate(struct dsa_swi
 
-  	phylink_set(mask, 100baseT_Half);
 
-  	phylink_set(mask, 100baseT_Full);
 
-  
 
- -	bitmap_and(supported, supported, mask,
 
- -		   __ETHTOOL_LINK_MODE_MASK_NBITS);
 
- -	bitmap_and(state->advertising, state->advertising, mask,
 
- -		   __ETHTOOL_LINK_MODE_MASK_NBITS);
 
- +	linkmode_and(supported, supported, mask);
 
- +	linkmode_and(state->advertising, state->advertising, mask);
 
-  
 
-  	return;
 
-  
 
-  unsupported:
 
- -	bitmap_zero(supported, __ETHTOOL_LINK_MODE_MASK_NBITS);
 
- +	linkmode_zero(supported);
 
-  	dev_err(ds->dev, "Unsupported interface: %s, port: %d\n",
 
-  		phy_modes(state->interface), port);
 
-  }
 
- --- a/drivers/net/dsa/mv88e6xxx/chip.c
 
- +++ b/drivers/net/dsa/mv88e6xxx/chip.c
 
- @@ -683,9 +683,8 @@ static void mv88e6xxx_validate(struct ds
 
-  	if (chip->info->ops->phylink_validate)
 
-  		chip->info->ops->phylink_validate(chip, port, mask, state);
 
-  
 
- -	bitmap_and(supported, supported, mask, __ETHTOOL_LINK_MODE_MASK_NBITS);
 
- -	bitmap_and(state->advertising, state->advertising, mask,
 
- -		   __ETHTOOL_LINK_MODE_MASK_NBITS);
 
- +	linkmode_and(supported, supported, mask);
 
- +	linkmode_and(state->advertising, state->advertising, mask);
 
-  
 
-  	/* We can only operate at 2500BaseX or 1000BaseX.  If requested
 
-  	 * to advertise both, only report advertising at 2500BaseX.
 
- --- a/drivers/net/dsa/ocelot/felix_vsc9959.c
 
- +++ b/drivers/net/dsa/ocelot/felix_vsc9959.c
 
- @@ -944,7 +944,7 @@ static void vsc9959_phylink_validate(str
 
-  
 
-  	if (state->interface != PHY_INTERFACE_MODE_NA &&
 
-  	    state->interface != ocelot_port->phy_mode) {
 
- -		bitmap_zero(supported, __ETHTOOL_LINK_MODE_MASK_NBITS);
 
- +		linkmode_zero(supported);
 
-  		return;
 
-  	}
 
-  
 
- @@ -966,10 +966,8 @@ static void vsc9959_phylink_validate(str
 
-  		phylink_set(mask, 2500baseX_Full);
 
-  	}
 
-  
 
- -	bitmap_and(supported, supported, mask,
 
- -		   __ETHTOOL_LINK_MODE_MASK_NBITS);
 
- -	bitmap_and(state->advertising, state->advertising, mask,
 
- -		   __ETHTOOL_LINK_MODE_MASK_NBITS);
 
- +	linkmode_and(supported, supported, mask);
 
- +	linkmode_and(state->advertising, state->advertising, mask);
 
-  }
 
-  
 
-  static int vsc9959_prevalidate_phy_mode(struct ocelot *ocelot, int port,
 
- --- a/drivers/net/dsa/ocelot/seville_vsc9953.c
 
- +++ b/drivers/net/dsa/ocelot/seville_vsc9953.c
 
- @@ -1000,7 +1000,7 @@ static void vsc9953_phylink_validate(str
 
-  
 
-  	if (state->interface != PHY_INTERFACE_MODE_NA &&
 
-  	    state->interface != ocelot_port->phy_mode) {
 
- -		bitmap_zero(supported, __ETHTOOL_LINK_MODE_MASK_NBITS);
 
- +		linkmode_zero(supported);
 
-  		return;
 
-  	}
 
-  
 
- @@ -1019,10 +1019,8 @@ static void vsc9953_phylink_validate(str
 
-  		phylink_set(mask, 2500baseX_Full);
 
-  	}
 
-  
 
- -	bitmap_and(supported, supported, mask,
 
- -		   __ETHTOOL_LINK_MODE_MASK_NBITS);
 
- -	bitmap_and(state->advertising, state->advertising, mask,
 
- -		   __ETHTOOL_LINK_MODE_MASK_NBITS);
 
- +	linkmode_and(supported, supported, mask);
 
- +	linkmode_and(state->advertising, state->advertising, mask);
 
-  }
 
-  
 
-  static int vsc9953_prevalidate_phy_mode(struct ocelot *ocelot, int port,
 
- --- a/drivers/net/dsa/qca/ar9331.c
 
- +++ b/drivers/net/dsa/qca/ar9331.c
 
- @@ -522,7 +522,7 @@ static void ar9331_sw_phylink_validate(s
 
-  			goto unsupported;
 
-  		break;
 
-  	default:
 
- -		bitmap_zero(supported, __ETHTOOL_LINK_MODE_MASK_NBITS);
 
- +		linkmode_zero(supported);
 
-  		dev_err(ds->dev, "Unsupported port: %i\n", port);
 
-  		return;
 
-  	}
 
- @@ -536,15 +536,13 @@ static void ar9331_sw_phylink_validate(s
 
-  	phylink_set(mask, 100baseT_Half);
 
-  	phylink_set(mask, 100baseT_Full);
 
-  
 
- -	bitmap_and(supported, supported, mask,
 
- -		   __ETHTOOL_LINK_MODE_MASK_NBITS);
 
- -	bitmap_and(state->advertising, state->advertising, mask,
 
- -		   __ETHTOOL_LINK_MODE_MASK_NBITS);
 
- +	linkmode_and(supported, supported, mask);
 
- +	linkmode_and(state->advertising, state->advertising, mask);
 
-  
 
-  	return;
 
-  
 
-  unsupported:
 
- -	bitmap_zero(supported, __ETHTOOL_LINK_MODE_MASK_NBITS);
 
- +	linkmode_zero(supported);
 
-  	dev_err(ds->dev, "Unsupported interface: %d, port: %d\n",
 
-  		state->interface, port);
 
-  }
 
- --- a/drivers/net/dsa/sja1105/sja1105_main.c
 
- +++ b/drivers/net/dsa/sja1105/sja1105_main.c
 
- @@ -1360,7 +1360,7 @@ static void sja1105_phylink_validate(str
 
-  	 */
 
-  	if (state->interface != PHY_INTERFACE_MODE_NA &&
 
-  	    sja1105_phy_mode_mismatch(priv, port, state->interface)) {
 
- -		bitmap_zero(supported, __ETHTOOL_LINK_MODE_MASK_NBITS);
 
- +		linkmode_zero(supported);
 
-  		return;
 
-  	}
 
-  
 
- @@ -1380,9 +1380,8 @@ static void sja1105_phylink_validate(str
 
-  		phylink_set(mask, 2500baseX_Full);
 
-  	}
 
-  
 
- -	bitmap_and(supported, supported, mask, __ETHTOOL_LINK_MODE_MASK_NBITS);
 
- -	bitmap_and(state->advertising, state->advertising, mask,
 
- -		   __ETHTOOL_LINK_MODE_MASK_NBITS);
 
- +	linkmode_and(supported, supported, mask);
 
- +	linkmode_and(state->advertising, state->advertising, mask);
 
-  }
 
-  
 
-  static int
 
- --- a/drivers/net/dsa/xrs700x/xrs700x.c
 
- +++ b/drivers/net/dsa/xrs700x/xrs700x.c
 
- @@ -457,7 +457,7 @@ static void xrs700x_phylink_validate(str
 
-  		phylink_set(mask, 1000baseT_Full);
 
-  		break;
 
-  	default:
 
- -		bitmap_zero(supported, __ETHTOOL_LINK_MODE_MASK_NBITS);
 
- +		linkmode_zero(supported);
 
-  		dev_err(ds->dev, "Unsupported port: %i\n", port);
 
-  		return;
 
-  	}
 
- @@ -468,10 +468,8 @@ static void xrs700x_phylink_validate(str
 
-  	phylink_set(mask, 10baseT_Full);
 
-  	phylink_set(mask, 100baseT_Full);
 
-  
 
- -	bitmap_and(supported, supported, mask,
 
- -		   __ETHTOOL_LINK_MODE_MASK_NBITS);
 
- -	bitmap_and(state->advertising, state->advertising, mask,
 
- -		   __ETHTOOL_LINK_MODE_MASK_NBITS);
 
- +	linkmode_and(supported, supported, mask);
 
- +	linkmode_and(state->advertising, state->advertising, mask);
 
-  }
 
-  
 
-  static void xrs700x_mac_link_up(struct dsa_switch *ds, int port,
 
- --- a/drivers/net/ethernet/amd/xgbe/xgbe-ethtool.c
 
- +++ b/drivers/net/ethernet/amd/xgbe/xgbe-ethtool.c
 
- @@ -374,9 +374,8 @@ static int xgbe_set_link_ksettings(struc
 
-  		  __ETHTOOL_LINK_MODE_MASK_NBITS, cmd->link_modes.advertising,
 
-  		  __ETHTOOL_LINK_MODE_MASK_NBITS, lks->link_modes.supported);
 
-  
 
- -	bitmap_and(advertising,
 
- -		   cmd->link_modes.advertising, lks->link_modes.supported,
 
- -		   __ETHTOOL_LINK_MODE_MASK_NBITS);
 
- +	linkmode_and(advertising, cmd->link_modes.advertising,
 
- +		     lks->link_modes.supported);
 
-  
 
-  	if ((cmd->base.autoneg == AUTONEG_ENABLE) &&
 
-  	    bitmap_empty(advertising, __ETHTOOL_LINK_MODE_MASK_NBITS)) {
 
- @@ -389,8 +388,7 @@ static int xgbe_set_link_ksettings(struc
 
-  	pdata->phy.autoneg = cmd->base.autoneg;
 
-  	pdata->phy.speed = speed;
 
-  	pdata->phy.duplex = cmd->base.duplex;
 
- -	bitmap_copy(lks->link_modes.advertising, advertising,
 
- -		    __ETHTOOL_LINK_MODE_MASK_NBITS);
 
- +	linkmode_copy(lks->link_modes.advertising, advertising);
 
-  
 
-  	if (cmd->base.autoneg == AUTONEG_ENABLE)
 
-  		XGBE_SET_ADV(lks, Autoneg);
 
- --- a/drivers/net/ethernet/atheros/ag71xx.c
 
- +++ b/drivers/net/ethernet/atheros/ag71xx.c
 
- @@ -1082,14 +1082,12 @@ static void ag71xx_mac_validate(struct p
 
-  		phylink_set(mask, 1000baseX_Full);
 
-  	}
 
-  
 
- -	bitmap_and(supported, supported, mask,
 
- -		   __ETHTOOL_LINK_MODE_MASK_NBITS);
 
- -	bitmap_and(state->advertising, state->advertising, mask,
 
- -		   __ETHTOOL_LINK_MODE_MASK_NBITS);
 
- +	linkmode_and(supported, supported, mask);
 
- +	linkmode_and(state->advertising, state->advertising, mask);
 
-  
 
-  	return;
 
-  unsupported:
 
- -	bitmap_zero(supported, __ETHTOOL_LINK_MODE_MASK_NBITS);
 
- +	linkmode_zero(supported);
 
-  }
 
-  
 
-  static void ag71xx_mac_pcs_get_state(struct phylink_config *config,
 
- --- a/drivers/net/ethernet/cadence/macb_main.c
 
- +++ b/drivers/net/ethernet/cadence/macb_main.c
 
- @@ -523,21 +523,21 @@ static void macb_validate(struct phylink
 
-  	    state->interface != PHY_INTERFACE_MODE_SGMII &&
 
-  	    state->interface != PHY_INTERFACE_MODE_10GBASER &&
 
-  	    !phy_interface_mode_is_rgmii(state->interface)) {
 
- -		bitmap_zero(supported, __ETHTOOL_LINK_MODE_MASK_NBITS);
 
- +		linkmode_zero(supported);
 
-  		return;
 
-  	}
 
-  
 
-  	if (!macb_is_gem(bp) &&
 
-  	    (state->interface == PHY_INTERFACE_MODE_GMII ||
 
-  	     phy_interface_mode_is_rgmii(state->interface))) {
 
- -		bitmap_zero(supported, __ETHTOOL_LINK_MODE_MASK_NBITS);
 
- +		linkmode_zero(supported);
 
-  		return;
 
-  	}
 
-  
 
-  	if (state->interface == PHY_INTERFACE_MODE_10GBASER &&
 
-  	    !(bp->caps & MACB_CAPS_HIGH_SPEED &&
 
-  	      bp->caps & MACB_CAPS_PCS)) {
 
- -		bitmap_zero(supported, __ETHTOOL_LINK_MODE_MASK_NBITS);
 
- +		linkmode_zero(supported);
 
-  		return;
 
-  	}
 
-  
 
- @@ -576,9 +576,8 @@ static void macb_validate(struct phylink
 
-  			phylink_set(mask, 1000baseT_Half);
 
-  	}
 
-  out:
 
- -	bitmap_and(supported, supported, mask, __ETHTOOL_LINK_MODE_MASK_NBITS);
 
- -	bitmap_and(state->advertising, state->advertising, mask,
 
- -		   __ETHTOOL_LINK_MODE_MASK_NBITS);
 
- +	linkmode_and(supported, supported, mask);
 
- +	linkmode_and(state->advertising, state->advertising, mask);
 
-  }
 
-  
 
-  static void macb_usx_pcs_link_up(struct phylink_pcs *pcs, unsigned int mode,
 
- --- a/drivers/net/ethernet/freescale/enetc/enetc_pf.c
 
- +++ b/drivers/net/ethernet/freescale/enetc/enetc_pf.c
 
- @@ -965,7 +965,7 @@ static void enetc_pl_mac_validate(struct
 
-  	    state->interface != PHY_INTERFACE_MODE_2500BASEX &&
 
-  	    state->interface != PHY_INTERFACE_MODE_USXGMII &&
 
-  	    !phy_interface_mode_is_rgmii(state->interface)) {
 
- -		bitmap_zero(supported, __ETHTOOL_LINK_MODE_MASK_NBITS);
 
- +		linkmode_zero(supported);
 
-  		return;
 
-  	}
 
-  
 
- @@ -988,10 +988,8 @@ static void enetc_pl_mac_validate(struct
 
-  		phylink_set(mask, 2500baseX_Full);
 
-  	}
 
-  
 
- -	bitmap_and(supported, supported, mask,
 
- -		   __ETHTOOL_LINK_MODE_MASK_NBITS);
 
- -	bitmap_and(state->advertising, state->advertising, mask,
 
- -		   __ETHTOOL_LINK_MODE_MASK_NBITS);
 
- +	linkmode_and(supported, supported, mask);
 
- +	linkmode_and(state->advertising, state->advertising, mask);
 
-  }
 
-  
 
-  static void enetc_pl_mac_config(struct phylink_config *config,
 
- --- a/drivers/net/ethernet/huawei/hinic/hinic_ethtool.c
 
- +++ b/drivers/net/ethernet/huawei/hinic/hinic_ethtool.c
 
- @@ -322,12 +322,10 @@ static int hinic_get_link_ksettings(stru
 
-  		}
 
-  	}
 
-  
 
- -	bitmap_copy(link_ksettings->link_modes.supported,
 
- -		    (unsigned long *)&settings.supported,
 
- -		    __ETHTOOL_LINK_MODE_MASK_NBITS);
 
- -	bitmap_copy(link_ksettings->link_modes.advertising,
 
- -		    (unsigned long *)&settings.advertising,
 
- -		    __ETHTOOL_LINK_MODE_MASK_NBITS);
 
- +	linkmode_copy(link_ksettings->link_modes.supported,
 
- +		      (unsigned long *)&settings.supported);
 
- +	linkmode_copy(link_ksettings->link_modes.advertising,
 
- +		      (unsigned long *)&settings.advertising);
 
-  
 
-  	return 0;
 
-  }
 
- --- a/drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c
 
- +++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c
 
- @@ -467,9 +467,8 @@ static int ixgbe_set_link_ksettings(stru
 
-  		 * this function does not support duplex forcing, but can
 
-  		 * limit the advertising of the adapter to the specified speed
 
-  		 */
 
- -		if (!bitmap_subset(cmd->link_modes.advertising,
 
- -				   cmd->link_modes.supported,
 
- -				   __ETHTOOL_LINK_MODE_MASK_NBITS))
 
- +		if (!linkmode_subset(cmd->link_modes.advertising,
 
- +				     cmd->link_modes.supported))
 
-  			return -EINVAL;
 
-  
 
-  		/* only allow one speed at a time if no autoneg */
 
- --- a/drivers/net/ethernet/marvell/mvneta.c
 
- +++ b/drivers/net/ethernet/marvell/mvneta.c
 
- @@ -3835,14 +3835,14 @@ static void mvneta_validate(struct phyli
 
-  	 */
 
-  	if (phy_interface_mode_is_8023z(state->interface)) {
 
-  		if (!phylink_test(state->advertising, Autoneg)) {
 
- -			bitmap_zero(supported, __ETHTOOL_LINK_MODE_MASK_NBITS);
 
- +			linkmode_zero(supported);
 
-  			return;
 
-  		}
 
-  	} else if (state->interface != PHY_INTERFACE_MODE_NA &&
 
-  		   state->interface != PHY_INTERFACE_MODE_QSGMII &&
 
-  		   state->interface != PHY_INTERFACE_MODE_SGMII &&
 
-  		   !phy_interface_mode_is_rgmii(state->interface)) {
 
- -		bitmap_zero(supported, __ETHTOOL_LINK_MODE_MASK_NBITS);
 
- +		linkmode_zero(supported);
 
-  		return;
 
-  	}
 
-  
 
- @@ -3871,10 +3871,8 @@ static void mvneta_validate(struct phyli
 
-  		phylink_set(mask, 100baseT_Full);
 
-  	}
 
-  
 
- -	bitmap_and(supported, supported, mask,
 
- -		   __ETHTOOL_LINK_MODE_MASK_NBITS);
 
- -	bitmap_and(state->advertising, state->advertising, mask,
 
- -		   __ETHTOOL_LINK_MODE_MASK_NBITS);
 
- +	linkmode_and(supported, supported, mask);
 
- +	linkmode_and(state->advertising, state->advertising, mask);
 
-  
 
-  	/* We can only operate at 2500BaseX or 1000BaseX.  If requested
 
-  	 * to advertise both, only report advertising at 2500BaseX.
 
- --- a/drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c
 
- +++ b/drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c
 
- @@ -6352,15 +6352,14 @@ static void mvpp2_phylink_validate(struc
 
-  		goto empty_set;
 
-  	}
 
-  
 
- -	bitmap_and(supported, supported, mask, __ETHTOOL_LINK_MODE_MASK_NBITS);
 
- -	bitmap_and(state->advertising, state->advertising, mask,
 
- -		   __ETHTOOL_LINK_MODE_MASK_NBITS);
 
- +	linkmode_and(supported, supported, mask);
 
- +	linkmode_and(state->advertising, state->advertising, mask);
 
-  
 
-  	phylink_helper_basex_speed(state);
 
-  	return;
 
-  
 
-  empty_set:
 
- -	bitmap_zero(supported, __ETHTOOL_LINK_MODE_MASK_NBITS);
 
- +	linkmode_zero(supported);
 
-  }
 
-  
 
-  static void mvpp2_xlg_config(struct mvpp2_port *port, unsigned int mode,
 
- --- a/drivers/net/ethernet/marvell/octeontx2/nic/otx2_ethtool.c
 
- +++ b/drivers/net/ethernet/marvell/octeontx2/nic/otx2_ethtool.c
 
- @@ -1168,9 +1168,8 @@ static int otx2_set_link_ksettings(struc
 
-  	otx2_get_link_ksettings(netdev, &cur_ks);
 
-  
 
-  	/* Check requested modes against supported modes by hardware */
 
- -	if (!bitmap_subset(cmd->link_modes.advertising,
 
- -			   cur_ks.link_modes.supported,
 
- -			   __ETHTOOL_LINK_MODE_MASK_NBITS))
 
- +	if (!linkmode_subset(cmd->link_modes.advertising,
 
- +			     cur_ks.link_modes.supported))
 
-  		return -EINVAL;
 
-  
 
-  	mutex_lock(&mbox->lock);
 
- --- a/drivers/net/ethernet/marvell/pxa168_eth.c
 
- +++ b/drivers/net/ethernet/marvell/pxa168_eth.c
 
- @@ -977,8 +977,7 @@ static int pxa168_init_phy(struct net_de
 
-  	cmd.base.phy_address = pep->phy_addr;
 
-  	cmd.base.speed = pep->phy_speed;
 
-  	cmd.base.duplex = pep->phy_duplex;
 
- -	bitmap_copy(cmd.link_modes.advertising, PHY_BASIC_FEATURES,
 
- -		    __ETHTOOL_LINK_MODE_MASK_NBITS);
 
- +	linkmode_copy(cmd.link_modes.advertising, PHY_BASIC_FEATURES);
 
-  	cmd.base.autoneg = AUTONEG_ENABLE;
 
-  
 
-  	if (cmd.base.speed != 0)
 
- --- a/drivers/net/ethernet/mellanox/mlx4/en_ethtool.c
 
- +++ b/drivers/net/ethernet/mellanox/mlx4/en_ethtool.c
 
- @@ -39,6 +39,7 @@
 
-  #include <linux/in.h>
 
-  #include <net/ip.h>
 
-  #include <linux/bitmap.h>
 
- +#include <linux/mii.h>
 
-  
 
-  #include "mlx4_en.h"
 
-  #include "en_port.h"
 
- @@ -643,10 +644,8 @@ static unsigned long *ptys2ethtool_link_
 
-  		unsigned int i;						\
 
-  		cfg = &ptys2ethtool_map[reg_];				\
 
-  		cfg->speed = speed_;					\
 
- -		bitmap_zero(cfg->supported,				\
 
- -			    __ETHTOOL_LINK_MODE_MASK_NBITS);		\
 
- -		bitmap_zero(cfg->advertised,				\
 
- -			    __ETHTOOL_LINK_MODE_MASK_NBITS);		\
 
- +		linkmode_zero(cfg->supported);				\
 
- +		linkmode_zero(cfg->advertised);				\
 
-  		for (i = 0 ; i < ARRAY_SIZE(modes) ; ++i) {		\
 
-  			__set_bit(modes[i], cfg->supported);		\
 
-  			__set_bit(modes[i], cfg->advertised);		\
 
- @@ -702,10 +701,8 @@ static void ptys2ethtool_update_link_mod
 
-  	int i;
 
-  	for (i = 0; i < MLX4_LINK_MODES_SZ; i++) {
 
-  		if (eth_proto & MLX4_PROT_MASK(i))
 
- -			bitmap_or(link_modes, link_modes,
 
- -				  ptys2ethtool_link_mode(&ptys2ethtool_map[i],
 
- -							 report),
 
- -				  __ETHTOOL_LINK_MODE_MASK_NBITS);
 
- +			linkmode_or(link_modes, link_modes,
 
- +				    ptys2ethtool_link_mode(&ptys2ethtool_map[i], report));
 
-  	}
 
-  }
 
-  
 
- @@ -716,11 +713,9 @@ static u32 ethtool2ptys_link_modes(const
 
-  	u32 ptys_modes = 0;
 
-  
 
-  	for (i = 0; i < MLX4_LINK_MODES_SZ; i++) {
 
- -		if (bitmap_intersects(
 
- -			    ptys2ethtool_link_mode(&ptys2ethtool_map[i],
 
- -						   report),
 
- -			    link_modes,
 
- -			    __ETHTOOL_LINK_MODE_MASK_NBITS))
 
- +		ulong *map_mode = ptys2ethtool_link_mode(&ptys2ethtool_map[i],
 
- +							 report);
 
- +		if (linkmode_intersects(map_mode, link_modes))
 
-  			ptys_modes |= 1 << i;
 
-  	}
 
-  	return ptys_modes;
 
- --- a/drivers/net/ethernet/microchip/sparx5/sparx5_phylink.c
 
- +++ b/drivers/net/ethernet/microchip/sparx5/sparx5_phylink.c
 
- @@ -92,12 +92,11 @@ static void sparx5_phylink_validate(stru
 
-  		}
 
-  		break;
 
-  	default:
 
- -		bitmap_zero(supported, __ETHTOOL_LINK_MODE_MASK_NBITS);
 
- +		linkmode_zero(supported);
 
-  		return;
 
-  	}
 
- -	bitmap_and(supported, supported, mask, __ETHTOOL_LINK_MODE_MASK_NBITS);
 
- -	bitmap_and(state->advertising, state->advertising, mask,
 
- -		   __ETHTOOL_LINK_MODE_MASK_NBITS);
 
- +	linkmode_and(supported, supported, mask);
 
- +	linkmode_and(state->advertising, state->advertising, mask);
 
-  }
 
-  
 
-  static void sparx5_phylink_mac_config(struct phylink_config *config,
 
- --- a/drivers/net/ethernet/mscc/ocelot_net.c
 
- +++ b/drivers/net/ethernet/mscc/ocelot_net.c
 
- @@ -1509,7 +1509,7 @@ static void vsc7514_phylink_validate(str
 
-  
 
-  	if (state->interface != PHY_INTERFACE_MODE_NA &&
 
-  	    state->interface != ocelot_port->phy_mode) {
 
- -		bitmap_zero(supported, __ETHTOOL_LINK_MODE_MASK_NBITS);
 
- +		linkmode_zero(supported);
 
-  		return;
 
-  	}
 
-  
 
- @@ -1528,9 +1528,8 @@ static void vsc7514_phylink_validate(str
 
-  	phylink_set(mask, 2500baseT_Full);
 
-  	phylink_set(mask, 2500baseX_Full);
 
-  
 
- -	bitmap_and(supported, supported, mask, __ETHTOOL_LINK_MODE_MASK_NBITS);
 
- -	bitmap_and(state->advertising, state->advertising, mask,
 
- -		   __ETHTOOL_LINK_MODE_MASK_NBITS);
 
- +	linkmode_and(supported, supported, mask);
 
- +	linkmode_and(state->advertising, state->advertising, mask);
 
-  }
 
-  
 
-  static void vsc7514_phylink_mac_config(struct phylink_config *config,
 
- --- a/drivers/net/ethernet/pensando/ionic/ionic_ethtool.c
 
- +++ b/drivers/net/ethernet/pensando/ionic/ionic_ethtool.c
 
- @@ -228,8 +228,7 @@ static int ionic_get_link_ksettings(stru
 
-  		break;
 
-  	}
 
-  
 
- -	bitmap_copy(ks->link_modes.advertising, ks->link_modes.supported,
 
- -		    __ETHTOOL_LINK_MODE_MASK_NBITS);
 
- +	linkmode_copy(ks->link_modes.advertising, ks->link_modes.supported);
 
-  
 
-  	ethtool_link_ksettings_add_link_mode(ks, supported, FEC_BASER);
 
-  	ethtool_link_ksettings_add_link_mode(ks, supported, FEC_RS);
 
- --- a/drivers/net/ethernet/xilinx/xilinx_axienet_main.c
 
- +++ b/drivers/net/ethernet/xilinx/xilinx_axienet_main.c
 
- @@ -1565,7 +1565,7 @@ static void axienet_validate(struct phyl
 
-  			netdev_warn(ndev, "Cannot use PHY mode %s, supported: %s\n",
 
-  				    phy_modes(state->interface),
 
-  				    phy_modes(lp->phy_mode));
 
- -			bitmap_zero(supported, __ETHTOOL_LINK_MODE_MASK_NBITS);
 
- +			linkmode_zero(supported);
 
-  			return;
 
-  		}
 
-  	}
 
- @@ -1598,10 +1598,8 @@ static void axienet_validate(struct phyl
 
-  		break;
 
-  	}
 
-  
 
- -	bitmap_and(supported, supported, mask,
 
- -		   __ETHTOOL_LINK_MODE_MASK_NBITS);
 
- -	bitmap_and(state->advertising, state->advertising, mask,
 
- -		   __ETHTOOL_LINK_MODE_MASK_NBITS);
 
- +	linkmode_and(supported, supported, mask);
 
- +	linkmode_and(state->advertising, state->advertising, mask);
 
-  }
 
-  
 
-  static void axienet_mac_pcs_get_state(struct phylink_config *config,
 
- --- a/drivers/net/pcs/pcs-xpcs.c
 
- +++ b/drivers/net/pcs/pcs-xpcs.c
 
- @@ -637,7 +637,7 @@ void xpcs_validate(struct dw_xpcs *xpcs,
 
-  	if (state->interface == PHY_INTERFACE_MODE_NA)
 
-  		return;
 
-  
 
- -	bitmap_zero(xpcs_supported, __ETHTOOL_LINK_MODE_MASK_NBITS);
 
- +	linkmode_zero(xpcs_supported);
 
-  
 
-  	compat = xpcs_find_compat(xpcs->id, state->interface);
 
-  
 
- --- a/drivers/net/phy/sfp-bus.c
 
- +++ b/drivers/net/phy/sfp-bus.c
 
- @@ -379,7 +379,7 @@ void sfp_parse_support(struct sfp_bus *b
 
-  	if (bus->sfp_quirk)
 
-  		bus->sfp_quirk->modes(id, modes);
 
-  
 
- -	bitmap_or(support, support, modes, __ETHTOOL_LINK_MODE_MASK_NBITS);
 
- +	linkmode_or(support, support, modes);
 
-  
 
-  	phylink_set(support, Autoneg);
 
-  	phylink_set(support, Pause);
 
- --- a/net/ethtool/ioctl.c
 
- +++ b/net/ethtool/ioctl.c
 
- @@ -335,7 +335,7 @@ EXPORT_SYMBOL(ethtool_intersect_link_mas
 
-  void ethtool_convert_legacy_u32_to_link_mode(unsigned long *dst,
 
-  					     u32 legacy_u32)
 
-  {
 
- -	bitmap_zero(dst, __ETHTOOL_LINK_MODE_MASK_NBITS);
 
- +	linkmode_zero(dst);
 
-  	dst[0] = legacy_u32;
 
-  }
 
-  EXPORT_SYMBOL(ethtool_convert_legacy_u32_to_link_mode);
 
- @@ -350,11 +350,10 @@ bool ethtool_convert_link_mode_to_legacy
 
-  	if (__ETHTOOL_LINK_MODE_MASK_NBITS > 32) {
 
-  		__ETHTOOL_DECLARE_LINK_MODE_MASK(ext);
 
-  
 
- -		bitmap_zero(ext, __ETHTOOL_LINK_MODE_MASK_NBITS);
 
- +		linkmode_zero(ext);
 
-  		bitmap_fill(ext, 32);
 
-  		bitmap_complement(ext, ext, __ETHTOOL_LINK_MODE_MASK_NBITS);
 
- -		if (bitmap_intersects(ext, src,
 
- -				      __ETHTOOL_LINK_MODE_MASK_NBITS)) {
 
- +		if (linkmode_intersects(ext, src)) {
 
-  			/* src mask goes beyond bit 31 */
 
-  			retval = false;
 
-  		}
 
 
  |