From: Fenghua Yu <fenghua.yu@intel.com> To: "Thomas Gleixner" <tglx@linutronix.de>, "Dave Hansen" <dave.hansen@linux.intel.com>, "Ingo Molnar" <mingo@redhat.com>, "Borislav Petkov" <bp@alien8.de>, "Peter Zijlstra" <peterz@infradead.org>, "Andy Lutomirski" <luto@kernel.org>, "Tony Luck" <tony.luck@intel.com>, "Lu Baolu" <baolu.lu@linux.intel.com>, "Joerg Roedel" <joro@8bytes.org>, Josh Poimboeuf <jpoimboe@redhat.com>, "Jacob Pan" <jacob.jun.pan@linux.intel.com>, "Ashok Raj" <ashok.raj@intel.com>, "Ravi V Shankar" <ravi.v.shankar@intel.com> Cc: Fenghua Yu <fenghua.yu@intel.com>, iommu@lists.linux-foundation.org, x86 <x86@kernel.org>, linux-kernel <linux-kernel@vger.kernel.org> Subject: [PATCH v4 04/11] kernel/fork: Initialize mm's PASID Date: Mon, 7 Feb 2022 15:02:47 -0800 [thread overview] Message-ID: <20220207230254.3342514-5-fenghua.yu@intel.com> (raw) In-Reply-To: <20220207230254.3342514-1-fenghua.yu@intel.com> A new mm doesn't have a PASID yet when it's created. Initialize the mm's PASID on fork() or for init_mm to INVALID_IOASID (-1). INIT_PASID (0) is reserved for kernel legacy DMA PASID. It cannot be allocated to a user process. Initializing the process's PASID to 0 may cause confusion that why the process uses the reserved kernel legacy DMA PASID. Initializing the PASID to INVALID_IOASID (-1) explicitly tells the process doesn't have a valid PASID yet. Even though the only user of mm_pasid_init() is in fork.c, define it in <linux/sched/mm.h> as the first of three mm/pasid life cycle functions (init/set/drop) to keep these all together. Suggested-by: Dave Hansen <dave.hansen@linux.intel.com> Signed-off-by: Fenghua Yu <fenghua.yu@intel.com> Reviewed-by: Tony Luck <tony.luck@intel.com> --- v4: - Update the commit message to explain why init pasid to -1 and why define mm_pasid_init() (Thomas) v2: - Change condition to more accurate CONFIG_IOMMU_SVA (Jacob) include/linux/sched/mm.h | 10 ++++++++++ kernel/fork.c | 10 ++-------- mm/init-mm.c | 4 ++++ 3 files changed, 16 insertions(+), 8 deletions(-) diff --git a/include/linux/sched/mm.h b/include/linux/sched/mm.h index aa5f09ca5bcf..c74d1edbac2f 100644 --- a/include/linux/sched/mm.h +++ b/include/linux/sched/mm.h @@ -8,6 +8,7 @@ #include <linux/mm_types.h> #include <linux/gfp.h> #include <linux/sync_core.h> +#include <linux/ioasid.h> /* * Routines for handling mm_structs @@ -433,4 +434,13 @@ static inline void membarrier_update_current_mm(struct mm_struct *next_mm) } #endif +#ifdef CONFIG_IOMMU_SVA +static inline void mm_pasid_init(struct mm_struct *mm) +{ + mm->pasid = INVALID_IOASID; +} +#else +static inline void mm_pasid_init(struct mm_struct *mm) {} +#endif + #endif /* _LINUX_SCHED_MM_H */ diff --git a/kernel/fork.c b/kernel/fork.c index 6ee7551d3bd2..deacd2c17a7f 100644 --- a/kernel/fork.c +++ b/kernel/fork.c @@ -97,6 +97,7 @@ #include <linux/scs.h> #include <linux/io_uring.h> #include <linux/bpf.h> +#include <linux/sched/mm.h> #include <asm/pgalloc.h> #include <linux/uaccess.h> @@ -1019,13 +1020,6 @@ static void mm_init_owner(struct mm_struct *mm, struct task_struct *p) #endif } -static void mm_init_pasid(struct mm_struct *mm) -{ -#ifdef CONFIG_IOMMU_SVA - mm->pasid = INIT_PASID; -#endif -} - static void mm_init_uprobes_state(struct mm_struct *mm) { #ifdef CONFIG_UPROBES @@ -1054,7 +1048,7 @@ static struct mm_struct *mm_init(struct mm_struct *mm, struct task_struct *p, mm_init_cpumask(mm); mm_init_aio(mm); mm_init_owner(mm, p); - mm_init_pasid(mm); + mm_pasid_init(mm); RCU_INIT_POINTER(mm->exe_file, NULL); mmu_notifier_subscriptions_init(mm); init_tlb_flush_pending(mm); diff --git a/mm/init-mm.c b/mm/init-mm.c index b4a6f38fb51d..fbe7844d0912 100644 --- a/mm/init-mm.c +++ b/mm/init-mm.c @@ -10,6 +10,7 @@ #include <linux/atomic.h> #include <linux/user_namespace.h> +#include <linux/ioasid.h> #include <asm/mmu.h> #ifndef INIT_MM_CONTEXT @@ -38,6 +39,9 @@ struct mm_struct init_mm = { .mmlist = LIST_HEAD_INIT(init_mm.mmlist), .user_ns = &init_user_ns, .cpu_bitmap = CPU_BITS_NONE, +#ifdef CONFIG_IOMMU_SVA + .pasid = INVALID_IOASID, +#endif INIT_MM_CONTEXT(init_mm) }; -- 2.35.1 _______________________________________________ iommu mailing list iommu@lists.linux-foundation.org https://lists.linuxfoundation.org/mailman/listinfo/iommu
WARNING: multiple messages have this Message-ID (diff)
From: Fenghua Yu <fenghua.yu@intel.com> To: "Thomas Gleixner" <tglx@linutronix.de>, "Dave Hansen" <dave.hansen@linux.intel.com>, "Ingo Molnar" <mingo@redhat.com>, "Borislav Petkov" <bp@alien8.de>, "Peter Zijlstra" <peterz@infradead.org>, "Andy Lutomirski" <luto@kernel.org>, "Tony Luck" <tony.luck@intel.com>, "Lu Baolu" <baolu.lu@linux.intel.com>, "Joerg Roedel" <joro@8bytes.org>, Josh Poimboeuf <jpoimboe@redhat.com>, "Jacob Pan" <jacob.jun.pan@linux.intel.com>, "Ashok Raj" <ashok.raj@intel.com>, "Ravi V Shankar" <ravi.v.shankar@intel.com> Cc: iommu@lists.linux-foundation.org, "x86" <x86@kernel.org>, "linux-kernel" <linux-kernel@vger.kernel.org>, Fenghua Yu <fenghua.yu@intel.com> Subject: [PATCH v4 04/11] kernel/fork: Initialize mm's PASID Date: Mon, 7 Feb 2022 15:02:47 -0800 [thread overview] Message-ID: <20220207230254.3342514-5-fenghua.yu@intel.com> (raw) In-Reply-To: <20220207230254.3342514-1-fenghua.yu@intel.com> A new mm doesn't have a PASID yet when it's created. Initialize the mm's PASID on fork() or for init_mm to INVALID_IOASID (-1). INIT_PASID (0) is reserved for kernel legacy DMA PASID. It cannot be allocated to a user process. Initializing the process's PASID to 0 may cause confusion that why the process uses the reserved kernel legacy DMA PASID. Initializing the PASID to INVALID_IOASID (-1) explicitly tells the process doesn't have a valid PASID yet. Even though the only user of mm_pasid_init() is in fork.c, define it in <linux/sched/mm.h> as the first of three mm/pasid life cycle functions (init/set/drop) to keep these all together. Suggested-by: Dave Hansen <dave.hansen@linux.intel.com> Signed-off-by: Fenghua Yu <fenghua.yu@intel.com> Reviewed-by: Tony Luck <tony.luck@intel.com> --- v4: - Update the commit message to explain why init pasid to -1 and why define mm_pasid_init() (Thomas) v2: - Change condition to more accurate CONFIG_IOMMU_SVA (Jacob) include/linux/sched/mm.h | 10 ++++++++++ kernel/fork.c | 10 ++-------- mm/init-mm.c | 4 ++++ 3 files changed, 16 insertions(+), 8 deletions(-) diff --git a/include/linux/sched/mm.h b/include/linux/sched/mm.h index aa5f09ca5bcf..c74d1edbac2f 100644 --- a/include/linux/sched/mm.h +++ b/include/linux/sched/mm.h @@ -8,6 +8,7 @@ #include <linux/mm_types.h> #include <linux/gfp.h> #include <linux/sync_core.h> +#include <linux/ioasid.h> /* * Routines for handling mm_structs @@ -433,4 +434,13 @@ static inline void membarrier_update_current_mm(struct mm_struct *next_mm) } #endif +#ifdef CONFIG_IOMMU_SVA +static inline void mm_pasid_init(struct mm_struct *mm) +{ + mm->pasid = INVALID_IOASID; +} +#else +static inline void mm_pasid_init(struct mm_struct *mm) {} +#endif + #endif /* _LINUX_SCHED_MM_H */ diff --git a/kernel/fork.c b/kernel/fork.c index 6ee7551d3bd2..deacd2c17a7f 100644 --- a/kernel/fork.c +++ b/kernel/fork.c @@ -97,6 +97,7 @@ #include <linux/scs.h> #include <linux/io_uring.h> #include <linux/bpf.h> +#include <linux/sched/mm.h> #include <asm/pgalloc.h> #include <linux/uaccess.h> @@ -1019,13 +1020,6 @@ static void mm_init_owner(struct mm_struct *mm, struct task_struct *p) #endif } -static void mm_init_pasid(struct mm_struct *mm) -{ -#ifdef CONFIG_IOMMU_SVA - mm->pasid = INIT_PASID; -#endif -} - static void mm_init_uprobes_state(struct mm_struct *mm) { #ifdef CONFIG_UPROBES @@ -1054,7 +1048,7 @@ static struct mm_struct *mm_init(struct mm_struct *mm, struct task_struct *p, mm_init_cpumask(mm); mm_init_aio(mm); mm_init_owner(mm, p); - mm_init_pasid(mm); + mm_pasid_init(mm); RCU_INIT_POINTER(mm->exe_file, NULL); mmu_notifier_subscriptions_init(mm); init_tlb_flush_pending(mm); diff --git a/mm/init-mm.c b/mm/init-mm.c index b4a6f38fb51d..fbe7844d0912 100644 --- a/mm/init-mm.c +++ b/mm/init-mm.c @@ -10,6 +10,7 @@ #include <linux/atomic.h> #include <linux/user_namespace.h> +#include <linux/ioasid.h> #include <asm/mmu.h> #ifndef INIT_MM_CONTEXT @@ -38,6 +39,9 @@ struct mm_struct init_mm = { .mmlist = LIST_HEAD_INIT(init_mm.mmlist), .user_ns = &init_user_ns, .cpu_bitmap = CPU_BITS_NONE, +#ifdef CONFIG_IOMMU_SVA + .pasid = INVALID_IOASID, +#endif INIT_MM_CONTEXT(init_mm) }; -- 2.35.1
next prev parent reply other threads:[~2022-02-07 23:03 UTC|newest] Thread overview: 214+ messages / expand[flat|nested] mbox.gz Atom feed top 2022-02-07 23:02 [PATCH v4 00/11] Re-enable ENQCMD and PASID MSR Fenghua Yu 2022-02-07 23:02 ` Fenghua Yu 2022-02-07 23:02 ` [PATCH v4 01/11] iommu/sva: Rename CONFIG_IOMMU_SVA_LIB to CONFIG_IOMMU_SVA Fenghua Yu 2022-02-07 23:02 ` Fenghua Yu 2022-02-08 2:39 ` Lu Baolu 2022-02-08 2:39 ` Lu Baolu 2022-02-15 10:54 ` [tip: x86/pasid] " tip-bot2 for Fenghua Yu 2022-02-07 23:02 ` [PATCH v4 02/11] mm: Change CONFIG option for mm->pasid field Fenghua Yu 2022-02-07 23:02 ` Fenghua Yu 2022-02-08 2:40 ` Lu Baolu 2022-02-08 2:40 ` Lu Baolu 2022-02-15 10:54 ` [tip: x86/pasid] " tip-bot2 for Fenghua Yu 2022-02-07 23:02 ` [PATCH v4 03/11] iommu/ioasid: Introduce a helper to check for valid PASIDs Fenghua Yu 2022-02-07 23:02 ` Fenghua Yu 2022-02-08 2:40 ` Lu Baolu 2022-02-08 2:40 ` Lu Baolu 2022-02-15 10:54 ` [tip: x86/pasid] " tip-bot2 for Fenghua Yu 2022-02-07 23:02 ` Fenghua Yu [this message] 2022-02-07 23:02 ` [PATCH v4 04/11] kernel/fork: Initialize mm's PASID Fenghua Yu 2022-02-14 17:23 ` Thomas Gleixner 2022-02-14 17:23 ` Thomas Gleixner 2022-02-15 10:54 ` [tip: x86/pasid] " tip-bot2 for Fenghua Yu 2022-02-07 23:02 ` [PATCH v4 05/11] iommu/sva: Assign a PASID to mm on PASID allocation and free it on mm exit Fenghua Yu 2022-02-07 23:02 ` Fenghua Yu 2022-02-08 2:41 ` Lu Baolu 2022-02-08 2:41 ` Lu Baolu 2022-02-08 15:01 ` Fenghua Yu 2022-02-08 15:01 ` Fenghua Yu 2022-02-10 3:16 ` Jacob Pan 2022-02-10 3:16 ` Jacob Pan 2022-02-10 16:27 ` Fenghua Yu 2022-02-10 16:27 ` Fenghua Yu 2022-02-10 17:24 ` Luck, Tony 2022-02-10 17:24 ` Luck, Tony 2022-02-10 18:31 ` Fenghua Yu 2022-02-10 18:31 ` Fenghua Yu 2022-02-10 23:52 ` Fenghua Yu 2022-02-10 23:52 ` Fenghua Yu 2022-02-10 18:49 ` Jacob Pan 2022-02-10 18:49 ` Jacob Pan 2022-02-10 23:15 ` Fenghua Yu 2022-02-10 23:15 ` Fenghua Yu 2022-02-11 22:00 ` Dave Hansen 2022-02-11 22:00 ` Dave Hansen 2022-02-14 17:24 ` Thomas Gleixner 2022-02-14 17:24 ` Thomas Gleixner 2022-02-15 9:55 ` Joerg Roedel 2022-02-15 9:55 ` Joerg Roedel 2022-04-11 14:00 ` Zhangfei Gao 2022-04-11 14:10 ` Dave Hansen 2022-04-11 14:10 ` Dave Hansen 2022-04-11 14:20 ` zhangfei.gao 2022-04-11 14:20 ` zhangfei.gao 2022-04-11 14:36 ` Dave Hansen 2022-04-11 14:36 ` Dave Hansen 2022-04-11 14:44 ` zhangfei.gao 2022-04-11 14:44 ` zhangfei.gao 2022-04-11 14:52 ` Dave Hansen 2022-04-11 14:52 ` Dave Hansen 2022-04-11 15:13 ` zhangfei.gao 2022-04-11 15:13 ` zhangfei.gao 2022-04-12 7:04 ` zhangfei.gao 2022-04-12 7:04 ` zhangfei.gao 2022-04-12 13:41 ` Fenghua Yu 2022-04-12 13:41 ` Fenghua Yu 2022-04-12 14:39 ` Dave Hansen 2022-04-12 14:39 ` Dave Hansen 2022-04-15 9:59 ` Fenghua Yu 2022-04-15 9:59 ` Fenghua Yu 2022-04-12 15:35 ` zhangfei.gao 2022-04-12 15:35 ` zhangfei.gao 2022-04-14 10:08 ` zhangfei.gao 2022-04-14 10:08 ` zhangfei.gao 2022-04-15 9:51 ` Fenghua Yu 2022-04-15 9:51 ` Fenghua Yu 2022-04-15 10:14 ` zhangfei.gao 2022-04-15 10:14 ` zhangfei.gao 2022-04-15 10:14 ` zhangfei.gao 2022-04-15 10:50 ` Fenghua Yu 2022-04-15 10:50 ` Fenghua Yu 2022-04-15 11:52 ` zhangfei.gao 2022-04-15 11:52 ` zhangfei.gao 2022-04-15 12:37 ` Fenghua Yu 2022-04-15 12:37 ` Fenghua Yu 2022-04-16 1:30 ` zhangfei.gao 2022-04-16 1:30 ` zhangfei.gao 2022-04-15 19:07 ` Fenghua Yu 2022-04-15 19:07 ` Fenghua Yu 2022-04-15 21:00 ` Jacob Pan 2022-04-15 21:00 ` Jacob Pan 2022-04-16 1:43 ` zhangfei.gao 2022-04-16 1:43 ` zhangfei.gao 2022-04-18 18:14 ` Jacob Pan 2022-04-18 18:14 ` Jacob Pan 2022-04-19 1:02 ` zhangfei.gao 2022-04-19 1:02 ` zhangfei.gao 2022-04-18 6:34 ` Tian, Kevin 2022-04-18 6:34 ` Tian, Kevin 2022-04-18 18:11 ` Jacob Pan 2022-04-18 18:11 ` Jacob Pan 2022-04-20 16:45 ` Jean-Philippe Brucker 2022-04-20 16:45 ` Jean-Philippe Brucker 2022-04-21 6:47 ` zhangfei.gao 2022-04-21 6:47 ` zhangfei.gao 2022-04-22 9:03 ` zhangfei.gao 2022-04-22 9:03 ` zhangfei.gao 2022-04-22 10:11 ` Jean-Philippe Brucker 2022-04-22 10:11 ` Jean-Philippe Brucker 2022-04-22 13:15 ` zhangfei.gao 2022-04-22 13:15 ` zhangfei.gao 2022-04-22 15:50 ` Jean-Philippe Brucker 2022-04-22 15:50 ` Jean-Philippe Brucker 2022-04-23 11:13 ` zhangfei.gao 2022-04-23 11:13 ` zhangfei.gao 2022-04-24 2:58 ` Zhangfei Gao 2022-04-24 2:58 ` Zhangfei Gao 2022-04-24 9:52 ` Zhangfei Gao 2022-04-24 9:52 ` Zhangfei Gao 2022-04-25 13:53 ` Jean-Philippe Brucker 2022-04-25 13:53 ` Jean-Philippe Brucker 2022-04-25 14:18 ` Dave Hansen 2022-04-25 14:18 ` Dave Hansen 2022-04-25 14:26 ` Jean-Philippe Brucker 2022-04-25 14:26 ` Jean-Philippe Brucker 2022-04-25 15:34 ` Jacob Pan 2022-04-25 15:34 ` Jacob Pan 2022-04-25 16:13 ` Jean-Philippe Brucker 2022-04-25 16:13 ` Jean-Philippe Brucker 2022-04-25 22:32 ` Jacob Pan 2022-04-25 22:32 ` Jacob Pan 2022-04-26 4:20 ` Fenghua Yu 2022-04-26 4:20 ` Fenghua Yu 2022-04-26 5:04 ` Zhangfei Gao 2022-04-26 5:04 ` Zhangfei Gao 2022-04-28 0:54 ` Fenghua Yu 2022-04-28 0:54 ` Fenghua Yu 2022-04-28 8:43 ` Jean-Philippe Brucker 2022-04-28 8:43 ` Jean-Philippe Brucker 2022-04-28 15:09 ` Dave Hansen 2022-04-28 15:09 ` Dave Hansen 2022-04-28 15:28 ` Fenghua Yu 2022-04-28 15:28 ` Fenghua Yu 2022-04-28 15:42 ` Dave Hansen 2022-04-28 15:42 ` Dave Hansen 2022-04-28 16:01 ` Jean-Philippe Brucker 2022-04-28 16:01 ` Jean-Philippe Brucker 2022-04-28 16:35 ` Dave Hansen 2022-04-28 16:35 ` Dave Hansen 2022-04-26 4:28 ` Zhangfei Gao 2022-04-26 4:28 ` Zhangfei Gao 2022-04-26 4:36 ` Fenghua Yu 2022-04-26 4:36 ` Fenghua Yu 2022-04-26 5:19 ` Zhangfei Gao 2022-04-26 5:19 ` Zhangfei Gao 2022-04-25 15:55 ` Dave Hansen 2022-04-25 15:55 ` Dave Hansen 2022-04-25 16:40 ` Jean-Philippe Brucker 2022-04-25 16:40 ` Jean-Philippe Brucker 2022-04-26 15:27 ` Dave Hansen 2022-04-26 15:27 ` Dave Hansen 2022-04-26 16:48 ` Jean-Philippe Brucker 2022-04-26 16:48 ` Jean-Philippe Brucker 2022-04-26 23:31 ` Dave Hansen 2022-04-26 23:31 ` Dave Hansen 2022-04-28 8:39 ` Jean-Philippe Brucker 2022-04-28 8:39 ` Jean-Philippe Brucker 2022-04-29 7:53 ` Baolu Lu 2022-04-29 7:53 ` Baolu Lu 2022-04-29 13:51 ` Fenghua Yu 2022-04-29 13:51 ` Fenghua Yu 2022-04-29 14:34 ` Jean-Philippe Brucker 2022-04-29 14:34 ` Jean-Philippe Brucker 2022-04-29 22:19 ` Fenghua Yu 2022-04-29 22:19 ` Fenghua Yu 2022-04-30 7:33 ` Baolu Lu 2022-04-30 7:33 ` Baolu Lu 2022-05-03 7:49 ` Jean-Philippe Brucker 2022-05-03 7:49 ` Jean-Philippe Brucker 2022-05-06 5:36 ` Baolu Lu 2022-05-06 5:36 ` Baolu Lu 2022-04-12 14:36 ` Dave Hansen 2022-04-12 14:36 ` Dave Hansen 2022-04-12 15:10 ` Jean-Philippe Brucker 2022-04-12 15:10 ` Jean-Philippe Brucker 2022-04-12 15:35 ` Dave Hansen 2022-04-12 15:35 ` Dave Hansen 2022-04-13 11:14 ` Lu Baolu 2022-04-13 11:14 ` Lu Baolu 2022-04-25 2:57 ` zhangfei.gao 2022-04-25 2:57 ` zhangfei.gao 2022-02-15 10:54 ` [tip: x86/pasid] " tip-bot2 for Fenghua Yu 2022-02-07 23:02 ` [PATCH v4 06/11] x86/fpu: Clear PASID when copying fpstate Fenghua Yu 2022-02-07 23:02 ` Fenghua Yu 2022-02-15 10:54 ` [tip: x86/pasid] " tip-bot2 for Fenghua Yu 2022-02-07 23:02 ` [PATCH v4 07/11] sched: Define and initialize a flag to identify valid PASID in the task Fenghua Yu 2022-02-07 23:02 ` Fenghua Yu 2022-02-15 10:54 ` [tip: x86/pasid] " tip-bot2 for Peter Zijlstra 2022-02-07 23:02 ` [PATCH v4 08/11] x86/traps: Demand-populate PASID MSR via #GP Fenghua Yu 2022-02-07 23:02 ` Fenghua Yu 2022-02-15 10:54 ` [tip: x86/pasid] " tip-bot2 for Fenghua Yu 2022-02-07 23:02 ` [PATCH v4 09/11] x86/cpufeatures: Re-enable ENQCMD Fenghua Yu 2022-02-07 23:02 ` Fenghua Yu 2022-02-15 10:54 ` [tip: x86/pasid] " tip-bot2 for Fenghua Yu 2022-02-07 23:02 ` [PATCH v4 10/11] tools/objtool: Check for use of the ENQCMD instruction in the kernel Fenghua Yu 2022-02-07 23:02 ` Fenghua Yu 2022-02-15 10:54 ` [tip: x86/pasid] " tip-bot2 for Fenghua Yu 2022-03-09 7:55 ` [tip: x86/core] " tip-bot2 for Fenghua Yu 2022-03-15 10:44 ` tip-bot2 for Fenghua Yu 2022-02-07 23:02 ` [PATCH v4 11/11] docs: x86: Change documentation for SVA (Shared Virtual Addressing) Fenghua Yu 2022-02-07 23:02 ` Fenghua Yu 2022-02-14 17:25 ` Thomas Gleixner 2022-02-14 17:25 ` Thomas Gleixner 2022-02-15 10:54 ` [tip: x86/pasid] Documentation/x86: Update " tip-bot2 for Fenghua Yu 2022-02-11 20:04 ` [PATCH v4 00/11] Re-enable ENQCMD and PASID MSR Fenghua Yu 2022-02-11 20:04 ` Fenghua Yu
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=20220207230254.3342514-5-fenghua.yu@intel.com \ --to=fenghua.yu@intel.com \ --cc=ashok.raj@intel.com \ --cc=baolu.lu@linux.intel.com \ --cc=bp@alien8.de \ --cc=dave.hansen@linux.intel.com \ --cc=iommu@lists.linux-foundation.org \ --cc=jacob.jun.pan@linux.intel.com \ --cc=joro@8bytes.org \ --cc=jpoimboe@redhat.com \ --cc=linux-kernel@vger.kernel.org \ --cc=luto@kernel.org \ --cc=mingo@redhat.com \ --cc=peterz@infradead.org \ --cc=ravi.v.shankar@intel.com \ --cc=tglx@linutronix.de \ --cc=tony.luck@intel.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: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.