2023-01-04 06:19:08

by Prashant Malani

[permalink] [raw]
Subject: [PATCH 1/2] platform/chrome: cros_typec_switch: Use fwnode* prop check

Using device_property_present() multiple times on an ACPI device
leads to kernel panics on Chromebook systems. This happens when there
is > 1 boolean property in an ACPI device which is created dynamically
by the BIOS as part of SSDT[1] on Chromebook systems

Since fwnode_* can handle simple device tree properties equally
well, switch to using the fwnode_property_present() function
version. This will avoid panics and make the usage consistent
when we introduce a check for the 2nd property in a subsequent patch.

[1] https://wiki.osdev.org/SSDT

Signed-off-by: Prashant Malani <[email protected]>
---
drivers/platform/chrome/cros_typec_switch.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/platform/chrome/cros_typec_switch.c b/drivers/platform/chrome/cros_typec_switch.c
index a26219e97c93..2536bda03bf3 100644
--- a/drivers/platform/chrome/cros_typec_switch.c
+++ b/drivers/platform/chrome/cros_typec_switch.c
@@ -254,7 +254,7 @@ static int cros_typec_register_switches(struct cros_typec_switch_data *sdata)

dev_dbg(dev, "Retimer switch registered for index %llu\n", index);

- if (!device_property_present(fwnode->dev, "mode-switch"))
+ if (!fwnode_property_present(fwnode, "mode-switch"))
continue;

ret = cros_typec_register_mode_switch(port, fwnode);
--
2.39.0.314.g84b9a713c41-goog


2023-01-05 19:16:46

by Benson Leung

[permalink] [raw]
Subject: Re: [PATCH 1/2] platform/chrome: cros_typec_switch: Use fwnode* prop check

Hi Prashant,

On Tue, Jan 3, 2023 at 10:09 PM Prashant Malani <[email protected]> wrote:
>
> Using device_property_present() multiple times on an ACPI device
> leads to kernel panics on Chromebook systems. This happens when there
> is > 1 boolean property in an ACPI device which is created dynamically
> by the BIOS as part of SSDT[1] on Chromebook systems
>
> Since fwnode_* can handle simple device tree properties equally
> well, switch to using the fwnode_property_present() function
> version. This will avoid panics and make the usage consistent
> when we introduce a check for the 2nd property in a subsequent patch.
>
> [1] https://wiki.osdev.org/SSDT
>
> Signed-off-by: Prashant Malani <[email protected]>

Reviewed-by: Benson Leung <[email protected]>

Thanks,
Benson

> ---
> drivers/platform/chrome/cros_typec_switch.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/platform/chrome/cros_typec_switch.c b/drivers/platform/chrome/cros_typec_switch.c
> index a26219e97c93..2536bda03bf3 100644
> --- a/drivers/platform/chrome/cros_typec_switch.c
> +++ b/drivers/platform/chrome/cros_typec_switch.c
> @@ -254,7 +254,7 @@ static int cros_typec_register_switches(struct cros_typec_switch_data *sdata)
>
> dev_dbg(dev, "Retimer switch registered for index %llu\n", index);
>
> - if (!device_property_present(fwnode->dev, "mode-switch"))
> + if (!fwnode_property_present(fwnode, "mode-switch"))
> continue;
>
> ret = cros_typec_register_mode_switch(port, fwnode);
> --
> 2.39.0.314.g84b9a713c41-goog
>
>


--
Benson Leung
Staff Software Engineer
Chrome OS Kernel
Google Inc.
[email protected]
Chromium OS Project
[email protected]

Subject: Re: [PATCH 1/2] platform/chrome: cros_typec_switch: Use fwnode* prop check

Hello:

This series was applied to chrome-platform/linux.git (for-kernelci)
by Prashant Malani <[email protected]>:

On Wed, 4 Jan 2023 06:08:44 +0000 you wrote:
> Using device_property_present() multiple times on an ACPI device
> leads to kernel panics on Chromebook systems. This happens when there
> is > 1 boolean property in an ACPI device which is created dynamically
> by the BIOS as part of SSDT[1] on Chromebook systems
>
> Since fwnode_* can handle simple device tree properties equally
> well, switch to using the fwnode_property_present() function
> version. This will avoid panics and make the usage consistent
> when we introduce a check for the 2nd property in a subsequent patch.
>
> [...]

Here is the summary with links:
- [1/2] platform/chrome: cros_typec_switch: Use fwnode* prop check
https://git.kernel.org/chrome-platform/c/ef9c00dbd383
- [2/2] platform/chrome: cros_typec_switch: Check for retimer flag
https://git.kernel.org/chrome-platform/c/441529bed41c

You are awesome, thank you!
--
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html


Subject: Re: [PATCH 1/2] platform/chrome: cros_typec_switch: Use fwnode* prop check

Hello:

This series was applied to chrome-platform/linux.git (for-next)
by Prashant Malani <[email protected]>:

On Wed, 4 Jan 2023 06:08:44 +0000 you wrote:
> Using device_property_present() multiple times on an ACPI device
> leads to kernel panics on Chromebook systems. This happens when there
> is > 1 boolean property in an ACPI device which is created dynamically
> by the BIOS as part of SSDT[1] on Chromebook systems
>
> Since fwnode_* can handle simple device tree properties equally
> well, switch to using the fwnode_property_present() function
> version. This will avoid panics and make the usage consistent
> when we introduce a check for the 2nd property in a subsequent patch.
>
> [...]

Here is the summary with links:
- [1/2] platform/chrome: cros_typec_switch: Use fwnode* prop check
https://git.kernel.org/chrome-platform/c/ef9c00dbd383
- [2/2] platform/chrome: cros_typec_switch: Check for retimer flag
https://git.kernel.org/chrome-platform/c/441529bed41c

You are awesome, thank you!
--
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html