All of lore.kernel.org
 help / color / mirror / Atom feed
From: Christoph Hellwig <hch@lst.de>
To: iommu-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org
Cc: linux-mips-6z/3iImG2C8G8FEW9MqTrA@public.gmane.org,
	linux-ia64-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	linux-sh-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	sparclinux-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	Guan Xuetao <gxt-TG0Ac1+ktVePQbnJrJN+5g@public.gmane.org>,
	linux-arch-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	linux-s390-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	linux-c6x-dev-jPsnJVOj+W6hPH1hqNUYSQ@public.gmane.org,
	linux-hexagon-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	x86-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org,
	linux-snps-arc-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org,
	adi-buildroot-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org,
	linux-m68k-cunTk1MwBs8S/qaLPR03pWD2FQJk+8+b@public.gmane.org,
	patches-q3qR2WxjNRFS9aJRtSZj7A@public.gmane.org,
	linux-metag-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org,
	Michal Simek <monstr-pSz03upnqPeHXe+LvDLADg@public.gmane.org>,
	linux-parisc-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	linux-cris-kernel-VrBV9hrLPhE@public.gmane.org,
	linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	linux-alpha-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	linuxppc-dev-uLR06cmDAlY/bJ5BZ2RsiQ@public.gmane.org
Subject: [PATCH 01/67] x86: remove X86_PPRO_FENCE
Date: Fri, 29 Dec 2017 08:18:05 +0000	[thread overview]
Message-ID: <20171229081911.2802-2-hch@lst.de> (raw)
In-Reply-To: <20171229081911.2802-1-hch-jcswGhMUV9g@public.gmane.org>

There were only a few Pentium Pro multiprocessors systems where this
errata applied. They are more than 20 years old now, and we've slowly
dropped places where put the workarounds in and discuraged anyone
from enabling the workaround.

Get rid of it for good.

Signed-off-by: Christoph Hellwig <hch@lst.de>
---
 arch/x86/Kconfig.cpu                        | 13 -------------
 arch/x86/entry/vdso/vdso32/vclock_gettime.c |  2 --
 arch/x86/include/asm/barrier.h              | 30 -----------------------------
 arch/x86/include/asm/io.h                   | 15 ---------------
 arch/x86/kernel/pci-nommu.c                 | 19 ------------------
 arch/x86/um/asm/barrier.h                   |  4 ----
 6 files changed, 83 deletions(-)

diff --git a/arch/x86/Kconfig.cpu b/arch/x86/Kconfig.cpu
index 65a9a4716e34..f0c5ef578153 100644
--- a/arch/x86/Kconfig.cpu
+++ b/arch/x86/Kconfig.cpu
@@ -315,19 +315,6 @@ config X86_L1_CACHE_SHIFT
 	default "4" if MELAN || M486 || MGEODEGX1
 	default "5" if MWINCHIP3D || MWINCHIPC6 || MCRUSOE || MEFFICEON || MCYRIXIII || MK6 || MPENTIUMIII || MPENTIUMII || M686 || M586MMX || M586TSC || M586 || MVIAC3_2 || MGEODE_LX
 
-config X86_PPRO_FENCE
-	bool "PentiumPro memory ordering errata workaround"
-	depends on M686 || M586MMX || M586TSC || M586 || M486 || MGEODEGX1
-	---help---
-	  Old PentiumPro multiprocessor systems had errata that could cause
-	  memory operations to violate the x86 ordering standard in rare cases.
-	  Enabling this option will attempt to work around some (but not all)
-	  occurrences of this problem, at the cost of much heavier spinlock and
-	  memory barrier operations.
-
-	  If unsure, say n here. Even distro kernels should think twice before
-	  enabling this: there are few systems, and an unlikely bug.
-
 config X86_F00F_BUG
 	def_bool y
 	depends on M586MMX || M586TSC || M586 || M486
diff --git a/arch/x86/entry/vdso/vdso32/vclock_gettime.c b/arch/x86/entry/vdso/vdso32/vclock_gettime.c
index 7780bbfb06ef..9242b28418d5 100644
--- a/arch/x86/entry/vdso/vdso32/vclock_gettime.c
+++ b/arch/x86/entry/vdso/vdso32/vclock_gettime.c
@@ -5,8 +5,6 @@
 #undef CONFIG_OPTIMIZE_INLINING
 #endif
 
-#undef CONFIG_X86_PPRO_FENCE
-
 #ifdef CONFIG_X86_64
 
 /*
diff --git a/arch/x86/include/asm/barrier.h b/arch/x86/include/asm/barrier.h
index 7fb336210e1b..aa0f7449d4a4 100644
--- a/arch/x86/include/asm/barrier.h
+++ b/arch/x86/include/asm/barrier.h
@@ -24,11 +24,7 @@
 #define wmb()	asm volatile("sfence" ::: "memory")
 #endif
 
-#ifdef CONFIG_X86_PPRO_FENCE
-#define dma_rmb()	rmb()
-#else
 #define dma_rmb()	barrier()
-#endif
 #define dma_wmb()	barrier()
 
 #ifdef CONFIG_X86_32
@@ -40,30 +36,6 @@
 #define __smp_wmb()	barrier()
 #define __smp_store_mb(var, value) do { (void)xchg(&var, value); } while (0)
 
-#if defined(CONFIG_X86_PPRO_FENCE)
-
-/*
- * For this option x86 doesn't have a strong TSO memory
- * model and we should fall back to full barriers.
- */
-
-#define __smp_store_release(p, v)					\
-do {									\
-	compiletime_assert_atomic_type(*p);				\
-	__smp_mb();							\
-	WRITE_ONCE(*p, v);						\
-} while (0)
-
-#define __smp_load_acquire(p)						\
-({									\
-	typeof(*p) ___p1 = READ_ONCE(*p);				\
-	compiletime_assert_atomic_type(*p);				\
-	__smp_mb();							\
-	___p1;								\
-})
-
-#else /* regular x86 TSO memory ordering */
-
 #define __smp_store_release(p, v)					\
 do {									\
 	compiletime_assert_atomic_type(*p);				\
@@ -79,8 +51,6 @@ do {									\
 	___p1;								\
 })
 
-#endif
-
 /* Atomic operations are already serializing on x86 */
 #define __smp_mb__before_atomic()	barrier()
 #define __smp_mb__after_atomic()	barrier()
diff --git a/arch/x86/include/asm/io.h b/arch/x86/include/asm/io.h
index 95e948627fd0..f6e5b9375d8c 100644
--- a/arch/x86/include/asm/io.h
+++ b/arch/x86/include/asm/io.h
@@ -232,21 +232,6 @@ extern void set_iounmap_nonlazy(void);
  */
 #define __ISA_IO_base ((char __iomem *)(PAGE_OFFSET))
 
-/*
- *	Cache management
- *
- *	This needed for two cases
- *	1. Out of order aware processors
- *	2. Accidentally out of order processors (PPro errata #51)
- */
-
-static inline void flush_write_buffers(void)
-{
-#if defined(CONFIG_X86_PPRO_FENCE)
-	asm volatile("lock; addl $0,0(%%esp)": : :"memory");
-#endif
-}
-
 #endif /* __KERNEL__ */
 
 extern void native_io_delay(void);
diff --git a/arch/x86/kernel/pci-nommu.c b/arch/x86/kernel/pci-nommu.c
index b0caae27e1b7..c78df78b5ccd 100644
--- a/arch/x86/kernel/pci-nommu.c
+++ b/arch/x86/kernel/pci-nommu.c
@@ -37,7 +37,6 @@ static dma_addr_t nommu_map_page(struct device *dev, struct page *page,
 	WARN_ON(size = 0);
 	if (!check_addr("map_single", dev, bus, size))
 		return NOMMU_MAPPING_ERROR;
-	flush_write_buffers();
 	return bus;
 }
 
@@ -72,25 +71,9 @@ static int nommu_map_sg(struct device *hwdev, struct scatterlist *sg,
 			return 0;
 		s->dma_length = s->length;
 	}
-	flush_write_buffers();
 	return nents;
 }
 
