get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

GET /api/patches/707626/?format=api
HTTP 200 OK
Allow: GET, PUT, PATCH, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "id": 707626,
    "url": "http://patchwork.ozlabs.org/api/patches/707626/?format=api",
    "web_url": "http://patchwork.ozlabs.org/project/intel-wired-lan/patch/20161221003528.4483-1-mitch.a.williams@intel.com/",
    "project": {
        "id": 46,
        "url": "http://patchwork.ozlabs.org/api/projects/46/?format=api",
        "name": "Intel Wired Ethernet development",
        "link_name": "intel-wired-lan",
        "list_id": "intel-wired-lan.osuosl.org",
        "list_email": "intel-wired-lan@osuosl.org",
        "web_url": "",
        "scm_url": "",
        "webscm_url": "",
        "list_archive_url": "",
        "list_archive_url_format": "",
        "commit_url_format": ""
    },
    "msgid": "<20161221003528.4483-1-mitch.a.williams@intel.com>",
    "list_archive_url": null,
    "date": "2016-12-21T00:35:28",
    "name": "[v3] ethtool: stop the line wrapping madness",
    "commit_ref": null,
    "pull_url": null,
    "state": "changes-requested",
    "archived": false,
    "hash": "31159c07bf26fcbdb1677055ea7c370e78a7f569",
    "submitter": {
        "id": 967,
        "url": "http://patchwork.ozlabs.org/api/people/967/?format=api",
        "name": "Mitch Williams",
        "email": "mitch.a.williams@intel.com"
    },
    "delegate": {
        "id": 68,
        "url": "http://patchwork.ozlabs.org/api/users/68/?format=api",
        "username": "jtkirshe",
        "first_name": "Jeff",
        "last_name": "Kirsher",
        "email": "jeffrey.t.kirsher@intel.com"
    },
    "mbox": "http://patchwork.ozlabs.org/project/intel-wired-lan/patch/20161221003528.4483-1-mitch.a.williams@intel.com/mbox/",
    "series": [],
    "comments": "http://patchwork.ozlabs.org/api/patches/707626/comments/",
    "check": "pending",
    "checks": "http://patchwork.ozlabs.org/api/patches/707626/checks/",
    "tags": {},
    "related": [],
    "headers": {
        "Return-Path": "<intel-wired-lan-bounces@lists.osuosl.org>",
        "X-Original-To": [
            "incoming@patchwork.ozlabs.org",
            "intel-wired-lan@lists.osuosl.org"
        ],
        "Delivered-To": [
            "patchwork-incoming@bilbo.ozlabs.org",
            "intel-wired-lan@lists.osuosl.org"
        ],
        "Received": [
            "from whitealder.osuosl.org (smtp1.osuosl.org [140.211.166.138])\n\t(using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits))\n\t(No client certificate requested)\n\tby ozlabs.org (Postfix) with ESMTPS id 3tjwgC3nv8z9t0t\n\tfor <incoming@patchwork.ozlabs.org>;\n\tWed, 21 Dec 2016 11:35:50 +1100 (AEDT)",
            "from localhost (localhost [127.0.0.1])\n\tby whitealder.osuosl.org (Postfix) with ESMTP id 8916583585;\n\tWed, 21 Dec 2016 00:35:48 +0000 (UTC)",
            "from whitealder.osuosl.org ([127.0.0.1])\n\tby localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024)\n\twith ESMTP id 9Y6U0Sq-Zkx3; Wed, 21 Dec 2016 00:35:41 +0000 (UTC)",
            "from ash.osuosl.org (ash.osuosl.org [140.211.166.34])\n\tby whitealder.osuosl.org (Postfix) with ESMTP id 0CD498336A;\n\tWed, 21 Dec 2016 00:35:41 +0000 (UTC)",
            "from silver.osuosl.org (smtp3.osuosl.org [140.211.166.136])\n\tby ash.osuosl.org (Postfix) with ESMTP id C3B201C053B\n\tfor <intel-wired-lan@lists.osuosl.org>;\n\tWed, 21 Dec 2016 00:35:39 +0000 (UTC)",
            "from localhost (localhost [127.0.0.1])\n\tby silver.osuosl.org (Postfix) with ESMTP id B9C352397B\n\tfor <intel-wired-lan@lists.osuosl.org>;\n\tWed, 21 Dec 2016 00:35:39 +0000 (UTC)",
            "from silver.osuosl.org ([127.0.0.1])\n\tby localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024)\n\twith ESMTP id MnJ7oZyaApjD for <intel-wired-lan@lists.osuosl.org>;\n\tWed, 21 Dec 2016 00:35:36 +0000 (UTC)",
            "from mga02.intel.com (mga02.intel.com [134.134.136.20])\n\tby silver.osuosl.org (Postfix) with ESMTPS id E135823115\n\tfor <intel-wired-lan@lists.osuosl.org>;\n\tWed, 21 Dec 2016 00:35:35 +0000 (UTC)",
            "from orsmga002.jf.intel.com ([10.7.209.21])\n\tby orsmga101.jf.intel.com with ESMTP; 20 Dec 2016 16:35:35 -0800",
            "from timeywimey.jf.intel.com ([10.166.12.157])\n\tby orsmga002.jf.intel.com with ESMTP; 20 Dec 2016 16:35:34 -0800"
        ],
        "X-Virus-Scanned": [
            "amavisd-new at osuosl.org",
            "amavisd-new at osuosl.org"
        ],
        "X-Greylist": "domain auto-whitelisted by SQLgrey-1.7.6",
        "X-ExtLoop1": "1",
        "X-IronPort-AV": "E=Sophos;i=\"5.33,381,1477983600\"; d=\"scan'208\";a=\"20956819\"",
        "From": "Mitch Williams <mitch.a.williams@intel.com>",
        "To": "intel-wired-lan@lists.osuosl.org, netanel@annapurnalabs.com,\n\tsaeed@annapurnalabs.com, zorik@annapurnalabs.com, decot@googlers.com",
        "Date": "Tue, 20 Dec 2016 16:35:28 -0800",
        "Message-Id": "<20161221003528.4483-1-mitch.a.williams@intel.com>",
        "X-Mailer": "git-send-email 2.9.3",
        "Subject": "[Intel-wired-lan] [PATCH v3] ethtool: stop the line wrapping madness",
        "X-BeenThere": "intel-wired-lan@lists.osuosl.org",
        "X-Mailman-Version": "2.1.18-1",
        "Precedence": "list",
        "List-Id": "Intel Wired Ethernet Linux Kernel Driver Development\n\t<intel-wired-lan.lists.osuosl.org>",
        "List-Unsubscribe": "<http://lists.osuosl.org/mailman/options/intel-wired-lan>, \n\t<mailto:intel-wired-lan-request@lists.osuosl.org?subject=unsubscribe>",
        "List-Archive": "<http://lists.osuosl.org/pipermail/intel-wired-lan/>",
        "List-Post": "<mailto:intel-wired-lan@lists.osuosl.org>",
        "List-Help": "<mailto:intel-wired-lan-request@lists.osuosl.org?subject=help>",
        "List-Subscribe": "<http://lists.osuosl.org/mailman/listinfo/intel-wired-lan>, \n\t<mailto:intel-wired-lan-request@lists.osuosl.org?subject=subscribe>",
        "MIME-Version": "1.0",
        "Content-Type": "text/plain; charset=\"us-ascii\"",
        "Content-Transfer-Encoding": "7bit",
        "Errors-To": "intel-wired-lan-bounces@lists.osuosl.org",
        "Sender": "\"Intel-wired-lan\" <intel-wired-lan-bounces@lists.osuosl.org>"
    },
    "content": "Folks, we have a hard limit of 80 characters per line in the kernel,\nmostly due to Linus' insistence on printing out each release on greenbar\nwith his Decwriter. So why do we have function and macro names that are\nover 30 characters long? Add a tab or two and a few parameters and boom!\nyou're wrapping lines.\n\nThis patch is a search-n-replace of the newly-added ethtool link\nsettings API with shorter names. In general, I replaced 'ksettings' with\n'ks' and elided some unnecessary verbiage. In nearly every instance I\nunwrapped lines and made the code easier to read, especially on a VT102.\n\nIn the case of the Amazon Ethernet driver, I found a bug where they were\nsetting bits in the the 'settings' field twice. Almost certainly this\nwas supposed to set bits in the 'advertising' field instead. So I fixed\nit.\n\nSigned-off-by: Mitch Williams <mitch.a.williams@intel.com>\nv3: catch a few more drivers\nv2: catch a few more drivers\n---\n drivers/infiniband/hw/nes/nes_nic.c                |  12 +--\n drivers/net/ethernet/3com/3c509.c                  |   3 +-\n drivers/net/ethernet/3com/typhoon.c                |   6 +-\n drivers/net/ethernet/alteon/acenic.c               |   3 +-\n drivers/net/ethernet/amazon/ena/ena_ethtool.c      |   6 +-\n drivers/net/ethernet/amd/xgbe/xgbe-ethtool.c       |  13 +--\n .../net/ethernet/apm/xgene/xgene_enet_ethtool.c    |  16 +---\n drivers/net/ethernet/atheros/alx/ethtool.c         |   9 +-\n drivers/net/ethernet/atheros/atl1c/atl1c_ethtool.c |   6 +-\n drivers/net/ethernet/atheros/atl1e/atl1e_ethtool.c |   9 +-\n drivers/net/ethernet/atheros/atlx/atl1.c           |   6 +-\n drivers/net/ethernet/atheros/atlx/atl2.c           |   9 +-\n drivers/net/ethernet/broadcom/b44.c                |   9 +-\n drivers/net/ethernet/broadcom/bcm63xx_enet.c       |   6 +-\n drivers/net/ethernet/broadcom/bnx2.c               |   9 +-\n drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c  | 102 ++++++++-------------\n drivers/net/ethernet/broadcom/tg3.c                |  14 +--\n drivers/net/ethernet/brocade/bna/bnad_ethtool.c    |   6 +-\n drivers/net/ethernet/calxeda/xgmac.c               |   4 +-\n drivers/net/ethernet/cavium/liquidio/lio_ethtool.c |   6 +-\n .../net/ethernet/cavium/thunder/nicvf_ethtool.c    |   6 +-\n drivers/net/ethernet/chelsio/cxgb/cxgb2.c          |   9 +-\n drivers/net/ethernet/chelsio/cxgb3/cxgb3_main.c    |  13 +--\n drivers/net/ethernet/chelsio/cxgb4/cxgb4_ethtool.c |  12 +--\n .../net/ethernet/chelsio/cxgb4vf/cxgb4vf_main.c    |  12 +--\n drivers/net/ethernet/cisco/enic/enic_ethtool.c     |  10 +-\n drivers/net/ethernet/hisilicon/hns/hns_ethtool.c   |  12 +--\n drivers/net/ethernet/marvell/mv643xx_eth.c         |  24 ++---\n drivers/net/ethernet/marvell/pxa168_eth.c          |   3 +-\n drivers/net/ethernet/mellanox/mlx4/en_ethtool.c    |  49 ++++------\n .../net/ethernet/mellanox/mlx5/core/en_ethtool.c   |  25 +++--\n drivers/net/ethernet/mellanox/mlxsw/spectrum.c     |  14 +--\n drivers/net/ethernet/qlogic/qede/qede_ethtool.c    |   6 +-\n drivers/net/ethernet/sfc/ethtool.c                 |   6 +-\n drivers/net/ethernet/sfc/mcdi_port.c               |  12 +--\n .../net/ethernet/stmicro/stmmac/stmmac_ethtool.c   |  20 ++--\n drivers/net/ethernet/ti/netcp_ethss.c              |   6 +-\n drivers/net/mii.c                                  |  12 +--\n drivers/net/phy/phy.c                              |  13 +--\n drivers/net/usb/lan78xx.c                          |   6 +-\n include/linux/ethtool.h                            |  21 ++---\n net/core/ethtool.c                                 |  40 ++++----\n 42 files changed, 217 insertions(+), 368 deletions(-)",
    "diff": "diff --git a/drivers/infiniband/hw/nes/nes_nic.c b/drivers/infiniband/hw/nes/nes_nic.c\nindex 5921ea3..01ef46a 100644\n--- a/drivers/infiniband/hw/nes/nes_nic.c\n+++ b/drivers/infiniband/hw/nes/nes_nic.c\n@@ -1503,10 +1503,8 @@ static int nes_netdev_get_link_ksettings(struct net_device *netdev,\n \t\t\t\tcmd->base.autoneg = AUTONEG_DISABLE;\n \t\t\tcmd->base.phy_address = phy_index;\n \t\t}\n-\t\tethtool_convert_legacy_u32_to_link_mode(\n-\t\t\tcmd->link_modes.supported, supported);\n-\t\tethtool_convert_legacy_u32_to_link_mode(\n-\t\t\tcmd->link_modes.advertising, advertising);\n+\t\tethtool_u32_to_ks(cmd->link_modes.supported, supported);\n+\t\tethtool_u32_to_ks(cmd->link_modes.advertising, advertising);\n \t\treturn 0;\n \t}\n \tif ((phy_type == NES_PHY_TYPE_ARGUS) ||\n@@ -1523,10 +1521,8 @@ static int nes_netdev_get_link_ksettings(struct net_device *netdev,\n \t}\n \tcmd->base.speed = SPEED_10000;\n \tcmd->base.autoneg = AUTONEG_DISABLE;\n-\tethtool_convert_legacy_u32_to_link_mode(cmd->link_modes.supported,\n-\t\t\t\t\t\tsupported);\n-\tethtool_convert_legacy_u32_to_link_mode(cmd->link_modes.advertising,\n-\t\t\t\t\t\tadvertising);\n+\tethtool_u32_to_ks(cmd->link_modes.supported, supported);\n+\tethtool_u32_to_ks(cmd->link_modes.advertising, advertising);\n \n \treturn 0;\n }\ndiff --git a/drivers/net/ethernet/3com/3c509.c b/drivers/net/ethernet/3com/3c509.c\nindex a753378..4cf0a1f 100644\n--- a/drivers/net/ethernet/3com/3c509.c\n+++ b/drivers/net/ethernet/3com/3c509.c\n@@ -1078,8 +1078,7 @@ el3_netdev_get_ecmd(struct net_device *dev, struct ethtool_link_ksettings *cmd)\n \t\t\tcmd->base.duplex = DUPLEX_FULL;\n \t}\n \n-\tethtool_convert_legacy_u32_to_link_mode(cmd->link_modes.supported,\n-\t\t\t\t\t\tsupported);\n+\tethtool_u32_to_ks(cmd->link_modes.supported, supported);\n \tcmd->base.speed = SPEED_10;\n \tEL3WINDOW(1);\n \treturn 0;\ndiff --git a/drivers/net/ethernet/3com/typhoon.c b/drivers/net/ethernet/3com/typhoon.c\nindex a0cacbe..8d45fdb 100644\n--- a/drivers/net/ethernet/3com/typhoon.c\n+++ b/drivers/net/ethernet/3com/typhoon.c\n@@ -1049,10 +1049,8 @@ typhoon_get_link_ksettings(struct net_device *dev,\n \telse\n \t\tcmd->base.autoneg = AUTONEG_DISABLE;\n \n-\tethtool_convert_legacy_u32_to_link_mode(cmd->link_modes.supported,\n-\t\t\t\t\t\tsupported);\n-\tethtool_convert_legacy_u32_to_link_mode(cmd->link_modes.advertising,\n-\t\t\t\t\t\tadvertising);\n+\tethtool_u32_to_ks(cmd->link_modes.supported, supported);\n+\tethtool_u32_to_ks(cmd->link_modes.advertising, advertising);\n \n \treturn 0;\n }\ndiff --git a/drivers/net/ethernet/alteon/acenic.c b/drivers/net/ethernet/alteon/acenic.c\nindex 16f0c70..ccc39c3 100644\n--- a/drivers/net/ethernet/alteon/acenic.c\n+++ b/drivers/net/ethernet/alteon/acenic.c\n@@ -2630,8 +2630,7 @@ static int ace_get_link_ksettings(struct net_device *dev,\n \tecmd->rxcoal = readl(&regs->TuneRxCoalTicks);\n #endif\n \n-\tethtool_convert_legacy_u32_to_link_mode(cmd->link_modes.supported,\n-\t\t\t\t\t\tsupported);\n+\tethtool_u32_to_ks(cmd->link_modes.supported, supported);\n \n \treturn 0;\n }\ndiff --git a/drivers/net/ethernet/amazon/ena/ena_ethtool.c b/drivers/net/ethernet/amazon/ena/ena_ethtool.c\nindex 67b2338f..369c2d8 100644\n--- a/drivers/net/ethernet/amazon/ena/ena_ethtool.c\n+++ b/drivers/net/ethernet/amazon/ena/ena_ethtool.c\n@@ -280,10 +280,8 @@ static int ena_get_link_ksettings(struct net_device *netdev,\n \tlink_ksettings->base.speed = link->speed;\n \n \tif (link->flags & ENA_ADMIN_GET_FEATURE_LINK_DESC_AUTONEG_MASK) {\n-\t\tethtool_link_ksettings_add_link_mode(link_ksettings,\n-\t\t\t\t\t\t     supported, Autoneg);\n-\t\tethtool_link_ksettings_add_link_mode(link_ksettings,\n-\t\t\t\t\t\t     supported, Autoneg);\n+\t\tethtool_ks_add_mode(link_ksettings, supported, Autoneg);\n+\t\tethtool_ks_add_mode(link_ksettings, advertising, Autoneg);\n \t}\n \n \tlink_ksettings->base.autoneg =\ndiff --git a/drivers/net/ethernet/amd/xgbe/xgbe-ethtool.c b/drivers/net/ethernet/amd/xgbe/xgbe-ethtool.c\nindex 920566a..9475777 100644\n--- a/drivers/net/ethernet/amd/xgbe/xgbe-ethtool.c\n+++ b/drivers/net/ethernet/amd/xgbe/xgbe-ethtool.c\n@@ -279,12 +279,10 @@ static int xgbe_get_link_ksettings(struct net_device *netdev,\n \n \tcmd->base.phy_address = pdata->phy.address;\n \n-\tethtool_convert_legacy_u32_to_link_mode(cmd->link_modes.supported,\n-\t\t\t\t\t\tpdata->phy.supported);\n-\tethtool_convert_legacy_u32_to_link_mode(cmd->link_modes.advertising,\n-\t\t\t\t\t\tpdata->phy.advertising);\n-\tethtool_convert_legacy_u32_to_link_mode(cmd->link_modes.lp_advertising,\n-\t\t\t\t\t\tpdata->phy.lp_advertising);\n+\tethtool_u32_to_ks(cmd->link_modes.supported, pdata->phy.supported);\n+\tethtool_u32_to_ks(cmd->link_modes.advertising, pdata->phy.advertising);\n+\tethtool_u32_to_ks(cmd->link_modes.lp_advertising,\n+\t\t\t  pdata->phy.lp_advertising);\n \n \tcmd->base.autoneg = pdata->phy.autoneg;\n \tcmd->base.speed = pdata->phy.speed;\n@@ -331,8 +329,7 @@ static int xgbe_set_link_ksettings(struct net_device *netdev,\n \t\t}\n \t}\n \n-\tethtool_convert_link_mode_to_legacy_u32(&advertising,\n-\t\t\t\t\t\tcmd->link_modes.advertising);\n+\tethtool_ks_to_u32(&advertising, cmd->link_modes.advertising);\n \n \tnetif_dbg(pdata, link, netdev,\n \t\t  \"requested advertisement %#x, phy supported %#x\\n\",\ndiff --git a/drivers/net/ethernet/apm/xgene/xgene_enet_ethtool.c b/drivers/net/ethernet/apm/xgene/xgene_enet_ethtool.c\nindex 28fdedc..bf5ac14 100644\n--- a/drivers/net/ethernet/apm/xgene/xgene_enet_ethtool.c\n+++ b/drivers/net/ethernet/apm/xgene/xgene_enet_ethtool.c\n@@ -76,12 +76,8 @@ static int xgene_get_link_ksettings(struct net_device *ndev,\n \n \t\tsupported = SUPPORTED_1000baseT_Full | SUPPORTED_Autoneg |\n \t\t\tSUPPORTED_MII;\n-\t\tethtool_convert_legacy_u32_to_link_mode(\n-\t\t\tcmd->link_modes.supported,\n-\t\t\tsupported);\n-\t\tethtool_convert_legacy_u32_to_link_mode(\n-\t\t\tcmd->link_modes.advertising,\n-\t\t\tsupported);\n+\t\tethtool_u32_to_ks(cmd->link_modes.supported, supported);\n+\t\tethtool_u32_to_ks(cmd->link_modes.advertising, supported);\n \n \t\tcmd->base.speed = SPEED_1000;\n \t\tcmd->base.duplex = DUPLEX_FULL;\n@@ -89,12 +85,8 @@ static int xgene_get_link_ksettings(struct net_device *ndev,\n \t\tcmd->base.autoneg = AUTONEG_ENABLE;\n \t} else {\n \t\tsupported = SUPPORTED_10000baseT_Full | SUPPORTED_FIBRE;\n-\t\tethtool_convert_legacy_u32_to_link_mode(\n-\t\t\tcmd->link_modes.supported,\n-\t\t\tsupported);\n-\t\tethtool_convert_legacy_u32_to_link_mode(\n-\t\t\tcmd->link_modes.advertising,\n-\t\t\tsupported);\n+\t\tethtool_u32_to_ks(cmd->link_modes.supported, supported);\n+\t\tethtool_u32_to_ks(cmd->link_modes.advertising, supported);\n \n \t\tcmd->base.speed = SPEED_10000;\n \t\tcmd->base.duplex = DUPLEX_FULL;\ndiff --git a/drivers/net/ethernet/atheros/alx/ethtool.c b/drivers/net/ethernet/atheros/alx/ethtool.c\nindex 2f4eabf..f339500 100644\n--- a/drivers/net/ethernet/atheros/alx/ethtool.c\n+++ b/drivers/net/ethernet/atheros/alx/ethtool.c\n@@ -166,10 +166,8 @@ static int alx_get_link_ksettings(struct net_device *netdev,\n \tcmd->base.speed = hw->link_speed;\n \tcmd->base.duplex = hw->duplex;\n \n-\tethtool_convert_legacy_u32_to_link_mode(cmd->link_modes.supported,\n-\t\t\t\t\t\tsupported);\n-\tethtool_convert_legacy_u32_to_link_mode(cmd->link_modes.advertising,\n-\t\t\t\t\t\tadvertising);\n+\tethtool_u32_to_ks(cmd->link_modes.supported, supported);\n+\tethtool_u32_to_ks(cmd->link_modes.advertising, advertising);\n \n \treturn 0;\n }\n@@ -184,8 +182,7 @@ static int alx_set_link_ksettings(struct net_device *netdev,\n \n \tASSERT_RTNL();\n \n-\tethtool_convert_link_mode_to_legacy_u32(&advertising,\n-\t\t\t\t\t\tcmd->link_modes.advertising);\n+\tethtool_ks_to_u32(&advertising, cmd->link_modes.advertising);\n \n \tif (cmd->base.autoneg == AUTONEG_ENABLE) {\n \t\tif (advertising & ~alx_get_supported_speeds(hw))\ndiff --git a/drivers/net/ethernet/atheros/atl1c/atl1c_ethtool.c b/drivers/net/ethernet/atheros/atl1c/atl1c_ethtool.c\nindex cfe86a2..9f67af1 100644\n--- a/drivers/net/ethernet/atheros/atl1c/atl1c_ethtool.c\n+++ b/drivers/net/ethernet/atheros/atl1c/atl1c_ethtool.c\n@@ -62,10 +62,8 @@ static int atl1c_get_link_ksettings(struct net_device *netdev,\n \n \tcmd->base.autoneg = AUTONEG_ENABLE;\n \n-\tethtool_convert_legacy_u32_to_link_mode(cmd->link_modes.supported,\n-\t\t\t\t\t\tsupported);\n-\tethtool_convert_legacy_u32_to_link_mode(cmd->link_modes.advertising,\n-\t\t\t\t\t\tadvertising);\n+\tethtool_u32_to_ks(cmd->link_modes.supported, supported);\n+\tethtool_u32_to_ks(cmd->link_modes.advertising, advertising);\n \n \treturn 0;\n }\ndiff --git a/drivers/net/ethernet/atheros/atl1e/atl1e_ethtool.c b/drivers/net/ethernet/atheros/atl1e/atl1e_ethtool.c\nindex cb489e7..d31c169 100644\n--- a/drivers/net/ethernet/atheros/atl1e/atl1e_ethtool.c\n+++ b/drivers/net/ethernet/atheros/atl1e/atl1e_ethtool.c\n@@ -63,10 +63,8 @@ static int atl1e_get_link_ksettings(struct net_device *netdev,\n \n \tcmd->base.autoneg = AUTONEG_ENABLE;\n \n-\tethtool_convert_legacy_u32_to_link_mode(cmd->link_modes.supported,\n-\t\t\t\t\t\tsupported);\n-\tethtool_convert_legacy_u32_to_link_mode(cmd->link_modes.advertising,\n-\t\t\t\t\t\tadvertising);\n+\tethtool_u32_to_ks(cmd->link_modes.supported, supported);\n+\tethtool_u32_to_ks(cmd->link_modes.advertising, advertising);\n \n \treturn 0;\n }\n@@ -78,8 +76,7 @@ static int atl1e_set_link_ksettings(struct net_device *netdev,\n \tstruct atl1e_hw *hw = &adapter->hw;\n \tu32 advertising;\n \n-\tethtool_convert_link_mode_to_legacy_u32(&advertising,\n-\t\t\t\t\t\tcmd->link_modes.advertising);\n+\tethtool_ks_to_u32(&advertising, cmd->link_modes.advertising);\n \n \twhile (test_and_set_bit(__AT_RESETTING, &adapter->flags))\n \t\tmsleep(1);\ndiff --git a/drivers/net/ethernet/atheros/atlx/atl1.c b/drivers/net/ethernet/atheros/atlx/atl1.c\nindex 7dad8e4..004184b 100644\n--- a/drivers/net/ethernet/atheros/atlx/atl1.c\n+++ b/drivers/net/ethernet/atheros/atlx/atl1.c\n@@ -3263,10 +3263,8 @@ static int atl1_get_link_ksettings(struct net_device *netdev,\n \telse\n \t\tcmd->base.autoneg = AUTONEG_DISABLE;\n \n-\tethtool_convert_legacy_u32_to_link_mode(cmd->link_modes.supported,\n-\t\t\t\t\t\tsupported);\n-\tethtool_convert_legacy_u32_to_link_mode(cmd->link_modes.advertising,\n-\t\t\t\t\t\tadvertising);\n+\tethtool_u32_to_ks(cmd->link_modes.supported, supported);\n+\tethtool_u32_to_ks(cmd->link_modes.advertising, advertising);\n \n \treturn 0;\n }\ndiff --git a/drivers/net/ethernet/atheros/atlx/atl2.c b/drivers/net/ethernet/atheros/atlx/atl2.c\nindex 63f2dee..7aaac50 100644\n--- a/drivers/net/ethernet/atheros/atlx/atl2.c\n+++ b/drivers/net/ethernet/atheros/atlx/atl2.c\n@@ -1771,10 +1771,8 @@ static int atl2_get_link_ksettings(struct net_device *netdev,\n \n \tcmd->base.autoneg = AUTONEG_ENABLE;\n \n-\tethtool_convert_legacy_u32_to_link_mode(cmd->link_modes.supported,\n-\t\t\t\t\t\tsupported);\n-\tethtool_convert_legacy_u32_to_link_mode(cmd->link_modes.advertising,\n-\t\t\t\t\t\tadvertising);\n+\tethtool_u32_to_ks(cmd->link_modes.supported, supported);\n+\tethtool_u32_to_ks(cmd->link_modes.advertising, advertising);\n \n \treturn 0;\n }\n@@ -1786,8 +1784,7 @@ static int atl2_set_link_ksettings(struct net_device *netdev,\n \tstruct atl2_hw *hw = &adapter->hw;\n \tu32 advertising;\n \n-\tethtool_convert_link_mode_to_legacy_u32(&advertising,\n-\t\t\t\t\t\tcmd->link_modes.advertising);\n+\tethtool_ks_to_u32(&advertising,\tcmd->link_modes.advertising);\n \n \twhile (test_and_set_bit(__ATL2_RESETTING, &adapter->flags))\n \t\tmsleep(1);\ndiff --git a/drivers/net/ethernet/broadcom/b44.c b/drivers/net/ethernet/broadcom/b44.c\nindex 1df3048..5758cfc 100644\n--- a/drivers/net/ethernet/broadcom/b44.c\n+++ b/drivers/net/ethernet/broadcom/b44.c\n@@ -1868,10 +1868,8 @@ static int b44_get_link_ksettings(struct net_device *dev,\n \tif (cmd->base.autoneg == AUTONEG_ENABLE)\n \t\tadvertising |= ADVERTISED_Autoneg;\n \n-\tethtool_convert_legacy_u32_to_link_mode(cmd->link_modes.supported,\n-\t\t\t\t\t\tsupported);\n-\tethtool_convert_legacy_u32_to_link_mode(cmd->link_modes.advertising,\n-\t\t\t\t\t\tadvertising);\n+\tethtool_u32_to_ks(cmd->link_modes.supported, supported);\n+\tethtool_u32_to_ks(cmd->link_modes.advertising, advertising);\n \n \tif (!netif_running(dev)){\n \t\tcmd->base.speed = 0;\n@@ -1904,8 +1902,7 @@ static int b44_set_link_ksettings(struct net_device *dev,\n \n \tspeed = cmd->base.speed;\n \n-\tethtool_convert_link_mode_to_legacy_u32(&advertising,\n-\t\t\t\t\t\tcmd->link_modes.advertising);\n+\tethtool_ks_to_u32(&advertising, cmd->link_modes.advertising);\n \n \t/* We do not support gigabit. */\n \tif (cmd->base.autoneg == AUTONEG_ENABLE) {\ndiff --git a/drivers/net/ethernet/broadcom/bcm63xx_enet.c b/drivers/net/ethernet/broadcom/bcm63xx_enet.c\nindex 3b14d51..6e5bd3a 100644\n--- a/drivers/net/ethernet/broadcom/bcm63xx_enet.c\n+++ b/drivers/net/ethernet/broadcom/bcm63xx_enet.c\n@@ -1463,10 +1463,8 @@ static int bcm_enet_get_link_ksettings(struct net_device *dev,\n \t\t\tADVERTISED_100baseT_Half |\n \t\t\tADVERTISED_100baseT_Full;\n \t\tadvertising = 0;\n-\t\tethtool_convert_legacy_u32_to_link_mode(\n-\t\t\tcmd->link_modes.supported, supported);\n-\t\tethtool_convert_legacy_u32_to_link_mode(\n-\t\t\tcmd->link_modes.advertising, advertising);\n+\t\tethtool_u32_to_ks(cmd->link_modes.supported, supported);\n+\t\tethtool_u32_to_ks(cmd->link_modes.advertising, advertising);\n \t\tcmd->base.port = PORT_MII;\n \t}\n \treturn 0;\ndiff --git a/drivers/net/ethernet/broadcom/bnx2.c b/drivers/net/ethernet/broadcom/bnx2.c\nindex d5d1026..dce4716 100644\n--- a/drivers/net/ethernet/broadcom/bnx2.c\n+++ b/drivers/net/ethernet/broadcom/bnx2.c\n@@ -6956,10 +6956,8 @@ bnx2_get_link_ksettings(struct net_device *dev,\n \n \tcmd->base.phy_address = bp->phy_addr;\n \n-\tethtool_convert_legacy_u32_to_link_mode(cmd->link_modes.supported,\n-\t\t\t\t\t\tsupported);\n-\tethtool_convert_legacy_u32_to_link_mode(cmd->link_modes.advertising,\n-\t\t\t\t\t\tadvertising);\n+\tethtool_u32_to_ks(cmd->link_modes.supported, supported);\n+\tethtool_u32_to_ks(cmd->link_modes.advertising, advertising);\n \n \treturn 0;\n }\n@@ -6993,8 +6991,7 @@ bnx2_set_link_ksettings(struct net_device *dev,\n \tif (cmd->base.autoneg == AUTONEG_ENABLE) {\n \t\tautoneg |= AUTONEG_SPEED;\n \n-\t\tethtool_convert_link_mode_to_legacy_u32(\n-\t\t\t&advertising, cmd->link_modes.advertising);\n+\t\tethtool_ks_to_u32(&advertising, cmd->link_modes.advertising);\n \n \t\tif (cmd->base.port == PORT_TP) {\n \t\t\tadvertising &= ETHTOOL_ALL_COPPER_SPEED;\ndiff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c b/drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c\nindex 784aa77..237a7e4 100644\n--- a/drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c\n+++ b/drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c\n@@ -832,61 +832,44 @@ u32 _bnxt_fw_to_ethtool_adv_spds(u16 fw_speeds, u8 fw_pause)\n \treturn speed_mask;\n }\n \n-#define BNXT_FW_TO_ETHTOOL_SPDS(fw_speeds, fw_pause, lk_ksettings, name)\\\n-{\t\t\t\t\t\t\t\t\t\\\n-\tif ((fw_speeds) & BNXT_LINK_SPEED_MSK_100MB)\t\t\t\\\n-\t\tethtool_link_ksettings_add_link_mode(lk_ksettings, name,\\\n-\t\t\t\t\t\t     100baseT_Full);\t\\\n-\tif ((fw_speeds) & BNXT_LINK_SPEED_MSK_1GB)\t\t\t\\\n-\t\tethtool_link_ksettings_add_link_mode(lk_ksettings, name,\\\n-\t\t\t\t\t\t     1000baseT_Full);\t\\\n-\tif ((fw_speeds) & BNXT_LINK_SPEED_MSK_10GB)\t\t\t\\\n-\t\tethtool_link_ksettings_add_link_mode(lk_ksettings, name,\\\n-\t\t\t\t\t\t     10000baseT_Full);\t\\\n-\tif ((fw_speeds) & BNXT_LINK_SPEED_MSK_25GB)\t\t\t\\\n-\t\tethtool_link_ksettings_add_link_mode(lk_ksettings, name,\\\n-\t\t\t\t\t\t     25000baseCR_Full);\t\\\n-\tif ((fw_speeds) & BNXT_LINK_SPEED_MSK_40GB)\t\t\t\\\n-\t\tethtool_link_ksettings_add_link_mode(lk_ksettings, name,\\\n-\t\t\t\t\t\t     40000baseCR4_Full);\\\n-\tif ((fw_speeds) & BNXT_LINK_SPEED_MSK_50GB)\t\t\t\\\n-\t\tethtool_link_ksettings_add_link_mode(lk_ksettings, name,\\\n-\t\t\t\t\t\t     50000baseCR2_Full);\\\n-\tif ((fw_pause) & BNXT_LINK_PAUSE_RX) {\t\t\t\t\\\n-\t\tethtool_link_ksettings_add_link_mode(lk_ksettings, name,\\\n-\t\t\t\t\t\t     Pause);\t\t\\\n-\t\tif (!((fw_pause) & BNXT_LINK_PAUSE_TX))\t\t\t\\\n-\t\t\tethtool_link_ksettings_add_link_mode(\t\t\\\n-\t\t\t\t\tlk_ksettings, name, Asym_Pause);\\\n-\t} else if ((fw_pause) & BNXT_LINK_PAUSE_TX) {\t\t\t\\\n-\t\tethtool_link_ksettings_add_link_mode(lk_ksettings, name,\\\n-\t\t\t\t\t\t     Asym_Pause);\t\\\n-\t}\t\t\t\t\t\t\t\t\\\n+#define BNXT_FW_TO_ETHTOOL_SPDS(fw_speeds, fw_pause, lk_ksettings, name)     \\\n+{\t\t\t\t\t\t\t\t\t     \\\n+\tif ((fw_speeds) & BNXT_LINK_SPEED_MSK_100MB)\t\t\t     \\\n+\t\tethtool_ks_add_mode(lk_ksettings, name, 100baseT_Full);\t     \\\n+\tif ((fw_speeds) & BNXT_LINK_SPEED_MSK_1GB)\t\t\t     \\\n+\t\tethtool_ks_add_mode(lk_ksettings, name, 1000baseT_Full);     \\\n+\tif ((fw_speeds) & BNXT_LINK_SPEED_MSK_10GB)\t\t\t     \\\n+\t\tethtool_ks_add_mode(lk_ksettings, name, 10000baseT_Full);    \\\n+\tif ((fw_speeds) & BNXT_LINK_SPEED_MSK_25GB)\t\t\t     \\\n+\t\tethtool_ks_add_mode(lk_ksettings, name, 25000baseCR_Full);   \\\n+\tif ((fw_speeds) & BNXT_LINK_SPEED_MSK_40GB)\t\t\t     \\\n+\t\tethtool_ks_add_mode(lk_ksettings, name, 40000baseCR4_Full);  \\\n+\tif ((fw_speeds) & BNXT_LINK_SPEED_MSK_50GB)\t\t\t     \\\n+\t\tethtool_ks_add_mode(lk_ksettings, name, 50000baseCR2_Full);  \\\n+\tif ((fw_pause) & BNXT_LINK_PAUSE_RX) {\t\t\t\t     \\\n+\t\tethtool_ks_add_mode(lk_ksettings, name, Pause);\t\t     \\\n+\t\tif (!((fw_pause) & BNXT_LINK_PAUSE_TX))\t\t\t     \\\n+\t\t\tethtool_ks_add_mode(lk_ksettings, name, Asym_Pause); \\\n+\t} else if ((fw_pause) & BNXT_LINK_PAUSE_TX) {\t\t\t     \\\n+\t\tethtool_ks_add_mode(lk_ksettings, name, Asym_Pause);\t     \\\n+\t}\t\t\t\t\t\t\t\t     \\\n }\n \n #define BNXT_ETHTOOL_TO_FW_SPDS(fw_speeds, lk_ksettings, name)\t\t\\\n {\t\t\t\t\t\t\t\t\t\\\n-\tif (ethtool_link_ksettings_test_link_mode(lk_ksettings, name,\t\\\n-\t\t\t\t\t\t  100baseT_Full) ||\t\\\n-\t    ethtool_link_ksettings_test_link_mode(lk_ksettings, name,\t\\\n-\t\t\t\t\t\t  100baseT_Half))\t\\\n+\tif (ethtool_ks_test(lk_ksettings, name, 100baseT_Full) ||\t\\\n+\t    ethtool_ks_test(lk_ksettings, name, 100baseT_Half))\t\t\\\n \t\t(fw_speeds) |= BNXT_LINK_SPEED_MSK_100MB;\t\t\\\n-\tif (ethtool_link_ksettings_test_link_mode(lk_ksettings, name,\t\\\n-\t\t\t\t\t\t  1000baseT_Full) ||\t\\\n-\t    ethtool_link_ksettings_test_link_mode(lk_ksettings, name,\t\\\n-\t\t\t\t\t\t  1000baseT_Half))\t\\\n+\tif (ethtool_ks_test(lk_ksettings, name, 1000baseT_Full) ||\t\\\n+\t    ethtool_ks_test(lk_ksettings, name, 1000baseT_Half))\t\\\n \t\t(fw_speeds) |= BNXT_LINK_SPEED_MSK_1GB;\t\t\t\\\n-\tif (ethtool_link_ksettings_test_link_mode(lk_ksettings, name,\t\\\n-\t\t\t\t\t\t  10000baseT_Full))\t\\\n+\tif (ethtool_ks_test(lk_ksettings, name, 10000baseT_Full))\t\\\n \t\t(fw_speeds) |= BNXT_LINK_SPEED_MSK_10GB;\t\t\\\n-\tif (ethtool_link_ksettings_test_link_mode(lk_ksettings, name,\t\\\n-\t\t\t\t\t\t  25000baseCR_Full))\t\\\n+\tif (ethtool_ks_test(lk_ksettings, name, 25000baseCR_Full))\t\\\n \t\t(fw_speeds) |= BNXT_LINK_SPEED_MSK_25GB;\t\t\\\n-\tif (ethtool_link_ksettings_test_link_mode(lk_ksettings, name,\t\\\n-\t\t\t\t\t\t  40000baseCR4_Full))\t\\\n+\tif (ethtool_ks_test(lk_ksettings, name, 40000baseCR4_Full))\t\\\n \t\t(fw_speeds) |= BNXT_LINK_SPEED_MSK_40GB;\t\t\\\n-\tif (ethtool_link_ksettings_test_link_mode(lk_ksettings, name,\t\\\n-\t\t\t\t\t\t  50000baseCR2_Full))\t\\\n+\tif (ethtool_ks_test(lk_ksettings, name, 50000baseCR2_Full))\t\\\n \t\t(fw_speeds) |= BNXT_LINK_SPEED_MSK_50GB;\t\t\\\n }\n \n@@ -922,13 +905,11 @@ static void bnxt_fw_to_ethtool_support_spds(struct bnxt_link_info *link_info,\n \n \tBNXT_FW_TO_ETHTOOL_SPDS(fw_speeds, 0, lk_ksettings, supported);\n \n-\tethtool_link_ksettings_add_link_mode(lk_ksettings, supported, Pause);\n-\tethtool_link_ksettings_add_link_mode(lk_ksettings, supported,\n-\t\t\t\t\t     Asym_Pause);\n+\tethtool_ks_add_mode(lk_ksettings, supported, Pause);\n+\tethtool_ks_add_mode(lk_ksettings, supported, Asym_Pause);\n \n \tif (link_info->support_auto_speeds)\n-\t\tethtool_link_ksettings_add_link_mode(lk_ksettings, supported,\n-\t\t\t\t\t\t     Autoneg);\n+\t\tethtool_ks_add_mode(lk_ksettings, supported, Autoneg);\n }\n \n u32 bnxt_fw_to_ethtool_speed(u16 fw_link_speed)\n@@ -963,14 +944,13 @@ static int bnxt_get_link_ksettings(struct net_device *dev,\n \tstruct ethtool_link_settings *base = &lk_ksettings->base;\n \tu32 ethtool_speed;\n \n-\tethtool_link_ksettings_zero_link_mode(lk_ksettings, supported);\n+\tethtool_ks_clear(lk_ksettings, supported);\n \tbnxt_fw_to_ethtool_support_spds(link_info, lk_ksettings);\n \n-\tethtool_link_ksettings_zero_link_mode(lk_ksettings, advertising);\n+\tethtool_ks_clear(lk_ksettings, advertising);\n \tif (link_info->autoneg) {\n \t\tbnxt_fw_to_ethtool_advertised_spds(link_info, lk_ksettings);\n-\t\tethtool_link_ksettings_add_link_mode(lk_ksettings,\n-\t\t\t\t\t\t     advertising, Autoneg);\n+\t\tethtool_ks_add_mode(lk_ksettings, advertising, Autoneg);\n \t\tbase->autoneg = AUTONEG_ENABLE;\n \t\tif (link_info->phy_link_status == BNXT_LINK_LINK)\n \t\t\tbnxt_fw_to_ethtool_lp_adv(link_info, lk_ksettings);\n@@ -994,15 +974,11 @@ static int bnxt_get_link_ksettings(struct net_device *dev,\n \tbase->port = PORT_NONE;\n \tif (link_info->media_type == PORT_PHY_QCFG_RESP_MEDIA_TYPE_TP) {\n \t\tbase->port = PORT_TP;\n-\t\tethtool_link_ksettings_add_link_mode(lk_ksettings, supported,\n-\t\t\t\t\t\t     TP);\n-\t\tethtool_link_ksettings_add_link_mode(lk_ksettings, advertising,\n-\t\t\t\t\t\t     TP);\n+\t\tethtool_ks_add_mode(lk_ksettings, supported, TP);\n+\t\tethtool_ks_add_mode(lk_ksettings, advertising, TP);\n \t} else {\n-\t\tethtool_link_ksettings_add_link_mode(lk_ksettings, supported,\n-\t\t\t\t\t\t     FIBRE);\n-\t\tethtool_link_ksettings_add_link_mode(lk_ksettings, advertising,\n-\t\t\t\t\t\t     FIBRE);\n+\t\tethtool_ks_add_mode(lk_ksettings, supported, FIBRE);\n+\t\tethtool_ks_add_mode(lk_ksettings, advertising, FIBRE);\n \n \t\tif (link_info->media_type == PORT_PHY_QCFG_RESP_MEDIA_TYPE_DAC)\n \t\t\tbase->port = PORT_DA;\ndiff --git a/drivers/net/ethernet/broadcom/tg3.c b/drivers/net/ethernet/broadcom/tg3.c\nindex 185e9e0..27fc248 100644\n--- a/drivers/net/ethernet/broadcom/tg3.c\n+++ b/drivers/net/ethernet/broadcom/tg3.c\n@@ -12110,8 +12110,7 @@ static int tg3_get_link_ksettings(struct net_device *dev,\n \t\tsupported |= SUPPORTED_FIBRE;\n \t\tcmd->base.port = PORT_FIBRE;\n \t}\n-\tethtool_convert_legacy_u32_to_link_mode(cmd->link_modes.supported,\n-\t\t\t\t\t\tsupported);\n+\tethtool_u32_to_ks(cmd->link_modes.supported, supported);\n \n \tadvertising = tp->link_config.advertising;\n \tif (tg3_flag(tp, PAUSE_AUTONEG)) {\n@@ -12126,15 +12125,13 @@ static int tg3_get_link_ksettings(struct net_device *dev,\n \t\t\tadvertising |= ADVERTISED_Asym_Pause;\n \t\t}\n \t}\n-\tethtool_convert_legacy_u32_to_link_mode(cmd->link_modes.advertising,\n-\t\t\t\t\t\tadvertising);\n+\tethtool_u32_to_ks(cmd->link_modes.advertising, advertising);\n \n \tif (netif_running(dev) && tp->link_up) {\n \t\tcmd->base.speed = tp->link_config.active_speed;\n \t\tcmd->base.duplex = tp->link_config.active_duplex;\n-\t\tethtool_convert_legacy_u32_to_link_mode(\n-\t\t\tcmd->link_modes.lp_advertising,\n-\t\t\ttp->link_config.rmt_adv);\n+\t\tethtool_u32_to_ks(cmd->link_modes.lp_advertising,\n+\t\t\t\t  tp->link_config.rmt_adv);\n \n \t\tif (!(tp->phy_flags & TG3_PHYFLG_ANY_SERDES)) {\n \t\t\tif (tp->phy_flags & TG3_PHYFLG_MDIX_STATE)\n@@ -12176,8 +12173,7 @@ static int tg3_set_link_ksettings(struct net_device *dev,\n \t    cmd->base.duplex != DUPLEX_HALF)\n \t\treturn -EINVAL;\n \n-\tethtool_convert_link_mode_to_legacy_u32(&advertising,\n-\t\t\t\t\t\tcmd->link_modes.advertising);\n+\tethtool_ks_to_u32(&advertising, cmd->link_modes.advertising);\n \n \tif (cmd->base.autoneg == AUTONEG_ENABLE) {\n \t\tu32 mask = ADVERTISED_Autoneg |\ndiff --git a/drivers/net/ethernet/brocade/bna/bnad_ethtool.c b/drivers/net/ethernet/brocade/bna/bnad_ethtool.c\nindex 2865939..34872a98 100644\n--- a/drivers/net/ethernet/brocade/bna/bnad_ethtool.c\n+++ b/drivers/net/ethernet/brocade/bna/bnad_ethtool.c\n@@ -261,10 +261,8 @@ bnad_get_link_ksettings(struct net_device *netdev,\n \t\tcmd->base.duplex = DUPLEX_UNKNOWN;\n \t}\n \n-\tethtool_convert_legacy_u32_to_link_mode(cmd->link_modes.supported,\n-\t\t\t\t\t\tsupported);\n-\tethtool_convert_legacy_u32_to_link_mode(cmd->link_modes.advertising,\n-\t\t\t\t\t\tadvertising);\n+\tethtool_u32_to_ks(cmd->link_modes.supported, supported);\n+\tethtool_u32_to_ks(cmd->link_modes.advertising, advertising);\n \n \treturn 0;\n }\ndiff --git a/drivers/net/ethernet/calxeda/xgmac.c b/drivers/net/ethernet/calxeda/xgmac.c\nindex ce7de6f..725af98 100644\n--- a/drivers/net/ethernet/calxeda/xgmac.c\n+++ b/drivers/net/ethernet/calxeda/xgmac.c\n@@ -1536,8 +1536,8 @@ static int xgmac_ethtool_get_link_ksettings(struct net_device *dev,\n \tcmd->base.autoneg = 0;\n \tcmd->base.duplex = DUPLEX_FULL;\n \tcmd->base.speed = 10000;\n-\tethtool_convert_legacy_u32_to_link_mode(cmd->link_modes.supported, 0);\n-\tethtool_convert_legacy_u32_to_link_mode(cmd->link_modes.advertising, 0);\n+\tethtool_u32_to_ks(cmd->link_modes.supported, 0);\n+\tethtool_u32_to_ks(cmd->link_modes.advertising, 0);\n \treturn 0;\n }\n \ndiff --git a/drivers/net/ethernet/cavium/liquidio/lio_ethtool.c b/drivers/net/ethernet/cavium/liquidio/lio_ethtool.c\nindex b00c300..94eb1d2 100644\n--- a/drivers/net/ethernet/cavium/liquidio/lio_ethtool.c\n+++ b/drivers/net/ethernet/cavium/liquidio/lio_ethtool.c\n@@ -224,10 +224,8 @@ static int lio_get_link_ksettings(struct net_device *netdev,\n \t\tsupported = (SUPPORTED_10000baseT_Full | SUPPORTED_FIBRE |\n \t\t\t     SUPPORTED_Pause);\n \t\tadvertising = (ADVERTISED_10000baseT_Full | ADVERTISED_Pause);\n-\t\tethtool_convert_legacy_u32_to_link_mode(\n-\t\t\tecmd->link_modes.supported, supported);\n-\t\tethtool_convert_legacy_u32_to_link_mode(\n-\t\t\tecmd->link_modes.advertising, advertising);\n+\t\tethtool_u32_to_ks(ecmd->link_modes.supported, supported);\n+\t\tethtool_u32_to_ks(ecmd->link_modes.advertising, advertising);\n \t\tecmd->base.autoneg = AUTONEG_DISABLE;\n \n \t} else {\ndiff --git a/drivers/net/ethernet/cavium/thunder/nicvf_ethtool.c b/drivers/net/ethernet/cavium/thunder/nicvf_ethtool.c\nindex 2e74bba..4ca6516 100644\n--- a/drivers/net/ethernet/cavium/thunder/nicvf_ethtool.c\n+++ b/drivers/net/ethernet/cavium/thunder/nicvf_ethtool.c\n@@ -171,10 +171,8 @@ static int nicvf_get_link_ksettings(struct net_device *netdev,\n \tcmd->base.duplex = nic->duplex;\n \tcmd->base.speed = nic->speed;\n \n-\tethtool_convert_legacy_u32_to_link_mode(cmd->link_modes.supported,\n-\t\t\t\t\t\tsupported);\n-\tethtool_convert_legacy_u32_to_link_mode(cmd->link_modes.advertising,\n-\t\t\t\t\t\tadvertising);\n+\tethtool_u32_to_ks(cmd->link_modes.supported, supported);\n+\tethtool_u32_to_ks(cmd->link_modes.advertising, advertising);\n \n \treturn 0;\n }\ndiff --git a/drivers/net/ethernet/chelsio/cxgb/cxgb2.c b/drivers/net/ethernet/chelsio/cxgb/cxgb2.c\nindex 3a05f90..3ebde7c 100644\n--- a/drivers/net/ethernet/chelsio/cxgb/cxgb2.c\n+++ b/drivers/net/ethernet/chelsio/cxgb/cxgb2.c\n@@ -590,10 +590,8 @@ static int get_link_ksettings(struct net_device *dev,\n \tcmd->base.phy_address = p->phy->mdio.prtad;\n \tcmd->base.autoneg = p->link_config.autoneg;\n \n-\tethtool_convert_legacy_u32_to_link_mode(cmd->link_modes.supported,\n-\t\t\t\t\t\tsupported);\n-\tethtool_convert_legacy_u32_to_link_mode(cmd->link_modes.advertising,\n-\t\t\t\t\t\tadvertising);\n+\tethtool_u32_to_ks(cmd->link_modes.supported, supported);\n+\tethtool_u32_to_ks(cmd->link_modes.advertising, advertising);\n \n \treturn 0;\n }\n@@ -641,8 +639,7 @@ static int set_link_ksettings(struct net_device *dev,\n \tstruct link_config *lc = &p->link_config;\n \tu32 advertising;\n \n-\tethtool_convert_link_mode_to_legacy_u32(&advertising,\n-\t\t\t\t\t\tcmd->link_modes.advertising);\n+\tethtool_ks_to_u32(&advertising,\tcmd->link_modes.advertising);\n \n \tif (!(lc->supported & SUPPORTED_Autoneg))\n \t\treturn -EOPNOTSUPP;             /* can't change speed/duplex */\ndiff --git a/drivers/net/ethernet/chelsio/cxgb3/cxgb3_main.c b/drivers/net/ethernet/chelsio/cxgb3/cxgb3_main.c\nindex 7b2224a..5bdadab 100644\n--- a/drivers/net/ethernet/chelsio/cxgb3/cxgb3_main.c\n+++ b/drivers/net/ethernet/chelsio/cxgb3/cxgb3_main.c\n@@ -1807,10 +1807,9 @@ static int get_link_ksettings(struct net_device *dev,\n \tstruct port_info *p = netdev_priv(dev);\n \tu32 supported;\n \n-\tethtool_convert_legacy_u32_to_link_mode(cmd->link_modes.supported,\n-\t\t\t\t\t\tp->link_config.supported);\n-\tethtool_convert_legacy_u32_to_link_mode(cmd->link_modes.advertising,\n-\t\t\t\t\t\tp->link_config.advertising);\n+\tethtool_u32_to_ks(cmd->link_modes.supported, p->link_config.supported);\n+\tethtool_u32_to_ks(cmd->link_modes.advertising,\n+\t\t\t  p->link_config.advertising);\n \n \tif (netif_carrier_ok(dev)) {\n \t\tcmd->base.speed = p->link_config.speed;\n@@ -1820,8 +1819,7 @@ static int get_link_ksettings(struct net_device *dev,\n \t\tcmd->base.duplex = DUPLEX_UNKNOWN;\n \t}\n \n-\tethtool_convert_link_mode_to_legacy_u32(&supported,\n-\t\t\t\t\t\tcmd->link_modes.supported);\n+\tethtool_ks_to_u32(&supported, cmd->link_modes.supported);\n \n \tcmd->base.port = (supported & SUPPORTED_TP) ? PORT_TP : PORT_FIBRE;\n \tcmd->base.phy_address = p->phy.mdio.prtad;\n@@ -1871,8 +1869,7 @@ static int set_link_ksettings(struct net_device *dev,\n \tstruct link_config *lc = &p->link_config;\n \tu32 advertising;\n \n-\tethtool_convert_link_mode_to_legacy_u32(&advertising,\n-\t\t\t\t\t\tcmd->link_modes.advertising);\n+\tethtool_ks_to_u32(&advertising, cmd->link_modes.advertising);\n \n \tif (!(lc->supported & SUPPORTED_Autoneg)) {\n \t\t/*\ndiff --git a/drivers/net/ethernet/chelsio/cxgb4/cxgb4_ethtool.c b/drivers/net/ethernet/chelsio/cxgb4/cxgb4_ethtool.c\nindex 02f80fe..6b7df8a 100644\n--- a/drivers/net/ethernet/chelsio/cxgb4/cxgb4_ethtool.c\n+++ b/drivers/net/ethernet/chelsio/cxgb4/cxgb4_ethtool.c\n@@ -677,9 +677,9 @@ static int get_link_ksettings(struct net_device *dev,\n \tconst struct port_info *pi = netdev_priv(dev);\n \tstruct ethtool_link_settings *base = &link_ksettings->base;\n \n-\tethtool_link_ksettings_zero_link_mode(link_ksettings, supported);\n-\tethtool_link_ksettings_zero_link_mode(link_ksettings, advertising);\n-\tethtool_link_ksettings_zero_link_mode(link_ksettings, lp_advertising);\n+\tethtool_ks_clear(link_ksettings, supported);\n+\tethtool_ks_clear(link_ksettings, advertising);\n+\tethtool_ks_clear(link_ksettings, lp_advertising);\n \n \tbase->port = from_fw_port_mod_type(pi->port_type, pi->mod_type);\n \n@@ -710,11 +710,9 @@ static int get_link_ksettings(struct net_device *dev,\n \n \tbase->autoneg = pi->link_cfg.autoneg;\n \tif (pi->link_cfg.supported & FW_PORT_CAP_ANEG)\n-\t\tethtool_link_ksettings_add_link_mode(link_ksettings,\n-\t\t\t\t\t\t     supported, Autoneg);\n+\t\tethtool_ks_add_mode(link_ksettings, supported, Autoneg);\n \tif (pi->link_cfg.autoneg)\n-\t\tethtool_link_ksettings_add_link_mode(link_ksettings,\n-\t\t\t\t\t\t     advertising, Autoneg);\n+\t\tethtool_ks_add_mode(link_ksettings, advertising, Autoneg);\n \n \treturn 0;\n }\ndiff --git a/drivers/net/ethernet/chelsio/cxgb4vf/cxgb4vf_main.c b/drivers/net/ethernet/chelsio/cxgb4vf/cxgb4vf_main.c\nindex 0d1a134..1e35e28 100644\n--- a/drivers/net/ethernet/chelsio/cxgb4vf/cxgb4vf_main.c\n+++ b/drivers/net/ethernet/chelsio/cxgb4vf/cxgb4vf_main.c\n@@ -1332,9 +1332,9 @@ static int cxgb4vf_get_link_ksettings(struct net_device *dev,\n \tconst struct port_info *pi = netdev_priv(dev);\n \tstruct ethtool_link_settings *base = &link_ksettings->base;\n \n-\tethtool_link_ksettings_zero_link_mode(link_ksettings, supported);\n-\tethtool_link_ksettings_zero_link_mode(link_ksettings, advertising);\n-\tethtool_link_ksettings_zero_link_mode(link_ksettings, lp_advertising);\n+\tethtool_ks_clear(link_ksettings, supported);\n+\tethtool_ks_clear(link_ksettings, advertising);\n+\tethtool_ks_clear(link_ksettings, lp_advertising);\n \n \tbase->port = from_fw_port_mod_type(pi->port_type, pi->mod_type);\n \n@@ -1365,11 +1365,9 @@ static int cxgb4vf_get_link_ksettings(struct net_device *dev,\n \n \tbase->autoneg = pi->link_cfg.autoneg;\n \tif (pi->link_cfg.supported & FW_PORT_CAP_ANEG)\n-\t\tethtool_link_ksettings_add_link_mode(link_ksettings,\n-\t\t\t\t\t\t     supported, Autoneg);\n+\t\tethtool_ks_add_mode(link_ksettings, supported, Autoneg);\n \tif (pi->link_cfg.autoneg)\n-\t\tethtool_link_ksettings_add_link_mode(link_ksettings,\n-\t\t\t\t\t\t     advertising, Autoneg);\n+\t\tethtool_ks_add_mode(link_ksettings, advertising, Autoneg);\n \n \treturn 0;\n }\ndiff --git a/drivers/net/ethernet/cisco/enic/enic_ethtool.c b/drivers/net/ethernet/cisco/enic/enic_ethtool.c\nindex fd3980c..509b73f 100644\n--- a/drivers/net/ethernet/cisco/enic/enic_ethtool.c\n+++ b/drivers/net/ethernet/cisco/enic/enic_ethtool.c\n@@ -109,12 +109,10 @@ static int enic_get_ksettings(struct net_device *netdev,\n \tstruct enic *enic = netdev_priv(netdev);\n \tstruct ethtool_link_settings *base = &ecmd->base;\n \n-\tethtool_link_ksettings_add_link_mode(ecmd, supported,\n-\t\t\t\t\t     10000baseT_Full);\n-\tethtool_link_ksettings_add_link_mode(ecmd, supported, FIBRE);\n-\tethtool_link_ksettings_add_link_mode(ecmd, advertising,\n-\t\t\t\t\t     10000baseT_Full);\n-\tethtool_link_ksettings_add_link_mode(ecmd, advertising, FIBRE);\n+\tethtool_ks_add_mode(ecmd, supported, 10000baseT_Full);\n+\tethtool_ks_add_mode(ecmd, supported, FIBRE);\n+\tethtool_ks_add_mode(ecmd, advertising, 10000baseT_Full);\n+\tethtool_ks_add_mode(ecmd, advertising, FIBRE);\n \tbase->port = PORT_FIBRE;\n \n \tif (netif_carrier_ok(netdev)) {\ndiff --git a/drivers/net/ethernet/hisilicon/hns/hns_ethtool.c b/drivers/net/ethernet/hisilicon/hns/hns_ethtool.c\nindex 3ac2183..cb3dbc6 100644\n--- a/drivers/net/ethernet/hisilicon/hns/hns_ethtool.c\n+++ b/drivers/net/ethernet/hisilicon/hns/hns_ethtool.c\n@@ -139,10 +139,8 @@ static int hns_nic_get_link_ksettings(struct net_device *net_dev,\n \t\treturn -EINVAL;\n \t}\n \n-\tethtool_convert_link_mode_to_legacy_u32(&supported,\n-\t\t\t\t\t\tcmd->link_modes.supported);\n-\tethtool_convert_link_mode_to_legacy_u32(&advertising,\n-\t\t\t\t\t\tcmd->link_modes.advertising);\n+\tethtool_ks_to_u32(&supported, cmd->link_modes.supported);\n+\tethtool_ks_to_u32(&advertising, cmd->link_modes.advertising);\n \n \t/* When there is no phy, autoneg is off. */\n \tcmd->base.autoneg = false;\n@@ -185,10 +183,8 @@ static int hns_nic_get_link_ksettings(struct net_device *net_dev,\n \tif (!(AE_IS_VER1(priv->enet_ver) && h->port_type == HNAE_PORT_DEBUG))\n \t\tsupported |= SUPPORTED_Pause;\n \n-\tethtool_convert_legacy_u32_to_link_mode(cmd->link_modes.supported,\n-\t\t\t\t\t\tsupported);\n-\tethtool_convert_legacy_u32_to_link_mode(cmd->link_modes.advertising,\n-\t\t\t\t\t\tadvertising);\n+\tethtool_u32_to_ks(cmd->link_modes.supported, supported);\n+\tethtool_u32_to_ks(cmd->link_modes.advertising, advertising);\n \n \tcmd->base.mdio_support = ETH_MDIO_SUPPORTS_C45 | ETH_MDIO_SUPPORTS_C22;\n \thns_get_mdix_mode(net_dev, cmd);\ndiff --git a/drivers/net/ethernet/marvell/mv643xx_eth.c b/drivers/net/ethernet/marvell/mv643xx_eth.c\nindex 1fa7c03..ea8d5f0 100644\n--- a/drivers/net/ethernet/marvell/mv643xx_eth.c\n+++ b/drivers/net/ethernet/marvell/mv643xx_eth.c\n@@ -1511,16 +1511,12 @@ mv643xx_eth_get_link_ksettings_phy(struct mv643xx_eth_private *mp,\n \t/*\n \t * The MAC does not support 1000baseT_Half.\n \t */\n-\tethtool_convert_link_mode_to_legacy_u32(&supported,\n-\t\t\t\t\t\tcmd->link_modes.supported);\n-\tethtool_convert_link_mode_to_legacy_u32(&advertising,\n-\t\t\t\t\t\tcmd->link_modes.advertising);\n+\tethtool_ks_to_u32(&supported, cmd->link_modes.supported);\n+\tethtool_ks_to_u32(&advertising, cmd->link_modes.advertising);\n \tsupported &= ~SUPPORTED_1000baseT_Half;\n \tadvertising &= ~ADVERTISED_1000baseT_Half;\n-\tethtool_convert_legacy_u32_to_link_mode(cmd->link_modes.supported,\n-\t\t\t\t\t\tsupported);\n-\tethtool_convert_legacy_u32_to_link_mode(cmd->link_modes.advertising,\n-\t\t\t\t\t\tadvertising);\n+\tethtool_u32_to_ks(cmd->link_modes.supported, supported);\n+\tethtool_u32_to_ks(cmd->link_modes.advertising, advertising);\n \n \treturn err;\n }\n@@ -1556,10 +1552,8 @@ mv643xx_eth_get_link_ksettings_phyless(struct mv643xx_eth_private *mp,\n \tcmd->base.phy_address = 0;\n \tcmd->base.autoneg = AUTONEG_DISABLE;\n \n-\tethtool_convert_legacy_u32_to_link_mode(cmd->link_modes.supported,\n-\t\t\t\t\t\tsupported);\n-\tethtool_convert_legacy_u32_to_link_mode(cmd->link_modes.advertising,\n-\t\t\t\t\t\tadvertising);\n+\tethtool_u32_to_ks(cmd->link_modes.supported, supported);\n+\tethtool_u32_to_ks(cmd->link_modes.advertising, advertising);\n \n \treturn 0;\n }\n@@ -1616,11 +1610,9 @@ mv643xx_eth_set_link_ksettings(struct net_device *dev,\n \t/*\n \t * The MAC does not support 1000baseT_Half.\n \t */\n-\tethtool_convert_link_mode_to_legacy_u32(&advertising,\n-\t\t\t\t\t\tc.link_modes.advertising);\n+\tethtool_ks_to_u32(&advertising, c.link_modes.advertising);\n \tadvertising &= ~ADVERTISED_1000baseT_Half;\n-\tethtool_convert_legacy_u32_to_link_mode(c.link_modes.advertising,\n-\t\t\t\t\t\tadvertising);\n+\tethtool_u32_to_ks(c.link_modes.advertising, advertising);\n \n \tret = phy_ethtool_ksettings_set(dev->phydev, &c);\n \tif (!ret)\ndiff --git a/drivers/net/ethernet/marvell/pxa168_eth.c b/drivers/net/ethernet/marvell/pxa168_eth.c\nindex 3af2814..cf72108 100644\n--- a/drivers/net/ethernet/marvell/pxa168_eth.c\n+++ b/drivers/net/ethernet/marvell/pxa168_eth.c\n@@ -994,8 +994,7 @@ static int pxa168_init_phy(struct net_device *dev)\n \tcmd.base.phy_address = pep->phy_addr;\n \tcmd.base.speed = pep->phy_speed;\n \tcmd.base.duplex = pep->phy_duplex;\n-\tethtool_convert_legacy_u32_to_link_mode(cmd.link_modes.advertising,\n-\t\t\t\t\t\tPHY_BASIC_FEATURES);\n+\tethtool_u32_to_ks(cmd.link_modes.advertising, PHY_BASIC_FEATURES);\n \tcmd.base.autoneg = AUTONEG_ENABLE;\n \n \tif (cmd.base.speed != 0)\ndiff --git a/drivers/net/ethernet/mellanox/mlx4/en_ethtool.c b/drivers/net/ethernet/mellanox/mlx4/en_ethtool.c\nindex d9c9f86..c248cab 100644\n--- a/drivers/net/ethernet/mellanox/mlx4/en_ethtool.c\n+++ b/drivers/net/ethernet/mellanox/mlx4/en_ethtool.c\n@@ -755,8 +755,8 @@ ethtool_get_ptys_link_ksettings(struct net_device *dev,\n \t       be32_to_cpu(ptys_reg.eth_proto_lp_adv));\n \n \t/* reset supported/advertising masks */\n-\tethtool_link_ksettings_zero_link_mode(link_ksettings, supported);\n-\tethtool_link_ksettings_zero_link_mode(link_ksettings, advertising);\n+\tethtool_ks_clear(link_ksettings, supported);\n+\tethtool_ks_clear(link_ksettings, advertising);\n \n \tptys2ethtool_update_supported_port(link_ksettings->link_modes.supported,\n \t\t\t\t\t   &ptys_reg);\n@@ -769,25 +769,19 @@ ethtool_get_ptys_link_ksettings(struct net_device *dev,\n \tptys2ethtool_update_link_modes(link_ksettings->link_modes.advertising,\n \t\t\t\t       eth_proto, ADVERTISED);\n \n-\tethtool_link_ksettings_add_link_mode(link_ksettings, supported,\n-\t\t\t\t\t     Pause);\n-\tethtool_link_ksettings_add_link_mode(link_ksettings, supported,\n-\t\t\t\t\t     Asym_Pause);\n+\tethtool_ks_add_mode(link_ksettings, supported, Pause);\n+\tethtool_ks_add_mode(link_ksettings, supported, Asym_Pause);\n \n \tif (priv->prof->tx_pause)\n-\t\tethtool_link_ksettings_add_link_mode(link_ksettings,\n-\t\t\t\t\t\t     advertising, Pause);\n+\t\tethtool_ks_add_mode(link_ksettings, advertising, Pause);\n \tif (priv->prof->tx_pause ^ priv->prof->rx_pause)\n-\t\tethtool_link_ksettings_add_link_mode(link_ksettings,\n-\t\t\t\t\t\t     advertising, Asym_Pause);\n+\t\tethtool_ks_add_mode(link_ksettings, advertising, Asym_Pause);\n \n \tlink_ksettings->base.port = ptys_get_active_port(&ptys_reg);\n \n \tif (mlx4_en_autoneg_get(dev)) {\n-\t\tethtool_link_ksettings_add_link_mode(link_ksettings,\n-\t\t\t\t\t\t     supported, Autoneg);\n-\t\tethtool_link_ksettings_add_link_mode(link_ksettings,\n-\t\t\t\t\t\t     advertising, Autoneg);\n+\t\tethtool_ks_add_mode(link_ksettings, supported, Autoneg);\n+\t\tethtool_ks_add_mode(link_ksettings, advertising, Autoneg);\n \t}\n \n \tlink_ksettings->base.autoneg\n@@ -796,13 +790,12 @@ ethtool_get_ptys_link_ksettings(struct net_device *dev,\n \n \teth_proto = be32_to_cpu(ptys_reg.eth_proto_lp_adv);\n \n-\tethtool_link_ksettings_zero_link_mode(link_ksettings, lp_advertising);\n+\tethtool_ks_clear(link_ksettings, lp_advertising);\n \tptys2ethtool_update_link_modes(\n \t\tlink_ksettings->link_modes.lp_advertising,\n \t\teth_proto, ADVERTISED);\n \tif (priv->port_state.flags & MLX4_EN_PORT_ANC)\n-\t\tethtool_link_ksettings_add_link_mode(link_ksettings,\n-\t\t\t\t\t\t     lp_advertising, Autoneg);\n+\t\tethtool_ks_add_mode(link_ksettings, lp_advertising, Autoneg);\n \n \tlink_ksettings->base.phy_address = 0;\n \tlink_ksettings->base.mdio_support = 0;\n@@ -821,27 +814,21 @@ ethtool_get_default_link_ksettings(\n \n \tlink_ksettings->base.autoneg = AUTONEG_DISABLE;\n \n-\tethtool_link_ksettings_zero_link_mode(link_ksettings, supported);\n-\tethtool_link_ksettings_add_link_mode(link_ksettings, supported,\n-\t\t\t\t\t     10000baseT_Full);\n+\tethtool_ks_clear(link_ksettings, supported);\n+\tethtool_ks_add_mode(link_ksettings, supported, 10000baseT_Full);\n \n-\tethtool_link_ksettings_zero_link_mode(link_ksettings, advertising);\n-\tethtool_link_ksettings_add_link_mode(link_ksettings, advertising,\n-\t\t\t\t\t     10000baseT_Full);\n+\tethtool_ks_clear(link_ksettings, advertising);\n+\tethtool_ks_add_mode(link_ksettings, advertising, 10000baseT_Full);\n \n \ttrans_type = priv->port_state.transceiver;\n \tif (trans_type > 0 && trans_type <= 0xC) {\n \t\tlink_ksettings->base.port = PORT_FIBRE;\n-\t\tethtool_link_ksettings_add_link_mode(link_ksettings,\n-\t\t\t\t\t\t     supported, FIBRE);\n-\t\tethtool_link_ksettings_add_link_mode(link_ksettings,\n-\t\t\t\t\t\t     advertising, FIBRE);\n+\t\tethtool_ks_add_mode(link_ksettings, supported, FIBRE);\n+\t\tethtool_ks_add_mode(link_ksettings, advertising, FIBRE);\n \t} else if (trans_type == 0x80 || trans_type == 0) {\n \t\tlink_ksettings->base.port = PORT_TP;\n-\t\tethtool_link_ksettings_add_link_mode(link_ksettings,\n-\t\t\t\t\t\t     supported, TP);\n-\t\tethtool_link_ksettings_add_link_mode(link_ksettings,\n-\t\t\t\t\t\t     advertising, TP);\n+\t\tethtool_ks_add_mode(link_ksettings, supported, TP);\n+\t\tethtool_ks_add_mode(link_ksettings, advertising, TP);\n \t} else  {\n \t\tlink_ksettings->base.port = -1;\n \t}\ndiff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_ethtool.c b/drivers/net/ethernet/mellanox/mlx5/core/en_ethtool.c\nindex 352462a..da758a5 100644\n--- a/drivers/net/ethernet/mellanox/mlx5/core/en_ethtool.c\n+++ b/drivers/net/ethernet/mellanox/mlx5/core/en_ethtool.c\n@@ -722,7 +722,7 @@ static void ptys2ethtool_supported_port(struct ethtool_link_ksettings *link_kset\n \t\t\t   | MLX5E_PROT_MASK(MLX5E_40GBASE_SR4)\n \t\t\t   | MLX5E_PROT_MASK(MLX5E_100GBASE_SR4)\n \t\t\t   | MLX5E_PROT_MASK(MLX5E_1000BASE_CX_SGMII))) {\n-\t\tethtool_link_ksettings_add_link_mode(link_ksettings, supported, FIBRE);\n+\t\tethtool_ks_add_mode(link_ksettings, supported, FIBRE);\n \t}\n \n \tif (eth_proto_cap & (MLX5E_PROT_MASK(MLX5E_100GBASE_KR4)\n@@ -730,7 +730,7 @@ static void ptys2ethtool_supported_port(struct ethtool_link_ksettings *link_kset\n \t\t\t   | MLX5E_PROT_MASK(MLX5E_10GBASE_KR)\n \t\t\t   | MLX5E_PROT_MASK(MLX5E_10GBASE_KX4)\n \t\t\t   | MLX5E_PROT_MASK(MLX5E_1000BASE_KX))) {\n-\t\tethtool_link_ksettings_add_link_mode(link_ksettings, supported, Backplane);\n+\t\tethtool_ks_add_mode(link_ksettings, supported, Backplane);\n \t}\n }\n \n@@ -783,8 +783,8 @@ static void get_supported(u32 eth_proto_cap,\n \n \tptys2ethtool_supported_port(link_ksettings, eth_proto_cap);\n \tptys2ethtool_supported_link(supported, eth_proto_cap);\n-\tethtool_link_ksettings_add_link_mode(link_ksettings, supported, Pause);\n-\tethtool_link_ksettings_add_link_mode(link_ksettings, supported, Asym_Pause);\n+\tethtool_ks_add_mode(link_ksettings, supported, Pause);\n+\tethtool_ks_add_mode(link_ksettings, supported, Asym_Pause);\n }\n \n static void get_advertising(u32 eth_proto_cap, u8 tx_pause,\n@@ -795,9 +795,9 @@ static void get_advertising(u32 eth_proto_cap, u8 tx_pause,\n \n \tptys2ethtool_adver_link(advertising, eth_proto_cap);\n \tif (tx_pause)\n-\t\tethtool_link_ksettings_add_link_mode(link_ksettings, advertising, Pause);\n+\t\tethtool_ks_add_mode(link_ksettings, advertising, Pause);\n \tif (tx_pause ^ rx_pause)\n-\t\tethtool_link_ksettings_add_link_mode(link_ksettings, advertising, Asym_Pause);\n+\t\tethtool_ks_add_mode(link_ksettings, advertising, Asym_Pause);\n }\n \n static u8 get_connector_port(u32 eth_proto)\n@@ -861,8 +861,8 @@ static int mlx5e_get_link_ksettings(struct net_device *netdev,\n \tan_disable_admin = MLX5_GET(ptys_reg, out, an_disable_admin);\n \tan_status        = MLX5_GET(ptys_reg, out, an_status);\n \n-\tethtool_link_ksettings_zero_link_mode(link_ksettings, supported);\n-\tethtool_link_ksettings_zero_link_mode(link_ksettings, advertising);\n+\tethtool_ks_clear(link_ksettings, supported);\n+\tethtool_ks_clear(link_ksettings, advertising);\n \n \tget_supported(eth_proto_cap, link_ksettings);\n \tget_advertising(eth_proto_admin, 0, 0, link_ksettings);\n@@ -874,16 +874,13 @@ static int mlx5e_get_link_ksettings(struct net_device *netdev,\n \tget_lp_advertising(eth_proto_lp, link_ksettings);\n \n \tif (an_status == MLX5_AN_COMPLETE)\n-\t\tethtool_link_ksettings_add_link_mode(link_ksettings,\n-\t\t\t\t\t\t     lp_advertising, Autoneg);\n+\t\tethtool_ks_add_mode(link_ksettings, lp_advertising, Autoneg);\n \n \tlink_ksettings->base.autoneg = an_disable_admin ? AUTONEG_DISABLE :\n \t\t\t\t\t\t\t  AUTONEG_ENABLE;\n-\tethtool_link_ksettings_add_link_mode(link_ksettings, supported,\n-\t\t\t\t\t     Autoneg);\n+\tethtool_ks_add_mode(link_ksettings, supported, Autoneg);\n \tif (!an_disable_admin)\n-\t\tethtool_link_ksettings_add_link_mode(link_ksettings,\n-\t\t\t\t\t\t     advertising, Autoneg);\n+\t\tethtool_ks_add_mode(link_ksettings, advertising, Autoneg);\n \n err_query_ptys:\n \treturn err;\ndiff --git a/drivers/net/ethernet/mellanox/mlxsw/spectrum.c b/drivers/net/ethernet/mellanox/mlxsw/spectrum.c\nindex d768c7b..a529dee 100644\n--- a/drivers/net/ethernet/mellanox/mlxsw/spectrum.c\n+++ b/drivers/net/ethernet/mellanox/mlxsw/spectrum.c\n@@ -1857,14 +1857,14 @@ mlxsw_sp_from_ptys_supported_port(u32 ptys_eth_proto,\n \t\t\t      MLXSW_REG_PTYS_ETH_SPEED_40GBASE_SR4 |\n \t\t\t      MLXSW_REG_PTYS_ETH_SPEED_100GBASE_SR4 |\n \t\t\t      MLXSW_REG_PTYS_ETH_SPEED_SGMII))\n-\t\tethtool_link_ksettings_add_link_mode(cmd, supported, FIBRE);\n+\t\tethtool_ks_add_mode(cmd, supported, FIBRE);\n \n \tif (ptys_eth_proto & (MLXSW_REG_PTYS_ETH_SPEED_10GBASE_KR |\n \t\t\t      MLXSW_REG_PTYS_ETH_SPEED_10GBASE_KX4 |\n \t\t\t      MLXSW_REG_PTYS_ETH_SPEED_40GBASE_KR4 |\n \t\t\t      MLXSW_REG_PTYS_ETH_SPEED_100GBASE_KR4 |\n \t\t\t      MLXSW_REG_PTYS_ETH_SPEED_1000BASE_KX))\n-\t\tethtool_link_ksettings_add_link_mode(cmd, supported, Backplane);\n+\t\tethtool_ks_add_mode(cmd, supported, Backplane);\n }\n \n static void mlxsw_sp_from_ptys_link(u32 ptys_eth_proto, unsigned long *mode)\n@@ -1963,9 +1963,9 @@ static u32 mlxsw_sp_to_ptys_upper_speed(u32 upper_speed)\n static void mlxsw_sp_port_get_link_supported(u32 eth_proto_cap,\n \t\t\t\t\t     struct ethtool_link_ksettings *cmd)\n {\n-\tethtool_link_ksettings_add_link_mode(cmd, supported, Asym_Pause);\n-\tethtool_link_ksettings_add_link_mode(cmd, supported, Autoneg);\n-\tethtool_link_ksettings_add_link_mode(cmd, supported, Pause);\n+\tethtool_ks_add_mode(cmd, supported, Asym_Pause);\n+\tethtool_ks_add_mode(cmd, supported, Autoneg);\n+\tethtool_ks_add_mode(cmd, supported, Pause);\n \n \tmlxsw_sp_from_ptys_supported_port(eth_proto_cap, cmd);\n \tmlxsw_sp_from_ptys_link(eth_proto_cap, cmd->link_modes.supported);\n@@ -1977,7 +1977,7 @@ static void mlxsw_sp_port_get_link_advertise(u32 eth_proto_admin, bool autoneg,\n \tif (!autoneg)\n \t\treturn;\n \n-\tethtool_link_ksettings_add_link_mode(cmd, advertising, Autoneg);\n+\tethtool_ks_add_mode(cmd, advertising, Autoneg);\n \tmlxsw_sp_from_ptys_link(eth_proto_admin, cmd->link_modes.advertising);\n }\n \n@@ -1988,7 +1988,7 @@ mlxsw_sp_port_get_link_lp_advertise(u32 eth_proto_lp, u8 autoneg_status,\n \tif (autoneg_status != MLXSW_REG_PTYS_AN_STATUS_OK || !eth_proto_lp)\n \t\treturn;\n \n-\tethtool_link_ksettings_add_link_mode(cmd, lp_advertising, Autoneg);\n+\tethtool_ks_add_mode(cmd, lp_advertising, Autoneg);\n \tmlxsw_sp_from_ptys_link(eth_proto_lp, cmd->link_modes.lp_advertising);\n }\n \ndiff --git a/drivers/net/ethernet/qlogic/qede/qede_ethtool.c b/drivers/net/ethernet/qlogic/qede/qede_ethtool.c\nindex 1c48f44..8a9c27e 100644\n--- a/drivers/net/ethernet/qlogic/qede/qede_ethtool.c\n+++ b/drivers/net/ethernet/qlogic/qede/qede_ethtool.c\n@@ -396,13 +396,13 @@ static int qede_get_link_ksettings(struct net_device *dev,\n \tmemset(&current_link, 0, sizeof(current_link));\n \tedev->ops->common->get_link(edev->cdev, &current_link);\n \n-\tethtool_link_ksettings_zero_link_mode(cmd, supported);\n+\tethtool_ks_clear(cmd, supported);\n \tQEDE_DRV_TO_ETHTOOL_CAPS(current_link.supported_caps, cmd, supported)\n \n-\tethtool_link_ksettings_zero_link_mode(cmd, advertising);\n+\tethtool_ks_clear(cmd, advertising);\n \tQEDE_DRV_TO_ETHTOOL_CAPS(current_link.advertised_caps, cmd, advertising)\n \n-\tethtool_link_ksettings_zero_link_mode(cmd, lp_advertising);\n+\tethtool_ks_clear(cmd, lp_advertising);\n \tQEDE_DRV_TO_ETHTOOL_CAPS(current_link.lp_caps, cmd, lp_advertising)\n \n \tif ((edev->state == QEDE_STATE_OPEN) && (current_link.link_up)) {\ndiff --git a/drivers/net/ethernet/sfc/ethtool.c b/drivers/net/ethernet/sfc/ethtool.c\nindex 87bdc56..d7305d4 100644\n--- a/drivers/net/ethernet/sfc/ethtool.c\n+++ b/drivers/net/ethernet/sfc/ethtool.c\n@@ -133,13 +133,11 @@ efx_ethtool_get_link_ksettings(struct net_device *net_dev,\n \tmutex_unlock(&efx->mac_lock);\n \n \t/* Both MACs support pause frames (bidirectional and respond-only) */\n-\tethtool_convert_link_mode_to_legacy_u32(&supported,\n-\t\t\t\t\t\tcmd->link_modes.supported);\n+\tethtool_ks_to_u32(&supported, cmd->link_modes.supported);\n \n \tsupported |= SUPPORTED_Pause | SUPPORTED_Asym_Pause;\n \n-\tethtool_convert_legacy_u32_to_link_mode(cmd->link_modes.supported,\n-\t\t\t\t\t\tsupported);\n+\tethtool_u32_to_ks(cmd->link_modes.supported, supported);\n \n \tif (LOOPBACK_INTERNAL(efx)) {\n \t\tcmd->base.speed = link_state->speed;\ndiff --git a/drivers/net/ethernet/sfc/mcdi_port.c b/drivers/net/ethernet/sfc/mcdi_port.c\nindex c905971..f71fa8b 100644\n--- a/drivers/net/ethernet/sfc/mcdi_port.c\n+++ b/drivers/net/ethernet/sfc/mcdi_port.c\n@@ -521,10 +521,8 @@ static void efx_mcdi_phy_get_link_ksettings(struct efx_nic *efx,\n \tcmd->base.mdio_support = (efx->mdio.mode_support &\n \t\t\t      (MDIO_SUPPORTS_C45 | MDIO_SUPPORTS_C22));\n \n-\tethtool_convert_legacy_u32_to_link_mode(cmd->link_modes.supported,\n-\t\t\t\t\t\tsupported);\n-\tethtool_convert_legacy_u32_to_link_mode(cmd->link_modes.advertising,\n-\t\t\t\t\t\tadvertising);\n+\tethtool_u32_to_ks(cmd->link_modes.supported, supported);\n+\tethtool_u32_to_ks(cmd->link_modes.advertising, advertising);\n \n \tBUILD_BUG_ON(MC_CMD_GET_LINK_IN_LEN != 0);\n \trc = efx_mcdi_rpc(efx, MC_CMD_GET_LINK, NULL, 0,\n@@ -535,8 +533,7 @@ static void efx_mcdi_phy_get_link_ksettings(struct efx_nic *efx,\n \t\tmcdi_to_ethtool_cap(phy_cfg->media,\n \t\t\t\t    MCDI_DWORD(outbuf, GET_LINK_OUT_LP_CAP));\n \n-\tethtool_convert_legacy_u32_to_link_mode(cmd->link_modes.lp_advertising,\n-\t\t\t\t\t\tlp_advertising);\n+\tethtool_u32_to_ks(cmd->link_modes.lp_advertising, lp_advertising);\n }\n \n static int\n@@ -548,8 +545,7 @@ efx_mcdi_phy_set_link_ksettings(struct efx_nic *efx,\n \tint rc;\n \tu32 advertising;\n \n-\tethtool_convert_link_mode_to_legacy_u32(&advertising,\n-\t\t\t\t\t\tcmd->link_modes.advertising);\n+\tethtool_ks_to_u32(&advertising,\tcmd->link_modes.advertising);\n \n \tif (cmd->base.autoneg) {\n \t\tcaps = (ethtool_to_mcdi_cap(advertising) |\ndiff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_ethtool.c b/drivers/net/ethernet/stmicro/stmmac/stmmac_ethtool.c\nindex 699ee1d..fab5a1e 100644\n--- a/drivers/net/ethernet/stmicro/stmmac/stmmac_ethtool.c\n+++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_ethtool.c\n@@ -301,12 +301,10 @@ static int stmmac_ethtool_get_link_ksettings(struct net_device *dev,\n \n \t\t/* Encoding of PSE bits is defined in 802.3z, 37.2.1.4 */\n \n-\t\tethtool_convert_link_mode_to_legacy_u32(\n-\t\t\t&supported, cmd->link_modes.supported);\n-\t\tethtool_convert_link_mode_to_legacy_u32(\n-\t\t\t&advertising, cmd->link_modes.advertising);\n-\t\tethtool_convert_link_mode_to_legacy_u32(\n-\t\t\t&lp_advertising, cmd->link_modes.lp_advertising);\n+\t\tethtool_ks_to_u32(&supported, cmd->link_modes.supported);\n+\t\tethtool_ks_to_u32(&advertising, cmd->link_modes.advertising);\n+\t\tethtool_ks_to_u32(&lp_advertising,\n+\t\t\t\t  cmd->link_modes.lp_advertising);\n \n \t\tif (adv.pause & STMMAC_PCS_PAUSE)\n \t\t\tadvertising |= ADVERTISED_Pause;\n@@ -348,12 +346,10 @@ static int stmmac_ethtool_get_link_ksettings(struct net_device *dev,\n \t\t\t\t\t   ADVERTISED_10baseT_Half);\n \t\tcmd->base.port = PORT_OTHER;\n \n-\t\tethtool_convert_legacy_u32_to_link_mode(\n-\t\t\tcmd->link_modes.supported, supported);\n-\t\tethtool_convert_legacy_u32_to_link_mode(\n-\t\t\tcmd->link_modes.advertising, advertising);\n-\t\tethtool_convert_legacy_u32_to_link_mode(\n-\t\t\tcmd->link_modes.lp_advertising, lp_advertising);\n+\t\tethtool_u32_to_ks(cmd->link_modes.supported, supported);\n+\t\tethtool_u32_to_ks(cmd->link_modes.advertising, advertising);\n+\t\tethtool_u32_to_ks(cmd->link_modes.lp_advertising,\n+\t\t\t\t  lp_advertising);\n \n \t\treturn 0;\n \t}\ndiff --git a/drivers/net/ethernet/ti/netcp_ethss.c b/drivers/net/ethernet/ti/netcp_ethss.c\nindex c7e547e..b3fd7dc 100644\n--- a/drivers/net/ethernet/ti/netcp_ethss.c\n+++ b/drivers/net/ethernet/ti/netcp_ethss.c\n@@ -1944,10 +1944,8 @@ static int keystone_set_link_ksettings(struct net_device *ndev,\n \tu32 advertising, supported;\n \tu32 features;\n \n-\tethtool_convert_link_mode_to_legacy_u32(&advertising,\n-\t\t\t\t\t\tcmd->link_modes.advertising);\n-\tethtool_convert_link_mode_to_legacy_u32(&supported,\n-\t\t\t\t\t\tcmd->link_modes.supported);\n+\tethtool_ks_to_u32(&advertising, cmd->link_modes.advertising);\n+\tethtool_ks_to_u32(&supported, cmd->link_modes.supported);\n \tfeatures = advertising & supported;\n \n \tif (!phy)\ndiff --git a/drivers/net/mii.c b/drivers/net/mii.c\nindex 6d953c5..f36f2ac 100644\n--- a/drivers/net/mii.c\n+++ b/drivers/net/mii.c\n@@ -219,12 +219,9 @@ int mii_ethtool_get_link_ksettings(struct mii_if_info *mii,\n \n \tmii->full_duplex = cmd->base.duplex;\n \n-\tethtool_convert_legacy_u32_to_link_mode(cmd->link_modes.supported,\n-\t\t\t\t\t\tsupported);\n-\tethtool_convert_legacy_u32_to_link_mode(cmd->link_modes.advertising,\n-\t\t\t\t\t\tadvertising);\n-\tethtool_convert_legacy_u32_to_link_mode(cmd->link_modes.lp_advertising,\n-\t\t\t\t\t\tlp_advertising);\n+\tethtool_u32_to_ks(cmd->link_modes.supported, supported);\n+\tethtool_u32_to_ks(cmd->link_modes.advertising, advertising);\n+\tethtool_u32_to_ks(cmd->link_modes.lp_advertising, lp_advertising);\n \n \t/* ignore maxtxpkt, maxrxpkt for now */\n \n@@ -359,8 +356,7 @@ int mii_ethtool_set_link_ksettings(struct mii_if_info *mii,\n \t\tu32 advert2 = 0, tmp2 = 0;\n \t\tu32 advertising;\n \n-\t\tethtool_convert_link_mode_to_legacy_u32(\n-\t\t\t&advertising, cmd->link_modes.advertising);\n+\t\tethtool_ks_to_u32(&advertising, cmd->link_modes.advertising);\n \n \t\tif ((advertising & (ADVERTISED_10baseT_Half |\n \t\t\t\t    ADVERTISED_10baseT_Full |\ndiff --git a/drivers/net/phy/phy.c b/drivers/net/phy/phy.c\nindex 25f93a9..5af791a 100644\n--- a/drivers/net/phy/phy.c\n+++ b/drivers/net/phy/phy.c\n@@ -409,8 +409,7 @@ int phy_ethtool_ksettings_set(struct phy_device *phydev,\n \tif (cmd->base.phy_address != phydev->mdio.addr)\n \t\treturn -EINVAL;\n \n-\tethtool_convert_link_mode_to_legacy_u32(&advertising,\n-\t\t\t\t\t\tcmd->link_modes.advertising);\n+\tethtool_ks_to_u32(&advertising, cmd->link_modes.advertising);\n \n \t/* We make sure that we don't pass unsupported values in to the PHY */\n \tadvertising &= phydev->supported;\n@@ -479,14 +478,12 @@ EXPORT_SYMBOL(phy_ethtool_gset);\n int phy_ethtool_ksettings_get(struct phy_device *phydev,\n \t\t\t      struct ethtool_link_ksettings *cmd)\n {\n-\tethtool_convert_legacy_u32_to_link_mode(cmd->link_modes.supported,\n-\t\t\t\t\t\tphydev->supported);\n+\tethtool_u32_to_ks(cmd->link_modes.supported, phydev->supported);\n \n-\tethtool_convert_legacy_u32_to_link_mode(cmd->link_modes.advertising,\n-\t\t\t\t\t\tphydev->advertising);\n+\tethtool_u32_to_ks(cmd->link_modes.advertising, phydev->advertising);\n \n-\tethtool_convert_legacy_u32_to_link_mode(cmd->link_modes.lp_advertising,\n-\t\t\t\t\t\tphydev->lp_advertising);\n+\tethtool_u32_to_ks(cmd->link_modes.lp_advertising,\n+\t\t\t  phydev->lp_advertising);\n \n \tcmd->base.speed = phydev->speed;\n \tcmd->base.duplex = phydev->duplex;\ndiff --git a/drivers/net/usb/lan78xx.c b/drivers/net/usb/lan78xx.c\nindex 08f8703..b8015e4 100644\n--- a/drivers/net/usb/lan78xx.c\n+++ b/drivers/net/usb/lan78xx.c\n@@ -1567,15 +1567,13 @@ static int lan78xx_set_pause(struct net_device *net,\n \t\tu32 mii_adv;\n \t\tu32 advertising;\n \n-\t\tethtool_convert_link_mode_to_legacy_u32(\n-\t\t\t&advertising, ecmd.link_modes.advertising);\n+\t\tethtool_ks_to_u32(&advertising, ecmd.link_modes.advertising);\n \n \t\tadvertising &= ~(ADVERTISED_Pause | ADVERTISED_Asym_Pause);\n \t\tmii_adv = (u32)mii_advertise_flowctrl(dev->fc_request_control);\n \t\tadvertising |= mii_adv_to_ethtool_adv_t(mii_adv);\n \n-\t\tethtool_convert_legacy_u32_to_link_mode(\n-\t\t\tecmd.link_modes.advertising, advertising);\n+\t\tethtool_u32_to_ks(ecmd.link_modes.advertising, advertising);\n \n \t\tphy_ethtool_ksettings_set(phydev, &ecmd);\n \t}\ndiff --git a/include/linux/ethtool.h b/include/linux/ethtool.h\nindex 9ded8c6..90bb86b 100644\n--- a/include/linux/ethtool.h\n+++ b/include/linux/ethtool.h\n@@ -116,26 +116,25 @@ struct ethtool_link_ksettings {\n };\n \n /**\n- * ethtool_link_ksettings_zero_link_mode - clear link_ksettings link mode mask\n+ * ethtool_ks_clear - clear link_ksettings link mode mask\n  *   @ptr : pointer to struct ethtool_link_ksettings\n  *   @name : one of supported/advertising/lp_advertising\n  */\n-#define ethtool_link_ksettings_zero_link_mode(ptr, name)\t\t\\\n+#define ethtool_ks_clear(ptr, name)\t\t\\\n \tbitmap_zero((ptr)->link_modes.name, __ETHTOOL_LINK_MODE_MASK_NBITS)\n \n /**\n- * ethtool_link_ksettings_add_link_mode - set bit in link_ksettings\n+ * ethtool_ks_add_mode - set bit in link_ksettings\n  * link mode mask\n  *   @ptr : pointer to struct ethtool_link_ksettings\n  *   @name : one of supported/advertising/lp_advertising\n  *   @mode : one of the ETHTOOL_LINK_MODE_*_BIT\n  * (not atomic, no bound checking)\n  */\n-#define ethtool_link_ksettings_add_link_mode(ptr, name, mode)\t\t\\\n+#define ethtool_ks_add_mode(ptr, name, mode)\t\t\\\n \t__set_bit(ETHTOOL_LINK_MODE_ ## mode ## _BIT, (ptr)->link_modes.name)\n-\n /**\n- * ethtool_link_ksettings_test_link_mode - test bit in ksettings link mode mask\n+ * ethtool_ks_test - test bit in ksettings link mode mask\n  *   @ptr : pointer to struct ethtool_link_ksettings\n  *   @name : one of supported/advertising/lp_advertising\n  *   @mode : one of the ETHTOOL_LINK_MODE_*_BIT\n@@ -143,19 +142,15 @@ struct ethtool_link_ksettings {\n  *\n  * Returns true/false.\n  */\n-#define ethtool_link_ksettings_test_link_mode(ptr, name, mode)\t\t\\\n+#define ethtool_ks_test(ptr, name, mode)\t\t\\\n \ttest_bit(ETHTOOL_LINK_MODE_ ## mode ## _BIT, (ptr)->link_modes.name)\n-\n extern int\n __ethtool_get_link_ksettings(struct net_device *dev,\n \t\t\t     struct ethtool_link_ksettings *link_ksettings);\n-\n-void ethtool_convert_legacy_u32_to_link_mode(unsigned long *dst,\n-\t\t\t\t\t     u32 legacy_u32);\n+void ethtool_u32_to_ks(unsigned long *dst, u32 legacy_u32);\n \n /* return false if src had higher bits set. lower bits always updated. */\n-bool ethtool_convert_link_mode_to_legacy_u32(u32 *legacy_u32,\n-\t\t\t\t     const unsigned long *src);\n+bool ethtool_ks_to_u32(u32 *legacy_u32, const unsigned long *src);\n \n /**\n  * struct ethtool_ops - optional netdev operations\ndiff --git a/net/core/ethtool.c b/net/core/ethtool.c\nindex e23766c..0924a0c 100644\n--- a/net/core/ethtool.c\n+++ b/net/core/ethtool.c\n@@ -403,17 +403,15 @@ static int __ethtool_set_flags(struct net_device *dev, u32 data)\n \treturn 0;\n }\n \n-void ethtool_convert_legacy_u32_to_link_mode(unsigned long *dst,\n-\t\t\t\t\t     u32 legacy_u32)\n+void ethtool_u32_to_ks(unsigned long *dst, u32 legacy_u32)\n {\n \tbitmap_zero(dst, __ETHTOOL_LINK_MODE_MASK_NBITS);\n \tdst[0] = legacy_u32;\n }\n-EXPORT_SYMBOL(ethtool_convert_legacy_u32_to_link_mode);\n+EXPORT_SYMBOL(ethtool_u32_to_ks);\n \n /* return false if src had higher bits set. lower bits always updated. */\n-bool ethtool_convert_link_mode_to_legacy_u32(u32 *legacy_u32,\n-\t\t\t\t\t     const unsigned long *src)\n+bool ethtool_ks_to_u32(u32 *legacy_u32, const unsigned long *src)\n {\n \tbool retval = true;\n \n@@ -433,7 +431,7 @@ bool ethtool_convert_link_mode_to_legacy_u32(u32 *legacy_u32,\n \t*legacy_u32 = src[0];\n \treturn retval;\n }\n-EXPORT_SYMBOL(ethtool_convert_link_mode_to_legacy_u32);\n+EXPORT_SYMBOL(ethtool_ks_to_u32);\n \n /* return false if legacy contained non-0 deprecated fields\n  * transceiver/maxtxpkt/maxrxpkt. rest of ksettings always updated\n@@ -456,15 +454,12 @@ convert_legacy_settings_to_link_ksettings(\n \t    legacy_settings->maxrxpkt)\n \t\tretval = false;\n \n-\tethtool_convert_legacy_u32_to_link_mode(\n-\t\tlink_ksettings->link_modes.supported,\n-\t\tlegacy_settings->supported);\n-\tethtool_convert_legacy_u32_to_link_mode(\n-\t\tlink_ksettings->link_modes.advertising,\n-\t\tlegacy_settings->advertising);\n-\tethtool_convert_legacy_u32_to_link_mode(\n-\t\tlink_ksettings->link_modes.lp_advertising,\n-\t\tlegacy_settings->lp_advertising);\n+\tethtool_u32_to_ks(link_ksettings->link_modes.supported,\n+\t\t\t  legacy_settings->supported);\n+\tethtool_u32_to_ks(link_ksettings->link_modes.advertising,\n+\t\t\t  legacy_settings->advertising);\n+\tethtool_u32_to_ks(link_ksettings->link_modes.lp_advertising,\n+\t\t\t  legacy_settings->lp_advertising);\n \tlink_ksettings->base.speed\n \t\t= ethtool_cmd_speed(legacy_settings);\n \tlink_ksettings->base.duplex\n@@ -501,15 +496,12 @@ convert_link_ksettings_to_legacy_settings(\n \t * __u32\tmaxrxpkt;\n \t */\n \n-\tretval &= ethtool_convert_link_mode_to_legacy_u32(\n-\t\t&legacy_settings->supported,\n-\t\tlink_ksettings->link_modes.supported);\n-\tretval &= ethtool_convert_link_mode_to_legacy_u32(\n-\t\t&legacy_settings->advertising,\n-\t\tlink_ksettings->link_modes.advertising);\n-\tretval &= ethtool_convert_link_mode_to_legacy_u32(\n-\t\t&legacy_settings->lp_advertising,\n-\t\tlink_ksettings->link_modes.lp_advertising);\n+\tretval &= ethtool_ks_to_u32(&legacy_settings->supported,\n+\t\t\t\t    link_ksettings->link_modes.supported);\n+\tretval &= ethtool_ks_to_u32(&legacy_settings->advertising,\n+\t\t\t\t    link_ksettings->link_modes.advertising);\n+\tretval &= ethtool_ks_to_u32(&legacy_settings->lp_advertising,\n+\t\t\t\t    link_ksettings->link_modes.lp_advertising);\n \tethtool_cmd_speed_set(legacy_settings, link_ksettings->base.speed);\n \tlegacy_settings->duplex\n \t\t= link_ksettings->base.duplex;\n",
    "prefixes": [
        "v3"
    ]
}