703-00-v5.16-net-convert-users-of-bitmap_foo-to-linkmode_foo.patch 30 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948
  1. From 4973056cceacc70966396039fae99867dfafd796 Mon Sep 17 00:00:00 2001
  2. From: Sean Anderson <[email protected]>
  3. Date: Fri, 22 Oct 2021 18:41:04 -0400
  4. Subject: [PATCH] net: convert users of bitmap_foo() to linkmode_foo()
  5. This converts instances of
  6. bitmap_foo(args..., __ETHTOOL_LINK_MODE_MASK_NBITS)
  7. to
  8. linkmode_foo(args...)
  9. I manually fixed up some lines to prevent them from being excessively
  10. long. Otherwise, this change was generated with the following semantic
  11. patch:
  12. // Generated with
  13. // echo linux/linkmode.h > includes
  14. // git grep -Flf includes include/ | cut -f 2- -d / | cat includes - \
  15. // | sort | uniq | tee new_includes | wc -l && mv new_includes includes
  16. // and repeating until the number stopped going up
  17. @i@
  18. @@
  19. (
  20. #include <linux/acpi_mdio.h>
  21. |
  22. #include <linux/brcmphy.h>
  23. |
  24. #include <linux/dsa/loop.h>
  25. |
  26. #include <linux/dsa/sja1105.h>
  27. |
  28. #include <linux/ethtool.h>
  29. |
  30. #include <linux/ethtool_netlink.h>
  31. |
  32. #include <linux/fec.h>
  33. |
  34. #include <linux/fs_enet_pd.h>
  35. |
  36. #include <linux/fsl/enetc_mdio.h>
  37. |
  38. #include <linux/fwnode_mdio.h>
  39. |
  40. #include <linux/linkmode.h>
  41. |
  42. #include <linux/lsm_audit.h>
  43. |
  44. #include <linux/mdio-bitbang.h>
  45. |
  46. #include <linux/mdio.h>
  47. |
  48. #include <linux/mdio-mux.h>
  49. |
  50. #include <linux/mii.h>
  51. |
  52. #include <linux/mii_timestamper.h>
  53. |
  54. #include <linux/mlx5/accel.h>
  55. |
  56. #include <linux/mlx5/cq.h>
  57. |
  58. #include <linux/mlx5/device.h>
  59. |
  60. #include <linux/mlx5/driver.h>
  61. |
  62. #include <linux/mlx5/eswitch.h>
  63. |
  64. #include <linux/mlx5/fs.h>
  65. |
  66. #include <linux/mlx5/port.h>
  67. |
  68. #include <linux/mlx5/qp.h>
  69. |
  70. #include <linux/mlx5/rsc_dump.h>
  71. |
  72. #include <linux/mlx5/transobj.h>
  73. |
  74. #include <linux/mlx5/vport.h>
  75. |
  76. #include <linux/of_mdio.h>
  77. |
  78. #include <linux/of_net.h>
  79. |
  80. #include <linux/pcs-lynx.h>
  81. |
  82. #include <linux/pcs/pcs-xpcs.h>
  83. |
  84. #include <linux/phy.h>
  85. |
  86. #include <linux/phy_led_triggers.h>
  87. |
  88. #include <linux/phylink.h>
  89. |
  90. #include <linux/platform_data/bcmgenet.h>
  91. |
  92. #include <linux/platform_data/xilinx-ll-temac.h>
  93. |
  94. #include <linux/pxa168_eth.h>
  95. |
  96. #include <linux/qed/qed_eth_if.h>
  97. |
  98. #include <linux/qed/qed_fcoe_if.h>
  99. |
  100. #include <linux/qed/qed_if.h>
  101. |
  102. #include <linux/qed/qed_iov_if.h>
  103. |
  104. #include <linux/qed/qed_iscsi_if.h>
  105. |
  106. #include <linux/qed/qed_ll2_if.h>
  107. |
  108. #include <linux/qed/qed_nvmetcp_if.h>
  109. |
  110. #include <linux/qed/qed_rdma_if.h>
  111. |
  112. #include <linux/sfp.h>
  113. |
  114. #include <linux/sh_eth.h>
  115. |
  116. #include <linux/smsc911x.h>
  117. |
  118. #include <linux/soc/nxp/lpc32xx-misc.h>
  119. |
  120. #include <linux/stmmac.h>
  121. |
  122. #include <linux/sunrpc/svc_rdma.h>
  123. |
  124. #include <linux/sxgbe_platform.h>
  125. |
  126. #include <net/cfg80211.h>
  127. |
  128. #include <net/dsa.h>
  129. |
  130. #include <net/mac80211.h>
  131. |
  132. #include <net/selftests.h>
  133. |
  134. #include <rdma/ib_addr.h>
  135. |
  136. #include <rdma/ib_cache.h>
  137. |
  138. #include <rdma/ib_cm.h>
  139. |
  140. #include <rdma/ib_hdrs.h>
  141. |
  142. #include <rdma/ib_mad.h>
  143. |
  144. #include <rdma/ib_marshall.h>
  145. |
  146. #include <rdma/ib_pack.h>
  147. |
  148. #include <rdma/ib_pma.h>
  149. |
  150. #include <rdma/ib_sa.h>
  151. |
  152. #include <rdma/ib_smi.h>
  153. |
  154. #include <rdma/ib_umem.h>
  155. |
  156. #include <rdma/ib_umem_odp.h>
  157. |
  158. #include <rdma/ib_verbs.h>
  159. |
  160. #include <rdma/iw_cm.h>
  161. |
  162. #include <rdma/mr_pool.h>
  163. |
  164. #include <rdma/opa_addr.h>
  165. |
  166. #include <rdma/opa_port_info.h>
  167. |
  168. #include <rdma/opa_smi.h>
  169. |
  170. #include <rdma/opa_vnic.h>
  171. |
  172. #include <rdma/rdma_cm.h>
  173. |
  174. #include <rdma/rdma_cm_ib.h>
  175. |
  176. #include <rdma/rdmavt_cq.h>
  177. |
  178. #include <rdma/rdma_vt.h>
  179. |
  180. #include <rdma/rdmavt_qp.h>
  181. |
  182. #include <rdma/rw.h>
  183. |
  184. #include <rdma/tid_rdma_defs.h>
  185. |
  186. #include <rdma/uverbs_ioctl.h>
  187. |
  188. #include <rdma/uverbs_named_ioctl.h>
  189. |
  190. #include <rdma/uverbs_std_types.h>
  191. |
  192. #include <rdma/uverbs_types.h>
  193. |
  194. #include <soc/mscc/ocelot.h>
  195. |
  196. #include <soc/mscc/ocelot_ptp.h>
  197. |
  198. #include <soc/mscc/ocelot_vcap.h>
  199. |
  200. #include <trace/events/ib_mad.h>
  201. |
  202. #include <trace/events/rdma_core.h>
  203. |
  204. #include <trace/events/rdma.h>
  205. |
  206. #include <trace/events/rpcrdma.h>
  207. |
  208. #include <uapi/linux/ethtool.h>
  209. |
  210. #include <uapi/linux/ethtool_netlink.h>
  211. |
  212. #include <uapi/linux/mdio.h>
  213. |
  214. #include <uapi/linux/mii.h>
  215. )
  216. @depends on i@
  217. expression list args;
  218. @@
  219. (
  220. - bitmap_zero(args, __ETHTOOL_LINK_MODE_MASK_NBITS)
  221. + linkmode_zero(args)
  222. |
  223. - bitmap_copy(args, __ETHTOOL_LINK_MODE_MASK_NBITS)
  224. + linkmode_copy(args)
  225. |
  226. - bitmap_and(args, __ETHTOOL_LINK_MODE_MASK_NBITS)
  227. + linkmode_and(args)
  228. |
  229. - bitmap_or(args, __ETHTOOL_LINK_MODE_MASK_NBITS)
  230. + linkmode_or(args)
  231. |
  232. - bitmap_empty(args, ETHTOOL_LINK_MODE_MASK_NBITS)
  233. + linkmode_empty(args)
  234. |
  235. - bitmap_andnot(args, __ETHTOOL_LINK_MODE_MASK_NBITS)
  236. + linkmode_andnot(args)
  237. |
  238. - bitmap_equal(args, __ETHTOOL_LINK_MODE_MASK_NBITS)
  239. + linkmode_equal(args)
  240. |
  241. - bitmap_intersects(args, __ETHTOOL_LINK_MODE_MASK_NBITS)
  242. + linkmode_intersects(args)
  243. |
  244. - bitmap_subset(args, __ETHTOOL_LINK_MODE_MASK_NBITS)
  245. + linkmode_subset(args)
  246. )
  247. Add missing linux/mii.h include to mellanox. -DaveM
  248. Signed-off-by: Sean Anderson <[email protected]>
  249. Signed-off-by: David S. Miller <[email protected]>
  250. ---
  251. drivers/net/dsa/b53/b53_common.c | 6 ++----
  252. drivers/net/dsa/bcm_sf2.c | 8 +++----
  253. drivers/net/dsa/hirschmann/hellcreek.c | 6 ++----
  254. drivers/net/dsa/lantiq_gswip.c | 14 ++++++-------
  255. drivers/net/dsa/microchip/ksz8795.c | 8 +++----
  256. drivers/net/dsa/mv88e6xxx/chip.c | 5 ++---
  257. drivers/net/dsa/ocelot/felix_vsc9959.c | 8 +++----
  258. drivers/net/dsa/ocelot/seville_vsc9953.c | 8 +++----
  259. drivers/net/dsa/qca/ar9331.c | 10 ++++-----
  260. drivers/net/dsa/sja1105/sja1105_main.c | 7 +++----
  261. drivers/net/dsa/xrs700x/xrs700x.c | 8 +++----
  262. drivers/net/ethernet/amd/xgbe/xgbe-ethtool.c | 8 +++----
  263. drivers/net/ethernet/atheros/ag71xx.c | 8 +++----
  264. drivers/net/ethernet/cadence/macb_main.c | 11 +++++-----
  265. .../net/ethernet/freescale/enetc/enetc_pf.c | 8 +++----
  266. .../net/ethernet/huawei/hinic/hinic_ethtool.c | 10 ++++-----
  267. .../net/ethernet/intel/ixgbe/ixgbe_ethtool.c | 5 ++---
  268. drivers/net/ethernet/marvell/mvneta.c | 10 ++++-----
  269. .../net/ethernet/marvell/mvpp2/mvpp2_main.c | 7 +++----
  270. .../marvell/octeontx2/nic/otx2_ethtool.c | 5 ++---
  271. drivers/net/ethernet/marvell/pxa168_eth.c | 3 +--
  272. .../net/ethernet/mellanox/mlx4/en_ethtool.c | 21 +++++++------------
  273. .../microchip/sparx5/sparx5_phylink.c | 7 +++----
  274. drivers/net/ethernet/mscc/ocelot_net.c | 7 +++----
  275. .../ethernet/pensando/ionic/ionic_ethtool.c | 3 +--
  276. .../net/ethernet/xilinx/xilinx_axienet_main.c | 8 +++----
  277. drivers/net/pcs/pcs-xpcs.c | 2 +-
  278. drivers/net/phy/sfp-bus.c | 2 +-
  279. net/ethtool/ioctl.c | 7 +++----
  280. 29 files changed, 87 insertions(+), 133 deletions(-)
  281. --- a/drivers/net/dsa/b53/b53_common.c
  282. +++ b/drivers/net/dsa/b53/b53_common.c
  283. @@ -1349,10 +1349,8 @@ void b53_phylink_validate(struct dsa_swi
  284. phylink_set(mask, 100baseT_Full);
  285. }
  286. - bitmap_and(supported, supported, mask,
  287. - __ETHTOOL_LINK_MODE_MASK_NBITS);
  288. - bitmap_and(state->advertising, state->advertising, mask,
  289. - __ETHTOOL_LINK_MODE_MASK_NBITS);
  290. + linkmode_and(supported, supported, mask);
  291. + linkmode_and(state->advertising, state->advertising, mask);
  292. phylink_helper_basex_speed(state);
  293. }
  294. --- a/drivers/net/dsa/bcm_sf2.c
  295. +++ b/drivers/net/dsa/bcm_sf2.c
  296. @@ -692,7 +692,7 @@ static void bcm_sf2_sw_validate(struct d
  297. state->interface != PHY_INTERFACE_MODE_GMII &&
  298. state->interface != PHY_INTERFACE_MODE_INTERNAL &&
  299. state->interface != PHY_INTERFACE_MODE_MOCA) {
  300. - bitmap_zero(supported, __ETHTOOL_LINK_MODE_MASK_NBITS);
  301. + linkmode_zero(supported);
  302. if (port != core_readl(priv, CORE_IMP0_PRT_ID))
  303. dev_err(ds->dev,
  304. "Unsupported interface: %d for port %d\n",
  305. @@ -720,10 +720,8 @@ static void bcm_sf2_sw_validate(struct d
  306. phylink_set(mask, 100baseT_Half);
  307. phylink_set(mask, 100baseT_Full);
  308. - bitmap_and(supported, supported, mask,
  309. - __ETHTOOL_LINK_MODE_MASK_NBITS);
  310. - bitmap_and(state->advertising, state->advertising, mask,
  311. - __ETHTOOL_LINK_MODE_MASK_NBITS);
  312. + linkmode_and(supported, supported, mask);
  313. + linkmode_and(state->advertising, state->advertising, mask);
  314. }
  315. static void bcm_sf2_sw_mac_config(struct dsa_switch *ds, int port,
  316. --- a/drivers/net/dsa/hirschmann/hellcreek.c
  317. +++ b/drivers/net/dsa/hirschmann/hellcreek.c
  318. @@ -1476,10 +1476,8 @@ static void hellcreek_phylink_validate(s
  319. else
  320. phylink_set(mask, 1000baseT_Full);
  321. - bitmap_and(supported, supported, mask,
  322. - __ETHTOOL_LINK_MODE_MASK_NBITS);
  323. - bitmap_and(state->advertising, state->advertising, mask,
  324. - __ETHTOOL_LINK_MODE_MASK_NBITS);
  325. + linkmode_and(supported, supported, mask);
  326. + linkmode_and(state->advertising, state->advertising, mask);
  327. }
  328. static int
  329. --- a/drivers/net/dsa/lantiq_gswip.c
  330. +++ b/drivers/net/dsa/lantiq_gswip.c
  331. @@ -1452,10 +1452,8 @@ static void gswip_phylink_set_capab(unsi
  332. phylink_set(mask, 100baseT_Half);
  333. phylink_set(mask, 100baseT_Full);
  334. - bitmap_and(supported, supported, mask,
  335. - __ETHTOOL_LINK_MODE_MASK_NBITS);
  336. - bitmap_and(state->advertising, state->advertising, mask,
  337. - __ETHTOOL_LINK_MODE_MASK_NBITS);
  338. + linkmode_and(supported, supported, mask);
  339. + linkmode_and(state->advertising, state->advertising, mask);
  340. }
  341. static void gswip_xrx200_phylink_validate(struct dsa_switch *ds, int port,
  342. @@ -1483,7 +1481,7 @@ static void gswip_xrx200_phylink_validat
  343. goto unsupported;
  344. break;
  345. default:
  346. - bitmap_zero(supported, __ETHTOOL_LINK_MODE_MASK_NBITS);
  347. + linkmode_zero(supported);
  348. dev_err(ds->dev, "Unsupported port: %i\n", port);
  349. return;
  350. }
  351. @@ -1493,7 +1491,7 @@ static void gswip_xrx200_phylink_validat
  352. return;
  353. unsupported:
  354. - bitmap_zero(supported, __ETHTOOL_LINK_MODE_MASK_NBITS);
  355. + linkmode_zero(supported);
  356. dev_err(ds->dev, "Unsupported interface '%s' for port %d\n",
  357. phy_modes(state->interface), port);
  358. }
  359. @@ -1523,7 +1521,7 @@ static void gswip_xrx300_phylink_validat
  360. goto unsupported;
  361. break;
  362. default:
  363. - bitmap_zero(supported, __ETHTOOL_LINK_MODE_MASK_NBITS);
  364. + linkmode_zero(supported);
  365. dev_err(ds->dev, "Unsupported port: %i\n", port);
  366. return;
  367. }
  368. @@ -1533,7 +1531,7 @@ static void gswip_xrx300_phylink_validat
  369. return;
  370. unsupported:
  371. - bitmap_zero(supported, __ETHTOOL_LINK_MODE_MASK_NBITS);
  372. + linkmode_zero(supported);
  373. dev_err(ds->dev, "Unsupported interface '%s' for port %d\n",
  374. phy_modes(state->interface), port);
  375. }
  376. --- a/drivers/net/dsa/microchip/ksz8795.c
  377. +++ b/drivers/net/dsa/microchip/ksz8795.c
  378. @@ -1542,15 +1542,13 @@ static void ksz8_validate(struct dsa_swi
  379. phylink_set(mask, 100baseT_Half);
  380. phylink_set(mask, 100baseT_Full);
  381. - bitmap_and(supported, supported, mask,
  382. - __ETHTOOL_LINK_MODE_MASK_NBITS);
  383. - bitmap_and(state->advertising, state->advertising, mask,
  384. - __ETHTOOL_LINK_MODE_MASK_NBITS);
  385. + linkmode_and(supported, supported, mask);
  386. + linkmode_and(state->advertising, state->advertising, mask);
  387. return;
  388. unsupported:
  389. - bitmap_zero(supported, __ETHTOOL_LINK_MODE_MASK_NBITS);
  390. + linkmode_zero(supported);
  391. dev_err(ds->dev, "Unsupported interface: %s, port: %d\n",
  392. phy_modes(state->interface), port);
  393. }
  394. --- a/drivers/net/dsa/mv88e6xxx/chip.c
  395. +++ b/drivers/net/dsa/mv88e6xxx/chip.c
  396. @@ -683,9 +683,8 @@ static void mv88e6xxx_validate(struct ds
  397. if (chip->info->ops->phylink_validate)
  398. chip->info->ops->phylink_validate(chip, port, mask, state);
  399. - bitmap_and(supported, supported, mask, __ETHTOOL_LINK_MODE_MASK_NBITS);
  400. - bitmap_and(state->advertising, state->advertising, mask,
  401. - __ETHTOOL_LINK_MODE_MASK_NBITS);
  402. + linkmode_and(supported, supported, mask);
  403. + linkmode_and(state->advertising, state->advertising, mask);
  404. /* We can only operate at 2500BaseX or 1000BaseX. If requested
  405. * to advertise both, only report advertising at 2500BaseX.
  406. --- a/drivers/net/dsa/ocelot/felix_vsc9959.c
  407. +++ b/drivers/net/dsa/ocelot/felix_vsc9959.c
  408. @@ -944,7 +944,7 @@ static void vsc9959_phylink_validate(str
  409. if (state->interface != PHY_INTERFACE_MODE_NA &&
  410. state->interface != ocelot_port->phy_mode) {
  411. - bitmap_zero(supported, __ETHTOOL_LINK_MODE_MASK_NBITS);
  412. + linkmode_zero(supported);
  413. return;
  414. }
  415. @@ -966,10 +966,8 @@ static void vsc9959_phylink_validate(str
  416. phylink_set(mask, 2500baseX_Full);
  417. }
  418. - bitmap_and(supported, supported, mask,
  419. - __ETHTOOL_LINK_MODE_MASK_NBITS);
  420. - bitmap_and(state->advertising, state->advertising, mask,
  421. - __ETHTOOL_LINK_MODE_MASK_NBITS);
  422. + linkmode_and(supported, supported, mask);
  423. + linkmode_and(state->advertising, state->advertising, mask);
  424. }
  425. static int vsc9959_prevalidate_phy_mode(struct ocelot *ocelot, int port,
  426. --- a/drivers/net/dsa/ocelot/seville_vsc9953.c
  427. +++ b/drivers/net/dsa/ocelot/seville_vsc9953.c
  428. @@ -1000,7 +1000,7 @@ static void vsc9953_phylink_validate(str
  429. if (state->interface != PHY_INTERFACE_MODE_NA &&
  430. state->interface != ocelot_port->phy_mode) {
  431. - bitmap_zero(supported, __ETHTOOL_LINK_MODE_MASK_NBITS);
  432. + linkmode_zero(supported);
  433. return;
  434. }
  435. @@ -1019,10 +1019,8 @@ static void vsc9953_phylink_validate(str
  436. phylink_set(mask, 2500baseX_Full);
  437. }
  438. - bitmap_and(supported, supported, mask,
  439. - __ETHTOOL_LINK_MODE_MASK_NBITS);
  440. - bitmap_and(state->advertising, state->advertising, mask,
  441. - __ETHTOOL_LINK_MODE_MASK_NBITS);
  442. + linkmode_and(supported, supported, mask);
  443. + linkmode_and(state->advertising, state->advertising, mask);
  444. }
  445. static int vsc9953_prevalidate_phy_mode(struct ocelot *ocelot, int port,
  446. --- a/drivers/net/dsa/qca/ar9331.c
  447. +++ b/drivers/net/dsa/qca/ar9331.c
  448. @@ -522,7 +522,7 @@ static void ar9331_sw_phylink_validate(s
  449. goto unsupported;
  450. break;
  451. default:
  452. - bitmap_zero(supported, __ETHTOOL_LINK_MODE_MASK_NBITS);
  453. + linkmode_zero(supported);
  454. dev_err(ds->dev, "Unsupported port: %i\n", port);
  455. return;
  456. }
  457. @@ -536,15 +536,13 @@ static void ar9331_sw_phylink_validate(s
  458. phylink_set(mask, 100baseT_Half);
  459. phylink_set(mask, 100baseT_Full);
  460. - bitmap_and(supported, supported, mask,
  461. - __ETHTOOL_LINK_MODE_MASK_NBITS);
  462. - bitmap_and(state->advertising, state->advertising, mask,
  463. - __ETHTOOL_LINK_MODE_MASK_NBITS);
  464. + linkmode_and(supported, supported, mask);
  465. + linkmode_and(state->advertising, state->advertising, mask);
  466. return;
  467. unsupported:
  468. - bitmap_zero(supported, __ETHTOOL_LINK_MODE_MASK_NBITS);
  469. + linkmode_zero(supported);
  470. dev_err(ds->dev, "Unsupported interface: %d, port: %d\n",
  471. state->interface, port);
  472. }
  473. --- a/drivers/net/dsa/sja1105/sja1105_main.c
  474. +++ b/drivers/net/dsa/sja1105/sja1105_main.c
  475. @@ -1360,7 +1360,7 @@ static void sja1105_phylink_validate(str
  476. */
  477. if (state->interface != PHY_INTERFACE_MODE_NA &&
  478. sja1105_phy_mode_mismatch(priv, port, state->interface)) {
  479. - bitmap_zero(supported, __ETHTOOL_LINK_MODE_MASK_NBITS);
  480. + linkmode_zero(supported);
  481. return;
  482. }
  483. @@ -1380,9 +1380,8 @@ static void sja1105_phylink_validate(str
  484. phylink_set(mask, 2500baseX_Full);
  485. }
  486. - bitmap_and(supported, supported, mask, __ETHTOOL_LINK_MODE_MASK_NBITS);
  487. - bitmap_and(state->advertising, state->advertising, mask,
  488. - __ETHTOOL_LINK_MODE_MASK_NBITS);
  489. + linkmode_and(supported, supported, mask);
  490. + linkmode_and(state->advertising, state->advertising, mask);
  491. }
  492. static int
  493. --- a/drivers/net/dsa/xrs700x/xrs700x.c
  494. +++ b/drivers/net/dsa/xrs700x/xrs700x.c
  495. @@ -457,7 +457,7 @@ static void xrs700x_phylink_validate(str
  496. phylink_set(mask, 1000baseT_Full);
  497. break;
  498. default:
  499. - bitmap_zero(supported, __ETHTOOL_LINK_MODE_MASK_NBITS);
  500. + linkmode_zero(supported);
  501. dev_err(ds->dev, "Unsupported port: %i\n", port);
  502. return;
  503. }
  504. @@ -468,10 +468,8 @@ static void xrs700x_phylink_validate(str
  505. phylink_set(mask, 10baseT_Full);
  506. phylink_set(mask, 100baseT_Full);
  507. - bitmap_and(supported, supported, mask,
  508. - __ETHTOOL_LINK_MODE_MASK_NBITS);
  509. - bitmap_and(state->advertising, state->advertising, mask,
  510. - __ETHTOOL_LINK_MODE_MASK_NBITS);
  511. + linkmode_and(supported, supported, mask);
  512. + linkmode_and(state->advertising, state->advertising, mask);
  513. }
  514. static void xrs700x_mac_link_up(struct dsa_switch *ds, int port,
  515. --- a/drivers/net/ethernet/amd/xgbe/xgbe-ethtool.c
  516. +++ b/drivers/net/ethernet/amd/xgbe/xgbe-ethtool.c
  517. @@ -374,9 +374,8 @@ static int xgbe_set_link_ksettings(struc
  518. __ETHTOOL_LINK_MODE_MASK_NBITS, cmd->link_modes.advertising,
  519. __ETHTOOL_LINK_MODE_MASK_NBITS, lks->link_modes.supported);
  520. - bitmap_and(advertising,
  521. - cmd->link_modes.advertising, lks->link_modes.supported,
  522. - __ETHTOOL_LINK_MODE_MASK_NBITS);
  523. + linkmode_and(advertising, cmd->link_modes.advertising,
  524. + lks->link_modes.supported);
  525. if ((cmd->base.autoneg == AUTONEG_ENABLE) &&
  526. bitmap_empty(advertising, __ETHTOOL_LINK_MODE_MASK_NBITS)) {
  527. @@ -389,8 +388,7 @@ static int xgbe_set_link_ksettings(struc
  528. pdata->phy.autoneg = cmd->base.autoneg;
  529. pdata->phy.speed = speed;
  530. pdata->phy.duplex = cmd->base.duplex;
  531. - bitmap_copy(lks->link_modes.advertising, advertising,
  532. - __ETHTOOL_LINK_MODE_MASK_NBITS);
  533. + linkmode_copy(lks->link_modes.advertising, advertising);
  534. if (cmd->base.autoneg == AUTONEG_ENABLE)
  535. XGBE_SET_ADV(lks, Autoneg);
  536. --- a/drivers/net/ethernet/atheros/ag71xx.c
  537. +++ b/drivers/net/ethernet/atheros/ag71xx.c
  538. @@ -1082,14 +1082,12 @@ static void ag71xx_mac_validate(struct p
  539. phylink_set(mask, 1000baseX_Full);
  540. }
  541. - bitmap_and(supported, supported, mask,
  542. - __ETHTOOL_LINK_MODE_MASK_NBITS);
  543. - bitmap_and(state->advertising, state->advertising, mask,
  544. - __ETHTOOL_LINK_MODE_MASK_NBITS);
  545. + linkmode_and(supported, supported, mask);
  546. + linkmode_and(state->advertising, state->advertising, mask);
  547. return;
  548. unsupported:
  549. - bitmap_zero(supported, __ETHTOOL_LINK_MODE_MASK_NBITS);
  550. + linkmode_zero(supported);
  551. }
  552. static void ag71xx_mac_pcs_get_state(struct phylink_config *config,
  553. --- a/drivers/net/ethernet/cadence/macb_main.c
  554. +++ b/drivers/net/ethernet/cadence/macb_main.c
  555. @@ -523,21 +523,21 @@ static void macb_validate(struct phylink
  556. state->interface != PHY_INTERFACE_MODE_SGMII &&
  557. state->interface != PHY_INTERFACE_MODE_10GBASER &&
  558. !phy_interface_mode_is_rgmii(state->interface)) {
  559. - bitmap_zero(supported, __ETHTOOL_LINK_MODE_MASK_NBITS);
  560. + linkmode_zero(supported);
  561. return;
  562. }
  563. if (!macb_is_gem(bp) &&
  564. (state->interface == PHY_INTERFACE_MODE_GMII ||
  565. phy_interface_mode_is_rgmii(state->interface))) {
  566. - bitmap_zero(supported, __ETHTOOL_LINK_MODE_MASK_NBITS);
  567. + linkmode_zero(supported);
  568. return;
  569. }
  570. if (state->interface == PHY_INTERFACE_MODE_10GBASER &&
  571. !(bp->caps & MACB_CAPS_HIGH_SPEED &&
  572. bp->caps & MACB_CAPS_PCS)) {
  573. - bitmap_zero(supported, __ETHTOOL_LINK_MODE_MASK_NBITS);
  574. + linkmode_zero(supported);
  575. return;
  576. }
  577. @@ -576,9 +576,8 @@ static void macb_validate(struct phylink
  578. phylink_set(mask, 1000baseT_Half);
  579. }
  580. out:
  581. - bitmap_and(supported, supported, mask, __ETHTOOL_LINK_MODE_MASK_NBITS);
  582. - bitmap_and(state->advertising, state->advertising, mask,
  583. - __ETHTOOL_LINK_MODE_MASK_NBITS);
  584. + linkmode_and(supported, supported, mask);
  585. + linkmode_and(state->advertising, state->advertising, mask);
  586. }
  587. static void macb_usx_pcs_link_up(struct phylink_pcs *pcs, unsigned int mode,
  588. --- a/drivers/net/ethernet/freescale/enetc/enetc_pf.c
  589. +++ b/drivers/net/ethernet/freescale/enetc/enetc_pf.c
  590. @@ -965,7 +965,7 @@ static void enetc_pl_mac_validate(struct
  591. state->interface != PHY_INTERFACE_MODE_2500BASEX &&
  592. state->interface != PHY_INTERFACE_MODE_USXGMII &&
  593. !phy_interface_mode_is_rgmii(state->interface)) {
  594. - bitmap_zero(supported, __ETHTOOL_LINK_MODE_MASK_NBITS);
  595. + linkmode_zero(supported);
  596. return;
  597. }
  598. @@ -988,10 +988,8 @@ static void enetc_pl_mac_validate(struct
  599. phylink_set(mask, 2500baseX_Full);
  600. }
  601. - bitmap_and(supported, supported, mask,
  602. - __ETHTOOL_LINK_MODE_MASK_NBITS);
  603. - bitmap_and(state->advertising, state->advertising, mask,
  604. - __ETHTOOL_LINK_MODE_MASK_NBITS);
  605. + linkmode_and(supported, supported, mask);
  606. + linkmode_and(state->advertising, state->advertising, mask);
  607. }
  608. static void enetc_pl_mac_config(struct phylink_config *config,
  609. --- a/drivers/net/ethernet/huawei/hinic/hinic_ethtool.c
  610. +++ b/drivers/net/ethernet/huawei/hinic/hinic_ethtool.c
  611. @@ -322,12 +322,10 @@ static int hinic_get_link_ksettings(stru
  612. }
  613. }
  614. - bitmap_copy(link_ksettings->link_modes.supported,
  615. - (unsigned long *)&settings.supported,
  616. - __ETHTOOL_LINK_MODE_MASK_NBITS);
  617. - bitmap_copy(link_ksettings->link_modes.advertising,
  618. - (unsigned long *)&settings.advertising,
  619. - __ETHTOOL_LINK_MODE_MASK_NBITS);
  620. + linkmode_copy(link_ksettings->link_modes.supported,
  621. + (unsigned long *)&settings.supported);
  622. + linkmode_copy(link_ksettings->link_modes.advertising,
  623. + (unsigned long *)&settings.advertising);
  624. return 0;
  625. }
  626. --- a/drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c
  627. +++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c
  628. @@ -467,9 +467,8 @@ static int ixgbe_set_link_ksettings(stru
  629. * this function does not support duplex forcing, but can
  630. * limit the advertising of the adapter to the specified speed
  631. */
  632. - if (!bitmap_subset(cmd->link_modes.advertising,
  633. - cmd->link_modes.supported,
  634. - __ETHTOOL_LINK_MODE_MASK_NBITS))
  635. + if (!linkmode_subset(cmd->link_modes.advertising,
  636. + cmd->link_modes.supported))
  637. return -EINVAL;
  638. /* only allow one speed at a time if no autoneg */
  639. --- a/drivers/net/ethernet/marvell/mvneta.c
  640. +++ b/drivers/net/ethernet/marvell/mvneta.c
  641. @@ -3835,14 +3835,14 @@ static void mvneta_validate(struct phyli
  642. */
  643. if (phy_interface_mode_is_8023z(state->interface)) {
  644. if (!phylink_test(state->advertising, Autoneg)) {
  645. - bitmap_zero(supported, __ETHTOOL_LINK_MODE_MASK_NBITS);
  646. + linkmode_zero(supported);
  647. return;
  648. }
  649. } else if (state->interface != PHY_INTERFACE_MODE_NA &&
  650. state->interface != PHY_INTERFACE_MODE_QSGMII &&
  651. state->interface != PHY_INTERFACE_MODE_SGMII &&
  652. !phy_interface_mode_is_rgmii(state->interface)) {
  653. - bitmap_zero(supported, __ETHTOOL_LINK_MODE_MASK_NBITS);
  654. + linkmode_zero(supported);
  655. return;
  656. }
  657. @@ -3871,10 +3871,8 @@ static void mvneta_validate(struct phyli
  658. phylink_set(mask, 100baseT_Full);
  659. }
  660. - bitmap_and(supported, supported, mask,
  661. - __ETHTOOL_LINK_MODE_MASK_NBITS);
  662. - bitmap_and(state->advertising, state->advertising, mask,
  663. - __ETHTOOL_LINK_MODE_MASK_NBITS);
  664. + linkmode_and(supported, supported, mask);
  665. + linkmode_and(state->advertising, state->advertising, mask);
  666. /* We can only operate at 2500BaseX or 1000BaseX. If requested
  667. * to advertise both, only report advertising at 2500BaseX.
  668. --- a/drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c
  669. +++ b/drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c
  670. @@ -6352,15 +6352,14 @@ static void mvpp2_phylink_validate(struc
  671. goto empty_set;
  672. }
  673. - bitmap_and(supported, supported, mask, __ETHTOOL_LINK_MODE_MASK_NBITS);
  674. - bitmap_and(state->advertising, state->advertising, mask,
  675. - __ETHTOOL_LINK_MODE_MASK_NBITS);
  676. + linkmode_and(supported, supported, mask);
  677. + linkmode_and(state->advertising, state->advertising, mask);
  678. phylink_helper_basex_speed(state);
  679. return;
  680. empty_set:
  681. - bitmap_zero(supported, __ETHTOOL_LINK_MODE_MASK_NBITS);
  682. + linkmode_zero(supported);
  683. }
  684. static void mvpp2_xlg_config(struct mvpp2_port *port, unsigned int mode,
  685. --- a/drivers/net/ethernet/marvell/octeontx2/nic/otx2_ethtool.c
  686. +++ b/drivers/net/ethernet/marvell/octeontx2/nic/otx2_ethtool.c
  687. @@ -1172,9 +1172,8 @@ static int otx2_set_link_ksettings(struc
  688. otx2_get_link_ksettings(netdev, &cur_ks);
  689. /* Check requested modes against supported modes by hardware */
  690. - if (!bitmap_subset(cmd->link_modes.advertising,
  691. - cur_ks.link_modes.supported,
  692. - __ETHTOOL_LINK_MODE_MASK_NBITS))
  693. + if (!linkmode_subset(cmd->link_modes.advertising,
  694. + cur_ks.link_modes.supported))
  695. return -EINVAL;
  696. mutex_lock(&mbox->lock);
  697. --- a/drivers/net/ethernet/marvell/pxa168_eth.c
  698. +++ b/drivers/net/ethernet/marvell/pxa168_eth.c
  699. @@ -977,8 +977,7 @@ static int pxa168_init_phy(struct net_de
  700. cmd.base.phy_address = pep->phy_addr;
  701. cmd.base.speed = pep->phy_speed;
  702. cmd.base.duplex = pep->phy_duplex;
  703. - bitmap_copy(cmd.link_modes.advertising, PHY_BASIC_FEATURES,
  704. - __ETHTOOL_LINK_MODE_MASK_NBITS);
  705. + linkmode_copy(cmd.link_modes.advertising, PHY_BASIC_FEATURES);
  706. cmd.base.autoneg = AUTONEG_ENABLE;
  707. if (cmd.base.speed != 0)
  708. --- a/drivers/net/ethernet/mellanox/mlx4/en_ethtool.c
  709. +++ b/drivers/net/ethernet/mellanox/mlx4/en_ethtool.c
  710. @@ -39,6 +39,7 @@
  711. #include <linux/in.h>
  712. #include <net/ip.h>
  713. #include <linux/bitmap.h>
  714. +#include <linux/mii.h>
  715. #include "mlx4_en.h"
  716. #include "en_port.h"
  717. @@ -643,10 +644,8 @@ static unsigned long *ptys2ethtool_link_
  718. unsigned int i; \
  719. cfg = &ptys2ethtool_map[reg_]; \
  720. cfg->speed = speed_; \
  721. - bitmap_zero(cfg->supported, \
  722. - __ETHTOOL_LINK_MODE_MASK_NBITS); \
  723. - bitmap_zero(cfg->advertised, \
  724. - __ETHTOOL_LINK_MODE_MASK_NBITS); \
  725. + linkmode_zero(cfg->supported); \
  726. + linkmode_zero(cfg->advertised); \
  727. for (i = 0 ; i < ARRAY_SIZE(modes) ; ++i) { \
  728. __set_bit(modes[i], cfg->supported); \
  729. __set_bit(modes[i], cfg->advertised); \
  730. @@ -702,10 +701,8 @@ static void ptys2ethtool_update_link_mod
  731. int i;
  732. for (i = 0; i < MLX4_LINK_MODES_SZ; i++) {
  733. if (eth_proto & MLX4_PROT_MASK(i))
  734. - bitmap_or(link_modes, link_modes,
  735. - ptys2ethtool_link_mode(&ptys2ethtool_map[i],
  736. - report),
  737. - __ETHTOOL_LINK_MODE_MASK_NBITS);
  738. + linkmode_or(link_modes, link_modes,
  739. + ptys2ethtool_link_mode(&ptys2ethtool_map[i], report));
  740. }
  741. }
  742. @@ -716,11 +713,9 @@ static u32 ethtool2ptys_link_modes(const
  743. u32 ptys_modes = 0;
  744. for (i = 0; i < MLX4_LINK_MODES_SZ; i++) {
  745. - if (bitmap_intersects(
  746. - ptys2ethtool_link_mode(&ptys2ethtool_map[i],
  747. - report),
  748. - link_modes,
  749. - __ETHTOOL_LINK_MODE_MASK_NBITS))
  750. + ulong *map_mode = ptys2ethtool_link_mode(&ptys2ethtool_map[i],
  751. + report);
  752. + if (linkmode_intersects(map_mode, link_modes))
  753. ptys_modes |= 1 << i;
  754. }
  755. return ptys_modes;
  756. --- a/drivers/net/ethernet/microchip/sparx5/sparx5_phylink.c
  757. +++ b/drivers/net/ethernet/microchip/sparx5/sparx5_phylink.c
  758. @@ -92,12 +92,11 @@ static void sparx5_phylink_validate(stru
  759. }
  760. break;
  761. default:
  762. - bitmap_zero(supported, __ETHTOOL_LINK_MODE_MASK_NBITS);
  763. + linkmode_zero(supported);
  764. return;
  765. }
  766. - bitmap_and(supported, supported, mask, __ETHTOOL_LINK_MODE_MASK_NBITS);
  767. - bitmap_and(state->advertising, state->advertising, mask,
  768. - __ETHTOOL_LINK_MODE_MASK_NBITS);
  769. + linkmode_and(supported, supported, mask);
  770. + linkmode_and(state->advertising, state->advertising, mask);
  771. }
  772. static void sparx5_phylink_mac_config(struct phylink_config *config,
  773. --- a/drivers/net/ethernet/mscc/ocelot_net.c
  774. +++ b/drivers/net/ethernet/mscc/ocelot_net.c
  775. @@ -1509,7 +1509,7 @@ static void vsc7514_phylink_validate(str
  776. if (state->interface != PHY_INTERFACE_MODE_NA &&
  777. state->interface != ocelot_port->phy_mode) {
  778. - bitmap_zero(supported, __ETHTOOL_LINK_MODE_MASK_NBITS);
  779. + linkmode_zero(supported);
  780. return;
  781. }
  782. @@ -1528,9 +1528,8 @@ static void vsc7514_phylink_validate(str
  783. phylink_set(mask, 2500baseT_Full);
  784. phylink_set(mask, 2500baseX_Full);
  785. - bitmap_and(supported, supported, mask, __ETHTOOL_LINK_MODE_MASK_NBITS);
  786. - bitmap_and(state->advertising, state->advertising, mask,
  787. - __ETHTOOL_LINK_MODE_MASK_NBITS);
  788. + linkmode_and(supported, supported, mask);
  789. + linkmode_and(state->advertising, state->advertising, mask);
  790. }
  791. static void vsc7514_phylink_mac_config(struct phylink_config *config,
  792. --- a/drivers/net/ethernet/pensando/ionic/ionic_ethtool.c
  793. +++ b/drivers/net/ethernet/pensando/ionic/ionic_ethtool.c
  794. @@ -228,8 +228,7 @@ static int ionic_get_link_ksettings(stru
  795. break;
  796. }
  797. - bitmap_copy(ks->link_modes.advertising, ks->link_modes.supported,
  798. - __ETHTOOL_LINK_MODE_MASK_NBITS);
  799. + linkmode_copy(ks->link_modes.advertising, ks->link_modes.supported);
  800. ethtool_link_ksettings_add_link_mode(ks, supported, FEC_BASER);
  801. ethtool_link_ksettings_add_link_mode(ks, supported, FEC_RS);
  802. --- a/drivers/net/ethernet/xilinx/xilinx_axienet_main.c
  803. +++ b/drivers/net/ethernet/xilinx/xilinx_axienet_main.c
  804. @@ -1565,7 +1565,7 @@ static void axienet_validate(struct phyl
  805. netdev_warn(ndev, "Cannot use PHY mode %s, supported: %s\n",
  806. phy_modes(state->interface),
  807. phy_modes(lp->phy_mode));
  808. - bitmap_zero(supported, __ETHTOOL_LINK_MODE_MASK_NBITS);
  809. + linkmode_zero(supported);
  810. return;
  811. }
  812. }
  813. @@ -1598,10 +1598,8 @@ static void axienet_validate(struct phyl
  814. break;
  815. }
  816. - bitmap_and(supported, supported, mask,
  817. - __ETHTOOL_LINK_MODE_MASK_NBITS);
  818. - bitmap_and(state->advertising, state->advertising, mask,
  819. - __ETHTOOL_LINK_MODE_MASK_NBITS);
  820. + linkmode_and(supported, supported, mask);
  821. + linkmode_and(state->advertising, state->advertising, mask);
  822. }
  823. static void axienet_mac_pcs_get_state(struct phylink_config *config,
  824. --- a/drivers/net/pcs/pcs-xpcs.c
  825. +++ b/drivers/net/pcs/pcs-xpcs.c
  826. @@ -637,7 +637,7 @@ void xpcs_validate(struct dw_xpcs *xpcs,
  827. if (state->interface == PHY_INTERFACE_MODE_NA)
  828. return;
  829. - bitmap_zero(xpcs_supported, __ETHTOOL_LINK_MODE_MASK_NBITS);
  830. + linkmode_zero(xpcs_supported);
  831. compat = xpcs_find_compat(xpcs->id, state->interface);
  832. --- a/drivers/net/phy/sfp-bus.c
  833. +++ b/drivers/net/phy/sfp-bus.c
  834. @@ -379,7 +379,7 @@ void sfp_parse_support(struct sfp_bus *b
  835. if (bus->sfp_quirk)
  836. bus->sfp_quirk->modes(id, modes);
  837. - bitmap_or(support, support, modes, __ETHTOOL_LINK_MODE_MASK_NBITS);
  838. + linkmode_or(support, support, modes);
  839. phylink_set(support, Autoneg);
  840. phylink_set(support, Pause);
  841. --- a/net/ethtool/ioctl.c
  842. +++ b/net/ethtool/ioctl.c
  843. @@ -335,7 +335,7 @@ EXPORT_SYMBOL(ethtool_intersect_link_mas
  844. void ethtool_convert_legacy_u32_to_link_mode(unsigned long *dst,
  845. u32 legacy_u32)
  846. {
  847. - bitmap_zero(dst, __ETHTOOL_LINK_MODE_MASK_NBITS);
  848. + linkmode_zero(dst);
  849. dst[0] = legacy_u32;
  850. }
  851. EXPORT_SYMBOL(ethtool_convert_legacy_u32_to_link_mode);
  852. @@ -350,11 +350,10 @@ bool ethtool_convert_link_mode_to_legacy
  853. if (__ETHTOOL_LINK_MODE_MASK_NBITS > 32) {
  854. __ETHTOOL_DECLARE_LINK_MODE_MASK(ext);
  855. - bitmap_zero(ext, __ETHTOOL_LINK_MODE_MASK_NBITS);
  856. + linkmode_zero(ext);
  857. bitmap_fill(ext, 32);
  858. bitmap_complement(ext, ext, __ETHTOOL_LINK_MODE_MASK_NBITS);
  859. - if (bitmap_intersects(ext, src,
  860. - __ETHTOOL_LINK_MODE_MASK_NBITS)) {
  861. + if (linkmode_intersects(ext, src)) {
  862. /* src mask goes beyond bit 31 */
  863. retval = false;
  864. }