]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
platform/x86/intel/tpmi: Handle error from tpmi_process_info()
authorSrinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
Tue, 23 Apr 2024 20:46:10 +0000 (13:46 -0700)
committerHans de Goede <hdegoede@redhat.com>
Mon, 29 Apr 2024 11:00:47 +0000 (13:00 +0200)
When tpmi_process_info() returns error, fail to load the driver.
This can happen if call to ioremap() returns error.

Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
Reviewed-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
Cc: stable@vger.kernel.org # v6.3+
Link: https://lore.kernel.org/r/20240423204619.3946901-2-srinivas.pandruvada@linux.intel.com
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
drivers/platform/x86/intel/tpmi.c

index 910df7c654f481983d725b01b2b840170573fbc7..003e765dedea1005fa641919690cccf7f9a3e40e 100644 (file)
@@ -763,8 +763,11 @@ static int intel_vsec_tpmi_init(struct auxiliary_device *auxdev)
                 * when actual device nodes created outside this
                 * loop via tpmi_create_devices().
                 */
-               if (pfs->pfs_header.tpmi_id == TPMI_INFO_ID)
-                       tpmi_process_info(tpmi_info, pfs);
+               if (pfs->pfs_header.tpmi_id == TPMI_INFO_ID) {
+                       ret = tpmi_process_info(tpmi_info, pfs);
+                       if (ret)
+                               return ret;
+               }
 
                if (pfs->pfs_header.tpmi_id == TPMI_CONTROL_ID)
                        tpmi_set_control_base(auxdev, tpmi_info, pfs);