From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 76112CA5FD4 for ; Thu, 1 Oct 2026 15:35:39 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:List-Subscribe:List-Help :List-Post:List-Archive:List-Unsubscribe:List-Id:Content-Transfer-Encoding: MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From: Reply-To:Content-Type:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=3LgtSAmb7DvwqjXObsw4jyx1sWnSY5s14h6w2FCC4Ew=; b=VNDxRG0GS+Y+tQYz0GKb6bWekm BRVkwSgRcRmH0OFmv1H+/LxT/qL6xJBypKNO/XMIfxWldcu+HbL3kkMuQ7hTvp2lv/UXBYMjt5OXR R+keb5A+luZa+Xn7gaadCjjPSZnzEIwLel7IjYwP1sgiA36PQlK7NJ6TFjHcRzPYUgpT3VR+4noQ/ vfs8gw2Ad4ur6Ntee8+QvvJdQXBpw6r3+YDQNGg/4v3OQZt8xvh5+48LnDAUhIXpPz9xbqUuT0VL1 K5lbOy/9Lsfyd11vSJgV0L+/6IaZRTSsMzmrIgzpYdQ7INyzubUhC7FNJPMqKwX5Z9Uxcyobu/f76 OR5CPFzw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.99.1 #2 (Red Hat Linux)) id 1xCIoj-00000009Y0Y-31zc; Thu, 01 Oct 2026 15:35:29 +0000 Received: from foss.arm.com ([217.140.110.172]) by bombadil.infradead.org with esmtp (Exim 4.99.1 #2 (Red Hat Linux)) id 1xCIof-00000009Xuq-1iot for linux-arm-kernel@lists.infradead.org; Thu, 01 Oct 2026 15:35:28 +0000 Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 7F7B1497; Thu, 1 Oct 2026 08:35:20 -0700 (PDT) Received: from e142021.fritz.box (usa-sjc-mx-foss1.foss.arm.com [172.31.20.19]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 47BA03F86F; Thu, 1 Oct 2026 08:35:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=arm.com; s=foss; t=1790868923; bh=Gk1Yb1XLhHi3XagPRaYgVZHIjARvj1cBZvrSqXrEaYk=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=IgEgxjaEobf/mQIIvxHczAJCtfy8qL7mnrxb70tTrvhO4QzMXpIlHjtGKhe74NUad IXsIEIWFnik/6I1Hm7GPhhVQAdJ3rWX/m+HslQojb8pAChgdRIL+RG1l4y3SajGYd7 m51nn3yh6y32JtXwofLtoA0pn0I/EniH4tt95mU4= From: Andre Przywara To: Lorenzo Pieralisi , Hanjun Guo , Sudeep Holla , Catalin Marinas , Will Deacon , "Rafael J . Wysocki" , Len Brown , James Morse , Ben Horgan , Reinette Chatre , Fenghua Yu Cc: Jonathan Cameron , Srivathsa L Rao , Ganapatrao Kulkarni , Trilok Soni , Srinivas Ramana , Niyas Sait , Lee Trager , Ritwick Sharma , Gavin Shan , linux-acpi@vger.kernel.org--cc, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Subject: [PATCH v12 08/13] arm_mpam: propagate MSC access errors for interrupt control Date: Thu, 1 Oct 2026 17:34:33 +0200 Message-ID: <20261001153439.3295416-9-andre.przywara@arm.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20261001153439.3295416-1-andre.przywara@arm.com> References: <20261001153439.3295416-1-andre.przywara@arm.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.9.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20261001_083525_566043_4A561F39 X-CRM114-Status: GOOD ( 12.71 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org Allow the functions dealing with interrupt registration and enablement to check for and return errors, and propagate MSC read and write errors from the lower level up. This does not cover the IRQ handler yet, as this needs some more attention. Signed-off-by: Andre Przywara Reviewed-by: Srivathsa L Rao Reviewed-by: Jonathan Cameron --- drivers/resctrl/mpam_devices.c | 23 +++++++++++------------ 1 file changed, 11 insertions(+), 12 deletions(-) diff --git a/drivers/resctrl/mpam_devices.c b/drivers/resctrl/mpam_devices.c index b876f4d2e9a77..60f6a39176ea1 100644 --- a/drivers/resctrl/mpam_devices.c +++ b/drivers/resctrl/mpam_devices.c @@ -1118,7 +1118,9 @@ static int mpam_msc_hw_probe(struct mpam_msc *msc) } /* Clear any stale errors */ - mpam_msc_clear_esr(msc); + ret = mpam_msc_clear_esr(msc); + if (ret) + return ret; spin_lock(&partid_max_lock); mpam_partid_max = min(mpam_partid_max, msc->partid_max); @@ -2681,9 +2683,7 @@ static int mpam_enable_msc_ecr(void *_msc) { struct mpam_msc *msc = _msc; - __mpam_write_reg(msc, MPAMF_ECR, MPAMF_ECR_INTEN); - - return 0; + return __mpam_write_reg(msc, MPAMF_ECR, MPAMF_ECR_INTEN); } /* This can run in mpam_disable(), and the interrupt handler on the same CPU */ @@ -2691,9 +2691,7 @@ static int mpam_disable_msc_ecr(void *_msc) { struct mpam_msc *msc = _msc; - __mpam_write_reg(msc, MPAMF_ECR, 0); - - return 0; + return __mpam_write_reg(msc, MPAMF_ECR, 0); } static irqreturn_t __mpam_irq_handler(int irq, struct mpam_msc *msc) @@ -2790,11 +2788,12 @@ static int mpam_register_irqs(void) return err; } - mutex_lock(&msc->error_irq_lock); + guard(mutex)(&msc->error_irq_lock); msc->error_irq_req = true; - mpam_touch_msc(msc, mpam_enable_msc_ecr, msc); + err = mpam_touch_msc(msc, mpam_enable_msc_ecr, msc); + if (err) + return err; msc->error_irq_hw_enabled = true; - mutex_unlock(&msc->error_irq_lock); } return 0; @@ -2815,8 +2814,8 @@ static void mpam_unregister_irqs(void) mutex_lock(&msc->error_irq_lock); if (msc->error_irq_hw_enabled) { - mpam_touch_msc(msc, mpam_disable_msc_ecr, msc); - msc->error_irq_hw_enabled = false; + if (!mpam_touch_msc(msc, mpam_disable_msc_ecr, msc)) + msc->error_irq_hw_enabled = false; } if (msc->error_irq_req) { -- 2.43.0