Messages in this thread | | | From | Michael Ellerman <> | Subject | Re: [PATCH] powerpc/pseries: detect secure and trusted boot state of the system. | Date | Tue, 07 Jul 2020 15:56:23 +1000 |
| |
Nayna Jain <nayna@linux.ibm.com> writes: > The device-tree property to check secure and trusted boot state is > different for guests(pseries) compared to baremetal(powernv). > > This patch updates the existing is_ppc_secureboot_enabled() and > is_ppc_trustedboot_enabled() function to add support for pseries. > > Signed-off-by: Nayna Jain <nayna@linux.ibm.com> > --- > arch/powerpc/kernel/secure_boot.c | 31 +++++++++++++++++++++++++------ > 1 file changed, 25 insertions(+), 6 deletions(-) > > diff --git a/arch/powerpc/kernel/secure_boot.c b/arch/powerpc/kernel/secure_boot.c > index 4b982324d368..43fc6607c7a5 100644 > --- a/arch/powerpc/kernel/secure_boot.c > +++ b/arch/powerpc/kernel/secure_boot.c > @@ -6,6 +6,7 @@ > #include <linux/types.h> > #include <linux/of.h> > #include <asm/secure_boot.h> > +#include <asm/machdep.h> > > static struct device_node *get_ppc_fw_sb_node(void) > { > @@ -23,11 +24,20 @@ bool is_ppc_secureboot_enabled(void) > { > struct device_node *node; > bool enabled = false; > + const u32 *secureboot; > > - node = get_ppc_fw_sb_node(); > - enabled = of_property_read_bool(node, "os-secureboot-enforcing"); > + if (machine_is(powernv)) { > + node = get_ppc_fw_sb_node(); > + enabled = > + of_property_read_bool(node, "os-secureboot-enforcing"); > + of_node_put(node); > + }
We generally try to avoid adding new machine_is() checks if we can.
In a case like this I think you can just check for both properties regardless of what platform you're on.
> - of_node_put(node); > + if (machine_is(pseries)) { > + secureboot = of_get_property(of_root, "ibm,secure-boot", NULL); > + if (secureboot) > + enabled = (*secureboot > 1) ? true : false; > + }
Please don't use of_get_property() in new code. Use one of the properly typed accessors that handles endian conversion for you.
cheers
| |