public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Brendan Jackman <jackmanb@google.com>
To: "Kaplan, David" <David.Kaplan@amd.com>,
	Brendan Jackman <jackmanb@google.com>,
	 Thomas Gleixner <tglx@linutronix.de>,
	Borislav Petkov <bp@alien8.de>,
	 Peter Zijlstra <peterz@infradead.org>,
	Josh Poimboeuf <jpoimboe@kernel.org>,
	 Pawan Gupta <pawan.kumar.gupta@linux.intel.com>,
	Ingo Molnar <mingo@redhat.com>,
	 Dave Hansen <dave.hansen@linux.intel.com>,
	"x86@kernel.org" <x86@kernel.org>,
	 "H . Peter Anvin" <hpa@zytor.com>
Cc: Alexander Graf <graf@amazon.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	 "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>
Subject: Re: [RFC PATCH 07/56] x86/bugs: Reset spectre_v2_user mitigations
Date: Thu, 16 Oct 2025 16:13:25 +0000	[thread overview]
Message-ID: <DDJVO9NSVDOZ.1JS1JRMXOKBB3@google.com> (raw)
In-Reply-To: <DS0PR12MB92733379567E36D5F84E83FD94E9A@DS0PR12MB9273.namprd12.prod.outlook.com>

On Thu Oct 16, 2025 at 3:26 PM UTC, David Kaplan wrote:
> [AMD Official Use Only - AMD Internal Distribution Only]
>
>> -----Original Message-----
>> From: Brendan Jackman <jackmanb@google.com>
>> Sent: Thursday, October 16, 2025 9:57 AM
>> To: Kaplan, David <David.Kaplan@amd.com>; Brendan Jackman
>> <jackmanb@google.com>; Thomas Gleixner <tglx@linutronix.de>; Borislav Petkov
>> <bp@alien8.de>; Peter Zijlstra <peterz@infradead.org>; Josh Poimboeuf
>> <jpoimboe@kernel.org>; Pawan Gupta <pawan.kumar.gupta@linux.intel.com>;
>> Ingo Molnar <mingo@redhat.com>; Dave Hansen <dave.hansen@linux.intel.com>;
>> x86@kernel.org; H . Peter Anvin <hpa@zytor.com>
>> Cc: Alexander Graf <graf@amazon.com>; Boris Ostrovsky
>> <boris.ostrovsky@oracle.com>; linux-kernel@vger.kernel.org
>> Subject: Re: [RFC PATCH 07/56] x86/bugs: Reset spectre_v2_user mitigations
>>
>> Caution: This message originated from an External Source. Use proper caution
>> when opening attachments, clicking links, or responding.
>>
>>
>> On Thu Oct 16, 2025 at 2:06 PM UTC, David Kaplan wrote:
>> > [AMD Official Use Only - AMD Internal Distribution Only]
>> >
>> >> -----Original Message-----
>> >> From: Brendan Jackman <jackmanb@google.com>
>> >> Sent: Thursday, October 16, 2025 7:54 AM
>> >> To: Kaplan, David <David.Kaplan@amd.com>; Thomas Gleixner
>> >> <tglx@linutronix.de>; Borislav Petkov <bp@alien8.de>; Peter Zijlstra
>> >> <peterz@infradead.org>; Josh Poimboeuf <jpoimboe@kernel.org>; Pawan
>> Gupta
>> >> <pawan.kumar.gupta@linux.intel.com>; Ingo Molnar <mingo@redhat.com>;
>> Dave
>> >> Hansen <dave.hansen@linux.intel.com>; x86@kernel.org; H . Peter Anvin
>> >> <hpa@zytor.com>
>> >> Cc: Alexander Graf <graf@amazon.com>; Boris Ostrovsky
>> >> <boris.ostrovsky@oracle.com>; linux-kernel@vger.kernel.org
>> >> Subject: Re: [RFC PATCH 07/56] x86/bugs: Reset spectre_v2_user mitigations
>> >>
>> >> Caution: This message originated from an External Source. Use proper caution
>> >> when opening attachments, clicking links, or responding.
>> >>
>> >>
>> >> On Mon Oct 13, 2025 at 2:33 PM UTC, David Kaplan wrote:
>> >> > Add function to reset spectre_v2_user mitigations back to their boot-time
>> >> > defaults.
>> >> >
>> >> > Signed-off-by: David Kaplan <david.kaplan@amd.com>
>> >> > ---
>> >> >  arch/x86/kernel/cpu/bugs.c | 13 +++++++++++++
>> >> >  1 file changed, 13 insertions(+)
>> >> >
>> >> > diff --git a/arch/x86/kernel/cpu/bugs.c b/arch/x86/kernel/cpu/bugs.c
>> >> > index 1f56ccb5f641..4ca46f58e384 100644
>> >> > --- a/arch/x86/kernel/cpu/bugs.c
>> >> > +++ b/arch/x86/kernel/cpu/bugs.c
>> >> > @@ -2056,6 +2056,18 @@ static void __init
>> >> spectre_v2_user_apply_mitigation(void)
>> >> >       }
>> >> >  }
>> >> >
>> >> > +#ifdef CONFIG_DYNAMIC_MITIGATIONS
>> >> > +static void spectre_v2_user_reset_mitigation(void)
>> >> > +{
>> >> > +     static_branch_disable(&switch_vcpu_ibpb);
>> >> > +     static_branch_disable(&switch_mm_always_ibpb);
>> >> > +     static_branch_disable(&switch_mm_cond_ibpb);
>> >> > +     spectre_v2_user_stibp = SPECTRE_V2_USER_NONE;
>> >> > +     spectre_v2_user_ibpb = SPECTRE_V2_USER_NONE;
>> >> > +     spectre_v2_user_cmd = SPECTRE_V2_USER_CMD_AUTO;
>> >> > +}
>> >> > +#endif
>> >> > +
>> >> >  static const char * const spectre_v2_strings[] = {
>> >> >       [SPECTRE_V2_NONE]                       = "Vulnerable",
>> >> >       [SPECTRE_V2_RETPOLINE]                  = "Mitigation: Retpolines",
>> >> > @@ -3844,5 +3856,6 @@ void arch_cpu_reset_mitigations(void)
>> >> >       spectre_v1_reset_mitigation();
>> >> >       spectre_v2_reset_mitigation();
>> >> >       retbleed_reset_mitigation();
>> >> > +     spectre_v2_user_reset_mitigation();
>> >> >  }
>> >> >  #endif
>> >>
>> >> I think this might be failing to account for task state? E.g. if a
>> >> user boots with spectre_v2=off then we ignore the PR_SPEC_DISABLE calls
>> >> that would enable IBPB-on-context-switch for that task. Then if they
>> >> enable it via this dynamic interface they probably expect their
>> >> PR_SPEC_DISABLE to take effect retroactively. I don't think it will with
>> >> the current code, do I have that right?
>> >
>> > If I'm reading the logic correct, if a process tries to do PR_SPEC_DISABLE say
>> for indirects but spectre_v2_user=off then they'll get -EPERM, so we don't ignore it.
>> >
>> > But there could be a case where spectre_v2=on (aka force), when
>> PR_SPEC_DISABLE does get ignored.  And then if spectre_v2 is changed to
>> something else like prctl then the relevant task flags weren't set.
>>
>> Er yeah good point, my example was wrong but the issue exists to some
>> extent.
>>
>> > Not sure the best way to handle this...even if we were to always set the task flags
>> in this case, there could be other cases where the process might think it could set
>> this flag and then get surprised with an -EPERM.  Open to ideas here.
>>
>> Hm, isn't the issue of surprise-EPERM orthogonal to the task state
>> issue? I suspect I'm doing a bit of motivated reasoning here, but it
>> feels to me like a userspace bug for someone to infer statically whether
>> they should expect -EPERM here. Like, the docs don't say that much, but
>> they do say something about what the prctls do, and that doesn't include
>> anything about the _reason_ you got -EPERM.
>>
>> (BTW, it's not relevant here but I actually think -EPERM is a bug [0])
>>
>> [0] https://lore.kernel.org/all/DDJU0415JEBQ.H2SD942NMDWX@google.com/
>
> Well, if you do PR_GET_SPECULATION_CTRL, and it says PR_SPEC_PRCTL=1 that means you can control it per-task.  But then if you later get an error message when you try to set it, that would seem weird.

Yeah I see, I didn't notice there was a case where we _explicitly_ say
it can be controlled (I was just thinking of -EPERM/-ENXIO). It does
seem weird to suddenly countermand that one.

> I don't know if anyone is actually using these controls today but I am nervous about causing confusion (even if the API is rather unclear).

I do know of some users of this API.

> One potential option here could be to always return PR_SPEC_ENABLE if dynamic mitigations are enabled (telling userspace they cannot control the mitigation and they should assume the speculation is enabled).  Or maybe create new options that allow a process to say 'try to give me this speculation control' but without any promise that they'll actually get it.
>
> Assuming that dynamic mitigations get locked down late in boot as part of kernel lockdown, there may only be a relatively small period of time where there is a risk of things changing underneath a task so maybe telling userspace they can't control these until things are locked is ok?

I don't think this should be designed under the assumption that everyone
is using lockdown. It's correct that lockdown disables this feature but
that doesn't mean lockdown is the right security decision for all users.
It would be a shame if it didn't actually support the use case of "oh
no, we found out our assumptions were wrong, we want to change our CPU
posture without rebooting everything". And I think if we just always
returned PR_SPEC_ENABLE that would essentially just mean you can't have
both dynamic control and efficient per-process control.

For PR_SPEC_ENABLE/DISABLE in the return value of
PR_GET_SPECULATION_CTRL, I think we should just return the current state
accurately. The fact that this can now change below userspace's feet
seems kinda above their pay-grade to me.

For PR_SPEC_PRCTl, I guess we could leave it clear and add a new bit to
say "I'm dynamic, you can try the PRCTL but I might randomly fail"? Then
code that doesn't know about the new bit doesn't get surprise errors, it
just has to do whatever fallbacks it would do on unsupported hardware.
Then new code can be updated to deal with random failures gracefully.

This seems a bit over-complicated though, in practice it seems pretty
likely that just hitting people with the unexpected errors is sort of
OK? At least for the usecase I'm seeing everything through the lens of,
I think it would be. 

  reply	other threads:[~2025-10-16 16:13 UTC|newest]

Thread overview: 175+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-10-13 14:33 [RFC PATCH 00/56] Dynamic mitigations David Kaplan
2025-10-13 14:33 ` [RFC PATCH 01/56] Documentation/admin-guide: Add documentation David Kaplan
2025-10-16 21:24   ` Josh Poimboeuf
2025-10-17 14:04     ` Kaplan, David
2025-10-18 13:39   ` Borislav Petkov
2025-10-20 13:53     ` Kaplan, David
2025-10-22 11:43       ` Borislav Petkov
2025-10-13 14:33 ` [RFC PATCH 02/56] x86/Kconfig: Add CONFIG_DYNAMIC_MITIGATIONS David Kaplan
2025-10-16 21:20   ` Josh Poimboeuf
2025-10-17 13:57     ` Kaplan, David
2025-10-13 14:33 ` [RFC PATCH 03/56] cpu: Reset global mitigations David Kaplan
2025-10-16 21:34   ` Josh Poimboeuf
2025-10-17 14:05     ` Kaplan, David
2025-10-17 14:19       ` Kaplan, David
2025-10-17 16:03         ` Josh Poimboeuf
2025-10-17 16:36           ` Borislav Petkov
2025-10-13 14:33 ` [RFC PATCH 04/56] x86/bugs: Reset spectre_v1 mitigations David Kaplan
2025-10-14 18:37   ` Dave Hansen
2025-10-14 19:16     ` Kaplan, David
2025-10-29 11:57   ` Borislav Petkov
2025-10-29 13:48     ` Kaplan, David
2025-11-03 18:24       ` Borislav Petkov
2025-10-13 14:33 ` [RFC PATCH 05/56] x86/bugs: Reset spectre_v2 mitigations David Kaplan
2025-11-03 19:31   ` Borislav Petkov
2025-11-03 20:10     ` Kaplan, David
2025-11-03 20:28       ` Borislav Petkov
2025-11-05  2:29         ` Josh Poimboeuf
2025-11-05 11:03           ` Borislav Petkov
2025-11-05 17:06             ` Josh Poimboeuf
2025-11-05 20:04               ` Borislav Petkov
2025-11-05 20:21                 ` Kaplan, David
2025-11-05 20:52                   ` Josh Poimboeuf
2025-11-14 17:14                 ` [PATCH] x86/bugs: Get rid of the forward declarations Borislav Petkov
2025-11-14 19:19                   ` Josh Poimboeuf
2025-11-14 19:31                     ` Borislav Petkov
2025-11-14 20:04                   ` Pawan Gupta
2025-10-13 14:33 ` [RFC PATCH 06/56] x86/bugs: Reset retbleed mitigations David Kaplan
2025-10-13 14:33 ` [RFC PATCH 07/56] x86/bugs: Reset spectre_v2_user mitigations David Kaplan
2025-10-16 12:54   ` Brendan Jackman
2025-10-16 14:06     ` Kaplan, David
2025-10-16 14:56       ` Brendan Jackman
2025-10-16 15:26         ` Kaplan, David
2025-10-16 16:13           ` Brendan Jackman [this message]
2025-11-26 11:23             ` Borislav Petkov
2025-12-01 16:53               ` Kaplan, David
2025-12-03 12:31                 ` Borislav Petkov
2025-12-03 17:02                   ` Kaplan, David
2025-12-03 17:35                     ` Borislav Petkov
2025-12-03 20:14                       ` Kaplan, David
2025-12-04 15:07                         ` Borislav Petkov
2025-10-13 14:33 ` [RFC PATCH 08/56] x86/bugs: Reset SSB mitigations David Kaplan
2025-10-17 15:13   ` Nikolay Borisov
2025-10-17 15:56     ` Kaplan, David
2026-01-20 13:07   ` Borislav Petkov
2025-10-13 14:33 ` [RFC PATCH 09/56] x86/bugs: Reset L1TF mitigations David Kaplan
2025-10-13 14:33 ` [RFC PATCH 10/56] x86/bugs: Reset MDS mitigations David Kaplan
2025-10-13 14:33 ` [RFC PATCH 11/56] x86/bugs: Reset MMIO mitigations David Kaplan
2026-01-26 13:05   ` Borislav Petkov
2026-01-26 14:51     ` Kaplan, David
2025-10-13 14:34 ` [RFC PATCH 12/56] x86/bugs: Reset SRBDS mitigations David Kaplan
2025-10-13 14:34 ` [RFC PATCH 13/56] x86/bugs: Reset SRSO mitigations David Kaplan
2025-10-13 14:34 ` [RFC PATCH 14/56] x86/bugs: Reset GDS mitigations David Kaplan
2025-10-24  2:40   ` Pawan Gupta
2025-10-24 14:43     ` Kaplan, David
2025-10-13 14:34 ` [RFC PATCH 15/56] x86/bugs: Reset BHI mitigations David Kaplan
2025-10-24  2:49   ` Pawan Gupta
2025-10-24 15:02     ` Kaplan, David
2025-10-13 14:34 ` [RFC PATCH 16/56] x86/bugs: Reset ITS mitigation David Kaplan
2025-10-13 14:34 ` [RFC PATCH 17/56] x86/bugs: Reset TSA mitigations David Kaplan
2025-10-13 14:34 ` [RFC PATCH 18/56] x86/bugs: Reset VMSCAPE mitigations David Kaplan
2025-10-13 14:34 ` [RFC PATCH 19/56] x86/bugs: Define bugs_smt_disable() David Kaplan
2025-10-13 14:34 ` [RFC PATCH 20/56] x86/bugs: Move bugs.c logic out of .init section David Kaplan
2025-10-16 12:31   ` Brendan Jackman
2025-10-16 13:46     ` Kaplan, David
2025-10-16 14:33       ` Brendan Jackman
2025-10-13 14:34 ` [RFC PATCH 21/56] x86/callthunks: Move logic out of .init David Kaplan
2025-10-13 14:34 ` [RFC PATCH 22/56] cpu: Move mitigation " David Kaplan
2025-10-13 14:34 ` [RFC PATCH 23/56] x86/vmlinux.lds: Move alternative sections David Kaplan
2025-10-13 14:34 ` [RFC PATCH 24/56] x86/vmlinux.lds: Move altinstr_aux conditionally David Kaplan
2025-10-13 14:34 ` [RFC PATCH 25/56] x86/vmlinux.lds: Define __init_alt_end David Kaplan
2025-10-13 14:34 ` [RFC PATCH 26/56] module: Save module ELF info David Kaplan
2025-10-13 14:34 ` [RFC PATCH 27/56] x86/mm: Conditionally free alternative sections David Kaplan
2025-10-13 14:34 ` [RFC PATCH 28/56] stop_machine: Add stop_machine_nmi() David Kaplan
2026-01-09 22:16   ` Chang S. Bae
2026-01-09 22:19     ` Kaplan, David
2025-10-13 14:34 ` [RFC PATCH 29/56] x86/apic: Add self-NMI support David Kaplan
2025-10-13 14:34 ` [RFC PATCH 30/56] x86/nmi: Add support for stop_machine_nmi() David Kaplan
2025-10-13 14:34 ` [RFC PATCH 31/56] x86/alternative: Prepend nops with retpolines David Kaplan
2025-10-16 10:32   ` Peter Zijlstra
2025-10-16 11:08     ` Peter Zijlstra
2025-10-16 11:07   ` Peter Zijlstra
2025-10-16 11:10     ` Peter Zijlstra
2025-10-16 11:23     ` Peter Zijlstra
2025-10-16 13:27       ` Kaplan, David
2025-10-16 14:07         ` Peter Zijlstra
2025-10-16 14:16           ` Kaplan, David
2025-10-16 14:23             ` Peter Zijlstra
2025-10-22  8:41         ` David Laight
2025-10-22 10:40           ` Peter Zijlstra
2025-10-13 14:34 ` [RFC PATCH 32/56] x86/alternative: Add module param David Kaplan
2025-10-13 14:34 ` [RFC PATCH 33/56] x86/alternative: Avoid re-patching init code David Kaplan
2025-10-13 14:34 ` [RFC PATCH 34/56] x86/alternative: Save old bytes for alternatives David Kaplan
2025-10-15 10:38   ` Juergen Gross
2025-10-15 13:45     ` Kaplan, David
2025-10-27 11:34       ` Nikolay Borisov
2025-10-27 14:19         ` Kaplan, David
2025-10-29  9:37           ` Nikolay Borisov
2025-10-29 16:26             ` Kaplan, David
2025-10-29 22:14               ` David Laight
2025-10-30 14:39                 ` Kaplan, David
2025-10-30 15:42                   ` Nikolay Borisov
2025-10-30 15:49                     ` Kaplan, David
2025-10-13 14:34 ` [RFC PATCH 35/56] x86/alternative: Save old bytes for retpolines David Kaplan
2025-10-13 14:34 ` [RFC PATCH 36/56] x86/alternative: Do not recompute len on re-patch David Kaplan
2025-10-13 14:34 ` [RFC PATCH 37/56] x86/alternative: Reset alternatives David Kaplan
2025-10-13 14:34 ` [RFC PATCH 38/56] x86/callthunks: Reset callthunks David Kaplan
2025-10-13 14:34 ` [RFC PATCH 39/56] x86/sync_core: Add sync_core_nmi_safe() David Kaplan
2025-10-13 14:34 ` [RFC PATCH 40/56] x86/alternative: Use sync_core_nmi_safe() David Kaplan
2025-10-16 10:35   ` Peter Zijlstra
2025-10-16 14:40     ` Kaplan, David
2025-10-16 14:47       ` Peter Zijlstra
2025-10-16 15:34         ` Kaplan, David
2025-10-16 16:15           ` Dave Hansen
2025-10-16 16:27             ` Borislav Petkov
2025-10-16 18:52           ` Peter Zijlstra
2025-10-16 18:56             ` Kaplan, David
2025-10-16 18:58               ` Peter Zijlstra
2025-10-16 21:53                 ` Andrew Cooper
2025-10-20 14:49         ` Kaplan, David
2025-10-20 15:01           ` Peter Zijlstra
2025-10-23 18:50             ` Kaplan, David
2025-10-23 19:26             ` Andrew Cooper
2025-10-23 21:23             ` David Laight
2025-10-21  2:13           ` H. Peter Anvin
2025-10-13 14:34 ` [RFC PATCH 41/56] static_call: Add update_all_static_calls() David Kaplan
2025-10-13 14:34 ` [RFC PATCH 42/56] module: Make memory writeable for re-patching David Kaplan
2025-10-13 14:34 ` [RFC PATCH 43/56] module: Update alternatives David Kaplan
2025-10-13 14:34 ` [RFC PATCH 44/56] x86/module: " David Kaplan
2025-10-13 14:34 ` [RFC PATCH 45/56] x86/alternative: Use boot_cpu_has in ITS code David Kaplan
2025-10-13 14:34 ` [RFC PATCH 46/56] x86/alternative: Add ITS re-patching support David Kaplan
2025-10-13 14:34 ` [RFC PATCH 47/56] x86/module: Add ITS re-patch support for modules David Kaplan
2025-10-13 14:34 ` [RFC PATCH 48/56] x86/bugs: Move code for updating speculation MSRs David Kaplan
2025-10-13 14:34 ` [RFC PATCH 49/56] x86/fpu: Qualify warning in os_xsave David Kaplan
2025-10-13 14:34 ` [RFC PATCH 50/56] x86/alternative: Add re-patch support David Kaplan
2025-10-31 10:22   ` Nikolay Borisov
2025-11-04 16:54     ` Kaplan, David
2025-10-13 14:34 ` [RFC PATCH 51/56] cpu: Parse string of mitigation options David Kaplan
2025-10-13 14:34 ` [RFC PATCH 52/56] x86/bugs: Support parsing " David Kaplan
2025-10-27 11:31   ` Nikolay Borisov
2025-10-27 13:56     ` Kaplan, David
2025-10-13 14:34 ` [RFC PATCH 53/56] drivers/cpu: Re-patch mitigations through sysfs David Kaplan
2025-10-27 12:25   ` Nikolay Borisov
2025-10-27 13:59     ` Kaplan, David
2025-10-13 14:34 ` [RFC PATCH 54/56] x86/debug: Create debugfs interface to x86_capabilities David Kaplan
2025-10-13 14:34 ` [RFC PATCH 55/56] x86/debug: Show return thunk in debugfs David Kaplan
2025-10-27 12:29   ` Nikolay Borisov
2025-10-27 14:24     ` David Laight
2025-10-13 14:34 ` [RFC PATCH 56/56] x86/debug: Show static branch config " David Kaplan
2025-10-14 16:29 ` [RFC PATCH 00/56] Dynamic mitigations Josh Poimboeuf
2025-10-14 18:06   ` Kaplan, David
2025-10-15  9:14     ` Alexander Graf
2025-10-15 23:06     ` Boris Ostrovsky
2025-10-16 12:21     ` Brendan Jackman
2025-10-15  4:10 ` Aaron Rainbolt
2025-10-15 13:53   ` Kaplan, David
2025-10-15 15:43     ` Josh Poimboeuf
2025-10-15 15:51       ` Kaplan, David
2025-10-15 16:02         ` Josh Poimboeuf
2025-10-15 16:10           ` Kaplan, David
2025-10-16 10:00             ` Nicolas Bouchinet
2025-10-16 13:42               ` Kaplan, David
2025-10-16 13:55                 ` Nicolas Bouchinet
2025-10-16 13:56                   ` Kaplan, David
2025-10-24  5:00 ` Pawan Gupta
2025-10-24 13:41   ` Kaplan, David

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=DDJVO9NSVDOZ.1JS1JRMXOKBB3@google.com \
    --to=jackmanb@google.com \
    --cc=David.Kaplan@amd.com \
    --cc=boris.ostrovsky@oracle.com \
    --cc=bp@alien8.de \
    --cc=dave.hansen@linux.intel.com \
    --cc=graf@amazon.com \
    --cc=hpa@zytor.com \
    --cc=jpoimboe@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@redhat.com \
    --cc=pawan.kumar.gupta@linux.intel.com \
    --cc=peterz@infradead.org \
    --cc=tglx@linutronix.de \
    --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