public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Jarkko Sakkinen <jarkko@kernel.org>
To: ross.philipson@oracle.com
Cc: "Daniel P. Smith" <dpsmith@apertussolutions.com>,
	linux-kernel@vger.kernel.org, x86@kernel.org,
	linux-integrity@vger.kernel.org, linux-doc@vger.kernel.org,
	linux-crypto@vger.kernel.org, kexec@lists.infradead.org,
	linux-efi@vger.kernel.org, iommu@lists.linux.dev,
	tglx@linutronix.de, mingo@redhat.com, bp@alien8.de,
	hpa@zytor.com, dave.hansen@linux.intel.com, ardb@kernel.org,
	mjg59@srcf.ucam.org, James.Bottomley@hansenpartnership.com,
	peterhuewe@gmx.de, jgg@ziepe.ca, luto@amacapital.net,
	nivedita@alum.mit.edu, herbert@gondor.apana.org.au,
	davem@davemloft.net, corbet@lwn.net, ebiederm@xmission.com,
	dwmw2@infradead.org, baolu.lu@linux.intel.com,
	kanth.ghatraju@oracle.com, andrew.cooper3@citrix.com,
	trenchboot-devel@googlegroups.com
Subject: Re: [PATCH v15 02/28] tpm: Move TPM1 specific definitions and functions to new headers
Date: Sun, 8 Feb 2026 15:39:23 +0200	[thread overview]
Message-ID: <aYiSC5HFWYvSB50d@kernel.org> (raw)
In-Reply-To: <6e1e771c-ecd4-4ab6-ba9f-900f34c5d89d@oracle.com>

On Wed, Feb 04, 2026 at 09:44:34AM -0800, ross.philipson@oracle.com wrote:
> On 2/1/26 8:23 AM, Daniel P. Smith wrote:
> > On 1/19/26 18:57, Jarkko Sakkinen wrote:
> > > On Mon, Dec 15, 2025 at 03:32:50PM -0800, Ross Philipson wrote:
> > > > This gathers all the TPM1 definitions and structures into two separate
> > > > header files (public tpm1.h and private tpm1_structs.h). The definitions
> > > > moved to these files correspond to the TCG specification for TPM 1 family:
> > > > 
> > > > TPM 1.2 Main Specification
> > > >   -  https://urldefense.com/v3/__https://trustedcomputinggroup.org/resource/tpm-main-specification/__;!!ACWV5N9M2RV99hQ!OivTxO-R0nvBJYXIV-T0n0fq0wY64MTgdaecPzAauxrFkRxTcQ6CuBEcXmZZYY1KfZlqmfLTZBbPaEr7Y8k7hJk9_mQ$
> > > > Note that the structures were pulled into tpm1_structs.h to allow their
> > > > external reuse.
> > > > 
> > > > Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com>
> > > > Signed-off-by: Ross Philipson <ross.philipson@oracle.com>
> > > > ---
> > > >   drivers/char/tpm/tpm.h          | 98 +--------------------------------
> > > >   drivers/char/tpm/tpm1-cmd.c     |  5 --
> > > >   drivers/char/tpm/tpm1_structs.h | 97 ++++++++++++++++++++++++++++++++
> > > 
> > > I think you are overcomplicating the patch set and doing more
> > > than you really need to do.
> > > 
> > > I.e. structs could go also just as well to tpm_command.h. We
> > > will deal with if/when that file ever grows too large. It's
> > > absolutely not a priority for this patch set.
> > 
> > Ack.
> > 
> > > >   include/linux/tpm1.h            | 34 +++++++++++-
> > > >   4 files changed, 132 insertions(+), 102 deletions(-)
> > > >   create mode 100644 drivers/char/tpm/tpm1_structs.h
> > > > 
> > > > diff --git a/drivers/char/tpm/tpm.h b/drivers/char/tpm/tpm.h
> > > > index ca391b2a211c..1f9f8540eede 100644
> > > > --- a/drivers/char/tpm/tpm.h
> > > > +++ b/drivers/char/tpm/tpm.h
> > > > @@ -50,105 +50,9 @@ enum tpm_addr {
> > > >       TPM_ADDR = 0x4E,
> > > >   };
> > > > -#define TPM_WARN_RETRY          0x800
> > > > -#define TPM_WARN_DOING_SELFTEST 0x802
> > > > -#define TPM_ERR_DEACTIVATED     0x6
> > > > -#define TPM_ERR_DISABLED        0x7
> > > > -#define TPM_ERR_FAILEDSELFTEST  0x1C
> > > > -#define TPM_ERR_INVALID_POSTINIT 38
> > > > -
> > > > -#define TPM_TAG_RQU_COMMAND 193
> > > > -
> > > >   /* TPM2 specific constants. */
> > > >   #define TPM2_SPACE_BUFFER_SIZE        16384 /* 16 kB */
> > > > -struct    stclear_flags_t {
> > > > -    __be16    tag;
> > > > -    u8    deactivated;
> > > > -    u8    disableForceClear;
> > > > -    u8    physicalPresence;
> > > > -    u8    physicalPresenceLock;
> > > > -    u8    bGlobalLock;
> > > > -} __packed;
> > > > -
> > > > -struct tpm1_version {
> > > > -    u8 major;
> > > > -    u8 minor;
> > > > -    u8 rev_major;
> > > > -    u8 rev_minor;
> > > > -} __packed;
> > > > -
> > > > -struct tpm1_version2 {
> > > > -    __be16 tag;
> > > > -    struct tpm1_version version;
> > > > -} __packed;
> > > > -
> > > > -struct    timeout_t {
> > > > -    __be32    a;
> > > > -    __be32    b;
> > > > -    __be32    c;
> > > > -    __be32    d;
> > > > -} __packed;
> > > > -
> > > > -struct duration_t {
> > > > -    __be32    tpm_short;
> > > > -    __be32    tpm_medium;
> > > > -    __be32    tpm_long;
> > > > -} __packed;
> > > > -
> > > > -struct permanent_flags_t {
> > > > -    __be16    tag;
> > > > -    u8    disable;
> > > > -    u8    ownership;
> > > > -    u8    deactivated;
> > > > -    u8    readPubek;
> > > > -    u8    disableOwnerClear;
> > > > -    u8    allowMaintenance;
> > > > -    u8    physicalPresenceLifetimeLock;
> > > > -    u8    physicalPresenceHWEnable;
> > > > -    u8    physicalPresenceCMDEnable;
> > > > -    u8    CEKPUsed;
> > > > -    u8    TPMpost;
> > > > -    u8    TPMpostLock;
> > > > -    u8    FIPS;
> > > > -    u8    operator;
> > > > -    u8    enableRevokeEK;
> > > > -    u8    nvLocked;
> > > > -    u8    readSRKPub;
> > > > -    u8    tpmEstablished;
> > > > -    u8    maintenanceDone;
> > > > -    u8    disableFullDALogicInfo;
> > > > -} __packed;
> > > > -
> > > > -typedef union {
> > > > -    struct    permanent_flags_t perm_flags;
> > > > -    struct    stclear_flags_t    stclear_flags;
> > > > -    __u8    owned;
> > > > -    __be32    num_pcrs;
> > > > -    struct tpm1_version version1;
> > > > -    struct tpm1_version2 version2;
> > > > -    __be32    manufacturer_id;
> > > > -    struct timeout_t  timeout;
> > > > -    struct duration_t duration;
> > > > -} cap_t;
> > > > -
> > > > -enum tpm_capabilities {
> > > > -    TPM_CAP_FLAG = 4,
> > > > -    TPM_CAP_PROP = 5,
> > > > -    TPM_CAP_VERSION_1_1 = 0x06,
> > > > -    TPM_CAP_VERSION_1_2 = 0x1A,
> > > > -};
> > > > -
> > > > -enum tpm_sub_capabilities {
> > > > -    TPM_CAP_PROP_PCR = 0x101,
> > > > -    TPM_CAP_PROP_MANUFACTURER = 0x103,
> > > > -    TPM_CAP_FLAG_PERM = 0x108,
> > > > -    TPM_CAP_FLAG_VOL = 0x109,
> > > > -    TPM_CAP_PROP_OWNER = 0x111,
> > > > -    TPM_CAP_PROP_TIS_TIMEOUT = 0x115,
> > > > -    TPM_CAP_PROP_TIS_DURATION = 0x120,
> > > > -};
> > > > -
> > > >   enum tpm2_pt_props {
> > > >       TPM2_PT_NONE = 0x00000000,
> > > >       TPM2_PT_GROUP = 0x00000100,
> > > > @@ -229,6 +133,8 @@ enum tpm2_pt_props {
> > > >    * compiler warnings about stack frame size. */
> > > >   #define TPM_MAX_RNG_DATA    128
> > > > +#include "tpm1_structs.h"
> > > > +
> > > >   extern const struct class tpm_class;
> > > >   extern const struct class tpmrm_class;
> > > >   extern dev_t tpm_devt;
> > > > diff --git a/drivers/char/tpm/tpm1-cmd.c b/drivers/char/tpm/tpm1-cmd.c
> > > > index f29827b454d2..02f20a0aa37d 100644
> > > > --- a/drivers/char/tpm/tpm1-cmd.c
> > > > +++ b/drivers/char/tpm/tpm1-cmd.c
> > > > @@ -505,11 +505,6 @@ ssize_t tpm1_getcap(struct tpm_chip *chip, u32 subcap_id, cap_t *cap,
> > > >   }
> > > >   EXPORT_SYMBOL_GPL(tpm1_getcap);
> > > > -struct tpm1_get_random_out {
> > > > -    __be32 rng_data_len;
> > > > -    u8 rng_data[TPM_MAX_RNG_DATA];
> > > > -} __packed;
> > > > -
> > > >   /**
> > > >    * tpm1_get_random() - get random bytes from the TPM's RNG
> > > >    * @chip:    a &struct tpm_chip instance
> > > > diff --git a/drivers/char/tpm/tpm1_structs.h b/drivers/char/tpm/tpm1_structs.h
> > > > new file mode 100644
> > > > index 000000000000..ad21376af5ab
> > > > --- /dev/null
> > > > +++ b/drivers/char/tpm/tpm1_structs.h
> > > > @@ -0,0 +1,97 @@
> > > > +/* SPDX-License-Identifier: GPL-2.0-only */
> > > > +/*
> > > > + * Copyright (C) 2004 IBM Corporation
> > > > + * Copyright (C) 2015 Intel Corporation
> > > > + *
> > > > + * Authors:
> > > > + * Leendert van Doorn <leendert@watson.ibm.com>
> > > > + * Dave Safford <safford@watson.ibm.com>
> > > > + * Reiner Sailer <sailer@watson.ibm.com>
> > > > + * Kylene Hall <kjhall@us.ibm.com>
> > > > + *
> > > > + * Maintained by: <tpmdd-devel@lists.sourceforge.net>
> > > > + *
> > > > + * Device driver for TCG/TCPA TPM (trusted platform module).
> > > > + * Specifications at https://urldefense.com/v3/__http://www.trustedcomputinggroup.org__;!!ACWV5N9M2RV99hQ!OivTxO-R0nvBJYXIV-T0n0fq0wY64MTgdaecPzAauxrFkRxTcQ6CuBEcXmZZYY1KfZlqmfLTZBbPaEr7Y8k7HW5iz_w$ + */
> > > > +
> > > > +#ifndef __TPM1_STRUCTS_H__
> > > > +#define __TPM1_STRUCTS_H__
> > > > +
> > > > +struct    stclear_flags_t {
> > > > +    __be16    tag;
> > > > +    u8    deactivated;
> > > > +    u8    disableForceClear;
> > > > +    u8    physicalPresence;
> > > > +    u8    physicalPresenceLock;
> > > > +    u8    bGlobalLock;
> > > > +} __packed;
> > > 
> > > 
> > > Don't retain alignment.
> > > 
> > 
> > Okay.
> 
> I wanted to clarify what you are asking here. Do you mean to just not pack the structs? It seems some of these structs define the responses from the TPM chip and I would assume they are packed this way.
> 
> > 
> > > > +
> > > > +struct tpm1_version {
> > > > +    u8 major;
> > > > +    u8 minor;
> > > > +    u8 rev_major;
> > > > +    u8 rev_minor;
> > > > +} __packed;
> > > > +
> > > > +struct tpm1_version2 {
> > > > +    __be16 tag;
> > > > +    struct tpm1_version version;
> > > > +} __packed;
> > > > +
> > > > +struct    timeout_t {
> > > > +    __be32    a;
> > > > +    __be32    b;
> > > > +    __be32    c;
> > > > +    __be32    d;
> > > > +} __packed;
> > > > +
> > > > +struct duration_t {
> > > > +    __be32    tpm_short;
> > > > +    __be32    tpm_medium;
> > > > +    __be32    tpm_long;
> > > > +} __packed;
> > > > +
> > > > +struct permanent_flags_t {
> > > > +    __be16    tag;
> > > > +    u8    disable;
> > > > +    u8    ownership;
> > > > +    u8    deactivated;
> > > > +    u8    readPubek;
> > > > +    u8    disableOwnerClear;
> > > > +    u8    allowMaintenance;
> > > > +    u8    physicalPresenceLifetimeLock;
> > > > +    u8    physicalPresenceHWEnable;
> > > > +    u8    physicalPresenceCMDEnable;
> > > > +    u8    CEKPUsed;
> > > > +    u8    TPMpost;
> > > > +    u8    TPMpostLock;
> > > > +    u8    FIPS;
> > > > +    u8    operator;
> > > > +    u8    enableRevokeEK;
> > > > +    u8    nvLocked;
> > > > +    u8    readSRKPub;
> > > > +    u8    tpmEstablished;
> > > > +    u8    maintenanceDone;
> > > > +    u8    disableFullDALogicInfo;
> > > > +} __packed;
> > > > +
> > > > +/* Gather all capabilities related information info one type */
> > > > +typedef union {
> > > > +    struct    permanent_flags_t perm_flags;
> > > > +    struct    stclear_flags_t    stclear_flags;
> > > > +    __u8    owned;
> > > > +    __be32    num_pcrs;
> > > > +    struct tpm1_version version1;
> > > > +    struct tpm1_version2 version2;
> > > > +    __be32    manufacturer_id;
> > > > +    struct timeout_t  timeout;
> > > > +    struct duration_t duration;
> > > > +} cap_t;
> > > 
> > > Don't retain alignment here.
> 
> Again to clarify, do you mean none of these structs should be packed (and thus the union won't be either)?

I only meant the syntactical (is that even a word) alignment :-)

I don't know what purpose does it serve here, as struct members already
convolute, and alignment then sort of add up to the convolution.

E.g., "__be32 manufacturer_id" with just one spacebar is what I mean.

> 
> Thanks
> Ross
> 
> > > 
> > 
> > Okay.
> > 
> > > > +
> > > > +struct tpm1_get_random_out {
> > > > +    __be32 rng_data_len;
> > > > +    u8 rng_data[TPM_MAX_RNG_DATA];
> > > > +} __packed;
> > > > +
> > > > +#endif
> > > > diff --git a/include/linux/tpm1.h b/include/linux/tpm1.h
> > > > index 54c6c211eb9e..5fad94ac8d15 100644
> > > > --- a/include/linux/tpm1.h
> > > > +++ b/include/linux/tpm1.h
> > > > @@ -47,7 +47,39 @@ enum tpm_command_ordinals {
> > > >       TPM_ORD_UNSEAL            = 24,
> > > >   };
> > > > -/* Other constants */
> > > > +enum tpm_capabilities {
> > > > +    TPM_CAP_FLAG        = 4,
> > > > +    TPM_CAP_PROP        = 5,
> > > > +    TPM_CAP_VERSION_1_1    = 0x06,
> > > > +    TPM_CAP_VERSION_1_2    = 0x1A,
> > > > +};
> > > > +
> > > > +enum tpm_sub_capabilities {
> > > > +    TPM_CAP_PROP_PCR        = 0x101,
> > > > +    TPM_CAP_PROP_MANUFACTURER    = 0x103,
> > > > +    TPM_CAP_FLAG_PERM        = 0x108,
> > > > +    TPM_CAP_FLAG_VOL        = 0x109,
> > > > +    TPM_CAP_PROP_OWNER        = 0x111,
> > > > +    TPM_CAP_PROP_TIS_TIMEOUT    = 0x115,
> > > > +    TPM_CAP_PROP_TIS_DURATION    = 0x120,
> > > > +};
> > > > +
> > > > +/* Return Codes */
> > > > +enum tpm_return_codes {
> > > > +    TPM_BASE_MASK            = 0,
> > > > +    TPM_NON_FATAL_MASK        = 0x00000800,
> > > > +    TPM_SUCCESS            = TPM_BASE_MASK + 0,
> > > > +    TPM_ERR_DEACTIVATED        = TPM_BASE_MASK + 6,
> > > > +    TPM_ERR_DISABLED        = TPM_BASE_MASK + 7,
> > > > +    TPM_ERR_FAIL            = TPM_BASE_MASK + 9,
> > > > +    TPM_ERR_FAILEDSELFTEST        = TPM_BASE_MASK + 28,
> > > > +    TPM_ERR_INVALID_POSTINIT    = TPM_BASE_MASK + 38,
> > > > +    TPM_ERR_INVALID_FAMILY        = TPM_BASE_MASK + 55,
> > > > +    TPM_WARN_RETRY            = TPM_BASE_MASK + TPM_NON_FATAL_MASK + 0,
> > > > +    TPM_WARN_DOING_SELFTEST        = TPM_BASE_MASK + TPM_NON_FATAL_MASK + 2,
> > > > +};
> > > > +
> > > > +/* Misc. constants */
> > > 
> > > These constants should be relocated in a separate patch.
> > > 
> > 
> > Okay.
> > 
> > > >   #define SRKHANDLE                       0x40000000
> > > >   #define TPM_NONCE_SIZE                  20
> > > >   #define TPM_ST_CLEAR            1
> > > > -- 
> > > > 2.43.7
> > > > 
> > > 
> > > BR, Jarkko
> > 
> 

BR, Jarkko

  reply	other threads:[~2026-02-08 13:39 UTC|newest]

Thread overview: 79+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-12-15 23:32 [PATCH v15 00/28] x86: Secure Launch support for Intel TXT Ross Philipson
2025-12-15 23:32 ` [PATCH v15 01/28] tpm: Initial step to reorganize TPM public headers Ross Philipson
2026-01-19 23:40   ` Jarkko Sakkinen
2026-01-19 23:52     ` Jarkko Sakkinen
2026-02-01 16:21       ` Daniel P. Smith
2026-02-01 16:20     ` Daniel P. Smith
2026-02-01 22:46       ` Jarkko Sakkinen
2025-12-15 23:32 ` [PATCH v15 02/28] tpm: Move TPM1 specific definitions and functions to new headers Ross Philipson
2026-01-19 23:57   ` Jarkko Sakkinen
2026-02-01 16:23     ` Daniel P. Smith
2026-02-04 17:44       ` ross.philipson
2026-02-08 13:39         ` Jarkko Sakkinen [this message]
2025-12-15 23:32 ` [PATCH v15 03/28] tpm: Move TPM2 " Ross Philipson
2025-12-15 23:32 ` [PATCH v15 04/28] tpm: Move TPM common base definitions to new public common header Ross Philipson
2025-12-15 23:32 ` [PATCH v15 05/28] tpm: Move platform specific definitions to the new PTP header Ross Philipson
2025-12-15 23:32 ` [PATCH v15 06/28] tpm: Add TPM buffer support header for standalone reuse Ross Philipson
2025-12-15 23:32 ` [PATCH v15 07/28] tpm: Remove main TPM header from TPM event log header Ross Philipson
2025-12-15 23:32 ` [PATCH v15 08/28] tpm/tpm_tis: Close all localities Ross Philipson
2025-12-15 23:32 ` [PATCH v15 09/28] tpm/tpm_tis: Address positive localities in tpm_tis_request_locality() Ross Philipson
2025-12-15 23:32 ` [PATCH v15 10/28] tpm/tpm_tis: Allow locality to be set to a different value Ross Philipson
2025-12-15 23:32 ` [PATCH v15 11/28] tpm/sysfs: Show locality used by kernel Ross Philipson
2025-12-15 23:33 ` [PATCH v15 12/28] Documentation/x86: Secure Launch kernel documentation Ross Philipson
2025-12-15 23:33 ` [PATCH v15 13/28] x86: Secure Launch Kconfig Ross Philipson
2025-12-16  3:20   ` Randy Dunlap
2025-12-17 18:11     ` ross.philipson
2025-12-15 23:33 ` [PATCH v15 14/28] x86: Secure Launch Resource Table header file Ross Philipson
2025-12-15 23:33 ` [PATCH v15 15/28] x86: Secure Launch main " Ross Philipson
2025-12-15 23:33 ` [PATCH v15 16/28] x86/txt: Intel Trusted eXecution Technology (TXT) definitions Ross Philipson
2025-12-16 22:14   ` Dave Hansen
2025-12-17 18:44     ` ross.philipson
2025-12-18 16:34   ` Dave Hansen
2025-12-18 18:17     ` ross.philipson
2025-12-15 23:33 ` [PATCH v15 17/28] x86: Add early SHA-1 support for Secure Launch early measurements Ross Philipson
2025-12-16  0:21   ` Eric Biggers
2025-12-17 18:10     ` ross.philipson
2025-12-15 23:33 ` [PATCH v15 18/28] x86: Add early SHA-256 " Ross Philipson
2025-12-15 23:33 ` [PATCH v15 19/28] x86/tpm: Early TPM PCR extending driver Ross Philipson
2025-12-16 21:53   ` Dave Hansen
2025-12-17 18:40     ` ross.philipson
2025-12-17 19:06       ` Dave Hansen
2025-12-19 21:26     ` Daniel P. Smith
2026-01-03 20:44       ` Dave Hansen
2026-01-08 16:21         ` Daniel P. Smith
2026-01-20  0:10   ` Jarkko Sakkinen
2025-12-15 23:33 ` [PATCH v15 20/28] x86/msr: Add variable MTRR base/mask and x2apic ID registers Ross Philipson
2025-12-15 23:33 ` [PATCH v15 21/28] x86/boot: Place TXT MLE header in the kernel_info section Ross Philipson
2025-12-15 23:33 ` [PATCH v15 22/28] x86: Secure Launch kernel early boot stub Ross Philipson
2025-12-16 22:32   ` Dave Hansen
2025-12-17 18:47     ` ross.philipson
2025-12-15 23:33 ` [PATCH v15 23/28] x86: Secure Launch kernel late " Ross Philipson
2025-12-15 23:33 ` [PATCH v15 24/28] x86: Secure Launch SMP bringup support Ross Philipson
2025-12-15 23:33 ` [PATCH v15 25/28] kexec: Secure Launch kexec SEXIT support Ross Philipson
2025-12-15 23:33 ` [PATCH v15 26/28] x86/reboot: Secure Launch SEXIT support on reboot paths Ross Philipson
2025-12-15 23:33 ` [PATCH v15 27/28] x86: Secure Launch late initcall platform module Ross Philipson
2025-12-15 23:33 ` [PATCH v15 28/28] x86/efi: EFI stub DRTM launch support for Secure Launch Ross Philipson
2025-12-16  3:46 ` [PATCH v15 00/28] x86: Secure Launch support for Intel TXT Jarkko Sakkinen
2025-12-17 18:15   ` ross.philipson
2025-12-16 22:14 ` Dave Hansen
2026-01-08 16:36   ` Daniel P. Smith
2026-01-08 16:41     ` Dave Hansen
2026-01-08 16:46       ` Daniel P. Smith
2026-02-09 14:04 ` Ard Biesheuvel
2026-02-12 19:49   ` Daniel P. Smith
2026-02-12 19:54     ` Dave Hansen
2026-02-12 20:39     ` Ard Biesheuvel
2026-02-18 17:30       ` Ard Biesheuvel
2026-02-18 18:02         ` ross.philipson
2026-02-26 18:31         ` ross.philipson
2026-02-26 22:33           ` Ard Biesheuvel
2026-02-18 20:03       ` Andy Lutomirski
2026-02-18 20:29         ` H. Peter Anvin
2026-02-18 20:34           ` Andy Lutomirski
2026-02-18 21:04             ` Simo Sorce
2026-02-18 21:54               ` Andy Lutomirski
2026-02-19  7:54                 ` Ard Biesheuvel
2026-02-19 17:10                   ` H. Peter Anvin
2026-02-19 17:34                   ` Andy Lutomirski
2026-02-20  8:30                     ` Ard Biesheuvel
2026-02-23 21:37                       ` Daniel P. Smith

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=aYiSC5HFWYvSB50d@kernel.org \
    --to=jarkko@kernel.org \
    --cc=James.Bottomley@hansenpartnership.com \
    --cc=andrew.cooper3@citrix.com \
    --cc=ardb@kernel.org \
    --cc=baolu.lu@linux.intel.com \
    --cc=bp@alien8.de \
    --cc=corbet@lwn.net \
    --cc=dave.hansen@linux.intel.com \
    --cc=davem@davemloft.net \
    --cc=dpsmith@apertussolutions.com \
    --cc=dwmw2@infradead.org \
    --cc=ebiederm@xmission.com \
    --cc=herbert@gondor.apana.org.au \
    --cc=hpa@zytor.com \
    --cc=iommu@lists.linux.dev \
    --cc=jgg@ziepe.ca \
    --cc=kanth.ghatraju@oracle.com \
    --cc=kexec@lists.infradead.org \
    --cc=linux-crypto@vger.kernel.org \
    --cc=linux-doc@vger.kernel.org \
    --cc=linux-efi@vger.kernel.org \
    --cc=linux-integrity@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=luto@amacapital.net \
    --cc=mingo@redhat.com \
    --cc=mjg59@srcf.ucam.org \
    --cc=nivedita@alum.mit.edu \
    --cc=peterhuewe@gmx.de \
    --cc=ross.philipson@oracle.com \
    --cc=tglx@linutronix.de \
    --cc=trenchboot-devel@googlegroups.com \
    --cc=x86@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox