From: Jerome Glisse <jglisse-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
To: Jason Gunthorpe <jgg-uk2M96/98Pc@public.gmane.org>
Cc: Andrea Arcangeli
<aarcange-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>,
Ralph Campbell
<rcampbell-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>,
linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
John Hubbard <jhubbard-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>,
Felix.Kuehling-5C7GfCeVMHo@public.gmane.org,
dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org,
linux-mm-Bw31MaZKKs3YtjvyW6yDsg@public.gmane.org,
Jason Gunthorpe <jgg-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>,
amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org,
Ben Skeggs <bskeggs-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
Subject: Re: [PATCH hmm 04/15] mm/hmm: define the pre-processor related parts of hmm.h even if disabled
Date: Mon, 21 Oct 2019 14:31:41 -0400 [thread overview]
Message-ID: <20191021183141.GB3177@redhat.com> (raw)
In-Reply-To: <20191015181242.8343-5-jgg-uk2M96/98Pc@public.gmane.org>
On Tue, Oct 15, 2019 at 03:12:31PM -0300, Jason Gunthorpe wrote:
> From: Jason Gunthorpe <jgg@mellanox.com>
>
> Only the function calls are stubbed out with static inlines that always
> fail. This is the standard way to write a header for an optional component
> and makes it easier for drivers that only optionally need HMM_MIRROR.
>
> Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
Reviewed-by: Jérôme Glisse <jglisse@redhat.com>
> ---
> include/linux/hmm.h | 59 ++++++++++++++++++++++++++++++++++++---------
> kernel/fork.c | 1 -
> 2 files changed, 47 insertions(+), 13 deletions(-)
>
> diff --git a/include/linux/hmm.h b/include/linux/hmm.h
> index 8ac1fd6a81af8f..2666eb08a40615 100644
> --- a/include/linux/hmm.h
> +++ b/include/linux/hmm.h
> @@ -62,8 +62,6 @@
> #include <linux/kconfig.h>
> #include <asm/pgtable.h>
>
> -#ifdef CONFIG_HMM_MIRROR
> -
> #include <linux/device.h>
> #include <linux/migrate.h>
> #include <linux/memremap.h>
> @@ -374,6 +372,15 @@ struct hmm_mirror {
> struct list_head list;
> };
>
> +/*
> + * Retry fault if non-blocking, drop mmap_sem and return -EAGAIN in that case.
> + */
> +#define HMM_FAULT_ALLOW_RETRY (1 << 0)
> +
> +/* Don't fault in missing PTEs, just snapshot the current state. */
> +#define HMM_FAULT_SNAPSHOT (1 << 1)
> +
> +#ifdef CONFIG_HMM_MIRROR
> int hmm_mirror_register(struct hmm_mirror *mirror, struct mm_struct *mm);
> void hmm_mirror_unregister(struct hmm_mirror *mirror);
>
> @@ -383,14 +390,6 @@ void hmm_mirror_unregister(struct hmm_mirror *mirror);
> int hmm_range_register(struct hmm_range *range, struct hmm_mirror *mirror);
> void hmm_range_unregister(struct hmm_range *range);
>
> -/*
> - * Retry fault if non-blocking, drop mmap_sem and return -EAGAIN in that case.
> - */
> -#define HMM_FAULT_ALLOW_RETRY (1 << 0)
> -
> -/* Don't fault in missing PTEs, just snapshot the current state. */
> -#define HMM_FAULT_SNAPSHOT (1 << 1)
> -
> long hmm_range_fault(struct hmm_range *range, unsigned int flags);
>
> long hmm_range_dma_map(struct hmm_range *range,
> @@ -401,6 +400,44 @@ long hmm_range_dma_unmap(struct hmm_range *range,
> struct device *device,
> dma_addr_t *daddrs,
> bool dirty);
> +#else
> +int hmm_mirror_register(struct hmm_mirror *mirror, struct mm_struct *mm)
> +{
> + return -EOPNOTSUPP;
> +}
> +
> +void hmm_mirror_unregister(struct hmm_mirror *mirror)
> +{
> +}
> +
> +int hmm_range_register(struct hmm_range *range, struct hmm_mirror *mirror)
> +{
> + return -EOPNOTSUPP;
> +}
> +
> +void hmm_range_unregister(struct hmm_range *range)
> +{
> +}
> +
> +static inline long hmm_range_fault(struct hmm_range *range, unsigned int flags)
> +{
> + return -EOPNOTSUPP;
> +}
> +
> +static inline long hmm_range_dma_map(struct hmm_range *range,
> + struct device *device, dma_addr_t *daddrs,
> + unsigned int flags)
> +{
> + return -EOPNOTSUPP;
> +}
> +
> +static inline long hmm_range_dma_unmap(struct hmm_range *range,
> + struct device *device,
> + dma_addr_t *daddrs, bool dirty)
> +{
> + return -EOPNOTSUPP;
> +}
> +#endif
>
> /*
> * HMM_RANGE_DEFAULT_TIMEOUT - default timeout (ms) when waiting for a range
> @@ -411,6 +448,4 @@ long hmm_range_dma_unmap(struct hmm_range *range,
> */
> #define HMM_RANGE_DEFAULT_TIMEOUT 1000
>
> -#endif /* IS_ENABLED(CONFIG_HMM_MIRROR) */
> -
> #endif /* LINUX_HMM_H */
> diff --git a/kernel/fork.c b/kernel/fork.c
> index f9572f41612628..4561a65d19db88 100644
> --- a/kernel/fork.c
> +++ b/kernel/fork.c
> @@ -40,7 +40,6 @@
> #include <linux/binfmts.h>
> #include <linux/mman.h>
> #include <linux/mmu_notifier.h>
> -#include <linux/hmm.h>
> #include <linux/fs.h>
> #include <linux/mm.h>
> #include <linux/vmacache.h>
> --
> 2.23.0
>
_______________________________________________
amd-gfx mailing list
amd-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx
WARNING: multiple messages have this Message-ID (diff)
From: Jerome Glisse <jglisse@redhat.com>
To: Jason Gunthorpe <jgg@ziepe.ca>
Cc: Ralph Campbell <rcampbell@nvidia.com>,
John Hubbard <jhubbard@nvidia.com>,
Felix.Kuehling@amd.com, linux-rdma@vger.kernel.org,
linux-mm@kvack.org, Andrea Arcangeli <aarcange@redhat.com>,
dri-devel@lists.freedesktop.org, amd-gfx@lists.freedesktop.org,
Ben Skeggs <bskeggs@redhat.com>,
Jason Gunthorpe <jgg@mellanox.com>
Subject: Re: [PATCH hmm 04/15] mm/hmm: define the pre-processor related parts of hmm.h even if disabled
Date: Mon, 21 Oct 2019 14:31:41 -0400 [thread overview]
Message-ID: <20191021183141.GB3177@redhat.com> (raw)
In-Reply-To: <20191015181242.8343-5-jgg@ziepe.ca>
On Tue, Oct 15, 2019 at 03:12:31PM -0300, Jason Gunthorpe wrote:
> From: Jason Gunthorpe <jgg@mellanox.com>
>
> Only the function calls are stubbed out with static inlines that always
> fail. This is the standard way to write a header for an optional component
> and makes it easier for drivers that only optionally need HMM_MIRROR.
>
> Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
Reviewed-by: Jérôme Glisse <jglisse@redhat.com>
> ---
> include/linux/hmm.h | 59 ++++++++++++++++++++++++++++++++++++---------
> kernel/fork.c | 1 -
> 2 files changed, 47 insertions(+), 13 deletions(-)
>
> diff --git a/include/linux/hmm.h b/include/linux/hmm.h
> index 8ac1fd6a81af8f..2666eb08a40615 100644
> --- a/include/linux/hmm.h
> +++ b/include/linux/hmm.h
> @@ -62,8 +62,6 @@
> #include <linux/kconfig.h>
> #include <asm/pgtable.h>
>
> -#ifdef CONFIG_HMM_MIRROR
> -
> #include <linux/device.h>
> #include <linux/migrate.h>
> #include <linux/memremap.h>
> @@ -374,6 +372,15 @@ struct hmm_mirror {
> struct list_head list;
> };
>
> +/*
> + * Retry fault if non-blocking, drop mmap_sem and return -EAGAIN in that case.
> + */
> +#define HMM_FAULT_ALLOW_RETRY (1 << 0)
> +
> +/* Don't fault in missing PTEs, just snapshot the current state. */
> +#define HMM_FAULT_SNAPSHOT (1 << 1)
> +
> +#ifdef CONFIG_HMM_MIRROR
> int hmm_mirror_register(struct hmm_mirror *mirror, struct mm_struct *mm);
> void hmm_mirror_unregister(struct hmm_mirror *mirror);
>
> @@ -383,14 +390,6 @@ void hmm_mirror_unregister(struct hmm_mirror *mirror);
> int hmm_range_register(struct hmm_range *range, struct hmm_mirror *mirror);
> void hmm_range_unregister(struct hmm_range *range);
>
> -/*
> - * Retry fault if non-blocking, drop mmap_sem and return -EAGAIN in that case.
> - */
> -#define HMM_FAULT_ALLOW_RETRY (1 << 0)
> -
> -/* Don't fault in missing PTEs, just snapshot the current state. */
> -#define HMM_FAULT_SNAPSHOT (1 << 1)
> -
> long hmm_range_fault(struct hmm_range *range, unsigned int flags);
>
> long hmm_range_dma_map(struct hmm_range *range,
> @@ -401,6 +400,44 @@ long hmm_range_dma_unmap(struct hmm_range *range,
> struct device *device,
> dma_addr_t *daddrs,
> bool dirty);
> +#else
> +int hmm_mirror_register(struct hmm_mirror *mirror, struct mm_struct *mm)
> +{
> + return -EOPNOTSUPP;
> +}
> +
> +void hmm_mirror_unregister(struct hmm_mirror *mirror)
> +{
> +}
> +
> +int hmm_range_register(struct hmm_range *range, struct hmm_mirror *mirror)
> +{
> + return -EOPNOTSUPP;
> +}
> +
> +void hmm_range_unregister(struct hmm_range *range)
> +{
> +}
> +
> +static inline long hmm_range_fault(struct hmm_range *range, unsigned int flags)
> +{
> + return -EOPNOTSUPP;
> +}
> +
> +static inline long hmm_range_dma_map(struct hmm_range *range,
> + struct device *device, dma_addr_t *daddrs,
> + unsigned int flags)
> +{
> + return -EOPNOTSUPP;
> +}
> +
> +static inline long hmm_range_dma_unmap(struct hmm_range *range,
> + struct device *device,
> + dma_addr_t *daddrs, bool dirty)
> +{
> + return -EOPNOTSUPP;
> +}
> +#endif
>
> /*
> * HMM_RANGE_DEFAULT_TIMEOUT - default timeout (ms) when waiting for a range
> @@ -411,6 +448,4 @@ long hmm_range_dma_unmap(struct hmm_range *range,
> */
> #define HMM_RANGE_DEFAULT_TIMEOUT 1000
>
> -#endif /* IS_ENABLED(CONFIG_HMM_MIRROR) */
> -
> #endif /* LINUX_HMM_H */
> diff --git a/kernel/fork.c b/kernel/fork.c
> index f9572f41612628..4561a65d19db88 100644
> --- a/kernel/fork.c
> +++ b/kernel/fork.c
> @@ -40,7 +40,6 @@
> #include <linux/binfmts.h>
> #include <linux/mman.h>
> #include <linux/mmu_notifier.h>
> -#include <linux/hmm.h>
> #include <linux/fs.h>
> #include <linux/mm.h>
> #include <linux/vmacache.h>
> --
> 2.23.0
>
next prev parent reply other threads:[~2019-10-21 18:31 UTC|newest]
Thread overview: 135+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-10-15 18:12 [PATCH hmm 00/15] Consolidate the mmu notifier interval_tree and locking Jason Gunthorpe
2019-10-15 18:12 ` Jason Gunthorpe
2019-10-15 18:12 ` [PATCH hmm 08/15] xen/gntdev: Use select for DMA_SHARED_BUFFER Jason Gunthorpe
2019-10-15 18:12 ` [Xen-devel] " Jason Gunthorpe
2019-10-15 18:12 ` Jason Gunthorpe
2019-10-16 5:11 ` Jürgen Groß
2019-10-16 5:11 ` [Xen-devel] " Jürgen Groß
2019-10-16 5:11 ` Jürgen Groß
2019-10-16 6:35 ` Oleksandr Andrushchenko
2019-10-16 6:35 ` [Xen-devel] " Oleksandr Andrushchenko
2019-10-16 6:35 ` Oleksandr Andrushchenko
2019-10-21 19:12 ` Jason Gunthorpe
2019-10-21 19:12 ` [Xen-devel] " Jason Gunthorpe
2019-10-21 19:12 ` Jason Gunthorpe
[not found] ` <20191021191219.GJ6285-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
2019-10-28 6:25 ` [Xen-devel] " Oleksandr Andrushchenko
2019-10-28 6:25 ` Oleksandr Andrushchenko
2019-10-28 6:25 ` Oleksandr Andrushchenko
2019-10-28 6:25 ` Oleksandr Andrushchenko
2019-10-28 6:25 ` Oleksandr Andrushchenko
2019-10-15 18:12 ` [PATCH hmm 09/15] xen/gntdev: use mmu_range_notifier_insert Jason Gunthorpe
2019-10-15 18:12 ` [Xen-devel] " Jason Gunthorpe
2019-10-15 18:12 ` Jason Gunthorpe
[not found] ` <20191015181242.8343-1-jgg-uk2M96/98Pc@public.gmane.org>
2019-10-15 18:12 ` [PATCH hmm 01/15] mm/mmu_notifier: define the header pre-processor parts even if disabled Jason Gunthorpe
2019-10-15 18:12 ` Jason Gunthorpe
[not found] ` <20191015181242.8343-2-jgg-uk2M96/98Pc@public.gmane.org>
2019-10-21 18:32 ` Jerome Glisse
2019-10-21 18:32 ` Jerome Glisse
2019-10-15 18:12 ` [PATCH hmm 02/15] mm/mmu_notifier: add an interval tree notifier Jason Gunthorpe
2019-10-15 18:12 ` Jason Gunthorpe
2019-10-21 18:30 ` Jerome Glisse
2019-10-21 18:30 ` Jerome Glisse
2019-10-21 18:54 ` Jason Gunthorpe
2019-10-21 18:54 ` Jason Gunthorpe
2019-10-21 19:11 ` Jerome Glisse
2019-10-21 19:11 ` Jerome Glisse
2019-10-21 19:24 ` Jason Gunthorpe
2019-10-21 19:24 ` Jason Gunthorpe
[not found] ` <20191021192448.GK6285-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
2019-10-21 19:47 ` Jerome Glisse
2019-10-21 19:47 ` Jerome Glisse
2019-10-27 23:15 ` Jason Gunthorpe
2019-10-27 23:15 ` Jason Gunthorpe
2019-10-27 23:15 ` Jason Gunthorpe
2019-10-15 18:12 ` [PATCH hmm 03/15] mm/hmm: allow hmm_range to be used with a mmu_range_notifier or hmm_mirror Jason Gunthorpe
2019-10-15 18:12 ` Jason Gunthorpe
2019-10-21 18:33 ` Jerome Glisse
2019-10-21 18:33 ` Jerome Glisse
2019-10-15 18:12 ` [PATCH hmm 04/15] mm/hmm: define the pre-processor related parts of hmm.h even if disabled Jason Gunthorpe
2019-10-15 18:12 ` Jason Gunthorpe
[not found] ` <20191015181242.8343-5-jgg-uk2M96/98Pc@public.gmane.org>
2019-10-21 18:31 ` Jerome Glisse [this message]
2019-10-21 18:31 ` Jerome Glisse
2019-10-15 18:12 ` [PATCH hmm 05/15] RDMA/odp: Use mmu_range_notifier_insert() Jason Gunthorpe
2019-10-15 18:12 ` Jason Gunthorpe
[not found] ` <20191015181242.8343-6-jgg-uk2M96/98Pc@public.gmane.org>
2019-11-04 20:25 ` Jason Gunthorpe
2019-11-04 20:25 ` Jason Gunthorpe
2019-11-04 20:25 ` Jason Gunthorpe
2019-10-15 18:12 ` [PATCH hmm 06/15] RDMA/hfi1: Use mmu_range_notifier_inset for user_exp_rcv Jason Gunthorpe
2019-10-15 18:12 ` Jason Gunthorpe
2019-10-29 12:15 ` Dennis Dalessandro
2019-10-29 12:15 ` Dennis Dalessandro
2019-10-29 12:15 ` Dennis Dalessandro
2019-10-15 18:12 ` [PATCH hmm 07/15] drm/radeon: use mmu_range_notifier_insert Jason Gunthorpe
2019-10-15 18:12 ` Jason Gunthorpe
2019-10-15 18:12 ` [PATCH hmm 10/15] nouveau: use mmu_notifier directly for invalidate_range_start Jason Gunthorpe
2019-10-15 18:12 ` Jason Gunthorpe
2019-10-15 18:12 ` [PATCH hmm 11/15] nouveau: use mmu_range_notifier instead of hmm_mirror Jason Gunthorpe
2019-10-15 18:12 ` Jason Gunthorpe
2019-10-15 18:12 ` [PATCH hmm 12/15] drm/amdgpu: Call find_vma under mmap_sem Jason Gunthorpe
2019-10-15 18:12 ` Jason Gunthorpe
2019-10-15 18:12 ` [PATCH hmm 13/15] drm/amdgpu: Use mmu_range_insert instead of hmm_mirror Jason Gunthorpe
2019-10-15 18:12 ` Jason Gunthorpe
2019-10-15 18:12 ` [PATCH hmm 14/15] drm/amdgpu: Use mmu_range_notifier " Jason Gunthorpe
2019-10-15 18:12 ` Jason Gunthorpe
2019-10-15 18:12 ` [PATCH hmm 15/15] mm/hmm: remove hmm_mirror and related Jason Gunthorpe
2019-10-15 18:12 ` Jason Gunthorpe
[not found] ` <20191015181242.8343-16-jgg-uk2M96/98Pc@public.gmane.org>
2019-10-21 18:38 ` Jerome Glisse
2019-10-21 18:38 ` Jerome Glisse
2019-10-21 18:57 ` Jason Gunthorpe
2019-10-21 18:57 ` Jason Gunthorpe
[not found] ` <20191021185738.GH6285-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
2019-10-21 19:19 ` Jerome Glisse
2019-10-21 19:19 ` Jerome Glisse
2019-10-16 8:58 ` [PATCH hmm 00/15] Consolidate the mmu notifier interval_tree and locking Christian König
2019-10-16 8:58 ` Christian König
[not found] ` <bc954d29-388b-9e29-f960-115ccc6b9fea-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2019-10-16 16:04 ` Jason Gunthorpe
2019-10-16 16:04 ` Jason Gunthorpe
[not found] ` <20191016160444.GB3430-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
2019-10-17 8:54 ` Christian König
2019-10-17 8:54 ` Christian König
2019-10-17 16:26 ` Yang, Philip
2019-10-17 16:26 ` Yang, Philip
[not found] ` <2046e0b4-ba05-0683-5804-e9bbf903658d-5C7GfCeVMHo@public.gmane.org>
2019-10-17 16:47 ` Koenig, Christian
2019-10-17 16:47 ` Koenig, Christian
[not found] ` <d6bcbd2a-2519-8945-eaf5-4f4e738c7fa9-5C7GfCeVMHo@public.gmane.org>
2019-10-18 20:36 ` Jason Gunthorpe
2019-10-18 20:36 ` Jason Gunthorpe
2019-10-20 14:21 ` Koenig, Christian
2019-10-20 14:21 ` Koenig, Christian
2019-10-21 13:57 ` Jason Gunthorpe
2019-10-21 13:57 ` Jason Gunthorpe
[not found] ` <20191021135744.GA25164-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
2019-10-21 14:28 ` Koenig, Christian
2019-10-21 14:28 ` Koenig, Christian
2019-10-21 15:12 ` Jason Gunthorpe
2019-10-21 15:12 ` Jason Gunthorpe
[not found] ` <20191021151221.GC25164-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
2019-10-22 7:57 ` Daniel Vetter
2019-10-22 7:57 ` Daniel Vetter
2019-10-22 15:01 ` Jason Gunthorpe
2019-10-22 15:01 ` Jason Gunthorpe
2019-10-23 9:08 ` Daniel Vetter
2019-10-23 9:08 ` Daniel Vetter
2019-10-23 9:08 ` Daniel Vetter
2019-10-23 9:32 ` Christian König
2019-10-23 9:32 ` Christian König
2019-10-23 9:32 ` Christian König
[not found] ` <13edf841-421e-3522-fcec-ef919c2013ef-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2019-10-23 16:52 ` Jerome Glisse
2019-10-23 16:52 ` Jerome Glisse
2019-10-23 16:52 ` Jerome Glisse
2019-10-23 16:52 ` Jerome Glisse
2019-10-23 17:24 ` Jason Gunthorpe
2019-10-23 17:24 ` Jason Gunthorpe
2019-10-23 17:24 ` Jason Gunthorpe
[not found] ` <20191023172442.GX22766-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
2019-10-24 2:16 ` Christoph Hellwig
2019-10-24 2:16 ` Christoph Hellwig
2019-10-24 2:16 ` Christoph Hellwig
2019-10-21 18:40 ` Jerome Glisse
2019-10-21 18:40 ` Jerome Glisse
2019-10-21 19:06 ` Jason Gunthorpe
2019-10-21 19:06 ` Jason Gunthorpe
[not found] ` <20191021190556.GI6285-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
2019-10-23 20:26 ` Jerome Glisse
2019-10-23 20:26 ` Jerome Glisse
2019-10-23 20:26 ` Jerome Glisse
2019-10-23 20:26 ` Jerome Glisse
2019-10-21 15:55 ` Dennis Dalessandro
2019-10-21 15:55 ` Dennis Dalessandro
2019-10-21 16:58 ` Jason Gunthorpe
2019-10-21 16:58 ` Jason Gunthorpe
2019-10-22 11:56 ` Dennis Dalessandro
2019-10-22 11:56 ` Dennis Dalessandro
2019-10-22 14:37 ` Jason Gunthorpe
2019-10-22 14:37 ` Jason Gunthorpe
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=20191021183141.GB3177@redhat.com \
--to=jglisse-h+wxahxf7alqt0dzr+alfa@public.gmane.org \
--cc=Felix.Kuehling-5C7GfCeVMHo@public.gmane.org \
--cc=aarcange-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org \
--cc=amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org \
--cc=bskeggs-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org \
--cc=dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org \
--cc=jgg-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org \
--cc=jgg-uk2M96/98Pc@public.gmane.org \
--cc=jhubbard-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org \
--cc=linux-mm-Bw31MaZKKs3YtjvyW6yDsg@public.gmane.org \
--cc=linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=rcampbell-DDmLM1+adcrQT0dZR+AlfA@public.gmane.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 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.