* Linux 2.6.30.2
@ 2009-07-20 4:08 Greg KH
2009-07-20 4:08 ` Greg KH
2009-07-20 14:13 ` Linux 2.6.30.2: does not boot Wolfgang Walter
0 siblings, 2 replies; 28+ messages in thread
From: Greg KH @ 2009-07-20 4:08 UTC (permalink / raw)
To: linux-kernel, Andrew Morton, torvalds, stable; +Cc: lwn
I'm announcing the release of the 2.6.30.2 kernel. All users of the
2.6.30 kernel series are very strongly encouraged to upgrade.
I'll also be replying to this message with a copy of the patch between
2.6.30.1 and 2.6.30.2
The updated 2.6.30.y git tree can be found at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-2.6.30.y.git
and can be browsed at the normal kernel.org git web browser:
http://git.kernel.org/?p=linux/kernel/git/stable/linux-2.6.30.y.git;a=summary
thanks,
greg k-h
------------
Makefile | 7 +++--
arch/alpha/include/asm/percpu.h | 6 ++--
arch/blackfin/kernel/irqchip.c | 50 ++++++++-------------------------------
arch/blackfin/kernel/setup.c | 3 +-
arch/blackfin/mach-common/head.S | 16 ++++++------
arch/blackfin/mach-common/smp.c | 13 +++++-----
arch/x86/include/asm/pci.h | 2 -
block/blk-core.c | 10 +++----
drivers/block/floppy.c | 5 +++
drivers/md/md.c | 8 ++++--
drivers/md/raid5.c | 3 +-
drivers/net/tun.c | 4 ++-
drivers/pci/iova.c | 26 +++++++++++++++++---
fs/fuse/dev.c | 2 -
fs/fuse/file.c | 2 -
include/asm-generic/percpu.h | 4 +++
include/linux/mm.h | 2 -
include/linux/percpu-defs.h | 3 +-
include/linux/personality.h | 5 +++
include/linux/security.h | 2 +
kernel/futex.c | 43 ++++++++++++++++++---------------
kernel/resource.c | 2 -
kernel/sysctl.c | 2 -
lib/dma-debug.c | 2 -
mm/Kconfig | 19 ++++++++++++++
mm/mmap.c | 3 ++
net/ipv4/arp.c | 7 +----
security/Kconfig | 22 -----------------
security/security.c | 3 --
29 files changed, 143 insertions(+), 133 deletions(-)
Christoph Lameter (1):
security: use mmap_min_addr indepedently of security models
Csaba Henk (1):
fuse: fix return value of fuse_dev_write()
David Woodhouse (2):
Fix pci_unmap_addr() et al on i386.
Fix iommu address space allocation
Eric W. Biederman (1):
Revert "ipv4: arp announce, arp_proxy and windows ip conflict verification"
Eugene Teo (1):
Add '-fno-delete-null-pointer-checks' to gcc CFLAGS
Greg Kroah-Hartman (1):
Linux 2.6.30.2
Jiri Slaby (1):
floppy: fix lock imbalance
Joerg Roedel (1):
dma-debug: fix off-by-one error in overlap function
Julien Tinnes (1):
personality: fix PER_CLEAR_ON_SETID (CVE-2009-1895)
Linus Torvalds (1):
Don't use '-fwrapv' compiler option: it's buggy in gcc-4.1.x
Mariusz Kozlowski (1):
tun/tap: Fix crashes if open() /dev/net/tun and then poll() it. (CVE-2009-1897)
Mike Frysinger (2):
Blackfin: redo handling of bad irqs
Blackfin: fix command line corruption with DEBUG_DOUBLEFAULT
Miklos Szeredi (1):
fuse: fix bad return value in fuse_file_poll()
NeilBrown (4):
blocK: Restore barrier support for md and probably other virtual devices.
md/raid5: suspend shouldn't affect read requests.
md: fix error path when duplicate name is found on md device creation.
md: avoid dereferencing NULL pointer when accessing suspend_* sysfs attributes.
Sonic Zhang (2):
Blackfin: fix accidental reset in some boot modes
Blackfin: fix deadlock in SMP IPI handler
Sonny Rao (1):
futexes: Fix infinite loop in get_futex_key() on huge page
Tejun Heo (1):
alpha: fix percpu build breakage
Thomas Gleixner (1):
futex: Fix the write access fault problem for real
Zhang Rui (1):
kernel/resource.c: fix sign extension in reserve_setup()
^ permalink raw reply [flat|nested] 28+ messages in thread* Re: Linux 2.6.30.2 2009-07-20 4:08 Linux 2.6.30.2 Greg KH @ 2009-07-20 4:08 ` Greg KH 2009-07-20 14:13 ` Linux 2.6.30.2: does not boot Wolfgang Walter 1 sibling, 0 replies; 28+ messages in thread From: Greg KH @ 2009-07-20 4:08 UTC (permalink / raw) To: linux-kernel, Andrew Morton, torvalds, stable; +Cc: lwn diff --git a/Makefile b/Makefile index f8a0893..ab8cda6 100644 --- a/Makefile +++ b/Makefile @@ -1,7 +1,7 @@ VERSION = 2 PATCHLEVEL = 6 SUBLEVEL = 30 -EXTRAVERSION = .1 +EXTRAVERSION = .2 NAME = Man-Eating Seals of Antiquity # *DOCUMENTATION* @@ -351,7 +351,8 @@ KBUILD_CPPFLAGS := -D__KERNEL__ KBUILD_CFLAGS := -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs \ -fno-strict-aliasing -fno-common \ - -Werror-implicit-function-declaration + -Werror-implicit-function-declaration \ + -fno-delete-null-pointer-checks KBUILD_AFLAGS := -D__ASSEMBLY__ # Read KERNELRELEASE from include/config/kernel.release (if it exists) @@ -573,7 +574,7 @@ KBUILD_CFLAGS += $(call cc-option,-Wdeclaration-after-statement,) KBUILD_CFLAGS += $(call cc-option,-Wno-pointer-sign,) # disable invalid "can't wrap" optimizations for signed / pointers -KBUILD_CFLAGS += $(call cc-option,-fwrapv) +KBUILD_CFLAGS += $(call cc-option,-fno-strict-overflow) # revert to pre-gcc-4.4 behaviour of .eh_frame KBUILD_CFLAGS += $(call cc-option,-fno-dwarf2-cfi-asm) diff --git a/arch/alpha/include/asm/percpu.h b/arch/alpha/include/asm/percpu.h index 06c5c7a..b663f1f 100644 --- a/arch/alpha/include/asm/percpu.h +++ b/arch/alpha/include/asm/percpu.h @@ -30,7 +30,7 @@ extern unsigned long __per_cpu_offset[NR_CPUS]; #ifndef MODULE #define SHIFT_PERCPU_PTR(var, offset) RELOC_HIDE(&per_cpu_var(var), (offset)) -#define PER_CPU_ATTRIBUTES +#define PER_CPU_DEF_ATTRIBUTES #else /* * To calculate addresses of locally defined variables, GCC uses 32-bit @@ -49,7 +49,7 @@ extern unsigned long __per_cpu_offset[NR_CPUS]; : "=&r"(__ptr), "=&r"(tmp_gp)); \ (typeof(&per_cpu_var(var)))(__ptr + (offset)); }) -#define PER_CPU_ATTRIBUTES __used +#define PER_CPU_DEF_ATTRIBUTES __used #endif /* MODULE */ @@ -71,7 +71,7 @@ extern unsigned long __per_cpu_offset[NR_CPUS]; #define __get_cpu_var(var) per_cpu_var(var) #define __raw_get_cpu_var(var) per_cpu_var(var) -#define PER_CPU_ATTRIBUTES +#define PER_CPU_DEF_ATTRIBUTES #endif /* SMP */ diff --git a/arch/blackfin/kernel/irqchip.c b/arch/blackfin/kernel/irqchip.c index 401bd32..6ab0532 100644 --- a/arch/blackfin/kernel/irqchip.c +++ b/arch/blackfin/kernel/irqchip.c @@ -38,14 +38,6 @@ #include <asm/pda.h> static atomic_t irq_err_count; -static spinlock_t irq_controller_lock; - -/* - * Dummy mask/unmask handler - */ -void dummy_mask_unmask_irq(unsigned int irq) -{ -} void ack_bad_irq(unsigned int irq) { @@ -53,21 +45,9 @@ void ack_bad_irq(unsigned int irq) printk(KERN_ERR "IRQ: spurious interrupt %d\n", irq); } -static struct irq_chip bad_chip = { - .ack = dummy_mask_unmask_irq, - .mask = dummy_mask_unmask_irq, - .unmask = dummy_mask_unmask_irq, -}; - static struct irq_desc bad_irq_desc = { - .status = IRQ_DISABLED, - .chip = &bad_chip, .handle_irq = handle_bad_irq, - .depth = 1, .lock = __SPIN_LOCK_UNLOCKED(irq_desc->lock), -#ifdef CONFIG_SMP - .affinity = CPU_MASK_ALL -#endif }; #ifdef CONFIG_CPUMASK_OFFSTACK @@ -117,21 +97,13 @@ __attribute__((l1_text)) #endif asmlinkage void asm_do_IRQ(unsigned int irq, struct pt_regs *regs) { - struct pt_regs *old_regs; - struct irq_desc *desc = irq_desc + irq; #ifndef CONFIG_IPIPE unsigned short pending, other_ints; #endif - old_regs = set_irq_regs(regs); - - /* - * Some hardware gives randomly wrong interrupts. Rather - * than crashing, do something sensible. - */ - if (irq >= NR_IRQS) - desc = &bad_irq_desc; + struct pt_regs *old_regs = set_irq_regs(regs); irq_enter(); + #ifdef CONFIG_DEBUG_STACKOVERFLOW /* Debugging check for stack overflow: is there less than STACK_WARN free? */ { @@ -147,7 +119,15 @@ asmlinkage void asm_do_IRQ(unsigned int irq, struct pt_regs *regs) } } #endif - generic_handle_irq(irq); + + /* + * Some hardware gives randomly wrong interrupts. Rather + * than crashing, do something sensible. + */ + if (irq >= NR_IRQS) + handle_bad_irq(irq, &bad_irq_desc); + else + generic_handle_irq(irq); #ifndef CONFIG_IPIPE /* @@ -171,14 +151,6 @@ asmlinkage void asm_do_IRQ(unsigned int irq, struct pt_regs *regs) void __init init_IRQ(void) { - struct irq_desc *desc; - int irq; - - spin_lock_init(&irq_controller_lock); - for (irq = 0, desc = irq_desc; irq < NR_IRQS; irq++, desc++) { - *desc = bad_irq_desc; - } - init_arch_irq(); #ifdef CONFIG_DEBUG_BFIN_HWTRACE_EXPAND diff --git a/arch/blackfin/kernel/setup.c b/arch/blackfin/kernel/setup.c index a58687b..b550bae 100644 --- a/arch/blackfin/kernel/setup.c +++ b/arch/blackfin/kernel/setup.c @@ -831,7 +831,8 @@ void __init setup_arch(char **cmdline_p) defined(CONFIG_BF538) || defined(CONFIG_BF539) _bfin_swrst = bfin_read_SWRST(); #else - _bfin_swrst = bfin_read_SYSCR(); + /* Clear boot mode field */ + _bfin_swrst = bfin_read_SYSCR() & ~0xf; #endif #ifdef CONFIG_DEBUG_DOUBLEFAULT_PRINT diff --git a/arch/blackfin/mach-common/head.S b/arch/blackfin/mach-common/head.S index 698d4c0..7e5143c 100644 --- a/arch/blackfin/mach-common/head.S +++ b/arch/blackfin/mach-common/head.S @@ -126,25 +126,25 @@ ENTRY(__start) * below */ GET_PDA(p0, r0); - r7 = [p0 + PDA_RETX]; + r6 = [p0 + PDA_RETX]; p1.l = _init_saved_retx; p1.h = _init_saved_retx; - [p1] = r7; + [p1] = r6; - r7 = [p0 + PDA_DCPLB]; + r6 = [p0 + PDA_DCPLB]; p1.l = _init_saved_dcplb_fault_addr; p1.h = _init_saved_dcplb_fault_addr; - [p1] = r7; + [p1] = r6; - r7 = [p0 + PDA_ICPLB]; + r6 = [p0 + PDA_ICPLB]; p1.l = _init_saved_icplb_fault_addr; p1.h = _init_saved_icplb_fault_addr; - [p1] = r7; + [p1] = r6; - r7 = [p0 + PDA_SEQSTAT]; + r6 = [p0 + PDA_SEQSTAT]; p1.l = _init_saved_seqstat; p1.h = _init_saved_seqstat; - [p1] = r7; + [p1] = r6; #endif /* Initialize stack pointer */ diff --git a/arch/blackfin/mach-common/smp.c b/arch/blackfin/mach-common/smp.c index 93eab61..66fb780 100644 --- a/arch/blackfin/mach-common/smp.c +++ b/arch/blackfin/mach-common/smp.c @@ -139,7 +139,7 @@ static void ipi_call_function(unsigned int cpu, struct ipi_message *msg) static irqreturn_t ipi_handler(int irq, void *dev_instance) { - struct ipi_message *msg, *mg; + struct ipi_message *msg; struct ipi_message_queue *msg_queue; unsigned int cpu = smp_processor_id(); @@ -149,7 +149,8 @@ static irqreturn_t ipi_handler(int irq, void *dev_instance) msg_queue->count++; spin_lock(&msg_queue->lock); - list_for_each_entry_safe(msg, mg, &msg_queue->head, list) { + while (!list_empty(&msg_queue->head)) { + msg = list_entry(msg_queue->head.next, typeof(*msg), list); list_del(&msg->list); switch (msg->type) { case BFIN_IPI_RESCHEDULE: @@ -216,7 +217,7 @@ int smp_call_function(void (*func)(void *info), void *info, int wait) for_each_cpu_mask(cpu, callmap) { msg_queue = &per_cpu(ipi_msg_queue, cpu); spin_lock_irqsave(&msg_queue->lock, flags); - list_add(&msg->list, &msg_queue->head); + list_add_tail(&msg->list, &msg_queue->head); spin_unlock_irqrestore(&msg_queue->lock, flags); platform_send_ipi_cpu(cpu); } @@ -256,7 +257,7 @@ int smp_call_function_single(int cpuid, void (*func) (void *info), void *info, msg_queue = &per_cpu(ipi_msg_queue, cpu); spin_lock_irqsave(&msg_queue->lock, flags); - list_add(&msg->list, &msg_queue->head); + list_add_tail(&msg->list, &msg_queue->head); spin_unlock_irqrestore(&msg_queue->lock, flags); platform_send_ipi_cpu(cpu); @@ -287,7 +288,7 @@ void smp_send_reschedule(int cpu) msg_queue = &per_cpu(ipi_msg_queue, cpu); spin_lock_irqsave(&msg_queue->lock, flags); - list_add(&msg->list, &msg_queue->head); + list_add_tail(&msg->list, &msg_queue->head); spin_unlock_irqrestore(&msg_queue->lock, flags); platform_send_ipi_cpu(cpu); @@ -315,7 +316,7 @@ void smp_send_stop(void) for_each_cpu_mask(cpu, callmap) { msg_queue = &per_cpu(ipi_msg_queue, cpu); spin_lock_irqsave(&msg_queue->lock, flags); - list_add(&msg->list, &msg_queue->head); + list_add_tail(&msg->list, &msg_queue->head); spin_unlock_irqrestore(&msg_queue->lock, flags); platform_send_ipi_cpu(cpu); } diff --git a/arch/x86/include/asm/pci.h b/arch/x86/include/asm/pci.h index b51a1e8..abbc09b 100644 --- a/arch/x86/include/asm/pci.h +++ b/arch/x86/include/asm/pci.h @@ -91,7 +91,7 @@ extern void pci_iommu_alloc(void); #define PCI_DMA_BUS_IS_PHYS (dma_ops->is_phys) -#if defined(CONFIG_X86_64) || defined(CONFIG_DMA_API_DEBUG) +#if defined(CONFIG_X86_64) || defined(CONFIG_DMAR) || defined(CONFIG_DMA_API_DEBUG) #define DECLARE_PCI_UNMAP_ADDR(ADDR_NAME) \ dma_addr_t ADDR_NAME; diff --git a/block/blk-core.c b/block/blk-core.c index c89883b..a59f180 100644 --- a/block/blk-core.c +++ b/block/blk-core.c @@ -1158,6 +1158,11 @@ static int __make_request(struct request_queue *q, struct bio *bio) nr_sectors = bio_sectors(bio); + if (bio_barrier(bio) && bio_has_data(bio) && + (q->next_ordered == QUEUE_ORDERED_NONE)) { + bio_endio(bio, -EOPNOTSUPP); + return 0; + } /* * low level driver can indicate that it wants pages above a * certain limit bounced to low memory (ie for highmem, or even @@ -1461,11 +1466,6 @@ static inline void __generic_make_request(struct bio *bio) err = -EOPNOTSUPP; goto end_io; } - if (bio_barrier(bio) && bio_has_data(bio) && - (q->next_ordered == QUEUE_ORDERED_NONE)) { - err = -EOPNOTSUPP; - goto end_io; - } ret = q->make_request_fn(q, bio); } while (ret); diff --git a/drivers/block/floppy.c b/drivers/block/floppy.c index 1300df6..39e1b58 100644 --- a/drivers/block/floppy.c +++ b/drivers/block/floppy.c @@ -3327,7 +3327,10 @@ static inline int set_geometry(unsigned int cmd, struct floppy_struct *g, if (!capable(CAP_SYS_ADMIN)) return -EPERM; mutex_lock(&open_lock); - LOCK_FDC(drive, 1); + if (lock_fdc(drive, 1)) { + mutex_unlock(&open_lock); + return -EINTR; + } floppy_type[type] = *g; floppy_type[type].name = "user format"; for (cnt = type << 2; cnt < (type << 2) + 4; cnt++) diff --git a/drivers/md/md.c b/drivers/md/md.c index 641b211..eb1b73f 100644 --- a/drivers/md/md.c +++ b/drivers/md/md.c @@ -3589,7 +3589,8 @@ suspend_lo_store(mddev_t *mddev, const char *buf, size_t len) char *e; unsigned long long new = simple_strtoull(buf, &e, 10); - if (mddev->pers->quiesce == NULL) + if (mddev->pers == NULL || + mddev->pers->quiesce == NULL) return -EINVAL; if (buf == e || (*e && *e != '\n')) return -EINVAL; @@ -3617,7 +3618,8 @@ suspend_hi_store(mddev_t *mddev, const char *buf, size_t len) char *e; unsigned long long new = simple_strtoull(buf, &e, 10); - if (mddev->pers->quiesce == NULL) + if (mddev->pers == NULL || + mddev->pers->quiesce == NULL) return -EINVAL; if (buf == e || (*e && *e != '\n')) return -EINVAL; @@ -3876,6 +3878,8 @@ static int md_alloc(dev_t dev, char *name) if (mddev2->gendisk && strcmp(mddev2->gendisk->disk_name, name) == 0) { spin_unlock(&all_mddevs_lock); + mutex_unlock(&disks_mutex); + mddev_put(mddev); return -EEXIST; } spin_unlock(&all_mddevs_lock); diff --git a/drivers/md/raid5.c b/drivers/md/raid5.c index c0434e0..1f98ea4 100644 --- a/drivers/md/raid5.c +++ b/drivers/md/raid5.c @@ -3703,7 +3703,8 @@ static int make_request(struct request_queue *q, struct bio * bi) /* FIXME what if we get a false positive because these * are being updated. */ - if (logical_sector >= mddev->suspend_lo && + if (bio_data_dir(bi) == WRITE && + logical_sector >= mddev->suspend_lo && logical_sector < mddev->suspend_hi) { release_stripe(sh); schedule(); diff --git a/drivers/net/tun.c b/drivers/net/tun.c index 1be6a6b..8289292 100644 --- a/drivers/net/tun.c +++ b/drivers/net/tun.c @@ -486,12 +486,14 @@ static unsigned int tun_chr_poll(struct file *file, poll_table * wait) { struct tun_file *tfile = file->private_data; struct tun_struct *tun = __tun_get(tfile); - struct sock *sk = tun->sk; + struct sock *sk; unsigned int mask = 0; if (!tun) return POLLERR; + sk = tun->sk; + DBG(KERN_INFO "%s: tun_chr_poll\n", tun->dev->name); poll_wait(file, &tun->socket.wait, wait); diff --git a/drivers/pci/iova.c b/drivers/pci/iova.c index 2287116..46dd440 100644 --- a/drivers/pci/iova.c +++ b/drivers/pci/iova.c @@ -1,9 +1,19 @@ /* - * Copyright (c) 2006, Intel Corporation. + * Copyright © 2006-2009, Intel Corporation. * - * This file is released under the GPLv2. + * This program is free software; you can redistribute it and/or modify it + * under the terms and conditions of the GNU General Public License, + * version 2, as published by the Free Software Foundation. + * + * This program is distributed in the hope it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along with + * this program; if not, write to the Free Software Foundation, Inc., 59 Temple + * Place - Suite 330, Boston, MA 02111-1307 USA. * - * Copyright (C) 2006-2008 Intel Corporation * Author: Anil S Keshavamurthy <anil.s.keshavamurthy@intel.com> */ @@ -123,7 +133,15 @@ move_left: /* Insert the new_iova into domain rbtree by holding writer lock */ /* Add new node and rebalance tree. */ { - struct rb_node **entry = &((prev)), *parent = NULL; + struct rb_node **entry, *parent = NULL; + + /* If we have 'prev', it's a valid place to start the + insertion. Otherwise, start from the root. */ + if (prev) + entry = &prev; + else + entry = &iovad->rbroot.rb_node; + /* Figure out where to put new node */ while (*entry) { struct iova *this = container_of(*entry, diff --git a/fs/fuse/dev.c b/fs/fuse/dev.c index ba76b68..eb40335 100644 --- a/fs/fuse/dev.c +++ b/fs/fuse/dev.c @@ -904,7 +904,7 @@ static ssize_t fuse_dev_write(struct kiocb *iocb, const struct iovec *iov, unsigned long nr_segs, loff_t pos) { int err; - unsigned nbytes = iov_length(iov, nr_segs); + size_t nbytes = iov_length(iov, nr_segs); struct fuse_req *req; struct fuse_out_header oh; struct fuse_copy_state cs; diff --git a/fs/fuse/file.c b/fs/fuse/file.c index 06f30e9..053ff1c 100644 --- a/fs/fuse/file.c +++ b/fs/fuse/file.c @@ -1867,7 +1867,7 @@ static unsigned fuse_file_poll(struct file *file, poll_table *wait) req = fuse_get_req(fc); if (IS_ERR(req)) - return PTR_ERR(req); + return POLLERR; req->in.h.opcode = FUSE_POLL; req->in.h.nodeid = get_node_id(inode); diff --git a/include/asm-generic/percpu.h b/include/asm-generic/percpu.h index d7d50d7..aa00800 100644 --- a/include/asm-generic/percpu.h +++ b/include/asm-generic/percpu.h @@ -97,4 +97,8 @@ extern void setup_per_cpu_areas(void); #define PER_CPU_ATTRIBUTES #endif +#ifndef PER_CPU_DEF_ATTRIBUTES +#define PER_CPU_DEF_ATTRIBUTES +#endif + #endif /* _ASM_GENERIC_PERCPU_H_ */ diff --git a/include/linux/mm.h b/include/linux/mm.h index bff1f0d..0c21af6 100644 --- a/include/linux/mm.h +++ b/include/linux/mm.h @@ -580,12 +580,10 @@ static inline void set_page_links(struct page *page, enum zone_type zone, */ static inline unsigned long round_hint_to_min(unsigned long hint) { -#ifdef CONFIG_SECURITY hint &= PAGE_MASK; if (((void *)hint != NULL) && (hint < mmap_min_addr)) return PAGE_ALIGN(mmap_min_addr); -#endif return hint; } diff --git a/include/linux/percpu-defs.h b/include/linux/percpu-defs.h index 8f921d7..68438e1 100644 --- a/include/linux/percpu-defs.h +++ b/include/linux/percpu-defs.h @@ -24,7 +24,8 @@ #define DEFINE_PER_CPU_SECTION(type, name, section) \ __attribute__((__section__(PER_CPU_BASE_SECTION section))) \ - PER_CPU_ATTRIBUTES __typeof__(type) per_cpu__##name + PER_CPU_ATTRIBUTES PER_CPU_DEF_ATTRIBUTES \ + __typeof__(type) per_cpu__##name /* * Variant on the per-CPU variable declaration/definition theme used for diff --git a/include/linux/personality.h b/include/linux/personality.h index a84e9ff..1261208 100644 --- a/include/linux/personality.h +++ b/include/linux/personality.h @@ -40,7 +40,10 @@ enum { * Security-relevant compatibility flags that must be * cleared upon setuid or setgid exec: */ -#define PER_CLEAR_ON_SETID (READ_IMPLIES_EXEC|ADDR_NO_RANDOMIZE) +#define PER_CLEAR_ON_SETID (READ_IMPLIES_EXEC | \ + ADDR_NO_RANDOMIZE | \ + ADDR_COMPAT_LAYOUT | \ + MMAP_PAGE_ZERO) /* * Personality types. diff --git a/include/linux/security.h b/include/linux/security.h index d5fd616..5eff459 100644 --- a/include/linux/security.h +++ b/include/linux/security.h @@ -2197,6 +2197,8 @@ static inline int security_file_mmap(struct file *file, unsigned long reqprot, unsigned long addr, unsigned long addr_only) { + if ((addr < mmap_min_addr) && !capable(CAP_SYS_RAWIO)) + return -EACCES; return 0; } diff --git a/kernel/futex.c b/kernel/futex.c index d546b2d..4d973bd 100644 --- a/kernel/futex.c +++ b/kernel/futex.c @@ -241,6 +241,7 @@ again: if (err < 0) return err; + page = compound_head(page); lock_page(page); if (!page->mapping) { unlock_page(page); @@ -278,6 +279,25 @@ void put_futex_key(int fshared, union futex_key *key) drop_futex_key_refs(key); } +/* + * fault_in_user_writeable - fault in user address and verify RW access + * @uaddr: pointer to faulting user space address + * + * Slow path to fixup the fault we just took in the atomic write + * access to @uaddr. + * + * We have no generic implementation of a non destructive write to the + * user address. We know that we faulted in the atomic pagefault + * disabled section so we can as well avoid the #PF overhead by + * calling get_user_pages() right away. + */ +static int fault_in_user_writeable(u32 __user *uaddr) +{ + int ret = get_user_pages(current, current->mm, (unsigned long)uaddr, + 1, 1, 0, NULL, NULL); + return ret < 0 ? ret : 0; +} + static u32 cmpxchg_futex_value_locked(u32 __user *uaddr, u32 uval, u32 newval) { u32 curval; @@ -739,7 +759,6 @@ retry: retry_private: op_ret = futex_atomic_op_inuser(op, uaddr2); if (unlikely(op_ret < 0)) { - u32 dummy; double_unlock_hb(hb1, hb2); @@ -757,7 +776,7 @@ retry_private: goto out_put_keys; } - ret = get_user(dummy, uaddr2); + ret = fault_in_user_writeable(uaddr2); if (ret) goto out_put_keys; @@ -1097,7 +1116,7 @@ retry: handle_fault: spin_unlock(q->lock_ptr); - ret = get_user(uval, uaddr); + ret = fault_in_user_writeable(uaddr); spin_lock(q->lock_ptr); @@ -1552,16 +1571,9 @@ out: return ret; uaddr_faulted: - /* - * We have to r/w *(int __user *)uaddr, and we have to modify it - * atomically. Therefore, if we continue to fault after get_user() - * below, we need to handle the fault ourselves, while still holding - * the mmap_sem. This can occur if the uaddr is under contention as - * we have to drop the mmap_sem in order to call get_user(). - */ queue_unlock(&q, hb); - ret = get_user(uval, uaddr); + ret = fault_in_user_writeable(uaddr); if (ret) goto out_put_key; @@ -1657,17 +1669,10 @@ out: return ret; pi_faulted: - /* - * We have to r/w *(int __user *)uaddr, and we have to modify it - * atomically. Therefore, if we continue to fault after get_user() - * below, we need to handle the fault ourselves, while still holding - * the mmap_sem. This can occur if the uaddr is under contention as - * we have to drop the mmap_sem in order to call get_user(). - */ spin_unlock(&hb->lock); put_futex_key(fshared, &key); - ret = get_user(uval, uaddr); + ret = fault_in_user_writeable(uaddr); if (!ret) goto retry; diff --git a/kernel/resource.c b/kernel/resource.c index ac5f3a3..78b0872 100644 --- a/kernel/resource.c +++ b/kernel/resource.c @@ -787,7 +787,7 @@ static int __init reserve_setup(char *str) static struct resource reserve[MAXRESERVE]; for (;;) { - int io_start, io_num; + unsigned int io_start, io_num; int x = reserved; if (get_option (&str, &io_start) != 2) diff --git a/kernel/sysctl.c b/kernel/sysctl.c index b2970d5..e5bfcc7 100644 --- a/kernel/sysctl.c +++ b/kernel/sysctl.c @@ -1225,7 +1225,6 @@ static struct ctl_table vm_table[] = { .strategy = &sysctl_jiffies, }, #endif -#ifdef CONFIG_SECURITY { .ctl_name = CTL_UNNUMBERED, .procname = "mmap_min_addr", @@ -1234,7 +1233,6 @@ static struct ctl_table vm_table[] = { .mode = 0644, .proc_handler = &proc_doulongvec_minmax, }, -#endif #ifdef CONFIG_NUMA { .ctl_name = CTL_UNNUMBERED, diff --git a/lib/dma-debug.c b/lib/dma-debug.c index 2b16536..6a4e3d4 100644 --- a/lib/dma-debug.c +++ b/lib/dma-debug.c @@ -599,7 +599,7 @@ static inline bool overlap(void *addr, u64 size, void *start, void *end) return ((addr >= start && addr < end) || (addr2 >= start && addr2 < end) || - ((addr < start) && (addr2 >= end))); + ((addr < start) && (addr2 > end))); } static void check_for_illegal_area(struct device *dev, void *addr, u64 size) diff --git a/mm/Kconfig b/mm/Kconfig index c2b57d8..71830ba 100644 --- a/mm/Kconfig +++ b/mm/Kconfig @@ -226,6 +226,25 @@ config HAVE_MLOCKED_PAGE_BIT config MMU_NOTIFIER bool +config DEFAULT_MMAP_MIN_ADDR + int "Low address space to protect from user allocation" + default 4096 + help + This is the portion of low virtual memory which should be protected + from userspace allocation. Keeping a user from writing to low pages + can help reduce the impact of kernel NULL pointer bugs. + + For most ia64, ppc64 and x86 users with lots of address space + a value of 65536 is reasonable and should cause no problems. + On arm and other archs it should not be higher than 32768. + Programs which use vm86 functionality would either need additional + permissions from either the LSM or the capabilities module or have + this protection disabled. + + This value can be changed after boot using the + /proc/sys/vm/mmap_min_addr tunable. + + config NOMMU_INITIAL_TRIM_EXCESS int "Turn on mmap() excess space trimming before booting" depends on !MMU diff --git a/mm/mmap.c b/mm/mmap.c index 6b7b1a9..2b43fa1 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -87,6 +87,9 @@ int sysctl_overcommit_ratio = 50; /* default is 50% */ int sysctl_max_map_count __read_mostly = DEFAULT_MAX_MAP_COUNT; struct percpu_counter vm_committed_as; +/* amount of vm to protect from userspace access */ +unsigned long mmap_min_addr = CONFIG_DEFAULT_MMAP_MIN_ADDR; + /* * Check that a process has enough memory to allocate a new virtual * mapping. 0 means there is enough memory for the allocation to diff --git a/net/ipv4/arp.c b/net/ipv4/arp.c index f11931c..9c22032 100644 --- a/net/ipv4/arp.c +++ b/net/ipv4/arp.c @@ -801,11 +801,8 @@ static int arp_process(struct sk_buff *skb) * cache. */ - /* - * Special case: IPv4 duplicate address detection packet (RFC2131) - * and Gratuitous ARP/ARP Announce. (RFC3927, Section 2.4) - */ - if (sip == 0 || tip == sip) { + /* Special case: IPv4 duplicate address detection packet (RFC2131) */ + if (sip == 0) { if (arp->ar_op == htons(ARPOP_REQUEST) && inet_addr_type(net, tip) == RTN_LOCAL && !arp_ignore(in_dev, sip, tip)) diff --git a/security/Kconfig b/security/Kconfig index bb24477..d23c839 100644 --- a/security/Kconfig +++ b/security/Kconfig @@ -110,28 +110,8 @@ config SECURITY_ROOTPLUG See <http://www.linuxjournal.com/article.php?sid=6279> for more information about this module. - - If you are unsure how to answer this question, answer N. - -config SECURITY_DEFAULT_MMAP_MIN_ADDR - int "Low address space to protect from user allocation" - depends on SECURITY - default 0 - help - This is the portion of low virtual memory which should be protected - from userspace allocation. Keeping a user from writing to low pages - can help reduce the impact of kernel NULL pointer bugs. - - For most ia64, ppc64 and x86 users with lots of address space - a value of 65536 is reasonable and should cause no problems. - On arm and other archs it should not be higher than 32768. - Programs which use vm86 functionality would either need additional - permissions from either the LSM or the capabilities module or have - this protection disabled. - - This value can be changed after boot using the - /proc/sys/vm/mmap_min_addr tunable. + If you are unsure how to answer this question, answer N. source security/selinux/Kconfig source security/smack/Kconfig diff --git a/security/security.c b/security/security.c index 5284255..dc7674f 100644 --- a/security/security.c +++ b/security/security.c @@ -26,9 +26,6 @@ extern void security_fixup_ops(struct security_operations *ops); struct security_operations *security_ops; /* Initialized to NULL */ -/* amount of vm to protect from userspace access */ -unsigned long mmap_min_addr = CONFIG_SECURITY_DEFAULT_MMAP_MIN_ADDR; - static inline int verify(struct security_operations *ops) { /* verify the security_operations structure exists */ ^ permalink raw reply related [flat|nested] 28+ messages in thread
* Re: Linux 2.6.30.2: does not boot 2009-07-20 4:08 Linux 2.6.30.2 Greg KH 2009-07-20 4:08 ` Greg KH @ 2009-07-20 14:13 ` Wolfgang Walter 2009-07-20 14:38 ` Kiko Piris ` (2 more replies) 1 sibling, 3 replies; 28+ messages in thread From: Wolfgang Walter @ 2009-07-20 14:13 UTC (permalink / raw) To: linux-kernel; +Cc: Greg KH, torvalds Am Montag, 20. Juli 2009 schrieb Greg KH: > I'm announcing the release of the 2.6.30.2 kernel. All users of the > 2.6.30 kernel series are very strongly encouraged to upgrade. > > I'll also be replying to this message with a copy of the patch between > 2.6.30.1 and 2.6.30.2 > > The updated 2.6.30.y git tree can be found at: > > git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-2.6.30.y.git and > can be browsed at the normal kernel.org git web browser: > > http://git.kernel.org/?p=linux/kernel/git/stable/linux-2.6.30.y.git;a=summa >ry > > thanks, > > greg k-h > Built 2.6.30.2 but it hangs when booting immediately after the message: Booting the kernel. I built it with gcc version 4.3.3 on debian/sid and used exactly the same .config as I used with 2.6.32.1 (ok, + "DEFAULT_MMAP_MIN_ADDR 4096" which didn't exist before). Regards, -- Wolfgang Walter Studentenwerk München Anstalt des öffentlichen Rechts Leiter EDV Leopoldstraße 15 80802 München Tel: +49 89 38196 276 Fax: +49 89 38196 150 Email: wolfgang.walter@stwm.de http://www.studentenwerk-muenchen.de/ ^ permalink raw reply [flat|nested] 28+ messages in thread
* Re: Linux 2.6.30.2: does not boot 2009-07-20 14:13 ` Linux 2.6.30.2: does not boot Wolfgang Walter @ 2009-07-20 14:38 ` Kiko Piris 2009-07-20 15:09 ` Greg KH 2009-07-20 20:29 ` Linux 2.6.30.2: does not boot Marcel Beister 2 siblings, 0 replies; 28+ messages in thread From: Kiko Piris @ 2009-07-20 14:38 UTC (permalink / raw) To: Wolfgang Walter; +Cc: linux-kernel, Greg KH, torvalds [-- Attachment #1: Type: text/plain, Size: 783 bytes --] On 20/07/2009 at 16:13 +0200, Wolfgang Walter wrote: > Built 2.6.30.2 but it hangs when booting immediately after the message: > Booting the kernel. Same here, except that in my case it reboots instead of hanging. > I built it with gcc version 4.3.3 on debian/sid and used exactly the > same .config as I used with 2.6.32.1 (ok, + "DEFAULT_MMAP_MIN_ADDR 4096" > which didn't exist before). Same here (except that I used another value: 65536). I’ve tested this on 3 out of 3 diferent boxes (attached is the config of one of them, a thinkpad t60). I don’t know how I could provide some more information, I’m unable to debug a kernel, sorry. But if you want me to test anything (patches or something like that), please let me know. I realy would like to help. -- Kiko [-- Attachment #2: my.config --] [-- Type: text/plain, Size: 26954 bytes --] # grep -i ^config /usr/src/linux-2.6.30.2/.config > my.config CONFIG_X86_32=y CONFIG_X86=y CONFIG_ARCH_DEFCONFIG="arch/x86/configs/i386_defconfig" CONFIG_GENERIC_TIME=y CONFIG_GENERIC_CMOS_UPDATE=y CONFIG_CLOCKSOURCE_WATCHDOG=y CONFIG_GENERIC_CLOCKEVENTS=y CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y CONFIG_LOCKDEP_SUPPORT=y CONFIG_STACKTRACE_SUPPORT=y CONFIG_HAVE_LATENCYTOP_SUPPORT=y CONFIG_FAST_CMPXCHG_LOCAL=y CONFIG_MMU=y CONFIG_ZONE_DMA=y CONFIG_GENERIC_ISA_DMA=y CONFIG_GENERIC_IOMAP=y CONFIG_GENERIC_BUG=y CONFIG_GENERIC_HWEIGHT=y CONFIG_ARCH_MAY_HAVE_PC_FDC=y CONFIG_RWSEM_XCHGADD_ALGORITHM=y CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y CONFIG_GENERIC_CALIBRATE_DELAY=y CONFIG_ARCH_HAS_CPU_RELAX=y CONFIG_ARCH_HAS_DEFAULT_IDLE=y CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y CONFIG_HAVE_SETUP_PER_CPU_AREA=y CONFIG_HAVE_DYNAMIC_PER_CPU_AREA=y CONFIG_ARCH_HIBERNATION_POSSIBLE=y CONFIG_ARCH_SUSPEND_POSSIBLE=y CONFIG_ARCH_POPULATES_NODE_MAP=y CONFIG_ARCH_SUPPORTS_OPTIMIZED_INLINING=y CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y CONFIG_GENERIC_HARDIRQS=y CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y CONFIG_GENERIC_IRQ_PROBE=y CONFIG_GENERIC_PENDING_IRQ=y CONFIG_USE_GENERIC_SMP_HELPERS=y CONFIG_X86_32_SMP=y CONFIG_X86_HT=y CONFIG_X86_TRAMPOLINE=y CONFIG_KTIME_SCALAR=y CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" CONFIG_EXPERIMENTAL=y CONFIG_LOCK_KERNEL=y CONFIG_INIT_ENV_ARG_LIMIT=32 CONFIG_LOCALVERSION="" CONFIG_HAVE_KERNEL_GZIP=y CONFIG_HAVE_KERNEL_BZIP2=y CONFIG_HAVE_KERNEL_LZMA=y CONFIG_KERNEL_GZIP=y CONFIG_SWAP=y CONFIG_SYSVIPC=y CONFIG_SYSVIPC_SYSCTL=y CONFIG_POSIX_MQUEUE=y CONFIG_POSIX_MQUEUE_SYSCTL=y CONFIG_BSD_PROCESS_ACCT=y CONFIG_TASKSTATS=y CONFIG_TASK_DELAY_ACCT=y CONFIG_TASK_XACCT=y CONFIG_TASK_IO_ACCOUNTING=y CONFIG_CLASSIC_RCU=y CONFIG_IKCONFIG=y CONFIG_IKCONFIG_PROC=y CONFIG_LOG_BUF_SHIFT=15 CONFIG_HAVE_UNSTABLE_SCHED_CLOCK=y CONFIG_GROUP_SCHED=y CONFIG_FAIR_GROUP_SCHED=y CONFIG_RT_GROUP_SCHED=y CONFIG_USER_SCHED=y CONFIG_NAMESPACES=y CONFIG_SYSCTL=y CONFIG_ANON_INODES=y CONFIG_UID16=y CONFIG_SYSCTL_SYSCALL=y CONFIG_KALLSYMS=y CONFIG_HOTPLUG=y CONFIG_PRINTK=y CONFIG_BUG=y CONFIG_ELF_CORE=y CONFIG_PCSPKR_PLATFORM=y CONFIG_BASE_FULL=y CONFIG_FUTEX=y CONFIG_EPOLL=y CONFIG_SIGNALFD=y CONFIG_TIMERFD=y CONFIG_EVENTFD=y CONFIG_SHMEM=y CONFIG_AIO=y CONFIG_VM_EVENT_COUNTERS=y CONFIG_PCI_QUIRKS=y CONFIG_SLAB=y CONFIG_HAVE_OPROFILE=y CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y CONFIG_HAVE_IOREMAP_PROT=y CONFIG_HAVE_KPROBES=y CONFIG_HAVE_KRETPROBES=y CONFIG_HAVE_ARCH_TRACEHOOK=y CONFIG_HAVE_DMA_API_DEBUG=y CONFIG_HAVE_GENERIC_DMA_COHERENT=y CONFIG_SLABINFO=y CONFIG_RT_MUTEXES=y CONFIG_BASE_SMALL=0 CONFIG_MODULES=y CONFIG_MODULE_UNLOAD=y CONFIG_STOP_MACHINE=y CONFIG_BLOCK=y CONFIG_LBD=y CONFIG_IOSCHED_NOOP=y CONFIG_IOSCHED_AS=y CONFIG_IOSCHED_DEADLINE=y CONFIG_IOSCHED_CFQ=y CONFIG_DEFAULT_AS=y CONFIG_DEFAULT_IOSCHED="anticipatory" CONFIG_FREEZER=y CONFIG_TICK_ONESHOT=y CONFIG_HIGH_RES_TIMERS=y CONFIG_GENERIC_CLOCKEVENTS_BUILD=y CONFIG_SMP=y CONFIG_X86_MPPARSE=y CONFIG_SCHED_OMIT_FRAME_POINTER=y CONFIG_MPENTIUMM=y CONFIG_X86_CPU=y CONFIG_X86_L1_CACHE_BYTES=64 CONFIG_X86_INTERNODE_CACHE_BYTES=64 CONFIG_X86_CMPXCHG=y CONFIG_X86_L1_CACHE_SHIFT=6 CONFIG_X86_XADD=y CONFIG_X86_WP_WORKS_OK=y CONFIG_X86_INVLPG=y CONFIG_X86_BSWAP=y CONFIG_X86_POPAD_OK=y CONFIG_X86_INTEL_USERCOPY=y CONFIG_X86_USE_PPRO_CHECKSUM=y CONFIG_X86_TSC=y CONFIG_X86_CMOV=y CONFIG_X86_MINIMUM_CPU_FAMILY=4 CONFIG_X86_DEBUGCTLMSR=y CONFIG_CPU_SUP_INTEL=y CONFIG_CPU_SUP_CYRIX_32=y CONFIG_CPU_SUP_AMD=y CONFIG_CPU_SUP_CENTAUR=y CONFIG_CPU_SUP_TRANSMETA_32=y CONFIG_CPU_SUP_UMC_32=y CONFIG_HPET_TIMER=y CONFIG_HPET_EMULATE_RTC=y CONFIG_DMI=y CONFIG_NR_CPUS=8 CONFIG_SCHED_MC=y CONFIG_PREEMPT_VOLUNTARY=y CONFIG_X86_LOCAL_APIC=y CONFIG_X86_IO_APIC=y CONFIG_X86_MCE=y CONFIG_X86_MCE_NONFATAL=y CONFIG_X86_MCE_P4THERMAL=y CONFIG_VM86=y CONFIG_X86_REBOOTFIXUPS=y CONFIG_HIGHMEM4G=y CONFIG_PAGE_OFFSET=0xC0000000 CONFIG_HIGHMEM=y CONFIG_ARCH_FLATMEM_ENABLE=y CONFIG_ARCH_SPARSEMEM_ENABLE=y CONFIG_ARCH_SELECT_MEMORY_MODEL=y CONFIG_SELECT_MEMORY_MODEL=y CONFIG_FLATMEM_MANUAL=y CONFIG_FLATMEM=y CONFIG_FLAT_NODE_MEM_MAP=y CONFIG_SPARSEMEM_STATIC=y CONFIG_PAGEFLAGS_EXTENDED=y CONFIG_SPLIT_PTLOCK_CPUS=4 CONFIG_ZONE_DMA_FLAG=1 CONFIG_BOUNCE=y CONFIG_VIRT_TO_BUS=y CONFIG_UNEVICTABLE_LRU=y CONFIG_HAVE_MLOCK=y CONFIG_HAVE_MLOCKED_PAGE_BIT=y CONFIG_DEFAULT_MMAP_MIN_ADDR=65536 CONFIG_X86_RESERVE_LOW_64K=y CONFIG_MTRR=y CONFIG_X86_PAT=y CONFIG_SECCOMP=y CONFIG_CC_STACKPROTECTOR_ALL=y CONFIG_CC_STACKPROTECTOR=y CONFIG_HZ_250=y CONFIG_HZ=250 CONFIG_SCHED_HRTICK=y CONFIG_PHYSICAL_START=0x100000 CONFIG_PHYSICAL_ALIGN=0x100000 CONFIG_HOTPLUG_CPU=y CONFIG_COMPAT_VDSO=y CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y CONFIG_PM=y CONFIG_PM_SLEEP_SMP=y CONFIG_PM_SLEEP=y CONFIG_SUSPEND=y CONFIG_SUSPEND_FREEZER=y CONFIG_ACPI=y CONFIG_ACPI_SLEEP=y CONFIG_ACPI_PROCFS=y CONFIG_ACPI_PROCFS_POWER=y CONFIG_ACPI_SYSFS_POWER=y CONFIG_ACPI_PROC_EVENT=y CONFIG_ACPI_AC=m CONFIG_ACPI_BATTERY=m CONFIG_ACPI_BUTTON=m CONFIG_ACPI_VIDEO=m CONFIG_ACPI_FAN=m CONFIG_ACPI_DOCK=y CONFIG_ACPI_PROCESSOR=m CONFIG_ACPI_HOTPLUG_CPU=y CONFIG_ACPI_THERMAL=m CONFIG_ACPI_BLACKLIST_YEAR=0 CONFIG_X86_PM_TIMER=y CONFIG_ACPI_CONTAINER=m CONFIG_ACPI_SBS=m CONFIG_X86_APM_BOOT=y CONFIG_APM=y CONFIG_CPU_FREQ=y CONFIG_CPU_FREQ_TABLE=y CONFIG_CPU_FREQ_DEBUG=y CONFIG_CPU_FREQ_STAT=m CONFIG_CPU_FREQ_STAT_DETAILS=y CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y CONFIG_CPU_FREQ_GOV_PERFORMANCE=y CONFIG_CPU_FREQ_GOV_POWERSAVE=m CONFIG_CPU_FREQ_GOV_USERSPACE=y CONFIG_CPU_FREQ_GOV_ONDEMAND=y CONFIG_CPU_FREQ_GOV_CONSERVATIVE=m CONFIG_X86_ACPI_CPUFREQ=m CONFIG_X86_SPEEDSTEP_CENTRINO=m CONFIG_X86_SPEEDSTEP_CENTRINO_TABLE=y CONFIG_X86_SPEEDSTEP_ICH=m CONFIG_X86_SPEEDSTEP_LIB=m CONFIG_CPU_IDLE=y CONFIG_CPU_IDLE_GOV_LADDER=y CONFIG_PCI=y CONFIG_PCI_GOANY=y CONFIG_PCI_BIOS=y CONFIG_PCI_DIRECT=y CONFIG_PCI_MMCONFIG=y CONFIG_PCI_DOMAINS=y CONFIG_PCIEPORTBUS=y CONFIG_HOTPLUG_PCI_PCIE=m CONFIG_PCIEAER=y CONFIG_ARCH_SUPPORTS_MSI=y CONFIG_PCI_LEGACY=y CONFIG_HT_IRQ=y CONFIG_ISA_DMA_API=y CONFIG_ISA=y CONFIG_PCCARD=m CONFIG_PCMCIA_DEBUG=y CONFIG_PCMCIA=m CONFIG_PCMCIA_LOAD_CIS=y CONFIG_PCMCIA_IOCTL=y CONFIG_CARDBUS=y CONFIG_YENTA=m CONFIG_YENTA_O2=y CONFIG_YENTA_RICOH=y CONFIG_YENTA_TI=y CONFIG_YENTA_ENE_TUNE=y CONFIG_YENTA_TOSHIBA=y CONFIG_PCMCIA_PROBE=y CONFIG_PCCARD_NONSTATIC=m CONFIG_HOTPLUG_PCI=m CONFIG_HOTPLUG_PCI_IBM=m CONFIG_HOTPLUG_PCI_ACPI=m CONFIG_HOTPLUG_PCI_ACPI_IBM=m CONFIG_BINFMT_ELF=y CONFIG_HAVE_AOUT=y CONFIG_BINFMT_AOUT=y CONFIG_BINFMT_MISC=y CONFIG_HAVE_ATOMIC_IOMAP=y CONFIG_NET=y CONFIG_PACKET=y CONFIG_UNIX=y CONFIG_XFRM=y CONFIG_XFRM_USER=y CONFIG_XFRM_IPCOMP=y CONFIG_NET_KEY=y CONFIG_INET=y CONFIG_IP_MULTICAST=y CONFIG_IP_FIB_HASH=y CONFIG_SYN_COOKIES=y CONFIG_INET_AH=y CONFIG_INET_ESP=y CONFIG_INET_IPCOMP=y CONFIG_INET_XFRM_TUNNEL=y CONFIG_INET_TUNNEL=y CONFIG_INET_XFRM_MODE_TRANSPORT=y CONFIG_INET_XFRM_MODE_TUNNEL=y CONFIG_INET_XFRM_MODE_BEET=y CONFIG_INET_LRO=y CONFIG_INET_DIAG=y CONFIG_INET_TCP_DIAG=y CONFIG_TCP_CONG_CUBIC=y CONFIG_DEFAULT_TCP_CONG="cubic" CONFIG_IPV6=m CONFIG_IPV6_PRIVACY=y CONFIG_INET6_AH=m CONFIG_INET6_ESP=m CONFIG_INET6_IPCOMP=m CONFIG_INET6_XFRM_TUNNEL=m CONFIG_INET6_TUNNEL=m CONFIG_INET6_XFRM_MODE_TRANSPORT=m CONFIG_INET6_XFRM_MODE_TUNNEL=m CONFIG_INET6_XFRM_MODE_BEET=m CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION=m CONFIG_IPV6_SIT=m CONFIG_IPV6_NDISC_NODETYPE=y CONFIG_IPV6_TUNNEL=m CONFIG_NETFILTER=y CONFIG_NETFILTER_ADVANCED=y CONFIG_BRIDGE_NETFILTER=y CONFIG_NETFILTER_NETLINK=y CONFIG_NETFILTER_NETLINK_QUEUE=y CONFIG_NETFILTER_NETLINK_LOG=y CONFIG_NF_CONNTRACK=y CONFIG_NF_CT_ACCT=y CONFIG_NF_CONNTRACK_MARK=y CONFIG_NF_CONNTRACK_EVENTS=y CONFIG_NF_CT_PROTO_GRE=y CONFIG_NF_CT_PROTO_SCTP=y CONFIG_NF_CT_PROTO_UDPLITE=y CONFIG_NF_CONNTRACK_AMANDA=y CONFIG_NF_CONNTRACK_FTP=y CONFIG_NF_CONNTRACK_H323=m CONFIG_NF_CONNTRACK_IRC=y CONFIG_NF_CONNTRACK_NETBIOS_NS=y CONFIG_NF_CONNTRACK_PPTP=y CONFIG_NF_CONNTRACK_SANE=y CONFIG_NF_CONNTRACK_SIP=y CONFIG_NF_CONNTRACK_TFTP=y CONFIG_NF_CT_NETLINK=y CONFIG_NETFILTER_TPROXY=y CONFIG_NETFILTER_XTABLES=y CONFIG_NETFILTER_XT_TARGET_CLASSIFY=y CONFIG_NETFILTER_XT_TARGET_CONNMARK=y CONFIG_NETFILTER_XT_TARGET_DSCP=y CONFIG_NETFILTER_XT_TARGET_HL=y CONFIG_NETFILTER_XT_TARGET_LED=y CONFIG_NETFILTER_XT_TARGET_MARK=y CONFIG_NETFILTER_XT_TARGET_NFLOG=y CONFIG_NETFILTER_XT_TARGET_NFQUEUE=y CONFIG_NETFILTER_XT_TARGET_NOTRACK=y CONFIG_NETFILTER_XT_TARGET_RATEEST=y CONFIG_NETFILTER_XT_TARGET_TPROXY=y CONFIG_NETFILTER_XT_TARGET_TRACE=y CONFIG_NETFILTER_XT_TARGET_TCPMSS=m CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=y CONFIG_NETFILTER_XT_MATCH_CLUSTER=y CONFIG_NETFILTER_XT_MATCH_COMMENT=y CONFIG_NETFILTER_XT_MATCH_CONNBYTES=y CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=y CONFIG_NETFILTER_XT_MATCH_CONNMARK=y CONFIG_NETFILTER_XT_MATCH_CONNTRACK=y CONFIG_NETFILTER_XT_MATCH_DCCP=y CONFIG_NETFILTER_XT_MATCH_DSCP=y CONFIG_NETFILTER_XT_MATCH_ESP=y CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m CONFIG_NETFILTER_XT_MATCH_HELPER=y CONFIG_NETFILTER_XT_MATCH_HL=y CONFIG_NETFILTER_XT_MATCH_IPRANGE=y CONFIG_NETFILTER_XT_MATCH_LENGTH=y CONFIG_NETFILTER_XT_MATCH_LIMIT=y CONFIG_NETFILTER_XT_MATCH_MAC=y CONFIG_NETFILTER_XT_MATCH_MARK=y CONFIG_NETFILTER_XT_MATCH_MULTIPORT=y CONFIG_NETFILTER_XT_MATCH_OWNER=y CONFIG_NETFILTER_XT_MATCH_POLICY=y CONFIG_NETFILTER_XT_MATCH_PHYSDEV=m CONFIG_NETFILTER_XT_MATCH_PKTTYPE=y CONFIG_NETFILTER_XT_MATCH_QUOTA=y CONFIG_NETFILTER_XT_MATCH_RATEEST=y CONFIG_NETFILTER_XT_MATCH_REALM=y CONFIG_NETFILTER_XT_MATCH_RECENT=y CONFIG_NETFILTER_XT_MATCH_RECENT_PROC_COMPAT=y CONFIG_NETFILTER_XT_MATCH_SCTP=y CONFIG_NETFILTER_XT_MATCH_SOCKET=y CONFIG_NETFILTER_XT_MATCH_STATE=y CONFIG_NETFILTER_XT_MATCH_STATISTIC=y CONFIG_NETFILTER_XT_MATCH_STRING=y CONFIG_NETFILTER_XT_MATCH_TCPMSS=y CONFIG_NETFILTER_XT_MATCH_TIME=y CONFIG_NETFILTER_XT_MATCH_U32=y CONFIG_NF_DEFRAG_IPV4=y CONFIG_NF_CONNTRACK_IPV4=y CONFIG_NF_CONNTRACK_PROC_COMPAT=y CONFIG_IP_NF_QUEUE=y CONFIG_IP_NF_IPTABLES=y CONFIG_IP_NF_MATCH_ADDRTYPE=y CONFIG_IP_NF_MATCH_AH=y CONFIG_IP_NF_MATCH_ECN=y CONFIG_IP_NF_MATCH_TTL=y CONFIG_IP_NF_FILTER=y CONFIG_IP_NF_TARGET_REJECT=y CONFIG_IP_NF_TARGET_LOG=y CONFIG_IP_NF_TARGET_ULOG=y CONFIG_NF_NAT=y CONFIG_NF_NAT_NEEDED=y CONFIG_IP_NF_TARGET_MASQUERADE=y CONFIG_IP_NF_TARGET_NETMAP=y CONFIG_IP_NF_TARGET_REDIRECT=y CONFIG_NF_NAT_SNMP_BASIC=y CONFIG_NF_NAT_PROTO_GRE=y CONFIG_NF_NAT_PROTO_UDPLITE=y CONFIG_NF_NAT_PROTO_SCTP=y CONFIG_NF_NAT_FTP=y CONFIG_NF_NAT_IRC=y CONFIG_NF_NAT_TFTP=y CONFIG_NF_NAT_AMANDA=y CONFIG_NF_NAT_PPTP=y CONFIG_NF_NAT_H323=m CONFIG_NF_NAT_SIP=y CONFIG_IP_NF_MANGLE=y CONFIG_IP_NF_TARGET_CLUSTERIP=y CONFIG_IP_NF_TARGET_ECN=y CONFIG_IP_NF_TARGET_TTL=y CONFIG_IP_NF_RAW=y CONFIG_IP_NF_ARPTABLES=y CONFIG_IP_NF_ARPFILTER=y CONFIG_IP_NF_ARP_MANGLE=y CONFIG_NF_CONNTRACK_IPV6=m CONFIG_IP6_NF_QUEUE=m CONFIG_IP6_NF_IPTABLES=m CONFIG_IP6_NF_MATCH_AH=m CONFIG_IP6_NF_MATCH_EUI64=m CONFIG_IP6_NF_MATCH_FRAG=m CONFIG_IP6_NF_MATCH_OPTS=m CONFIG_IP6_NF_MATCH_HL=m CONFIG_IP6_NF_MATCH_IPV6HEADER=m CONFIG_IP6_NF_MATCH_MH=m CONFIG_IP6_NF_MATCH_RT=m CONFIG_IP6_NF_TARGET_HL=m CONFIG_IP6_NF_TARGET_LOG=m CONFIG_IP6_NF_FILTER=m CONFIG_IP6_NF_TARGET_REJECT=m CONFIG_IP6_NF_MANGLE=m CONFIG_IP6_NF_RAW=m CONFIG_BRIDGE_NF_EBTABLES=m CONFIG_BRIDGE_EBT_BROUTE=m CONFIG_BRIDGE_EBT_T_FILTER=m CONFIG_BRIDGE_EBT_T_NAT=m CONFIG_BRIDGE_EBT_802_3=m CONFIG_BRIDGE_EBT_AMONG=m CONFIG_BRIDGE_EBT_ARP=m CONFIG_BRIDGE_EBT_IP=m CONFIG_BRIDGE_EBT_IP6=m CONFIG_BRIDGE_EBT_LIMIT=m CONFIG_BRIDGE_EBT_MARK=m CONFIG_BRIDGE_EBT_PKTTYPE=m CONFIG_BRIDGE_EBT_STP=m CONFIG_BRIDGE_EBT_VLAN=m CONFIG_BRIDGE_EBT_ARPREPLY=m CONFIG_BRIDGE_EBT_DNAT=m CONFIG_BRIDGE_EBT_MARK_T=m CONFIG_BRIDGE_EBT_REDIRECT=m CONFIG_BRIDGE_EBT_SNAT=m CONFIG_BRIDGE_EBT_LOG=m CONFIG_BRIDGE_EBT_ULOG=m CONFIG_BRIDGE_EBT_NFLOG=m CONFIG_STP=m CONFIG_GARP=m CONFIG_BRIDGE=m CONFIG_VLAN_8021Q=m CONFIG_VLAN_8021Q_GVRP=y CONFIG_LLC=m CONFIG_PHONET=m CONFIG_NET_SCHED=y CONFIG_NET_SCH_CBQ=y CONFIG_NET_SCH_HTB=y CONFIG_NET_SCH_HFSC=y CONFIG_NET_SCH_PRIO=y CONFIG_NET_SCH_MULTIQ=y CONFIG_NET_SCH_RED=y CONFIG_NET_SCH_SFQ=y CONFIG_NET_SCH_TEQL=y CONFIG_NET_SCH_TBF=y CONFIG_NET_SCH_GRED=y CONFIG_NET_SCH_DSMARK=y CONFIG_NET_SCH_NETEM=y CONFIG_NET_SCH_DRR=y CONFIG_NET_SCH_INGRESS=y CONFIG_NET_CLS=y CONFIG_NET_CLS_BASIC=y CONFIG_NET_CLS_TCINDEX=y CONFIG_NET_CLS_ROUTE4=y CONFIG_NET_CLS_ROUTE=y CONFIG_NET_CLS_FW=y CONFIG_NET_CLS_U32=y CONFIG_CLS_U32_PERF=y CONFIG_CLS_U32_MARK=y CONFIG_NET_CLS_RSVP=y CONFIG_NET_CLS_RSVP6=y CONFIG_NET_CLS_FLOW=y CONFIG_NET_EMATCH=y CONFIG_NET_EMATCH_STACK=32 CONFIG_NET_EMATCH_CMP=y CONFIG_NET_EMATCH_NBYTE=y CONFIG_NET_EMATCH_U32=y CONFIG_NET_EMATCH_META=y CONFIG_NET_EMATCH_TEXT=y CONFIG_NET_CLS_ACT=y CONFIG_NET_ACT_POLICE=y CONFIG_NET_ACT_GACT=y CONFIG_GACT_PROB=y CONFIG_NET_ACT_MIRRED=y CONFIG_NET_ACT_IPT=y CONFIG_NET_ACT_PEDIT=y CONFIG_NET_ACT_SIMP=y CONFIG_NET_CLS_IND=y CONFIG_NET_SCH_FIFO=y CONFIG_IRDA=m CONFIG_IRLAN=m CONFIG_IRNET=m CONFIG_IRCOMM=m CONFIG_IRDA_ULTRA=y CONFIG_IRDA_CACHE_LAST_LSAP=y CONFIG_IRDA_FAST_RR=y CONFIG_IRDA_DEBUG=y CONFIG_IRTTY_SIR=m CONFIG_NSC_FIR=m CONFIG_BT=m CONFIG_BT_L2CAP=m CONFIG_BT_SCO=m CONFIG_BT_RFCOMM=m CONFIG_BT_RFCOMM_TTY=y CONFIG_BT_BNEP=m CONFIG_BT_BNEP_MC_FILTER=y CONFIG_BT_BNEP_PROTO_FILTER=y CONFIG_BT_HIDP=m CONFIG_BT_HCIBTUSB=m CONFIG_WIRELESS=y CONFIG_CFG80211=m CONFIG_WIRELESS_OLD_REGULATORY=y CONFIG_WIRELESS_EXT=y CONFIG_WIRELESS_EXT_SYSFS=y CONFIG_LIB80211=m CONFIG_LIB80211_CRYPT_WEP=m CONFIG_LIB80211_CRYPT_CCMP=m CONFIG_LIB80211_CRYPT_TKIP=m CONFIG_MAC80211=m CONFIG_MAC80211_RC_MINSTREL=y CONFIG_MAC80211_RC_DEFAULT_MINSTREL=y CONFIG_MAC80211_RC_DEFAULT="minstrel" CONFIG_MAC80211_LEDS=y CONFIG_RFKILL=m CONFIG_RFKILL_INPUT=m CONFIG_RFKILL_LEDS=y CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" CONFIG_STANDALONE=y CONFIG_PREVENT_FIRMWARE_BUILD=y CONFIG_FW_LOADER=y CONFIG_FIRMWARE_IN_KERNEL=y CONFIG_EXTRA_FIRMWARE="" CONFIG_CONNECTOR=m CONFIG_PARPORT=m CONFIG_PARPORT_PC=m CONFIG_PNP=y CONFIG_PNP_DEBUG_MESSAGES=y CONFIG_ISAPNP=y CONFIG_PNPBIOS=y CONFIG_PNPACPI=y CONFIG_BLK_DEV=y CONFIG_BLK_DEV_FD=y CONFIG_BLK_DEV_LOOP=m CONFIG_BLK_DEV_CRYPTOLOOP=m CONFIG_CDROM_PKTCDVD=m CONFIG_CDROM_PKTCDVD_BUFFERS=8 CONFIG_MISC_DEVICES=y CONFIG_TIFM_CORE=m CONFIG_TIFM_7XX1=m CONFIG_HAVE_IDE=y CONFIG_IDE=y CONFIG_IDE_XFER_MODE=y CONFIG_IDE_TIMINGS=y CONFIG_IDE_ATAPI=y CONFIG_IDE_GD=y CONFIG_IDE_GD_ATA=y CONFIG_BLK_DEV_IDECS=m CONFIG_BLK_DEV_IDECD=y CONFIG_BLK_DEV_IDECD_VERBOSE_ERRORS=y CONFIG_IDE_PROC_FS=y CONFIG_IDE_GENERIC=m CONFIG_BLK_DEV_CMD640=y CONFIG_BLK_DEV_IDEDMA_SFF=y CONFIG_BLK_DEV_IDEPCI=y CONFIG_IDEPCI_PCIBUS_ORDER=y CONFIG_BLK_DEV_RZ1000=y CONFIG_BLK_DEV_IDEDMA_PCI=y CONFIG_BLK_DEV_PIIX=y CONFIG_BLK_DEV_IDEDMA=y CONFIG_RAID_ATTRS=m CONFIG_SCSI=y CONFIG_SCSI_DMA=y CONFIG_SCSI_TGT=m CONFIG_SCSI_PROC_FS=y CONFIG_BLK_DEV_SD=y CONFIG_BLK_DEV_SR=y CONFIG_BLK_DEV_SR_VENDOR=y CONFIG_CHR_DEV_SG=y CONFIG_SCSI_CONSTANTS=y CONFIG_SCSI_WAIT_SCAN=m CONFIG_SCSI_LOWLEVEL=y CONFIG_ATA=y CONFIG_ATA_ACPI=y CONFIG_SATA_AHCI=y CONFIG_MD=y CONFIG_BLK_DEV_MD=m CONFIG_MD_LINEAR=m CONFIG_MD_RAID0=m CONFIG_MD_RAID1=m CONFIG_MD_RAID10=m CONFIG_MD_RAID456=m CONFIG_MD_RAID6_PQ=m CONFIG_MD_MULTIPATH=m CONFIG_MD_FAULTY=m CONFIG_BLK_DEV_DM=m CONFIG_DM_CRYPT=m CONFIG_DM_SNAPSHOT=m CONFIG_DM_MIRROR=m CONFIG_DM_ZERO=m CONFIG_DM_MULTIPATH=m CONFIG_FIREWIRE=m CONFIG_FIREWIRE_OHCI=m CONFIG_FIREWIRE_OHCI_DEBUG=y CONFIG_FIREWIRE_SBP2=m CONFIG_IEEE1394=m CONFIG_IEEE1394_OHCI1394=m CONFIG_IEEE1394_PCILYNX=m CONFIG_IEEE1394_SBP2=m CONFIG_IEEE1394_SBP2_PHYS_DMA=y CONFIG_IEEE1394_RAWIO=m CONFIG_IEEE1394_VIDEO1394=m CONFIG_IEEE1394_DV1394=m CONFIG_I2O=m CONFIG_I2O_LCT_NOTIFY_ON_CHANGES=y CONFIG_I2O_EXT_ADAPTEC=y CONFIG_I2O_BLOCK=m CONFIG_I2O_PROC=m CONFIG_NETDEVICES=y CONFIG_COMPAT_NET_DEV_OPS=y CONFIG_DUMMY=m CONFIG_MACVLAN=m CONFIG_TUN=m CONFIG_VETH=m CONFIG_NET_ETHERNET=y CONFIG_MII=y CONFIG_NETDEV_1000=y CONFIG_E1000E=m CONFIG_NETDEV_10000=y CONFIG_CHELSIO_T3_DEPENDS=y CONFIG_WLAN_80211=y CONFIG_IWLWIFI=m CONFIG_IWLWIFI_LEDS=y CONFIG_IWLWIFI_RFKILL=y CONFIG_IWLWIFI_SPECTRUM_MEASUREMENT=y CONFIG_IWLAGN=m CONFIG_IWL3945=m CONFIG_IWL3945_SPECTRUM_MEASUREMENT=y CONFIG_HOSTAP=m CONFIG_HOSTAP_FIRMWARE=y CONFIG_USB_HSO=m CONFIG_PPP=m CONFIG_PPP_FILTER=y CONFIG_PPP_ASYNC=m CONFIG_PPP_SYNC_TTY=m CONFIG_PPP_DEFLATE=m CONFIG_PPP_BSDCOMP=m CONFIG_PPP_MPPE=m CONFIG_SLIP=m CONFIG_SLIP_COMPRESSED=y CONFIG_SLHC=m CONFIG_SLIP_SMART=y CONFIG_NETCONSOLE=m CONFIG_NETPOLL=y CONFIG_NET_POLL_CONTROLLER=y CONFIG_INPUT=y CONFIG_INPUT_POLLDEV=m CONFIG_INPUT_MOUSEDEV=y CONFIG_INPUT_MOUSEDEV_PSAUX=y CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024 CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 CONFIG_INPUT_JOYDEV=m CONFIG_INPUT_EVDEV=y CONFIG_INPUT_KEYBOARD=y CONFIG_KEYBOARD_ATKBD=y CONFIG_INPUT_MOUSE=y CONFIG_MOUSE_PS2=y CONFIG_MOUSE_PS2_ALPS=y CONFIG_MOUSE_PS2_LOGIPS2PP=y CONFIG_MOUSE_PS2_SYNAPTICS=y CONFIG_MOUSE_PS2_LIFEBOOK=y CONFIG_MOUSE_PS2_TRACKPOINT=y CONFIG_INPUT_JOYSTICK=y CONFIG_JOYSTICK_IFORCE=m CONFIG_JOYSTICK_IFORCE_USB=y CONFIG_JOYSTICK_GAMECON=m CONFIG_INPUT_MISC=y CONFIG_INPUT_PCSPKR=y CONFIG_INPUT_UINPUT=m CONFIG_SERIO=y CONFIG_SERIO_I8042=y CONFIG_SERIO_SERPORT=m CONFIG_SERIO_LIBPS2=y CONFIG_VT=y CONFIG_CONSOLE_TRANSLATIONS=y CONFIG_VT_CONSOLE=y CONFIG_HW_CONSOLE=y CONFIG_SERIAL_8250=y CONFIG_SERIAL_8250_CONSOLE=y CONFIG_FIX_EARLYCON_MEM=y CONFIG_SERIAL_8250_PCI=y CONFIG_SERIAL_8250_PNP=y CONFIG_SERIAL_8250_NR_UARTS=4 CONFIG_SERIAL_8250_RUNTIME_UARTS=1 CONFIG_SERIAL_CORE=y CONFIG_SERIAL_CORE_CONSOLE=y CONFIG_UNIX98_PTYS=y CONFIG_PRINTER=m CONFIG_NVRAM=m CONFIG_RTC=y CONFIG_MWAVE=m CONFIG_RAW_DRIVER=m CONFIG_MAX_RAW_DEVS=256 CONFIG_HANGCHECK_TIMER=m CONFIG_TCG_TPM=m CONFIG_TCG_TIS=m CONFIG_TCG_NSC=m CONFIG_TCG_ATMEL=m CONFIG_TCG_INFINEON=m CONFIG_DEVPORT=y CONFIG_I2C=m CONFIG_I2C_BOARDINFO=y CONFIG_I2C_CHARDEV=m CONFIG_I2C_HELPER_AUTO=y CONFIG_I2C_ALGOBIT=m CONFIG_I2C_I801=m CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y CONFIG_POWER_SUPPLY=y CONFIG_HWMON=y CONFIG_HWMON_VID=m CONFIG_SENSORS_LM63=m CONFIG_SENSORS_LM75=m CONFIG_SENSORS_LM77=m CONFIG_SENSORS_LM78=m CONFIG_SENSORS_LM80=m CONFIG_SENSORS_LM83=m CONFIG_SENSORS_LM85=m CONFIG_SENSORS_LM87=m CONFIG_SENSORS_LM90=m CONFIG_SENSORS_LM92=m CONFIG_SENSORS_LM93=m CONFIG_SENSORS_HDAPS=m CONFIG_THERMAL=y CONFIG_SSB_POSSIBLE=y CONFIG_VIDEO_DEV=m CONFIG_VIDEO_V4L2_COMMON=m CONFIG_DVB_CORE=m CONFIG_VIDEO_MEDIA=m CONFIG_MEDIA_ATTACH=y CONFIG_MEDIA_TUNER=m CONFIG_MEDIA_TUNER_SIMPLE=m CONFIG_MEDIA_TUNER_TDA8290=m CONFIG_MEDIA_TUNER_TDA9887=m CONFIG_MEDIA_TUNER_TEA5761=m CONFIG_MEDIA_TUNER_TEA5767=m CONFIG_MEDIA_TUNER_MT20XX=m CONFIG_MEDIA_TUNER_MT2060=m CONFIG_MEDIA_TUNER_XC2028=m CONFIG_MEDIA_TUNER_XC5000=m CONFIG_MEDIA_TUNER_MC44S803=m CONFIG_VIDEO_V4L2=m CONFIG_VIDEOBUF_GEN=m CONFIG_VIDEOBUF_DMA_SG=m CONFIG_VIDEO_BTCX=m CONFIG_VIDEO_IR=m CONFIG_VIDEO_TVEEPROM=m CONFIG_VIDEO_TUNER=m CONFIG_VIDEO_CAPTURE_DRIVERS=y CONFIG_VIDEO_HELPER_CHIPS_AUTO=y CONFIG_VIDEO_IR_I2C=m CONFIG_VIDEO_TVAUDIO=m CONFIG_VIDEO_TDA7432=m CONFIG_VIDEO_MSP3400=m CONFIG_VIDEO_SAA6588=m CONFIG_VIDEO_BT848=m CONFIG_V4L_USB_DRIVERS=y CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV=y CONFIG_USB_PWC_INPUT_EVDEV=y CONFIG_DVB_CAPTURE_DRIVERS=y CONFIG_DVB_USB=m CONFIG_DVB_USB_DIBUSB_MB=m CONFIG_DVB_USB_DIBUSB_MC=m CONFIG_DVB_USB_NOVA_T_USB2=m CONFIG_DVB_TTUSB_BUDGET=m CONFIG_DVB_BT8XX=m CONFIG_DVB_CX24110=m CONFIG_DVB_STV0299=m CONFIG_DVB_TDA8083=m CONFIG_DVB_SP887X=m CONFIG_DVB_CX22700=m CONFIG_DVB_TDA1004X=m CONFIG_DVB_NXT6000=m CONFIG_DVB_MT352=m CONFIG_DVB_ZL10353=m CONFIG_DVB_DIB3000MB=m CONFIG_DVB_DIB3000MC=m CONFIG_DVB_VES1820=m CONFIG_DVB_STV0297=m CONFIG_DVB_OR51211=m CONFIG_DVB_LGDT330X=m CONFIG_DVB_PLL=m CONFIG_DVB_LNBP21=m CONFIG_AGP=m CONFIG_AGP_INTEL=m CONFIG_DRM=m CONFIG_DRM_RADEON=m CONFIG_VIDEO_OUTPUT_CONTROL=m CONFIG_FB=y CONFIG_FIRMWARE_EDID=y CONFIG_FB_BOOT_VESA_SUPPORT=y CONFIG_FB_CFB_FILLRECT=y CONFIG_FB_CFB_COPYAREA=y CONFIG_FB_CFB_IMAGEBLIT=y CONFIG_FB_BACKLIGHT=y CONFIG_FB_MODE_HELPERS=y CONFIG_FB_VESA=y CONFIG_FB_RADEON=y CONFIG_FB_RADEON_BACKLIGHT=y CONFIG_BACKLIGHT_LCD_SUPPORT=y CONFIG_LCD_CLASS_DEVICE=m CONFIG_BACKLIGHT_CLASS_DEVICE=y CONFIG_BACKLIGHT_GENERIC=y CONFIG_VGA_CONSOLE=y CONFIG_DUMMY_CONSOLE=y CONFIG_FRAMEBUFFER_CONSOLE=y CONFIG_FONT_8x8=y CONFIG_FONT_8x16=y CONFIG_SOUND=m CONFIG_SOUND_OSS_CORE=y CONFIG_SND=m CONFIG_SND_TIMER=m CONFIG_SND_PCM=m CONFIG_SND_HWDEP=m CONFIG_SND_RAWMIDI=m CONFIG_SND_JACK=y CONFIG_SND_SEQUENCER=m CONFIG_SND_SEQ_DUMMY=m CONFIG_SND_OSSEMUL=y CONFIG_SND_MIXER_OSS=m CONFIG_SND_PCM_OSS=m CONFIG_SND_PCM_OSS_PLUGINS=y CONFIG_SND_SEQUENCER_OSS=y CONFIG_SND_RTCTIMER=m CONFIG_SND_SEQ_RTCTIMER_DEFAULT=y CONFIG_SND_SUPPORT_OLD_API=y CONFIG_SND_VERBOSE_PROCFS=y CONFIG_SND_VMASTER=y CONFIG_SND_DRIVERS=y CONFIG_SND_DUMMY=m CONFIG_SND_VIRMIDI=m CONFIG_SND_ISA=y CONFIG_SND_PCI=y CONFIG_SND_HDA_INTEL=m CONFIG_SND_HDA_HWDEP=y CONFIG_SND_HDA_INPUT_BEEP=y CONFIG_SND_HDA_CODEC_ANALOG=y CONFIG_SND_HDA_GENERIC=y CONFIG_SND_HDA_POWER_SAVE=y CONFIG_SND_HDA_POWER_SAVE_DEFAULT=0 CONFIG_SND_USB=y CONFIG_HID_SUPPORT=y CONFIG_HID=y CONFIG_HIDRAW=y CONFIG_USB_HID=m CONFIG_HID_A4TECH=m CONFIG_HID_APPLE=m CONFIG_HID_BELKIN=m CONFIG_HID_CHERRY=m CONFIG_HID_CHICONY=m CONFIG_HID_CYPRESS=m CONFIG_HID_EZKEY=m CONFIG_HID_KYE=m CONFIG_HID_GYRATION=m CONFIG_HID_KENSINGTON=m CONFIG_HID_LOGITECH=m CONFIG_HID_MICROSOFT=m CONFIG_HID_MONTEREY=m CONFIG_HID_NTRIG=m CONFIG_HID_PANTHERLORD=m CONFIG_HID_PETALYNX=m CONFIG_HID_SAMSUNG=m CONFIG_HID_SONY=m CONFIG_HID_SUNPLUS=m CONFIG_HID_TOPSEED=m CONFIG_USB_SUPPORT=y CONFIG_USB_ARCH_HAS_HCD=y CONFIG_USB_ARCH_HAS_OHCI=y CONFIG_USB_ARCH_HAS_EHCI=y CONFIG_USB=m CONFIG_USB_DEBUG=y CONFIG_USB_DEVICEFS=y CONFIG_USB_DEVICE_CLASS=y CONFIG_USB_EHCI_HCD=m CONFIG_USB_EHCI_ROOT_HUB_TT=y CONFIG_USB_OHCI_HCD=m CONFIG_USB_OHCI_LITTLE_ENDIAN=y CONFIG_USB_UHCI_HCD=m CONFIG_USB_ACM=m CONFIG_USB_PRINTER=m CONFIG_USB_STORAGE=m CONFIG_USB_SERIAL=m CONFIG_USB_SERIAL_GENERIC=y CONFIG_USB_SERIAL_FTDI_SIO=m CONFIG_USB_SERIAL_VISOR=m CONFIG_USB_SERIAL_GARMIN=m CONFIG_USB_SERIAL_NAVMAN=m CONFIG_USB_SERIAL_PL2303=m CONFIG_USB_SERIAL_OPTION=m CONFIG_USB_BERRY_CHARGE=m CONFIG_MEMSTICK=m CONFIG_MSPRO_BLOCK=m CONFIG_NEW_LEDS=y CONFIG_LEDS_CLASS=y CONFIG_LEDS_TRIGGERS=y CONFIG_LEDS_TRIGGER_TIMER=y CONFIG_LEDS_TRIGGER_IDE_DISK=y CONFIG_LEDS_TRIGGER_HEARTBEAT=y CONFIG_LEDS_TRIGGER_DEFAULT_ON=y CONFIG_AUXDISPLAY=y CONFIG_X86_PLATFORM_DEVICES=y CONFIG_THINKPAD_ACPI=m CONFIG_THINKPAD_ACPI_BAY=y CONFIG_THINKPAD_ACPI_VIDEO=y CONFIG_THINKPAD_ACPI_HOTKEY_POLL=y CONFIG_FIRMWARE_MEMMAP=y CONFIG_DMIID=y CONFIG_EXT2_FS=y CONFIG_EXT3_FS=y CONFIG_EXT4_FS=y CONFIG_JBD=y CONFIG_JBD2=y CONFIG_REISERFS_FS=m CONFIG_REISERFS_PROC_INFO=y CONFIG_JFS_FS=m CONFIG_FS_POSIX_ACL=y CONFIG_XFS_FS=y CONFIG_FILE_LOCKING=y CONFIG_DNOTIFY=y CONFIG_INOTIFY=y CONFIG_INOTIFY_USER=y CONFIG_FUSE_FS=m CONFIG_ISO9660_FS=m CONFIG_JOLIET=y CONFIG_ZISOFS=y CONFIG_UDF_FS=m CONFIG_UDF_NLS=y CONFIG_FAT_FS=m CONFIG_MSDOS_FS=m CONFIG_VFAT_FS=m CONFIG_FAT_DEFAULT_CODEPAGE=437 CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" CONFIG_NTFS_FS=m CONFIG_PROC_FS=y CONFIG_PROC_KCORE=y CONFIG_PROC_SYSCTL=y CONFIG_PROC_PAGE_MONITOR=y CONFIG_SYSFS=y CONFIG_TMPFS=y CONFIG_MISC_FILESYSTEMS=y CONFIG_HFS_FS=m CONFIG_HFSPLUS_FS=m CONFIG_CRAMFS=m CONFIG_SQUASHFS=m CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3 CONFIG_HPFS_FS=m CONFIG_UFS_FS=m CONFIG_NETWORK_FILESYSTEMS=y CONFIG_NFS_FS=m CONFIG_NFS_V3=y CONFIG_NFS_V4=y CONFIG_NFSD=m CONFIG_NFSD_V3=y CONFIG_NFSD_V4=y CONFIG_LOCKD=m CONFIG_LOCKD_V4=y CONFIG_EXPORTFS=y CONFIG_NFS_COMMON=y CONFIG_SUNRPC=m CONFIG_SUNRPC_GSS=m CONFIG_RPCSEC_GSS_KRB5=m CONFIG_SMB_FS=m CONFIG_SMB_NLS_DEFAULT=y CONFIG_SMB_NLS_REMOTE="" CONFIG_CIFS=m CONFIG_CIFS_STATS=y CONFIG_CODA_FS=m CONFIG_PARTITION_ADVANCED=y CONFIG_MAC_PARTITION=y CONFIG_MSDOS_PARTITION=y CONFIG_LDM_PARTITION=y CONFIG_NLS=y CONFIG_NLS_DEFAULT="utf8" CONFIG_NLS_CODEPAGE_437=y CONFIG_NLS_CODEPAGE_850=y CONFIG_NLS_ASCII=y CONFIG_NLS_ISO8859_1=y CONFIG_NLS_ISO8859_15=y CONFIG_NLS_UTF8=y CONFIG_TRACE_IRQFLAGS_SUPPORT=y CONFIG_PRINTK_TIME=y CONFIG_ENABLE_WARN_DEPRECATED=y CONFIG_ENABLE_MUST_CHECK=y CONFIG_FRAME_WARN=1024 CONFIG_MAGIC_SYSRQ=y CONFIG_UNUSED_SYMBOLS=y CONFIG_DEBUG_FS=y CONFIG_DEBUG_BUGVERBOSE=y CONFIG_DEBUG_MEMORY_INIT=y CONFIG_ARCH_WANT_FRAME_POINTERS=y CONFIG_FRAME_POINTER=y CONFIG_SYSCTL_SYSCALL_CHECK=y CONFIG_USER_STACKTRACE_SUPPORT=y CONFIG_HAVE_FUNCTION_TRACER=y CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y CONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST=y CONFIG_HAVE_DYNAMIC_FTRACE=y CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y CONFIG_HAVE_FTRACE_SYSCALLS=y CONFIG_TRACING_SUPPORT=y CONFIG_HAVE_ARCH_KGDB=y CONFIG_STRICT_DEVMEM=y CONFIG_X86_VERBOSE_BOOTUP=y CONFIG_EARLY_PRINTK=y CONFIG_DOUBLEFAULT=y CONFIG_HAVE_MMIOTRACE_SUPPORT=y CONFIG_IO_DELAY_TYPE_0X80=0 CONFIG_IO_DELAY_TYPE_0XED=1 CONFIG_IO_DELAY_TYPE_UDELAY=2 CONFIG_IO_DELAY_TYPE_NONE=3 CONFIG_IO_DELAY_0X80=y CONFIG_DEFAULT_IO_DELAY_TYPE=0 CONFIG_SECURITYFS=y CONFIG_XOR_BLOCKS=m CONFIG_ASYNC_CORE=m CONFIG_ASYNC_MEMCPY=m CONFIG_ASYNC_XOR=m CONFIG_CRYPTO=y CONFIG_CRYPTO_FIPS=y CONFIG_CRYPTO_ALGAPI=y CONFIG_CRYPTO_ALGAPI2=y CONFIG_CRYPTO_AEAD=y CONFIG_CRYPTO_AEAD2=y CONFIG_CRYPTO_BLKCIPHER=y CONFIG_CRYPTO_BLKCIPHER2=y CONFIG_CRYPTO_HASH=y CONFIG_CRYPTO_HASH2=y CONFIG_CRYPTO_RNG=m CONFIG_CRYPTO_RNG2=y CONFIG_CRYPTO_PCOMP=y CONFIG_CRYPTO_MANAGER=y CONFIG_CRYPTO_MANAGER2=y CONFIG_CRYPTO_GF128MUL=m CONFIG_CRYPTO_NULL=m CONFIG_CRYPTO_WORKQUEUE=y CONFIG_CRYPTO_CRYPTD=m CONFIG_CRYPTO_AUTHENC=y CONFIG_CRYPTO_TEST=m CONFIG_CRYPTO_CCM=m CONFIG_CRYPTO_GCM=m CONFIG_CRYPTO_SEQIV=m CONFIG_CRYPTO_CBC=y CONFIG_CRYPTO_CTR=m CONFIG_CRYPTO_CTS=m CONFIG_CRYPTO_ECB=m CONFIG_CRYPTO_LRW=m CONFIG_CRYPTO_PCBC=m CONFIG_CRYPTO_XTS=m CONFIG_CRYPTO_HMAC=y CONFIG_CRYPTO_XCBC=m CONFIG_CRYPTO_CRC32C=y CONFIG_CRYPTO_CRC32C_INTEL=m CONFIG_CRYPTO_MD4=m CONFIG_CRYPTO_MD5=y CONFIG_CRYPTO_MICHAEL_MIC=m CONFIG_CRYPTO_RMD128=m CONFIG_CRYPTO_RMD160=m CONFIG_CRYPTO_RMD256=m CONFIG_CRYPTO_RMD320=m CONFIG_CRYPTO_SHA1=y CONFIG_CRYPTO_SHA256=m CONFIG_CRYPTO_SHA512=m CONFIG_CRYPTO_TGR192=m CONFIG_CRYPTO_WP512=m CONFIG_CRYPTO_AES=m CONFIG_CRYPTO_AES_586=m CONFIG_CRYPTO_ANUBIS=m CONFIG_CRYPTO_ARC4=m CONFIG_CRYPTO_BLOWFISH=m CONFIG_CRYPTO_CAMELLIA=m CONFIG_CRYPTO_CAST5=m CONFIG_CRYPTO_CAST6=m CONFIG_CRYPTO_DES=y CONFIG_CRYPTO_FCRYPT=m CONFIG_CRYPTO_KHAZAD=m CONFIG_CRYPTO_SALSA20=m CONFIG_CRYPTO_SALSA20_586=m CONFIG_CRYPTO_SEED=m CONFIG_CRYPTO_SERPENT=m CONFIG_CRYPTO_TEA=m CONFIG_CRYPTO_TWOFISH=m CONFIG_CRYPTO_TWOFISH_COMMON=m CONFIG_CRYPTO_TWOFISH_586=m CONFIG_CRYPTO_DEFLATE=y CONFIG_CRYPTO_ZLIB=y CONFIG_CRYPTO_LZO=m CONFIG_CRYPTO_ANSI_CPRNG=m CONFIG_CRYPTO_HW=y CONFIG_HAVE_KVM=y CONFIG_HAVE_KVM_IRQCHIP=y CONFIG_BITREVERSE=y CONFIG_GENERIC_FIND_FIRST_BIT=y CONFIG_GENERIC_FIND_NEXT_BIT=y CONFIG_GENERIC_FIND_LAST_BIT=y CONFIG_CRC_CCITT=m CONFIG_CRC16=y CONFIG_CRC_T10DIF=m CONFIG_CRC_ITU_T=m CONFIG_CRC32=y CONFIG_CRC7=m CONFIG_LIBCRC32C=y CONFIG_ZLIB_INFLATE=y CONFIG_ZLIB_DEFLATE=y CONFIG_LZO_COMPRESS=m CONFIG_LZO_DECOMPRESS=m CONFIG_TEXTSEARCH=y CONFIG_TEXTSEARCH_KMP=y CONFIG_TEXTSEARCH_BM=y CONFIG_TEXTSEARCH_FSM=y CONFIG_HAS_IOMEM=y CONFIG_HAS_IOPORT=y CONFIG_HAS_DMA=y CONFIG_NLATTR=y ^ permalink raw reply [flat|nested] 28+ messages in thread
* Re: Linux 2.6.30.2: does not boot 2009-07-20 14:13 ` Linux 2.6.30.2: does not boot Wolfgang Walter 2009-07-20 14:38 ` Kiko Piris @ 2009-07-20 15:09 ` Greg KH 2009-07-20 18:03 ` Damien Wyart 2009-07-20 20:29 ` Linux 2.6.30.2: does not boot Marcel Beister 2 siblings, 1 reply; 28+ messages in thread From: Greg KH @ 2009-07-20 15:09 UTC (permalink / raw) To: Wolfgang Walter; +Cc: linux-kernel, torvalds On Mon, Jul 20, 2009 at 04:13:22PM +0200, Wolfgang Walter wrote: > Am Montag, 20. Juli 2009 schrieb Greg KH: > > I'm announcing the release of the 2.6.30.2 kernel. All users of the > > 2.6.30 kernel series are very strongly encouraged to upgrade. > > > > I'll also be replying to this message with a copy of the patch between > > 2.6.30.1 and 2.6.30.2 > > > > The updated 2.6.30.y git tree can be found at: > > > > git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-2.6.30.y.git and > > can be browsed at the normal kernel.org git web browser: > > > > http://git.kernel.org/?p=linux/kernel/git/stable/linux-2.6.30.y.git;a=summa > >ry > > > > thanks, > > > > greg k-h > > > > Built 2.6.30.2 but it hangs when booting immediately after the message: > > Booting the kernel. > > I built it with gcc version 4.3.3 on debian/sid and used exactly the > same .config as I used with 2.6.32.1 (ok, + "DEFAULT_MMAP_MIN_ADDR 4096" > which didn't exist before). Can you do 'git bisect' to see which patch caused the problem? It might be the one, "Don't use '-fwrapv' compiler option: it's buggy in gcc-4.1.x", but it would be good to figure it out for sure. thanks, greg k-h ^ permalink raw reply [flat|nested] 28+ messages in thread
* Re: Linux 2.6.30.2: does not boot 2009-07-20 15:09 ` Greg KH @ 2009-07-20 18:03 ` Damien Wyart 2009-07-20 18:16 ` Linus Torvalds ` (2 more replies) 0 siblings, 3 replies; 28+ messages in thread From: Damien Wyart @ 2009-07-20 18:03 UTC (permalink / raw) To: Greg KH; +Cc: Wolfgang Walter, linux-kernel, torvalds > > Built 2.6.30.2 but it hangs when booting immediately after the message: > > Booting the kernel. > > I built it with gcc version 4.3.3 on debian/sid and used exactly the > > same .config as I used with 2.6.32.1 (ok, + "DEFAULT_MMAP_MIN_ADDR > > 4096" which didn't exist before). * Greg KH <gregkh@suse.de> [2009-07-20 08:09]: > Can you do 'git bisect' to see which patch caused the problem? It > might be the one, "Don't use '-fwrapv' compiler option: it's buggy in > gcc-4.1.x", but it would be good to figure it out for sure. I am seeing a similar problem (no hang but an immediate reboot) on the same distro. I tried to bisect but got no good kernel in the end. To clarify things I recompiled again 2.6.30.1 with the orginial .config and it also failed to boot (I was happy to have renamed it so the working kernel was still available). I suspected a recent gcc 4.3 upgrade so downgraded gcc, but no luck, still getting the same problem. So for now I am quite stuck, but there is clearly a bad problem somewhere... -- Damien Wyart ^ permalink raw reply [flat|nested] 28+ messages in thread
* Re: Linux 2.6.30.2: does not boot 2009-07-20 18:03 ` Damien Wyart @ 2009-07-20 18:16 ` Linus Torvalds 2009-07-20 18:21 ` Sam Ravnborg ` (2 more replies) 2009-07-20 19:23 ` Alejandro Riveira Fernández 2009-07-20 19:29 ` Kiko Piris 2 siblings, 3 replies; 28+ messages in thread From: Linus Torvalds @ 2009-07-20 18:16 UTC (permalink / raw) To: Damien Wyart; +Cc: Greg KH, Wolfgang Walter, linux-kernel On Mon, 20 Jul 2009, Damien Wyart wrote: > > I am seeing a similar problem (no hang but an immediate reboot) on the > same distro. I tried to bisect but got no good kernel in the end. > > To clarify things I recompiled again 2.6.30.1 with the orginial .config > and it also failed to boot (I was happy to have renamed it so the > working kernel was still available). I suspected a recent gcc 4.3 > upgrade so downgraded gcc, but no luck, still getting the same problem. > So for now I am quite stuck, but there is clearly a bad problem > somewhere... Hmm. So you _had_ a working self-compiled 2.6.30 kernel at some point? One thing to look out for is that a compiler upgrade/downgrade will be invisible to the kernel build system, so if you downgrade the compiler and recompile, you may not actually recompile things at all. The kernel build system _should_ notice when the build flags change, but gcc versions changing under it, not so much. So you might want to do a "make clean" to be sure. And quite frankly, I'm not 100% sure even that will always do it. Why? Many distro's use ccache, and so you may actually get a cached object file from a previous compile (with a previous compiler). Now, ccache is pretty good at noticing when things change, and I can well imagine that it also checks the compiler version (in addition to checking the hash of the preprocessed output and build flags etc), but I haven't double-checked. So to make doubly sure that you really don't end up using cached object files, you might want to run "ccache -C". Linus ^ permalink raw reply [flat|nested] 28+ messages in thread
* Re: Linux 2.6.30.2: does not boot 2009-07-20 18:16 ` Linus Torvalds @ 2009-07-20 18:21 ` Sam Ravnborg 2009-07-20 20:31 ` Damien Wyart 2009-07-21 0:13 ` Stephen Rothwell 2 siblings, 0 replies; 28+ messages in thread From: Sam Ravnborg @ 2009-07-20 18:21 UTC (permalink / raw) To: Linus Torvalds; +Cc: Damien Wyart, Greg KH, Wolfgang Walter, linux-kernel On Mon, Jul 20, 2009 at 11:16:17AM -0700, Linus Torvalds wrote: > > > On Mon, 20 Jul 2009, Damien Wyart wrote: > > > > I am seeing a similar problem (no hang but an immediate reboot) on the > > same distro. I tried to bisect but got no good kernel in the end. > > > > To clarify things I recompiled again 2.6.30.1 with the orginial .config > > and it also failed to boot (I was happy to have renamed it so the > > working kernel was still available). I suspected a recent gcc 4.3 > > upgrade so downgraded gcc, but no luck, still getting the same problem. > > So for now I am quite stuck, but there is clearly a bad problem > > somewhere... > > Hmm. So you _had_ a working self-compiled 2.6.30 kernel at some point? > > One thing to look out for is that a compiler upgrade/downgrade will be > invisible to the kernel build system, so if you downgrade the compiler and > recompile, you may not actually recompile things at all. > > The kernel build system _should_ notice when the build flags change, but > gcc versions changing under it, not so much. So you might want to do a > "make clean" to be sure. The build system does notice if the build flag changes - with the excemption that it does not care about the ordering of the build flags. gcc version changes are not detected as long as the name of gcc stays the same - which it does in all normal cases. Sam ^ permalink raw reply [flat|nested] 28+ messages in thread
* Re: Linux 2.6.30.2: does not boot 2009-07-20 18:16 ` Linus Torvalds 2009-07-20 18:21 ` Sam Ravnborg @ 2009-07-20 20:31 ` Damien Wyart 2009-07-21 0:13 ` Stephen Rothwell 2 siblings, 0 replies; 28+ messages in thread From: Damien Wyart @ 2009-07-20 20:31 UTC (permalink / raw) To: Linus Torvalds; +Cc: Greg KH, Wolfgang Walter, linux-kernel > > I am seeing a similar problem (no hang but an immediate reboot) on the > > same distro. I tried to bisect but got no good kernel in the end. > > To clarify things I recompiled again 2.6.30.1 with the orginial .config > > and it also failed to boot (I was happy to have renamed it so the > > working kernel was still available). I suspected a recent gcc 4.3 > > upgrade so downgraded gcc, but no luck, still getting the same problem. > > So for now I am quite stuck, but there is clearly a bad problem > > somewhere... * Linus Torvalds <torvalds@linux-foundation.org> [2009-07-20 11:16]: > Hmm. So you _had_ a working self-compiled 2.6.30 kernel at some point? Yes, my case is very similar to the one described by Kiko Piris, and I also think this is getting off topic. > One thing to look out for is that a compiler upgrade/downgrade will be > invisible to the kernel build system, so if you downgrade the compiler > and recompile, you may not actually recompile things at all. I tried the bisect with the same compiler and then for other tests I recompiled from scratch each time on a tmpfs to make sure I was not messing things up. On this machine, ccache is not used. So I am suspecting a recent glibc or binutils upgrade (gcc downgrade did not solve the problem) and even if some people noticed problems with 2.6.30.2, my issue seems different and only distro-related. -- Damien Wyart ^ permalink raw reply [flat|nested] 28+ messages in thread
* Re: Linux 2.6.30.2: does not boot 2009-07-20 18:16 ` Linus Torvalds 2009-07-20 18:21 ` Sam Ravnborg 2009-07-20 20:31 ` Damien Wyart @ 2009-07-21 0:13 ` Stephen Rothwell 2009-07-21 0:28 ` Linus Torvalds 2 siblings, 1 reply; 28+ messages in thread From: Stephen Rothwell @ 2009-07-21 0:13 UTC (permalink / raw) To: Linus Torvalds; +Cc: Damien Wyart, Greg KH, Wolfgang Walter, linux-kernel [-- Attachment #1: Type: text/plain, Size: 894 bytes --] On Mon, 20 Jul 2009 11:16:17 -0700 (PDT) Linus Torvalds <torvalds@linux-foundation.org> wrote: > > Why? Many distro's use ccache, and so you may actually get a cached object > file from a previous compile (with a previous compiler). Now, ccache is > pretty good at noticing when things change, and I can well imagine that it > also checks the compiler version (in addition to checking the hash of the > preprocessed output and build flags etc), but I haven't double-checked. > > So to make doubly sure that you really don't end up using cached object > files, you might want to run "ccache -C". ccache includes, in the hash of the preprocessed file, "the real compilers size and modification time", so will probably notice an upgrade or downgrade of the compiler. -- Cheers, Stephen Rothwell sfr@canb.auug.org.au http://www.canb.auug.org.au/~sfr/ [-- Attachment #2: Type: application/pgp-signature, Size: 197 bytes --] ^ permalink raw reply [flat|nested] 28+ messages in thread
* Re: Linux 2.6.30.2: does not boot 2009-07-21 0:13 ` Stephen Rothwell @ 2009-07-21 0:28 ` Linus Torvalds 2009-07-21 4:09 ` Stephen Rothwell 0 siblings, 1 reply; 28+ messages in thread From: Linus Torvalds @ 2009-07-21 0:28 UTC (permalink / raw) To: Stephen Rothwell; +Cc: Damien Wyart, Greg KH, Wolfgang Walter, linux-kernel On Tue, 21 Jul 2009, Stephen Rothwell wrote: > > ccache includes, in the hash of the preprocessed file, "the real compilers > size and modification time", so will probably notice an upgrade or > downgrade of the compiler. Including something like the assembler? Apparently the problem here was binutils. Linus ^ permalink raw reply [flat|nested] 28+ messages in thread
* Re: Linux 2.6.30.2: does not boot 2009-07-21 0:28 ` Linus Torvalds @ 2009-07-21 4:09 ` Stephen Rothwell 0 siblings, 0 replies; 28+ messages in thread From: Stephen Rothwell @ 2009-07-21 4:09 UTC (permalink / raw) To: Linus Torvalds; +Cc: Damien Wyart, Greg KH, Wolfgang Walter, linux-kernel [-- Attachment #1: Type: text/plain, Size: 639 bytes --] Hi Linus, On Mon, 20 Jul 2009 17:28:49 -0700 (PDT) Linus Torvalds <torvalds@linux-foundation.org> wrote: > > On Tue, 21 Jul 2009, Stephen Rothwell wrote: > > > > ccache includes, in the hash of the preprocessed file, "the real compilers > > size and modification time", so will probably notice an upgrade or > > downgrade of the compiler. > > Including something like the assembler? Apparently the problem here was No. > binutils. Yeah, difficult as ccache really doesn't know what assembler will be used. -- Cheers, Stephen Rothwell sfr@canb.auug.org.au http://www.canb.auug.org.au/~sfr/ [-- Attachment #2: Type: application/pgp-signature, Size: 197 bytes --] ^ permalink raw reply [flat|nested] 28+ messages in thread
* Re: Linux 2.6.30.2: does not boot 2009-07-20 18:03 ` Damien Wyart 2009-07-20 18:16 ` Linus Torvalds @ 2009-07-20 19:23 ` Alejandro Riveira Fernández 2009-07-20 19:42 ` Greg KH 2009-07-20 19:29 ` Kiko Piris 2 siblings, 1 reply; 28+ messages in thread From: Alejandro Riveira Fernández @ 2009-07-20 19:23 UTC (permalink / raw) To: Damien Wyart; +Cc: Greg KH, Wolfgang Walter, linux-kernel, torvalds El Mon, 20 Jul 2009 20:03:33 +0200 Damien Wyart <damien.wyart@free.fr> escribió: > > > Built 2.6.30.2 but it hangs when booting immediately after the message: > > > > Booting the kernel. > > > > I built it with gcc version 4.3.3 on debian/sid and used exactly the > > > same .config as I used with 2.6.32.1 (ok, + "DEFAULT_MMAP_MIN_ADDR > > > 4096" which didn't exist before). > > * Greg KH <gregkh@suse.de> [2009-07-20 08:09]: > > Can you do 'git bisect' to see which patch caused the problem? It > > might be the one, "Don't use '-fwrapv' compiler option: it's buggy in > > gcc-4.1.x", but it would be good to figure it out for sure. > > I am seeing a similar problem (no hang but an immediate reboot) on the > same distro. I tried to bisect but got no good kernel in the end. > > To clarify things I recompiled again 2.6.30.1 with the orginial .config > and it also failed to boot (I was happy to have renamed it so the > working kernel was still available). I suspected a recent gcc 4.3 > upgrade so downgraded gcc, but no luck, still getting the same problem. > So for now I am quite stuck, but there is clearly a bad problem > somewhere... > I did not have any probelm with the gcc shipped in ubuntu gcc (Ubuntu 4.3.3-5ubuntu4) 4.3.3 (64 bit jaunty 9.04) All three 2.6.30 2.6.30.1 and .2 boot just fine (i carry a revert but i doubt it changes things) ^ permalink raw reply [flat|nested] 28+ messages in thread
* Re: Linux 2.6.30.2: does not boot 2009-07-20 19:23 ` Alejandro Riveira Fernández @ 2009-07-20 19:42 ` Greg KH 2009-07-20 19:50 ` Alejandro Riveira Fernández 0 siblings, 1 reply; 28+ messages in thread From: Greg KH @ 2009-07-20 19:42 UTC (permalink / raw) To: Alejandro Riveira Fernández Cc: Damien Wyart, Wolfgang Walter, linux-kernel, torvalds On Mon, Jul 20, 2009 at 09:23:18PM +0200, Alejandro Riveira Fernández wrote: > El Mon, 20 Jul 2009 20:03:33 +0200 > Damien Wyart <damien.wyart@free.fr> escribió: > > > > > Built 2.6.30.2 but it hangs when booting immediately after the message: > > > > > > Booting the kernel. > > > > > > I built it with gcc version 4.3.3 on debian/sid and used exactly the > > > > same .config as I used with 2.6.32.1 (ok, + "DEFAULT_MMAP_MIN_ADDR > > > > 4096" which didn't exist before). > > > > * Greg KH <gregkh@suse.de> [2009-07-20 08:09]: > > > Can you do 'git bisect' to see which patch caused the problem? It > > > might be the one, "Don't use '-fwrapv' compiler option: it's buggy in > > > gcc-4.1.x", but it would be good to figure it out for sure. > > > > I am seeing a similar problem (no hang but an immediate reboot) on the > > same distro. I tried to bisect but got no good kernel in the end. > > > > To clarify things I recompiled again 2.6.30.1 with the orginial .config > > and it also failed to boot (I was happy to have renamed it so the > > working kernel was still available). I suspected a recent gcc 4.3 > > upgrade so downgraded gcc, but no luck, still getting the same problem. > > So for now I am quite stuck, but there is clearly a bad problem > > somewhere... > > > I did not have any probelm with the gcc shipped in ubuntu gcc (Ubuntu > 4.3.3-5ubuntu4) 4.3.3 (64 bit jaunty 9.04) > > All three 2.6.30 2.6.30.1 and .2 boot just fine (i carry a revert but i > doubt it changes things) What revert do you find needed? thanks, greg k-h ^ permalink raw reply [flat|nested] 28+ messages in thread
* Re: Linux 2.6.30.2: does not boot 2009-07-20 19:42 ` Greg KH @ 2009-07-20 19:50 ` Alejandro Riveira Fernández 2009-07-20 21:34 ` Greg KH 0 siblings, 1 reply; 28+ messages in thread From: Alejandro Riveira Fernández @ 2009-07-20 19:50 UTC (permalink / raw) To: Greg KH; +Cc: Damien Wyart, Wolfgang Walter, linux-kernel, torvalds El Mon, 20 Jul 2009 12:42:29 -0700 Greg KH <gregkh@suse.de> escribió: > > What revert do you find needed? Full story here: http://bugzilla.kernel.org/show_bug.cgi?id=13362 i'm reverting 7e0986c17f695952ce5d61ed793ce048ba90a661 for my own use. The mail threath with Ivo seems to indicate that my hardware is weird so i do not think the problem will be resolved anytime soon People lost interest i guess > thanks, > > greg k-h ^ permalink raw reply [flat|nested] 28+ messages in thread
* Re: Linux 2.6.30.2: does not boot 2009-07-20 19:50 ` Alejandro Riveira Fernández @ 2009-07-20 21:34 ` Greg KH 0 siblings, 0 replies; 28+ messages in thread From: Greg KH @ 2009-07-20 21:34 UTC (permalink / raw) To: Alejandro Riveira Fernández Cc: Damien Wyart, Wolfgang Walter, linux-kernel, torvalds On Mon, Jul 20, 2009 at 09:50:32PM +0200, Alejandro Riveira Fernández wrote: > El Mon, 20 Jul 2009 12:42:29 -0700 > Greg KH <gregkh@suse.de> escribió: > > > > > > What revert do you find needed? > > Full story here: > http://bugzilla.kernel.org/show_bug.cgi?id=13362 > > i'm reverting 7e0986c17f695952ce5d61ed793ce048ba90a661 for my own > use. The mail threath with Ivo seems to indicate that my hardware > is weird so i do not think the problem will be resolved anytime soon > People lost interest i guess Ah, ok, I was worried that I had missed something here :) thanks for the info, greg k-h ^ permalink raw reply [flat|nested] 28+ messages in thread
* Re: Linux 2.6.30.2: does not boot 2009-07-20 18:03 ` Damien Wyart 2009-07-20 18:16 ` Linus Torvalds 2009-07-20 19:23 ` Alejandro Riveira Fernández @ 2009-07-20 19:29 ` Kiko Piris 2009-07-20 19:50 ` Linus Torvalds 2 siblings, 1 reply; 28+ messages in thread From: Kiko Piris @ 2009-07-20 19:29 UTC (permalink / raw) To: Damien Wyart; +Cc: Greg KH, Wolfgang Walter, linux-kernel, torvalds I guess this could be beginning to get off-topic on lkml. Anyway, for what it’s worth… On 20/07/2009 at 20:03 +0200, Damien Wyart wrote: > I am seeing a similar problem (no hang but an immediate reboot) on the > same distro. Exactly the same than me. > I suspected a recent gcc 4.3 upgrade so downgraded gcc, but no luck, > still getting the same problem. So for now I am quite stuck, but > there is clearly a bad problem somewhere... I compiled 2.6.30.1 some days ago: | $ uname -a | Linux rompetechos 2.6.30.1 #1 SMP Fri Jul 3 16:11:06 CEST 2009 i686 GNU/Linux | $ zcat /usr/share/doc/linux-image-2.6.30.1/buildinfo.gz | binutils-2.19.1-1 | dpkg-1.15.3 | dpkg-dev-1.15.3 | gcc-4:4.3.3-9 | gcc-4.1-4.1.2-26 | gcc-4.1-base-4.1.2-26 | gcc-4.2-4.2.4-6 | gcc-4.2-base-4.2.4-6 | gcc-4.3-4.3.3-13 | gcc-4.3-base-4.3.3-13 | gcc-4.4-base-4.4.0-10 | libc6-2.9-18 | libc6-dev-2.9-18 | make-3.81-6 | perl-5.10.0-23 | this was built on a machine with the kernel: | Linux rompetechos 2.6.29.5 #1 SMP Tue Jun 16 07:03:36 CEST 2009 i686 GNU/Linux | using the compiler: | gcc version 4.3.3 (Debian 4.3.3-13) I’m suspecting libc6 (it got upgraded this month a couple of times, now it’s at version 2.9-21). However, I’m not daring to downgrade it, I don’t have a box handy that I can afford to break right now. -- Kiko ^ permalink raw reply [flat|nested] 28+ messages in thread
* Re: Linux 2.6.30.2: does not boot 2009-07-20 19:29 ` Kiko Piris @ 2009-07-20 19:50 ` Linus Torvalds 2009-07-20 21:19 ` Kiko Piris 0 siblings, 1 reply; 28+ messages in thread From: Linus Torvalds @ 2009-07-20 19:50 UTC (permalink / raw) To: Kiko Piris; +Cc: Damien Wyart, Greg KH, Wolfgang Walter, linux-kernel On Mon, 20 Jul 2009, Kiko Piris wrote: > > On 20/07/2009 at 20:03 +0200, Damien Wyart wrote: > > > I am seeing a similar problem (no hang but an immediate reboot) on the > > same distro. > > Exactly the same than me. > > > I suspected a recent gcc 4.3 upgrade so downgraded gcc, but no luck, > > still getting the same problem. So for now I am quite stuck, but > > there is clearly a bad problem somewhere... > > I compiled 2.6.30.1 some days ago: > > | $ uname -a > | Linux rompetechos 2.6.30.1 #1 SMP Fri Jul 3 16:11:06 CEST 2009 i686 GNU/Linux Just to clarify: - you literally have a _working_ 2.6.30.1 that you compiled yourself a few days ago. - But when you try to compile that same kernel _now_, it fails with an immediate reboot? And not just 2.6.30.2, but 2.6.30.1 does that too? That certainly implies something else than just the -fwrapv vs -fno-strict-overflow thing. But we may be looking at two different issues, so maybe your "unable to compile a working kernel" issue is different from the other reports. So can anybody confirm that they can really compile (on the same machine, with the same compiler and libc, right after each other) 2.6.30.1 and it works, but 2.6.30.2 does not work? And in particular, if you can do that, it would be really interesting to see your 'vmlinux' file with -fno-strict-overflow, and then the exact same compile but with the top-level Makefile changed to use -fwrapv instead (and please double-check that the -fwrapv kernel works, and the -fno-strict-overflow) Sadly, the code generation differences you get between -fwrapv and -fno-strict-overflow are not trivial to sort out (I just tested it on my own kernel - obviously working in both cases), but I'd be willing to try. If somebody can really guarantee that the _only_ thing that changed was that one compiler flag (rather than a gcc/glibc update or anything else, which seems to be implicated here for some people). Linus ^ permalink raw reply [flat|nested] 28+ messages in thread
* Re: Linux 2.6.30.2: does not boot 2009-07-20 19:50 ` Linus Torvalds @ 2009-07-20 21:19 ` Kiko Piris 2009-07-20 22:02 ` Linus Torvalds 0 siblings, 1 reply; 28+ messages in thread From: Kiko Piris @ 2009-07-20 21:19 UTC (permalink / raw) To: Linus Torvalds; +Cc: Damien Wyart, Greg KH, Wolfgang Walter, linux-kernel On 20/07/2009 at 12:50 -0700, Linus Torvalds wrote: > Just to clarify: > > - you literally have a _working_ 2.6.30.1 that you compiled yourself a > few days ago. That’s correct. > - But when you try to compile that same kernel _now_, it fails with an > immediate reboot? And not just 2.6.30.2, but 2.6.30.1 does that too? Also correct. > That certainly implies something else than just the -fwrapv vs > -fno-strict-overflow thing. Yes, as Marcel Beister pointed, it resulted some binutils bug. Downgrading the package produced a perfectly bootable 2.6.30.2. > But we may be looking at two different issues, so maybe your "unable to > compile a working kernel" issue is different from the other reports. Totally unrelated to other reports, and not a kernel bug, in fact. Sorry if caused any confussion. -- Kiko ^ permalink raw reply [flat|nested] 28+ messages in thread
* Re: Linux 2.6.30.2: does not boot 2009-07-20 21:19 ` Kiko Piris @ 2009-07-20 22:02 ` Linus Torvalds 2009-07-20 22:04 ` Linus Torvalds ` (3 more replies) 0 siblings, 4 replies; 28+ messages in thread From: Linus Torvalds @ 2009-07-20 22:02 UTC (permalink / raw) To: Kiko Piris; +Cc: Damien Wyart, Greg KH, Wolfgang Walter, linux-kernel On Mon, 20 Jul 2009, Kiko Piris wrote: > > Just to clarify: > > > > - you literally have a _working_ 2.6.30.1 that you compiled yourself a > > few days ago. > > That’s correct. > > > - But when you try to compile that same kernel _now_, it fails with an > > immediate reboot? And not just 2.6.30.2, but 2.6.30.1 does that too? > > Also correct. > > > That certainly implies something else than just the -fwrapv vs > > -fno-strict-overflow thing. > > Yes, as Marcel Beister pointed, it resulted some binutils bug. > Downgrading the package produced a perfectly bootable 2.6.30.2. Ok, so it's been narrowed down to binutils. Good. > > But we may be looking at two different issues, so maybe your "unable to > > compile a working kernel" issue is different from the other reports. > > Totally unrelated to other reports, and not a kernel bug, in fact. Well, it's still not entirely clear that it's unrelated. It seems that all the people involved are running Debian/sid, and I don't think we have any firm confirmation yet that it's the compiler flag for anybody. It was certainly the primary suspect, but maybe that was always just a red herring guess. Wolfgang hasn't actually tried to compile without the -fno-strict-overflow flag yet, and maybe his hang is the same binutils bug. Of course, maybe I missed some gcc flag confirmation that wasn't cc'd to me. So who knows.. Linus ^ permalink raw reply [flat|nested] 28+ messages in thread
* Re: Linux 2.6.30.2: does not boot 2009-07-20 22:02 ` Linus Torvalds @ 2009-07-20 22:04 ` Linus Torvalds 2009-07-20 22:14 ` Kiko Piris ` (2 subsequent siblings) 3 siblings, 0 replies; 28+ messages in thread From: Linus Torvalds @ 2009-07-20 22:04 UTC (permalink / raw) To: Kiko Piris; +Cc: Damien Wyart, Greg KH, Wolfgang Walter, linux-kernel On Mon, 20 Jul 2009, Linus Torvalds wrote: > > Of course, maybe I missed some gcc flag confirmation that wasn't cc'd to > me. So who knows.. Never mind, There was the other thread about 2.6.27.7, and there it seems to have been confirmed. So yeah, we really do seem to have triggered two entirely separate bugs. Linus ^ permalink raw reply [flat|nested] 28+ messages in thread
* Re: Linux 2.6.30.2: does not boot 2009-07-20 22:02 ` Linus Torvalds 2009-07-20 22:04 ` Linus Torvalds @ 2009-07-20 22:14 ` Kiko Piris 2009-07-21 0:42 ` Wolfgang Walter 2009-07-21 20:42 ` Bastian Blank 3 siblings, 0 replies; 28+ messages in thread From: Kiko Piris @ 2009-07-20 22:14 UTC (permalink / raw) To: Linus Torvalds; +Cc: Damien Wyart, Greg KH, Wolfgang Walter, linux-kernel On 20/07/2009 at 15:02 -0700, Linus Torvalds wrote: > It seems that all the people involved are running Debian/sid, and I don't > think we have any firm confirmation yet that it's the compiler flag for > anybody. It was certainly the primary suspect, but maybe that was always > just a red herring guess. > > Wolfgang hasn't actually tried to compile without the -fno-strict-overflow > flag yet, and maybe his hang is the same binutils bug. Just in case this information could be of any help: I compiled 2.6.30.2 but reverting that commit (a137802ee839ace40079bebde24cfb416f73208a, “Dont use -fwrapv compiler option: its buggy in gcc-4.1.x”); on my sid box (with that supposedly bad version of binutils), the box did not boot (same behaviour: reboot just after lilo). I also compiled 2.6.27.27 (it has that very same commit) on 3 different servers at work (debian stable there). All of them booted without any problem. All of my boxes seem to be ok, but if I can do any additional test to help, please let me know. Thanks! -- Kiko ^ permalink raw reply [flat|nested] 28+ messages in thread
* Re: Linux 2.6.30.2: does not boot 2009-07-20 22:02 ` Linus Torvalds 2009-07-20 22:04 ` Linus Torvalds 2009-07-20 22:14 ` Kiko Piris @ 2009-07-21 0:42 ` Wolfgang Walter 2009-07-21 20:42 ` Bastian Blank 3 siblings, 0 replies; 28+ messages in thread From: Wolfgang Walter @ 2009-07-21 0:42 UTC (permalink / raw) To: Linus Torvalds; +Cc: Kiko Piris, Damien Wyart, Greg KH, linux-kernel On Tuesday 21 July 2009, Linus Torvalds wrote: > > On Mon, 20 Jul 2009, Kiko Piris wrote: > > > Just to clarify: > > > > > > - you literally have a _working_ 2.6.30.1 that you compiled yourself a > > > few days ago. > > > > That’s correct. > > > > > - But when you try to compile that same kernel _now_, it fails with an > > > immediate reboot? And not just 2.6.30.2, but 2.6.30.1 does that too? > > > > Also correct. > > > > > That certainly implies something else than just the -fwrapv vs > > > -fno-strict-overflow thing. > > > > Yes, as Marcel Beister pointed, it resulted some binutils bug. > > Downgrading the package produced a perfectly bootable 2.6.30.2. > > Ok, so it's been narrowed down to binutils. Good. > > > > But we may be looking at two different issues, so maybe your "unable to > > > compile a working kernel" issue is different from the other reports. > > > > Totally unrelated to other reports, and not a kernel bug, in fact. > > Well, it's still not entirely clear that it's unrelated. > > It seems that all the people involved are running Debian/sid, and I don't > think we have any firm confirmation yet that it's the compiler flag for > anybody. It was certainly the primary suspect, but maybe that was always > just a red herring guess. > > Wolfgang hasn't actually tried to compile without the -fno-strict-overflow > flag yet, and maybe his hang is the same binutils bug. Yes, it is. I built with -fwrapv instead of -fno-strict-overflow and without either, both fail to boot. Downgrading binutils to those of debian/testing and the unmodified 2.6.30.2 works. So this seems to be indeed a problem with binutils in debian/sids. Regards, -- Wolfgang Walter Studentenwerk München Anstalt des öffentlichen Rechts Leiter EDV Leopoldstraße 15 80802 München Tel: +49 89 38196-276 Fax: +49 89 38196-144 wolfgang.walter@stwm.de http://www.studentenwerk-muenchen.de/ ^ permalink raw reply [flat|nested] 28+ messages in thread
* Re: Linux 2.6.30.2: does not boot 2009-07-20 22:02 ` Linus Torvalds ` (2 preceding siblings ...) 2009-07-21 0:42 ` Wolfgang Walter @ 2009-07-21 20:42 ` Bastian Blank [not found] ` <4A6746B9.9010603@ubuntu.com> 3 siblings, 1 reply; 28+ messages in thread From: Bastian Blank @ 2009-07-21 20:42 UTC (permalink / raw) To: Linus Torvalds, linux-kernel Cc: Kiko Piris, Damien Wyart, Greg KH, Wolfgang Walter, hpa, 537862 On Mon, Jul 20, 2009 at 03:02:36PM -0700, Linus Torvalds wrote: > On Mon, 20 Jul 2009, Kiko Piris wrote: > > Yes, as Marcel Beister pointed, it resulted some binutils bug. > > Downgrading the package produced a perfectly bootable 2.6.30.2. > Ok, so it's been narrowed down to binutils. Good. Okay, I did some work and now got one working and one not working kernel. The setup code it, except the payload size and the version string, identical. Now to vmlinux. First difference (1-vmlinux is the broken, 2-vmlinux is the working version): | 2-vmlinux: file format elf32-i386 | 2-vmlinux | architecture: i386, flags 0x00000113: | HAS_RELOC, EXEC_P, HAS_SYMS, D_PAGED vs. | 1-vmlinux: file format elf32-i386 | 1-vmlinux | architecture: i386, flags 0x00000013: | HAS_RELOC, EXEC_P, HAS_SYMS The file lost its D_PAGED flag. Next: | 16 .init.rodata 00000394 c05057e0 005057e0 004067e0 2**4 | CONTENTS, ALLOC, LOAD, RELOC, DATA | 17 .data.page_aligned 00000800 c0506000 00506000 00407000 2**5 | CONTENTS, ALLOC, LOAD, DATA vs. | 16 .init.rodata 00000394 c0506000 00506000 00407000 2**4 | CONTENTS, ALLOC, LOAD, RELOC, DATA | 17 .data_nosave 00000c6c c0506394 00506394 00407394 2**0 | ALLOC | 18 .data.page_aligned 00000800 c0507000 00506394 00407394 2**5 | CONTENTS, ALLOC, LOAD, DATA So suddenly there apears a .data_nosave with some content, but it is marked the same then a bss section and not even properly aligned according to the linker script. The same sections of another working kernel, built with the new binutils: | 18 .init.rodata 000003bd c040f4c0 0040f4c0 003104c0 2**2 | CONTENTS, ALLOC, LOAD, RELOC, DATA | 19 .data_nosave 00001000 c0410000 00410000 00311000 2**2 | CONTENTS, ALLOC, LOAD, DATA | 20 .data.page_aligned 00000800 c0411000 00411000 00312000 2**2 | CONTENTS, ALLOC, LOAD, DATA The .data_nosave section is a real one here. I would say, such holes won't survive the objcopy to create a binary and all code is at the wrong location. Bastian -- Punishment becomes ineffective after a certain point. Men become insensitive. -- Eneg, "Patterns of Force", stardate 2534.7 ^ permalink raw reply [flat|nested] 28+ messages in thread
[parent not found: <4A6746B9.9010603@ubuntu.com>]
* Re: current binutils trunk fails to build bootable kernel image for some configurations [not found] ` <4A6746B9.9010603@ubuntu.com> @ 2009-07-23 0:49 ` Alan Modra 2009-07-23 5:05 ` Sam Ravnborg 0 siblings, 1 reply; 28+ messages in thread From: Alan Modra @ 2009-07-23 0:49 UTC (permalink / raw) To: Matthias Klose Cc: binutils, Bastian Blank, Linus Torvalds, linux-kernel, Kiko Piris, Damien Wyart, Greg KH, Wolfgang Walter On Wed, Jul 22, 2009 at 01:04:57PM -0400, Matthias Klose wrote: > this was reported as http://bugs.debian.org/537389, I currently don't > have much more information, besides that one of the Debian kernel > maintainers did identify > > 2009-07-11 Alan Modra <amodra@bigpond.net.au> > > * ldlang.c (insert_os_after): Don't tie assignments to non-alloc > output sections. > > this patch as the one causing the wrongly built kernel. However I don't > see this checkin mentioned on the ML. The discussion happened on bug-binutils. http://lists.gnu.org/archive/html/bug-binutils/2009-07/msg00067.html > Bastian Blank did check that the > problem goes away with a binutils build from trunk and this patch > reverted. Some more analysis in http://lkml.org/lkml/2009/7/21/400 The biggest problem is that the kernel linker script doesn't mention all sections, which means ld must choose a place for the unmentioned sections (orphans). Sometimes ld's placement isn't how a naive programmer would expect. In this case: . = ALIGN(PAGE_SIZE); .data_nosave : AT(ADDR(.data_nosave) - LOAD_OFFSET) { ld stuck an orphan section between the two statements. Which meant that the start of .data_nosave is not aligned (and since the end is aligned by following statements, it means that .data_nosave also has padding inserted). It would be more robust to write: .data_nosave ALIGN(PAGE_SIZE) : AT(ADDR(.data_nosave) - LOAD_OFFSET) { -- Alan Modra Australia Development Lab, IBM ^ permalink raw reply [flat|nested] 28+ messages in thread
* Re: current binutils trunk fails to build bootable kernel image for some configurations 2009-07-23 0:49 ` current binutils trunk fails to build bootable kernel image for some configurations Alan Modra @ 2009-07-23 5:05 ` Sam Ravnborg 2009-07-23 6:01 ` Alan Modra 0 siblings, 1 reply; 28+ messages in thread From: Sam Ravnborg @ 2009-07-23 5:05 UTC (permalink / raw) To: Matthias Klose, binutils, Bastian Blank, Linus Torvalds, linux-kernel, Kiko Piris, Damien Wyart, Greg KH, Wolfgang Walter On Thu, Jul 23, 2009 at 10:19:39AM +0930, Alan Modra wrote: > On Wed, Jul 22, 2009 at 01:04:57PM -0400, Matthias Klose wrote: > > this was reported as http://bugs.debian.org/537389, I currently don't > > have much more information, besides that one of the Debian kernel > > maintainers did identify > > > > 2009-07-11 Alan Modra <amodra@bigpond.net.au> > > > > * ldlang.c (insert_os_after): Don't tie assignments to non-alloc > > output sections. > > > > this patch as the one causing the wrongly built kernel. However I don't > > see this checkin mentioned on the ML. > > The discussion happened on bug-binutils. > http://lists.gnu.org/archive/html/bug-binutils/2009-07/msg00067.html > > > Bastian Blank did check that the > > problem goes away with a binutils build from trunk and this patch > > reverted. Some more analysis in http://lkml.org/lkml/2009/7/21/400 > > The biggest problem is that the kernel linker script doesn't mention > all sections, which means ld must choose a place for the unmentioned > sections (orphans). Sometimes ld's placement isn't how a naive > programmer would expect. > > In this case: > > . = ALIGN(PAGE_SIZE); > .data_nosave : AT(ADDR(.data_nosave) - LOAD_OFFSET) { > > ld stuck an orphan section between the two statements. Which meant > that the start of .data_nosave is not aligned (and since the end is > aligned by following statements, it means that .data_nosave also has > padding inserted). It would be more robust to write: > > .data_nosave ALIGN(PAGE_SIZE) : AT(ADDR(.data_nosave) - LOAD_OFFSET) { Do you recall when this started to be supported? I think I tried this and it failed - but I may be wrong here. Also - do there exist an option to tell what sections has not been covered by a linker script? Sam ^ permalink raw reply [flat|nested] 28+ messages in thread
* Re: current binutils trunk fails to build bootable kernel image for some configurations 2009-07-23 5:05 ` Sam Ravnborg @ 2009-07-23 6:01 ` Alan Modra 0 siblings, 0 replies; 28+ messages in thread From: Alan Modra @ 2009-07-23 6:01 UTC (permalink / raw) To: Sam Ravnborg Cc: Matthias Klose, binutils, Bastian Blank, Linus Torvalds, linux-kernel, Kiko Piris, Damien Wyart, Greg KH, Wolfgang Walter On Thu, Jul 23, 2009 at 07:05:22AM +0200, Sam Ravnborg wrote: > On Thu, Jul 23, 2009 at 10:19:39AM +0930, Alan Modra wrote: > > .data_nosave ALIGN(PAGE_SIZE) : AT(ADDR(.data_nosave) - LOAD_OFFSET) { > > Do you recall when this started to be supported? Forever. > I think I tried this and it failed - but I may be wrong here. I can think of at least two things that might cause my suggestion to fail. 1) .data_nosave input sections may have alignments greater than PAGE_SIZE, but we're setting the start address explicity. 2) following sections won't be aligned to PAGE_SIZE if .data_nosave is empty. Hmm, there is another option that I'd forgotten about. .data_nosave : AT(ADDR(.data_nosave) - LOAD_OFFSET) ALIGN(PAGE_SIZE) { This avoids (1) above since it only increases alignment. Support for this form of alignment was added 2005-09. > Also - do there exist an option to tell what sections has not been > covered by a linker script? No. You could put /DISCARD/ : { *(*) } at the end of your script, then generate a map file. Discarded sections are reported. -- Alan Modra Australia Development Lab, IBM ^ permalink raw reply [flat|nested] 28+ messages in thread
* Re: Linux 2.6.30.2: does not boot 2009-07-20 14:13 ` Linux 2.6.30.2: does not boot Wolfgang Walter 2009-07-20 14:38 ` Kiko Piris 2009-07-20 15:09 ` Greg KH @ 2009-07-20 20:29 ` Marcel Beister 2 siblings, 0 replies; 28+ messages in thread From: Marcel Beister @ 2009-07-20 20:29 UTC (permalink / raw) To: linux-kernel > Built 2.6.30.2 but it hangs when booting immediately after the message: > > Booting the kernel. > > I built it with gcc version 4.3.3 on debian/sid and used exactly the > same .config as I used with 2.6.32.1 (ok, + "DEFAULT_MMAP_MIN_ADDR 4096" > which didn't exist before). > > Regards, Hi, I had the same problem this weekend and I also checked various configurations, but actually this is a problem with binutils_2.19.51.20090714-1. I found the following bug report for binutils which exactly described my problem: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=537389 I downgraded binutils to the testing version (binutils_2.19.1-1) and the kernel booted without any problems. I did this for 2 other machines and they all rebooted with the sid version and they all booted fine with the testing version. -- Marcel ^ permalink raw reply [flat|nested] 28+ messages in thread
end of thread, other threads:[~2009-07-23 6:01 UTC | newest]
Thread overview: 28+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-07-20 4:08 Linux 2.6.30.2 Greg KH
2009-07-20 4:08 ` Greg KH
2009-07-20 14:13 ` Linux 2.6.30.2: does not boot Wolfgang Walter
2009-07-20 14:38 ` Kiko Piris
2009-07-20 15:09 ` Greg KH
2009-07-20 18:03 ` Damien Wyart
2009-07-20 18:16 ` Linus Torvalds
2009-07-20 18:21 ` Sam Ravnborg
2009-07-20 20:31 ` Damien Wyart
2009-07-21 0:13 ` Stephen Rothwell
2009-07-21 0:28 ` Linus Torvalds
2009-07-21 4:09 ` Stephen Rothwell
2009-07-20 19:23 ` Alejandro Riveira Fernández
2009-07-20 19:42 ` Greg KH
2009-07-20 19:50 ` Alejandro Riveira Fernández
2009-07-20 21:34 ` Greg KH
2009-07-20 19:29 ` Kiko Piris
2009-07-20 19:50 ` Linus Torvalds
2009-07-20 21:19 ` Kiko Piris
2009-07-20 22:02 ` Linus Torvalds
2009-07-20 22:04 ` Linus Torvalds
2009-07-20 22:14 ` Kiko Piris
2009-07-21 0:42 ` Wolfgang Walter
2009-07-21 20:42 ` Bastian Blank
[not found] ` <4A6746B9.9010603@ubuntu.com>
2009-07-23 0:49 ` current binutils trunk fails to build bootable kernel image for some configurations Alan Modra
2009-07-23 5:05 ` Sam Ravnborg
2009-07-23 6:01 ` Alan Modra
2009-07-20 20:29 ` Linux 2.6.30.2: does not boot Marcel Beister
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox