mirror of
https://github.com/nxp-imx/linux-imx.git
synced 2025-07-18 15:19:38 +02:00
platform/x86: panasonic-laptop: Allocate 1 entry extra in the sinf array
commit33297cef31
upstream. Some DSDT-s have an off-by-one bug where the SINF package count is one higher than the SQTY reported value, allocate 1 entry extra. Also make the SQTY <-> SINF package count mismatch error more verbose to help debugging similar issues in the future. This fixes the panasonic-laptop driver failing to probe() on some devices with the following errors: [ 3.958887] SQTY reports bad SINF length SQTY: 37 SINF-pkg-count: 38 [ 3.958892] Couldn't retrieve BIOS data [ 3.983685] Panasonic Laptop Support - With Macros: probe of MAT0019:00 failed with error -5 Fixes:709ee531c1
("panasonic-laptop: add Panasonic Let's Note laptop extras driver v0.94") Cc: stable@vger.kernel.org Tested-by: James Harmison <jharmison@redhat.com> Signed-off-by: Hans de Goede <hdegoede@redhat.com> Link: https://lore.kernel.org/r/20240909113227.254470-2-hdegoede@redhat.com Reviewed-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com> Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
6821a82616
commit
c54fc405a0
|
@ -337,7 +337,8 @@ static int acpi_pcc_retrieve_biosdata(struct pcc_acpi *pcc)
|
|||
}
|
||||
|
||||
if (pcc->num_sifr < hkey->package.count) {
|
||||
pr_err("SQTY reports bad SINF length\n");
|
||||
pr_err("SQTY reports bad SINF length SQTY: %lu SINF-pkg-count: %u\n",
|
||||
pcc->num_sifr, hkey->package.count);
|
||||
status = AE_ERROR;
|
||||
goto end;
|
||||
}
|
||||
|
@ -994,6 +995,12 @@ static int acpi_pcc_hotkey_add(struct acpi_device *device)
|
|||
return -ENODEV;
|
||||
}
|
||||
|
||||
/*
|
||||
* Some DSDT-s have an off-by-one bug where the SINF package count is
|
||||
* one higher than the SQTY reported value, allocate 1 entry extra.
|
||||
*/
|
||||
num_sifr++;
|
||||
|
||||
pcc = kzalloc(sizeof(struct pcc_acpi), GFP_KERNEL);
|
||||
if (!pcc) {
|
||||
pr_err("Couldn't allocate mem for pcc");
|
||||
|
|
Loading…
Reference in New Issue
Block a user