From patchwork Fri Sep 17 14:40:37 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ido Schimmel X-Patchwork-Id: 12502325 X-Patchwork-Delegate: mkubecek+ethtool@suse.cz Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-16.7 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id BD820C433F5 for ; Fri, 17 Sep 2021 14:41:06 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id AA72B60F5B for ; Fri, 17 Sep 2021 14:41:06 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1343738AbhIQOm1 (ORCPT ); Fri, 17 Sep 2021 10:42:27 -0400 Received: from out5-smtp.messagingengine.com ([66.111.4.29]:55029 "EHLO out5-smtp.messagingengine.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1343695AbhIQOmY (ORCPT ); Fri, 17 Sep 2021 10:42:24 -0400 Received: from compute6.internal (compute6.nyi.internal [10.202.2.46]) by mailout.nyi.internal (Postfix) with ESMTP id CCF495C021E; Fri, 17 Sep 2021 10:41:01 -0400 (EDT) Received: from mailfrontend1 ([10.202.2.162]) by compute6.internal (MEProxy); Fri, 17 Sep 2021 10:41:01 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-transfer-encoding:date:from :in-reply-to:message-id:mime-version:references:subject:to :x-me-proxy:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s= fm3; bh=4pki6aSXrAcSkuV+lNxXgLLin8sdbB2exH8Az+G4kiQ=; b=iLlLHub8 L2Es/Kiy57KAC4+FdPF6Z/XExBwUzA3Hw5MLgv+GXHYj+dfHX+4Ld0o3K9L60g18 yZZe9Johr0b0qcc4/ZAR1EXM5ihfaZAhfXmw/+n33UdaaPLMJBU3yLn6532KWYnd WSUtBUOT6PTuhPaLsG5zcC7w3T/HSPSm1xLsiIsdyEJa7qGsdWP+BbhRkLMDZ+6h wOFkgXvKINxmKNxM0Zy5MZy1MAuM8P7bwXnFEd4q30YbK4Tb/WohwYG9XdgJKpeG pmlxcXg/B66Un0zgw+RLVMCHzLvGGTO3u2OkUnIt1IgV68KofVYxQA8Yq9MC0rNx LXLO99yJiT3gBQ== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvtddrudehiedgjeehucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucenucfjughrpefhvffufffkofgjfhgggfestdekre dtredttdenucfhrhhomhepkfguohcuufgthhhimhhmvghluceoihguohhstghhsehiugho shgthhdrohhrgheqnecuggftrfgrthhtvghrnhepudetieevffffveelkeeljeffkefhke ehgfdtffethfelvdejgffghefgveejkefhnecuvehluhhsthgvrhfuihiivgeptdenucfr rghrrghmpehmrghilhhfrhhomhepihguohhstghhsehiughoshgthhdrohhrgh X-ME-Proxy: Received: by mail.messagingengine.com (Postfix) with ESMTPA; Fri, 17 Sep 2021 10:40:59 -0400 (EDT) From: Ido Schimmel To: netdev@vger.kernel.org Cc: mkubecek@suse.cz, vadimp@nvidia.com, moshe@nvidia.com, popadrian1996@gmail.com, mlxsw@nvidia.com, Ido Schimmel Subject: [PATCH ethtool-next 1/7] cmis: Fix CLEI code parsing Date: Fri, 17 Sep 2021 17:40:37 +0300 Message-Id: <20210917144043.566049-2-idosch@idosch.org> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210917144043.566049-1-idosch@idosch.org> References: <20210917144043.566049-1-idosch@idosch.org> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org X-Patchwork-Delegate: mkubecek+ethtool@suse.cz From: Ido Schimmel In CMIS, unlike SFF-8636, there is no presence indication for the CLEI code (Common Language Equipment Identification) field. The field is always present, but might not be supported. In which case, "a value of all ASCII 20h (spaces) shall be entered". Therefore, remove the erroneous check which seems to be influenced from SFF-8636 and only print the string if it is supported and has a non-zero length. Signed-off-by: Ido Schimmel --- cmis.c | 8 +++++--- cmis.h | 3 +-- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/cmis.c b/cmis.c index 1a91e798e4b8..2a48c1a1d56a 100644 --- a/cmis.c +++ b/cmis.c @@ -307,6 +307,8 @@ static void cmis_show_link_len(const __u8 *id) */ static void cmis_show_vendor_info(const __u8 *id) { + const char *clei = (const char *)(id + CMIS_CLEI_START_OFFSET); + sff_show_ascii(id, CMIS_VENDOR_NAME_START_OFFSET, CMIS_VENDOR_NAME_END_OFFSET, "Vendor name"); cmis_show_oui(id); @@ -319,9 +321,9 @@ static void cmis_show_vendor_info(const __u8 *id) sff_show_ascii(id, CMIS_DATE_YEAR_OFFSET, CMIS_DATE_VENDOR_LOT_OFFSET + 1, "Date code"); - if (id[CMIS_CLEI_PRESENT_BYTE] & CMIS_CLEI_PRESENT_MASK) - sff_show_ascii(id, CMIS_CLEI_START_OFFSET, - CMIS_CLEI_END_OFFSET, "CLEI code"); + if (strlen(clei) && strcmp(clei, CMIS_CLEI_BLANK)) + sff_show_ascii(id, CMIS_CLEI_START_OFFSET, CMIS_CLEI_END_OFFSET, + "CLEI code"); } void qsfp_dd_show_all(const __u8 *id) diff --git a/cmis.h b/cmis.h index 78ee1495bc33..d365252baa48 100644 --- a/cmis.h +++ b/cmis.h @@ -34,10 +34,9 @@ #define CMIS_DATE_VENDOR_LOT_OFFSET 0xBC /* CLEI Code (Page 0) */ -#define CMIS_CLEI_PRESENT_BYTE 0x02 -#define CMIS_CLEI_PRESENT_MASK 0x20 #define CMIS_CLEI_START_OFFSET 0xBE #define CMIS_CLEI_END_OFFSET 0xC7 +#define CMIS_CLEI_BLANK " " /* Cable assembly length */ #define CMIS_CBL_ASM_LEN_OFFSET 0xCA