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 |
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 --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.
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(-)