Received: by 2002:a05:6a10:6d10:0:0:0:0 with SMTP id gq16csp26818pxb; Tue, 12 Apr 2022 15:50:02 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzypcY6reKbJJohlMK5aFeB5kTjKsvlJY6brrH0zvHs8GxQWpaWqlYiIWdhThZyC12fklhE X-Received: by 2002:a17:903:22d0:b0:158:9d42:6af6 with SMTP id y16-20020a17090322d000b001589d426af6mr1249449plg.159.1649803801770; Tue, 12 Apr 2022 15:50:01 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1649803801; cv=none; d=google.com; s=arc-20160816; b=BsUX0xE7QROAfFqDJgXqP8nOW5zWX6m36b63tVpm/GnaptVyw0uPy7XDQAlEXfISr7 JdVYWAgRVmM3bHem88YQQXXMQYYHkyKM4FraJlwTeIzV563gL1xAaezdeIo5q57JIIcg tDH8M8rpH8QVwHDdfCZhmySTpHyOYrXxnsF1XYX3uxr6DiGWQWNa1NEUNS4HLUQFyCtI 0BObCr8gkmOj/SkhVp9kugPGqhX7MTKiablnj1QpWkj8297szA7eUmkrRQLykRMt6rT5 gTLXy7R/w4F/t33VSg1L4HhzMb/QG82t79ILrD2S9jm8ePululmN+u9K2EGX1ZcItQ7i kjwg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=7QiWEOZ8rRvOD8KM1IMbiyI96MFQXYdvbvp4fRz3dnk=; b=XYk69UU7b+F6hJzBJLQTkSySOuC0zu2j1o4qFDkK/DAw88PM68JKrEK4UBzyhWdCFX W2gWjAlHRVcv1YRl3hxinlPIj/jKVFTCeLKflg4qXrzXnfB5VzCH/Gpw/9f+SY1u/fgt KPiiFPnx1LyMsaEVwRzAUimj2Pa/q5e5JKCTvsXYaGGyKjWrp+w/rDFUEbjDS7z6VgQK 0FQu57JClrPkT2QjUSzA2j2wjlgvGDYXw3pdvtdf+F7n2e0rVgnHpklwNvgWkWWqSI9l CJcyz5m6F5obnyIKPukf7Fl0dE9hVKBR6TX399JI2HZXpn6osL2c5Uid19Zy8WbudoTp 0aVA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b="WrZ2y9b/"; spf=softfail (google.com: domain of transitioning linux-kernel-owner@vger.kernel.org does not designate 23.128.96.19 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Return-Path: Received: from lindbergh.monkeyblade.net (lindbergh.monkeyblade.net. [23.128.96.19]) by mx.google.com with ESMTPS id d29-20020a630e1d000000b0039954af1a2csi3967694pgl.413.2022.04.12.15.50.01 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 12 Apr 2022 15:50:01 -0700 (PDT) Received-SPF: softfail (google.com: domain of transitioning linux-kernel-owner@vger.kernel.org does not designate 23.128.96.19 as permitted sender) client-ip=23.128.96.19; Authentication-Results: mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b="WrZ2y9b/"; spf=softfail (google.com: domain of transitioning linux-kernel-owner@vger.kernel.org does not designate 23.128.96.19 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id 873FA1C2A1E; Tue, 12 Apr 2022 14:31:55 -0700 (PDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1358910AbiDLHmU (ORCPT + 99 others); Tue, 12 Apr 2022 03:42:20 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:45864 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1353781AbiDLHQG (ORCPT ); Tue, 12 Apr 2022 03:16:06 -0400 Received: from ams.source.kernel.org (ams.source.kernel.org [145.40.68.75]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 7BB933AA6F; Mon, 11 Apr 2022 23:57:27 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ams.source.kernel.org (Postfix) with ESMTPS id A55A3B81B44; Tue, 12 Apr 2022 06:57:25 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 00D37C385A6; Tue, 12 Apr 2022 06:57:23 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1649746644; bh=UB/tJv4/q5zkVk/rlbowu6zqsWnia8C3Gg5X6fFnLH8=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=WrZ2y9b/To5DTUnjC2TxunR1zE7Ie4mjh0UazNruScjK53wWic3WAJoCD9pOpSN3q Mt/NVoSE5W6iC2CX2cT42Qh4BctY5k21gnayw2P+4YCfxHwgammRnC2HEgeu7LdV2J LiA9ctKeGN8HUvRcr96qeLNqz/0k8NgKwjqg/XAc= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Xiang Chen , Qi Liu , John Garry , "Martin K. Petersen" , Sasha Levin Subject: [PATCH 5.16 080/285] scsi: hisi_sas: Limit users changing debugfs BIST count value Date: Tue, 12 Apr 2022 08:28:57 +0200 Message-Id: <20220412062945.973138703@linuxfoundation.org> X-Mailer: git-send-email 2.35.1 In-Reply-To: <20220412062943.670770901@linuxfoundation.org> References: <20220412062943.670770901@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-2.0 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,RDNS_NONE,SPF_HELO_NONE,T_SCC_BODY_TEXT_LINE autolearn=no 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 From: Xiang Chen [ Upstream commit 286ce4c65fbdf5eb9d4d5f4e4997c4e32bf1b073 ] Add a file operation for "cnt" file under bist directory, so users can only read "cnt" or clear "cnt" to zero, but cannot randomly modify. Link: https://lore.kernel.org/r/1645703489-87194-6-git-send-email-john.garry@huawei.com Signed-off-by: Xiang Chen Signed-off-by: Qi Liu Signed-off-by: John Garry Signed-off-by: Martin K. Petersen Signed-off-by: Sasha Levin --- drivers/scsi/hisi_sas/hisi_sas_v3_hw.c | 52 +++++++++++++++++++++++++- 1 file changed, 50 insertions(+), 2 deletions(-) diff --git a/drivers/scsi/hisi_sas/hisi_sas_v3_hw.c b/drivers/scsi/hisi_sas/hisi_sas_v3_hw.c index 8392463d57de..20763f187886 100644 --- a/drivers/scsi/hisi_sas/hisi_sas_v3_hw.c +++ b/drivers/scsi/hisi_sas/hisi_sas_v3_hw.c @@ -3968,6 +3968,54 @@ static const struct file_operations debugfs_bist_phy_v3_hw_fops = { .owner = THIS_MODULE, }; +static ssize_t debugfs_bist_cnt_v3_hw_write(struct file *filp, + const char __user *buf, + size_t count, loff_t *ppos) +{ + struct seq_file *m = filp->private_data; + struct hisi_hba *hisi_hba = m->private; + unsigned int cnt; + int val; + + if (hisi_hba->debugfs_bist_enable) + return -EPERM; + + val = kstrtouint_from_user(buf, count, 0, &cnt); + if (val) + return val; + + if (cnt) + return -EINVAL; + + hisi_hba->debugfs_bist_cnt = 0; + return count; +} + +static int debugfs_bist_cnt_v3_hw_show(struct seq_file *s, void *p) +{ + struct hisi_hba *hisi_hba = s->private; + + seq_printf(s, "%u\n", hisi_hba->debugfs_bist_cnt); + + return 0; +} + +static int debugfs_bist_cnt_v3_hw_open(struct inode *inode, + struct file *filp) +{ + return single_open(filp, debugfs_bist_cnt_v3_hw_show, + inode->i_private); +} + +static const struct file_operations debugfs_bist_cnt_v3_hw_ops = { + .open = debugfs_bist_cnt_v3_hw_open, + .read = seq_read, + .write = debugfs_bist_cnt_v3_hw_write, + .llseek = seq_lseek, + .release = single_release, + .owner = THIS_MODULE, +}; + static const struct { int value; char *name; @@ -4605,8 +4653,8 @@ static void debugfs_bist_init_v3_hw(struct hisi_hba *hisi_hba) debugfs_create_file("phy_id", 0600, hisi_hba->debugfs_bist_dentry, hisi_hba, &debugfs_bist_phy_v3_hw_fops); - debugfs_create_u32("cnt", 0600, hisi_hba->debugfs_bist_dentry, - &hisi_hba->debugfs_bist_cnt); + debugfs_create_file("cnt", 0600, hisi_hba->debugfs_bist_dentry, + hisi_hba, &debugfs_bist_cnt_v3_hw_ops); debugfs_create_file("loopback_mode", 0600, hisi_hba->debugfs_bist_dentry, -- 2.35.1