[PATCH v5 1/4] powerpc/powernv: Add OPAL API interface to access secure variable
Lakshmi Ramasubramanian
nramas at linux.microsoft.com
Sat Oct 26 02:48:36 AEDT 2019
On 10/24/19 5:47 PM, Nayna Jain wrote:
>
> diff --git a/arch/powerpc/include/asm/opal-api.h b/arch/powerpc/include/asm/opal-api.h
> index 378e3997845a..c1f25a760eb1 100644
> --- a/arch/powerpc/include/asm/opal-api.h
> +++ b/arch/powerpc/include/asm/opal-api.h
> @@ -211,7 +211,10 @@
> #define OPAL_MPIPL_UPDATE 173
> #define OPAL_MPIPL_REGISTER_TAG 174
> #define OPAL_MPIPL_QUERY_TAG 175
> -#define OPAL_LAST 175
> +#define OPAL_SECVAR_GET 176
> +#define OPAL_SECVAR_GET_NEXT 177
> +#define OPAL_SECVAR_ENQUEUE_UPDATE 178
> +#define OPAL_LAST 178
Adjust indentation in the above #defines.
> diff --git a/arch/powerpc/include/asm/opal.h b/arch/powerpc/include/asm/opal.h
> index a0cf8fba4d12..9986ac34b8e2 100644
> --- a/arch/powerpc/include/asm/opal.h
> +++ b/arch/powerpc/include/asm/opal.h
> @@ -298,6 +298,13 @@ int opal_sensor_group_clear(u32 group_hndl, int token);
> int opal_sensor_group_enable(u32 group_hndl, int token, bool enable);
> int opal_nx_coproc_init(uint32_t chip_id, uint32_t ct);
>
> +int opal_secvar_get(const char *key, uint64_t key_len, u8 *data,
> + uint64_t *data_size);
> +int opal_secvar_get_next(const char *key, uint64_t *key_len,
> + uint64_t key_buf_size);
> +int opal_secvar_enqueue_update(const char *key, uint64_t key_len, u8 *data,
> + uint64_t data_size);
> +
Fix alignment of the parameters in the 2nd line.
Same comment in a few other files in this change set.
> +
> +static int opal_get_variable(const char *key, uint64_t ksize,
> + u8 *data, uint64_t *dsize)
> +{
> + int rc;
> +
> + if (!key || !dsize)
> + return -EINVAL;
> +
> + *dsize = cpu_to_be64(*dsize);
> +
> + rc = opal_secvar_get(key, ksize, data, dsize);
> +
> + *dsize = be64_to_cpu(*dsize);
Is it ok to update dsize even if return code (rc) from opal_secvar_get
is an error? Just wanted to confirm.
> +
> + *keylen = cpu_to_be64(*keylen);
> +
> + rc = opal_secvar_get_next(key, keylen, keybufsize);
> +
> + *keylen = be64_to_cpu(*keylen);
Same comment as above.
> +
> + set_secvar_ops(&opal_secvar_ops);
Does this set function return status?
> +
> + return 0;
> +}
More information about the Linuxppc-dev
mailing list