get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 97426,
    "url": "http://patches.dpdk.org/api/patches/97426/?format=api",
    "web_url": "http://patches.dpdk.org/project/dpdk/patch/20210827065717.1838258-10-andrew.rybchenko@oktetlabs.ru/",
    "project": {
        "id": 1,
        "url": "http://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": "<20210827065717.1838258-10-andrew.rybchenko@oktetlabs.ru>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20210827065717.1838258-10-andrew.rybchenko@oktetlabs.ru",
    "date": "2021-08-27T06:56:48",
    "name": "[09/38] net/sfc: move adapter state enum to separate header",
    "commit_ref": null,
    "pull_url": null,
    "state": "superseded",
    "archived": true,
    "hash": "dfa640752c46c3972548f4dac14deb7eadb8728f",
    "submitter": {
        "id": 2013,
        "url": "http://patches.dpdk.org/api/people/2013/?format=api",
        "name": "Andrew Rybchenko",
        "email": "Andrew.Rybchenko@oktetlabs.ru"
    },
    "delegate": {
        "id": 319,
        "url": "http://patches.dpdk.org/api/users/319/?format=api",
        "username": "fyigit",
        "first_name": "Ferruh",
        "last_name": "Yigit",
        "email": "ferruh.yigit@amd.com"
    },
    "mbox": "http://patches.dpdk.org/project/dpdk/patch/20210827065717.1838258-10-andrew.rybchenko@oktetlabs.ru/mbox/",
    "series": [
        {
            "id": 18492,
            "url": "http://patches.dpdk.org/api/series/18492/?format=api",
            "web_url": "http://patches.dpdk.org/project/dpdk/list/?series=18492",
            "date": "2021-08-27T06:56:39",
            "name": "net/sfc: support port representors",
            "version": 1,
            "mbox": "http://patches.dpdk.org/series/18492/mbox/"
        }
    ],
    "comments": "http://patches.dpdk.org/api/patches/97426/comments/",
    "check": "warning",
    "checks": "http://patches.dpdk.org/api/patches/97426/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 mails.dpdk.org (mails.dpdk.org [217.70.189.124])\n\tby inbox.dpdk.org (Postfix) with ESMTP id BD985A0C43;\n\tFri, 27 Aug 2021 08:58:33 +0200 (CEST)",
            "from [217.70.189.124] (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id B267341279;\n\tFri, 27 Aug 2021 08:58:04 +0200 (CEST)",
            "from shelob.oktetlabs.ru (shelob.oktetlabs.ru [91.220.146.113])\n by mails.dpdk.org (Postfix) with ESMTP id 0C4BC411E9\n for <dev@dpdk.org>; Fri, 27 Aug 2021 08:58:02 +0200 (CEST)",
            "by shelob.oktetlabs.ru (Postfix, from userid 122)\n id CB4DC7F6D6; Fri, 27 Aug 2021 09:58:01 +0300 (MSK)",
            "from aros.oktetlabs.ru (aros.oktetlabs.ru [192.168.38.17])\n by shelob.oktetlabs.ru (Postfix) with ESMTP id BB83F7F6D9;\n Fri, 27 Aug 2021 09:57:33 +0300 (MSK)"
        ],
        "X-Spam-Checker-Version": "SpamAssassin 3.4.2 (2018-09-13) on shelob.oktetlabs.ru",
        "X-Spam-Level": "",
        "X-Spam-Status": "No, score=0.8 required=5.0 tests=ALL_TRUSTED,\n DKIM_ADSP_DISCARD,\n URIBL_BLOCKED autolearn=no autolearn_force=no version=3.4.2",
        "DKIM-Filter": "OpenDKIM Filter v2.11.0 shelob.oktetlabs.ru BB83F7F6D9",
        "Authentication-Results": "shelob.oktetlabs.ru/BB83F7F6D9; dkim=none;\n dkim-atps=neutral",
        "From": "Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>",
        "To": "dev@dpdk.org",
        "Cc": "Igor Romanov <igor.romanov@oktetlabs.ru>,\n Andy Moreton <amoreton@xilinx.com>, Ivan Malov <ivan.malov@oktetlabs.ru>",
        "Date": "Fri, 27 Aug 2021 09:56:48 +0300",
        "Message-Id": "<20210827065717.1838258-10-andrew.rybchenko@oktetlabs.ru>",
        "X-Mailer": "git-send-email 2.30.2",
        "In-Reply-To": "<20210827065717.1838258-1-andrew.rybchenko@oktetlabs.ru>",
        "References": "<20210827065717.1838258-1-andrew.rybchenko@oktetlabs.ru>",
        "MIME-Version": "1.0",
        "Content-Transfer-Encoding": "8bit",
        "Subject": "[dpdk-dev] [PATCH 09/38] net/sfc: move adapter state enum to\n separate header",
        "X-BeenThere": "dev@dpdk.org",
        "X-Mailman-Version": "2.1.29",
        "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": "From: Igor Romanov <igor.romanov@oktetlabs.ru>\n\nAdapter state will be reused by representors, that will have\na separate adapter. Rename adapter state to ethdev state\nso that the meaning of it is clearer.\n\nSigned-off-by: Igor Romanov <igor.romanov@oktetlabs.ru>\nSigned-off-by: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>\nReviewed-by: Andy Moreton <amoreton@xilinx.com>\nReviewed-by: Ivan Malov <ivan.malov@oktetlabs.ru>\n---\n drivers/net/sfc/sfc.c              | 47 ++++++++++---------\n drivers/net/sfc/sfc.h              | 54 +---------------------\n drivers/net/sfc/sfc_ethdev.c       | 40 ++++++++---------\n drivers/net/sfc/sfc_ethdev_state.h | 72 ++++++++++++++++++++++++++++++\n drivers/net/sfc/sfc_flow.c         | 10 ++---\n drivers/net/sfc/sfc_intr.c         | 12 ++---\n drivers/net/sfc/sfc_mae.c          |  2 +-\n drivers/net/sfc/sfc_port.c         |  2 +-\n 8 files changed, 130 insertions(+), 109 deletions(-)\n create mode 100644 drivers/net/sfc/sfc_ethdev_state.h",
    "diff": "diff --git a/drivers/net/sfc/sfc.c b/drivers/net/sfc/sfc.c\nindex 9abd6d600b..152234cb61 100644\n--- a/drivers/net/sfc/sfc.c\n+++ b/drivers/net/sfc/sfc.c\n@@ -26,7 +26,6 @@\n #include \"sfc_tweak.h\"\n #include \"sfc_sw_stats.h\"\n \n-\n bool\n sfc_repr_supported(const struct sfc_adapter *sa)\n {\n@@ -440,7 +439,7 @@ sfc_try_start(struct sfc_adapter *sa)\n \tsfc_log_init(sa, \"entry\");\n \n \tSFC_ASSERT(sfc_adapter_is_locked(sa));\n-\tSFC_ASSERT(sa->state == SFC_ADAPTER_STARTING);\n+\tSFC_ASSERT(sa->state == SFC_ETHDEV_STARTING);\n \n \tsfc_log_init(sa, \"set FW subvariant\");\n \trc = sfc_set_fw_subvariant(sa);\n@@ -545,9 +544,9 @@ sfc_start(struct sfc_adapter *sa)\n \tSFC_ASSERT(sfc_adapter_is_locked(sa));\n \n \tswitch (sa->state) {\n-\tcase SFC_ADAPTER_CONFIGURED:\n+\tcase SFC_ETHDEV_CONFIGURED:\n \t\tbreak;\n-\tcase SFC_ADAPTER_STARTED:\n+\tcase SFC_ETHDEV_STARTED:\n \t\tsfc_notice(sa, \"already started\");\n \t\treturn 0;\n \tdefault:\n@@ -555,7 +554,7 @@ sfc_start(struct sfc_adapter *sa)\n \t\tgoto fail_bad_state;\n \t}\n \n-\tsa->state = SFC_ADAPTER_STARTING;\n+\tsa->state = SFC_ETHDEV_STARTING;\n \n \trc = 0;\n \tdo {\n@@ -578,13 +577,13 @@ sfc_start(struct sfc_adapter *sa)\n \tif (rc != 0)\n \t\tgoto fail_try_start;\n \n-\tsa->state = SFC_ADAPTER_STARTED;\n+\tsa->state = SFC_ETHDEV_STARTED;\n \tsfc_log_init(sa, \"done\");\n \treturn 0;\n \n fail_try_start:\n fail_sriov_vswitch_create:\n-\tsa->state = SFC_ADAPTER_CONFIGURED;\n+\tsa->state = SFC_ETHDEV_CONFIGURED;\n fail_bad_state:\n \tsfc_log_init(sa, \"failed %d\", rc);\n \treturn rc;\n@@ -598,9 +597,9 @@ sfc_stop(struct sfc_adapter *sa)\n \tSFC_ASSERT(sfc_adapter_is_locked(sa));\n \n \tswitch (sa->state) {\n-\tcase SFC_ADAPTER_STARTED:\n+\tcase SFC_ETHDEV_STARTED:\n \t\tbreak;\n-\tcase SFC_ADAPTER_CONFIGURED:\n+\tcase SFC_ETHDEV_CONFIGURED:\n \t\tsfc_notice(sa, \"already stopped\");\n \t\treturn;\n \tdefault:\n@@ -609,7 +608,7 @@ sfc_stop(struct sfc_adapter *sa)\n \t\treturn;\n \t}\n \n-\tsa->state = SFC_ADAPTER_STOPPING;\n+\tsa->state = SFC_ETHDEV_STOPPING;\n \n \tsfc_repr_proxy_stop(sa);\n \tsfc_flow_stop(sa);\n@@ -620,7 +619,7 @@ sfc_stop(struct sfc_adapter *sa)\n \tsfc_intr_stop(sa);\n \tefx_nic_fini(sa->nic);\n \n-\tsa->state = SFC_ADAPTER_CONFIGURED;\n+\tsa->state = SFC_ETHDEV_CONFIGURED;\n \tsfc_log_init(sa, \"done\");\n }\n \n@@ -631,7 +630,7 @@ sfc_restart(struct sfc_adapter *sa)\n \n \tSFC_ASSERT(sfc_adapter_is_locked(sa));\n \n-\tif (sa->state != SFC_ADAPTER_STARTED)\n+\tif (sa->state != SFC_ETHDEV_STARTED)\n \t\treturn EINVAL;\n \n \tsfc_stop(sa);\n@@ -652,7 +651,7 @@ sfc_restart_if_required(void *arg)\n \tif (rte_atomic32_cmpset((volatile uint32_t *)&sa->restart_required,\n \t\t\t\t1, 0)) {\n \t\tsfc_adapter_lock(sa);\n-\t\tif (sa->state == SFC_ADAPTER_STARTED)\n+\t\tif (sa->state == SFC_ETHDEV_STARTED)\n \t\t\t(void)sfc_restart(sa);\n \t\tsfc_adapter_unlock(sa);\n \t}\n@@ -685,9 +684,9 @@ sfc_configure(struct sfc_adapter *sa)\n \n \tSFC_ASSERT(sfc_adapter_is_locked(sa));\n \n-\tSFC_ASSERT(sa->state == SFC_ADAPTER_INITIALIZED ||\n-\t\t   sa->state == SFC_ADAPTER_CONFIGURED);\n-\tsa->state = SFC_ADAPTER_CONFIGURING;\n+\tSFC_ASSERT(sa->state == SFC_ETHDEV_INITIALIZED ||\n+\t\t   sa->state == SFC_ETHDEV_CONFIGURED);\n+\tsa->state = SFC_ETHDEV_CONFIGURING;\n \n \trc = sfc_check_conf(sa);\n \tif (rc != 0)\n@@ -713,7 +712,7 @@ sfc_configure(struct sfc_adapter *sa)\n \tif (rc != 0)\n \t\tgoto fail_sw_xstats_configure;\n \n-\tsa->state = SFC_ADAPTER_CONFIGURED;\n+\tsa->state = SFC_ETHDEV_CONFIGURED;\n \tsfc_log_init(sa, \"done\");\n \treturn 0;\n \n@@ -731,7 +730,7 @@ sfc_configure(struct sfc_adapter *sa)\n \n fail_intr_configure:\n fail_check_conf:\n-\tsa->state = SFC_ADAPTER_INITIALIZED;\n+\tsa->state = SFC_ETHDEV_INITIALIZED;\n \tsfc_log_init(sa, \"failed %d\", rc);\n \treturn rc;\n }\n@@ -743,8 +742,8 @@ sfc_close(struct sfc_adapter *sa)\n \n \tSFC_ASSERT(sfc_adapter_is_locked(sa));\n \n-\tSFC_ASSERT(sa->state == SFC_ADAPTER_CONFIGURED);\n-\tsa->state = SFC_ADAPTER_CLOSING;\n+\tSFC_ASSERT(sa->state == SFC_ETHDEV_CONFIGURED);\n+\tsa->state = SFC_ETHDEV_CLOSING;\n \n \tsfc_sw_xstats_close(sa);\n \tsfc_tx_close(sa);\n@@ -752,7 +751,7 @@ sfc_close(struct sfc_adapter *sa)\n \tsfc_port_close(sa);\n \tsfc_intr_close(sa);\n \n-\tsa->state = SFC_ADAPTER_INITIALIZED;\n+\tsa->state = SFC_ETHDEV_INITIALIZED;\n \tsfc_log_init(sa, \"done\");\n }\n \n@@ -993,7 +992,7 @@ sfc_attach(struct sfc_adapter *sa)\n \tif (rc != 0)\n \t\tgoto fail_sriov_vswitch_create;\n \n-\tsa->state = SFC_ADAPTER_INITIALIZED;\n+\tsa->state = SFC_ETHDEV_INITIALIZED;\n \n \tsfc_log_init(sa, \"done\");\n \treturn 0;\n@@ -1067,7 +1066,7 @@ sfc_detach(struct sfc_adapter *sa)\n \tefx_tunnel_fini(sa->nic);\n \tsfc_sriov_detach(sa);\n \n-\tsa->state = SFC_ADAPTER_UNINITIALIZED;\n+\tsa->state = SFC_ETHDEV_UNINITIALIZED;\n }\n \n static int\n@@ -1325,7 +1324,7 @@ sfc_unprobe(struct sfc_adapter *sa)\n \tsfc_mem_bar_fini(sa);\n \n \tsfc_flow_fini(sa);\n-\tsa->state = SFC_ADAPTER_UNINITIALIZED;\n+\tsa->state = SFC_ETHDEV_UNINITIALIZED;\n }\n \n uint32_t\ndiff --git a/drivers/net/sfc/sfc.h b/drivers/net/sfc/sfc.h\nindex 79f9d7979e..628f32c13f 100644\n--- a/drivers/net/sfc/sfc.h\n+++ b/drivers/net/sfc/sfc.h\n@@ -32,62 +32,12 @@\n #include \"sfc_dp.h\"\n #include \"sfc_repr_proxy.h\"\n #include \"sfc_service.h\"\n+#include \"sfc_ethdev_state.h\"\n \n #ifdef __cplusplus\n extern \"C\" {\n #endif\n \n-/*\n- * +---------------+\n- * | UNINITIALIZED |<-----------+\n- * +---------------+\t\t|\n- *\t|.eth_dev_init\t\t|.eth_dev_uninit\n- *\tV\t\t\t|\n- * +---------------+------------+\n- * |  INITIALIZED  |\n- * +---------------+<-----------<---------------+\n- *\t|.dev_configure\t\t|\t\t|\n- *\tV\t\t\t|failed\t\t|\n- * +---------------+------------+\t\t|\n- * |  CONFIGURING  |\t\t\t\t|\n- * +---------------+----+\t\t\t|\n- *\t|success\t|\t\t\t|\n- *\t|\t\t|\t\t+---------------+\n- *\t|\t\t|\t\t|    CLOSING    |\n- *\t|\t\t|\t\t+---------------+\n- *\t|\t\t|\t\t\t^\n- *\tV\t\t|.dev_configure\t\t|\n- * +---------------+----+\t\t\t|.dev_close\n- * |  CONFIGURED   |----------------------------+\n- * +---------------+<-----------+\n- *\t|.dev_start\t\t|\n- *\tV\t\t\t|\n- * +---------------+\t\t|\n- * |   STARTING    |------------^\n- * +---------------+ failed\t|\n- *\t|success\t\t|\n- *\t|\t\t+---------------+\n- *\t|\t\t|   STOPPING    |\n- *\t|\t\t+---------------+\n- *\t|\t\t\t^\n- *\tV\t\t\t|.dev_stop\n- * +---------------+------------+\n- * |    STARTED    |\n- * +---------------+\n- */\n-enum sfc_adapter_state {\n-\tSFC_ADAPTER_UNINITIALIZED = 0,\n-\tSFC_ADAPTER_INITIALIZED,\n-\tSFC_ADAPTER_CONFIGURING,\n-\tSFC_ADAPTER_CONFIGURED,\n-\tSFC_ADAPTER_CLOSING,\n-\tSFC_ADAPTER_STARTING,\n-\tSFC_ADAPTER_STARTED,\n-\tSFC_ADAPTER_STOPPING,\n-\n-\tSFC_ADAPTER_NSTATES\n-};\n-\n enum sfc_dev_filter_mode {\n \tSFC_DEV_FILTER_MODE_PROMISC = 0,\n \tSFC_DEV_FILTER_MODE_ALLMULTI,\n@@ -245,7 +195,7 @@ struct sfc_adapter {\n \t * change its state should acquire the lock.\n \t */\n \trte_spinlock_t\t\t\tlock;\n-\tenum sfc_adapter_state\t\tstate;\n+\tenum sfc_ethdev_state\t\tstate;\n \tstruct rte_eth_dev\t\t*eth_dev;\n \tstruct rte_kvargs\t\t*kvargs;\n \tint\t\t\t\tsocket_id;\ndiff --git a/drivers/net/sfc/sfc_ethdev.c b/drivers/net/sfc/sfc_ethdev.c\nindex 8e17189875..ff762bb90b 100644\n--- a/drivers/net/sfc/sfc_ethdev.c\n+++ b/drivers/net/sfc/sfc_ethdev.c\n@@ -213,9 +213,9 @@ sfc_dev_configure(struct rte_eth_dev *dev)\n \n \tsfc_adapter_lock(sa);\n \tswitch (sa->state) {\n-\tcase SFC_ADAPTER_CONFIGURED:\n+\tcase SFC_ETHDEV_CONFIGURED:\n \t\t/* FALLTHROUGH */\n-\tcase SFC_ADAPTER_INITIALIZED:\n+\tcase SFC_ETHDEV_INITIALIZED:\n \t\trc = sfc_configure(sa);\n \t\tbreak;\n \tdefault:\n@@ -257,7 +257,7 @@ sfc_dev_link_update(struct rte_eth_dev *dev, int wait_to_complete)\n \n \tsfc_log_init(sa, \"entry\");\n \n-\tif (sa->state != SFC_ADAPTER_STARTED) {\n+\tif (sa->state != SFC_ETHDEV_STARTED) {\n \t\tsfc_port_link_mode_to_info(EFX_LINK_UNKNOWN, &current_link);\n \t} else if (wait_to_complete) {\n \t\tefx_link_mode_t link_mode;\n@@ -346,15 +346,15 @@ sfc_dev_close(struct rte_eth_dev *dev)\n \n \tsfc_adapter_lock(sa);\n \tswitch (sa->state) {\n-\tcase SFC_ADAPTER_STARTED:\n+\tcase SFC_ETHDEV_STARTED:\n \t\tsfc_stop(sa);\n-\t\tSFC_ASSERT(sa->state == SFC_ADAPTER_CONFIGURED);\n+\t\tSFC_ASSERT(sa->state == SFC_ETHDEV_CONFIGURED);\n \t\t/* FALLTHROUGH */\n-\tcase SFC_ADAPTER_CONFIGURED:\n+\tcase SFC_ETHDEV_CONFIGURED:\n \t\tsfc_close(sa);\n-\t\tSFC_ASSERT(sa->state == SFC_ADAPTER_INITIALIZED);\n+\t\tSFC_ASSERT(sa->state == SFC_ETHDEV_INITIALIZED);\n \t\t/* FALLTHROUGH */\n-\tcase SFC_ADAPTER_INITIALIZED:\n+\tcase SFC_ETHDEV_INITIALIZED:\n \t\tbreak;\n \tdefault:\n \t\tsfc_err(sa, \"unexpected adapter state %u on close\", sa->state);\n@@ -410,7 +410,7 @@ sfc_dev_filter_set(struct rte_eth_dev *dev, enum sfc_dev_filter_mode mode,\n \t\t\tsfc_warn(sa, \"the change is to be applied on the next \"\n \t\t\t\t     \"start provided that isolated mode is \"\n \t\t\t\t     \"disabled prior the next start\");\n-\t\t} else if ((sa->state == SFC_ADAPTER_STARTED) &&\n+\t\t} else if ((sa->state == SFC_ETHDEV_STARTED) &&\n \t\t\t   ((rc = sfc_set_rx_mode(sa)) != 0)) {\n \t\t\t*toggle = !(enabled);\n \t\t\tsfc_warn(sa, \"Failed to %s %s mode, rc = %d\",\n@@ -704,7 +704,7 @@ sfc_stats_reset(struct rte_eth_dev *dev)\n \n \tsfc_adapter_lock(sa);\n \n-\tif (sa->state != SFC_ADAPTER_STARTED) {\n+\tif (sa->state != SFC_ETHDEV_STARTED) {\n \t\t/*\n \t\t * The operation cannot be done if port is not started; it\n \t\t * will be scheduled to be done during the next port start\n@@ -905,7 +905,7 @@ sfc_flow_ctrl_get(struct rte_eth_dev *dev, struct rte_eth_fc_conf *fc_conf)\n \n \tsfc_adapter_lock(sa);\n \n-\tif (sa->state == SFC_ADAPTER_STARTED)\n+\tif (sa->state == SFC_ETHDEV_STARTED)\n \t\tefx_mac_fcntl_get(sa->nic, &wanted_fc, &link_fc);\n \telse\n \t\tlink_fc = sa->port.flow_ctrl;\n@@ -971,7 +971,7 @@ sfc_flow_ctrl_set(struct rte_eth_dev *dev, struct rte_eth_fc_conf *fc_conf)\n \n \tsfc_adapter_lock(sa);\n \n-\tif (sa->state == SFC_ADAPTER_STARTED) {\n+\tif (sa->state == SFC_ETHDEV_STARTED) {\n \t\trc = efx_mac_fcntl_set(sa->nic, fcntl, fc_conf->autoneg);\n \t\tif (rc != 0)\n \t\t\tgoto fail_mac_fcntl_set;\n@@ -1051,7 +1051,7 @@ sfc_dev_set_mtu(struct rte_eth_dev *dev, uint16_t mtu)\n \t\tgoto fail_check_scatter;\n \n \tif (pdu != sa->port.pdu) {\n-\t\tif (sa->state == SFC_ADAPTER_STARTED) {\n+\t\tif (sa->state == SFC_ETHDEV_STARTED) {\n \t\t\tsfc_stop(sa);\n \n \t\t\told_pdu = sa->port.pdu;\n@@ -1128,7 +1128,7 @@ sfc_mac_addr_set(struct rte_eth_dev *dev, struct rte_ether_addr *mac_addr)\n \t\tgoto unlock;\n \t}\n \n-\tif (sa->state != SFC_ADAPTER_STARTED) {\n+\tif (sa->state != SFC_ETHDEV_STARTED) {\n \t\tsfc_notice(sa, \"the port is not started\");\n \t\tsfc_notice(sa, \"the new MAC address will be set on port start\");\n \n@@ -1215,7 +1215,7 @@ sfc_set_mc_addr_list(struct rte_eth_dev *dev,\n \n \tport->nb_mcast_addrs = nb_mc_addr;\n \n-\tif (sa->state != SFC_ADAPTER_STARTED)\n+\tif (sa->state != SFC_ETHDEV_STARTED)\n \t\treturn 0;\n \n \trc = efx_mac_multicast_list_set(sa->nic, port->mcast_addrs,\n@@ -1356,7 +1356,7 @@ sfc_rx_queue_start(struct rte_eth_dev *dev, uint16_t ethdev_qid)\n \tsfc_adapter_lock(sa);\n \n \trc = EINVAL;\n-\tif (sa->state != SFC_ADAPTER_STARTED)\n+\tif (sa->state != SFC_ETHDEV_STARTED)\n \t\tgoto fail_not_started;\n \n \trxq_info = sfc_rxq_info_by_ethdev_qid(sas, sfc_ethdev_qid);\n@@ -1420,7 +1420,7 @@ sfc_tx_queue_start(struct rte_eth_dev *dev, uint16_t ethdev_qid)\n \tsfc_adapter_lock(sa);\n \n \trc = EINVAL;\n-\tif (sa->state != SFC_ADAPTER_STARTED)\n+\tif (sa->state != SFC_ETHDEV_STARTED)\n \t\tgoto fail_not_started;\n \n \ttxq_info = sfc_txq_info_by_ethdev_qid(sas, ethdev_qid);\n@@ -1528,7 +1528,7 @@ sfc_dev_udp_tunnel_op(struct rte_eth_dev *dev,\n \tif (rc != 0)\n \t\tgoto fail_op;\n \n-\tif (sa->state == SFC_ADAPTER_STARTED) {\n+\tif (sa->state == SFC_ETHDEV_STARTED) {\n \t\trc = efx_tunnel_reconfigure(sa->nic);\n \t\tif (rc == EAGAIN) {\n \t\t\t/*\n@@ -1664,7 +1664,7 @@ sfc_dev_rss_hash_update(struct rte_eth_dev *dev,\n \t}\n \n \tif (rss_conf->rss_key != NULL) {\n-\t\tif (sa->state == SFC_ADAPTER_STARTED) {\n+\t\tif (sa->state == SFC_ETHDEV_STARTED) {\n \t\t\tfor (key_i = 0; key_i < n_contexts; key_i++) {\n \t\t\t\trc = efx_rx_scale_key_set(sa->nic,\n \t\t\t\t\t\t\t  contexts[key_i],\n@@ -1791,7 +1791,7 @@ sfc_dev_rss_reta_update(struct rte_eth_dev *dev,\n \t\t}\n \t}\n \n-\tif (sa->state == SFC_ADAPTER_STARTED) {\n+\tif (sa->state == SFC_ETHDEV_STARTED) {\n \t\trc = efx_rx_scale_tbl_set(sa->nic, EFX_RSS_CONTEXT_DEFAULT,\n \t\t\t\t\t  rss_tbl_new, EFX_RSS_TBL_SIZE);\n \t\tif (rc != 0)\ndiff --git a/drivers/net/sfc/sfc_ethdev_state.h b/drivers/net/sfc/sfc_ethdev_state.h\nnew file mode 100644\nindex 0000000000..51fb51e20e\n--- /dev/null\n+++ b/drivers/net/sfc/sfc_ethdev_state.h\n@@ -0,0 +1,72 @@\n+/* SPDX-License-Identifier: BSD-3-Clause\n+ *\n+ * Copyright(c) 2019-2021 Xilinx, Inc.\n+ * Copyright(c) 2019 Solarflare Communications Inc.\n+ *\n+ * This software was jointly developed between OKTET Labs (under contract\n+ * for Solarflare) and Solarflare Communications, Inc.\n+ */\n+\n+#ifndef _SFC_ETHDEV_STATE_H\n+#define _SFC_ETHDEV_STATE_H\n+\n+#ifdef __cplusplus\n+extern \"C\" {\n+#endif\n+\n+/*\n+ * +---------------+\n+ * | UNINITIALIZED |<-----------+\n+ * +---------------+\t\t|\n+ *\t|.eth_dev_init\t\t|.eth_dev_uninit\n+ *\tV\t\t\t|\n+ * +---------------+------------+\n+ * |  INITIALIZED  |\n+ * +---------------+<-----------<---------------+\n+ *\t|.dev_configure\t\t|\t\t|\n+ *\tV\t\t\t|failed\t\t|\n+ * +---------------+------------+\t\t|\n+ * |  CONFIGURING  |\t\t\t\t|\n+ * +---------------+----+\t\t\t|\n+ *\t|success\t|\t\t\t|\n+ *\t|\t\t|\t\t+---------------+\n+ *\t|\t\t|\t\t|    CLOSING    |\n+ *\t|\t\t|\t\t+---------------+\n+ *\t|\t\t|\t\t\t^\n+ *\tV\t\t|.dev_configure\t\t|\n+ * +---------------+----+\t\t\t|.dev_close\n+ * |  CONFIGURED   |----------------------------+\n+ * +---------------+<-----------+\n+ *\t|.dev_start\t\t|\n+ *\tV\t\t\t|\n+ * +---------------+\t\t|\n+ * |   STARTING    |------------^\n+ * +---------------+ failed\t|\n+ *\t|success\t\t|\n+ *\t|\t\t+---------------+\n+ *\t|\t\t|   STOPPING    |\n+ *\t|\t\t+---------------+\n+ *\t|\t\t\t^\n+ *\tV\t\t\t|.dev_stop\n+ * +---------------+------------+\n+ * |    STARTED    |\n+ * +---------------+\n+ */\n+enum sfc_ethdev_state {\n+\tSFC_ETHDEV_UNINITIALIZED = 0,\n+\tSFC_ETHDEV_INITIALIZED,\n+\tSFC_ETHDEV_CONFIGURING,\n+\tSFC_ETHDEV_CONFIGURED,\n+\tSFC_ETHDEV_CLOSING,\n+\tSFC_ETHDEV_STARTING,\n+\tSFC_ETHDEV_STARTED,\n+\tSFC_ETHDEV_STOPPING,\n+\n+\tSFC_ETHDEV_NSTATES\n+};\n+\n+#ifdef __cplusplus\n+}\n+#endif\n+\n+#endif  /* _SFC_ETHDEV_STATE_H */\ndiff --git a/drivers/net/sfc/sfc_flow.c b/drivers/net/sfc/sfc_flow.c\nindex 4f5993a68d..36ee79f331 100644\n--- a/drivers/net/sfc/sfc_flow.c\n+++ b/drivers/net/sfc/sfc_flow.c\n@@ -2724,7 +2724,7 @@ sfc_flow_create(struct rte_eth_dev *dev,\n \n \tTAILQ_INSERT_TAIL(&sa->flow_list, flow, entries);\n \n-\tif (sa->state == SFC_ADAPTER_STARTED) {\n+\tif (sa->state == SFC_ETHDEV_STARTED) {\n \t\trc = sfc_flow_insert(sa, flow, error);\n \t\tif (rc != 0)\n \t\t\tgoto fail_flow_insert;\n@@ -2767,7 +2767,7 @@ sfc_flow_destroy(struct rte_eth_dev *dev,\n \t\tgoto fail_bad_value;\n \t}\n \n-\tif (sa->state == SFC_ADAPTER_STARTED)\n+\tif (sa->state == SFC_ETHDEV_STARTED)\n \t\trc = sfc_flow_remove(sa, flow, error);\n \n \tTAILQ_REMOVE(&sa->flow_list, flow, entries);\n@@ -2790,7 +2790,7 @@ sfc_flow_flush(struct rte_eth_dev *dev,\n \tsfc_adapter_lock(sa);\n \n \twhile ((flow = TAILQ_FIRST(&sa->flow_list)) != NULL) {\n-\t\tif (sa->state == SFC_ADAPTER_STARTED) {\n+\t\tif (sa->state == SFC_ETHDEV_STARTED) {\n \t\t\tint rc;\n \n \t\t\trc = sfc_flow_remove(sa, flow, error);\n@@ -2828,7 +2828,7 @@ sfc_flow_query(struct rte_eth_dev *dev,\n \t\tgoto fail_no_backend;\n \t}\n \n-\tif (sa->state != SFC_ADAPTER_STARTED) {\n+\tif (sa->state != SFC_ETHDEV_STARTED) {\n \t\tret = rte_flow_error_set(error, EINVAL,\n \t\t\tRTE_FLOW_ERROR_TYPE_UNSPECIFIED, NULL,\n \t\t\t\"Can't query the flow: the adapter is not started\");\n@@ -2858,7 +2858,7 @@ sfc_flow_isolate(struct rte_eth_dev *dev, int enable,\n \tint ret = 0;\n \n \tsfc_adapter_lock(sa);\n-\tif (sa->state != SFC_ADAPTER_INITIALIZED) {\n+\tif (sa->state != SFC_ETHDEV_INITIALIZED) {\n \t\trte_flow_error_set(error, EBUSY,\n \t\t\t\t   RTE_FLOW_ERROR_TYPE_UNSPECIFIED,\n \t\t\t\t   NULL, \"please close the port first\");\ndiff --git a/drivers/net/sfc/sfc_intr.c b/drivers/net/sfc/sfc_intr.c\nindex c2298ed23c..69414fd839 100644\n--- a/drivers/net/sfc/sfc_intr.c\n+++ b/drivers/net/sfc/sfc_intr.c\n@@ -60,9 +60,9 @@ sfc_intr_line_handler(void *cb_arg)\n \n \tsfc_log_init(sa, \"entry\");\n \n-\tif (sa->state != SFC_ADAPTER_STARTED &&\n-\t    sa->state != SFC_ADAPTER_STARTING &&\n-\t    sa->state != SFC_ADAPTER_STOPPING) {\n+\tif (sa->state != SFC_ETHDEV_STARTED &&\n+\t    sa->state != SFC_ETHDEV_STARTING &&\n+\t    sa->state != SFC_ETHDEV_STOPPING) {\n \t\tsfc_log_init(sa,\n \t\t\t     \"interrupt on stopped adapter, don't reenable\");\n \t\tgoto exit;\n@@ -106,9 +106,9 @@ sfc_intr_message_handler(void *cb_arg)\n \n \tsfc_log_init(sa, \"entry\");\n \n-\tif (sa->state != SFC_ADAPTER_STARTED &&\n-\t    sa->state != SFC_ADAPTER_STARTING &&\n-\t    sa->state != SFC_ADAPTER_STOPPING) {\n+\tif (sa->state != SFC_ETHDEV_STARTED &&\n+\t    sa->state != SFC_ETHDEV_STARTING &&\n+\t    sa->state != SFC_ETHDEV_STOPPING) {\n \t\tsfc_log_init(sa, \"adapter not-started, don't reenable\");\n \t\tgoto exit;\n \t}\ndiff --git a/drivers/net/sfc/sfc_mae.c b/drivers/net/sfc/sfc_mae.c\nindex b3607a178b..7be77054ab 100644\n--- a/drivers/net/sfc/sfc_mae.c\n+++ b/drivers/net/sfc/sfc_mae.c\n@@ -3414,7 +3414,7 @@ sfc_mae_flow_verify(struct sfc_adapter *sa,\n \n \tSFC_ASSERT(sfc_adapter_is_locked(sa));\n \n-\tif (sa->state != SFC_ADAPTER_STARTED)\n+\tif (sa->state != SFC_ETHDEV_STARTED)\n \t\treturn EAGAIN;\n \n \tif (outer_rule != NULL) {\ndiff --git a/drivers/net/sfc/sfc_port.c b/drivers/net/sfc/sfc_port.c\nindex adb2b2cb81..7a3f59a112 100644\n--- a/drivers/net/sfc/sfc_port.c\n+++ b/drivers/net/sfc/sfc_port.c\n@@ -48,7 +48,7 @@ sfc_port_update_mac_stats(struct sfc_adapter *sa, boolean_t force_upload)\n \n \tSFC_ASSERT(sfc_adapter_is_locked(sa));\n \n-\tif (sa->state != SFC_ADAPTER_STARTED)\n+\tif (sa->state != SFC_ETHDEV_STARTED)\n \t\treturn 0;\n \n \t/*\n",
    "prefixes": [
        "09/38"
    ]
}