-static void nommu_sync_single_for_device(struct device *dev,
-			dma_addr_t addr, size_t size,
-			enum dma_data_direction dir)
-{
-	flush_write_buffers();
-}
-
-
-static void nommu_sync_sg_for_device(struct device *dev,
-			struct scatterlist *sg, int nelems,
-			enum dma_data_direction dir)
-{
-	flush_write_buffers();
-}
-
 static int nommu_mapping_error(struct device *dev, dma_addr_t dma_addr)
 {
 	return dma_addr = NOMMU_MAPPING_ERROR;
@@ -101,8 +84,6 @@ const struct dma_map_ops nommu_dma_ops = {
 	.free			= dma_generic_free_coherent,
 	.map_sg			= nommu_map_sg,
 	.map_page		= nommu_map_page,
-	.sync_single_for_device = nommu_sync_single_for_device,
-	.sync_sg_for_device	= nommu_sync_sg_for_device,
 	.is_phys		= 1,
 	.mapping_error		= nommu_mapping_error,
 	.dma_supported		= x86_dma_supported,
diff --git a/arch/x86/um/asm/barrier.h b/arch/x86/um/asm/barrier.h
index b7d73400ea29..f31e5d903161 100644
--- a/arch/x86/um/asm/barrier.h
+++ b/arch/x86/um/asm/barrier.h
@@ -30,11 +30,7 @@
 
 #endif /* CONFIG_X86_32 */
 
-#ifdef CONFIG_X86_PPRO_FENCE
-#define dma_rmb()	rmb()
-#else /* CONFIG_X86_PPRO_FENCE */
 #define dma_rmb()	barrier()
-#endif /* CONFIG_X86_PPRO_FENCE */
 #define dma_wmb()	barrier()
 
 #include <asm-generic/barrier.h>
-- 
2.14.2


WARNING: multiple messages have this Message-ID (diff)
From: Christoph Hellwig <hch-jcswGhMUV9g@public.gmane.org>
To: iommu-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org
Cc: linux-mips-6z/3iImG2C8G8FEW9MqTrA@public.gmane.org,
	linux-ia64-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	linux-sh-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	sparclinux-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	Guan Xuetao <gxt-TG0Ac1+ktVePQbnJrJN+5g@public.gmane.org>,
	linux-arch-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	linux-s390-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	linux-c6x-dev-jPsnJVOj+W6hPH1hqNUYSQ@public.gmane.org,
	linux-hexagon-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	x86-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org,
	linux-snps-arc-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org,
	adi-buildroot-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org,
	linux-m68k-cunTk1MwBs8S/qaLPR03pWD2FQJk+8+b@public.gmane.org,
	patches-q3qR2WxjNRFS9aJRtSZj7A@public.gmane.org,
	linux-metag-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org,
	Michal Simek <monstr-pSz03upnqPeHXe+LvDLADg@public.gmane.org>,
	linux-parisc-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	linux-cris-kernel-VrBV9hrLPhE@public.gmane.org,
	linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	linux-alpha-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	linuxppc-dev-uLR06cmDAlY/bJ5BZ2RsiQ@public.gmane.org
Subject: [PATCH 01/67] x86: remove X86_PPRO_FENCE
Date: Fri, 29 Dec 2017 09:18:05 +0100	[thread overview]
Message-ID: <20171229081911.2802-2-hch@lst.de> (raw)
In-Reply-To: <20171229081911.2802-1-hch-jcswGhMUV9g@public.gmane.org>

There were only a few Pentium Pro multiprocessors systems where this
errata applied. They are more than 20 years old now, and we've slowly
dropped places where put the workarounds in and discuraged anyone
from enabling the workaround.

Get rid of it for good.

Signed-off-by: Christoph Hellwig <hch-jcswGhMUV9g@public.gmane.org>
---
 arch/x86/Kconfig.cpu                        | 13 -------------
 arch/x86/entry/vdso/vdso32/vclock_gettime.c |  2 --
 arch/x86/include/asm/barrier.h              | 30 -----------------------------
 arch/x86/include/asm/io.h                   | 15 ---------------
 arch/x86/kernel/pci-nommu.c                 | 19 ------------------
 arch/x86/um/asm/barrier.h                   |  4 ----
 6 files changed, 83 deletions(-)

diff --git a/arch/x86/Kconfig.cpu b/arch/x86/Kconfig.cpu
index 65a9a4716e34..f0c5ef578153 100644
--- a/arch/x86/Kconfig.cpu
+++ b/arch/x86/Kconfig.cpu
@@ -315,19 +315,6 @@ config X86_L1_CACHE_SHIFT
 	default "4" if MELAN || M486 || MGEODEGX1
 	default "5" if MWINCHIP3D || MWINCHIPC6 || MCRUSOE || MEFFICEON || MCYRIXIII || MK6 || MPENTIUMIII || MPENTIUMII || M686 || M586MMX || M586TSC || M586 || MVIAC3_2 || MGEODE_LX
 
-config X86_PPRO_FENCE
-	bool "PentiumPro memory ordering errata workaround"
-	depends on M686 || M586MMX || M586TSC || M586 || M486 || MGEODEGX1
-	---help---
-	  Old PentiumPro multiprocessor systems had errata that could cause
-	  memory operations to violate the x86 ordering standard in rare cases.
-	  Enabling this option will attempt to work around some (but not all)
-	  occurrences of this problem, at the cost of much heavier spinlock and
-	  memory barrier operations.
-
-	  If unsure, say n here. Even distro kernels should think twice before
-	  enabling this: there are few systems, and an unlikely bug.
-
 config X86_F00F_BUG
 	def_bool y
 	depends on M586MMX || M586TSC || M586 || M486
diff --git a/arch/x86/entry/vdso/vdso32/vclock_gettime.c b/arch/x86/entry/vdso/vdso32/vclock_gettime.c
index 7780bbfb06ef..9242b28418d5 100644
--- a/arch/x86/entry/vdso/vdso32/vclock_gettime.c
+++ b/arch/x86/entry/vdso/vdso32/vclock_gettime.c
@@ -5,8 +5,6 @@
 #undef CONFIG_OPTIMIZE_INLINING
 #endif
 
-#undef CONFIG_X86_PPRO_FENCE
-
 #ifdef CONFIG_X86_64
 
 /*
diff --git a/arch/x86/include/asm/barrier.h b/arch/x86/include/asm/barrier.h
index 7fb336210e1b..aa0f7449d4a4 100644
--- a/arch/x86/include/asm/barrier.h
+++ b/arch/x86/include/asm/barrier.h
@@ -24,11 +24,7 @@
 #define wmb()	asm volatile("sfence" ::: "memory")
 #endif
 
-#ifdef CONFIG_X86_PPRO_FENCE
-#define dma_rmb()	rmb()
-#else
 #define dma_rmb()	barrier()
-#endif
 #define dma_wmb()	barrier()
 
 #ifdef CONFIG_X86_32
@@ -40,30 +36,6 @@
 #define __smp_wmb()	barrier()
 #define __smp_store_mb(var, value) do { (void)xchg(&var, value); } while (0)
 
-#if defined(CONFIG_X86_PPRO_FENCE)
-
-/*
- * For this option x86 doesn't have a strong TSO memory
- * model and we should fall back to full barriers.
- */
-
-#define __smp_store_release(p, v)					\
-do {									\
-	compiletime_assert_atomic_type(*p);				\
-	__smp_mb();							\
-	WRITE_ONCE(*p, v);						\
-} while (0)
-
-#define __smp_load_acquire(p)						\
-({									\
-	typeof(*p) ___p1 = READ_ONCE(*p);				\
-	compiletime_assert_atomic_type(*p);				\
-	__smp_mb();							\
-	___p1;								\
-})
-
-#else /* regular x86 TSO memory ordering */
-
 #define __smp_store_release(p, v)					\
 do {									\
 	compiletime_assert_atomic_type(*p);				\
@@ -79,8 +51,6 @@ do {									\
 	___p1;								\
 })
 
-#endif
-
 /* Atomic operations are already serializing on x86 */
 #define __smp_mb__before_atomic()	barrier()
 #define __smp_mb__after_atomic()	barrier()
diff --git a/arch/x86/include/asm/io.h b/arch/x86/include/asm/io.h
index 95e948627fd0..f6e5b9375d8c 100644
--- a/arch/x86/include/asm/io.h
+++ b/arch/x86/include/asm/io.h
@@ -232,21 +232,6 @@ extern void set_iounmap_nonlazy(void);
  */
 #define __ISA_IO_base ((char __iomem *)(PAGE_OFFSET))
 
-/*
- *	Cache management
- *
- *	This needed for two cases
- *	1. Out of order aware processors
- *	2. Accidentally out of order processors (PPro errata #51)
- */
-
-static inline void flush_write_buffers(void)
-{
-#if defined(CONFIG_X86_PPRO_FENCE)
-	asm volatile("lock; addl $0,0(%%esp)": : :"memory");
-#endif
-}
-
 #endif /* __KERNEL__ */
 
 extern void native_io_delay(void);
diff --git a/arch/x86/kernel/pci-nommu.c b/arch/x86/kernel/pci-nommu.c
index b0caae27e1b7..c78df78b5ccd 100644
--- a/arch/x86/kernel/pci-nommu.c
+++ b/arch/x86/kernel/pci-nommu.c
@@ -37,7 +37,6 @@ static dma_addr_t nommu_map_page(struct device *dev, struct page *page,
 	WARN_ON(size == 0);
 	if (!check_addr("map_single", dev, bus, size))
 		return NOMMU_MAPPING_ERROR;
-	flush_write_buffers();
 	return bus;
 }
 
@@ -72,25 +71,9 @@ static int nommu_map_sg(struct device *hwdev, struct scatterlist *sg,
 			return 0;
 		s->dma_length = s->length;
 	}
-	flush_write_buffers();
 	return nents;
 }
 
-static void nommu_sync_single_for_device(struct device *dev,
-			dma_addr_t addr, size_t size,
-			enum dma_data_direction dir)
-{
-	flush_write_buffers();
-}
-
-
-static void nommu_sync_sg_for_device(struct device *dev,
-			struct scatterlist *sg, int nelems,
-			enum dma_data_direction dir)
-{
-	flush_write_buffers();
-}
-
 static int nommu_mapping_error(struct device *dev, dma_addr_t dma_addr)
 {
 	return dma_addr == NOMMU_MAPPING_ERROR;
@@ -101,8 +84,6 @@ const struct dma_map_ops nommu_dma_ops = {
 	.free			= dma_generic_free_coherent,
 	.map_sg			= nommu_map_sg,
 	.map_page		= nommu_map_page,
-	.sync_single_for_device = nommu_sync_single_for_device,
-	.sync_sg_for_device	= nommu_sync_sg_for_device,
 	.is_phys		= 1,
 	.mapping_error		= nommu_mapping_error,
 	.dma_supported		= x86_dma_supported,
diff --git a/arch/x86/um/asm/barrier.h b/arch/x86/um/asm/barrier.h
index b7d73400ea29..f31e5d903161 100644
--- a/arch/x86/um/asm/barrier.h
+++ b/arch/x86/um/asm/barrier.h
@@ -30,11 +30,7 @@
 
 #endif /* CONFIG_X86_32 */
 
-#ifdef CONFIG_X86_PPRO_FENCE
-#define dma_rmb()	rmb()
-#else /* CONFIG_X86_PPRO_FENCE */
 #define dma_rmb()	barrier()
-#endif /* CONFIG_X86_PPRO_FENCE */
 #define dma_wmb()	barrier()
 
 #include <asm-generic/barrier.h>
-- 
2.14.2

WARNING: multiple messages have this Message-ID (diff)
From: Christoph Hellwig <hch@lst.de>
To: iommu@lists.linux-foundation.org
Cc: linux-alpha@vger.kernel.org, linux-snps-arc@lists.infradead.org,
	linux-arm-kernel@lists.infradead.org,
	adi-buildroot-devel@lists.sourceforge.net,
	linux-c6x-dev@linux-c6x.org, linux-cris-kernel@axis.com,
	linux-hexagon@vger.kernel.org, linux-ia64@vger.kernel.org,
	linux-m68k@vger.kernel.org, linux-metag@vger.kernel.org,
	Michal Simek <monstr@monstr.eu>,
	linux-mips@linux-mips.org, linux-parisc@vger.kernel.org,
	linuxppc-dev@lists.ozlabs.org, patches@groups.riscv.org,
	linux-s390@vger.kernel.org, linux-sh@vger.kernel.org,
	sparclinux@vger.kernel.org, Guan Xuetao <gxt@mprc.pku.edu.cn>,
	x86@kernel.org, linux-arch@vger.kernel.org,
	linux-kernel@vger.kernel.org
Subject: [PATCH 01/67] x86: remove X86_PPRO_FENCE
Date: Fri, 29 Dec 2017 09:18:05 +0100	[thread overview]
Message-ID: <20171229081911.2802-2-hch@lst.de> (raw)
In-Reply-To: <20171229081911.2802-1-hch@lst.de>

There were only a few Pentium Pro multiprocessors systems where this
errata applied. They are more than 20 years old now, and we've slowly
dropped places where put the workarounds in and discuraged anyone
from enabling the workaround.

Get rid of it for good.

Signed-off-by: Christoph Hellwig <hch@lst.de>
---
 arch/x86/Kconfig.cpu                        | 13 -------------
 arch/x86/entry/vdso/vdso32/vclock_gettime.c |  2 --
 arch/x86/include/asm/barrier.h              | 30 -----------------------------
 arch/x86/include/asm/io.h                   | 15 ---------------
 arch/x86/kernel/pci-nommu.c                 | 19 ------------------
 arch/x86/um/asm/barrier.h                   |  4 ----
 6 files changed, 83 deletions(-)

diff --git a/arch/x86/Kconfig.cpu b/arch/x86/Kconfig.cpu
index 65a9a4716e34..f0c5ef578153 100644
--- a/arch/x86/Kconfig.cpu
+++ b/arch/x86/Kconfig.cpu
@@ -315,19 +315,6 @@ config X86_L1_CACHE_SHIFT
 	default "4" if MELAN || M486 || MGEODEGX1
 	default "5" if MWINCHIP3D || MWINCHIPC6 || MCRUSOE || MEFFICEON || MCYRIXIII || MK6 || MPENTIUMIII || MPENTIUMII || M686 || M586MMX || M586TSC || M586 || MVIAC3_2 || MGEODE_LX
 
-config X86_PPRO_FENCE
-	bool "PentiumPro memory ordering errata workaround"
-	depends on M686 || M586MMX || M586TSC || M586 || M486 || MGEODEGX1
-	---help---
-	  Old PentiumPro multiprocessor systems had errata that could cause
-	  memory operations to violate the x86 ordering standard in rare cases.
-	  Enabling this option will attempt to work around some (but not all)
-	  occurrences of this problem, at the cost of much heavier spinlock and
-	  memory barrier operations.
-
-	  If unsure, say n here. Even distro kernels should think twice before
-	  enabling this: there are few systems, and an unlikely bug.
-
 config X86_F00F_BUG
 	def_bool y
 	depends on M586MMX || M586TSC || M586 || M486
diff --git a/arch/x86/entry/vdso/vdso32/vclock_gettime.c b/arch/x86/entry/vdso/vdso32/vclock_gettime.c
index 7780bbfb06ef..9242b28418d5 100644
--- a/arch/x86/entry/vdso/vdso32/vclock_gettime.c
+++ b/arch/x86/entry/vdso/vdso32/vclock_gettime.c
@@ -5,8 +5,6 @@
 #undef CONFIG_OPTIMIZE_INLINING
 #endif
 
-#undef CONFIG_X86_PPRO_FENCE
-
 #ifdef CONFIG_X86_64
 
 /*
diff --git a/arch/x86/include/asm/barrier.h b/arch/x86/include/asm/barrier.h
index 7fb336210e1b..aa0f7449d4a4 100644
--- a/arch/x86/include/asm/barrier.h
+++ b/arch/x86/include/asm/barrier.h
@@ -24,11 +24,7 @@
 #define wmb()	asm volatile("sfence" ::: "memory")
 #endif
 
-#ifdef CONFIG_X86_PPRO_FENCE
-#define dma_rmb()	rmb()
-#else
 #define dma_rmb()	barrier()
-#endif
 #define dma_wmb()	barrier()
 
 #ifdef CONFIG_X86_32
@@ -40,30 +36,6 @@
 #define __smp_wmb()	barrier()
 #define __smp_store_mb(var, value) do { (void)xchg(&var, value); } while (0)
 
-#if defined(CONFIG_X86_PPRO_FENCE)
-
-/*
- * For this option x86 doesn't have a strong TSO memory
- * model and we should fall back to full barriers.
- */
-
-#define __smp_store_release(p, v)					\
-do {									\
-	compiletime_assert_atomic_type(*p);				\
-	__smp_mb();							\
-	WRITE_ONCE(*p, v);						\
-} while (0)
-
-#define __smp_load_acquire(p)						\
-({									\
-	typeof(*p) ___p1 = READ_ONCE(*p);				\
-	compiletime_assert_atomic_type(*p);				\
-	__smp_mb();							\
-	___p1;								\
-})
-
-#else /* regular x86 TSO memory ordering */
-
 #define __smp_store_release(p, v)					\
 do {									\
 	compiletime_assert_atomic_type(*p);				\
@@ -79,8 +51,6 @@ do {									\
 	___p1;								\
 })
 
-#endif
-
 /* Atomic operations are already serializing on x86 */
 #define __smp_mb__before_atomic()	barrier()
 #define __smp_mb__after_atomic()	barrier()
diff --git a/arch/x86/include/asm/io.h b/arch/x86/include/asm/io.h
index 95e948627fd0..f6e5b9375d8c 100644
--- a/arch/x86/include/asm/io.h
+++ b/arch/x86/include/asm/io.h
@@ -232,21 +232,6 @@ extern void set_iounmap_nonlazy(void);
  */
 #define __ISA_IO_base ((char __iomem *)(PAGE_OFFSET))
 
-/*
- *	Cache management
- *
- *	This needed for two cases
- *	1. Out of order aware processors
- *	2. Accidentally out of order processors (PPro errata #51)
- */
-
-static inline void flush_write_buffers(void)
-{
-#if defined(CONFIG_X86_PPRO_FENCE)
-	asm volatile("lock; addl $0,0(%%esp)": : :"memory");
-#endif
-}
-
 #endif /* __KERNEL__ */
 
 extern void native_io_delay(void);
diff --git a/arch/x86/kernel/pci-nommu.c b/arch/x86/kernel/pci-nommu.c
index b0caae27e1b7..c78df78b5ccd 100644
--- a/arch/x86/kernel/pci-nommu.c
+++ b/arch/x86/kernel/pci-nommu.c
@@ -37,7 +37,6 @@ static dma_addr_t nommu_map_page(struct device *dev, struct page *page,
 	WARN_ON(size == 0);
 	if (!check_addr("map_single", dev, bus, size))
 		return NOMMU_MAPPING_ERROR;
-	flush_write_buffers();
 	return bus;
 }
 
@@ -72,25 +71,9 @@ static int nommu_map_sg(struct device *hwdev, struct scatterlist *sg,
 			return 0;
 		s->dma_length = s->length;
 	}
-	flush_write_buffers();
 	return nents;
 }
 
-static void nommu_sync_single_for_device(struct device *dev,
-			dma_addr_t addr, size_t size,
-			enum dma_data_direction dir)
-{
-	flush_write_buffers();
-}
-
-
-static void nommu_sync_sg_for_device(struct device *dev,
-			struct scatterlist *sg, int nelems,
-			enum dma_data_direction dir)
-{
-	flush_write_buffers();
-}
-
 static int nommu_mapping_error(struct device *dev, dma_addr_t dma_addr)
 {
 	return dma_addr == NOMMU_MAPPING_ERROR;
@@ -101,8 +84,6 @@ const struct dma_map_ops nommu_dma_ops = {
 	.free			= dma_generic_free_coherent,
 	.map_sg			= nommu_map_sg,
 	.map_page		= nommu_map_page,
-	.sync_single_for_device = nommu_sync_single_for_device,
-	.sync_sg_for_device	= nommu_sync_sg_for_device,
 	.is_phys		= 1,
 	.mapping_error		= nommu_mapping_error,
 	.dma_supported		= x86_dma_supported,
diff --git a/arch/x86/um/asm/barrier.h b/arch/x86/um/asm/barrier.h
index b7d73400ea29..f31e5d903161 100644
--- a/arch/x86/um/asm/barrier.h
+++ b/arch/x86/um/asm/barrier.h
@@ -30,11 +30,7 @@
 
 #endif /* CONFIG_X86_32 */
 
-#ifdef CONFIG_X86_PPRO_FENCE
-#define dma_rmb()	rmb()
-#else /* CONFIG_X86_PPRO_FENCE */
 #define dma_rmb()	barrier()
-#endif /* CONFIG_X86_PPRO_FENCE */
 #define dma_wmb()	barrier()
 
 #include <asm-generic/barrier.h>
-- 
2.14.2

WARNING: multiple messages have this Message-ID (diff)
From: Christoph Hellwig <hch@lst.de>
To: iommu@lists.linux-foundation.org
Cc: linux-alpha@vger.kernel.org, linux-snps-arc@lists.infradead.org,
	linux-arm-kernel@lists.infradead.org,
	adi-buildroot-devel@lists.sourceforge.net,
	linux-c6x-dev@linux-c6x.org, linux-cris-kernel@axis.com,
	linux-hexagon@vger.kernel.org, linux-ia64@vger.kernel.org,
	linux-m68k@lists.linux-m68k.org, linux-metag@vger.kernel.org,
	Michal Simek <monstr@monstr.eu>,
	linux-mips@linux-mips.org, linux-parisc@vger.kernel.org,
	linuxppc-dev@lists.ozlabs.org, patches@groups.riscv.org,
	linux-s390@vger.kernel.org, linux-sh@vger.kernel.org,
	sparclinux@vger.kernel.org, Guan Xuetao <gxt@mprc.pku.edu.cn>,
	x86@kernel.org, linux-arch@vger.kernel.org,
	linux-kernel@vger.kernel.org
Subject: [PATCH 01/67] x86: remove X86_PPRO_FENCE
Date: Fri, 29 Dec 2017 09:18:05 +0100	[thread overview]
Message-ID: <20171229081911.2802-2-hch@lst.de> (raw)
Message-ID: <20171229081805.JaGhMhB41hzs5jLidMc2ED4QikMRo6D6npHKz2EJfkI@z> (raw)
In-Reply-To: <20171229081911.2802-1-hch@lst.de>

There were only a few Pentium Pro multiprocessors systems where this
errata applied. They are more than 20 years old now, and we've slowly
dropped places where put the workarounds in and discuraged anyone
from enabling the workaround.

Get rid of it for good.

Signed-off-by: Christoph Hellwig <hch@lst.de>
---
 arch/x86/Kconfig.cpu                        | 13 -------------
 arch/x86/entry/vdso/vdso32/vclock_gettime.c |  2 --
 arch/x86/include/asm/barrier.h              | 30 -----------------------------
 arch/x86/include/asm/io.h                   | 15 ---------------
 arch/x86/kernel/pci-nommu.c                 | 19 ------------------
 arch/x86/um/asm/barrier.h                   |  4 ----
 6 files changed, 83 deletions(-)

diff --git a/arch/x86/Kconfig.cpu b/arch/x86/Kconfig.cpu
index 65a9a4716e34..f0c5ef578153 100644
--- a/arch/x86/Kconfig.cpu
+++ b/arch/x86/Kconfig.cpu
@@ -315,19 +315,6 @@ config X86_L1_CACHE_SHIFT
 	default "4" if MELAN || M486 || MGEODEGX1
 	default "5" if MWINCHIP3D || MWINCHIPC6 || MCRUSOE || MEFFICEON || MCYRIXIII || MK6 || MPENTIUMIII || MPENTIUMII || M686 || M586MMX || M586TSC || M586 || MVIAC3_2 || MGEODE_LX
 
-config X86_PPRO_FENCE
-	bool "PentiumPro memory ordering errata workaround"
-	depends on M686 || M586MMX || M586TSC || M586 || M486 || MGEODEGX1
-	---help---
-	  Old PentiumPro multiprocessor systems had errata that could cause
-	  memory operations to violate the x86 ordering standard in rare cases.
-	  Enabling this option will attempt to work around some (but not all)
-	  occurrences of this problem, at the cost of much heavier spinlock and
-	  memory barrier operations.
-
-	  If unsure, say n here. Even distro kernels should think twice before
-	  enabling this: there are few systems, and an unlikely bug.
-
 config X86_F00F_BUG
 	def_bool y
 	depends on M586MMX || M586TSC || M586 || M486
diff --git a/arch/x86/entry/vdso/vdso32/vclock_gettime.c b/arch/x86/entry/vdso/vdso32/vclock_gettime.c
index 7780bbfb06ef..9242b28418d5 100644
--- a/arch/x86/entry/vdso/vdso32/vclock_gettime.c
+++ b/arch/x86/entry/vdso/vdso32/vclock_gettime.c
@@ -5,8 +5,6 @@
 #undef CONFIG_OPTIMIZE_INLINING
 #endif
 
-#undef CONFIG_X86_PPRO_FENCE
-
 #ifdef CONFIG_X86_64
 
 /*
diff --git a/arch/x86/include/asm/barrier.h b/arch/x86/include/asm/barrier.h
index 7fb336210e1b..aa0f7449d4a4 100644
--- a/arch/x86/include/asm/barrier.h
+++ b/arch/x86/include/asm/barrier.h
@@ -24,11 +24,7 @@
 #define wmb()	asm volatile("sfence" ::: "memory")
 #endif
 
-#ifdef CONFIG_X86_PPRO_FENCE
-#define dma_rmb()	rmb()
-#else
 #define dma_rmb()	barrier()
-#endif
 #define dma_wmb()	barrier()
 
 #ifdef CONFIG_X86_32
@@ -40,30 +36,6 @@
 #define __smp_wmb()	barrier()
 #define __smp_store_mb(var, value) do { (void)xchg(&var, value); } while (0)
 
-#if defined(CONFIG_X86_PPRO_FENCE)
-
-/*
- * For this option x86 doesn't have a strong TSO memory
- * model and we should fall back to full barriers.
- */
-
-#define __smp_store_release(p, v)					\
-do {									\
-	compiletime_assert_atomic_type(*p);				\
-	__smp_mb();							\
-	WRITE_ONCE(*p, v);						\
-} while (0)
-
-#define __smp_load_acquire(p)						\
-({									\
-	typeof(*p) ___p1 = READ_ONCE(*p);				\
-	compiletime_assert_atomic_type(*p);				\
-	__smp_mb();							\
-	___p1;								\
-})
-
-#else /* regular x86 TSO memory ordering */
-
 #define __smp_store_release(p, v)					\
 do {									\
 	compiletime_assert_atomic_type(*p);				\
@@ -79,8 +51,6 @@ do {									\
 	___p1;								\
 })
 
-#endif
-
 /* Atomic operations are already serializing on x86 */
 #define __smp_mb__before_atomic()	barrier()
 #define __smp_mb__after_atomic()	barrier()
diff --git a/arch/x86/include/asm/io.h b/arch/x86/include/asm/io.h
index 95e948627fd0..f6e5b9375d8c 100644
--- a/arch/x86/include/asm/io.h
+++ b/arch/x86/include/asm/io.h
@@ -232,21 +232,6 @@ extern void set_iounmap_nonlazy(void);
  */
 #define __ISA_IO_base ((char __iomem *)(PAGE_OFFSET))
 
-/*
- *	Cache management
- *
- *	This needed for two cases
- *	1. Out of order aware processors
- *	2. Accidentally out of order processors (PPro errata #51)
- */
-
-static inline void flush_write_buffers(void)
-{
-#if defined(CONFIG_X86_PPRO_FENCE)
-	asm volatile("lock; addl $0,0(%%esp)": : :"memory");
-#endif
-}
-
 #endif /* __KERNEL__ */
 
 extern void native_io_delay(void);
diff --git a/arch/x86/kernel/pci-nommu.c b/arch/x86/kernel/pci-nommu.c
index b0caae27e1b7..c78df78b5ccd 100644
--- a/arch/x86/kernel/pci-nommu.c
+++ b/arch/x86/kernel/pci-nommu.c
@@ -37,7 +37,6 @@ static dma_addr_t nommu_map_page(struct device *dev, struct page *page,
 	WARN_ON(size == 0);
 	if (!check_addr("map_single", dev, bus, size))
 		return NOMMU_MAPPING_ERROR;
-	flush_write_buffers();
 	return bus;
 }
 
@@ -72,25 +71,9 @@ static int nommu_map_sg(struct device *hwdev, struct scatterlist *sg,
 			return 0;
 		s->dma_length = s->length;
 	}
-	flush_write_buffers();
 	return nents;
 }
 
-static void nommu_sync_single_for_device(struct device *dev,
-			dma_addr_t addr, size_t size,
-			enum dma_data_direction dir)
-{
-	flush_write_buffers();
-}
-
-
-static void nommu_sync_sg_for_device(struct device *dev,
-			struct scatterlist *sg, int nelems,
-			enum dma_data_direction dir)
-{
-	flush_write_buffers();
-}
-
 static int nommu_mapping_error(struct device *dev, dma_addr_t dma_addr)
 {
 	return dma_addr == NOMMU_MAPPING_ERROR;
@@ -101,8 +84,6 @@ const struct dma_map_ops nommu_dma_ops = {
 	.free			= dma_generic_free_coherent,
 	.map_sg			= nommu_map_sg,
 	.map_page		= nommu_map_page,
-	.sync_single_for_device = nommu_sync_single_for_device,
-	.sync_sg_for_device	= nommu_sync_sg_for_device,
 	.is_phys		= 1,
 	.mapping_error		= nommu_mapping_error,
 	.dma_supported		= x86_dma_supported,
diff --git a/arch/x86/um/asm/barrier.h b/arch/x86/um/asm/barrier.h
index b7d73400ea29..f31e5d903161 100644
--- a/arch/x86/um/asm/barrier.h
+++ b/arch/x86/um/asm/barrier.h
@@ -30,11 +30,7 @@
 
 #endif /* CONFIG_X86_32 */
 
-#ifdef CONFIG_X86_PPRO_FENCE
-#define dma_rmb()	rmb()
-#else /* CONFIG_X86_PPRO_FENCE */
 #define dma_rmb()	barrier()
-#endif /* CONFIG_X86_PPRO_FENCE */
 #define dma_wmb()	barrier()
 
 #include <asm-generic/barrier.h>
-- 
2.14.2

WARNING: multiple messages have this Message-ID (diff)
From: hch@lst.de (Christoph Hellwig)
To: linux-snps-arc@lists.infradead.org
Subject: [PATCH 01/67] x86: remove X86_PPRO_FENCE
Date: Fri, 29 Dec 2017 09:18:05 +0100	[thread overview]
Message-ID: <20171229081911.2802-2-hch@lst.de> (raw)
In-Reply-To: <20171229081911.2802-1-hch@lst.de>

There were only a few Pentium Pro multiprocessors systems where this
errata applied. They are more than 20 years old now, and we've slowly
dropped places where put the workarounds in and discuraged anyone
from enabling the workaround.

Get rid of it for good.

Signed-off-by: Christoph Hellwig <hch at lst.de>
---
 arch/x86/Kconfig.cpu                        | 13 -------------
 arch/x86/entry/vdso/vdso32/vclock_gettime.c |  2 --
 arch/x86/include/asm/barrier.h              | 30 -----------------------------
 arch/x86/include/asm/io.h                   | 15 ---------------
 arch/x86/kernel/pci-nommu.c                 | 19 ------------------
 arch/x86/um/asm/barrier.h                   |  4 ----
 6 files changed, 83 deletions(-)

diff --git a/arch/x86/Kconfig.cpu b/arch/x86/Kconfig.cpu
index 65a9a4716e34..f0c5ef578153 100644
--- a/arch/x86/Kconfig.cpu
+++ b/arch/x86/Kconfig.cpu
@@ -315,19 +315,6 @@ config X86_L1_CACHE_SHIFT
 	default "4" if MELAN || M486 || MGEODEGX1
 	default "5" if MWINCHIP3D || MWINCHIPC6 || MCRUSOE || MEFFICEON || MCYRIXIII || MK6 || MPENTIUMIII || MPENTIUMII || M686 || M586MMX || M586TSC || M586 || MVIAC3_2 || MGEODE_LX
 
-config X86_PPRO_FENCE
-	bool "PentiumPro memory ordering errata workaround"
-	depends on M686 || M586MMX || M586TSC || M586 || M486 || MGEODEGX1
-	---help---
-	  Old PentiumPro multiprocessor systems had errata that could cause
-	  memory operations to violate the x86 ordering standard in rare cases.
-	  Enabling this option will attempt to work around some (but not all)
-	  occurrences of this problem, at the cost of much heavier spinlock and
-	  memory barrier operations.
-
-	  If unsure, say n here. Even distro kernels should think twice before
-	  enabling this: there are few systems, and an unlikely bug.
-
 config X86_F00F_BUG
 	def_bool y
 	depends on M586MMX || M586TSC || M586 || M486
diff --git a/arch/x86/entry/vdso/vdso32/vclock_gettime.c b/arch/x86/entry/vdso/vdso32/vclock_gettime.c
index 7780bbfb06ef..9242b28418d5 100644
--- a/arch/x86/entry/vdso/vdso32/vclock_gettime.c
+++ b/arch/x86/entry/vdso/vdso32/vclock_gettime.c
@@ -5,8 +5,6 @@
 #undef CONFIG_OPTIMIZE_INLINING
 #endif
 
-#undef CONFIG_X86_PPRO_FENCE
-
 #ifdef CONFIG_X86_64
 
 /*
diff --git a/arch/x86/include/asm/barrier.h b/arch/x86/include/asm/barrier.h
index 7fb336210e1b..aa0f7449d4a4 100644
--- a/arch/x86/include/asm/barrier.h
+++ b/arch/x86/include/asm/barrier.h
@@ -24,11 +24,7 @@
 #define wmb()	asm volatile("sfence" ::: "memory")
 #endif
 
-#ifdef CONFIG_X86_PPRO_FENCE
-#define dma_rmb()	rmb()
-#else
 #define dma_rmb()	barrier()
-#endif
 #define dma_wmb()	barrier()
 
 #ifdef CONFIG_X86_32
@@ -40,30 +36,6 @@
 #define __smp_wmb()	barrier()
 #define __smp_store_mb(var, value) do { (void)xchg(&var, value); } while (0)
 
-#if defined(CONFIG_X86_PPRO_FENCE)
-
-/*
- * For this option x86 doesn't have a strong TSO memory
- * model and we should fall back to full barriers.
- */
-
-#define __smp_store_release(p, v)					\
-do {									\
-	compiletime_assert_atomic_type(*p);				\
-	__smp_mb();							\
-	WRITE_ONCE(*p, v);						\
-} while (0)
-
-#define __smp_load_acquire(p)						\
-({									\
-	typeof(*p) ___p1 = READ_ONCE(*p);				\
-	compiletime_assert_atomic_type(*p);				\
-	__smp_mb();							\
-	___p1;								\
-})
-
-#else /* regular x86 TSO memory ordering */
-
 #define __smp_store_release(p, v)					\
 do {									\
 	compiletime_assert_atomic_type(*p);				\
@@ -79,8 +51,6 @@ do {									\
 	___p1;								\
 })
 
-#endif
-
 /* Atomic operations are already serializing on x86 */
 #define __smp_mb__before_atomic()	barrier()
 #define __smp_mb__after_atomic()	barrier()
diff --git a/arch/x86/include/asm/io.h b/arch/x86/include/asm/io.h
index 95e948627fd0..f6e5b9375d8c 100644
--- a/arch/x86/include/asm/io.h
+++ b/arch/x86/include/asm/io.h
@@ -232,21 +232,6 @@ extern void set_iounmap_nonlazy(void);
  */
 #define __ISA_IO_base ((char __iomem *)(PAGE_OFFSET))
 
-/*
- *	Cache management
- *
- *	This needed for two cases
- *	1. Out of order aware processors
- *	2. Accidentally out of order processors (PPro errata #51)
- */
-
-static inline void flush_write_buffers(void)
-{
-#if defined(CONFIG_X86_PPRO_FENCE)
-	asm volatile("lock; addl $0,0(%%esp)": : :"memory");
-#endif
-}
-
 #endif /* __KERNEL__ */
 
 extern void native_io_delay(void);
diff --git a/arch/x86/kernel/pci-nommu.c b/arch/x86/kernel/pci-nommu.c
index b0caae27e1b7..c78df78b5ccd 100644
--- a/arch/x86/kernel/pci-nommu.c
+++ b/arch/x86/kernel/pci-nommu.c
@@ -37,7 +37,6 @@ static dma_addr_t nommu_map_page(struct device *dev, struct page *page,
 	WARN_ON(size == 0);
 	if (!check_addr("map_single", dev, bus, size))
 		return NOMMU_MAPPING_ERROR;
-	flush_write_buffers();
 	return bus;
 }
 
@@ -72,25 +71,9 @@ static int nommu_map_sg(struct device *hwdev, struct scatterlist *sg,
 			return 0;
 		s->dma_length = s->length;
 	}
-	flush_write_buffers();
 	return nents;
 }
 
-static void nommu_sync_single_for_device(struct device *dev,
-			dma_addr_t addr, size_t size,
-			enum dma_data_direction dir)
-{
-	flush_write_buffers();
-}
-
-
-static void nommu_sync_sg_for_device(struct device *dev,
-			struct scatterlist *sg, int nelems,
-			enum dma_data_direction dir)
-{
-	flush_write_buffers();
-}
-
 static int nommu_mapping_error(struct device *dev, dma_addr_t dma_addr)
 {
 	return dma_addr == NOMMU_MAPPING_ERROR;
@@ -101,8 +84,6 @@ const struct dma_map_ops nommu_dma_ops = {
 	.free			= dma_generic_free_coherent,
 	.map_sg			= nommu_map_sg,
 	.map_page		= nommu_map_page,
-	.sync_single_for_device = nommu_sync_single_for_device,
-	.sync_sg_for_device	= nommu_sync_sg_for_device,
 	.is_phys		= 1,
 	.mapping_error		= nommu_mapping_error,
 	.dma_supported		= x86_dma_supported,
diff --git a/arch/x86/um/asm/barrier.h b/arch/x86/um/asm/barrier.h
index b7d73400ea29..f31e5d903161 100644
--- a/arch/x86/um/asm/barrier.h
+++ b/arch/x86/um/asm/barrier.h
@@ -30,11 +30,7 @@
 
 #endif /* CONFIG_X86_32 */
 
-#ifdef CONFIG_X86_PPRO_FENCE
-#define dma_rmb()	rmb()
-#else /* CONFIG_X86_PPRO_FENCE */
 #define dma_rmb()	barrier()
-#endif /* CONFIG_X86_PPRO_FENCE */
 #define dma_wmb()	barrier()
 
 #include <asm-generic/barrier.h>
-- 
2.14.2

WARNING: multiple messages have this Message-ID (diff)
From: hch@lst.de (Christoph Hellwig)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 01/67] x86: remove X86_PPRO_FENCE
Date: Fri, 29 Dec 2017 09:18:05 +0100	[thread overview]
Message-ID: <20171229081911.2802-2-hch@lst.de> (raw)
In-Reply-To: <20171229081911.2802-1-hch@lst.de>

There were only a few Pentium Pro multiprocessors systems where this
errata applied. They are more than 20 years old now, and we've slowly
dropped places where put the workarounds in and discuraged anyone
from enabling the workaround.

Get rid of it for good.

Signed-off-by: Christoph Hellwig <hch@lst.de>
---
 arch/x86/Kconfig.cpu                        | 13 -------------
 arch/x86/entry/vdso/vdso32/vclock_gettime.c |  2 --
 arch/x86/include/asm/barrier.h              | 30 -----------------------------
 arch/x86/include/asm/io.h                   | 15 ---------------
 arch/x86/kernel/pci-nommu.c                 | 19 ------------------
 arch/x86/um/asm/barrier.h                   |  4 ----
 6 files changed, 83 deletions(-)

diff --git a/arch/x86/Kconfig.cpu b/arch/x86/Kconfig.cpu
index 65a9a4716e34..f0c5ef578153 100644
--- a/arch/x86/Kconfig.cpu
+++ b/arch/x86/Kconfig.cpu
@@ -315,19 +315,6 @@ config X86_L1_CACHE_SHIFT
 	default "4" if MELAN || M486 || MGEODEGX1
 	default "5" if MWINCHIP3D || MWINCHIPC6 || MCRUSOE || MEFFICEON || MCYRIXIII || MK6 || MPENTIUMIII || MPENTIUMII || M686 || M586MMX || M586TSC || M586 || MVIAC3_2 || MGEODE_LX
 
-config X86_PPRO_FENCE
-	bool "PentiumPro memory ordering errata workaround"
-	depends on M686 || M586MMX || M586TSC || M586 || M486 || MGEODEGX1
-	---help---
-	  Old PentiumPro multiprocessor systems had errata that could cause
-	  memory operations to violate the x86 ordering standard in rare cases.
-	  Enabling this option will attempt to work around some (but not all)
-	  occurrences of this problem, at the cost of much heavier spinlock and
-	  memory barrier operations.
-
-	  If unsure, say n here. Even distro kernels should think twice before
-	  enabling this: there are few systems, and an unlikely bug.
-
 config X86_F00F_BUG
 	def_bool y
 	depends on M586MMX || M586TSC || M586 || M486
diff --git a/arch/x86/entry/vdso/vdso32/vclock_gettime.c b/arch/x86/entry/vdso/vdso32/vclock_gettime.c
index 7780bbfb06ef..9242b28418d5 100644
--- a/arch/x86/entry/vdso/vdso32/vclock_gettime.c
+++ b/arch/x86/entry/vdso/vdso32/vclock_gettime.c
@@ -5,8 +5,6 @@
 #undef CONFIG_OPTIMIZE_INLINING
 #endif
 
-#undef CONFIG_X86_PPRO_FENCE
-
 #ifdef CONFIG_X86_64
 
 /*
diff --git a/arch/x86/include/asm/barrier.h b/arch/x86/include/asm/barrier.h
index 7fb336210e1b..aa0f7449d4a4 100644
--- a/arch/x86/include/asm/barrier.h
+++ b/arch/x86/include/asm/barrier.h
@@ -24,11 +24,7 @@
 #define wmb()	asm volatile("sfence" ::: "memory")
 #endif
 
-#ifdef CONFIG_X86_PPRO_FENCE
-#define dma_rmb()	rmb()
-#else
 #define dma_rmb()	barrier()
-#endif
 #define dma_wmb()	barrier()
 
 #ifdef CONFIG_X86_32
@@ -40,30 +36,6 @@
 #define __smp_wmb()	barrier()
 #define __smp_store_mb(var, value) do { (void)xchg(&var, value); } while (0)
 
-#if defined(CONFIG_X86_PPRO_FENCE)
-
-/*
- * For this option x86 doesn't have a strong TSO memory
- * model and we should fall back to full barriers.
- */
-
-#define __smp_store_release(p, v)					\
-do {									\
-	compiletime_assert_atomic_type(*p);				\
-	__smp_mb();							\
-	WRITE_ONCE(*p, v);						\
-} while (0)
-
-#define __smp_load_acquire(p)						\
-({									\
-	typeof(*p) ___p1 = READ_ONCE(*p);				\
-	compiletime_assert_atomic_type(*p);				\
-	__smp_mb();							\
-	___p1;								\
-})
-
-#else /* regular x86 TSO memory ordering */
-
 #define __smp_store_release(p, v)					\
 do {									\
 	compiletime_assert_atomic_type(*p);				\
@@ -79,8 +51,6 @@ do {									\
 	___p1;								\
 })
 
-#endif
-
 /* Atomic operations are already serializing on x86 */
 #define __smp_mb__before_atomic()	barrier()
 #define __smp_mb__after_atomic()	barrier()
diff --git a/arch/x86/include/asm/io.h b/arch/x86/include/asm/io.h
index 95e948627fd0..f6e5b9375d8c 100644
--- a/arch/x86/include/asm/io.h
+++ b/arch/x86/include/asm/io.h
@@ -232,21 +232,6 @@ extern void set_iounmap_nonlazy(void);
  */
 #define __ISA_IO_base ((char __iomem *)(PAGE_OFFSET))
 
-/*
- *	Cache management
- *
- *	This needed for two cases
- *	1. Out of order aware processors
- *	2. Accidentally out of order processors (PPro errata #51)
- */
-
-static inline void flush_write_buffers(void)
-{
-#if defined(CONFIG_X86_PPRO_FENCE)
-	asm volatile("lock; addl $0,0(%%esp)": : :"memory");
-#endif
-}
-
 #endif /* __KERNEL__ */
 
 extern void native_io_delay(void);
diff --git a/arch/x86/kernel/pci-nommu.c b/arch/x86/kernel/pci-nommu.c
index b0caae27e1b7..c78df78b5ccd 100644
--- a/arch/x86/kernel/pci-nommu.c
+++ b/arch/x86/kernel/pci-nommu.c
@@ -37,7 +37,6 @@ static dma_addr_t nommu_map_page(struct device *dev, struct page *page,
 	WARN_ON(size == 0);
 	if (!check_addr("map_single", dev, bus, size))
 		return NOMMU_MAPPING_ERROR;
-	flush_write_buffers();
 	return bus;
 }
 
@@ -72,25 +71,9 @@ static int nommu_map_sg(struct device *hwdev, struct scatterlist *sg,
 			return 0;
 		s->dma_length = s->length;
 	}
-	flush_write_buffers();
 	return nents;
 }
 
-static void nommu_sync_single_for_device(struct device *dev,
-			dma_addr_t addr, size_t size,
-			enum dma_data_direction dir)
-{
-	flush_write_buffers();
-}
-
-
-static void nommu_sync_sg_for_device(struct device *dev,
-			struct scatterlist *sg, int nelems,
-			enum dma_data_direction dir)
-{
-	flush_write_buffers();
-}
-
 static int nommu_mapping_error(struct device *dev, dma_addr_t dma_addr)
 {
 	return dma_addr == NOMMU_MAPPING_ERROR;
@@ -101,8 +84,6 @@ const struct dma_map_ops nommu_dma_ops = {
 	.free			= dma_generic_free_coherent,
 	.map_sg			= nommu_map_sg,
 	.map_page		= nommu_map_page,
-	.sync_single_for_device = nommu_sync_single_for_device,
-	.sync_sg_for_device	= nommu_sync_sg_for_device,
 	.is_phys		= 1,
 	.mapping_error		= nommu_mapping_error,
 	.dma_supported		= x86_dma_supported,
diff --git a/arch/x86/um/asm/barrier.h b/arch/x86/um/asm/barrier.h
index b7d73400ea29..f31e5d903161 100644
--- a/arch/x86/um/asm/barrier.h
+++ b/arch/x86/um/asm/barrier.h
@@ -30,11 +30,7 @@
 
 #endif /* CONFIG_X86_32 */
 
-#ifdef CONFIG_X86_PPRO_FENCE
-#define dma_rmb()	rmb()
-#else /* CONFIG_X86_PPRO_FENCE */
 #define dma_rmb()	barrier()
-#endif /* CONFIG_X86_PPRO_FENCE */
 #define dma_wmb()	barrier()
 
 #include <asm-generic/barrier.h>
-- 
2.14.2

  parent reply	other threads:[~2017-12-29  8:18 UTC|newest]

Thread overview: 599+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-12-29  8:18 consolidate direct dma mapping and swiotlb support Christoph Hellwig
2017-12-29  8:18 ` Christoph Hellwig
2017-12-29  8:18 ` Christoph Hellwig
2017-12-29  8:18 ` Christoph Hellwig
2017-12-29  8:18 ` Christoph Hellwig
2017-12-29  8:18 ` Christoph Hellwig
2017-12-29  8:18 ` [PATCH 01/67] x86: remove X86_PPRO_FENCE Christoph Hellwig
2017-12-29  8:18 ` [PATCH 02/67] alpha: mark jensen as broken Christoph Hellwig
2017-12-29  8:18 ` [PATCH 03/67] dma-mapping: take dma_pfn_offset into account in dma_max_pfn Christoph Hellwig
2017-12-29  8:18 ` Christoph Hellwig
2017-12-29  8:18   ` Christoph Hellwig
2017-12-29  8:18   ` Christoph Hellwig
2017-12-29  8:18   ` Christoph Hellwig
2017-12-29  8:18   ` Christoph Hellwig
2017-12-29  8:18 ` [PATCH 04/67] arm64: don't override dma_max_pfn Christoph Hellwig
2017-12-29  8:18 ` [PATCH 05/67] dma-mapping: replace PCI_DMA_BUS_IS_PHYS with a flag in struct dma_map_ops Christoph Hellwig
2017-12-29  8:18 ` [PATCH 06/67] hexagon: remove unused flush_write_buffers definition Christoph Hellwig
2017-12-29  8:18 ` Christoph Hellwig
2017-12-29  8:18   ` Christoph Hellwig
2017-12-29  8:18   ` Christoph Hellwig
2017-12-29  8:18   ` Christoph Hellwig
2017-12-29  8:18   ` Christoph Hellwig
2018-01-09  3:13   ` Richard Kuo
     [not found]   ` <20171229081911.2802-7-hch-jcswGhMUV9g@public.gmane.org>
2018-01-09  3:13     ` Richard Kuo
2018-01-09  3:13       ` Richard Kuo
2018-01-09  3:13       ` Richard Kuo
2018-01-09  3:13       ` Richard Kuo
2018-01-09  3:13       ` Richard Kuo
2017-12-29  8:18 ` [PATCH 07/67] m32r: " Christoph Hellwig
2017-12-29  8:18 ` [PATCH 08/67] powerpc: " Christoph Hellwig
2017-12-29  8:18 ` [PATCH 09/67] arc: remove CONFIG_ARC_PLAT_NEEDS_PHYS_TO_DMA Christoph Hellwig
2017-12-29  8:18   ` Christoph Hellwig
2017-12-29  8:18   ` Christoph Hellwig
2017-12-29  8:18   ` Christoph Hellwig
2017-12-29  8:18   ` Christoph Hellwig
2018-01-05 19:45   ` Vineet Gupta
     [not found]   ` <20171229081911.2802-10-hch-jcswGhMUV9g@public.gmane.org>
2018-01-05 19:45     ` Vineet Gupta
2018-01-05 19:45       ` Vineet Gupta
2018-01-05 19:45       ` Vineet Gupta
2018-01-05 19:45       ` Vineet Gupta
2018-01-05 19:45       ` Vineet Gupta
2018-01-05 19:45       ` Vineet Gupta
2018-01-05 19:45       ` Vineet Gupta
2017-12-29  8:18 ` Christoph Hellwig
2017-12-29  8:18 ` [PATCH 10/67] m32r: remove the unused dma_capable helper Christoph Hellwig
2017-12-29  8:18 ` [PATCH 11/67] riscv: " Christoph Hellwig
2017-12-29  8:18 ` Christoph Hellwig
2017-12-29  8:18   ` Christoph Hellwig
2017-12-29  8:18   ` Christoph Hellwig
2017-12-29  8:18   ` Christoph Hellwig
2017-12-29  8:18   ` Christoph Hellwig
2017-12-29  8:18 ` [PATCH 12/67] s390: " Christoph Hellwig
2017-12-29  8:18 ` [PATCH 13/67] dma-mapping: move swiotlb arch helpers to a new header Christoph Hellwig
2017-12-29  8:18   ` Christoph Hellwig
2017-12-29  8:18   ` Christoph Hellwig
2017-12-29  8:18   ` Christoph Hellwig
2017-12-29  8:18   ` Christoph Hellwig
2017-12-29  8:18 ` Christoph Hellwig
2017-12-29  8:18 ` [PATCH 14/67] dma-mapping: move dma_mark_clean to dma-direct.h Christoph Hellwig
2017-12-29  8:18   ` Christoph Hellwig
2017-12-29  8:18   ` Christoph Hellwig
2017-12-29  8:18   ` Christoph Hellwig
2017-12-29  8:18   ` Christoph Hellwig
2017-12-29  8:18 ` Christoph Hellwig
2017-12-29  8:18 ` [PATCH 15/67] hexagon: use the generic dma_capable helper Christoph Hellwig
2017-12-29  8:18 ` [PATCH 16/67] powerpc: rename dma_direct_ to dma_nommu_ Christoph Hellwig
2017-12-29  8:18 ` [PATCH 17/67] microblaze: rename dma_direct to dma_microblaze Christoph Hellwig
2017-12-29  8:18   ` Christoph Hellwig
2017-12-29  8:18   ` Christoph Hellwig
2017-12-29  8:18   ` Christoph Hellwig
2017-12-29  8:18   ` Christoph Hellwig
2017-12-29 10:11   ` Julian Calaby
2017-12-29 10:11     ` Julian Calaby
2017-12-29 10:11     ` Julian Calaby
2017-12-29 10:11     ` Julian Calaby
2017-12-29 10:11     ` Julian Calaby
2018-01-04  8:45     ` Christoph Hellwig
2018-01-04  8:45       ` Christoph Hellwig
2018-01-04  8:45       ` Christoph Hellwig
2018-01-04  8:45       ` Christoph Hellwig
2018-01-04  8:45       ` Christoph Hellwig
2018-01-04  8:45       ` Christoph Hellwig
2017-12-29  8:18 ` [PATCH 18/67] microblaze: remove dma_nommu_dma_supported Christoph Hellwig
2017-12-29  8:18 ` [PATCH 19/67] microblaze: remove the dead !NOT_COHERENT_CACHE dma code Christoph Hellwig
2017-12-29  8:18   ` Christoph Hellwig
2017-12-29  8:18   ` Christoph Hellwig
2017-12-29  8:18   ` Christoph Hellwig
2017-12-29  8:18   ` Christoph Hellwig
2017-12-29  8:18 ` Christoph Hellwig
2017-12-29  8:18 ` [PATCH 20/67] s390: move s390_pci_dma_ops to asm/pci_dma.h Christoph Hellwig
2017-12-29  8:18 ` [PATCH 21/67] dma-mapping: warn when there is no coherent_dma_mask Christoph Hellwig
2017-12-29  8:18 ` [PATCH 22/67] dma-mapping: clear harmful GFP_* flags in common code Christoph Hellwig
2017-12-29  8:18   ` Christoph Hellwig
2017-12-29  8:18   ` Christoph Hellwig
2017-12-29  8:18   ` Christoph Hellwig
2017-12-29  8:18   ` Christoph Hellwig
2018-01-02 10:38   ` Geert Uytterhoeven
2018-01-02 10:38     ` Geert Uytterhoeven
2018-01-02 10:38     ` Geert Uytterhoeven
2018-01-02 10:38     ` Geert Uytterhoeven
2018-01-02 10:38     ` Geert Uytterhoeven
2018-01-02 10:38     ` Geert Uytterhoeven
2018-01-09 15:54   ` Jesper Nilsson
2018-01-09 15:54     ` Jesper Nilsson
2018-01-09 15:54     ` Jesper Nilsson
2018-01-09 15:54     ` Jesper Nilsson
2017-12-29  8:18 ` Christoph Hellwig
2017-12-29  8:18 ` [PATCH 23/67] dma-mapping: add an arch_dma_supported hook Christoph Hellwig
2017-12-29  8:18 ` [PATCH 24/67] dma-mapping: provide a generic asm/dma-mapping.h Christoph Hellwig
2017-12-29  8:18   ` Christoph Hellwig
2017-12-29  8:18   ` Christoph Hellwig
2017-12-29  8:18   ` Christoph Hellwig
2017-12-29  8:18   ` Christoph Hellwig
2017-12-29  8:18 ` Christoph Hellwig
2017-12-29  8:18 ` [PATCH 25/67] dma-direct: rename dma_noop to dma_direct Christoph Hellwig
2017-12-29  8:18 ` [PATCH 26/67] dma-direct: use phys_to_dma Christoph Hellwig
2017-12-29  8:18 ` [PATCH 27/67] dma-direct: add dma address sanity checks Christoph Hellwig
2017-12-29  8:18 ` [PATCH 28/67] dma-direct: add support for CMA allocation Christoph Hellwig
2017-12-29  8:18   ` Christoph Hellwig
2017-12-29  8:18   ` Christoph Hellwig
2017-12-29  8:18   ` Christoph Hellwig
2017-12-29  8:18   ` Christoph Hellwig
2017-12-29  8:18 ` Christoph Hellwig
2017-12-29  8:18 ` [PATCH 29/67] dma-direct: use node local allocations for coherent memory Christoph Hellwig
2017-12-29  8:18 ` Christoph Hellwig
2017-12-29  8:18   ` Christoph Hellwig
2017-12-29  8:18   ` Christoph Hellwig
2017-12-29  8:18   ` Christoph Hellwig
2017-12-29  8:18   ` Christoph Hellwig
2018-01-02 10:29   ` Geert Uytterhoeven
2018-01-02 10:29   ` Geert Uytterhoeven
2018-01-02 10:29     ` Geert Uytterhoeven
2018-01-02 10:29     ` Geert Uytterhoeven
2018-01-02 10:29     ` Geert Uytterhoeven
2018-01-02 10:29     ` Geert Uytterhoeven
2018-01-02 10:29     ` Geert Uytterhoeven
2017-12-29  8:18 ` [PATCH 30/67] dma-direct: retry allocations using GFP_DMA for small masks Christoph Hellwig
2017-12-29  8:18 ` Christoph Hellwig
2017-12-29  8:18   ` Christoph Hellwig
2017-12-29  8:18   ` Christoph Hellwig
2017-12-29  8:18   ` Christoph Hellwig
2017-12-29  8:18   ` Christoph Hellwig
2018-01-02 16:43   ` Vladimir Murzin
2018-01-02 16:43     ` Vladimir Murzin
2018-01-02 16:43     ` Vladimir Murzin
2018-01-02 16:43     ` Vladimir Murzin
2018-01-04  9:02     ` Christoph Hellwig
     [not found]     ` <f6139b03-0a4a-a9fe-4818-9b0bccf419e4-5wv7dgnIgG8@public.gmane.org>
2018-01-04  9:02       ` Christoph Hellwig
2018-01-04  9:02         ` Christoph Hellwig
2018-01-04  9:02         ` Christoph Hellwig
2018-01-04  9:02         ` Christoph Hellwig
2018-01-04  9:02         ` Christoph Hellwig
2017-12-29  8:18 ` [PATCH 31/67] dma-direct: make dma_direct_{alloc,free} available to other implementations Christoph Hellwig
2017-12-29  8:18   ` [PATCH 31/67] dma-direct: make dma_direct_{alloc, free} " Christoph Hellwig
2017-12-29  8:18   ` Christoph Hellwig
2017-12-29  8:18   ` Christoph Hellwig
2017-12-29  8:18   ` [PATCH 31/67] dma-direct: make dma_direct_{alloc,free} " Christoph Hellwig
2017-12-29  8:18   ` Christoph Hellwig
2018-01-02 16:44   ` [PATCH 31/67] dma-direct: make dma_direct_{alloc, free} " Vladimir Murzin
2018-01-02 16:44     ` Vladimir Murzin
2018-01-02 16:44     ` Vladimir Murzin
2018-01-02 16:44     ` Vladimir Murzin
2017-12-29  8:18 ` [PATCH 31/67] dma-direct: make dma_direct_{alloc,free} " Christoph Hellwig
2017-12-29  8:18 ` [PATCH 32/67] dma-direct: add support for allocation from ZONE_DMA and ZONE_DMA32 Christoph Hellwig
2017-12-29  8:18   ` Christoph Hellwig
2017-12-29  8:18   ` Christoph Hellwig
2017-12-29  8:18   ` Christoph Hellwig
2017-12-29  8:18   ` Christoph Hellwig
2017-12-29  8:18 ` Christoph Hellwig
2017-12-29  8:18 ` [PATCH 33/67] dma-direct: reject too small dma masks Christoph Hellwig
2017-12-29  8:18 ` Christoph Hellwig
2017-12-29  8:18   ` Christoph Hellwig
2017-12-29  8:18   ` Christoph Hellwig
2017-12-29  8:18   ` Christoph Hellwig
2017-12-29  8:18   ` Christoph Hellwig
2017-12-29  8:18 ` [PATCH 34/67] cris: use dma-direct Christoph Hellwig
2017-12-29  8:18 ` Christoph Hellwig
2017-12-29  8:18   ` Christoph Hellwig
2017-12-29  8:18   ` Christoph Hellwig
2017-12-29  8:18   ` Christoph Hellwig
2017-12-29  8:18   ` Christoph Hellwig
2017-12-29  8:18   ` Christoph Hellwig
2018-01-09 15:53   ` Jesper Nilsson
2018-01-09 15:53     ` Jesper Nilsson
2018-01-09 15:53     ` Jesper Nilsson
2018-01-09 15:53     ` Jesper Nilsson
2017-12-29  8:18 ` [PATCH 35/67] h8300: " Christoph Hellwig
2017-12-29  8:18   ` Christoph Hellwig
2017-12-29  8:18   ` Christoph Hellwig
2017-12-29  8:18   ` Christoph Hellwig
2017-12-29  8:18   ` Christoph Hellwig
2017-12-29  8:18 ` [PATCH 36/67] x86: remove dma_alloc_coherent_mask Christoph Hellwig
2017-12-29  8:18   ` Christoph Hellwig
2017-12-29  8:18   ` Christoph Hellwig
2017-12-29  8:18   ` Christoph Hellwig
2017-12-29  8:18   ` Christoph Hellwig
2017-12-29  8:18 ` Christoph Hellwig
2017-12-29  8:18 ` [PATCH 37/67] x86: use dma-direct Christoph Hellwig
2017-12-29  8:18   ` Christoph Hellwig
2017-12-29  8:18   ` Christoph Hellwig
2017-12-29  8:18   ` Christoph Hellwig
2017-12-29  8:18   ` Christoph Hellwig
2017-12-29  8:18 ` Christoph Hellwig
2017-12-29  8:18 ` [PATCH 38/67] x86/amd_gart: clean up gart_alloc_coherent Christoph Hellwig
2017-12-29  8:18   ` Christoph Hellwig
2017-12-29  8:18   ` Christoph Hellwig
2017-12-29  8:18   ` Christoph Hellwig
2017-12-29  8:18   ` Christoph Hellwig
2017-12-29  8:18 ` Christoph Hellwig
2017-12-29  8:18 ` [PATCH 39/67] iommu/amd_iommu: use dma_direct_* helpers for the direct mapping case Christoph Hellwig
2017-12-29  8:18   ` Christoph Hellwig
2017-12-29  8:18   ` Christoph Hellwig
2017-12-29  8:18   ` Christoph Hellwig
2017-12-29  8:18   ` Christoph Hellwig
2017-12-29  8:18 ` Christoph Hellwig
2017-12-29  8:18 ` [PATCH 40/67] iommu/intel-iommu: " Christoph Hellwig
2017-12-29  8:18 ` Christoph Hellwig
2017-12-29  8:18   ` Christoph Hellwig
2017-12-29  8:18   ` Christoph Hellwig
2017-12-29  8:18   ` Christoph Hellwig
2017-12-29  8:18   ` Christoph Hellwig
2017-12-29  8:18   ` Christoph Hellwig
2017-12-29  8:18 ` [PATCH 41/67] x86: remove dma_alloc_coherent_gfp_flags Christoph Hellwig
2017-12-29  8:18 ` Christoph Hellwig
2017-12-29  8:18   ` Christoph Hellwig
2017-12-29  8:18   ` Christoph Hellwig
2017-12-29  8:18   ` Christoph Hellwig
2017-12-29  8:18   ` Christoph Hellwig
2017-12-29  8:18   ` Christoph Hellwig
2017-12-29  8:18 ` [PATCH 42/67] arm64: rename swiotlb_dma_ops Christoph Hellwig
2017-12-29  8:18 ` Christoph Hellwig
2017-12-29  8:18   ` Christoph Hellwig
2017-12-29  8:18   ` Christoph Hellwig
2017-12-29  8:18   ` Christoph Hellwig
2017-12-29  8:18   ` Christoph Hellwig
2017-12-29  8:18 ` [PATCH 43/67] ia64: " Christoph Hellwig
2017-12-29  8:18 ` Christoph Hellwig
2017-12-29  8:18   ` Christoph Hellwig
2017-12-29  8:18   ` Christoph Hellwig
2017-12-29  8:18   ` Christoph Hellwig
2017-12-29  8:18   ` Christoph Hellwig
2017-12-29  8:18 ` [PATCH 44/67] powerpc: " Christoph Hellwig
2017-12-29  8:18 ` Christoph Hellwig
2017-12-29  8:18   ` Christoph Hellwig
2017-12-29  8:18   ` Christoph Hellwig
2017-12-29  8:18   ` Christoph Hellwig
2017-12-29  8:18   ` Christoph Hellwig
2017-12-29  8:18 ` [PATCH 45/67] swiotlb: rename swiotlb_free to swiotlb_exit Christoph Hellwig
2017-12-29  8:18   ` Christoph Hellwig
2017-12-29  8:18   ` Christoph Hellwig
2017-12-29  8:18   ` Christoph Hellwig
2017-12-29  8:18   ` Christoph Hellwig
2017-12-29  8:18 ` Christoph Hellwig
2017-12-29  8:18 ` [PATCH 46/67] swiotlb: lift x86 swiotlb_dma_ops to common code Christoph Hellwig
2017-12-29  8:18   ` Christoph Hellwig
2017-12-29  8:18   ` Christoph Hellwig
2017-12-29  8:18   ` Christoph Hellwig
2017-12-29  8:18   ` Christoph Hellwig
2017-12-29  8:18 ` [PATCH 47/67] swiotlb: wire up ->dma_supported in swiotlb_dma_ops Christoph Hellwig
2017-12-29  8:18   ` Christoph Hellwig
2017-12-29  8:18   ` Christoph Hellwig
2017-12-29  8:18   ` Christoph Hellwig
2017-12-29  8:18   ` Christoph Hellwig
2017-12-29  8:18 ` Christoph Hellwig
2017-12-29  8:18 ` [PATCH 48/67] swiotlb: rely on dev->coherent_dma_mask Christoph Hellwig
2017-12-29  8:18 ` Christoph Hellwig
2017-12-29  8:18   ` Christoph Hellwig
2017-12-29  8:18   ` Christoph Hellwig
2017-12-29  8:18   ` Christoph Hellwig
2017-12-29  8:18   ` Christoph Hellwig
2017-12-29  8:18 ` [PATCH 49/67] swiotlb: refactor coherent buffer freeing Christoph Hellwig
2017-12-29  8:18 ` Christoph Hellwig
2017-12-29  8:18   ` Christoph Hellwig
2017-12-29  8:18   ` Christoph Hellwig
2017-12-29  8:18   ` Christoph Hellwig
2017-12-29  8:18   ` Christoph Hellwig
2017-12-29  8:18 ` [PATCH 50/67] swiotlb: refactor coherent buffer allocation Christoph Hellwig
2017-12-29  8:18 ` Christoph Hellwig
2017-12-29  8:18   ` Christoph Hellwig
2017-12-29  8:18   ` Christoph Hellwig
2017-12-29  8:18   ` Christoph Hellwig
2017-12-29  8:18   ` Christoph Hellwig
2017-12-29  8:18 ` [PATCH 51/67] set_memory.h: provide set_memory_{en,de}crypted stubs Christoph Hellwig
2017-12-29  8:18 ` Christoph Hellwig
2017-12-29  8:18   ` Christoph Hellwig
2017-12-29  8:18   ` Christoph Hellwig
2017-12-29  8:18   ` Christoph Hellwig
2017-12-29  8:18   ` Christoph Hellwig
2017-12-29  8:18 ` [PATCH 52/67] dma-direct: handle the memory encryption bit in common code Christoph Hellwig
2017-12-29  8:18   ` Christoph Hellwig
2017-12-29  8:18   ` Christoph Hellwig
2017-12-29  8:18   ` Christoph Hellwig
2017-12-29  8:18   ` Christoph Hellwig
2017-12-29  8:18   ` Christoph Hellwig
2017-12-29  8:18 ` Christoph Hellwig
2017-12-29  8:18 ` [PATCH 53/67] swiotlb: remove swiotlb_set_mem_attributes Christoph Hellwig
2017-12-29  8:18   ` Christoph Hellwig
2017-12-29  8:18   ` Christoph Hellwig
2017-12-29  8:18   ` Christoph Hellwig
2017-12-29  8:18   ` Christoph Hellwig
2017-12-29  8:18 ` Christoph Hellwig
2017-12-29  8:18 ` [PATCH 54/67] x86: remove sta2x11_dma_ops Christoph Hellwig
2017-12-29  8:18 ` Christoph Hellwig
2017-12-29  8:18   ` Christoph Hellwig
2017-12-29  8:18   ` Christoph Hellwig
2017-12-29  8:18   ` Christoph Hellwig
2017-12-29  8:18   ` Christoph Hellwig
2017-12-29  8:18 ` [PATCH 55/67] ia64: replace ZONE_DMA with ZONE_DMA32 Christoph Hellwig
2017-12-29  8:18   ` Christoph Hellwig
2017-12-29  8:18   ` Christoph Hellwig
2017-12-29  8:18   ` Christoph Hellwig
2017-12-29  8:18   ` Christoph Hellwig
2017-12-29  8:18 ` Christoph Hellwig
2017-12-29  8:19 ` [PATCH 56/67] ia64: use generic swiotlb_ops Christoph Hellwig
2017-12-29  8:19   ` Christoph Hellwig
2017-12-29  8:19   ` Christoph Hellwig
2017-12-29  8:19   ` Christoph Hellwig
2017-12-29  8:19   ` Christoph Hellwig
2017-12-29  8:19 ` Christoph Hellwig
2017-12-29  8:19 ` [PATCH 57/67] ia64: clean up swiotlb support Christoph Hellwig
2017-12-29  8:19   ` Christoph Hellwig
2017-12-29  8:19   ` Christoph Hellwig
2017-12-29  8:19   ` Christoph Hellwig
2017-12-29  8:19   ` Christoph Hellwig
2017-12-29  8:19 ` Christoph Hellwig
2017-12-29  8:19 ` [PATCH 58/67] ia64: remove an ifdef around the content of pci-dma.c Christoph Hellwig
2017-12-29  8:19 ` Christoph Hellwig
2017-12-29  8:19   ` Christoph Hellwig
2017-12-29  8:19   ` Christoph Hellwig
2017-12-29  8:19   ` Christoph Hellwig
2017-12-29  8:19   ` Christoph Hellwig
2017-12-29  8:19 ` [PATCH 59/67] unicore32: use generic swiotlb_ops Christoph Hellwig
2017-12-29  8:19 ` [PATCH 60/67] tile: replace ZONE_DMA with ZONE_DMA32 Christoph Hellwig
2017-12-29  8:19   ` Christoph Hellwig
2017-12-29  8:19   ` Christoph Hellwig
2017-12-29  8:19   ` Christoph Hellwig
2017-12-29  8:19   ` Christoph Hellwig
2017-12-29  8:19 ` Christoph Hellwig
2017-12-29  8:19 ` [PATCH 61/67] tile: use generic swiotlb_ops Christoph Hellwig
2017-12-29  8:19   ` Christoph Hellwig
2017-12-29  8:19   ` Christoph Hellwig
2017-12-29  8:19   ` Christoph Hellwig
2017-12-29  8:19   ` Christoph Hellwig
2017-12-29  8:19 ` Christoph Hellwig
2017-12-29  8:19 ` [PATCH 62/67] mips/netlogic: remove swiotlb support Christoph Hellwig
2017-12-29  8:19 ` Christoph Hellwig
2017-12-29  8:19   ` Christoph Hellwig
2017-12-29  8:19   ` Christoph Hellwig
2017-12-29  8:19   ` Christoph Hellwig
2017-12-29  8:19   ` Christoph Hellwig
2017-12-29  8:19 ` [PATCH 63/67] mips: use swiotlb_{alloc,free} Christoph Hellwig
2017-12-29  8:19   ` Christoph Hellwig
2017-12-29  8:19   ` Christoph Hellwig
2017-12-29  8:19   ` Christoph Hellwig
2017-12-29  8:19   ` Christoph Hellwig
2017-12-29  8:19 ` Christoph Hellwig
2017-12-29  8:19 ` [PATCH 64/67] arm64: replace ZONE_DMA with ZONE_DMA32 Christoph Hellwig
2017-12-29  8:19   ` Christoph Hellwig
2017-12-29  8:19   ` Christoph Hellwig
2017-12-29  8:19   ` Christoph Hellwig
2017-12-29  8:19   ` Christoph Hellwig
2017-12-29  8:19 ` Christoph Hellwig
2017-12-29  8:19 ` [PATCH 65/67] arm64: use swiotlb_alloc and swiotlb_free Christoph Hellwig
2017-12-29  8:19   ` Christoph Hellwig
2017-12-29  8:19   ` Christoph Hellwig
2017-12-29  8:19   ` Christoph Hellwig
2017-12-29  8:19   ` Christoph Hellwig
2017-12-29  8:19 ` Christoph Hellwig
2017-12-29  8:19 ` [PATCH 66/67] swiotlb: remove swiotlb_{alloc,free}_coherent Christoph Hellwig
     [not found] ` <20171229081911.2802-1-hch-jcswGhMUV9g@public.gmane.org>
2017-12-29  8:18   ` Christoph Hellwig [this message]
2017-12-29  8:18     ` [PATCH 01/67] x86: remove X86_PPRO_FENCE Christoph Hellwig
2017-12-29  8:18     ` Christoph Hellwig
2017-12-29  8:18     ` Christoph Hellwig
2017-12-29  8:18     ` Christoph Hellwig
2017-12-29  8:18     ` Christoph Hellwig
2017-12-29  8:18   ` [PATCH 02/67] alpha: mark jensen as broken Christoph Hellwig
2017-12-29  8:18     ` Christoph Hellwig
2017-12-29  8:18     ` Christoph Hellwig
2017-12-29  8:18     ` Christoph Hellwig
2017-12-29  8:18     ` Christoph Hellwig
2017-12-29  8:18     ` Christoph Hellwig
2018-01-02 10:36     ` Geert Uytterhoeven
2018-01-02 10:36       ` Geert Uytterhoeven
2018-01-02 10:36       ` Geert Uytterhoeven
2018-01-02 10:36       ` Geert Uytterhoeven
2018-01-02 10:36       ` Geert Uytterhoeven
2018-01-02 10:36       ` Geert Uytterhoeven
2018-01-04  8:53       ` Christoph Hellwig
2018-01-04  8:53       ` Christoph Hellwig
2018-01-04  8:53         ` Christoph Hellwig
2018-01-04  8:53         ` Christoph Hellwig
2018-01-04  8:53         ` Christoph Hellwig
2018-01-04  8:53         ` Christoph Hellwig
2017-12-29  8:18   ` [PATCH 04/67] arm64: don't override dma_max_pfn Christoph Hellwig
2017-12-29  8:18     ` Christoph Hellwig
2017-12-29  8:18     ` Christoph Hellwig
2017-12-29  8:18     ` Christoph Hellwig
2017-12-29  8:18     ` Christoph Hellwig
2017-12-29  8:18     ` Christoph Hellwig
2017-12-29  8:18   ` [PATCH 05/67] dma-mapping: replace PCI_DMA_BUS_IS_PHYS with a flag in struct dma_map_ops Christoph Hellwig
2017-12-29  8:18     ` Christoph Hellwig
2017-12-29  8:18     ` Christoph Hellwig
2017-12-29  8:18     ` Christoph Hellwig
2017-12-29  8:18     ` Christoph Hellwig
2017-12-29  8:18     ` Christoph Hellwig
2018-01-02 10:39     ` Geert Uytterhoeven
2018-01-02 10:39       ` Geert Uytterhoeven
2018-01-02 10:39       ` Geert Uytterhoeven
2018-01-02 10:39       ` Geert Uytterhoeven
2018-01-02 10:39       ` Geert Uytterhoeven
2018-01-09 15:55     ` Jesper Nilsson
2018-01-09 15:55       ` Jesper Nilsson
2018-01-09 15:55       ` Jesper Nilsson
2018-01-09 15:55       ` Jesper Nilsson
2017-12-29  8:18   ` [PATCH 07/67] m32r: remove unused flush_write_buffers definition Christoph Hellwig
2017-12-29  8:18     ` Christoph Hellwig
2017-12-29  8:18     ` Christoph Hellwig
2017-12-29  8:18     ` Christoph Hellwig
2017-12-29  8:18     ` Christoph Hellwig
2017-12-29  8:18     ` Christoph Hellwig
2017-12-29  8:18   ` [PATCH 08/67] powerpc: " Christoph Hellwig
2017-12-29  8:18     ` Christoph Hellwig
2017-12-29  8:18     ` Christoph Hellwig
2017-12-29  8:18     ` Christoph Hellwig
2017-12-29  8:18     ` Christoph Hellwig
2017-12-29  8:18     ` Christoph Hellwig
2017-12-29  8:18   ` [PATCH 10/67] m32r: remove the unused dma_capable helper Christoph Hellwig
2017-12-29  8:18     ` Christoph Hellwig
2017-12-29  8:18     ` Christoph Hellwig
2017-12-29  8:18     ` Christoph Hellwig
2017-12-29  8:18     ` Christoph Hellwig
2017-12-29  8:18     ` Christoph Hellwig
2017-12-29  8:18   ` [PATCH 12/67] s390: " Christoph Hellwig
2017-12-29  8:18     ` Christoph Hellwig
2017-12-29  8:18     ` Christoph Hellwig
2017-12-29  8:18     ` Christoph Hellwig
2017-12-29  8:18     ` Christoph Hellwig
2017-12-29  8:18     ` Christoph Hellwig
2017-12-29  8:18   ` [PATCH 15/67] hexagon: use the generic " Christoph Hellwig
2017-12-29  8:18     ` Christoph Hellwig
2017-12-29  8:18     ` Christoph Hellwig
2017-12-29  8:18     ` Christoph Hellwig
2017-12-29  8:18     ` Christoph Hellwig
2017-12-29  8:18     ` Christoph Hellwig
2017-12-29  8:18   ` [PATCH 16/67] powerpc: rename dma_direct_ to dma_nommu_ Christoph Hellwig
2017-12-29  8:18     ` Christoph Hellwig
2017-12-29  8:18     ` Christoph Hellwig
2017-12-29  8:18     ` Christoph Hellwig
2017-12-29  8:18     ` Christoph Hellwig
2017-12-29  8:18     ` Christoph Hellwig
2018-01-02  9:45     ` Michael Ellerman
     [not found]     ` <20171229081911.2802-17-hch-jcswGhMUV9g@public.gmane.org>
2018-01-02  9:45       ` Michael Ellerman
2018-01-02  9:45         ` Michael Ellerman
2018-01-02  9:45         ` Michael Ellerman
2018-01-02  9:45         ` Michael Ellerman
2018-01-02  9:45         ` Michael Ellerman
2018-01-02 10:22         ` Geert Uytterhoeven
2018-01-02 10:22           ` Geert Uytterhoeven
2018-01-02 10:22           ` Geert Uytterhoeven
2018-01-02 10:22           ` Geert Uytterhoeven
2018-01-02 10:22           ` Geert Uytterhoeven
2018-01-02 10:22           ` Geert Uytterhoeven
2018-01-02 10:22           ` Geert Uytterhoeven
2018-01-03  6:24           ` Michael Ellerman
2018-01-03  6:24             ` Michael Ellerman
2018-01-03  6:24             ` Michael Ellerman
2018-01-03  6:24             ` Michael Ellerman
2018-01-03  6:24             ` Michael Ellerman
2018-01-03  6:24             ` Michael Ellerman
2018-01-03  6:24             ` Michael Ellerman
     [not found]             ` <87h8s3cvel.fsf-W0DJWXSxmBNbyGPkN3NxC2scP1bn1w/D@public.gmane.org>
2018-01-03  7:49               ` Geert Uytterhoeven
2018-01-03  7:49                 ` Geert Uytterhoeven
2018-01-03  7:49                 ` Geert Uytterhoeven
2018-01-03  7:49                 ` Geert Uytterhoeven
2018-01-03  7:49                 ` Geert Uytterhoeven
2018-01-03  8:19                 ` Julian Calaby
2018-01-03  8:19                   ` Julian Calaby
2018-01-03  8:19                   ` Julian Calaby
2018-01-03  8:19                   ` Julian Calaby
2018-01-03  8:19                   ` Julian Calaby
2018-01-03  8:19                   ` Julian Calaby
2018-01-03  8:19                   ` Julian Calaby
2018-01-04  8:48                   ` Christoph Hellwig
     [not found]                   ` <CAGRGNgV+DnZAAtiE5oe8rxp4=_JHJrtSQc8F5jrgN0rgYKfwjA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2018-01-04  8:48                     ` Christoph Hellwig
2018-01-04  8:48                       ` Christoph Hellwig
2018-01-04  8:48                       ` Christoph Hellwig
2018-01-04  8:48                       ` Christoph Hellwig
2018-01-04  8:48                       ` Christoph Hellwig
2018-01-04  8:48                       ` Christoph Hellwig
2018-01-03  7:49             ` Geert Uytterhoeven
2018-01-02 10:22         ` Geert Uytterhoeven
2018-01-04  8:49         ` Christoph Hellwig
2018-01-04  8:49           ` Christoph Hellwig
2018-01-04  8:49           ` Christoph Hellwig
2018-01-04  8:49           ` Christoph Hellwig
2018-01-09 15:38           ` Christoph Hellwig
2018-01-09 15:38           ` Christoph Hellwig
2018-01-09 15:38             ` Christoph Hellwig
2018-01-09 15:38             ` Christoph Hellwig
2018-01-09 15:38             ` Christoph Hellwig
2018-01-04  8:49         ` Christoph Hellwig
2017-12-29  8:18   ` [PATCH 18/67] microblaze: remove dma_nommu_dma_supported Christoph Hellwig
2017-12-29  8:18     ` Christoph Hellwig
2017-12-29  8:18     ` Christoph Hellwig
2017-12-29  8:18     ` Christoph Hellwig
2017-12-29  8:18     ` Christoph Hellwig
2017-12-29  8:18     ` Christoph Hellwig
2017-12-29  8:18   ` [PATCH 20/67] s390: move s390_pci_dma_ops to asm/pci_dma.h Christoph Hellwig
2017-12-29  8:18     ` Christoph Hellwig
2017-12-29  8:18     ` Christoph Hellwig
2017-12-29  8:18     ` Christoph Hellwig
2017-12-29  8:18     ` Christoph Hellwig
2017-12-29  8:18     ` Christoph Hellwig
2017-12-29  8:18   ` [PATCH 21/67] dma-mapping: warn when there is no coherent_dma_mask Christoph Hellwig
2017-12-29  8:18     ` Christoph Hellwig
2017-12-29  8:18     ` Christoph Hellwig
2017-12-29  8:18     ` Christoph Hellwig
2017-12-29  8:18     ` Christoph Hellwig
2017-12-29  8:18     ` Christoph Hellwig
2017-12-29  8:18   ` [PATCH 23/67] dma-mapping: add an arch_dma_supported hook Christoph Hellwig
2017-12-29  8:18     ` Christoph Hellwig
2017-12-29  8:18     ` Christoph Hellwig
2017-12-29  8:18     ` Christoph Hellwig
2017-12-29  8:18     ` Christoph Hellwig
2017-12-29  8:18     ` Christoph Hellwig
2017-12-29  8:18   ` [PATCH 25/67] dma-direct: rename dma_noop to dma_direct Christoph Hellwig
2017-12-29  8:18     ` Christoph Hellwig
2017-12-29  8:18     ` Christoph Hellwig
2017-12-29  8:18     ` Christoph Hellwig
2017-12-29  8:18     ` Christoph Hellwig
2017-12-29  8:18     ` Christoph Hellwig
2018-01-02 16:25     ` Vladimir Murzin
2018-01-02 16:25     ` Vladimir Murzin
2018-01-02 16:25       ` Vladimir Murzin
2018-01-02 16:25       ` Vladimir Murzin
2018-01-02 16:25       ` Vladimir Murzin
2018-01-02 16:25       ` Vladimir Murzin
2018-01-02 16:25       ` Vladimir Murzin
2017-12-29  8:18   ` [PATCH 26/67] dma-direct: use phys_to_dma Christoph Hellwig
2017-12-29  8:18     ` Christoph Hellwig
2017-12-29  8:18     ` Christoph Hellwig
2017-12-29  8:18     ` Christoph Hellwig
2017-12-29  8:18     ` Christoph Hellwig
2017-12-29  8:18     ` Christoph Hellwig
2018-01-02 16:26     ` Vladimir Murzin
2018-01-02 16:26     ` Vladimir Murzin
2018-01-02 16:26       ` Vladimir Murzin
2018-01-02 16:26       ` Vladimir Murzin
2018-01-02 16:26       ` Vladimir Murzin
2018-01-02 16:26       ` Vladimir Murzin
2018-01-02 16:26       ` Vladimir Murzin
2017-12-29  8:18   ` [PATCH 27/67] dma-direct: add dma address sanity checks Christoph Hellwig
2017-12-29  8:18     ` Christoph Hellwig
2017-12-29  8:18     ` Christoph Hellwig
2017-12-29  8:18     ` Christoph Hellwig
2017-12-29  8:18     ` Christoph Hellwig
2017-12-29  8:18     ` Christoph Hellwig
2017-12-29 14:12     ` Geert Uytterhoeven
2017-12-29 14:12       ` Geert Uytterhoeven
2017-12-29 14:12       ` Geert Uytterhoeven
2017-12-29 14:12       ` Geert Uytterhoeven
2017-12-29 14:12       ` Geert Uytterhoeven
2017-12-29 14:12       ` Geert Uytterhoeven
2018-01-04  8:52       ` Christoph Hellwig
2018-01-04  8:52         ` Christoph Hellwig
2018-01-04  8:52         ` Christoph Hellwig
2018-01-04  8:52         ` Christoph Hellwig
2018-01-04  8:52         ` Christoph Hellwig
2018-01-04  8:52         ` Christoph Hellwig
2017-12-29 14:12     ` Geert Uytterhoeven
2017-12-29  8:19   ` [PATCH 59/67] unicore32: use generic swiotlb_ops Christoph Hellwig
2017-12-29  8:19     ` Christoph Hellwig
2017-12-29  8:19     ` Christoph Hellwig
2017-12-29  8:19     ` Christoph Hellwig
2017-12-29  8:19     ` Christoph Hellwig
2017-12-29  8:19     ` Christoph Hellwig
2017-12-29  8:19   ` [PATCH 66/67] swiotlb: remove swiotlb_{alloc,free}_coherent Christoph Hellwig
2017-12-29  8:19     ` Christoph Hellwig
2017-12-29  8:19     ` Christoph Hellwig
2017-12-29  8:19     ` Christoph Hellwig
2017-12-29  8:19     ` Christoph Hellwig
2017-12-29  8:19     ` Christoph Hellwig
2017-12-29  8:19 ` [PATCH 67/67] swiotlb: remove various exports Christoph Hellwig
2017-12-29  8:19 ` Christoph Hellwig
2017-12-29  8:19   ` Christoph Hellwig
2017-12-29  8:19   ` Christoph Hellwig
2017-12-29  8:19   ` Christoph Hellwig
2017-12-29  8:19   ` Christoph Hellwig
2017-12-29 10:52 ` consolidate direct dma mapping and swiotlb support Vladimir Murzin
2017-12-29 10:52   ` Vladimir Murzin
2017-12-29 10:52   ` Vladimir Murzin
2017-12-29 10:52   ` Vladimir Murzin
     [not found]   ` <23fee3bb-61ce-1735-b264-3acc0109c858-5wv7dgnIgG8@public.gmane.org>
2017-12-30 10:56     ` Christoph Hellwig
2017-12-30 10:56       ` Christoph Hellwig
2017-12-30 10:56       ` Christoph Hellwig
2017-12-30 10:56       ` Christoph Hellwig
2017-12-30 10:56       ` Christoph Hellwig
2017-12-30 10:56       ` Christoph Hellwig
2017-12-30 10:56   ` Christoph Hellwig

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=20171229081911.2802-2-hch@lst.de \
    --to=hch@lst.de \
    --cc=adi-buildroot-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org \
    --cc=gxt-TG0Ac1+ktVePQbnJrJN+5g@public.gmane.org \
    --cc=iommu-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org \
    --cc=linux-alpha-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=linux-arch-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org \
    --cc=linux-c6x-dev-jPsnJVOj+W6hPH1hqNUYSQ@public.gmane.org \
    --cc=linux-cris-kernel-VrBV9hrLPhE@public.gmane.org \
    --cc=linux-hexagon-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=linux-ia64-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=linux-m68k-cunTk1MwBs8S/qaLPR03pWD2FQJk+8+b@public.gmane.org \
    --cc=linux-metag-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=linux-mips-6z/3iImG2C8G8FEW9MqTrA@public.gmane.org \
    --cc=linux-parisc-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=linux-s390-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=linux-sh-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=linux-snps-arc-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org \
    --cc=linuxppc-dev-uLR06cmDAlY/bJ5BZ2RsiQ@public.gmane.org \
    --cc=monstr-pSz03upnqPeHXe+LvDLADg@public.gmane.org \
    --cc=patches-q3qR2WxjNRFS9aJRtSZj7A@public.gmane.org \
    --cc=sparclinux-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=x86-DgEjT+Ai2ygdnm+yROfE0A@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.