firmware/psci: Don't register with debugfs if PSCI isn't available
PATCH 1/1 firmware/psci: Don't register with debugfs if PSCI isn't available
Contrary to popular belief, PSCI is not a universal property of an ARM/arm64 system. There is a garden variety of systems out there that don't (or even cannot) implement it.
I'm the first one deplore such a situation, but hey...
On such systems, a "cat /sys/kernel/debug/psci" results in fireworks, as no invocation callback is registered.
Check for the invoke_psci_fn and psci_ops.get_version pointers before registering with the debugfs subsystem, avoiding the issue altogether.
--- drivers/firmware/psci/psci.c | 3 +++ 1 file changed, 3 insertions(+)
drivers/firmware/psci/psci.c +3 -0
@@ -440,6 +440,9 @@ static const struct file_operations psci_debugfs_ops = {static int __init psci_debugfs_init (void ) { +if (!invoke_psci_fn || !psci_ops.get_version) +return 0 ; +return PTR_ERR_OR_ZERO (debugfs_create_file ("psci" ,0444 ,NULL ,NULL , &psci_debugfs_ops)); }
Signature · 1 line
2.34.1
Quoted 13 lines · Marc Zyngier
Contrary to popular belief, PSCI is not a universal property of an ARM/arm64 system. There is a garden variety of systems out there that don't (or even cannot) implement it.
I'm the first one deplore such a situation, but hey...
On such systems, a "cat
/sys/kernel/debug/psci" results in fireworks, as no invocation callback is registered.Check for the
invoke_psci_fnand psci_ops.get_version pointers before registering with the debugfs subsystem, avoiding the issue altogether.
Quoted 9 lines
Fixes 3137f2e60098 ("firmware/psci: Add debugfs support to ease debugging")Reported-by Hector Martin <[email protected]>Signed-off-by Marc Zyngier <[email protected]>Cc Dmitry Baryshkov <[email protected]>Cc Mark Brown <[email protected]>Cc Ulf Hansson <[email protected]>Cc Arnd Bergmann <[email protected]>Cc Mark Rutland <[email protected]>Cc Lorenzo Pieralisi <[email protected]>
Mark.
Quoted 21 lines
--- drivers/firmware/psci/psci.c | 3 +++ 1 file changed, 3 insertions(+)drivers/firmware/psci/psci.c +3
-0@@ -440,6 +440,9 @@ static const struct file_operations psci_debugfs_ops = {static int __init psci_debugfs_init (void ) { +if (!invoke_psci_fn || !psci_ops.get_version) +return 0 ; +return PTR_ERR_OR_ZERO (debugfs_create_file ("psci" ,0444 ,NULL ,NULL , &psci_debugfs_ops)); }Signature · 1 line
2.34.1
Quoted 13 lines · Marc Zyngier
Contrary to popular belief, PSCI is not a universal property of an ARM/arm64 system. There is a garden variety of systems out there that don't (or even cannot) implement it.
I'm the first one deplore such a situation, but hey...
On such systems, a "cat
/sys/kernel/debug/psci" results in fireworks, as no invocation callback is registered.Check for the
invoke_psci_fnand psci_ops.get_version pointers before registering with the debugfs subsystem, avoiding the issue altogether.
Quoted 9 lines
Fixes 3137f2e60098 ("firmware/psci: Add debugfs support to ease debugging")Reported-by Hector Martin <[email protected]>Signed-off-by Marc Zyngier <[email protected]>Cc Dmitry Baryshkov <[email protected]>Cc Mark Brown <[email protected]>Cc Ulf Hansson <[email protected]>Cc Arnd Bergmann <[email protected]>Cc Mark Rutland <[email protected]>Cc Lorenzo Pieralisi <[email protected]>
Signature · 2 lines
With best wishes Dmitry
Quoted 31 lines · Marc Zyngier
Contrary to popular belief, PSCI is not a universal property of an ARM/arm64 system. There is a garden variety of systems out there that don't (or even cannot) implement it.
I'm the first one deplore such a situation, but hey...
On such systems, a "cat
/sys/kernel/debug/psci" results in fireworks, as no invocation callback is registered.Check for the
invoke_psci_fnand psci_ops.get_version pointers before registering with the debugfs subsystem, avoiding the issue altogether.Fixes 3137f2e60098 ("firmware/psci: Add debugfs support to ease debugging")Reported-by Hector Martin <[email protected]>Signed-off-by Marc Zyngier <[email protected]>Cc Dmitry Baryshkov <[email protected]>Cc Mark Brown <[email protected]>Cc Ulf Hansson <[email protected]>Cc Arnd Bergmann <[email protected]>Cc Mark Rutland <[email protected]>Cc Lorenzo Pieralisi <[email protected]>--- drivers/firmware/psci/psci.c | 3 +++ 1 file changed, 3 insertions(+)drivers/firmware/psci/psci.c +0
-0
drivers/firmware/psci/psci.c static const struct file_operations psci_debugfs_ops = { · line 448
Quoted 9 lines
drivers/firmware/psci/psci.c +3
-0@@ -440,6 +440,9 @@ static const struct file_operations psci_debugfs_ops = {static int __init psci_debugfs_init (void ) { +if (!invoke_psci_fn || !psci_ops.get_version) +return 0 ; +return PTR_ERR_OR_ZERO (debugfs_create_file ("psci" ,0444 ,NULL ,NULL , &psci_debugfs_ops)); }
- Hector
Will Deacon
AppliedQuoted 10 lines · Marc Zyngier
Contrary to popular belief, PSCI is not a universal property of an ARM/arm64 system. There is a garden variety of systems out there that don't (or even cannot) implement it.
I'm the first one deplore such a situation, but hey...
On such systems, a "cat
/sys/kernel/debug/psci" results in fireworks, as no invocation callback is registered.[...]
Applied to arm64 (for-next/fixes), thanks!
[1/1] firmware/psci: Don't register with debugfs if PSCI isn't available
https://git.kernel.org/arm64/c/cef139299fd8
Cheers,
Signature · 5 lines
Will https://fixes.arm64.dev https://next.arm64.dev https://will.arm64.dev