From bbdfff86a8f0c91ad8b6dedf74bc14de4ba39679 Mon Sep 17 00:00:00 2001 From: Gabriel Mansi Date: Mon, 7 May 2007 18:55:13 -0300 Subject: [AGPGART] Fix wrong ID in via-agp.c there is a wrong id in drivers/char/agp/via-agp.c #define PCI_DEVICE_ID_VIA_CX700 0x8324 It must be 0x0324 Notice that PCI_DEVICE_ID_VIA_CX700 is also used in drivers/i2c/busses/i2c-viapro.c and drivers/ide/pci/via82cxxx.c So, I think that constant must be renamed to avoid conflicting. I attached a proposed patch. Signed-off-by: Dave Jones --- include/linux/pci_ids.h | 1 + 1 file changed, 1 insertion(+) (limited to 'include') diff --git a/include/linux/pci_ids.h b/include/linux/pci_ids.h index ccd85e4d3b8f..3b1fbf49fa7d 100644 --- a/include/linux/pci_ids.h +++ b/include/linux/pci_ids.h @@ -1288,6 +1288,7 @@ #define PCI_DEVICE_ID_VIA_8363_0 0x0305 #define PCI_DEVICE_ID_VIA_P4M800CE 0x0314 #define PCI_DEVICE_ID_VIA_P4M890 0x0327 +#define PCI_DEVICE_ID_VIA_VT3324 0x0324 #define PCI_DEVICE_ID_VIA_VT3336 0x0336 #define PCI_DEVICE_ID_VIA_8371_0 0x0391 #define PCI_DEVICE_ID_VIA_8501_0 0x0501 -- cgit v1.2.1 From 218f0aaee8a6b0e5772b95b154dea5b7701b33aa Mon Sep 17 00:00:00 2001 From: Paul Mundt Date: Tue, 15 May 2007 01:41:02 -0700 Subject: nommu: add ioremap_page_range() lib/ioremap.c is presently only built in if CONFIG_MMU is set. While this is reasonable, platforms that support both CONFIG_MMU=y or n need to be able to call in to this regardless. As none of the current nommu platforms do anything special with ioremap(), we assume that it's always successful. This fixes the SH-4 build with CONFIG_MMU=n. Signed-off-by: Paul Mundt Cc: David Howells Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds --- include/linux/io.h | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'include') diff --git a/include/linux/io.h b/include/linux/io.h index 09d351236379..8423dd376514 100644 --- a/include/linux/io.h +++ b/include/linux/io.h @@ -27,8 +27,16 @@ struct device; void __iowrite32_copy(void __iomem *to, const void *from, size_t count); void __iowrite64_copy(void __iomem *to, const void *from, size_t count); +#ifdef CONFIG_MMU int ioremap_page_range(unsigned long addr, unsigned long end, unsigned long phys_addr, pgprot_t prot); +#else +static inline int ioremap_page_range(unsigned long addr, unsigned long end, + unsigned long phys_addr, pgprot_t prot) +{ + return 0; +} +#endif /* * Managed iomap interface -- cgit v1.2.1 From b67405bbbba6bbd28dfd5337b29d5bc5a1140afb Mon Sep 17 00:00:00 2001 From: Yoshinori Sato Date: Tue, 15 May 2007 01:41:07 -0700 Subject: h8300 atomic.h update add atomic_sub_and_test define. Signed-off-by: Yoshinori Sato Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds --- include/asm-h8300/atomic.h | 1 + 1 file changed, 1 insertion(+) (limited to 'include') diff --git a/include/asm-h8300/atomic.h b/include/asm-h8300/atomic.h index 21f54428c86b..b4cf0ea97ede 100644 --- a/include/asm-h8300/atomic.h +++ b/include/asm-h8300/atomic.h @@ -37,6 +37,7 @@ static __inline__ int atomic_sub_return(int i, atomic_t *v) } #define atomic_sub(i, v) atomic_sub_return(i, v) +#define atomic_sub_and_test(i,v) (atomic_sub_return(i, v) == 0) static __inline__ int atomic_inc_return(atomic_t *v) { -- cgit v1.2.1 From 0fcdf96ca95f81a0e1fd91a2de16dc67c641c958 Mon Sep 17 00:00:00 2001 From: Simon Horman Date: Tue, 15 May 2007 01:41:15 -0700 Subject: alpha: fix hard_smp_processor_id compile error "Remove hardcoding of hard_smp_processor_id on UP systems", 2f4dfe206a2fc07099dfad77a8ea2f4b4ae2140f in Linus' tree, moved the definition of hard_smp_processor_id linux/smp.h to asm/smp.h for UP systems. This causes a regression on Alpha. cc1: warnings being treated as errors arch/alpha/kernel/setup.c: In function 'setup_arch': arch/alpha/kernel/setup.c:506: warning: implicit declaration of function 'hard_smp_processor_id' make[1]: *** [arch/alpha/kernel/setup.o] error 1 make: *** [arch/alpha/kernel] error 2 By including asm/smp.h non-conditionally in asm/mmu_context.h the problem appears to be resolved. Cc: Fernando Luis Vazquez Cao Signed-off-by: Simon Horman Cc: Richard Henderson Cc: Ivan Kokshaysky Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds --- include/asm-alpha/mmu_context.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'include') diff --git a/include/asm-alpha/mmu_context.h b/include/asm-alpha/mmu_context.h index 0bd7bd2ccb90..6a5be1f7debf 100644 --- a/include/asm-alpha/mmu_context.h +++ b/include/asm-alpha/mmu_context.h @@ -85,8 +85,8 @@ __reload_thread(struct pcb_struct *pcb) * +-------------+----------------+--------------+ */ -#ifdef CONFIG_SMP #include +#ifdef CONFIG_SMP #define cpu_last_asn(cpuid) (cpu_data[cpuid].last_asn) #else extern unsigned long last_asn; -- cgit v1.2.1 From 3c46bdcaec53eda069a8a9cd60621c7431aa7842 Mon Sep 17 00:00:00 2001 From: Geert Uytterhoeven Date: Tue, 15 May 2007 01:41:29 -0700 Subject: m68k: implement __clear_user() m68k: implement __clear_user(), which is needed by fs/signalfd.c Since we always let the MMU do all checking, clear_user() and __clear_user() are identical. The old clear_user() is renamed to __clear_user() for consistency. Signed-off-by: Geert Uytterhoeven Cc: Davide Libenzi Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds --- include/asm-m68k/uaccess.h | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'include') diff --git a/include/asm-m68k/uaccess.h b/include/asm-m68k/uaccess.h index 6a4cf2081512..5c1264cf0c65 100644 --- a/include/asm-m68k/uaccess.h +++ b/include/asm-m68k/uaccess.h @@ -361,7 +361,9 @@ __constant_copy_to_user(void __user *to, const void *from, unsigned long n) long strncpy_from_user(char *dst, const char __user *src, long count); long strnlen_user(const char __user *src, long n); -unsigned long clear_user(void __user *to, unsigned long n); +unsigned long __clear_user(void __user *to, unsigned long n); + +#define clear_user __clear_user #define strlen_user(str) strnlen_user(str, 32767) -- cgit v1.2.1 From 838c41184fee5e151c09972f2ba90c16493af614 Mon Sep 17 00:00:00 2001 From: Prarit Bhargava Date: Tue, 15 May 2007 01:41:43 -0700 Subject: Remove cpu hotplug defines for __INIT & __INITDATA After examining what was checked in and the code base I discovered that most of 86c0baf123e474b6eb404798926ecf62b426bf3a wasn't necessary anymore.... So here's a patch that reverts the last part of that changeset: Revert part of 86c0baf123e474b6eb404798926ecf62b426bf3a. The kernel has moved forward to a state where the original change is not necessary. After porting forward, this final version of the patch was applied and broke non-x86 architectures. Signed-off-by: Prarit Bhargava Cc: Russell King Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds --- include/linux/init.h | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) (limited to 'include') diff --git a/include/linux/init.h b/include/linux/init.h index 8bc32bb2fce2..e007ae4dc41e 100644 --- a/include/linux/init.h +++ b/include/linux/init.h @@ -52,14 +52,9 @@ #endif /* For assembly routines */ -#ifdef CONFIG_HOTPLUG_CPU -#define __INIT .section ".text","ax" -#define __INITDATA .section ".data","aw" -#else #define __INIT .section ".init.text","ax" -#define __INITDATA .section ".init.data","aw" -#endif #define __FINIT .previous +#define __INITDATA .section ".init.data","aw" #ifndef __ASSEMBLY__ /* -- cgit v1.2.1 From 297d9c035edd04327fedc0d1da27c2b112b66fcc Mon Sep 17 00:00:00 2001 From: Jeremy Fitzhardinge Date: Tue, 15 May 2007 01:41:48 -0700 Subject: i386: move common parts of smp into their own file Several parts of kernel/smp.c and smpboot.c are generally useful for other subarchitectures and paravirt_ops implementations, so make them available for reuse. Signed-off-by: Jeremy Fitzhardinge Acked-by: Chris Wright Cc: James Bottomley Cc: Eric W. Biederman Cc: Andi Kleen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds --- include/asm-i386/processor.h | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'include') diff --git a/include/asm-i386/processor.h b/include/asm-i386/processor.h index 70f3515c3db0..338668bfb0a2 100644 --- a/include/asm-i386/processor.h +++ b/include/asm-i386/processor.h @@ -749,9 +749,13 @@ extern unsigned long boot_option_idle_override; extern void enable_sep_cpu(void); extern int sysenter_setup(void); +/* Defined in head.S */ +extern struct Xgt_desc_struct early_gdt_descr; + extern void cpu_set_gdt(int); extern void switch_to_new_gdt(void); extern void cpu_init(void); +extern void init_gdt(int cpu); extern int force_mwait; -- cgit v1.2.1 From cfbf07f2a80b618c42a42c20d83647ea8fcceca0 Mon Sep 17 00:00:00 2001 From: Christoph Lameter Date: Tue, 15 May 2007 01:42:06 -0700 Subject: SLUB: CONFIG_LARGE_ALLOCS must consider MAX_ORDER limit Take MAX_ORDER into consideration when determining KMALLOC_SHIFT_HIGH. Otherwise we may run into a situation where we attempt to create general slabs larger than MAX_ORDER. Signed-off-by: Christoph Lameter Cc: "David S. Miller" Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds --- include/linux/slub_def.h | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'include') diff --git a/include/linux/slub_def.h b/include/linux/slub_def.h index ea27065e80e6..fd6627e2d115 100644 --- a/include/linux/slub_def.h +++ b/include/linux/slub_def.h @@ -60,7 +60,8 @@ struct kmem_cache { #define KMALLOC_SHIFT_LOW 3 #ifdef CONFIG_LARGE_ALLOCS -#define KMALLOC_SHIFT_HIGH 25 +#define KMALLOC_SHIFT_HIGH ((MAX_ORDER + PAGE_SHIFT) =< 25 ? \ + (MAX_ORDER + PAGE_SHIFT - 1) : 25) #else #if !defined(CONFIG_MMU) || NR_CPUS > 512 || MAX_NUMNODES > 256 #define KMALLOC_SHIFT_HIGH 20 @@ -87,6 +88,9 @@ static inline int kmalloc_index(int size) */ WARN_ON_ONCE(size == 0); + if (size >= (1 << KMALLOC_SHIFT_HIGH)) + return -1; + if (size > 64 && size <= 96) return 1; if (size > 128 && size <= 192) -- cgit v1.2.1