[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <87zhhs5p39.fsf@mpe.ellerman.id.au>
Date: Wed, 23 Oct 2019 10:37:30 +1100
From: Michael Ellerman <mpe@...erman.id.au>
To: Nayna Jain <nayna@...ux.ibm.com>, linuxppc-dev@...abs.org,
linux-efi@...r.kernel.org, linux-integrity@...r.kernel.org
Cc: linux-kernel@...r.kernel.org,
Benjamin Herrenschmidt <benh@...nel.crashing.org>,
Paul Mackerras <paulus@...ba.org>,
Ard Biesheuvel <ard.biesheuvel@...aro.org>,
Jeremy Kerr <jk@...abs.org>,
Matthew Garret <matthew.garret@...ula.com>,
Mimi Zohar <zohar@...ux.ibm.com>,
Greg Kroah-Hartman <gregkh@...uxfoundation.org>,
Claudio Carvalho <cclaudio@...ux.ibm.com>,
George Wilson <gcwilson@...ux.ibm.com>,
Elaine Palmer <erpalmer@...ibm.com>,
Eric Ricther <erichte@...ux.ibm.com>,
Oliver O'Halloran <oohall@...il.com>,
Nayna Jain <nayna@...ux.ibm.com>,
Prakhar Srivastava <prsriva02@...il.com>,
Lakshmi Ramasubramanian <nramas@...ux.microsoft.com>
Subject: Re: [PATCH v8 1/8] powerpc: detect the secure boot mode of the system
Nayna Jain <nayna@...ux.ibm.com> writes:
> diff --git a/arch/powerpc/kernel/secure_boot.c b/arch/powerpc/kernel/secure_boot.c
> new file mode 100644
> index 000000000000..99bba7915629
> --- /dev/null
> +++ b/arch/powerpc/kernel/secure_boot.c
> @@ -0,0 +1,30 @@
> +// SPDX-License-Identifier: GPL-2.0
> +/*
> + * Copyright (C) 2019 IBM Corporation
> + * Author: Nayna Jain
> + */
> +#include <linux/types.h>
> +#include <linux/of.h>
> +#include <asm/secure_boot.h>
> +
> +bool is_ppc_secureboot_enabled(void)
> +{
> + struct device_node *node;
> + bool enabled = false;
> +
> + node = of_find_compatible_node(NULL, NULL, "ibm,secvar-v1");
If this found a node then you have a node with an elevated refcount
which you need to drop on the way out.
> + if (!of_device_is_available(node)) {
> + pr_err("Cannot find secure variable node in device tree; failing to secure state\n");
> + goto out;
> + }
> +
> + /*
> + * secureboot is enabled if os-secure-enforcing property exists,
> + * else disabled.
> + */
> + enabled = of_property_read_bool(node, "os-secure-enforcing");
> +
> +out:
So here you need:
of_node_put(node);
> + pr_info("Secure boot mode %s\n", enabled ? "enabled" : "disabled");
> + return enabled;
> +}
cheers
Powered by blists - more mailing lists