[PATCH v13 16/19] tpm, tpm_tis: Allow locality to be set to a different value

ALOK TIWARI alok.a.tiwari at oracle.com
Sat Apr 12 12:15:52 PDT 2025



On 11-04-2025 02:11, Ross Philipson wrote:
> DRTM needs to be able to set the locality used by kernel. Provide
> a one-shot function tpm_chip_set_locality() for the purpose.
> 
> Signed-off-by: Ross Philipson <ross.philipson at oracle.com>
> Signed-off-by: Jarkko Sakkinen <jarkko at kernel.org>
> ---
>   drivers/char/tpm/tpm-chip.c     | 33 ++++++++++++++++++++++++++++++++-
>   drivers/char/tpm/tpm_tis_core.c |  2 ++
>   include/linux/tpm.h             |  4 ++++
>   3 files changed, 38 insertions(+), 1 deletion(-)
> 
> +/**
> + * tpm_chip_set_locality() - Set the TPM locality kernel uses
> + * @chip:	&tpm_chip instance
> + * @locality:   new locality
> + *
> + * This a one-shot function. Returns zero or POSIX error on failure.
> + */
> +int tpm_chip_set_locality(struct tpm_chip *chip, u8 locality)
> +{
> +	int ret;
> +
> +	if (locality < 0 || locality >= TPM_MAX_LOCALITY)
> +		return -EINVAL;
> +
> +	ret = tpm_try_get_ops(chip);
> +	if (ret)
> +		return ret;
> +
> +	if (!(chip->flags & TPM_CHIP_FLAG_SET_LOCALITY_ENABLED)) {
> +		tpm_put_ops(chip);
> +		return -EINVAL;
> +	}
> +
> +	chip->kernel_locality = locality;
> +	chip->flags &= ~TPM_CHIP_FLAG_SET_LOCALITY_ENABLED;
> +	tpm_put_ops(chip);
> +	return 0;

a '\n' before return is customary

> +}
> +EXPORT_SYMBOL_GPL(tpm_chip_set_locality);
> diff --git a/drivers/char/tpm/tpm_tis_core.c b/drivers/char/tpm/tpm_tis_core.c


Thanks,
Alok



More information about the kexec mailing list