Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/480880/?format=api
{ "id": 480880, "url": "http://patchwork.ozlabs.org/api/patches/480880/?format=api", "web_url": "http://patchwork.ozlabs.org/project/intel-wired-lan/patch/1433449442-31420-8-git-send-email-catherine.sullivan@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": "<1433449442-31420-8-git-send-email-catherine.sullivan@intel.com>", "list_archive_url": null, "date": "2015-06-04T20:24:01", "name": "[net-next,7/8] i40e: clean up error status messages", "commit_ref": null, "pull_url": null, "state": "accepted", "archived": false, "hash": "172a797d167af43eb898702f80a2f9a9323f105e", "submitter": { "id": 13931, "url": "http://patchwork.ozlabs.org/api/people/13931/?format=api", "name": "Catherine Sullivan", "email": "catherine.sullivan@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/1433449442-31420-8-git-send-email-catherine.sullivan@intel.com/mbox/", "series": [], "comments": "http://patchwork.ozlabs.org/api/patches/480880/comments/", "check": "pending", "checks": "http://patchwork.ozlabs.org/api/patches/480880/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 hemlock.osuosl.org (hemlock.osuosl.org [140.211.166.133])\n\tby ozlabs.org (Postfix) with ESMTP id C4517140281\n\tfor <incoming@patchwork.ozlabs.org>;\n\tFri, 5 Jun 2015 06:22:36 +1000 (AEST)", "from localhost (localhost [127.0.0.1])\n\tby hemlock.osuosl.org (Postfix) with ESMTP id 15CB396549;\n\tThu, 4 Jun 2015 20:22:36 +0000 (UTC)", "from hemlock.osuosl.org ([127.0.0.1])\n\tby localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024)\n\twith ESMTP id d-12bSzfcdoS; Thu, 4 Jun 2015 20:22:33 +0000 (UTC)", "from ash.osuosl.org (ash.osuosl.org [140.211.166.34])\n\tby hemlock.osuosl.org (Postfix) with ESMTP id A0C5B9653C;\n\tThu, 4 Jun 2015 20:22:33 +0000 (UTC)", "from silver.osuosl.org (silver.osuosl.org [140.211.166.136])\n\tby ash.osuosl.org (Postfix) with ESMTP id 1EE341C1F3C\n\tfor <intel-wired-lan@lists.osuosl.org>;\n\tThu, 4 Jun 2015 20:22:32 +0000 (UTC)", "from localhost (localhost [127.0.0.1])\n\tby silver.osuosl.org (Postfix) with ESMTP id 197B332CB6\n\tfor <intel-wired-lan@lists.osuosl.org>;\n\tThu, 4 Jun 2015 20:22:32 +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 D-d-HvQ5EXwQ for <intel-wired-lan@lists.osuosl.org>;\n\tThu, 4 Jun 2015 20:22:26 +0000 (UTC)", "from mga14.intel.com (mga14.intel.com [192.55.52.115])\n\tby silver.osuosl.org (Postfix) with ESMTP id C063D32A8E\n\tfor <intel-wired-lan@lists.osuosl.org>;\n\tThu, 4 Jun 2015 20:22:26 +0000 (UTC)", "from orsmga001.jf.intel.com ([10.7.209.18])\n\tby fmsmga103.fm.intel.com with ESMTP; 04 Jun 2015 13:22:26 -0700", "from catheri1-tigger.jf.intel.com ([134.134.176.92])\n\tby orsmga001.jf.intel.com with ESMTP; 04 Jun 2015 13:22:26 -0700" ], "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.13,554,1427785200\"; d=\"scan'208\";a=\"705514392\"", "From": "Catherine Sullivan <catherine.sullivan@intel.com>", "To": "intel-wired-lan@lists.osuosl.org", "Date": "Thu, 4 Jun 2015 16:24:01 -0400", "Message-Id": "<1433449442-31420-8-git-send-email-catherine.sullivan@intel.com>", "X-Mailer": "git-send-email 1.9.3", "In-Reply-To": "<1433449442-31420-1-git-send-email-catherine.sullivan@intel.com>", "References": "<1433449442-31420-1-git-send-email-catherine.sullivan@intel.com>", "Subject": "[Intel-wired-lan] [intel-wired-lan][net-next PATCH 7/8] i40e: clean\n\tup error status messages", "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": "From: Shannon Nelson <shannon.nelson@intel.com>\n\nClean up a little confusion in reporting error status in phy and fcoe\nsetup error reports by separating the return status from the AQ error.\n\nAdd two decoder functions to make this easier.\n\nSigned-off-by: Shannon Nelson <shannon.nelson@intel.com>\nChange-ID: I960bcdeef3978a15fec1cdb5eff781d5cbae42fb\n---\n drivers/net/ethernet/intel/i40e/i40e_common.c | 206 +++++++++++\n drivers/net/ethernet/intel/i40e/i40e_ethtool.c | 30 +-\n drivers/net/ethernet/intel/i40e/i40e_main.c | 392 ++++++++++++---------\n drivers/net/ethernet/intel/i40e/i40e_prototype.h | 2 +\n drivers/net/ethernet/intel/i40e/i40e_type.h | 1 +\n drivers/net/ethernet/intel/i40evf/i40e_common.c | 206 +++++++++++\n drivers/net/ethernet/intel/i40evf/i40e_prototype.h | 2 +\n drivers/net/ethernet/intel/i40evf/i40e_type.h | 1 +\n .../net/ethernet/intel/i40evf/i40evf_virtchnl.c | 10 +-\n 9 files changed, 673 insertions(+), 177 deletions(-)", "diff": "diff --git a/drivers/net/ethernet/intel/i40e/i40e_common.c b/drivers/net/ethernet/intel/i40e/i40e_common.c\nindex 0703222..8f2ecbe 100644\n--- a/drivers/net/ethernet/intel/i40e/i40e_common.c\n+++ b/drivers/net/ethernet/intel/i40e/i40e_common.c\n@@ -72,6 +72,212 @@ static i40e_status i40e_set_mac_type(struct i40e_hw *hw)\n }\n \n /**\n+ * i40e_aq_str - convert AQ err code to a string\n+ * @hw: pointer to the HW structure\n+ * @aq_err: the AQ error code to convert\n+ **/\n+char *i40e_aq_str(struct i40e_hw *hw, enum i40e_admin_queue_err aq_err)\n+{\n+\tswitch (aq_err) {\n+\tcase I40E_AQ_RC_OK:\n+\t\treturn \"OK\";\n+\tcase I40E_AQ_RC_EPERM:\n+\t\treturn \"I40E_AQ_RC_EPERM\";\n+\tcase I40E_AQ_RC_ENOENT:\n+\t\treturn \"I40E_AQ_RC_ENOENT\";\n+\tcase I40E_AQ_RC_ESRCH:\n+\t\treturn \"I40E_AQ_RC_ESRCH\";\n+\tcase I40E_AQ_RC_EINTR:\n+\t\treturn \"I40E_AQ_RC_EINTR\";\n+\tcase I40E_AQ_RC_EIO:\n+\t\treturn \"I40E_AQ_RC_EIO\";\n+\tcase I40E_AQ_RC_ENXIO:\n+\t\treturn \"I40E_AQ_RC_ENXIO\";\n+\tcase I40E_AQ_RC_E2BIG:\n+\t\treturn \"I40E_AQ_RC_E2BIG\";\n+\tcase I40E_AQ_RC_EAGAIN:\n+\t\treturn \"I40E_AQ_RC_EAGAIN\";\n+\tcase I40E_AQ_RC_ENOMEM:\n+\t\treturn \"I40E_AQ_RC_ENOMEM\";\n+\tcase I40E_AQ_RC_EACCES:\n+\t\treturn \"I40E_AQ_RC_EACCES\";\n+\tcase I40E_AQ_RC_EFAULT:\n+\t\treturn \"I40E_AQ_RC_EFAULT\";\n+\tcase I40E_AQ_RC_EBUSY:\n+\t\treturn \"I40E_AQ_RC_EBUSY\";\n+\tcase I40E_AQ_RC_EEXIST:\n+\t\treturn \"I40E_AQ_RC_EEXIST\";\n+\tcase I40E_AQ_RC_EINVAL:\n+\t\treturn \"I40E_AQ_RC_EINVAL\";\n+\tcase I40E_AQ_RC_ENOTTY:\n+\t\treturn \"I40E_AQ_RC_ENOTTY\";\n+\tcase I40E_AQ_RC_ENOSPC:\n+\t\treturn \"I40E_AQ_RC_ENOSPC\";\n+\tcase I40E_AQ_RC_ENOSYS:\n+\t\treturn \"I40E_AQ_RC_ENOSYS\";\n+\tcase I40E_AQ_RC_ERANGE:\n+\t\treturn \"I40E_AQ_RC_ERANGE\";\n+\tcase I40E_AQ_RC_EFLUSHED:\n+\t\treturn \"I40E_AQ_RC_EFLUSHED\";\n+\tcase I40E_AQ_RC_BAD_ADDR:\n+\t\treturn \"I40E_AQ_RC_BAD_ADDR\";\n+\tcase I40E_AQ_RC_EMODE:\n+\t\treturn \"I40E_AQ_RC_EMODE\";\n+\tcase I40E_AQ_RC_EFBIG:\n+\t\treturn \"I40E_AQ_RC_EFBIG\";\n+\t}\n+\n+\tsnprintf(hw->err_str, sizeof(hw->err_str), \"%d\", aq_err);\n+\treturn hw->err_str;\n+}\n+\n+/**\n+ * i40e_stat_str - convert status err code to a string\n+ * @hw: pointer to the HW structure\n+ * @stat_err: the status error code to convert\n+ **/\n+char *i40e_stat_str(struct i40e_hw *hw, i40e_status stat_err)\n+{\n+\tswitch (stat_err) {\n+\tcase 0:\n+\t\treturn \"OK\";\n+\tcase I40E_ERR_NVM:\n+\t\treturn \"I40E_ERR_NVM\";\n+\tcase I40E_ERR_NVM_CHECKSUM:\n+\t\treturn \"I40E_ERR_NVM_CHECKSUM\";\n+\tcase I40E_ERR_PHY:\n+\t\treturn \"I40E_ERR_PHY\";\n+\tcase I40E_ERR_CONFIG:\n+\t\treturn \"I40E_ERR_CONFIG\";\n+\tcase I40E_ERR_PARAM:\n+\t\treturn \"I40E_ERR_PARAM\";\n+\tcase I40E_ERR_MAC_TYPE:\n+\t\treturn \"I40E_ERR_MAC_TYPE\";\n+\tcase I40E_ERR_UNKNOWN_PHY:\n+\t\treturn \"I40E_ERR_UNKNOWN_PHY\";\n+\tcase I40E_ERR_LINK_SETUP:\n+\t\treturn \"I40E_ERR_LINK_SETUP\";\n+\tcase I40E_ERR_ADAPTER_STOPPED:\n+\t\treturn \"I40E_ERR_ADAPTER_STOPPED\";\n+\tcase I40E_ERR_INVALID_MAC_ADDR:\n+\t\treturn \"I40E_ERR_INVALID_MAC_ADDR\";\n+\tcase I40E_ERR_DEVICE_NOT_SUPPORTED:\n+\t\treturn \"I40E_ERR_DEVICE_NOT_SUPPORTED\";\n+\tcase I40E_ERR_MASTER_REQUESTS_PENDING:\n+\t\treturn \"I40E_ERR_MASTER_REQUESTS_PENDING\";\n+\tcase I40E_ERR_INVALID_LINK_SETTINGS:\n+\t\treturn \"I40E_ERR_INVALID_LINK_SETTINGS\";\n+\tcase I40E_ERR_AUTONEG_NOT_COMPLETE:\n+\t\treturn \"I40E_ERR_AUTONEG_NOT_COMPLETE\";\n+\tcase I40E_ERR_RESET_FAILED:\n+\t\treturn \"I40E_ERR_RESET_FAILED\";\n+\tcase I40E_ERR_SWFW_SYNC:\n+\t\treturn \"I40E_ERR_SWFW_SYNC\";\n+\tcase I40E_ERR_NO_AVAILABLE_VSI:\n+\t\treturn \"I40E_ERR_NO_AVAILABLE_VSI\";\n+\tcase I40E_ERR_NO_MEMORY:\n+\t\treturn \"I40E_ERR_NO_MEMORY\";\n+\tcase I40E_ERR_BAD_PTR:\n+\t\treturn \"I40E_ERR_BAD_PTR\";\n+\tcase I40E_ERR_RING_FULL:\n+\t\treturn \"I40E_ERR_RING_FULL\";\n+\tcase I40E_ERR_INVALID_PD_ID:\n+\t\treturn \"I40E_ERR_INVALID_PD_ID\";\n+\tcase I40E_ERR_INVALID_QP_ID:\n+\t\treturn \"I40E_ERR_INVALID_QP_ID\";\n+\tcase I40E_ERR_INVALID_CQ_ID:\n+\t\treturn \"I40E_ERR_INVALID_CQ_ID\";\n+\tcase I40E_ERR_INVALID_CEQ_ID:\n+\t\treturn \"I40E_ERR_INVALID_CEQ_ID\";\n+\tcase I40E_ERR_INVALID_AEQ_ID:\n+\t\treturn \"I40E_ERR_INVALID_AEQ_ID\";\n+\tcase I40E_ERR_INVALID_SIZE:\n+\t\treturn \"I40E_ERR_INVALID_SIZE\";\n+\tcase I40E_ERR_INVALID_ARP_INDEX:\n+\t\treturn \"I40E_ERR_INVALID_ARP_INDEX\";\n+\tcase I40E_ERR_INVALID_FPM_FUNC_ID:\n+\t\treturn \"I40E_ERR_INVALID_FPM_FUNC_ID\";\n+\tcase I40E_ERR_QP_INVALID_MSG_SIZE:\n+\t\treturn \"I40E_ERR_QP_INVALID_MSG_SIZE\";\n+\tcase I40E_ERR_QP_TOOMANY_WRS_POSTED:\n+\t\treturn \"I40E_ERR_QP_TOOMANY_WRS_POSTED\";\n+\tcase I40E_ERR_INVALID_FRAG_COUNT:\n+\t\treturn \"I40E_ERR_INVALID_FRAG_COUNT\";\n+\tcase I40E_ERR_QUEUE_EMPTY:\n+\t\treturn \"I40E_ERR_QUEUE_EMPTY\";\n+\tcase I40E_ERR_INVALID_ALIGNMENT:\n+\t\treturn \"I40E_ERR_INVALID_ALIGNMENT\";\n+\tcase I40E_ERR_FLUSHED_QUEUE:\n+\t\treturn \"I40E_ERR_FLUSHED_QUEUE\";\n+\tcase I40E_ERR_INVALID_PUSH_PAGE_INDEX:\n+\t\treturn \"I40E_ERR_INVALID_PUSH_PAGE_INDEX\";\n+\tcase I40E_ERR_INVALID_IMM_DATA_SIZE:\n+\t\treturn \"I40E_ERR_INVALID_IMM_DATA_SIZE\";\n+\tcase I40E_ERR_TIMEOUT:\n+\t\treturn \"I40E_ERR_TIMEOUT\";\n+\tcase I40E_ERR_OPCODE_MISMATCH:\n+\t\treturn \"I40E_ERR_OPCODE_MISMATCH\";\n+\tcase I40E_ERR_CQP_COMPL_ERROR:\n+\t\treturn \"I40E_ERR_CQP_COMPL_ERROR\";\n+\tcase I40E_ERR_INVALID_VF_ID:\n+\t\treturn \"I40E_ERR_INVALID_VF_ID\";\n+\tcase I40E_ERR_INVALID_HMCFN_ID:\n+\t\treturn \"I40E_ERR_INVALID_HMCFN_ID\";\n+\tcase I40E_ERR_BACKING_PAGE_ERROR:\n+\t\treturn \"I40E_ERR_BACKING_PAGE_ERROR\";\n+\tcase I40E_ERR_NO_PBLCHUNKS_AVAILABLE:\n+\t\treturn \"I40E_ERR_NO_PBLCHUNKS_AVAILABLE\";\n+\tcase I40E_ERR_INVALID_PBLE_INDEX:\n+\t\treturn \"I40E_ERR_INVALID_PBLE_INDEX\";\n+\tcase I40E_ERR_INVALID_SD_INDEX:\n+\t\treturn \"I40E_ERR_INVALID_SD_INDEX\";\n+\tcase I40E_ERR_INVALID_PAGE_DESC_INDEX:\n+\t\treturn \"I40E_ERR_INVALID_PAGE_DESC_INDEX\";\n+\tcase I40E_ERR_INVALID_SD_TYPE:\n+\t\treturn \"I40E_ERR_INVALID_SD_TYPE\";\n+\tcase I40E_ERR_MEMCPY_FAILED:\n+\t\treturn \"I40E_ERR_MEMCPY_FAILED\";\n+\tcase I40E_ERR_INVALID_HMC_OBJ_INDEX:\n+\t\treturn \"I40E_ERR_INVALID_HMC_OBJ_INDEX\";\n+\tcase I40E_ERR_INVALID_HMC_OBJ_COUNT:\n+\t\treturn \"I40E_ERR_INVALID_HMC_OBJ_COUNT\";\n+\tcase I40E_ERR_INVALID_SRQ_ARM_LIMIT:\n+\t\treturn \"I40E_ERR_INVALID_SRQ_ARM_LIMIT\";\n+\tcase I40E_ERR_SRQ_ENABLED:\n+\t\treturn \"I40E_ERR_SRQ_ENABLED\";\n+\tcase I40E_ERR_ADMIN_QUEUE_ERROR:\n+\t\treturn \"I40E_ERR_ADMIN_QUEUE_ERROR\";\n+\tcase I40E_ERR_ADMIN_QUEUE_TIMEOUT:\n+\t\treturn \"I40E_ERR_ADMIN_QUEUE_TIMEOUT\";\n+\tcase I40E_ERR_BUF_TOO_SHORT:\n+\t\treturn \"I40E_ERR_BUF_TOO_SHORT\";\n+\tcase I40E_ERR_ADMIN_QUEUE_FULL:\n+\t\treturn \"I40E_ERR_ADMIN_QUEUE_FULL\";\n+\tcase I40E_ERR_ADMIN_QUEUE_NO_WORK:\n+\t\treturn \"I40E_ERR_ADMIN_QUEUE_NO_WORK\";\n+\tcase I40E_ERR_BAD_IWARP_CQE:\n+\t\treturn \"I40E_ERR_BAD_IWARP_CQE\";\n+\tcase I40E_ERR_NVM_BLANK_MODE:\n+\t\treturn \"I40E_ERR_NVM_BLANK_MODE\";\n+\tcase I40E_ERR_NOT_IMPLEMENTED:\n+\t\treturn \"I40E_ERR_NOT_IMPLEMENTED\";\n+\tcase I40E_ERR_PE_DOORBELL_NOT_ENABLED:\n+\t\treturn \"I40E_ERR_PE_DOORBELL_NOT_ENABLED\";\n+\tcase I40E_ERR_DIAG_TEST_FAILED:\n+\t\treturn \"I40E_ERR_DIAG_TEST_FAILED\";\n+\tcase I40E_ERR_NOT_READY:\n+\t\treturn \"I40E_ERR_NOT_READY\";\n+\tcase I40E_NOT_SUPPORTED:\n+\t\treturn \"I40E_NOT_SUPPORTED\";\n+\tcase I40E_ERR_FIRMWARE_API_VERSION:\n+\t\treturn \"I40E_ERR_FIRMWARE_API_VERSION\";\n+\t}\n+\n+\tsnprintf(hw->err_str, sizeof(hw->err_str), \"%d\", stat_err);\n+\treturn hw->err_str;\n+}\n+\n+/**\n * i40e_debug_aq\n * @hw: debug mask related to admin queue\n * @mask: debug mask\ndiff --git a/drivers/net/ethernet/intel/i40e/i40e_ethtool.c b/drivers/net/ethernet/intel/i40e/i40e_ethtool.c\nindex f2075d5..4b06a27 100644\n--- a/drivers/net/ethernet/intel/i40e/i40e_ethtool.c\n+++ b/drivers/net/ethernet/intel/i40e/i40e_ethtool.c\n@@ -681,15 +681,17 @@ static int i40e_set_settings(struct net_device *netdev,\n \t\t/* make the aq call */\n \t\tstatus = i40e_aq_set_phy_config(hw, &config, NULL);\n \t\tif (status) {\n-\t\t\tnetdev_info(netdev, \"Set phy config failed with error %d.\\n\",\n-\t\t\t\t status);\n+\t\t\tnetdev_info(netdev, \"Set phy config failed, err %s aq_err %s\\n\",\n+\t\t\t\t i40e_stat_str(hw, status),\n+\t\t\t\t i40e_aq_str(hw, hw->aq.asq_last_status));\n \t\t\treturn -EAGAIN;\n \t\t}\n \n \t\tstatus = i40e_aq_get_link_info(hw, true, NULL, NULL);\n \t\tif (status)\n-\t\t\tnetdev_info(netdev, \"Updating link info failed with error %d\\n\",\n-\t\t\t\t status);\n+\t\t\tnetdev_info(netdev, \"Updating link info failed with err %s aq_err %s\\n\",\n+\t\t\t\t i40e_stat_str(hw, status),\n+\t\t\t\t i40e_aq_str(hw, hw->aq.asq_last_status));\n \n \t} else {\n \t\tnetdev_info(netdev, \"Nothing changed, exiting without setting anything.\\n\");\n@@ -709,8 +711,9 @@ static int i40e_nway_reset(struct net_device *netdev)\n \n \tret = i40e_aq_set_link_restart_an(hw, link_up, NULL);\n \tif (ret) {\n-\t\tnetdev_info(netdev, \"link restart failed, aq_err=%d\\n\",\n-\t\t\t pf->hw.aq.asq_last_status);\n+\t\tnetdev_info(netdev, \"link restart failed, err %s aq_err %s\\n\",\n+\t\t\t i40e_stat_str(hw, ret),\n+\t\t\t i40e_aq_str(hw, hw->aq.asq_last_status));\n \t\treturn -EIO;\n \t}\n \n@@ -822,18 +825,21 @@ static int i40e_set_pauseparam(struct net_device *netdev,\n \tstatus = i40e_set_fc(hw, &aq_failures, link_up);\n \n \tif (aq_failures & I40E_SET_FC_AQ_FAIL_GET) {\n-\t\tnetdev_info(netdev, \"Set fc failed on the get_phy_capabilities call with error %d and status %d\\n\",\n-\t\t\t status, hw->aq.asq_last_status);\n+\t\tnetdev_info(netdev, \"Set fc failed on the get_phy_capabilities call with err %s aq_err %s\\n\",\n+\t\t\t i40e_stat_str(hw, status),\n+\t\t\t i40e_aq_str(hw, hw->aq.asq_last_status));\n \t\terr = -EAGAIN;\n \t}\n \tif (aq_failures & I40E_SET_FC_AQ_FAIL_SET) {\n-\t\tnetdev_info(netdev, \"Set fc failed on the set_phy_config call with error %d and status %d\\n\",\n-\t\t\t status, hw->aq.asq_last_status);\n+\t\tnetdev_info(netdev, \"Set fc failed on the set_phy_config call with err %s aq_err %s\\n\",\n+\t\t\t i40e_stat_str(hw, status),\n+\t\t\t i40e_aq_str(hw, hw->aq.asq_last_status));\n \t\terr = -EAGAIN;\n \t}\n \tif (aq_failures & I40E_SET_FC_AQ_FAIL_UPDATE) {\n-\t\tnetdev_info(netdev, \"Set fc failed on the get_link_info call with error %d and status %d\\n\",\n-\t\t\t status, hw->aq.asq_last_status);\n+\t\tnetdev_info(netdev, \"Set fc failed on the get_link_info call with err %s aq_err %s\\n\",\n+\t\t\t i40e_stat_str(hw, status),\n+\t\t\t i40e_aq_str(hw, hw->aq.asq_last_status));\n \t\terr = -EAGAIN;\n \t}\n \ndiff --git a/drivers/net/ethernet/intel/i40e/i40e_main.c b/drivers/net/ethernet/intel/i40e/i40e_main.c\nindex f05497a..f694fbc 100644\n--- a/drivers/net/ethernet/intel/i40e/i40e_main.c\n+++ b/drivers/net/ethernet/intel/i40e/i40e_main.c\n@@ -1276,7 +1276,7 @@ static int i40e_rm_default_mac_filter(struct i40e_vsi *vsi, u8 *macaddr)\n {\n \tstruct i40e_aqc_remove_macvlan_element_data element;\n \tstruct i40e_pf *pf = vsi->back;\n-\ti40e_status aq_ret;\n+\ti40e_status ret;\n \n \t/* Only appropriate for the PF main VSI */\n \tif (vsi->type != I40E_VSI_MAIN)\n@@ -1287,8 +1287,8 @@ static int i40e_rm_default_mac_filter(struct i40e_vsi *vsi, u8 *macaddr)\n \telement.vlan_tag = 0;\n \telement.flags = I40E_AQC_MACVLAN_DEL_PERFECT_MATCH |\n \t\t\tI40E_AQC_MACVLAN_DEL_IGNORE_VLAN;\n-\taq_ret = i40e_aq_remove_macvlan(&pf->hw, vsi->seid, &element, 1, NULL);\n-\tif (aq_ret)\n+\tret = i40e_aq_remove_macvlan(&pf->hw, vsi->seid, &element, 1, NULL);\n+\tif (ret)\n \t\treturn -ENOENT;\n \n \treturn 0;\n@@ -1728,10 +1728,11 @@ int i40e_sync_vsi_filters(struct i40e_vsi *vsi)\n \tbool add_happened = false;\n \tint filter_list_len = 0;\n \tu32 changed_flags = 0;\n-\ti40e_status aq_ret = 0;\n+\ti40e_status ret = 0;\n \tstruct i40e_pf *pf;\n \tint num_add = 0;\n \tint num_del = 0;\n+\tint aq_err = 0;\n \tu16 cmd_flags;\n \n \t/* empty array typed pointers, kcalloc later */\n@@ -1783,31 +1784,31 @@ int i40e_sync_vsi_filters(struct i40e_vsi *vsi)\n \n \t\t\t/* flush a full buffer */\n \t\t\tif (num_del == filter_list_len) {\n-\t\t\t\taq_ret = i40e_aq_remove_macvlan(&pf->hw,\n-\t\t\t\t\t vsi->seid, del_list, num_del,\n-\t\t\t\t\t NULL);\n+\t\t\t\tret = i40e_aq_remove_macvlan(&pf->hw,\n+\t\t\t\t\t\t vsi->seid, del_list, num_del,\n+\t\t\t\t\t\t NULL);\n+\t\t\t\taq_err = pf->hw.aq.asq_last_status;\n \t\t\t\tnum_del = 0;\n \t\t\t\tmemset(del_list, 0, sizeof(*del_list));\n \n-\t\t\t\tif (aq_ret &&\n-\t\t\t\t pf->hw.aq.asq_last_status !=\n-\t\t\t\t\t\t\t I40E_AQ_RC_ENOENT)\n+\t\t\t\tif (ret && aq_err != I40E_AQ_RC_ENOENT)\n \t\t\t\t\tdev_info(&pf->pdev->dev,\n-\t\t\t\t\t\t \"ignoring delete macvlan error, err %d, aq_err %d while flushing a full buffer\\n\",\n-\t\t\t\t\t\t aq_ret,\n-\t\t\t\t\t\t pf->hw.aq.asq_last_status);\n+\t\t\t\t\t\t \"ignoring delete macvlan error, err %s, aq_err %s while flushing a full buffer\\n\",\n+\t\t\t\t\t\t i40e_stat_str(&pf->hw, ret),\n+\t\t\t\t\t\t i40e_aq_str(&pf->hw, aq_err));\n \t\t\t}\n \t\t}\n \t\tif (num_del) {\n-\t\t\taq_ret = i40e_aq_remove_macvlan(&pf->hw, vsi->seid,\n+\t\t\tret = i40e_aq_remove_macvlan(&pf->hw, vsi->seid,\n \t\t\t\t\t\t del_list, num_del, NULL);\n+\t\t\taq_err = pf->hw.aq.asq_last_status;\n \t\t\tnum_del = 0;\n \n-\t\t\tif (aq_ret &&\n-\t\t\t pf->hw.aq.asq_last_status != I40E_AQ_RC_ENOENT)\n+\t\t\tif (ret && aq_err != I40E_AQ_RC_ENOENT)\n \t\t\t\tdev_info(&pf->pdev->dev,\n-\t\t\t\t\t \"ignoring delete macvlan error, err %d, aq_err %d\\n\",\n-\t\t\t\t\t aq_ret, pf->hw.aq.asq_last_status);\n+\t\t\t\t\t \"ignoring delete macvlan error, err %s aq_err %s\\n\",\n+\t\t\t\t\t i40e_stat_str(&pf->hw, ret),\n+\t\t\t\t\t i40e_aq_str(&pf->hw, aq_err));\n \t\t}\n \n \t\tkfree(del_list);\n@@ -1845,29 +1846,31 @@ int i40e_sync_vsi_filters(struct i40e_vsi *vsi)\n \n \t\t\t/* flush a full buffer */\n \t\t\tif (num_add == filter_list_len) {\n-\t\t\t\taq_ret = i40e_aq_add_macvlan(&pf->hw, vsi->seid,\n-\t\t\t\t\t\t\t add_list, num_add,\n-\t\t\t\t\t\t\t NULL);\n+\t\t\t\tret = i40e_aq_add_macvlan(&pf->hw, vsi->seid,\n+\t\t\t\t\t\t\t add_list, num_add,\n+\t\t\t\t\t\t\t NULL);\n+\t\t\t\taq_err = pf->hw.aq.asq_last_status;\n \t\t\t\tnum_add = 0;\n \n-\t\t\t\tif (aq_ret)\n+\t\t\t\tif (ret)\n \t\t\t\t\tbreak;\n \t\t\t\tmemset(add_list, 0, sizeof(*add_list));\n \t\t\t}\n \t\t}\n \t\tif (num_add) {\n-\t\t\taq_ret = i40e_aq_add_macvlan(&pf->hw, vsi->seid,\n-\t\t\t\t\t\t add_list, num_add, NULL);\n+\t\t\tret = i40e_aq_add_macvlan(&pf->hw, vsi->seid,\n+\t\t\t\t\t\t add_list, num_add, NULL);\n+\t\t\taq_err = pf->hw.aq.asq_last_status;\n \t\t\tnum_add = 0;\n \t\t}\n \t\tkfree(add_list);\n \t\tadd_list = NULL;\n \n-\t\tif (add_happened && aq_ret &&\n-\t\t pf->hw.aq.asq_last_status != I40E_AQ_RC_EINVAL) {\n+\t\tif (add_happened && ret && aq_err != I40E_AQ_RC_EINVAL) {\n \t\t\tdev_info(&pf->pdev->dev,\n-\t\t\t\t \"add filter failed, err %d, aq_err %d\\n\",\n-\t\t\t\t aq_ret, pf->hw.aq.asq_last_status);\n+\t\t\t\t \"add filter failed, err %s aq_err %s\\n\",\n+\t\t\t\t i40e_stat_str(&pf->hw, ret),\n+\t\t\t\t i40e_aq_str(&pf->hw, aq_err));\n \t\t\tif ((pf->hw.aq.asq_last_status == I40E_AQ_RC_ENOSPC) &&\n \t\t\t !test_bit(__I40E_FILTER_OVERFLOW_PROMISC,\n \t\t\t\t &vsi->state)) {\n@@ -1883,34 +1886,40 @@ int i40e_sync_vsi_filters(struct i40e_vsi *vsi)\n \tif (changed_flags & IFF_ALLMULTI) {\n \t\tbool cur_multipromisc;\n \t\tcur_multipromisc = !!(vsi->current_netdev_flags & IFF_ALLMULTI);\n-\t\taq_ret = i40e_aq_set_vsi_multicast_promiscuous(&vsi->back->hw,\n-\t\t\t\t\t\t\t vsi->seid,\n-\t\t\t\t\t\t\t cur_multipromisc,\n-\t\t\t\t\t\t\t NULL);\n-\t\tif (aq_ret)\n+\t\tret = i40e_aq_set_vsi_multicast_promiscuous(&vsi->back->hw,\n+\t\t\t\t\t\t\t vsi->seid,\n+\t\t\t\t\t\t\t cur_multipromisc,\n+\t\t\t\t\t\t\t NULL);\n+\t\tif (ret)\n \t\t\tdev_info(&pf->pdev->dev,\n-\t\t\t\t \"set multi promisc failed, err %d, aq_err %d\\n\",\n-\t\t\t\t aq_ret, pf->hw.aq.asq_last_status);\n+\t\t\t\t \"set multi promisc failed, err %s aq_err %s\\n\",\n+\t\t\t\t i40e_stat_str(&pf->hw, ret),\n+\t\t\t\t i40e_aq_str(&pf->hw,\n+\t\t\t\t\t pf->hw.aq.asq_last_status));\n \t}\n \tif ((changed_flags & IFF_PROMISC) || promisc_forced_on) {\n \t\tbool cur_promisc;\n \t\tcur_promisc = (!!(vsi->current_netdev_flags & IFF_PROMISC) ||\n \t\t\t test_bit(__I40E_FILTER_OVERFLOW_PROMISC,\n \t\t\t\t\t&vsi->state));\n-\t\taq_ret = i40e_aq_set_vsi_unicast_promiscuous(&vsi->back->hw,\n-\t\t\t\t\t\t\t vsi->seid,\n-\t\t\t\t\t\t\t cur_promisc, NULL);\n-\t\tif (aq_ret)\n+\t\tret = i40e_aq_set_vsi_unicast_promiscuous(&vsi->back->hw,\n+\t\t\t\t\t\t\t vsi->seid,\n+\t\t\t\t\t\t\t cur_promisc, NULL);\n+\t\tif (ret)\n \t\t\tdev_info(&pf->pdev->dev,\n-\t\t\t\t \"set uni promisc failed, err %d, aq_err %d\\n\",\n-\t\t\t\t aq_ret, pf->hw.aq.asq_last_status);\n-\t\taq_ret = i40e_aq_set_vsi_broadcast(&vsi->back->hw,\n-\t\t\t\t\t\t vsi->seid,\n-\t\t\t\t\t\t cur_promisc, NULL);\n-\t\tif (aq_ret)\n+\t\t\t\t \"set uni promisc failed, err %s, aq_err %s\\n\",\n+\t\t\t\t i40e_stat_str(&pf->hw, ret),\n+\t\t\t\t i40e_aq_str(&pf->hw,\n+\t\t\t\t\t pf->hw.aq.asq_last_status));\n+\t\tret = i40e_aq_set_vsi_broadcast(&vsi->back->hw,\n+\t\t\t\t\t\tvsi->seid,\n+\t\t\t\t\t\tcur_promisc, NULL);\n+\t\tif (ret)\n \t\t\tdev_info(&pf->pdev->dev,\n-\t\t\t\t \"set brdcast promisc failed, err %d, aq_err %d\\n\",\n-\t\t\t\t aq_ret, pf->hw.aq.asq_last_status);\n+\t\t\t\t \"set brdcast promisc failed, err %s, aq_err %s\\n\",\n+\t\t\t\t i40e_stat_str(&pf->hw, ret),\n+\t\t\t\t i40e_aq_str(&pf->hw,\n+\t\t\t\t\t pf->hw.aq.asq_last_status));\n \t}\n \n \tclear_bit(__I40E_CONFIG_BUSY, &vsi->state);\n@@ -2006,8 +2015,10 @@ void i40e_vlan_stripping_enable(struct i40e_vsi *vsi)\n \tret = i40e_aq_update_vsi_params(&vsi->back->hw, &ctxt, NULL);\n \tif (ret) {\n \t\tdev_info(&vsi->back->pdev->dev,\n-\t\t\t \"%s: update vsi failed, aq_err=%d\\n\",\n-\t\t\t __func__, vsi->back->hw.aq.asq_last_status);\n+\t\t\t \"update vlan stripping failed, err %s aq_err %s\\n\",\n+\t\t\t i40e_stat_str(&vsi->back->hw, ret),\n+\t\t\t i40e_aq_str(&vsi->back->hw,\n+\t\t\t\t vsi->back->hw.aq.asq_last_status));\n \t}\n }\n \n@@ -2035,8 +2046,10 @@ void i40e_vlan_stripping_disable(struct i40e_vsi *vsi)\n \tret = i40e_aq_update_vsi_params(&vsi->back->hw, &ctxt, NULL);\n \tif (ret) {\n \t\tdev_info(&vsi->back->pdev->dev,\n-\t\t\t \"%s: update vsi failed, aq_err=%d\\n\",\n-\t\t\t __func__, vsi->back->hw.aq.asq_last_status);\n+\t\t\t \"update vlan stripping failed, err %s aq_err %s\\n\",\n+\t\t\t i40e_stat_str(&vsi->back->hw, ret),\n+\t\t\t i40e_aq_str(&vsi->back->hw,\n+\t\t\t\t vsi->back->hw.aq.asq_last_status));\n \t}\n }\n \n@@ -2306,7 +2319,7 @@ static void i40e_restore_vlan(struct i40e_vsi *vsi)\n int i40e_vsi_add_pvid(struct i40e_vsi *vsi, u16 vid)\n {\n \tstruct i40e_vsi_context ctxt;\n-\ti40e_status aq_ret;\n+\ti40e_status ret;\n \n \tvsi->info.valid_sections = cpu_to_le16(I40E_AQ_VSI_PROP_VLAN_VALID);\n \tvsi->info.pvid = cpu_to_le16(vid);\n@@ -2316,11 +2329,13 @@ int i40e_vsi_add_pvid(struct i40e_vsi *vsi, u16 vid)\n \n \tctxt.seid = vsi->seid;\n \tctxt.info = vsi->info;\n-\taq_ret = i40e_aq_update_vsi_params(&vsi->back->hw, &ctxt, NULL);\n-\tif (aq_ret) {\n+\tret = i40e_aq_update_vsi_params(&vsi->back->hw, &ctxt, NULL);\n+\tif (ret) {\n \t\tdev_info(&vsi->back->pdev->dev,\n-\t\t\t \"%s: update vsi failed, aq_err=%d\\n\",\n-\t\t\t __func__, vsi->back->hw.aq.asq_last_status);\n+\t\t\t \"add pvid failed, err %s aq_err %s\\n\",\n+\t\t\t i40e_stat_str(&vsi->back->hw, ret),\n+\t\t\t i40e_aq_str(&vsi->back->hw,\n+\t\t\t\t vsi->back->hw.aq.asq_last_status));\n \t\treturn -ENOENT;\n \t}\n \n@@ -4233,26 +4248,28 @@ static int i40e_vsi_get_bw_info(struct i40e_vsi *vsi)\n \tstruct i40e_aqc_query_vsi_bw_config_resp bw_config = {0};\n \tstruct i40e_pf *pf = vsi->back;\n \tstruct i40e_hw *hw = &pf->hw;\n-\ti40e_status aq_ret;\n+\ti40e_status ret;\n \tu32 tc_bw_max;\n \tint i;\n \n \t/* Get the VSI level BW configuration */\n-\taq_ret = i40e_aq_query_vsi_bw_config(hw, vsi->seid, &bw_config, NULL);\n-\tif (aq_ret) {\n+\tret = i40e_aq_query_vsi_bw_config(hw, vsi->seid, &bw_config, NULL);\n+\tif (ret) {\n \t\tdev_info(&pf->pdev->dev,\n-\t\t\t \"couldn't get PF vsi bw config, err %d, aq_err %d\\n\",\n-\t\t\t aq_ret, pf->hw.aq.asq_last_status);\n+\t\t\t \"couldn't get PF vsi bw config, err %s aq_err %s\\n\",\n+\t\t\t i40e_stat_str(&pf->hw, ret),\n+\t\t\t i40e_aq_str(&pf->hw, pf->hw.aq.asq_last_status));\n \t\treturn -EINVAL;\n \t}\n \n \t/* Get the VSI level BW configuration per TC */\n-\taq_ret = i40e_aq_query_vsi_ets_sla_config(hw, vsi->seid, &bw_ets_config,\n-\t\t\t\t\t\t NULL);\n-\tif (aq_ret) {\n+\tret = i40e_aq_query_vsi_ets_sla_config(hw, vsi->seid, &bw_ets_config,\n+\t\t\t\t\t NULL);\n+\tif (ret) {\n \t\tdev_info(&pf->pdev->dev,\n-\t\t\t \"couldn't get PF vsi ets bw config, err %d, aq_err %d\\n\",\n-\t\t\t aq_ret, pf->hw.aq.asq_last_status);\n+\t\t\t \"couldn't get PF vsi ets bw config, err %s aq_err %s\\n\",\n+\t\t\t i40e_stat_str(&pf->hw, ret),\n+\t\t\t i40e_aq_str(&pf->hw, pf->hw.aq.asq_last_status));\n \t\treturn -EINVAL;\n \t}\n \n@@ -4291,16 +4308,16 @@ static int i40e_vsi_configure_bw_alloc(struct i40e_vsi *vsi, u8 enabled_tc,\n \t\t\t\t u8 *bw_share)\n {\n \tstruct i40e_aqc_configure_vsi_tc_bw_data bw_data;\n-\ti40e_status aq_ret;\n+\ti40e_status ret;\n \tint i;\n \n \tbw_data.tc_valid_bits = enabled_tc;\n \tfor (i = 0; i < I40E_MAX_TRAFFIC_CLASS; i++)\n \t\tbw_data.tc_bw_credits[i] = bw_share[i];\n \n-\taq_ret = i40e_aq_config_vsi_tc_bw(&vsi->back->hw, vsi->seid, &bw_data,\n-\t\t\t\t\t NULL);\n-\tif (aq_ret) {\n+\tret = i40e_aq_config_vsi_tc_bw(&vsi->back->hw, vsi->seid, &bw_data,\n+\t\t\t\t NULL);\n+\tif (ret) {\n \t\tdev_info(&vsi->back->pdev->dev,\n \t\t\t \"AQ command Config VSI BW allocation per TC failed = %d\\n\",\n \t\t\t vsi->back->hw.aq.asq_last_status);\n@@ -4435,8 +4452,10 @@ static int i40e_vsi_config_tc(struct i40e_vsi *vsi, u8 enabled_tc)\n \tret = i40e_aq_update_vsi_params(&vsi->back->hw, &ctxt, NULL);\n \tif (ret) {\n \t\tdev_info(&vsi->back->pdev->dev,\n-\t\t\t \"update vsi failed, aq_err=%d\\n\",\n-\t\t\t vsi->back->hw.aq.asq_last_status);\n+\t\t\t \"Update vsi tc config failed, err %s aq_err %s\\n\",\n+\t\t\t i40e_stat_str(&vsi->back->hw, ret),\n+\t\t\t i40e_aq_str(&vsi->back->hw,\n+\t\t\t\t vsi->back->hw.aq.asq_last_status));\n \t\tgoto out;\n \t}\n \t/* update the local VSI info with updated queue map */\n@@ -4447,8 +4466,10 @@ static int i40e_vsi_config_tc(struct i40e_vsi *vsi, u8 enabled_tc)\n \tret = i40e_vsi_get_bw_info(vsi);\n \tif (ret) {\n \t\tdev_info(&vsi->back->pdev->dev,\n-\t\t\t \"Failed updating vsi bw info, aq_err=%d\\n\",\n-\t\t\t vsi->back->hw.aq.asq_last_status);\n+\t\t\t \"Failed updating vsi bw info, err %s aq_err %s\\n\",\n+\t\t\t i40e_stat_str(&vsi->back->hw, ret),\n+\t\t\t i40e_aq_str(&vsi->back->hw,\n+\t\t\t\t vsi->back->hw.aq.asq_last_status));\n \t\tgoto out;\n \t}\n \n@@ -4489,8 +4510,9 @@ int i40e_veb_config_tc(struct i40e_veb *veb, u8 enabled_tc)\n \t\t\t\t\t\t &bw_data, NULL);\n \tif (ret) {\n \t\tdev_info(&pf->pdev->dev,\n-\t\t\t \"veb bw config failed, aq_err=%d\\n\",\n-\t\t\t pf->hw.aq.asq_last_status);\n+\t\t\t \"VEB bw config failed, err %s aq_err %s\\n\",\n+\t\t\t i40e_stat_str(&pf->hw, ret),\n+\t\t\t i40e_aq_str(&pf->hw, pf->hw.aq.asq_last_status));\n \t\tgoto out;\n \t}\n \n@@ -4498,8 +4520,9 @@ int i40e_veb_config_tc(struct i40e_veb *veb, u8 enabled_tc)\n \tret = i40e_veb_get_bw_info(veb);\n \tif (ret) {\n \t\tdev_info(&pf->pdev->dev,\n-\t\t\t \"Failed getting veb bw config, aq_err=%d\\n\",\n-\t\t\t pf->hw.aq.asq_last_status);\n+\t\t\t \"Failed getting veb bw config, err %s aq_err %s\\n\",\n+\t\t\t i40e_stat_str(&pf->hw, ret),\n+\t\t\t i40e_aq_str(&pf->hw, pf->hw.aq.asq_last_status));\n \t}\n \n out:\n@@ -4586,8 +4609,9 @@ static int i40e_resume_port_tx(struct i40e_pf *pf)\n \tret = i40e_aq_resume_port_tx(hw, NULL);\n \tif (ret) {\n \t\tdev_info(&pf->pdev->dev,\n-\t\t\t \"AQ command Resume Port Tx failed = %d\\n\",\n-\t\t\t pf->hw.aq.asq_last_status);\n+\t\t\t \"Resume Port Tx failed, err %s aq_err %s\\n\",\n+\t\t\t i40e_stat_str(&pf->hw, ret),\n+\t\t\t i40e_aq_str(&pf->hw, pf->hw.aq.asq_last_status));\n \t\t/* Schedule PF reset to recover */\n \t\tset_bit(__I40E_PF_RESET_REQUESTED, &pf->state);\n \t\ti40e_service_event_schedule(pf);\n@@ -4639,8 +4663,9 @@ static int i40e_init_pf_dcb(struct i40e_pf *pf)\n \t\t}\n \t} else {\n \t\tdev_info(&pf->pdev->dev,\n-\t\t\t \"AQ Querying DCB configuration failed: aq_err %d\\n\",\n-\t\t\t pf->hw.aq.asq_last_status);\n+\t\t\t \"Query for DCB configuration failed, err %s aq_err %s\\n\",\n+\t\t\t i40e_stat_str(&pf->hw, err),\n+\t\t\t i40e_aq_str(&pf->hw, pf->hw.aq.asq_last_status));\n \t}\n \n out:\n@@ -5265,7 +5290,10 @@ static int i40e_handle_lldp_event(struct i40e_pf *pf,\n \t/* Get updated DCBX data from firmware */\n \tret = i40e_get_dcb_config(&pf->hw);\n \tif (ret) {\n-\t\tdev_info(&pf->pdev->dev, \"Failed querying DCB configuration data from firmware.\\n\");\n+\t\tdev_info(&pf->pdev->dev,\n+\t\t\t \"Failed querying DCB configuration data from firmware, err %s aq_err %s\\n\",\n+\t\t\t i40e_stat_str(&pf->hw, ret),\n+\t\t\t i40e_aq_str(&pf->hw, pf->hw.aq.asq_last_status));\n \t\tgoto exit;\n \t}\n \n@@ -5995,27 +6023,29 @@ static void i40e_enable_pf_switch_lb(struct i40e_pf *pf)\n {\n \tstruct i40e_vsi *vsi = pf->vsi[pf->lan_vsi];\n \tstruct i40e_vsi_context ctxt;\n-\tint aq_ret;\n+\tint ret;\n \n \tctxt.seid = pf->main_vsi_seid;\n \tctxt.pf_num = pf->hw.pf_id;\n \tctxt.vf_num = 0;\n-\taq_ret = i40e_aq_get_vsi_params(&pf->hw, &ctxt, NULL);\n-\tif (aq_ret) {\n+\tret = i40e_aq_get_vsi_params(&pf->hw, &ctxt, NULL);\n+\tif (ret) {\n \t\tdev_info(&pf->pdev->dev,\n-\t\t\t \"%s couldn't get PF vsi config, err %d, aq_err %d\\n\",\n-\t\t\t __func__, aq_ret, pf->hw.aq.asq_last_status);\n+\t\t\t \"couldn't get PF vsi config, err %s aq_err %s\\n\",\n+\t\t\t i40e_stat_str(&pf->hw, ret),\n+\t\t\t i40e_aq_str(&pf->hw, pf->hw.aq.asq_last_status));\n \t\treturn;\n \t}\n \tctxt.flags = I40E_AQ_VSI_TYPE_PF;\n \tctxt.info.valid_sections = cpu_to_le16(I40E_AQ_VSI_PROP_SWITCH_VALID);\n \tctxt.info.switch_id |= cpu_to_le16(I40E_AQ_VSI_SW_ID_FLAG_ALLOW_LB);\n \n-\taq_ret = i40e_aq_update_vsi_params(&vsi->back->hw, &ctxt, NULL);\n-\tif (aq_ret) {\n+\tret = i40e_aq_update_vsi_params(&vsi->back->hw, &ctxt, NULL);\n+\tif (ret) {\n \t\tdev_info(&pf->pdev->dev,\n-\t\t\t \"%s: update vsi switch failed, aq_err=%d\\n\",\n-\t\t\t __func__, vsi->back->hw.aq.asq_last_status);\n+\t\t\t \"update vsi switch failed, err %s aq_err %s\\n\",\n+\t\t\t i40e_stat_str(&pf->hw, ret),\n+\t\t\t i40e_aq_str(&pf->hw, pf->hw.aq.asq_last_status));\n \t}\n }\n \n@@ -6029,27 +6059,29 @@ static void i40e_disable_pf_switch_lb(struct i40e_pf *pf)\n {\n \tstruct i40e_vsi *vsi = pf->vsi[pf->lan_vsi];\n \tstruct i40e_vsi_context ctxt;\n-\tint aq_ret;\n+\tint ret;\n \n \tctxt.seid = pf->main_vsi_seid;\n \tctxt.pf_num = pf->hw.pf_id;\n \tctxt.vf_num = 0;\n-\taq_ret = i40e_aq_get_vsi_params(&pf->hw, &ctxt, NULL);\n-\tif (aq_ret) {\n+\tret = i40e_aq_get_vsi_params(&pf->hw, &ctxt, NULL);\n+\tif (ret) {\n \t\tdev_info(&pf->pdev->dev,\n-\t\t\t \"%s couldn't get PF vsi config, err %d, aq_err %d\\n\",\n-\t\t\t __func__, aq_ret, pf->hw.aq.asq_last_status);\n+\t\t\t \"couldn't get PF vsi config, err %s aq_err %s\\n\",\n+\t\t\t i40e_stat_str(&pf->hw, ret),\n+\t\t\t i40e_aq_str(&pf->hw, pf->hw.aq.asq_last_status));\n \t\treturn;\n \t}\n \tctxt.flags = I40E_AQ_VSI_TYPE_PF;\n \tctxt.info.valid_sections = cpu_to_le16(I40E_AQ_VSI_PROP_SWITCH_VALID);\n \tctxt.info.switch_id &= ~cpu_to_le16(I40E_AQ_VSI_SW_ID_FLAG_ALLOW_LB);\n \n-\taq_ret = i40e_aq_update_vsi_params(&vsi->back->hw, &ctxt, NULL);\n-\tif (aq_ret) {\n+\tret = i40e_aq_update_vsi_params(&vsi->back->hw, &ctxt, NULL);\n+\tif (ret) {\n \t\tdev_info(&pf->pdev->dev,\n-\t\t\t \"%s: update vsi switch failed, aq_err=%d\\n\",\n-\t\t\t __func__, vsi->back->hw.aq.asq_last_status);\n+\t\t\t \"update vsi switch failed, err %s aq_err %s\\n\",\n+\t\t\t i40e_stat_str(&pf->hw, ret),\n+\t\t\t i40e_aq_str(&pf->hw, pf->hw.aq.asq_last_status));\n \t}\n }\n \n@@ -6109,7 +6141,8 @@ static int i40e_reconstitute_veb(struct i40e_veb *veb)\n \tret = i40e_add_vsi(ctl_vsi);\n \tif (ret) {\n \t\tdev_info(&pf->pdev->dev,\n-\t\t\t \"rebuild of owner VSI failed: %d\\n\", ret);\n+\t\t\t \"rebuild of veb_idx %d owner VSI failed: %d\\n\",\n+\t\t\t veb->idx, ret);\n \t\tgoto end_reconstitute;\n \t}\n \ti40e_vsi_reset_stats(ctl_vsi);\n@@ -6184,8 +6217,10 @@ static int i40e_get_capabilities(struct i40e_pf *pf)\n \t\t\tbuf_len = data_size;\n \t\t} else if (pf->hw.aq.asq_last_status != I40E_AQ_RC_OK) {\n \t\t\tdev_info(&pf->pdev->dev,\n-\t\t\t\t \"capability discovery failed: aq=%d\\n\",\n-\t\t\t\t pf->hw.aq.asq_last_status);\n+\t\t\t\t \"capability discovery failed, err %s aq_err %s\\n\",\n+\t\t\t\t i40e_stat_str(&pf->hw, err),\n+\t\t\t\t i40e_aq_str(&pf->hw,\n+\t\t\t\t\t pf->hw.aq.asq_last_status));\n \t\t\treturn -ENODEV;\n \t\t}\n \t} while (err);\n@@ -6371,7 +6406,9 @@ static void i40e_reset_and_rebuild(struct i40e_pf *pf, bool reinit)\n \t/* rebuild the basics for the AdminQ, HMC, and initial HW switch */\n \tret = i40e_init_adminq(&pf->hw);\n \tif (ret) {\n-\t\tdev_info(&pf->pdev->dev, \"Rebuild AdminQ failed, %d\\n\", ret);\n+\t\tdev_info(&pf->pdev->dev, \"Rebuild AdminQ failed, err %s aq_err %s\\n\",\n+\t\t\t i40e_stat_str(&pf->hw, ret),\n+\t\t\t i40e_aq_str(&pf->hw, pf->hw.aq.asq_last_status));\n \t\tgoto clear_recovery;\n \t}\n \n@@ -6381,11 +6418,8 @@ static void i40e_reset_and_rebuild(struct i40e_pf *pf, bool reinit)\n \n \ti40e_clear_pxe_mode(hw);\n \tret = i40e_get_capabilities(pf);\n-\tif (ret) {\n-\t\tdev_info(&pf->pdev->dev, \"i40e_get_capabilities failed, %d\\n\",\n-\t\t\t ret);\n+\tif (ret)\n \t\tgoto end_core_reset;\n-\t}\n \n \tret = i40e_init_lan_hmc(hw, hw->func_caps.num_tx_qp,\n \t\t\t\thw->func_caps.num_rx_qp,\n@@ -6426,12 +6460,16 @@ static void i40e_reset_and_rebuild(struct i40e_pf *pf, bool reinit)\n \t\t\t\t I40E_AQ_EVENT_LINK_UPDOWN |\n \t\t\t\t I40E_AQ_EVENT_MODULE_QUAL_FAIL, NULL);\n \tif (ret)\n-\t\tdev_info(&pf->pdev->dev, \"set phy mask fail, aq_err %d\\n\", ret);\n+\t\tdev_info(&pf->pdev->dev, \"set phy mask fail, err %s aq_err %s\\n\",\n+\t\t\t i40e_stat_str(&pf->hw, ret),\n+\t\t\t i40e_aq_str(&pf->hw, pf->hw.aq.asq_last_status));\n \n \t/* make sure our flow control settings are restored */\n \tret = i40e_set_fc(&pf->hw, &set_fc_aq_fail, true);\n \tif (ret)\n-\t\tdev_info(&pf->pdev->dev, \"set fc fail, aq_err %d\\n\", ret);\n+\t\tdev_info(&pf->pdev->dev, \"set fc fail, err %s aq_err %s\\n\",\n+\t\t\t i40e_stat_str(&pf->hw, ret),\n+\t\t\t i40e_aq_str(&pf->hw, pf->hw.aq.asq_last_status));\n \n \t/* Rebuild the VSIs and VEBs that existed before reset.\n \t * They are still in our local switch element arrays, so only\n@@ -6492,8 +6530,10 @@ static void i40e_reset_and_rebuild(struct i40e_pf *pf, bool reinit)\n \t\tmsleep(75);\n \t\tret = i40e_aq_set_link_restart_an(&pf->hw, true, NULL);\n \t\tif (ret)\n-\t\t\tdev_info(&pf->pdev->dev, \"link restart failed, aq_err=%d\\n\",\n-\t\t\t\t pf->hw.aq.asq_last_status);\n+\t\t\tdev_info(&pf->pdev->dev, \"link restart failed, err %s aq_err %s\\n\",\n+\t\t\t\t i40e_stat_str(&pf->hw, ret),\n+\t\t\t\t i40e_aq_str(&pf->hw,\n+\t\t\t\t\t pf->hw.aq.asq_last_status));\n \t}\n \t/* reinit the misc interrupt */\n \tif (pf->flags & I40E_FLAG_MSIX_ENABLED)\n@@ -6667,10 +6707,12 @@ static void i40e_sync_vxlan_filters_subtask(struct i40e_pf *pf)\n \n \t\t\tif (ret) {\n \t\t\t\tdev_info(&pf->pdev->dev,\n-\t\t\t\t\t \"%s vxlan port %d, index %d failed, err %d, aq_err %d\\n\",\n+\t\t\t\t\t \"%s vxlan port %d, index %d failed, err %s aq_err %s\\n\",\n \t\t\t\t\t port ? \"add\" : \"delete\",\n-\t\t\t\t\t ntohs(port), i, ret,\n-\t\t\t\t\t pf->hw.aq.asq_last_status);\n+\t\t\t\t\t ntohs(port), i,\n+\t\t\t\t\t i40e_stat_str(&pf->hw, ret),\n+\t\t\t\t\t i40e_aq_str(&pf->hw,\n+\t\t\t\t\t\t pf->hw.aq.asq_last_status));\n \t\t\t\tpf->vxlan_ports[i] = 0;\n \t\t\t}\n \t\t}\n@@ -7575,8 +7617,9 @@ i40e_status i40e_commit_npar_bw_setting(struct i40e_pf *pf)\n \tlast_aq_status = pf->hw.aq.asq_last_status;\n \tif (ret) {\n \t\tdev_info(&pf->pdev->dev,\n-\t\t\t \"Cannot acquire NVM for read access, err %d: aq_err %d\\n\",\n-\t\t\t ret, last_aq_status);\n+\t\t\t \"Cannot acquire NVM for read access, err %s aq_err %s\\n\",\n+\t\t\t i40e_stat_str(&pf->hw, ret),\n+\t\t\t i40e_aq_str(&pf->hw, last_aq_status));\n \t\tgoto bw_commit_out;\n \t}\n \n@@ -7591,8 +7634,9 @@ i40e_status i40e_commit_npar_bw_setting(struct i40e_pf *pf)\n \tlast_aq_status = pf->hw.aq.asq_last_status;\n \ti40e_release_nvm(&pf->hw);\n \tif (ret) {\n-\t\tdev_info(&pf->pdev->dev, \"NVM read error, err %d aq_err %d\\n\",\n-\t\t\t ret, last_aq_status);\n+\t\tdev_info(&pf->pdev->dev, \"NVM read error, err %s aq_err %s\\n\",\n+\t\t\t i40e_stat_str(&pf->hw, ret),\n+\t\t\t i40e_aq_str(&pf->hw, last_aq_status));\n \t\tgoto bw_commit_out;\n \t}\n \n@@ -7604,8 +7648,9 @@ i40e_status i40e_commit_npar_bw_setting(struct i40e_pf *pf)\n \tlast_aq_status = pf->hw.aq.asq_last_status;\n \tif (ret) {\n \t\tdev_info(&pf->pdev->dev,\n-\t\t\t \"Cannot acquire NVM for write access, err %d: aq_err %d\\n\",\n-\t\t\t ret, last_aq_status);\n+\t\t\t \"Cannot acquire NVM for write access, err %s aq_err %s\\n\",\n+\t\t\t i40e_stat_str(&pf->hw, ret),\n+\t\t\t i40e_aq_str(&pf->hw, last_aq_status));\n \t\tgoto bw_commit_out;\n \t}\n \t/* Write it back out unchanged to initiate update NVM,\n@@ -7623,8 +7668,9 @@ i40e_status i40e_commit_npar_bw_setting(struct i40e_pf *pf)\n \ti40e_release_nvm(&pf->hw);\n \tif (ret)\n \t\tdev_info(&pf->pdev->dev,\n-\t\t\t \"BW settings NOT SAVED, err %d aq_err %d\\n\",\n-\t\t\t ret, last_aq_status);\n+\t\t\t \"BW settings NOT SAVED, err %s aq_err %s\\n\",\n+\t\t\t i40e_stat_str(&pf->hw, ret),\n+\t\t\t i40e_aq_str(&pf->hw, last_aq_status));\n bw_commit_out:\n \n \treturn ret;\n@@ -8319,8 +8365,10 @@ static int i40e_add_vsi(struct i40e_vsi *vsi)\n \t\tctxt.flags = I40E_AQ_VSI_TYPE_PF;\n \t\tif (ret) {\n \t\t\tdev_info(&pf->pdev->dev,\n-\t\t\t\t \"couldn't get PF vsi config, err %d, aq_err %d\\n\",\n-\t\t\t\t ret, pf->hw.aq.asq_last_status);\n+\t\t\t\t \"couldn't get PF vsi config, err %s aq_err %s\\n\",\n+\t\t\t\t i40e_stat_str(&pf->hw, ret),\n+\t\t\t\t i40e_aq_str(&pf->hw,\n+\t\t\t\t\t pf->hw.aq.asq_last_status));\n \t\t\treturn -ENOENT;\n \t\t}\n \t\tvsi->info = ctxt.info;\n@@ -8342,8 +8390,10 @@ static int i40e_add_vsi(struct i40e_vsi *vsi)\n \t\t\tret = i40e_aq_update_vsi_params(hw, &ctxt, NULL);\n \t\t\tif (ret) {\n \t\t\t\tdev_info(&pf->pdev->dev,\n-\t\t\t\t\t \"update vsi failed, aq_err=%d\\n\",\n-\t\t\t\t\t pf->hw.aq.asq_last_status);\n+\t\t\t\t\t \"update vsi failed, err %s aq_err %s\\n\",\n+\t\t\t\t\t i40e_stat_str(&pf->hw, ret),\n+\t\t\t\t\t i40e_aq_str(&pf->hw,\n+\t\t\t\t\t\t pf->hw.aq.asq_last_status));\n \t\t\t\tret = -ENOENT;\n \t\t\t\tgoto err;\n \t\t\t}\n@@ -8360,9 +8410,11 @@ static int i40e_add_vsi(struct i40e_vsi *vsi)\n \t\t\tret = i40e_vsi_config_tc(vsi, enabled_tc);\n \t\t\tif (ret) {\n \t\t\t\tdev_info(&pf->pdev->dev,\n-\t\t\t\t\t \"failed to configure TCs for main VSI tc_map 0x%08x, err %d, aq_err %d\\n\",\n-\t\t\t\t\t enabled_tc, ret,\n-\t\t\t\t\t pf->hw.aq.asq_last_status);\n+\t\t\t\t\t \"failed to configure TCs for main VSI tc_map 0x%08x, err %s aq_err %s\\n\",\n+\t\t\t\t\t enabled_tc,\n+\t\t\t\t\t i40e_stat_str(&pf->hw, ret),\n+\t\t\t\t\t i40e_aq_str(&pf->hw,\n+\t\t\t\t\t\t pf->hw.aq.asq_last_status));\n \t\t\t\tret = -ENOENT;\n \t\t\t}\n \t\t}\n@@ -8452,8 +8504,10 @@ static int i40e_add_vsi(struct i40e_vsi *vsi)\n \t\tret = i40e_aq_add_vsi(hw, &ctxt, NULL);\n \t\tif (ret) {\n \t\t\tdev_info(&vsi->back->pdev->dev,\n-\t\t\t\t \"add vsi failed, aq_err=%d\\n\",\n-\t\t\t\t vsi->back->hw.aq.asq_last_status);\n+\t\t\t\t \"add vsi failed, err %s aq_err %s\\n\",\n+\t\t\t\t i40e_stat_str(&pf->hw, ret),\n+\t\t\t\t i40e_aq_str(&pf->hw,\n+\t\t\t\t\t pf->hw.aq.asq_last_status));\n \t\t\tret = -ENOENT;\n \t\t\tgoto err;\n \t\t}\n@@ -8498,8 +8552,9 @@ static int i40e_add_vsi(struct i40e_vsi *vsi)\n \tret = i40e_vsi_get_bw_info(vsi);\n \tif (ret) {\n \t\tdev_info(&pf->pdev->dev,\n-\t\t\t \"couldn't get vsi bw info, err %d, aq_err %d\\n\",\n-\t\t\t ret, pf->hw.aq.asq_last_status);\n+\t\t\t \"couldn't get vsi bw info, err %s aq_err %s\\n\",\n+\t\t\t i40e_stat_str(&pf->hw, ret),\n+\t\t\t i40e_aq_str(&pf->hw, pf->hw.aq.asq_last_status));\n \t\t/* VSI is already added so not tearing that up */\n \t\tret = 0;\n \t}\n@@ -8672,7 +8727,7 @@ static struct i40e_vsi *i40e_vsi_reinit_setup(struct i40e_vsi *vsi)\n \tret = i40e_get_lump(pf, pf->qp_pile, vsi->alloc_queue_pairs, vsi->idx);\n \tif (ret < 0) {\n \t\tdev_info(&pf->pdev->dev,\n-\t\t\t \"failed to get tracking for %d queues for VSI %d err=%d\\n\",\n+\t\t\t \"failed to get tracking for %d queues for VSI %d err %d\\n\",\n \t\t\t vsi->alloc_queue_pairs, vsi->seid, ret);\n \t\tgoto err_vsi;\n \t}\n@@ -8902,8 +8957,9 @@ static int i40e_veb_get_bw_info(struct i40e_veb *veb)\n \t\t\t\t\t\t &bw_data, NULL);\n \tif (ret) {\n \t\tdev_info(&pf->pdev->dev,\n-\t\t\t \"query veb bw config failed, aq_err=%d\\n\",\n-\t\t\t hw->aq.asq_last_status);\n+\t\t\t \"query veb bw config failed, err %s aq_err %s\\n\",\n+\t\t\t i40e_stat_str(&pf->hw, ret),\n+\t\t\t i40e_aq_str(&pf->hw, hw->aq.asq_last_status));\n \t\tgoto out;\n \t}\n \n@@ -8911,8 +8967,9 @@ static int i40e_veb_get_bw_info(struct i40e_veb *veb)\n \t\t\t\t\t\t &ets_data, NULL);\n \tif (ret) {\n \t\tdev_info(&pf->pdev->dev,\n-\t\t\t \"query veb bw ets config failed, aq_err=%d\\n\",\n-\t\t\t hw->aq.asq_last_status);\n+\t\t\t \"query veb bw ets config failed, err %s aq_err %s\\n\",\n+\t\t\t i40e_stat_str(&pf->hw, ret),\n+\t\t\t i40e_aq_str(&pf->hw, hw->aq.asq_last_status));\n \t\tgoto out;\n \t}\n \n@@ -9096,36 +9153,40 @@ void i40e_veb_release(struct i40e_veb *veb)\n **/\n static int i40e_add_veb(struct i40e_veb *veb, struct i40e_vsi *vsi)\n {\n+\tstruct i40e_pf *pf = veb->pf;\n \tbool is_default = false;\n \tbool is_cloud = false;\n \tint ret;\n \n \t/* get a VEB from the hardware */\n-\tret = i40e_aq_add_veb(&veb->pf->hw, veb->uplink_seid, vsi->seid,\n+\tret = i40e_aq_add_veb(&pf->hw, veb->uplink_seid, vsi->seid,\n \t\t\t veb->enabled_tc, is_default,\n \t\t\t is_cloud, &veb->seid, NULL);\n \tif (ret) {\n-\t\tdev_info(&veb->pf->pdev->dev,\n-\t\t\t \"couldn't add VEB, err %d, aq_err %d\\n\",\n-\t\t\t ret, veb->pf->hw.aq.asq_last_status);\n+\t\tdev_info(&pf->pdev->dev,\n+\t\t\t \"couldn't add VEB, err %s aq_err %s\\n\",\n+\t\t\t i40e_stat_str(&pf->hw, ret),\n+\t\t\t i40e_aq_str(&pf->hw, pf->hw.aq.asq_last_status));\n \t\treturn -EPERM;\n \t}\n \n \t/* get statistics counter */\n-\tret = i40e_aq_get_veb_parameters(&veb->pf->hw, veb->seid, NULL, NULL,\n+\tret = i40e_aq_get_veb_parameters(&pf->hw, veb->seid, NULL, NULL,\n \t\t\t\t\t &veb->stats_idx, NULL, NULL, NULL);\n \tif (ret) {\n-\t\tdev_info(&veb->pf->pdev->dev,\n-\t\t\t \"couldn't get VEB statistics idx, err %d, aq_err %d\\n\",\n-\t\t\t ret, veb->pf->hw.aq.asq_last_status);\n+\t\tdev_info(&pf->pdev->dev,\n+\t\t\t \"couldn't get VEB statistics idx, err %s aq_err %s\\n\",\n+\t\t\t i40e_stat_str(&pf->hw, ret),\n+\t\t\t i40e_aq_str(&pf->hw, pf->hw.aq.asq_last_status));\n \t\treturn -EPERM;\n \t}\n \tret = i40e_veb_get_bw_info(veb);\n \tif (ret) {\n-\t\tdev_info(&veb->pf->pdev->dev,\n-\t\t\t \"couldn't get VEB bw info, err %d, aq_err %d\\n\",\n-\t\t\t ret, veb->pf->hw.aq.asq_last_status);\n-\t\ti40e_aq_delete_element(&veb->pf->hw, veb->seid, NULL);\n+\t\tdev_info(&pf->pdev->dev,\n+\t\t\t \"couldn't get VEB bw info, err %s aq_err %s\\n\",\n+\t\t\t i40e_stat_str(&pf->hw, ret),\n+\t\t\t i40e_aq_str(&pf->hw, pf->hw.aq.asq_last_status));\n+\t\ti40e_aq_delete_element(&pf->hw, veb->seid, NULL);\n \t\treturn -ENOENT;\n \t}\n \n@@ -9331,8 +9392,10 @@ int i40e_fetch_switch_configuration(struct i40e_pf *pf, bool printconfig)\n \t\t\t\t\t\t&next_seid, NULL);\n \t\tif (ret) {\n \t\t\tdev_info(&pf->pdev->dev,\n-\t\t\t\t \"get switch config failed %d aq_err=%x\\n\",\n-\t\t\t\t ret, pf->hw.aq.asq_last_status);\n+\t\t\t\t \"get switch config failed err %s aq_err %s\\n\",\n+\t\t\t\t i40e_stat_str(&pf->hw, ret),\n+\t\t\t\t i40e_aq_str(&pf->hw,\n+\t\t\t\t\t pf->hw.aq.asq_last_status));\n \t\t\tkfree(aq_buf);\n \t\t\treturn -ENOENT;\n \t\t}\n@@ -9373,8 +9436,9 @@ static int i40e_setup_pf_switch(struct i40e_pf *pf, bool reinit)\n \tret = i40e_fetch_switch_configuration(pf, false);\n \tif (ret) {\n \t\tdev_info(&pf->pdev->dev,\n-\t\t\t \"couldn't fetch switch config, err %d, aq_err %d\\n\",\n-\t\t\t ret, pf->hw.aq.asq_last_status);\n+\t\t\t \"couldn't fetch switch config, err %s aq_err %s\\n\",\n+\t\t\t i40e_stat_str(&pf->hw, ret),\n+\t\t\t i40e_aq_str(&pf->hw, pf->hw.aq.asq_last_status));\n \t\treturn ret;\n \t}\n \ti40e_pf_reset_stats(pf);\n@@ -9908,15 +9972,19 @@ static int i40e_probe(struct pci_dev *pdev, const struct pci_device_id *ent)\n \t\t\t\t I40E_AQ_EVENT_LINK_UPDOWN |\n \t\t\t\t I40E_AQ_EVENT_MODULE_QUAL_FAIL, NULL);\n \tif (err)\n-\t\tdev_info(&pf->pdev->dev, \"set phy mask fail, aq_err %d\\n\", err);\n+\t\tdev_info(&pf->pdev->dev, \"set phy mask fail, err %s aq_err %s\\n\",\n+\t\t\t i40e_stat_str(&pf->hw, err),\n+\t\t\t i40e_aq_str(&pf->hw, pf->hw.aq.asq_last_status));\n \n \tif (((pf->hw.aq.fw_maj_ver == 4) && (pf->hw.aq.fw_min_ver < 33)) ||\n \t (pf->hw.aq.fw_maj_ver < 4)) {\n \t\tmsleep(75);\n \t\terr = i40e_aq_set_link_restart_an(&pf->hw, true, NULL);\n \t\tif (err)\n-\t\t\tdev_info(&pf->pdev->dev, \"link restart failed, aq_err=%d\\n\",\n-\t\t\t\t pf->hw.aq.asq_last_status);\n+\t\t\tdev_info(&pf->pdev->dev, \"link restart failed, err %s aq_err %s\\n\",\n+\t\t\t\t i40e_stat_str(&pf->hw, err),\n+\t\t\t\t i40e_aq_str(&pf->hw,\n+\t\t\t\t\t pf->hw.aq.asq_last_status));\n \t}\n \t/* The main driver is (mostly) up and happy. We need to set this state\n \t * before setting up the misc vector or we get a race and the vector\n@@ -10004,8 +10072,10 @@ static int i40e_probe(struct pci_dev *pdev, const struct pci_device_id *ent)\n \t/* get the requested speeds from the fw */\n \terr = i40e_aq_get_phy_capabilities(hw, false, false, &abilities, NULL);\n \tif (err)\n-\t\tdev_info(&pf->pdev->dev, \"get phy abilities failed, aq_err %d, advertised speed settings may not be correct\\n\",\n-\t\t\t err);\n+\t\tdev_info(&pf->pdev->dev,\n+\t\t\t \"get phy capabilities failed, err %s aq_err %s, advertised speed settings may not be correct\\n\",\n+\t\t\t i40e_stat_str(&pf->hw, err),\n+\t\t\t i40e_aq_str(&pf->hw, pf->hw.aq.asq_last_status));\n \tpf->hw.phy.link_info.requested_speeds = abilities.link_speed;\n \n \t/* print a string summarizing features */\ndiff --git a/drivers/net/ethernet/intel/i40e/i40e_prototype.h b/drivers/net/ethernet/intel/i40e/i40e_prototype.h\nindex 7b34f1e..d52a9f7 100644\n--- a/drivers/net/ethernet/intel/i40e/i40e_prototype.h\n+++ b/drivers/net/ethernet/intel/i40e/i40e_prototype.h\n@@ -58,6 +58,8 @@ void i40e_debug_aq(struct i40e_hw *hw, enum i40e_debug_mask mask,\n void i40e_idle_aq(struct i40e_hw *hw);\n bool i40e_check_asq_alive(struct i40e_hw *hw);\n i40e_status i40e_aq_queue_shutdown(struct i40e_hw *hw, bool unloading);\n+char *i40e_aq_str(struct i40e_hw *hw, enum i40e_admin_queue_err aq_err);\n+char *i40e_stat_str(struct i40e_hw *hw, i40e_status stat_err);\n \n u32 i40e_led_get(struct i40e_hw *hw);\n void i40e_led_set(struct i40e_hw *hw, u32 mode, bool blink);\ndiff --git a/drivers/net/ethernet/intel/i40e/i40e_type.h b/drivers/net/ethernet/intel/i40e/i40e_type.h\nindex 220371e..0cabf04 100644\n--- a/drivers/net/ethernet/intel/i40e/i40e_type.h\n+++ b/drivers/net/ethernet/intel/i40e/i40e_type.h\n@@ -497,6 +497,7 @@ struct i40e_hw {\n \n \t/* debug mask */\n \tu32 debug_mask;\n+\tchar err_str[16];\n };\n \n static inline bool i40e_is_vf(struct i40e_hw *hw)\ndiff --git a/drivers/net/ethernet/intel/i40evf/i40e_common.c b/drivers/net/ethernet/intel/i40evf/i40e_common.c\nindex 39fcb1d..56c7e75 100644\n--- a/drivers/net/ethernet/intel/i40evf/i40e_common.c\n+++ b/drivers/net/ethernet/intel/i40evf/i40e_common.c\n@@ -72,6 +72,212 @@ i40e_status i40e_set_mac_type(struct i40e_hw *hw)\n }\n \n /**\n+ * i40evf_aq_str - convert AQ err code to a string\n+ * @hw: pointer to the HW structure\n+ * @aq_err: the AQ error code to convert\n+ **/\n+char *i40evf_aq_str(struct i40e_hw *hw, enum i40e_admin_queue_err aq_err)\n+{\n+\tswitch (aq_err) {\n+\tcase I40E_AQ_RC_OK:\n+\t\treturn \"OK\";\n+\tcase I40E_AQ_RC_EPERM:\n+\t\treturn \"I40E_AQ_RC_EPERM\";\n+\tcase I40E_AQ_RC_ENOENT:\n+\t\treturn \"I40E_AQ_RC_ENOENT\";\n+\tcase I40E_AQ_RC_ESRCH:\n+\t\treturn \"I40E_AQ_RC_ESRCH\";\n+\tcase I40E_AQ_RC_EINTR:\n+\t\treturn \"I40E_AQ_RC_EINTR\";\n+\tcase I40E_AQ_RC_EIO:\n+\t\treturn \"I40E_AQ_RC_EIO\";\n+\tcase I40E_AQ_RC_ENXIO:\n+\t\treturn \"I40E_AQ_RC_ENXIO\";\n+\tcase I40E_AQ_RC_E2BIG:\n+\t\treturn \"I40E_AQ_RC_E2BIG\";\n+\tcase I40E_AQ_RC_EAGAIN:\n+\t\treturn \"I40E_AQ_RC_EAGAIN\";\n+\tcase I40E_AQ_RC_ENOMEM:\n+\t\treturn \"I40E_AQ_RC_ENOMEM\";\n+\tcase I40E_AQ_RC_EACCES:\n+\t\treturn \"I40E_AQ_RC_EACCES\";\n+\tcase I40E_AQ_RC_EFAULT:\n+\t\treturn \"I40E_AQ_RC_EFAULT\";\n+\tcase I40E_AQ_RC_EBUSY:\n+\t\treturn \"I40E_AQ_RC_EBUSY\";\n+\tcase I40E_AQ_RC_EEXIST:\n+\t\treturn \"I40E_AQ_RC_EEXIST\";\n+\tcase I40E_AQ_RC_EINVAL:\n+\t\treturn \"I40E_AQ_RC_EINVAL\";\n+\tcase I40E_AQ_RC_ENOTTY:\n+\t\treturn \"I40E_AQ_RC_ENOTTY\";\n+\tcase I40E_AQ_RC_ENOSPC:\n+\t\treturn \"I40E_AQ_RC_ENOSPC\";\n+\tcase I40E_AQ_RC_ENOSYS:\n+\t\treturn \"I40E_AQ_RC_ENOSYS\";\n+\tcase I40E_AQ_RC_ERANGE:\n+\t\treturn \"I40E_AQ_RC_ERANGE\";\n+\tcase I40E_AQ_RC_EFLUSHED:\n+\t\treturn \"I40E_AQ_RC_EFLUSHED\";\n+\tcase I40E_AQ_RC_BAD_ADDR:\n+\t\treturn \"I40E_AQ_RC_BAD_ADDR\";\n+\tcase I40E_AQ_RC_EMODE:\n+\t\treturn \"I40E_AQ_RC_EMODE\";\n+\tcase I40E_AQ_RC_EFBIG:\n+\t\treturn \"I40E_AQ_RC_EFBIG\";\n+\t}\n+\n+\tsnprintf(hw->err_str, sizeof(hw->err_str), \"%d\", aq_err);\n+\treturn hw->err_str;\n+}\n+\n+/**\n+ * i40evf_stat_str - convert status err code to a string\n+ * @hw: pointer to the HW structure\n+ * @stat_err: the status error code to convert\n+ **/\n+char *i40evf_stat_str(struct i40e_hw *hw, i40e_status stat_err)\n+{\n+\tswitch (stat_err) {\n+\tcase 0:\n+\t\treturn \"OK\";\n+\tcase I40E_ERR_NVM:\n+\t\treturn \"I40E_ERR_NVM\";\n+\tcase I40E_ERR_NVM_CHECKSUM:\n+\t\treturn \"I40E_ERR_NVM_CHECKSUM\";\n+\tcase I40E_ERR_PHY:\n+\t\treturn \"I40E_ERR_PHY\";\n+\tcase I40E_ERR_CONFIG:\n+\t\treturn \"I40E_ERR_CONFIG\";\n+\tcase I40E_ERR_PARAM:\n+\t\treturn \"I40E_ERR_PARAM\";\n+\tcase I40E_ERR_MAC_TYPE:\n+\t\treturn \"I40E_ERR_MAC_TYPE\";\n+\tcase I40E_ERR_UNKNOWN_PHY:\n+\t\treturn \"I40E_ERR_UNKNOWN_PHY\";\n+\tcase I40E_ERR_LINK_SETUP:\n+\t\treturn \"I40E_ERR_LINK_SETUP\";\n+\tcase I40E_ERR_ADAPTER_STOPPED:\n+\t\treturn \"I40E_ERR_ADAPTER_STOPPED\";\n+\tcase I40E_ERR_INVALID_MAC_ADDR:\n+\t\treturn \"I40E_ERR_INVALID_MAC_ADDR\";\n+\tcase I40E_ERR_DEVICE_NOT_SUPPORTED:\n+\t\treturn \"I40E_ERR_DEVICE_NOT_SUPPORTED\";\n+\tcase I40E_ERR_MASTER_REQUESTS_PENDING:\n+\t\treturn \"I40E_ERR_MASTER_REQUESTS_PENDING\";\n+\tcase I40E_ERR_INVALID_LINK_SETTINGS:\n+\t\treturn \"I40E_ERR_INVALID_LINK_SETTINGS\";\n+\tcase I40E_ERR_AUTONEG_NOT_COMPLETE:\n+\t\treturn \"I40E_ERR_AUTONEG_NOT_COMPLETE\";\n+\tcase I40E_ERR_RESET_FAILED:\n+\t\treturn \"I40E_ERR_RESET_FAILED\";\n+\tcase I40E_ERR_SWFW_SYNC:\n+\t\treturn \"I40E_ERR_SWFW_SYNC\";\n+\tcase I40E_ERR_NO_AVAILABLE_VSI:\n+\t\treturn \"I40E_ERR_NO_AVAILABLE_VSI\";\n+\tcase I40E_ERR_NO_MEMORY:\n+\t\treturn \"I40E_ERR_NO_MEMORY\";\n+\tcase I40E_ERR_BAD_PTR:\n+\t\treturn \"I40E_ERR_BAD_PTR\";\n+\tcase I40E_ERR_RING_FULL:\n+\t\treturn \"I40E_ERR_RING_FULL\";\n+\tcase I40E_ERR_INVALID_PD_ID:\n+\t\treturn \"I40E_ERR_INVALID_PD_ID\";\n+\tcase I40E_ERR_INVALID_QP_ID:\n+\t\treturn \"I40E_ERR_INVALID_QP_ID\";\n+\tcase I40E_ERR_INVALID_CQ_ID:\n+\t\treturn \"I40E_ERR_INVALID_CQ_ID\";\n+\tcase I40E_ERR_INVALID_CEQ_ID:\n+\t\treturn \"I40E_ERR_INVALID_CEQ_ID\";\n+\tcase I40E_ERR_INVALID_AEQ_ID:\n+\t\treturn \"I40E_ERR_INVALID_AEQ_ID\";\n+\tcase I40E_ERR_INVALID_SIZE:\n+\t\treturn \"I40E_ERR_INVALID_SIZE\";\n+\tcase I40E_ERR_INVALID_ARP_INDEX:\n+\t\treturn \"I40E_ERR_INVALID_ARP_INDEX\";\n+\tcase I40E_ERR_INVALID_FPM_FUNC_ID:\n+\t\treturn \"I40E_ERR_INVALID_FPM_FUNC_ID\";\n+\tcase I40E_ERR_QP_INVALID_MSG_SIZE:\n+\t\treturn \"I40E_ERR_QP_INVALID_MSG_SIZE\";\n+\tcase I40E_ERR_QP_TOOMANY_WRS_POSTED:\n+\t\treturn \"I40E_ERR_QP_TOOMANY_WRS_POSTED\";\n+\tcase I40E_ERR_INVALID_FRAG_COUNT:\n+\t\treturn \"I40E_ERR_INVALID_FRAG_COUNT\";\n+\tcase I40E_ERR_QUEUE_EMPTY:\n+\t\treturn \"I40E_ERR_QUEUE_EMPTY\";\n+\tcase I40E_ERR_INVALID_ALIGNMENT:\n+\t\treturn \"I40E_ERR_INVALID_ALIGNMENT\";\n+\tcase I40E_ERR_FLUSHED_QUEUE:\n+\t\treturn \"I40E_ERR_FLUSHED_QUEUE\";\n+\tcase I40E_ERR_INVALID_PUSH_PAGE_INDEX:\n+\t\treturn \"I40E_ERR_INVALID_PUSH_PAGE_INDEX\";\n+\tcase I40E_ERR_INVALID_IMM_DATA_SIZE:\n+\t\treturn \"I40E_ERR_INVALID_IMM_DATA_SIZE\";\n+\tcase I40E_ERR_TIMEOUT:\n+\t\treturn \"I40E_ERR_TIMEOUT\";\n+\tcase I40E_ERR_OPCODE_MISMATCH:\n+\t\treturn \"I40E_ERR_OPCODE_MISMATCH\";\n+\tcase I40E_ERR_CQP_COMPL_ERROR:\n+\t\treturn \"I40E_ERR_CQP_COMPL_ERROR\";\n+\tcase I40E_ERR_INVALID_VF_ID:\n+\t\treturn \"I40E_ERR_INVALID_VF_ID\";\n+\tcase I40E_ERR_INVALID_HMCFN_ID:\n+\t\treturn \"I40E_ERR_INVALID_HMCFN_ID\";\n+\tcase I40E_ERR_BACKING_PAGE_ERROR:\n+\t\treturn \"I40E_ERR_BACKING_PAGE_ERROR\";\n+\tcase I40E_ERR_NO_PBLCHUNKS_AVAILABLE:\n+\t\treturn \"I40E_ERR_NO_PBLCHUNKS_AVAILABLE\";\n+\tcase I40E_ERR_INVALID_PBLE_INDEX:\n+\t\treturn \"I40E_ERR_INVALID_PBLE_INDEX\";\n+\tcase I40E_ERR_INVALID_SD_INDEX:\n+\t\treturn \"I40E_ERR_INVALID_SD_INDEX\";\n+\tcase I40E_ERR_INVALID_PAGE_DESC_INDEX:\n+\t\treturn \"I40E_ERR_INVALID_PAGE_DESC_INDEX\";\n+\tcase I40E_ERR_INVALID_SD_TYPE:\n+\t\treturn \"I40E_ERR_INVALID_SD_TYPE\";\n+\tcase I40E_ERR_MEMCPY_FAILED:\n+\t\treturn \"I40E_ERR_MEMCPY_FAILED\";\n+\tcase I40E_ERR_INVALID_HMC_OBJ_INDEX:\n+\t\treturn \"I40E_ERR_INVALID_HMC_OBJ_INDEX\";\n+\tcase I40E_ERR_INVALID_HMC_OBJ_COUNT:\n+\t\treturn \"I40E_ERR_INVALID_HMC_OBJ_COUNT\";\n+\tcase I40E_ERR_INVALID_SRQ_ARM_LIMIT:\n+\t\treturn \"I40E_ERR_INVALID_SRQ_ARM_LIMIT\";\n+\tcase I40E_ERR_SRQ_ENABLED:\n+\t\treturn \"I40E_ERR_SRQ_ENABLED\";\n+\tcase I40E_ERR_ADMIN_QUEUE_ERROR:\n+\t\treturn \"I40E_ERR_ADMIN_QUEUE_ERROR\";\n+\tcase I40E_ERR_ADMIN_QUEUE_TIMEOUT:\n+\t\treturn \"I40E_ERR_ADMIN_QUEUE_TIMEOUT\";\n+\tcase I40E_ERR_BUF_TOO_SHORT:\n+\t\treturn \"I40E_ERR_BUF_TOO_SHORT\";\n+\tcase I40E_ERR_ADMIN_QUEUE_FULL:\n+\t\treturn \"I40E_ERR_ADMIN_QUEUE_FULL\";\n+\tcase I40E_ERR_ADMIN_QUEUE_NO_WORK:\n+\t\treturn \"I40E_ERR_ADMIN_QUEUE_NO_WORK\";\n+\tcase I40E_ERR_BAD_IWARP_CQE:\n+\t\treturn \"I40E_ERR_BAD_IWARP_CQE\";\n+\tcase I40E_ERR_NVM_BLANK_MODE:\n+\t\treturn \"I40E_ERR_NVM_BLANK_MODE\";\n+\tcase I40E_ERR_NOT_IMPLEMENTED:\n+\t\treturn \"I40E_ERR_NOT_IMPLEMENTED\";\n+\tcase I40E_ERR_PE_DOORBELL_NOT_ENABLED:\n+\t\treturn \"I40E_ERR_PE_DOORBELL_NOT_ENABLED\";\n+\tcase I40E_ERR_DIAG_TEST_FAILED:\n+\t\treturn \"I40E_ERR_DIAG_TEST_FAILED\";\n+\tcase I40E_ERR_NOT_READY:\n+\t\treturn \"I40E_ERR_NOT_READY\";\n+\tcase I40E_NOT_SUPPORTED:\n+\t\treturn \"I40E_NOT_SUPPORTED\";\n+\tcase I40E_ERR_FIRMWARE_API_VERSION:\n+\t\treturn \"I40E_ERR_FIRMWARE_API_VERSION\";\n+\t}\n+\n+\tsnprintf(hw->err_str, sizeof(hw->err_str), \"%d\", stat_err);\n+\treturn hw->err_str;\n+}\n+\n+/**\n * i40evf_debug_aq\n * @hw: debug mask related to admin queue\n * @mask: debug mask\ndiff --git a/drivers/net/ethernet/intel/i40evf/i40e_prototype.h b/drivers/net/ethernet/intel/i40evf/i40e_prototype.h\nindex 58e37a4..856eb9d 100644\n--- a/drivers/net/ethernet/intel/i40evf/i40e_prototype.h\n+++ b/drivers/net/ethernet/intel/i40evf/i40e_prototype.h\n@@ -60,6 +60,8 @@ void i40e_idle_aq(struct i40e_hw *hw);\n void i40evf_resume_aq(struct i40e_hw *hw);\n bool i40evf_check_asq_alive(struct i40e_hw *hw);\n i40e_status i40evf_aq_queue_shutdown(struct i40e_hw *hw, bool unloading);\n+char *i40evf_aq_str(struct i40e_hw *hw, enum i40e_admin_queue_err aq_err);\n+char *i40evf_stat_str(struct i40e_hw *hw, i40e_status stat_err);\n \n i40e_status i40e_set_mac_type(struct i40e_hw *hw);\n \ndiff --git a/drivers/net/ethernet/intel/i40evf/i40e_type.h b/drivers/net/ethernet/intel/i40evf/i40e_type.h\nindex 3969c65..cbf94bd 100644\n--- a/drivers/net/ethernet/intel/i40evf/i40e_type.h\n+++ b/drivers/net/ethernet/intel/i40evf/i40e_type.h\n@@ -491,6 +491,7 @@ struct i40e_hw {\n \n \t/* debug mask */\n \tu32 debug_mask;\n+\tchar err_str[16];\n };\n \n static inline bool i40e_is_vf(struct i40e_hw *hw)\ndiff --git a/drivers/net/ethernet/intel/i40evf/i40evf_virtchnl.c b/drivers/net/ethernet/intel/i40evf/i40evf_virtchnl.c\nindex 52c6959..becd300 100644\n--- a/drivers/net/ethernet/intel/i40evf/i40evf_virtchnl.c\n+++ b/drivers/net/ethernet/intel/i40evf/i40evf_virtchnl.c\n@@ -51,8 +51,9 @@ static int i40evf_send_pf_msg(struct i40evf_adapter *adapter,\n \n \terr = i40e_aq_send_msg_to_pf(hw, op, 0, msg, len, NULL);\n \tif (err)\n-\t\tdev_err(&adapter->pdev->dev, \"Unable to send opcode %d to PF, error %d, aq status %d\\n\",\n-\t\t\top, err, hw->aq.asq_last_status);\n+\t\tdev_err(&adapter->pdev->dev, \"Unable to send opcode %d to PF, err %s, aq_err %s\\n\",\n+\t\t\top, i40evf_stat_str(hw, err),\n+\t\t\ti40evf_aq_str(hw, hw->aq.asq_last_status));\n \treturn err;\n }\n \n@@ -727,8 +728,9 @@ void i40evf_virtchnl_completion(struct i40evf_adapter *adapter,\n \t\treturn;\n \t}\n \tif (v_retval) {\n-\t\tdev_err(&adapter->pdev->dev, \"%s: PF returned error %d to our request %d\\n\",\n-\t\t\t__func__, v_retval, v_opcode);\n+\t\tdev_err(&adapter->pdev->dev, \"%s: PF returned error %d (%s) to our request %d\\n\",\n+\t\t\t__func__, v_retval,\n+\t\t\ti40evf_stat_str(&adapter->hw, v_retval), v_opcode);\n \t}\n \tswitch (v_opcode) {\n \tcase I40E_VIRTCHNL_OP_GET_STATS: {\n", "prefixes": [ "net-next", "7/8" ] }