- optional-zone_dma-for-x86_64.patch removed from -mm tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



The patch titled

     optional ZONE_DMA: optional ZONE_DMA for x86_64

has been removed from the -mm tree.  Its filename is

     optional-zone_dma-for-x86_64.patch

This patch was dropped because it is obsolete

------------------------------------------------------
Subject: optional ZONE_DMA: optional ZONE_DMA for x86_64
From: Christoph Lameter <clameter@xxxxxxx>

Allow the use to specify CONFIG_ZONE_DMA32 and CONFIG_ZONE_DMA (via
CONFIG_GENERIC_ISA_DMA).  The default is on to be on the safe side.

If CONFIG_ZONE_DMA is off then devices requiring ISA DMA can no longer be
selected.

There are no drivers depending on CONFIG_ZONE_DMA32.  If CONFIG_ZONE_DMA32 is
not set then the system assumes that DMA devices are capable of doing DMA to
all of memory.  This is frequently the case if

1. No memory exists over the 4GB boundary (careful, some motherboards
   equipped with 4GB memory will have memory show up above the 4GB
   boundary!). It is safe if one has 2GB or less memory in an
   x86_64 system.

2. The system has an IOMMU.

3. All devices using DMA are supporting DMA to all memory.

Signed-off-by: Christoph Lameter <clameter@xxxxxxx>
Cc: Andi Kleen <ak@xxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxx>
---

 arch/x86_64/Kconfig         |   27 +++++++++++++++++++--------
 arch/x86_64/kernel/Makefile |    3 ++-
 arch/x86_64/mm/init.c       |   12 +++++++++---
 3 files changed, 30 insertions(+), 12 deletions(-)

diff -puN arch/x86_64/Kconfig~optional-zone_dma-for-x86_64 arch/x86_64/Kconfig
--- a/arch/x86_64/Kconfig~optional-zone_dma-for-x86_64
+++ a/arch/x86_64/Kconfig
@@ -24,10 +24,6 @@ config X86
 	bool
 	default y
 
-config ZONE_DMA32
-	bool
-	default y
-
 config LOCKDEP_SUPPORT
 	bool
 	default y
@@ -73,10 +69,6 @@ config EARLY_PRINTK
 	bool
 	default y
 
-config GENERIC_ISA_DMA
-	bool
-	default y
-
 config GENERIC_IOMAP
 	bool
 	default y
@@ -256,6 +248,24 @@ config MTRR
 
 	  See <file:Documentation/mtrr.txt> for more information.
 
+config ZONE_DMA32
+	bool "32 Bit DMA Zone (only needed if memory >4GB)"
+	default y
+	help
+	  Some x64 configurations have 32 bit DMA controllers that cannot
+	  write to all of memory. If you have one of these and you have RAM
+	  beyond the 4GB boundary then enable this option.
+
+config GENERIC_ISA_DMA
+	bool "ISA DMA zone (to support ISA legacy DMA)"
+	default y
+	help
+	  If DMA for ISA boards needs to be supported then this option
+	  needs to be enabled. An additional DMA zone for <16MB memory
+	  will be created and memory below 16MB will be used for those
+	  devices. If this is deselected then devices that use ISA
+	  DMA will not be selectable.
+
 config SMP
 	bool "Symmetric multi-processing support"
 	---help---
@@ -603,6 +613,7 @@ config GENERIC_IRQ_PROBE
 # we have no ISA slots, but we do have ISA-style DMA.
 config ISA_DMA_API
 	bool
+	depends on GENERIC_ISA_DMA
 	default y
 
 config GENERIC_PENDING_IRQ
diff -puN arch/x86_64/kernel/Makefile~optional-zone_dma-for-x86_64 arch/x86_64/kernel/Makefile
--- a/arch/x86_64/kernel/Makefile~optional-zone_dma-for-x86_64
+++ a/arch/x86_64/kernel/Makefile
@@ -7,9 +7,10 @@ EXTRA_AFLAGS	:= -traditional
 obj-y	:= process.o signal.o entry.o traps.o irq.o \
 		ptrace.o time.o ioport.o ldt.o setup.o i8259.o sys_x86_64.o \
 		x8664_ksyms.o i387.o syscall.o vsyscall.o \
-		setup64.o bootflag.o e820.o reboot.o quirks.o i8237.o \
+		setup64.o bootflag.o e820.o reboot.o quirks.o \
 		pci-dma.o pci-nommu.o alternative.o
 
+obj-$(CONFIG_GENERIC_ISA_DMA)	+= i8237.o
 obj-$(CONFIG_STACKTRACE)	+= stacktrace.o
 obj-$(CONFIG_X86_MCE)		+= mce.o therm_throt.o
 obj-$(CONFIG_X86_MCE_INTEL)	+= mce_intel.o
diff -puN arch/x86_64/mm/init.c~optional-zone_dma-for-x86_64 arch/x86_64/mm/init.c
--- a/arch/x86_64/mm/init.c~optional-zone_dma-for-x86_64
+++ a/arch/x86_64/mm/init.c
@@ -406,9 +406,15 @@ void __cpuinit zap_low_mappings(int cpu)
 #ifndef CONFIG_NUMA
 void __init paging_init(void)
 {
-	unsigned long max_zone_pfns[MAX_NR_ZONES] = {MAX_DMA_PFN,
-							MAX_DMA32_PFN,
-							end_pfn};
+	unsigned long max_zone_pfns[MAX_NR_ZONES] = {
+#ifdef CONFIG_ZONE_DMA
+		MAX_DMA_PFN,
+#endif
+#ifdef CONFIG_ZONE_DMA32
+		MAX_DMA32_PFN,
+#endif
+		end_pfn
+	};
 	memory_present(0, 0, end_pfn);
 	sparse_init();
 	free_area_init_nodes(max_zone_pfns);
_

Patches currently in -mm which might be from clameter@xxxxxxx are

origin.patch
get-rid-of-zone_table.patch
get-rid-of-zone_table-fix.patch
deal-with-cases-of-zone_dma-meaning-the-first-zone.patch
deal-with-cases-of-zone_dma-meaning-the-first-zone-fix.patch
introduce-config_zone_dma.patch
optional-zone_dma-in-the-vm.patch
optional-zone_dma-for-x86_64.patch
optional-zone_dma-for-ia64.patch
remove-zone_dma-remains-from-parisc.patch
remove-zone_dma-remains-from-sh-sh64.patch
set-config_zone_dma-for-arches-with-generic_isa_dma.patch
radix-tree-rcu-lockless-readside.patch
scheduler-numa-aware-placement-of-sched_group_allnodes.patch
zvc-support-nr_slab_reclaimable--nr_slab_unreclaimable-swap_prefetch.patch
reduce-max_nr_zones-swap_prefetch-remove-incorrect-use-of-zone_highmem.patch
numa-add-zone_to_nid-function-swap_prefetch.patch
readahead-state-based-method-aging-accounting-apply-type-enum-zone_type-readahead.patch

-
To unsubscribe from this list: send the line "unsubscribe mm-commits" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Kernel Newbies FAQ]     [Kernel Archive]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [Bugtraq]     [Photo]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]

  Powered by Linux