From 1300124f69cafc54331bc06e968a8dd67863f989 Mon Sep 17 00:00:00 2001 From: Adrian Bunk Date: Tue, 28 Mar 2006 17:04:00 -0500 Subject: ACPI: Kconfig: ACPI should depend on, not select PCI Otherwise, illegal configurations like X86_VOYAGER=y, PCI=y are possible. This patch also fixes the options select'ing ACPI to also select PCI. Signed-off-by: Adrian Bunk Signed-off-by: Andrew Morton Signed-off-by: Len Brown --- arch/ia64/Kconfig | 1 + 1 file changed, 1 insertion(+) (limited to 'arch/ia64/Kconfig') diff --git a/arch/ia64/Kconfig b/arch/ia64/Kconfig index edffe25a477a..0046020e73b7 100644 --- a/arch/ia64/Kconfig +++ b/arch/ia64/Kconfig @@ -77,6 +77,7 @@ choice config IA64_GENERIC bool "generic" select ACPI + select PCI select NUMA select ACPI_NUMA help -- cgit v1.2.3 From b7bb575c3fa3694811a072109f4e9c2f4705d8f5 Mon Sep 17 00:00:00 2001 From: Kenji Kaneshige Date: Fri, 28 Apr 2006 11:50:43 +0900 Subject: [IA64] Make PCI Express support selectable When I tried to use PCI Express Hotplug driver on my ia64 box, I noticed that "PCI Express support" is not even selectable on ia64. This patch makes PCI Express support selectable. Signed-off-by: Kenji Kaneshige Signed-off-by: Tony Luck --- arch/ia64/Kconfig | 2 ++ 1 file changed, 2 insertions(+) (limited to 'arch/ia64/Kconfig') diff --git a/arch/ia64/Kconfig b/arch/ia64/Kconfig index 0f3076a820c3..cd2051f5c9ce 100644 --- a/arch/ia64/Kconfig +++ b/arch/ia64/Kconfig @@ -449,6 +449,8 @@ config PCI_DOMAINS bool default PCI +source "drivers/pci/pcie/Kconfig" + source "drivers/pci/Kconfig" source "drivers/pci/hotplug/Kconfig" -- cgit v1.2.3 From 1e11d2782b2f8e86d22ad92c75b70ec8cad14dcf Mon Sep 17 00:00:00 2001 From: Jean-Luc Leger Date: Fri, 23 Jun 2006 02:05:19 -0700 Subject: [PATCH] clean up default value of SCHED_SMT Default values for boolean and tristate options can only be 'y', 'm' or 'n'. This patch removes wrong default for SCHED_SMT. Signed-off-by: Jean-Luc Leger Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds --- arch/i386/Kconfig | 1 - arch/ia64/Kconfig | 1 - arch/powerpc/Kconfig | 1 - 3 files changed, 3 deletions(-) (limited to 'arch/ia64/Kconfig') diff --git a/arch/i386/Kconfig b/arch/i386/Kconfig index 15d23da2455f..1596101cfaf8 100644 --- a/arch/i386/Kconfig +++ b/arch/i386/Kconfig @@ -230,7 +230,6 @@ config NR_CPUS config SCHED_SMT bool "SMT (Hyperthreading) scheduler support" depends on SMP - default off help SMT scheduler support improves the CPU scheduler's decision making when dealing with Intel Pentium 4 chips with HyperThreading at a diff --git a/arch/ia64/Kconfig b/arch/ia64/Kconfig index 0f3076a820c3..c1c9b4224081 100644 --- a/arch/ia64/Kconfig +++ b/arch/ia64/Kconfig @@ -273,7 +273,6 @@ config HOTPLUG_CPU config SCHED_SMT bool "SMT scheduler support" depends on SMP - default off help Improves the CPU scheduler's decision making when dealing with Intel IA64 chips with MultiThreading at a cost of slightly increased diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig index 7b829c754d0d..e922a88b2bad 100644 --- a/arch/powerpc/Kconfig +++ b/arch/powerpc/Kconfig @@ -718,7 +718,6 @@ config PPC_64K_PAGES config SCHED_SMT bool "SMT (Hyperthreading) scheduler support" depends on PPC64 && SMP - default off help SMT scheduler support improves the CPU scheduler's decision making when dealing with POWER5 cpus at a cost of slightly increased -- cgit v1.2.3 From 10ad400b49aca15ecf83b0fde7e35e4064b15c85 Mon Sep 17 00:00:00 2001 From: Yasunori Goto Date: Tue, 27 Jun 2006 02:53:33 -0700 Subject: [PATCH] pgdat allocation for new node add (refresh node_data[]) Refresh NODE_DATA() for generic archs. In this case, NODE_DATA(nid) == node_data[nid]. node_data[] is array of address of pgdat. So, refresh is quite simple. Signed-off-by: Yasunori Goto Signed-off-by: KAMEZAWA Hiroyuki Cc: Dave Hansen Cc: "Brown, Len" Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds --- arch/ia64/Kconfig | 4 ++++ include/linux/memory_hotplug.h | 12 ++++++++++++ 2 files changed, 16 insertions(+) (limited to 'arch/ia64/Kconfig') diff --git a/arch/ia64/Kconfig b/arch/ia64/Kconfig index 18318749884b..a56df7bf022d 100644 --- a/arch/ia64/Kconfig +++ b/arch/ia64/Kconfig @@ -374,6 +374,10 @@ config HAVE_ARCH_EARLY_PFN_TO_NID def_bool y depends on NEED_MULTIPLE_NODES +config HAVE_ARCH_NODEDATA_EXTENSION + def_bool y + depends on NUMA + config IA32_SUPPORT bool "Support for Linux/x86 binaries" help diff --git a/include/linux/memory_hotplug.h b/include/linux/memory_hotplug.h index c6fd2c0323fc..569b1f6c27d1 100644 --- a/include/linux/memory_hotplug.h +++ b/include/linux/memory_hotplug.h @@ -91,6 +91,9 @@ static inline pg_data_t *arch_alloc_nodedata(int nid) static inline void arch_free_nodedata(pg_data_t *pgdat) { } +static inline void arch_refresh_nodedata(int nid, pg_data_t *pgdat) +{ +} #else /* CONFIG_HAVE_ARCH_NODEDATA_EXTENSION */ @@ -114,6 +117,12 @@ static inline void arch_free_nodedata(pg_data_t *pgdat) */ #define generic_free_nodedata(pgdat) kfree(pgdat) +extern pg_data_t *node_data[]; +static inline void arch_refresh_nodedata(int nid, pg_data_t *pgdat) +{ + node_data[nid] = pgdat; +} + #else /* !CONFIG_NUMA */ /* never called */ @@ -125,6 +134,9 @@ static inline pg_data_t *generic_alloc_nodedata(int nid) static inline void generic_free_nodedata(pg_data_t *pgdat) { } +static inline void arch_refresh_nodedata(int nid, pg_data_t *pgdat) +{ +} #endif /* CONFIG_NUMA */ #endif /* CONFIG_HAVE_ARCH_NODEDATA_EXTENSION */ -- cgit v1.2.3 From cc57637b0b015fb5d70dbbec740de516d33af07d Mon Sep 17 00:00:00 2001 From: Yasunori Goto Date: Thu, 29 Jun 2006 02:24:27 -0700 Subject: [PATCH] solve config broken: undefined reference to `online_page' Memory hotplug code of i386 adds memory to only highmem. So, if CONFIG_HIGHMEM is not set, CONFIG_MEMORY_HOTPLUG shouldn't be set. Otherwise, it causes compile error. In addition, many architecture can't use memory hotplug feature yet. So, I introduce CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG. Signed-off-by: Yasunori Goto Cc: Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds --- arch/i386/Kconfig | 3 +++ arch/ia64/Kconfig | 3 +++ arch/powerpc/Kconfig | 3 +++ arch/x86_64/Kconfig | 2 ++ mm/Kconfig | 2 +- 5 files changed, 12 insertions(+), 1 deletion(-) (limited to 'arch/ia64/Kconfig') diff --git a/arch/i386/Kconfig b/arch/i386/Kconfig index 3bb221db164a..5fa3c671c937 100644 --- a/arch/i386/Kconfig +++ b/arch/i386/Kconfig @@ -794,6 +794,9 @@ config COMPAT_VDSO endmenu +config ARCH_ENABLE_MEMORY_HOTPLUG + def_bool y + depends on HIGHMEM menu "Power management options (ACPI, APM)" depends on !X86_VOYAGER diff --git a/arch/ia64/Kconfig b/arch/ia64/Kconfig index a56df7bf022d..5faacbb8d16c 100644 --- a/arch/ia64/Kconfig +++ b/arch/ia64/Kconfig @@ -271,6 +271,9 @@ config HOTPLUG_CPU can be controlled through /sys/devices/system/cpu/cpu#. Say N if you want to disable CPU hotplug. +config ARCH_ENABLE_MEMORY_HOTPLUG + def_bool y + config SCHED_SMT bool "SMT scheduler support" depends on SMP diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig index e922a88b2bad..e2e9df344ab7 100644 --- a/arch/powerpc/Kconfig +++ b/arch/powerpc/Kconfig @@ -618,6 +618,9 @@ config HOTPLUG_CPU Say N if you are unsure. +config ARCH_ENABLE_MEMORY_HOTPLUG + def_bool y + config KEXEC bool "kexec system call (EXPERIMENTAL)" depends on PPC_MULTIPLATFORM && EXPERIMENTAL diff --git a/arch/x86_64/Kconfig b/arch/x86_64/Kconfig index ccc4a7fb97a3..91039844820c 100644 --- a/arch/x86_64/Kconfig +++ b/arch/x86_64/Kconfig @@ -370,6 +370,8 @@ config HOTPLUG_CPU can be controlled through /sys/devices/system/cpu/cpu#. Say N if you want to disable CPU hotplug. +config ARCH_ENABLE_MEMORY_HOTPLUG + def_bool y config HPET_TIMER bool diff --git a/mm/Kconfig b/mm/Kconfig index e76c023eb0bb..83917291d459 100644 --- a/mm/Kconfig +++ b/mm/Kconfig @@ -115,7 +115,7 @@ config SPARSEMEM_EXTREME # eventually, we can have this option just 'select SPARSEMEM' config MEMORY_HOTPLUG bool "Allow for memory hot-add" - depends on SPARSEMEM && HOTPLUG && !SOFTWARE_SUSPEND + depends on SPARSEMEM && HOTPLUG && !SOFTWARE_SUSPEND && ARCH_ENABLE_MEMORY_HOTPLUG depends on (IA64 || X86 || PPC64) comment "Memory hotplug is currently incompatible with Software Suspend" -- cgit v1.2.3 From 0d7012a968d006e277eb0fe20edd7a9b5563c2b7 Mon Sep 17 00:00:00 2001 From: Ingo Molnar Date: Thu, 29 Jun 2006 02:24:43 -0700 Subject: [PATCH] genirq: cleanup: turn ARCH_HAS_IRQ_PER_CPU into CONFIG_IRQ_PER_CPU Cleanup: change ARCH_HAS_IRQ_PER_CPU into a Kconfig method. Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds --- arch/cris/Kconfig | 4 ++++ arch/ia64/Kconfig | 4 ++++ arch/mips/Kconfig | 5 +++++ arch/parisc/Kconfig | 4 ++++ arch/powerpc/Kconfig | 4 ++++ include/asm-cris/irq.h | 5 ----- include/asm-ia64/irq.h | 5 ----- include/asm-mips/mach-mips/irq.h | 6 ------ include/asm-parisc/irq.h | 5 ----- include/asm-powerpc/irq.h | 5 ----- include/linux/irq.h | 2 +- kernel/irq/manage.c | 4 ++-- 12 files changed, 24 insertions(+), 29 deletions(-) (limited to 'arch/ia64/Kconfig') diff --git a/arch/cris/Kconfig b/arch/cris/Kconfig index 856b665020e7..6a1238a29d6c 100644 --- a/arch/cris/Kconfig +++ b/arch/cris/Kconfig @@ -28,6 +28,10 @@ config GENERIC_CALIBRATE_DELAY bool default y +config IRQ_PER_CPU + bool + default y + config CRIS bool default y diff --git a/arch/ia64/Kconfig b/arch/ia64/Kconfig index 5faacbb8d16c..b487e227a1f7 100644 --- a/arch/ia64/Kconfig +++ b/arch/ia64/Kconfig @@ -492,6 +492,10 @@ config GENERIC_PENDING_IRQ depends on GENERIC_HARDIRQS && SMP default y +config IRQ_PER_CPU + bool + default y + source "arch/ia64/hp/sim/Kconfig" menu "Instrumentation Support" diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig index 35e038a974c6..08c2ece4ae40 100644 --- a/arch/mips/Kconfig +++ b/arch/mips/Kconfig @@ -1618,6 +1618,11 @@ config GENERIC_IRQ_PROBE bool default y +config IRQ_PER_CPU + depends on SMP + bool + default y + # # - Highmem only makes sense for the 32-bit kernel. # - The current highmem code will only work properly on physically indexed diff --git a/arch/parisc/Kconfig b/arch/parisc/Kconfig index 910fb3afc0b5..6dd0ea8f88e0 100644 --- a/arch/parisc/Kconfig +++ b/arch/parisc/Kconfig @@ -51,6 +51,10 @@ config GENERIC_HARDIRQS config GENERIC_IRQ_PROBE def_bool y +config IRQ_PER_CPU + bool + default y + # unless you want to implement ACPI on PA-RISC ... ;-) config PM bool diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig index e2e9df344ab7..d43e4521abf2 100644 --- a/arch/powerpc/Kconfig +++ b/arch/powerpc/Kconfig @@ -30,6 +30,10 @@ config GENERIC_HARDIRQS bool default y +config IRQ_PER_CPU + bool + default y + config RWSEM_GENERIC_SPINLOCK bool diff --git a/include/asm-cris/irq.h b/include/asm-cris/irq.h index 4b338792218b..998cce9f3200 100644 --- a/include/asm-cris/irq.h +++ b/include/asm-cris/irq.h @@ -1,11 +1,6 @@ #ifndef _ASM_IRQ_H #define _ASM_IRQ_H -/* - * IRQ line status macro IRQ_PER_CPU is used - */ -#define ARCH_HAS_IRQ_PER_CPU - #include static inline int irq_canonicalize(int irq) diff --git a/include/asm-ia64/irq.h b/include/asm-ia64/irq.h index dbe86c0bbce5..79479e2c6966 100644 --- a/include/asm-ia64/irq.h +++ b/include/asm-ia64/irq.h @@ -14,11 +14,6 @@ #define NR_IRQS 256 #define NR_IRQ_VECTORS NR_IRQS -/* - * IRQ line status macro IRQ_PER_CPU is used - */ -#define ARCH_HAS_IRQ_PER_CPU - static __inline__ int irq_canonicalize (int irq) { diff --git a/include/asm-mips/mach-mips/irq.h b/include/asm-mips/mach-mips/irq.h index 083d9c512a04..e994b0c01227 100644 --- a/include/asm-mips/mach-mips/irq.h +++ b/include/asm-mips/mach-mips/irq.h @@ -4,10 +4,4 @@ #define NR_IRQS 256 -#ifdef CONFIG_SMP - -#define ARCH_HAS_IRQ_PER_CPU - -#endif - #endif /* __ASM_MACH_MIPS_IRQ_H */ diff --git a/include/asm-parisc/irq.h b/include/asm-parisc/irq.h index 377ba90c7d02..5cae260615a2 100644 --- a/include/asm-parisc/irq.h +++ b/include/asm-parisc/irq.h @@ -26,11 +26,6 @@ #define NR_IRQS (CPU_IRQ_MAX + 1) -/* - * IRQ line status macro IRQ_PER_CPU is used - */ -#define ARCH_HAS_IRQ_PER_CPU - static __inline__ int irq_canonicalize(int irq) { return (irq == 2) ? 9 : irq; diff --git a/include/asm-powerpc/irq.h b/include/asm-powerpc/irq.h index a10feec29d4d..eb5f33e1977a 100644 --- a/include/asm-powerpc/irq.h +++ b/include/asm-powerpc/irq.h @@ -30,11 +30,6 @@ #define IRQ_POLARITY_POSITIVE 0x2 /* high level or low->high edge */ #define IRQ_POLARITY_NEGATIVE 0x0 /* low level or high->low edge */ -/* - * IRQ line status macro IRQ_PER_CPU is used - */ -#define ARCH_HAS_IRQ_PER_CPU - #define get_irq_desc(irq) (&irq_desc[(irq)]) /* Define a way to iterate across irqs. */ diff --git a/include/linux/irq.h b/include/linux/irq.h index 81f3d976bb32..519a1cb7c331 100644 --- a/include/linux/irq.h +++ b/include/linux/irq.h @@ -33,7 +33,7 @@ #define IRQ_WAITING 32 /* IRQ not yet seen - for autodetection */ #define IRQ_LEVEL 64 /* IRQ level triggered */ #define IRQ_MASKED 128 /* IRQ masked - shouldn't be seen again */ -#ifdef ARCH_HAS_IRQ_PER_CPU +#ifdef CONFIG_IRQ_PER_CPU # define IRQ_PER_CPU 256 /* IRQ is per CPU */ # define CHECK_IRQ_PER_CPU(var) ((var) & IRQ_PER_CPU) #else diff --git a/kernel/irq/manage.c b/kernel/irq/manage.c index ca9b5d36abe8..8389d1817fe8 100644 --- a/kernel/irq/manage.c +++ b/kernel/irq/manage.c @@ -198,7 +198,7 @@ int setup_irq(unsigned int irq, struct irqaction *new) if (!(old->flags & new->flags & SA_SHIRQ)) goto mismatch; -#if defined(ARCH_HAS_IRQ_PER_CPU) && defined(SA_PERCPU_IRQ) +#if defined(CONFIG_IRQ_PER_CPU) && defined(SA_PERCPU_IRQ) /* All handlers must agree on per-cpuness */ if ((old->flags & IRQ_PER_CPU) != (new->flags & IRQ_PER_CPU)) goto mismatch; @@ -213,7 +213,7 @@ int setup_irq(unsigned int irq, struct irqaction *new) } *p = new; -#if defined(ARCH_HAS_IRQ_PER_CPU) && defined(SA_PERCPU_IRQ) +#if defined(CONFIG_IRQ_PER_CPU) && defined(SA_PERCPU_IRQ) if (new->flags & SA_PERCPU_IRQ) desc->status |= IRQ_PER_CPU; #endif -- cgit v1.2.3