From patchwork Fri Nov 22 22:41:50 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Saeed Mahameed X-Patchwork-Id: 1199701 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@ozlabs.org Authentication-Results: ozlabs.org; spf=none (no SPF record) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=mellanox.com Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=Mellanox.com header.i=@Mellanox.com header.b="SMYdd5Bs"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 47KWdT4Kwwz9sPc for ; Sat, 23 Nov 2019 09:42:05 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727400AbfKVWmE (ORCPT ); Fri, 22 Nov 2019 17:42:04 -0500 Received: from mail-eopbgr150047.outbound.protection.outlook.com ([40.107.15.47]:57606 "EHLO EUR01-DB5-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1726880AbfKVWmD (ORCPT ); Fri, 22 Nov 2019 17:42:03 -0500 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=i0fNN9ROOTsOdvGpFdOBlwJg/ITzzjxiPEChGWo3VWlzzb0Coy7BY7pfPiLXD4wt4gnJSelgGPj3V2ezolyB0Hh+a4AI/ps2S7zu3fgvRGuI0EK5v1BcYTTaHUM7DTUsJovitWQIqHUhkHxQdqCAc3tdK7mkWeo7jiNH390EyHjtD9rTTBPiBV8u1FfEHYnS5WGuW8SZrhxM0tKP+vGpK4r5c+kX9OzJdHFZETyU1d679BZOMhr2FecZc2bi96fZYE2I8SzKef9j8m/le75EEH8t/NHJUI8pTrx6kxkXSwStuLSWS2n8v6VngzEHuNJj/exG0DstKjfCi5XSW9/NvA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=yp2cM5BNRPMVARXRJloCiNNGLSJPVkpzGSLG55XE2NI=; b=VfsnXxQv4G17Ps2wbl1ExIq1jeJ9LSppFJScnXWCm7nhA6l08ErjHHrJRBWXBI+VAQ8lXb+q/1PPCp+QRzIRG3zdi2RpSrILZC8OIs64tJMONJyulRro0zHPLbYxZg0R74BrmmsDbj2e5587PKoM96HQ13hyJByfb7x62fZCch4RHpzWxxtU/1Rkc+vwXfoaRxLzfu0m+Ji6UZ2wYhnlckzuTc9NuP+H9d3mYwDJTapVZ1dC/MTxCT5TRAAkYTSpIKYB886p73Nux8hj//gtYxqguo90u85vp/GwYDHYDnR+7p98LOJ0X4nUtObMG4pW0QAnolu+I4LQGtriHyjSrQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=mellanox.com; dmarc=pass action=none header.from=mellanox.com; dkim=pass header.d=mellanox.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Mellanox.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=yp2cM5BNRPMVARXRJloCiNNGLSJPVkpzGSLG55XE2NI=; b=SMYdd5BsdSu6IX3jk1zOXnYmjyECs0D/KC9C5yl8fLvsyy73cqI8p9FoNvUpkuyihoox8W75coJJBzgMu9lo+2eRe4iuDQoTPp0HYVC3UABvAdkTH4AzU7qVnvp5z9aCU3e+Xc859hb2BVf+lLX50SBvYbZO9P9v3PsBJ9kzOUs= Received: from VI1PR05MB5102.eurprd05.prod.outlook.com (20.177.51.151) by VI1PR05MB6718.eurprd05.prod.outlook.com (10.186.162.137) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2474.17; Fri, 22 Nov 2019 22:41:51 +0000 Received: from VI1PR05MB5102.eurprd05.prod.outlook.com ([fe80::d41a:9a5d:5482:497e]) by VI1PR05MB5102.eurprd05.prod.outlook.com ([fe80::d41a:9a5d:5482:497e%5]) with mapi id 15.20.2474.019; Fri, 22 Nov 2019 22:41:51 +0000 From: Saeed Mahameed To: "David S. Miller" CC: "netdev@vger.kernel.org" , Jiri Pirko , Saeed Mahameed , Ido Schimmel Subject: [PATCH V2 net-next 3/6] net/mlxfw: Improve FSM err message reporting and return codes Thread-Topic: [PATCH V2 net-next 3/6] net/mlxfw: Improve FSM err message reporting and return codes Thread-Index: AQHVoYYHtDjA+td0wka9J4buZSVBFw== Date: Fri, 22 Nov 2019 22:41:50 +0000 Message-ID: <20191122224126.24847-4-saeedm@mellanox.com> References: <20191122224126.24847-1-saeedm@mellanox.com> In-Reply-To: <20191122224126.24847-1-saeedm@mellanox.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-mailer: git-send-email 2.21.0 x-originating-ip: [209.116.155.178] x-clientproxiedby: BY5PR16CA0008.namprd16.prod.outlook.com (2603:10b6:a03:1a0::21) To VI1PR05MB5102.eurprd05.prod.outlook.com (2603:10a6:803:5e::23) authentication-results: spf=none (sender IP is ) smtp.mailfrom=saeedm@mellanox.com; x-ms-exchange-messagesentrepresentingtype: 1 x-ms-publictraffictype: Email x-ms-office365-filtering-ht: Tenant x-ms-office365-filtering-correlation-id: 8607f3cf-b872-436b-e16c-08d76f9d2a5e x-ms-traffictypediagnostic: VI1PR05MB6718:|VI1PR05MB6718: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:466; x-forefront-prvs: 02296943FF x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(4636009)(396003)(346002)(39860400002)(366004)(136003)(376002)(189003)(199004)(14454004)(66946007)(64756008)(66556008)(1076003)(66066001)(66476007)(4326008)(6486002)(66446008)(14444005)(8936002)(6512007)(6916009)(7736002)(6506007)(26005)(256004)(305945005)(386003)(186003)(3846002)(102836004)(6116002)(11346002)(2616005)(446003)(107886003)(2906002)(478600001)(99286004)(8676002)(25786009)(52116002)(81156014)(36756003)(81166006)(76176011)(316002)(6436002)(54906003)(86362001)(50226002)(5660300002)(15650500001)(71190400001)(71200400001); DIR:OUT; SFP:1101; SCL:1; SRVR:VI1PR05MB6718; H:VI1PR05MB5102.eurprd05.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A:1; received-spf: None (protection.outlook.com: mellanox.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: Y26UA4//bha3C15TzaEioQwou0gqj4XSq5OS5jj9Zmg405t66RY2LGf/4T8uf3+Vo5aJ1hgg75zitg58/vtvcjZzy7bgyjwpFybvc+6W8KZGF5bMwRGDlsCAN/27J9MsmSeeOjtEzZB+1gdlceqPbR7kEBiEQ6hiclTv8pN5BgRY5Kfc4puQg3ZaXV4Nz9w1z0dF7VdgtoytW4QaB+PQWRHUIG92A6o0dEae+b71mGCrYTRBh7fZPFIdAviJtiC+PWYuYpXDWieR3WYBfOl6unuexCTSkSK8fJ4urv+c73hhTR8G9zbGpl0vA7QFGGVRFZD4jWy8R+vBLkA/hHaxyfr2fdThnDT/09P+EIbL0YLIdwlXcyU0OC2l3PM9KGOCKrMRiN9PhnwjWxOqPXVEQ/2Eoq/Ze0XqZC6Ht3H7bdOa/2gs6Z52hu8rJe/shmQ8 MIME-Version: 1.0 X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-Network-Message-Id: 8607f3cf-b872-436b-e16c-08d76f9d2a5e X-MS-Exchange-CrossTenant-originalarrivaltime: 22 Nov 2019 22:41:50.9013 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: a652971c-7d2e-4d9b-a6a4-d149256f461b X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: 9/gAfFTlMUBfDFNvDrkWG+MPmmArm3SE4NeyV+VhKM133DoLX9E/W8wJOCdaigK21y1Nosh9rDxSxcXpbVhh9w== X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR05MB6718 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Report unique and standard error codes corresponding to the specific FW flash error and report more detailed error messages to netlink. Before: $ devlink dev flash pci/0000:05:00.0 file ... Error: mlxfw: Firmware flash failed. devlink answers: Invalid argument After: $ devlink dev flash pci/0000:05:00.0 file ... Error: mlxfw: Firmware flash failed: pending reset. devlink answers: Operation already in progress Signed-off-by: Saeed Mahameed Reviewed-by: Ido Schimmel Acked-by: Jiri Pirko --- .../net/ethernet/mellanox/mlxfw/mlxfw_fsm.c | 35 +++++++++++++++---- 1 file changed, 29 insertions(+), 6 deletions(-) diff --git a/drivers/net/ethernet/mellanox/mlxfw/mlxfw_fsm.c b/drivers/net/ethernet/mellanox/mlxfw/mlxfw_fsm.c index 663eac994a5c..803152ab6914 100644 --- a/drivers/net/ethernet/mellanox/mlxfw/mlxfw_fsm.c +++ b/drivers/net/ethernet/mellanox/mlxfw/mlxfw_fsm.c @@ -39,6 +39,32 @@ static const char * const mlxfw_fsm_state_err_str[] = { "unknown error" }; +static const int mlxfw_fsm_state_errno[] = { + [MLXFW_FSM_STATE_ERR_ERROR] = -EREMOTEIO, + [MLXFW_FSM_STATE_ERR_REJECTED_DIGEST_ERR] = -EBADMSG, + [MLXFW_FSM_STATE_ERR_REJECTED_NOT_APPLICABLE] = -ENOENT, + [MLXFW_FSM_STATE_ERR_REJECTED_UNKNOWN_KEY] = -ENOKEY, + [MLXFW_FSM_STATE_ERR_REJECTED_AUTH_FAILED] = -EACCES, + [MLXFW_FSM_STATE_ERR_REJECTED_UNSIGNED] = -EKEYREVOKED, + [MLXFW_FSM_STATE_ERR_REJECTED_KEY_NOT_APPLICABLE] = -EKEYREJECTED, + [MLXFW_FSM_STATE_ERR_REJECTED_BAD_FORMAT] = -ENOEXEC, + [MLXFW_FSM_STATE_ERR_BLOCKED_PENDING_RESET] = -EALREADY, + [MLXFW_FSM_STATE_ERR_MAX] = -EINVAL +}; + +static int mlxfw_fsm_state_err(struct netlink_ext_ack *extack, + enum mlxfw_fsm_state_err fsm_state_err) +{ +#define MLXFW_ERR_PRFX "Firmware flash failed: " + + fsm_state_err = min_t(enum mlxfw_fsm_state_err, fsm_state_err, + MLXFW_FSM_STATE_ERR_MAX); + pr_err(MLXFW_ERR_PRFX "%s\n", mlxfw_fsm_state_err_str[fsm_state_err]); + NL_SET_ERR_MSG_MOD(extack, MLXFW_ERR_PRFX "%s", + mlxfw_fsm_state_err_str[fsm_state_err]); + return mlxfw_fsm_state_errno[fsm_state_err]; +}; + static int mlxfw_fsm_state_wait(struct mlxfw_dev *mlxfw_dev, u32 fwhandle, enum mlxfw_fsm_state fsm_state, struct netlink_ext_ack *extack) @@ -55,12 +81,9 @@ static int mlxfw_fsm_state_wait(struct mlxfw_dev *mlxfw_dev, u32 fwhandle, if (err) return err; - if (fsm_state_err != MLXFW_FSM_STATE_ERR_OK) { - pr_err("Firmware flash failed: %s\n", - mlxfw_fsm_state_err_str[fsm_state_err]); - NL_SET_ERR_MSG_MOD(extack, "Firmware flash failed"); - return -EINVAL; - } + if (fsm_state_err != MLXFW_FSM_STATE_ERR_OK) + return mlxfw_fsm_state_err(extack, fsm_state_err); + if (curr_fsm_state != fsm_state) { if (--times == 0) { pr_err("Timeout reached on FSM state change");