From patchwork Wed Nov 2 14:29:10 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Arthur Simchaev X-Patchwork-Id: 14276 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:6687:0:0:0:0:0 with SMTP id l7csp3668505wru; Wed, 2 Nov 2022 07:59:26 -0700 (PDT) X-Google-Smtp-Source: AMsMyM46D3lFUbfa/ehrMpyf3HCT2LMeNjP//Z9rn+iuhcgMG2didHHOKBbfkpv08BxQhtd2Nkk7 X-Received: by 2002:a05:6a00:1489:b0:56d:642b:585f with SMTP id v9-20020a056a00148900b0056d642b585fmr17193426pfu.31.1667401166046; Wed, 02 Nov 2022 07:59:26 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1667401166; cv=none; d=google.com; s=arc-20160816; b=phMrzdUVT6s3O4tgMN+qofLcXMIdnzdBLRiih1ORNdMovNjFRu+2fdWbouUg6jSwRM YmLhoSjxHyw0bJsnKW/2OEXHaaanexrlDBE82YCtmrcB6gGn4gfR2qoqrsLCORTA1PF2 5P5QkBtu0s6YoidO86+Soba36EweaLHU+MfdnnP6nAroHTD8n4oB1uXHdoxk1ABugBL0 IYHWachkaHp2z0G2vlrWeRrsK8C7tf/eD4vJiap0Sw3fEMw5D+vYhcr52UVKGUJ51Dn1 DEHstdogmf08V5S7+Vq/6RzvaAhMshdq/VboUnJtL8Hv0VRG4EiB11cuViKL8FqN8zy0 hGHQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:references:in-reply-to:message-id:date:subject :cc:to:from:wdcironportexception:ironport-sdr:ironport-sdr :dkim-signature; bh=bed8Z82A4y6XV7zJVlTDUts/7tA++y9FLUTPiDtxgWc=; b=wAO6lpVse76M9dBtpPJrknz7+NB+kGZA8J28FX0MJiOkX6Fr4vR815Gf1j1zoE0mwA bVdozjK4MsxQJOHq1hLjEw8fBPoavMo7+Mo9WsKEGiEMUUpftxRAQZbCzJielVq0arYd 9etnThMaUEogMljLonPECwZIUmr25xQj/s6NqadeG5pMR/9PmyptExgwXsLms8DiDdOJ UOXkCIOvmTcNw9pdwne6VNR/XMz+MM/iH7ApJRbcWfCrlDtysrKpxQvLZOWonFg3nl5p 3EaPhpWAjOoq5ob4qsUYtxJ3MuSC9kLIr+71hZpt5Do78KVKJrHtFzh0mYQGPdcpCWue +l0A== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@wdc.com header.s=dkim.wdc.com header.b=JY+jgjp1; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=wdc.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id q17-20020aa79831000000b005627d896458si13845436pfl.142.2022.11.02.07.59.12; Wed, 02 Nov 2022 07:59:26 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=fail header.i=@wdc.com header.s=dkim.wdc.com header.b=JY+jgjp1; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=wdc.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231716AbiKBOaT (ORCPT + 99 others); Wed, 2 Nov 2022 10:30:19 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:32790 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231693AbiKBO36 (ORCPT ); Wed, 2 Nov 2022 10:29:58 -0400 Received: from esa5.hgst.iphmx.com (esa5.hgst.iphmx.com [216.71.153.144]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 8C5222B24E; Wed, 2 Nov 2022 07:29:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=wdc.com; i=@wdc.com; q=dns/txt; s=dkim.wdc.com; t=1667399391; x=1698935391; h=from:to:cc:subject:date:message-id:in-reply-to: references; bh=Oe6SAgVHvhyllaVSMJMPlFVIjI8mku2kauEtvEtytYM=; b=JY+jgjp1eDgXySdR+NEtQEcZdI38311xjdfpXDnS2SsXwVFi/ynbj3Mc IcStlEDiarjFkNtdO6r+E/gRnHBOxfqfUQ+FbUhdBiTxgWD8J3xWHVpIA C5e/SssEkMlUCmT97SrczeWnRA4C9O6vzvI3QPytTVgIv7xku9p1AmpEA sdvpYX576rtxlQU6pUgRChXoEwSmYPfl9ZJbbqROmxDHjEJXHrClr6I8X Wnx4qm4Ir2hTXMAjCvKAK5MjbXk14ze6KitJcdSz25pwFhAuN4Bbwale0 /e9f1SYe8aIUtjRz45rjjjaoqGvhWhj/XUakDepgziL/ixKUz64k8hy/0 w==; X-IronPort-AV: E=Sophos;i="5.95,234,1661788800"; d="scan'208";a="215319619" Received: from uls-op-cesaip02.wdc.com (HELO uls-op-cesaep02.wdc.com) ([199.255.45.15]) by ob1.hgst.iphmx.com with ESMTP; 02 Nov 2022 22:29:48 +0800 IronPort-SDR: rWVbES49wnoj/Km/Vsh+m8HwQxY1yXMJhipip9DZZ4DCZxIWkAlXCNI8WAeXkjnDEyel+THQS3 kNMvu2QB0qEzkbwcB1ZK1V/S7kWQliP3W0r2rAbla2OgtUitZEXWhUtMMaOPJ3/AwHcazqfRk9 88hv81of8FpsiJbzzhchVVqn4D7vsijbKhzh3UxCfkk3Bjac5WUDatJ/PHCT4irUCQBVH2EuY7 ZrMh2aoJ+54kvi/EWan6AR/sQy7CwIi+gSVumEC+cEKR6vBnujFkyyg7Ve2Hd8vnnSIOKIPa/6 kbg= Received: from uls-op-cesaip01.wdc.com ([10.248.3.36]) by uls-op-cesaep02.wdc.com with ESMTP/TLS/ECDHE-RSA-AES128-GCM-SHA256; 02 Nov 2022 06:43:16 -0700 IronPort-SDR: mca/hKanditUY4CM+uh4QISKKESsyjvPwZK97Dddo8FbrDPZQcYGL0xa9FyoHoZOWBzTI2xg6z 4qzht8/P3MU98j/dYFA98cRadD26Hd1zOZjK5ERQuKopY2w4MUifEF9DMdb8nWaJ7yDQp7kS90 1Qd7qOigearIxKG52RePeuFtjAwQ/4+b9P5SyWbvLg6IRNJoGrBmrIncHgkHbcb6Ilu/oCdHmb mJT/Dd0Pw17BEkHhFd+6zGJ0FDIeGgZEc1Ijhu8sED+lo8gJSG1JvN6wigr7JStnGZn5tGcc0b AIQ= WDCIronportException: Internal Received: from ilb001078.ad.shared (HELO ilb001078.sdcorp.global.sandisk.com) ([10.45.31.219]) by uls-op-cesaip01.wdc.com with ESMTP; 02 Nov 2022 07:29:46 -0700 From: Arthur Simchaev To: martin.petersen@oracle.com Cc: beanhuo@micron.com, linux-scsi@vger.kernel.org, linux-kernel@vger.kernel.org, Arthur Simchaev Subject: [PATCH v2 1/4] ufs: core: Remove redundant wb check Date: Wed, 2 Nov 2022 16:29:10 +0200 Message-Id: <1667399353-10228-2-git-send-email-Arthur.Simchaev@wdc.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1667399353-10228-1-git-send-email-Arthur.Simchaev@wdc.com> References: <1667399353-10228-1-git-send-email-Arthur.Simchaev@wdc.com> X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED,SPF_HELO_PASS, SPF_NONE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1748396845109939218?= X-GMAIL-MSGID: =?utf-8?q?1748396845109939218?= We used to use the extended-feature field in the device descriptor, as an indication that the device supports ufs2.2 or later. Remove that as this check is specifically done few lines above. Signed-off-by: Arthur Simchaev --- drivers/ufs/core/ufshcd.c | 4 ---- 1 file changed, 4 deletions(-) diff --git a/drivers/ufs/core/ufshcd.c b/drivers/ufs/core/ufshcd.c index ee73d70..de4e7e7 100644 --- a/drivers/ufs/core/ufshcd.c +++ b/drivers/ufs/core/ufshcd.c @@ -7574,10 +7574,6 @@ static void ufshcd_wb_probe(struct ufs_hba *hba, const u8 *desc_buf) (hba->dev_quirks & UFS_DEVICE_QUIRK_SUPPORT_EXTENDED_FEATURES))) goto wb_disabled; - if (hba->desc_size[QUERY_DESC_IDN_DEVICE] < - DEVICE_DESC_PARAM_EXT_UFS_FEATURE_SUP + 4) - goto wb_disabled; - ext_ufs_feature = get_unaligned_be32(desc_buf + DEVICE_DESC_PARAM_EXT_UFS_FEATURE_SUP); From patchwork Wed Nov 2 14:29:11 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Arthur Simchaev X-Patchwork-Id: 14275 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:6687:0:0:0:0:0 with SMTP id l7csp3666115wru; Wed, 2 Nov 2022 07:53:04 -0700 (PDT) X-Google-Smtp-Source: AMsMyM4QjsoIsEz84zqceNPp7xaCZuza0qDnBQ9WLcEX+IuAHs1IpEF3FLGqDWwMoD4FGHCbEP7M X-Received: by 2002:a17:902:a611:b0:186:9ba2:148b with SMTP id u17-20020a170902a61100b001869ba2148bmr25231706plq.164.1667400784042; Wed, 02 Nov 2022 07:53:04 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1667400784; cv=none; d=google.com; s=arc-20160816; b=d23Eyxfq+gmDYTyWhAgsTF32hlkHEzskRBiHvyxYQBL6jn+D9n+mSNoyvV1GbQ9kz8 Bzzv3GIDIOylJspmOkW70KEMQjPveyBHSdlPqqZg/Y4k7NKiaZYWEmZvcgpck//g5ACQ +ACX0uATtAJQxgK9qqY/UduzNFGyqYGnaC6DAcgsda7u+3xogewWwg5j6d6q2LFj7WLq Xd26R9GtISBFF6I5NgUu6qqP41o0aBtnsqMxRlAw/biCx8UqQv62KzZhMm6OSW+rl5u0 sE0pZaEIJyxOr3G5DF4x1nRDw518VeU/igxjCt+eWuh5d2iR+wjBNIbLvdGpYpFNOFTo LDAw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:references:in-reply-to:message-id:date:subject :cc:to:from:wdcironportexception:ironport-sdr:ironport-sdr :dkim-signature; bh=q1sExxT+dr7RTJ78lA/sCjwkwhdw5WvPW+bseZdBBNI=; b=rnvp3JtVuVznQnvGi1NJzBzZMK6pwjs1af1aDCnhwh5HeCQyEFmMVgRUczxqE/894z dkuVQwztE9MXZaJoV7cyl3h/O606wuA9vmYekdmyvsspqxFQuMD8MG2SWQXf+PeO8AKX CDRX1zHApVFVco2aHJdGVOLS7Mlz/RJ/M4qF+Z/TKs/n/qE5q5EuRIeNeCVr3wSCd3Hv xRTgDGpBu6qAnQB80a5uiV1chAbkrTAxjUBtN/Gtxj1HpSdtx8xycstl9x9qo/SYrJH+ meEIKFpP0d5SYxL+j4LKmVNU2+GQeTgi7TNZHaMDAqH+iqCyLVk4UcRIUVvoGdE9pHVA NQaQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@wdc.com header.s=dkim.wdc.com header.b=Gfdfsb8N; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=wdc.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id k13-20020a056a00134d00b00557bb4f6977si17908281pfu.106.2022.11.02.07.52.43; Wed, 02 Nov 2022 07:53:04 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=fail header.i=@wdc.com header.s=dkim.wdc.com header.b=Gfdfsb8N; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=wdc.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230424AbiKBOae (ORCPT + 99 others); Wed, 2 Nov 2022 10:30:34 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:60504 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231689AbiKBO36 (ORCPT ); Wed, 2 Nov 2022 10:29:58 -0400 Received: from esa5.hgst.iphmx.com (esa5.hgst.iphmx.com [216.71.153.144]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 8D18D2B25C; Wed, 2 Nov 2022 07:29:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=wdc.com; i=@wdc.com; q=dns/txt; s=dkim.wdc.com; t=1667399391; x=1698935391; h=from:to:cc:subject:date:message-id:in-reply-to: references; bh=bRKQ9sSqIIZS0Qkc9JECvRRYfZDd/bzOP/3pGDU3Yus=; b=Gfdfsb8NDcvYBcYN8V+hFf12XW4eTyu8OcA+ZfuMySPdhrHxRw3+GoPQ C3PDoLu3LOQDHqFw5fbhFFQsrvILDObtgJV67/2zf95EUFE4m3dQXUPgi j3AVqMt4Js+T72RogFtZKWkES0JCLcAR/kiBiHiN2BjWiI3bbm9FCEcwc QJgDk+SkhanWw06XXTsSLCv0HRhj5gKWCAVgzleCel+ZWlb3Dua3Sj4Je VJ0XQsVeHwaJnGxazqIu+JzpRzyM2WwVeSlnRqXIt6527qqgWv15AvgxO 5/0k/vGMwowa8iFkiBusis4iVG6BTJOcvpZ4KfdlAw9LFaiIWudt0qxLN Q==; X-IronPort-AV: E=Sophos;i="5.95,234,1661788800"; d="scan'208";a="215319620" Received: from uls-op-cesaip02.wdc.com (HELO uls-op-cesaep02.wdc.com) ([199.255.45.15]) by ob1.hgst.iphmx.com with ESMTP; 02 Nov 2022 22:29:51 +0800 IronPort-SDR: bhfH8S2Qs1Tzmcc2DqEUoLgXBC76m0geG80oiwbXYu8eBaepwWwNJnJ9eZr1wQaZ9G5zJ38bsC HG0yJO/IYNxybS+opsEm6N0n4dQv9ICcXUOMrVNWGCG+WkgdazUc6xvulJQqRBZMlupKZbTkgE s1ojuYsK/s9y7/94NJIWboVjh+/TZ/VClKwtjKCIGSTVTKdg5r1RCb7N3X7fAVLrOozGkzAQ8B 9eUcnZsrDfC+Hgx00415Ty1firGWPXrDXilWs14YdTb5nMe7oEAUey5PmAEDh0N3YrJ4P/Z6ol KNg= Received: from uls-op-cesaip01.wdc.com ([10.248.3.36]) by uls-op-cesaep02.wdc.com with ESMTP/TLS/ECDHE-RSA-AES128-GCM-SHA256; 02 Nov 2022 06:43:19 -0700 IronPort-SDR: eta2s5xDpUnGetZKtHb0VGq1XorldfADSVDfCWFwnDq85tr5u8YsNYYF7wxW0gFcH9litXpiNe HbJBTGrFFYCOK9b3KYm9ZjTAExlpFrihO3eD8OZ/MQcR+HNHUbQO+UiX5d0Y+Q4LsuKRnxpM1N up/OFSRziGIHdWgw38LhqMvbGpm7NIeBwv9+LjUHJb3zo1OuTXEKQArunG7pdUfR+201moo4Cw YJ08nPOIli+KOpJlj1eK6aelrEjZaNXCzN7EYtRjQrjwRrWannflOHdDSggNfioULbqbyHKAca L6I= WDCIronportException: Internal Received: from ilb001078.ad.shared (HELO ilb001078.sdcorp.global.sandisk.com) ([10.45.31.219]) by uls-op-cesaip01.wdc.com with ESMTP; 02 Nov 2022 07:29:49 -0700 From: Arthur Simchaev To: martin.petersen@oracle.com Cc: beanhuo@micron.com, linux-scsi@vger.kernel.org, linux-kernel@vger.kernel.org, Arthur Simchaev Subject: [PATCH v2 2/4] ufs: core: Remove redundant desc_size variable from hba Date: Wed, 2 Nov 2022 16:29:11 +0200 Message-Id: <1667399353-10228-3-git-send-email-Arthur.Simchaev@wdc.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1667399353-10228-1-git-send-email-Arthur.Simchaev@wdc.com> References: <1667399353-10228-1-git-send-email-Arthur.Simchaev@wdc.com> X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED,SPF_HELO_PASS, SPF_NONE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1748396444539670328?= X-GMAIL-MSGID: =?utf-8?q?1748396444539670328?= Always read the descriptor with QUERY_DESC_MAX_SIZE. According to the spec, the device returns the actual size Signed-off-by: Arthur Simchaev --- drivers/ufs/core/ufshcd.c | 51 ++++++++++++----------------------------------- include/ufs/ufshcd.h | 1 - 2 files changed, 13 insertions(+), 39 deletions(-) diff --git a/drivers/ufs/core/ufshcd.c b/drivers/ufs/core/ufshcd.c index de4e7e7..aa46292 100644 --- a/drivers/ufs/core/ufshcd.c +++ b/drivers/ufs/core/ufshcd.c @@ -3377,28 +3377,11 @@ int ufshcd_query_descriptor_retry(struct ufs_hba *hba, void ufshcd_map_desc_id_to_length(struct ufs_hba *hba, enum desc_idn desc_id, int *desc_len) { - if (desc_id >= QUERY_DESC_IDN_MAX || desc_id == QUERY_DESC_IDN_RFU_0 || - desc_id == QUERY_DESC_IDN_RFU_1) - *desc_len = 0; - else - *desc_len = hba->desc_size[desc_id]; + /*Always returns QUERY_DESC_MAX_SIZE*/ + *desc_len = QUERY_DESC_MAX_SIZE; } EXPORT_SYMBOL(ufshcd_map_desc_id_to_length); -static void ufshcd_update_desc_length(struct ufs_hba *hba, - enum desc_idn desc_id, int desc_index, - unsigned char desc_len) -{ - if (hba->desc_size[desc_id] == QUERY_DESC_MAX_SIZE && - desc_id != QUERY_DESC_IDN_STRING && desc_index != UFS_RPMB_UNIT) - /* For UFS 3.1, the normal unit descriptor is 10 bytes larger - * than the RPMB unit, however, both descriptors share the same - * desc_idn, to cover both unit descriptors with one length, we - * choose the normal unit descriptor length by desc_index. - */ - hba->desc_size[desc_id] = desc_len; -} - /** * ufshcd_read_desc_param - read the specified descriptor parameter * @hba: Pointer to adapter instance @@ -3470,7 +3453,6 @@ int ufshcd_read_desc_param(struct ufs_hba *hba, /* Update descriptor length */ buff_len = desc_buf[QUERY_DESC_LENGTH_OFFSET]; - ufshcd_update_desc_length(hba, desc_id, desc_index, buff_len); if (is_kmalloc) { /* Make sure we don't copy more data than available */ @@ -4905,7 +4887,7 @@ static void ufshcd_setup_links(struct ufs_hba *hba, struct scsi_device *sdev) */ static void ufshcd_lu_init(struct ufs_hba *hba, struct scsi_device *sdev) { - int len = hba->desc_size[QUERY_DESC_IDN_UNIT]; + int len = QUERY_DESC_MAX_SIZE; u8 lun = ufshcd_scsi_to_upiu_lun(sdev->lun); u8 lun_qdepth = hba->nutrs; u8 *desc_buf; @@ -7446,25 +7428,24 @@ static u32 ufshcd_find_max_sup_active_icc_level(struct ufs_hba *hba, static void ufshcd_set_active_icc_lvl(struct ufs_hba *hba) { int ret; - int buff_len = hba->desc_size[QUERY_DESC_IDN_POWER]; u8 *desc_buf; u32 icc_level; - desc_buf = kmalloc(buff_len, GFP_KERNEL); + desc_buf = kmalloc(QUERY_DESC_MAX_SIZE, GFP_KERNEL); if (!desc_buf) return; ret = ufshcd_read_desc_param(hba, QUERY_DESC_IDN_POWER, 0, 0, - desc_buf, buff_len); + desc_buf, QUERY_DESC_MAX_SIZE); if (ret) { dev_err(hba->dev, - "%s: Failed reading power descriptor.len = %d ret = %d", - __func__, buff_len, ret); + "%s: Failed reading power descriptor ret = %d", + __func__, ret); goto out; } icc_level = ufshcd_find_max_sup_active_icc_level(hba, desc_buf, - buff_len); + QUERY_DESC_MAX_SIZE); dev_dbg(hba->dev, "%s: setting icc_level 0x%x", __func__, icc_level); ret = ufshcd_query_attr_retry(hba, UPIU_QUERY_OPCODE_WRITE_ATTR, @@ -7688,7 +7669,7 @@ static int ufs_get_device_desc(struct ufs_hba *hba) } err = ufshcd_read_desc_param(hba, QUERY_DESC_IDN_DEVICE, 0, 0, desc_buf, - hba->desc_size[QUERY_DESC_IDN_DEVICE]); + QUERY_DESC_MAX_SIZE); if (err) { dev_err(hba->dev, "%s: Failed reading Device Desc. err = %d\n", __func__, err); @@ -7935,18 +7916,16 @@ static void ufshcd_clear_dbg_ufs_stats(struct ufs_hba *hba) static int ufshcd_device_geo_params_init(struct ufs_hba *hba) { int err; - size_t buff_len; u8 *desc_buf; - buff_len = hba->desc_size[QUERY_DESC_IDN_GEOMETRY]; - desc_buf = kmalloc(buff_len, GFP_KERNEL); + desc_buf = kmalloc(QUERY_DESC_MAX_SIZE, GFP_KERNEL); if (!desc_buf) { err = -ENOMEM; goto out; } err = ufshcd_read_desc_param(hba, QUERY_DESC_IDN_GEOMETRY, 0, 0, - desc_buf, buff_len); + desc_buf, QUERY_DESC_MAX_SIZE); if (err) { dev_err(hba->dev, "%s: Failed reading Geometry Desc. err = %d\n", __func__, err); @@ -7958,7 +7937,7 @@ static int ufshcd_device_geo_params_init(struct ufs_hba *hba) else if (desc_buf[GEOMETRY_DESC_PARAM_MAX_NUM_LUN] == 0) hba->dev_info.max_lu_supported = 8; - if (hba->desc_size[QUERY_DESC_IDN_GEOMETRY] >= + if (desc_buf[QUERY_DESC_LENGTH_OFFSET] >= GEOMETRY_DESC_PARAM_HPB_MAX_ACTIVE_REGS) ufshpb_get_geo_info(hba, desc_buf); @@ -8043,11 +8022,7 @@ static int ufshcd_set_dev_ref_clk(struct ufs_hba *hba) static int ufshcd_device_params_init(struct ufs_hba *hba) { bool flag; - int ret, i; - - /* Init device descriptor sizes */ - for (i = 0; i < QUERY_DESC_IDN_MAX; i++) - hba->desc_size[i] = QUERY_DESC_MAX_SIZE; + int ret; /* Init UFS geometry descriptor related parameters */ ret = ufshcd_device_geo_params_init(hba); diff --git a/include/ufs/ufshcd.h b/include/ufs/ufshcd.h index 96538eb..c3a0875 100644 --- a/include/ufs/ufshcd.h +++ b/include/ufs/ufshcd.h @@ -952,7 +952,6 @@ struct ufs_hba { bool is_urgent_bkops_lvl_checked; struct rw_semaphore clk_scaling_lock; - unsigned char desc_size[QUERY_DESC_IDN_MAX]; atomic_t scsi_block_reqs_cnt; struct device bsg_dev; From patchwork Wed Nov 2 14:29:12 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Arthur Simchaev X-Patchwork-Id: 14285 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:6687:0:0:0:0:0 with SMTP id l7csp3671569wru; Wed, 2 Nov 2022 08:04:25 -0700 (PDT) X-Google-Smtp-Source: AMsMyM69N4fzS83/m/ycXxb8dSCNrbJlqOfv/YFucfhzr/yocFj7+HG6Zzg4FWwCxUPvJftjYfqC X-Received: by 2002:a17:90a:680d:b0:213:d200:e992 with SMTP id p13-20020a17090a680d00b00213d200e992mr18907501pjj.220.1667401465317; Wed, 02 Nov 2022 08:04:25 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1667401465; cv=none; d=google.com; s=arc-20160816; b=w/IovRJHT6RrqroxkmLzzkaE0C2rVPifWj6chsOR0ej5tgQm9CX4WBWFNzZSNMJVUF xkB0r7se8mZgyf004jv41kJeEte8LSVmC2yUKLcbDDJj+/sgc6iSiZW95W0UPUoJq8bU 3T5DpAoJdSkbhKEj0La9yrOgip3VK02dx09a89qpSC6qoAHQpKA0uWogji+X44nWXdmU lDv0QkuPN/eNtTYq5FF8ZmXeIjODQ4ZgMHZqA3tQQWTzW5VoFtAi9r8E+7kWqMgkk9N4 RrwhOOtpuMj6V+IVFHNsOugVLvDxJ4QqSrRPkidoFMg6KqkVFbrXgV7VY3xjGr8JO7xX plgQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:references:in-reply-to:message-id:date:subject :cc:to:from:wdcironportexception:ironport-sdr:ironport-sdr :dkim-signature; bh=xtFGr2gIICRFF+Vnmk4qArdc3EE/8dVWcaLTbEt+VVI=; b=psk7eT0E6sPoBGRHm8kGj47jaGabdcjqh09nFXoF8BfXTJwl8WDNv/SpRt0vqO1Fcz mKBV9q/kBjgyMKLMm0TlL8XPTLXXake5omQYIlriDzYNIlbwFrPDZ3MNi7PFKVIpmnoN FkGfGIrQmxq3MdivcFadWDipuyiTnxJsw4j99G0ILozS2YYAwtKVnWQyl3bn2QJ0cZzX Qz0nhAFtbb/lYvr5j2MsJpOZhml4LtNf02xJf4iv8N/GEJbG+U+JZsLBRytaRPp/GMiN 6ZX26j7sUVX+rHXWLrNp8fdoZuTZ604BIGN3ls9BLx3KEbQ1FvVmJit8FyRgnwrHaJcQ HT4Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@wdc.com header.s=dkim.wdc.com header.b="Fz3D/rvE"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=wdc.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id me14-20020a17090b17ce00b0020d3a22af84si2911710pjb.186.2022.11.02.08.03.58; Wed, 02 Nov 2022 08:04:25 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=fail header.i=@wdc.com header.s=dkim.wdc.com header.b="Fz3D/rvE"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=wdc.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231516AbiKBOai (ORCPT + 99 others); Wed, 2 Nov 2022 10:30:38 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:32802 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231698AbiKBO36 (ORCPT ); Wed, 2 Nov 2022 10:29:58 -0400 Received: from esa5.hgst.iphmx.com (esa5.hgst.iphmx.com [216.71.153.144]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 78E332B25E; Wed, 2 Nov 2022 07:29:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=wdc.com; i=@wdc.com; q=dns/txt; s=dkim.wdc.com; t=1667399394; x=1698935394; h=from:to:cc:subject:date:message-id:in-reply-to: references; bh=tcPZBpWAoPb3fJeuZ0FofoSwD+Q2agXunSV1QbOjiq0=; b=Fz3D/rvEUtrD4zkALuBuh9L1BgHhZT7w7JycKhHbJxGjMNbcptIhWpSl lvLkyEnNEP0xHkSFmL1wT+kGSutmBL3If9Bxv4DwI8eL/qvhOiDL0Sxni u5dKMwxVIzo1fe8TgaYr28p6LUFpLlYagpZxIL06Jb38QylQuZqiU4fbA lI9T87c+uFUgqZd0h0V2WwHHunguK2pTBn13HC4QZipPQOh8N7fT5B8AB +zJkUXJhaBcwPMDw7SsrXulrTSAXdNMrMZcYcDaahPjrZz3HR9BxmcMCj 47+E956d33k9TsM4MzCQioLMRXBQRCLRZXjFOltAFNq8HAq54X6rORHqa A==; X-IronPort-AV: E=Sophos;i="5.95,234,1661788800"; d="scan'208";a="215319624" Received: from uls-op-cesaip02.wdc.com (HELO uls-op-cesaep02.wdc.com) ([199.255.45.15]) by ob1.hgst.iphmx.com with ESMTP; 02 Nov 2022 22:29:53 +0800 IronPort-SDR: 2+7O5UByoXFstokGK6KcAGxlxxv0DbAK93NuHLbEoKA0ucL9SDcdKbNq8TujzrrvfQsxx/rXmq M3caF7i/vPtdlQLs/TBRMv8VzwwAovH8rgGxcNdPzaKO3RswmcWUZuB8wUEeCG0UaQ7Qn6JbE8 hSJDwbHNGJWK5iMbGfQ+nRmt3mYgKX6nZAb/sKcv1hTBL4CQHIDdkLcZvCxVtIBpiRhKNzP5NO t3FnrvDRnGvdjSfCdLiatVvT4XDmLBnA2plD5gvGf4GYuLfsiX6VJmRk/JU3PUeOhJUzZ4edqU KOQ= Received: from uls-op-cesaip01.wdc.com ([10.248.3.36]) by uls-op-cesaep02.wdc.com with ESMTP/TLS/ECDHE-RSA-AES128-GCM-SHA256; 02 Nov 2022 06:43:22 -0700 IronPort-SDR: iqX87oE/bpon0BBxzhrydNldnGCHDFpiqvkC+OmZ3yPKLz5yCxyxf/y9QlYJDvKsGccDXVoRIS 1zDDyriyyrfuDiieLQvmwfB1p8k9QCQgo140U5SY9pIf96A4R0Y/PeZjy0soBNmonaGGXmoQk0 c6t0I0fjOkIRPynWOYAr3S8pwPTCKtFGv9lFegPJP3DFjwMX/xLMWd9KWIz+j17wGYVo3/gXSh a/r4qubTacHgvfWnuOPm5pc1fswghHl93UnL4ACiChZhu4rknoi/97YF9xD5Sv7QVHOR5kGgo9 9tg= WDCIronportException: Internal Received: from ilb001078.ad.shared (HELO ilb001078.sdcorp.global.sandisk.com) ([10.45.31.219]) by uls-op-cesaip01.wdc.com with ESMTP; 02 Nov 2022 07:29:52 -0700 From: Arthur Simchaev To: martin.petersen@oracle.com Cc: beanhuo@micron.com, linux-scsi@vger.kernel.org, linux-kernel@vger.kernel.org, Arthur Simchaev Subject: [PATCH v2 3/4] ufs: core: Remove len parameter from ufshcd_set_active_icc_lvl Date: Wed, 2 Nov 2022 16:29:12 +0200 Message-Id: <1667399353-10228-4-git-send-email-Arthur.Simchaev@wdc.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1667399353-10228-1-git-send-email-Arthur.Simchaev@wdc.com> References: <1667399353-10228-1-git-send-email-Arthur.Simchaev@wdc.com> X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED,SPF_HELO_PASS, SPF_NONE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1748397158781891626?= X-GMAIL-MSGID: =?utf-8?q?1748397158781891626?= len argument is not used anymore in ufshcd_set_active_icc_lvl function. Signed-off-by: Arthur Simchaev --- drivers/ufs/core/ufshcd.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/drivers/ufs/core/ufshcd.c b/drivers/ufs/core/ufshcd.c index aa46292..9cc3abd 100644 --- a/drivers/ufs/core/ufshcd.c +++ b/drivers/ufs/core/ufshcd.c @@ -7386,7 +7386,7 @@ static u32 ufshcd_get_max_icc_level(int sup_curr_uA, u32 start_scan, * Returns calculated ICC level */ static u32 ufshcd_find_max_sup_active_icc_level(struct ufs_hba *hba, - const u8 *desc_buf, int len) + const u8 *desc_buf) { u32 icc_level = 0; @@ -7444,8 +7444,7 @@ static void ufshcd_set_active_icc_lvl(struct ufs_hba *hba) goto out; } - icc_level = ufshcd_find_max_sup_active_icc_level(hba, desc_buf, - QUERY_DESC_MAX_SIZE); + icc_level = ufshcd_find_max_sup_active_icc_level(hba, desc_buf); dev_dbg(hba->dev, "%s: setting icc_level 0x%x", __func__, icc_level); ret = ufshcd_query_attr_retry(hba, UPIU_QUERY_OPCODE_WRITE_ATTR, From patchwork Wed Nov 2 14:29:13 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Arthur Simchaev X-Patchwork-Id: 14283 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:6687:0:0:0:0:0 with SMTP id l7csp3671052wru; Wed, 2 Nov 2022 08:03:38 -0700 (PDT) X-Google-Smtp-Source: AMsMyM7TUGTUyHvorwTP0gksqs9pfhAjHDRZzMvsmdQVYeDQmD5IuuQpdkOfQfYd6/JupO4VE9qZ X-Received: by 2002:a17:902:e851:b0:187:2127:ccb with SMTP id t17-20020a170902e85100b0018721270ccbmr16304134plg.99.1667401418368; Wed, 02 Nov 2022 08:03:38 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1667401418; cv=none; d=google.com; s=arc-20160816; b=sbK3yScRUmzVrbd8mmLquRdVEpJQ/2BiMNAAZy/bTfWa2QJyXpJ9KPVo69Pwml4Tnj VdpLZY8rvzggi4eIZHtP1Ca3kgv3U+inGb/XhX13fti39yPi59L03VTa+gXJDBB5r8CL 4LOgQojf3kwEzJAAWvjkfxmwIxH+F2F0fFTmErEHpQxkc3Xx6fmCRpjt9cQFj/209Ve7 +NL+JlSsko+Mg5CcfNTHiW/kj8dGeUyTsV5Txx/RA4dmPiMbW4bRQJdoZWT2Mugxo83W b6hgrg4vru/WdEwRLQYGkKdw9NTuMUQeq35rlNQx8ulAKEBnfXQlmzG5hmzTDLsFuBSJ Ce3g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:references:in-reply-to:message-id:date:subject :cc:to:from:wdcironportexception:ironport-sdr:ironport-sdr :dkim-signature; bh=m7r4sTRhusPBxRIVFllJZ4Cf5ii2COdH1HQ9xCndTQY=; b=ntU1FdZ1Zwemwvk+AyxuFxtoRHJCGBMaUr1E13EURynSBdLkUruRONhzXgBtvwOP/N hc8vM9GdpT7p1/GU0uN8DYLtLJJcYh6E3+X32pWZH4DaJ+D9D1xqKpTGGsgMRqzL4vz9 f45Z50gmJHuzDoQ5VxHMAdXZOYcdoGTq2f9duxgp6mtuUCDe5XYrDjT2oJvWEVFX93pK 63wV9qNbEA0Gty0oiVsrv1Iwqzwy2A7ehuy8Pt0fO876b7Efs1jWqV5k6g1Lu6uXwt26 anLTwdQqEEt3Gii/T00npxPi54oPHYV9EF/Ql2kl6ocL9UoRNKEghGMbYmmKbrDb7SW9 mNSg== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@wdc.com header.s=dkim.wdc.com header.b=fiP3aczD; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=wdc.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id oc11-20020a17090b1c0b00b002134d2f9848si3119742pjb.9.2022.11.02.08.03.22; Wed, 02 Nov 2022 08:03:38 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=fail header.i=@wdc.com header.s=dkim.wdc.com header.b=fiP3aczD; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=wdc.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231605AbiKBOaq (ORCPT + 99 others); Wed, 2 Nov 2022 10:30:46 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:60738 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231582AbiKBOaA (ORCPT ); Wed, 2 Nov 2022 10:30:00 -0400 Received: from esa5.hgst.iphmx.com (esa5.hgst.iphmx.com [216.71.153.144]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 33B1C2A957; Wed, 2 Nov 2022 07:29:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=wdc.com; i=@wdc.com; q=dns/txt; s=dkim.wdc.com; t=1667399397; x=1698935397; h=from:to:cc:subject:date:message-id:in-reply-to: references; bh=+e9nf+rVBfAa2c/WjCtcUpaxL45lHT++qX95yYgmOY0=; b=fiP3aczDV9w8fFtZY8u7vn+53F5siv8PNFPz5q7aL2GMri+QvU/NYEzH GaUmW7aqkF6xxNTNnBxakOL/6lrvWFvBn9qkTtNF5PzgPXP8RF5dQ0Qq4 7O/9AlNWSVlLvVVVpzE0R4WgE8Hxf3N26DQPoHW2TVhpkirfnRNeoBlUy +ttp681W9ob0/EgYyfwTVmZhUmSVQnkbRVrOlMX+KjA25f+lrmMNq9Hoz JlnWjN4W0fV+qwYrdExNbrqerXEkeyZIJFc6TqXNg1FZRYHl82Ix0i8C2 6aECOA11vsoEkW1pAcbNpEF8UD3fpwtW5iLM8TJS/e+OKezzYga6mQ92V A==; X-IronPort-AV: E=Sophos;i="5.95,234,1661788800"; d="scan'208";a="215319626" Received: from uls-op-cesaip02.wdc.com (HELO uls-op-cesaep02.wdc.com) ([199.255.45.15]) by ob1.hgst.iphmx.com with ESMTP; 02 Nov 2022 22:29:56 +0800 IronPort-SDR: jy8v/t3MXDOGg9MJ6zv4cbg0LLYUzUpv0PkQY6bBj3ITggQaWnzFLwjP524UTo2SN0ss9KaktK BtakqFAbbpmtt0F3FDdbvEp5ExsE5HxsUpIPu8BTHBBedo+T8GcTDwC6oKbbK+LFTZxzMf2OXY SpuUrPx97qZhzKn9J6ACRCSWO2xAbLqdzhsGes2VmourV05wW27qRVl7Z5Y4ZMagRHB3p8b841 muOsiS4CDkhgzEqYPKTMvQiZslr+T+kQE0xwQcR0LOq4pXkeRftgTsTxLIWcWBpZKJmClEuza9 Otg= Received: from uls-op-cesaip01.wdc.com ([10.248.3.36]) by uls-op-cesaep02.wdc.com with ESMTP/TLS/ECDHE-RSA-AES128-GCM-SHA256; 02 Nov 2022 06:43:25 -0700 IronPort-SDR: 1V0GFg2in1LN3SSCzO/ZbxAw+GnY3EUZAZmcKPLCA7VSdDBM/8qoB8edxiWxTyfBkahvLSGyYf 4l248NI16rIze2SoCbVmiDO8/3kNuo36ZyKN908o36mPgPI2YUjuxLk8WXDz2avYHRn/DV8Wxl llbx3c4pk7k9zNDDVXlgDOy1NuA5BiISB1l+B1ysyJut2Sb+thl/eefMSZAJlBILsVBPMcI2wj VKlghsFmjrW7Ob7T/eQnlgS5Nc1BvR1EBtydqsS7iSjIHqCpIdTnHxMzt84A7DBve7ShQusHfQ zkE= WDCIronportException: Internal Received: from ilb001078.ad.shared (HELO ilb001078.sdcorp.global.sandisk.com) ([10.45.31.219]) by uls-op-cesaip01.wdc.com with ESMTP; 02 Nov 2022 07:29:55 -0700 From: Arthur Simchaev To: martin.petersen@oracle.com Cc: beanhuo@micron.com, linux-scsi@vger.kernel.org, linux-kernel@vger.kernel.org, Arthur Simchaev Subject: [PATCH v2 4/4] ufs: core: Remove ufshcd_map_desc_id_to_length function Date: Wed, 2 Nov 2022 16:29:13 +0200 Message-Id: <1667399353-10228-5-git-send-email-Arthur.Simchaev@wdc.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1667399353-10228-1-git-send-email-Arthur.Simchaev@wdc.com> References: <1667399353-10228-1-git-send-email-Arthur.Simchaev@wdc.com> X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED,SPF_HELO_PASS, SPF_NONE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1748397109853960339?= X-GMAIL-MSGID: =?utf-8?q?1748397109853960339?= There shouldn't be any restriction of the descriptor size (not the descriptor id for that matter) up to QUERY_DESC_MAX_SIZE. According to the spec, the caller can use any descriptor size, and it is up to the device to return the actual size. Therefore there shouldn't be any sizes hardcoded in the kernel, nor any need to cache it, hence ufshcd_map_desc_id_to_length function is redundant. always read the descriptors with QUERY_DESC_MAX_SIZE size. Suggested-by: Bean Huo Signed-off-by: Arthur Simchaev --- drivers/ufs/core/ufs_bsg.c | 7 +------ drivers/ufs/core/ufshcd-priv.h | 3 --- drivers/ufs/core/ufshcd.c | 46 +++++++++++------------------------------- drivers/ufs/core/ufshpb.c | 4 +--- 4 files changed, 14 insertions(+), 46 deletions(-) diff --git a/drivers/ufs/core/ufs_bsg.c b/drivers/ufs/core/ufs_bsg.c index b99e3f3..dc441ac 100644 --- a/drivers/ufs/core/ufs_bsg.c +++ b/drivers/ufs/core/ufs_bsg.c @@ -16,16 +16,11 @@ static int ufs_bsg_get_query_desc_size(struct ufs_hba *hba, int *desc_len, struct utp_upiu_query *qr) { int desc_size = be16_to_cpu(qr->length); - int desc_id = qr->idn; if (desc_size <= 0) return -EINVAL; - ufshcd_map_desc_id_to_length(hba, desc_id, desc_len); - if (!*desc_len) - return -EINVAL; - - *desc_len = min_t(int, *desc_len, desc_size); + *desc_len = min_t(int, QUERY_DESC_MAX_SIZE, desc_size); return 0; } diff --git a/drivers/ufs/core/ufshcd-priv.h b/drivers/ufs/core/ufshcd-priv.h index a9e8e1f..c52e2f3 100644 --- a/drivers/ufs/core/ufshcd-priv.h +++ b/drivers/ufs/core/ufshcd-priv.h @@ -70,9 +70,6 @@ int ufshcd_read_string_desc(struct ufs_hba *hba, u8 desc_index, int ufshcd_hold(struct ufs_hba *hba, bool async); void ufshcd_release(struct ufs_hba *hba); -void ufshcd_map_desc_id_to_length(struct ufs_hba *hba, enum desc_idn desc_id, - int *desc_length); - int ufshcd_send_uic_cmd(struct ufs_hba *hba, struct uic_command *uic_cmd); int ufshcd_exec_raw_upiu_cmd(struct ufs_hba *hba, diff --git a/drivers/ufs/core/ufshcd.c b/drivers/ufs/core/ufshcd.c index 9cc3abd..fc0695f 100644 --- a/drivers/ufs/core/ufshcd.c +++ b/drivers/ufs/core/ufshcd.c @@ -3369,20 +3369,6 @@ int ufshcd_query_descriptor_retry(struct ufs_hba *hba, } /** - * ufshcd_map_desc_id_to_length - map descriptor IDN to its length - * @hba: Pointer to adapter instance - * @desc_id: descriptor idn value - * @desc_len: mapped desc length (out) - */ -void ufshcd_map_desc_id_to_length(struct ufs_hba *hba, enum desc_idn desc_id, - int *desc_len) -{ - /*Always returns QUERY_DESC_MAX_SIZE*/ - *desc_len = QUERY_DESC_MAX_SIZE; -} -EXPORT_SYMBOL(ufshcd_map_desc_id_to_length); - -/** * ufshcd_read_desc_param - read the specified descriptor parameter * @hba: Pointer to adapter instance * @desc_id: descriptor idn value @@ -3402,26 +3388,13 @@ int ufshcd_read_desc_param(struct ufs_hba *hba, { int ret; u8 *desc_buf; - int buff_len; + int buff_len = QUERY_DESC_MAX_SIZE; bool is_kmalloc = true; /* Safety check */ if (desc_id >= QUERY_DESC_IDN_MAX || !param_size) return -EINVAL; - /* Get the length of descriptor */ - ufshcd_map_desc_id_to_length(hba, desc_id, &buff_len); - if (!buff_len) { - dev_err(hba->dev, "%s: Failed to get desc length\n", __func__); - return -EINVAL; - } - - if (param_offset >= buff_len) { - dev_err(hba->dev, "%s: Invalid offset 0x%x in descriptor IDN 0x%x, length 0x%x\n", - __func__, param_offset, desc_id, buff_len); - return -EINVAL; - } - /* Check whether we need temp memory */ if (param_offset != 0 || param_size < buff_len) { desc_buf = kzalloc(buff_len, GFP_KERNEL); @@ -3434,15 +3407,23 @@ int ufshcd_read_desc_param(struct ufs_hba *hba, /* Request for full descriptor */ ret = ufshcd_query_descriptor_retry(hba, UPIU_QUERY_OPCODE_READ_DESC, - desc_id, desc_index, 0, - desc_buf, &buff_len); - + desc_id, desc_index, 0, + desc_buf, &buff_len); if (ret) { dev_err(hba->dev, "%s: Failed reading descriptor. desc_id %d, desc_index %d, param_offset %d, ret %d\n", __func__, desc_id, desc_index, param_offset, ret); goto out; } + /* Update descriptor length */ + buff_len = desc_buf[QUERY_DESC_LENGTH_OFFSET]; + + if (param_offset >= buff_len) { + dev_err(hba->dev, "%s: Invalid offset 0x%x in descriptor IDN 0x%x, length 0x%x\n", + __func__, param_offset, desc_id, buff_len); + return -EINVAL; + } + /* Sanity check */ if (desc_buf[QUERY_DESC_DESC_TYPE_OFFSET] != desc_id) { dev_err(hba->dev, "%s: invalid desc_id %d in descriptor header\n", @@ -3451,9 +3432,6 @@ int ufshcd_read_desc_param(struct ufs_hba *hba, goto out; } - /* Update descriptor length */ - buff_len = desc_buf[QUERY_DESC_LENGTH_OFFSET]; - if (is_kmalloc) { /* Make sure we don't copy more data than available */ if (param_offset >= buff_len) diff --git a/drivers/ufs/core/ufshpb.c b/drivers/ufs/core/ufshpb.c index 3d69a81c..11f8aa6 100644 --- a/drivers/ufs/core/ufshpb.c +++ b/drivers/ufs/core/ufshpb.c @@ -2382,12 +2382,10 @@ static int ufshpb_get_lu_info(struct ufs_hba *hba, int lun, { u16 max_active_rgns; u8 lu_enable; - int size; + int size = QUERY_DESC_MAX_SIZE; int ret; char desc_buf[QUERY_DESC_MAX_SIZE]; - ufshcd_map_desc_id_to_length(hba, QUERY_DESC_IDN_UNIT, &size); - ufshcd_rpm_get_sync(hba); ret = ufshcd_query_descriptor_retry(hba, UPIU_QUERY_OPCODE_READ_DESC, QUERY_DESC_IDN_UNIT, lun, 0,