diff mbox series

platform/x86: ISST: Fix return value on last invalid resource

Message ID 20240816163626.415762-1-srinivas.pandruvada@linux.intel.com (mailing list archive)
State Accepted, archived
Delegated to: Ilpo Järvinen
Headers show
Series platform/x86: ISST: Fix return value on last invalid resource | expand

Commit Message

srinivas pandruvada Aug. 16, 2024, 4:36 p.m. UTC
When only the last resource is invalid, tpmi_sst_dev_add() is returing
error even if there are other valid resources before. This function
should return error when there are no valid resources.

Here tpmi_sst_dev_add() is returning "ret" variable. But this "ret"
variable contains the failure status of last call to sst_main(), which
failed for the invalid resource. But there may be other valid resources
before the last entry.

To address this, do not update "ret" variable for sst_main() return
status.

Fixes: 9d1d36268f3d ("platform/x86: ISST: Support partitioned systems")
Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
Cc: <stable@vger.kernel.org> # 6.10+
---
 drivers/platform/x86/intel/speed_select_if/isst_tpmi_core.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

Comments

Ilpo Järvinen Aug. 20, 2024, 11:23 a.m. UTC | #1
On Fri, 16 Aug 2024, Srinivas Pandruvada wrote:

> When only the last resource is invalid, tpmi_sst_dev_add() is returing
> error even if there are other valid resources before. This function
> should return error when there are no valid resources.
> 
> Here tpmi_sst_dev_add() is returning "ret" variable. But this "ret"
> variable contains the failure status of last call to sst_main(), which
> failed for the invalid resource. But there may be other valid resources
> before the last entry.
> 
> To address this, do not update "ret" variable for sst_main() return
> status.
>
> Fixes: 9d1d36268f3d ("platform/x86: ISST: Support partitioned systems")
> Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
> Cc: <stable@vger.kernel.org> # 6.10+

Thanks for the patch. Applied to review-ilpo.

While applying, I added the answer to the obvious question: why no new 
checks are needed for the no valid resources case (essentially, noting the 
existing !inst check).
diff mbox series

Patch

diff --git a/drivers/platform/x86/intel/speed_select_if/isst_tpmi_core.c b/drivers/platform/x86/intel/speed_select_if/isst_tpmi_core.c
index 7fa360073f6e..404582307109 100644
--- a/drivers/platform/x86/intel/speed_select_if/isst_tpmi_core.c
+++ b/drivers/platform/x86/intel/speed_select_if/isst_tpmi_core.c
@@ -1549,8 +1549,7 @@  int tpmi_sst_dev_add(struct auxiliary_device *auxdev)
 			goto unlock_free;
 		}
 
-		ret = sst_main(auxdev, &pd_info[i]);
-		if (ret) {
+		if (sst_main(auxdev, &pd_info[i])) {
 			/*
 			 * This entry is not valid, hardware can partially
 			 * populate dies. In this case MMIO will have 0xFFs.