get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 85262,
    "url": "https://patches.dpdk.org/api/patches/85262/?format=api",
    "web_url": "https://patches.dpdk.org/project/dpdk/patch/20201216211257.37195-4-aboyer@pensando.io/",
    "project": {
        "id": 1,
        "url": "https://patches.dpdk.org/api/projects/1/?format=api",
        "name": "DPDK",
        "link_name": "dpdk",
        "list_id": "dev.dpdk.org",
        "list_email": "dev@dpdk.org",
        "web_url": "http://core.dpdk.org",
        "scm_url": "git://dpdk.org/dpdk",
        "webscm_url": "http://git.dpdk.org/dpdk",
        "list_archive_url": "https://inbox.dpdk.org/dev",
        "list_archive_url_format": "https://inbox.dpdk.org/dev/{}",
        "commit_url_format": ""
    },
    "msgid": "<20201216211257.37195-4-aboyer@pensando.io>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20201216211257.37195-4-aboyer@pensando.io",
    "date": "2020-12-16T21:12:53",
    "name": "[v2,3/7] net/ionic: remove multi-LIF support",
    "commit_ref": null,
    "pull_url": null,
    "state": "accepted",
    "archived": true,
    "hash": "f792a948cf1888a0c320e0f9a64072571142920a",
    "submitter": {
        "id": 2036,
        "url": "https://patches.dpdk.org/api/people/2036/?format=api",
        "name": "Andrew Boyer",
        "email": "aboyer@pensando.io"
    },
    "delegate": {
        "id": 319,
        "url": "https://patches.dpdk.org/api/users/319/?format=api",
        "username": "fyigit",
        "first_name": "Ferruh",
        "last_name": "Yigit",
        "email": "ferruh.yigit@amd.com"
    },
    "mbox": "https://patches.dpdk.org/project/dpdk/patch/20201216211257.37195-4-aboyer@pensando.io/mbox/",
    "series": [
        {
            "id": 14335,
            "url": "https://patches.dpdk.org/api/series/14335/?format=api",
            "web_url": "https://patches.dpdk.org/project/dpdk/list/?series=14335",
            "date": "2020-12-16T21:12:50",
            "name": "net/ionic: fixes for stop and start",
            "version": 2,
            "mbox": "https://patches.dpdk.org/series/14335/mbox/"
        }
    ],
    "comments": "https://patches.dpdk.org/api/patches/85262/comments/",
    "check": "success",
    "checks": "https://patches.dpdk.org/api/patches/85262/checks/",
    "tags": {},
    "related": [],
    "headers": {
        "Return-Path": "<dev-bounces@dpdk.org>",
        "X-Original-To": "patchwork@inbox.dpdk.org",
        "Delivered-To": "patchwork@inbox.dpdk.org",
        "Received": [
            "from dpdk.org (dpdk.org [92.243.14.124])\n\tby inbox.dpdk.org (Postfix) with ESMTP id ECF83A09F0;\n\tWed, 16 Dec 2020 22:14:21 +0100 (CET)",
            "from [92.243.14.124] (localhost [127.0.0.1])\n\tby dpdk.org (Postfix) with ESMTP id EABBECA04;\n\tWed, 16 Dec 2020 22:13:31 +0100 (CET)",
            "from mail-pl1-f175.google.com (mail-pl1-f175.google.com\n [209.85.214.175]) by dpdk.org (Postfix) with ESMTP id 0E356CA04\n for <dev@dpdk.org>; Wed, 16 Dec 2020 22:13:29 +0100 (CET)",
            "by mail-pl1-f175.google.com with SMTP id j1so13672962pld.3\n for <dev@dpdk.org>; Wed, 16 Dec 2020 13:13:28 -0800 (PST)",
            "from driver-dev1.pensando.io ([12.226.153.42])\n by smtp.gmail.com with ESMTPSA id r67sm3345614pfc.82.2020.12.16.13.13.25\n (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n Wed, 16 Dec 2020 13:13:26 -0800 (PST)"
        ],
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=pensando.io; s=google;\n h=from:to:cc:subject:date:message-id:in-reply-to:references\n :in-reply-to:references;\n bh=v/GqzaXQuWJcYT0O7k5oyhD1TBiTWzbpSL5++MTgOOs=;\n b=xQSLNLkrjGIYFf3BAVwZnHVXh0e7JhdMj3LaObywIFHNSAdgNaOpuDaSmmirhDmxlV\n 4aIQ/9VsJRFi6ttLlqWR6IsiXCfw0IhCM/TpDqLnU+n9ietNpjglrdKKjsERudf+yyxq\n kIFPghG5cerYH5rCJ8/d2zcpsRusHJCJ1DEUJly5ThgSv1XwUKmg/IPveu4uw4LgzIPH\n XcokP5Edwdh9Beq6HU/q88KuVGGOR49SiPzeMVufsBZA1BRHPjAgSxFrcWqu3XrSnNKU\n fO8+jDN8ehhXoB6ZQkpxfXkHQ5A9KheuxcdxRiVgtcKu4yvhi2bXMfoyZKFCDnnzNoRX\n GUUw==",
        "X-Google-DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=1e100.net; s=20161025;\n h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to\n :references:in-reply-to:references;\n bh=v/GqzaXQuWJcYT0O7k5oyhD1TBiTWzbpSL5++MTgOOs=;\n b=llbIO61CN1HM0u5HBZNjC+aP6PYXvtuhcMlS7rqD3sPFn44Z4G76Hvv440qA94CjpW\n LbIQgAoTPHWlxdL8SPsV0aMHnBoGokKt+P92tO2P2mdo2nnqm/zSwsL4igF9LDkWLFUE\n 69136BUijLxCioqFSF9pbJ5lCySjFODfjsw0zwI06UdsnFaeTsRj5po9qE2tG9i/OqEZ\n 3Q+O8TS4g6KG+wKxqmIbMUCf13KsJSm2xtc3bYZ2PqlzaPGJQ3kTiQdYb16nfEv2fCfi\n tVOWbiUyk+S6Ugrv77SVxUAz8/xhkVwff5NIIt5MU9ZQ3wFn325Ia528XSAGNcJ++ocS\n ZaAQ==",
        "X-Gm-Message-State": "AOAM530nL0hunE9z688Dl7RdtMocqxEoxehns7SZzqy6RR/qssEM2wb8\n CUfLHj6nAZweBkjRLhqaELGo/XB4CHseYA==",
        "X-Google-Smtp-Source": "\n ABdhPJwg9pMVDVCX9WTylIwNdz0vivX032lgT7+38eY9bYsnFsxLeHG3sIizw8/7+L/sQyi3lfBENw==",
        "X-Received": "by 2002:a17:90b:4acc:: with SMTP id\n mh12mr4758745pjb.54.1608153206886;\n Wed, 16 Dec 2020 13:13:26 -0800 (PST)",
        "From": "Andrew Boyer <aboyer@pensando.io>",
        "To": "dev@dpdk.org",
        "Cc": "Alfredo Cardigliano <cardigliano@ntop.org>,\n Andrew Boyer <aboyer@pensando.io>",
        "Date": "Wed, 16 Dec 2020 13:12:53 -0800",
        "Message-Id": "<20201216211257.37195-4-aboyer@pensando.io>",
        "X-Mailer": "git-send-email 2.17.1",
        "In-Reply-To": [
            "<20201216211257.37195-1-aboyer@pensando.io>",
            "<20201210142231.63209-1-aboyer@pensando.io>"
        ],
        "References": [
            "<20201216211257.37195-1-aboyer@pensando.io>",
            "<20201210142231.63209-1-aboyer@pensando.io>"
        ],
        "Subject": "[dpdk-dev] [PATCH v2 3/7] net/ionic: remove multi-LIF support",
        "X-BeenThere": "dev@dpdk.org",
        "X-Mailman-Version": "2.1.15",
        "Precedence": "list",
        "List-Id": "DPDK patches and discussions <dev.dpdk.org>",
        "List-Unsubscribe": "<https://mails.dpdk.org/options/dev>,\n <mailto:dev-request@dpdk.org?subject=unsubscribe>",
        "List-Archive": "<http://mails.dpdk.org/archives/dev/>",
        "List-Post": "<mailto:dev@dpdk.org>",
        "List-Help": "<mailto:dev-request@dpdk.org?subject=help>",
        "List-Subscribe": "<https://mails.dpdk.org/listinfo/dev>,\n <mailto:dev-request@dpdk.org?subject=subscribe>",
        "Errors-To": "dev-bounces@dpdk.org",
        "Sender": "\"dev\" <dev-bounces@dpdk.org>"
    },
    "content": "This feature is unused, so remove it.\n\nThere is exactly one adapter / lif / ethdev per port.\n\nSigned-off-by: Andrew Boyer <aboyer@pensando.io>\n---\n drivers/net/ionic/ionic.h        |  3 +-\n drivers/net/ionic/ionic_dev.c    | 16 ++--------\n drivers/net/ionic/ionic_dev.h    |  8 ++---\n drivers/net/ionic/ionic_ethdev.c | 50 ++++++++++++--------------------\n drivers/net/ionic/ionic_lif.c    | 24 ++++-----------\n drivers/net/ionic/ionic_lif.h    |  1 -\n 6 files changed, 31 insertions(+), 71 deletions(-)",
    "diff": "diff --git a/drivers/net/ionic/ionic.h b/drivers/net/ionic/ionic.h\nindex 7ad0ab69e..49d1fc003 100644\n--- a/drivers/net/ionic/ionic.h\n+++ b/drivers/net/ionic/ionic.h\n@@ -51,9 +51,8 @@ struct ionic_adapter {\n \tconst char *name;\n \tstruct ionic_dev_bar bars[IONIC_BARS_MAX];\n \tstruct ionic_identity\tident;\n-\tstruct ionic_lif *lifs[IONIC_LIFS_MAX];\n+\tstruct ionic_lif *lif;\n \tuint32_t num_bars;\n-\tuint32_t nlifs;\n \tuint32_t max_ntxqs_per_lif;\n \tuint32_t max_nrxqs_per_lif;\n \tuint32_t max_mac_addrs;\ndiff --git a/drivers/net/ionic/ionic_dev.c b/drivers/net/ionic/ionic_dev.c\nindex f32966521..4b5e24f98 100644\n--- a/drivers/net/ionic/ionic_dev.c\n+++ b/drivers/net/ionic/ionic_dev.c\n@@ -288,12 +288,10 @@ ionic_dev_cmd_lif_identify(struct ionic_dev *idev, uint8_t type, uint8_t ver)\n }\n \n void\n-ionic_dev_cmd_lif_init(struct ionic_dev *idev, uint16_t lif_index,\n-\t\t       rte_iova_t info_pa)\n+ionic_dev_cmd_lif_init(struct ionic_dev *idev, rte_iova_t info_pa)\n {\n \tunion ionic_dev_cmd cmd = {\n \t\t.lif_init.opcode = IONIC_CMD_LIF_INIT,\n-\t\t.lif_init.index = lif_index,\n \t\t.lif_init.info_pa = info_pa,\n \t};\n \n@@ -301,11 +299,10 @@ ionic_dev_cmd_lif_init(struct ionic_dev *idev, uint16_t lif_index,\n }\n \n void\n-ionic_dev_cmd_lif_reset(struct ionic_dev *idev, uint16_t lif_index)\n+ionic_dev_cmd_lif_reset(struct ionic_dev *idev)\n {\n \tunion ionic_dev_cmd cmd = {\n \t\t.lif_init.opcode = IONIC_CMD_LIF_RESET,\n-\t\t.lif_init.index = lif_index,\n \t};\n \n \tionic_dev_cmd_go(idev, &cmd);\n@@ -317,12 +314,6 @@ ionic_db_map(struct ionic_lif *lif, struct ionic_queue *q)\n \treturn lif->kern_dbpage + q->hw_type;\n }\n \n-int\n-ionic_db_page_num(struct ionic_lif *lif, int pid)\n-{\n-\treturn (lif->index * 0) + pid;\n-}\n-\n void\n ionic_intr_init(struct ionic_dev *idev, struct ionic_intr_info *intr,\n \t\tunsigned long index)\n@@ -334,14 +325,13 @@ ionic_intr_init(struct ionic_dev *idev, struct ionic_intr_info *intr,\n void\n ionic_dev_cmd_adminq_init(struct ionic_dev *idev,\n \t\tstruct ionic_qcq *qcq,\n-\t\tuint16_t lif_index, uint16_t intr_index)\n+\t\tuint16_t intr_index)\n {\n \tstruct ionic_queue *q = &qcq->q;\n \tstruct ionic_cq *cq = &qcq->cq;\n \n \tunion ionic_dev_cmd cmd = {\n \t\t.q_init.opcode = IONIC_CMD_Q_INIT,\n-\t\t.q_init.lif_index = lif_index,\n \t\t.q_init.type = q->type,\n \t\t.q_init.index = q->index,\n \t\t.q_init.flags = IONIC_QINIT_F_ENA,\ndiff --git a/drivers/net/ionic/ionic_dev.h b/drivers/net/ionic/ionic_dev.h\nindex 026c4a9f3..6588a373f 100644\n--- a/drivers/net/ionic/ionic_dev.h\n+++ b/drivers/net/ionic/ionic_dev.h\n@@ -232,15 +232,13 @@ void ionic_dev_cmd_port_loopback(struct ionic_dev *idev,\n \n void ionic_dev_cmd_lif_identify(struct ionic_dev *idev, uint8_t type,\n \tuint8_t ver);\n-void ionic_dev_cmd_lif_init(struct ionic_dev *idev, uint16_t lif_index,\n-\trte_iova_t addr);\n-void ionic_dev_cmd_lif_reset(struct ionic_dev *idev, uint16_t lif_index);\n+void ionic_dev_cmd_lif_init(struct ionic_dev *idev, rte_iova_t addr);\n+void ionic_dev_cmd_lif_reset(struct ionic_dev *idev);\n void ionic_dev_cmd_adminq_init(struct ionic_dev *idev, struct ionic_qcq *qcq,\n-\tuint16_t lif_index, uint16_t intr_index);\n+\tuint16_t intr_index);\n \n struct ionic_doorbell __iomem *ionic_db_map(struct ionic_lif *lif,\n \tstruct ionic_queue *q);\n-int ionic_db_page_num(struct ionic_lif *lif, int pid);\n \n int ionic_cq_init(struct ionic_lif *lif, struct ionic_cq *cq,\n \tstruct ionic_intr_info *intr, uint32_t num_descs,\ndiff --git a/drivers/net/ionic/ionic_ethdev.c b/drivers/net/ionic/ionic_ethdev.c\nindex 5a360ac08..54d7a6cad 100644\n--- a/drivers/net/ionic/ionic_ethdev.c\n+++ b/drivers/net/ionic/ionic_ethdev.c\n@@ -339,14 +339,11 @@ static void\n ionic_dev_interrupt_handler(void *param)\n {\n \tstruct ionic_adapter *adapter = (struct ionic_adapter *)param;\n-\tuint32_t i;\n \n \tIONIC_PRINT(DEBUG, \"->\");\n \n-\tfor (i = 0; i < adapter->nlifs; i++) {\n-\t\tif (adapter->lifs[i])\n-\t\t\tionic_notifyq_handler(adapter->lifs[i], -1);\n-\t}\n+\tif (adapter->lif)\n+\t\tionic_notifyq_handler(adapter->lif, -1);\n }\n \n static int\n@@ -1008,10 +1005,9 @@ eth_ionic_dev_init(struct rte_eth_dev *eth_dev, void *init_params)\n \trte_eth_copy_pci_info(eth_dev, pci_dev);\n \teth_dev->data->dev_flags |= RTE_ETH_DEV_AUTOFILL_QUEUE_XSTATS;\n \n-\tlif->index = adapter->nlifs;\n \tlif->eth_dev = eth_dev;\n \tlif->adapter = adapter;\n-\tadapter->lifs[adapter->nlifs] = lif;\n+\tadapter->lif = lif;\n \n \tIONIC_PRINT(DEBUG, \"Up to %u MAC addresses supported\",\n \t\tadapter->max_mac_addrs);\n@@ -1066,7 +1062,7 @@ eth_ionic_dev_uninit(struct rte_eth_dev *eth_dev)\n \tif (rte_eal_process_type() != RTE_PROC_PRIMARY)\n \t\treturn 0;\n \n-\tadapter->lifs[lif->index] = NULL;\n+\tadapter->lif = NULL;\n \n \tionic_lif_deinit(lif);\n \tionic_lif_free(lif);\n@@ -1243,22 +1239,19 @@ eth_ionic_pci_probe(struct rte_pci_driver *pci_drv __rte_unused,\n \n \tadapter->max_mac_addrs = adapter->ident.lif.eth.max_ucast_filters;\n \n-\tadapter->nlifs = 0;\n-\tfor (i = 0; i < adapter->ident.dev.nlifs; i++) {\n-\t\tsnprintf(name, sizeof(name), \"net_%s_lif_%lu\",\n-\t\t\tpci_dev->device.name, i);\n-\n-\t\terr = rte_eth_dev_create(&pci_dev->device, name,\n-\t\t\tsizeof(struct ionic_lif),\n-\t\t\tNULL, NULL,\n-\t\t\teth_ionic_dev_init, adapter);\n-\t\tif (err) {\n-\t\t\tIONIC_PRINT(ERR, \"Cannot create eth device for \"\n-\t\t\t\t\"ionic lif %s\", name);\n-\t\t\tbreak;\n-\t\t}\n+\tif (adapter->ident.dev.nlifs != 1) {\n+\t\tIONIC_PRINT(ERR, \"Unexpected request for %d LIFs\",\n+\t\t\tadapter->ident.dev.nlifs);\n+\t\tgoto err_free_adapter;\n+\t}\n \n-\t\tadapter->nlifs++;\n+\tsnprintf(name, sizeof(name), \"%s_lif\", pci_dev->device.name);\n+\terr = rte_eth_dev_create(&pci_dev->device,\n+\t\t\tname, sizeof(struct ionic_lif),\n+\t\t\tNULL, NULL, eth_ionic_dev_init, adapter);\n+\tif (err) {\n+\t\tIONIC_PRINT(ERR, \"Cannot create eth device for %s\", name);\n+\t\tgoto err_free_adapter;\n \t}\n \n \terr = ionic_configure_intr(adapter);\n@@ -1283,11 +1276,9 @@ eth_ionic_pci_remove(struct rte_pci_device *pci_dev __rte_unused)\n \tstruct ionic_adapter *adapter = NULL;\n \tstruct rte_eth_dev *eth_dev;\n \tstruct ionic_lif *lif;\n-\tuint32_t i;\n \n-\t/* Adapter lookup is using (the first) eth_dev name */\n-\tsnprintf(name, sizeof(name), \"net_%s_lif_0\",\n-\t\tpci_dev->device.name);\n+\t/* Adapter lookup is using the eth_dev name */\n+\tsnprintf(name, sizeof(name), \"%s_lif\", pci_dev->device.name);\n \n \teth_dev = rte_eth_dev_allocated(name);\n \tif (eth_dev) {\n@@ -1298,10 +1289,7 @@ eth_ionic_pci_remove(struct rte_pci_device *pci_dev __rte_unused)\n \tif (adapter) {\n \t\tionic_unconfigure_intr(adapter);\n \n-\t\tfor (i = 0; i < adapter->nlifs; i++) {\n-\t\t\tlif = adapter->lifs[i];\n-\t\t\trte_eth_dev_destroy(lif->eth_dev, eth_ionic_dev_uninit);\n-\t\t}\n+\t\trte_eth_dev_destroy(eth_dev, eth_ionic_dev_uninit);\n \n \t\trte_free(adapter);\n \t}\ndiff --git a/drivers/net/ionic/ionic_lif.c b/drivers/net/ionic/ionic_lif.c\nindex 875c7e585..4b5221b83 100644\n--- a/drivers/net/ionic/ionic_lif.c\n+++ b/drivers/net/ionic/ionic_lif.c\n@@ -25,7 +25,6 @@ ionic_qcq_enable(struct ionic_qcq *qcq)\n \t\t.pending_work = true,\n \t\t.cmd.q_control = {\n \t\t\t.opcode = IONIC_CMD_Q_CONTROL,\n-\t\t\t.lif_index = lif->index,\n \t\t\t.type = q->type,\n \t\t\t.index = q->index,\n \t\t\t.oper = IONIC_Q_ENABLE,\n@@ -50,7 +49,6 @@ ionic_qcq_disable(struct ionic_qcq *qcq)\n \t\t.pending_work = true,\n \t\t.cmd.q_control = {\n \t\t\t.opcode = IONIC_CMD_Q_CONTROL,\n-\t\t\t.lif_index = lif->index,\n \t\t\t.type = q->type,\n \t\t\t.index = q->index,\n \t\t\t.oper = IONIC_Q_DISABLE,\n@@ -81,7 +79,7 @@ ionic_lif_reset(struct ionic_lif *lif)\n \n \tIONIC_PRINT_CALL();\n \n-\tionic_dev_cmd_lif_reset(idev, lif->index);\n+\tionic_dev_cmd_lif_reset(idev);\n \terr = ionic_dev_cmd_wait_check(idev, IONIC_DEVCMD_TIMEOUT);\n \tif (err)\n \t\tIONIC_PRINT(WARNING, \"Failed to reset %s\", lif->name);\n@@ -438,7 +436,6 @@ ionic_lif_rx_mode(struct ionic_lif *lif, uint32_t rx_mode)\n \t\t.pending_work = true,\n \t\t.cmd.rx_mode_set = {\n \t\t\t.opcode = IONIC_CMD_RX_MODE_SET,\n-\t\t\t.lif_index = lif->index,\n \t\t\t.rx_mode = rx_mode,\n \t\t},\n \t};\n@@ -530,7 +527,6 @@ ionic_lif_change_mtu(struct ionic_lif *lif, int new_mtu)\n \t\t.pending_work = true,\n \t\t.cmd.lif_setattr = {\n \t\t\t.opcode = IONIC_CMD_LIF_SETATTR,\n-\t\t\t.index = lif->index,\n \t\t\t.attr = IONIC_LIF_ATTR_MTU,\n \t\t\t.mtu = new_mtu,\n \t\t},\n@@ -824,7 +820,6 @@ ionic_lif_alloc(struct ionic_lif *lif)\n {\n \tstruct ionic_adapter *adapter = lif->adapter;\n \tuint32_t socket_id = rte_socket_id();\n-\tint dbpage_num;\n \tint err;\n \n \t/*\n@@ -840,9 +835,7 @@ ionic_lif_alloc(struct ionic_lif *lif)\n \trte_spinlock_init(&lif->adminq_lock);\n \trte_spinlock_init(&lif->adminq_service_lock);\n \n-\tdbpage_num = ionic_db_page_num(lif, 0);\n-\n-\tlif->kern_dbpage = ionic_bus_map_dbpage(adapter, dbpage_num);\n+\tlif->kern_dbpage = ionic_bus_map_dbpage(adapter, 0);\n \tif (!lif->kern_dbpage) {\n \t\tIONIC_PRINT(ERR, \"Cannot map dbpage, aborting\");\n \t\treturn -ENOMEM;\n@@ -1174,7 +1167,7 @@ ionic_lif_adminq_init(struct ionic_lif *lif)\n \tstruct ionic_q_init_comp comp;\n \tint err;\n \n-\tionic_dev_cmd_adminq_init(idev, qcq, lif->index, qcq->intr.index);\n+\tionic_dev_cmd_adminq_init(idev, qcq, qcq->intr.index);\n \terr = ionic_dev_cmd_wait_check(idev, IONIC_DEVCMD_TIMEOUT);\n \tif (err)\n \t\treturn err;\n@@ -1210,7 +1203,6 @@ ionic_lif_notifyq_init(struct ionic_lif *lif)\n \t\t.pending_work = true,\n \t\t.cmd.q_init = {\n \t\t\t.opcode = IONIC_CMD_Q_INIT,\n-\t\t\t.lif_index = lif->index,\n \t\t\t.type = q->type,\n \t\t\t.index = q->index,\n \t\t\t.flags = (IONIC_QINIT_F_IRQ | IONIC_QINIT_F_ENA),\n@@ -1256,7 +1248,6 @@ ionic_lif_set_features(struct ionic_lif *lif)\n \t\t.pending_work = true,\n \t\t.cmd.lif_setattr = {\n \t\t\t.opcode = IONIC_CMD_LIF_SETATTR,\n-\t\t\t.index = lif->index,\n \t\t\t.attr = IONIC_LIF_ATTR_FEATURES,\n \t\t\t.features = lif->features,\n \t\t},\n@@ -1318,7 +1309,6 @@ ionic_lif_txq_init(struct ionic_qcq *qcq)\n \t\t.pending_work = true,\n \t\t.cmd.q_init = {\n \t\t\t.opcode = IONIC_CMD_Q_INIT,\n-\t\t\t.lif_index = lif->index,\n \t\t\t.type = q->type,\n \t\t\t.index = q->index,\n \t\t\t.flags = IONIC_QINIT_F_SG,\n@@ -1365,7 +1355,6 @@ ionic_lif_rxq_init(struct ionic_qcq *qcq)\n \t\t.pending_work = true,\n \t\t.cmd.q_init = {\n \t\t\t.opcode = IONIC_CMD_Q_INIT,\n-\t\t\t.lif_index = lif->index,\n \t\t\t.type = q->type,\n \t\t\t.index = q->index,\n \t\t\t.flags = IONIC_QINIT_F_SG,\n@@ -1409,7 +1398,6 @@ ionic_station_set(struct ionic_lif *lif)\n \t\t.pending_work = true,\n \t\t.cmd.lif_getattr = {\n \t\t\t.opcode = IONIC_CMD_LIF_GETATTR,\n-\t\t\t.index = lif->index,\n \t\t\t.attr = IONIC_LIF_ATTR_MAC,\n \t\t},\n \t};\n@@ -1449,7 +1437,6 @@ ionic_lif_set_name(struct ionic_lif *lif)\n \t\t.pending_work = true,\n \t\t.cmd.lif_setattr = {\n \t\t\t.opcode = IONIC_CMD_LIF_SETATTR,\n-\t\t\t.index = lif->index,\n \t\t\t.attr = IONIC_LIF_ATTR_NAME,\n \t\t},\n \t};\n@@ -1469,7 +1456,7 @@ ionic_lif_init(struct ionic_lif *lif)\n \n \tmemset(&lif->stats_base, 0, sizeof(lif->stats_base));\n \n-\tionic_dev_cmd_lif_init(idev, lif->index, lif->info_pa);\n+\tionic_dev_cmd_lif_init(idev, lif->info_pa);\n \terr = ionic_dev_cmd_wait_check(idev, IONIC_DEVCMD_TIMEOUT);\n \tionic_dev_cmd_comp(idev, &comp);\n \tif (err)\n@@ -1672,7 +1659,6 @@ int\n ionic_lifs_size(struct ionic_adapter *adapter)\n {\n \tstruct ionic_identity *ident = &adapter->ident;\n-\tuint32_t nlifs = ident->dev.nlifs;\n \tuint32_t nintrs, dev_nintrs = ident->dev.nintrs;\n \n \tadapter->max_ntxqs_per_lif =\n@@ -1680,7 +1666,7 @@ ionic_lifs_size(struct ionic_adapter *adapter)\n \tadapter->max_nrxqs_per_lif =\n \t\tident->lif.eth.config.queue_count[IONIC_QTYPE_RXQ];\n \n-\tnintrs = nlifs * 1 /* notifyq */;\n+\tnintrs = 1 /* notifyq */;\n \n \tif (nintrs > dev_nintrs) {\n \t\tIONIC_PRINT(ERR,\ndiff --git a/drivers/net/ionic/ionic_lif.h b/drivers/net/ionic/ionic_lif.h\nindex b80931c61..c1d15dca6 100644\n--- a/drivers/net/ionic/ionic_lif.h\n+++ b/drivers/net/ionic/ionic_lif.h\n@@ -84,7 +84,6 @@ struct ionic_lif {\n \tstruct ionic_adapter *adapter;\n \tstruct rte_eth_dev *eth_dev;\n \tuint16_t port_id;  /**< Device port identifier */\n-\tuint32_t index;\n \tuint32_t hw_index;\n \tuint32_t state;\n \tuint32_t ntxqcqs;\n",
    "prefixes": [
        "v2",
        "3/7"
    ]
}