09 Jul, 2008

3 commits


08 Jul, 2008

3 commits

  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci-2.6:
    Revert "PCI: Correct last two HP entries in the bfsort whitelist"

    Linus Torvalds
     
  • This reverts commit a1676072558854b95336c8f7db76b0504e909a0a. It duplicates
    the change from 8d64c781f0c5fbfdf8016bd1634506ff2ad1376a and only one should be
    applied, otherwise some of the Dell quirks are lost.

    Thanks to Tony Camuso for catching this.

    Acked-by: Tony Camuso
    Signed-off-by: Jesse Barnes

    Jesse Barnes
     
  • There are various constraints on the use of unit-at-a-time:
    - i386 uses no-unit-at-a-time for pre-4.0 (not 4.3)
    - x86_64 uses unit-at-a-time always

    Uli reported a crash on x86_64 with gcc 4.1.2 with unit-at-a-time,
    resulting in commit c0a18111e571138747a98af18b3a2124df56a0d1

    Ingo reported a gcc internal error with gcc 4.3 with no-unit-at-a-timem,
    resulting in 22eecde2f9034764a3fd095eecfa3adfb8ec9a98

    Benny Halevy is seeing extern inlines not resolved with gcc 4.3 with
    no-unit-at-a-time

    This patch reintroduces unit-at-a-time for gcc >= 4.0, bringing back the
    possibility of Uli's crash. If that happens, we'll debug it.

    I started seeing both the internal compiler errors and unresolved
    inlines on Fedora 9. This patch fixes both problems, without so far
    reintroducing the crash reported by Uli.

    Signed-off-by: Jeff Dike
    Cc: Benny Halevy
    Cc: Adrian Bunk
    Cc: Ingo Molnar
    Cc: Ulrich Drepper
    Signed-off-by: Linus Torvalds

    Jeff Dike
     

07 Jul, 2008

1 commit

  • A recent patch to legacy_serial.c factored out some code by
    using the of_match_node() facility to match a node against
    an array of possible matches. However, the patch didn't properly
    terminate the array causing potential crashes in cases where no
    match is found. In addition, the name of the array was poorly
    chosen for a static symbol making debugging harder.

    Signed-off-by: Benjamin Herrenschmidt
    Signed-off-by: Linus Torvalds

    Benjamin Herrenschmidt
     

05 Jul, 2008

7 commits

  • Ingo Molnar
     
  • Since the trampoline code is now used for ACPI resume from suspend to RAM,
    the trampoline page tables have to be fixed up during boot not only on SMP
    systems, but also on UP systems that use the trampoline.

    Reference: http://bugzilla.kernel.org/show_bug.cgi?id=10923

    Reported-by: Dionisus Torimens
    Signed-off-by: Rafael J. Wysocki
    Cc: Andi Kleen
    Cc: Andrew Morton
    Cc: pm list
    Signed-off-by: Ingo Molnar

    Rafael J. Wysocki
     
  • Some Dell laptops enter resume with apparent garbage in the segment
    descriptor registers (almost certainly the result of a botched
    transition from protected to real mode.) The only way to clean that
    up is to enter protected mode ourselves and clean out the descriptor
    registers.

    This fixes resume on Dell XPS M1210 and Dell D620.

    Reference: http://bugzilla.kernel.org/show_bug.cgi?id=10927

    Signed-off-by: H. Peter Anvin
    Cc: Andrew Morton
    Cc: Pavel Machek
    Cc: pm list
    Cc: Len Brown
    Signed-off-by: Ingo Molnar
    Tested-by: Kirill A. Shutemov
    Signed-off-by: Rafael J. Wysocki
    Signed-off-by: Ingo Molnar

    H. Peter Anvin
     
  • …git/tip/linux-2.6-tip

    * 'x86-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
    xen: fix address truncation in pte mfn<->pfn conversion
    arch/x86/mm/init_64.c: early_memtest(): fix types
    x86: fix Intel Mac booting with EFI

    Linus Torvalds
     
  • The build of the Alpha Linux kernel currently fails[1] with inconsistent
    kallsyms data. As I never saw that before, I thought about hardware
    problems. But in fact it is a bug in the Linux kernel.

    The end of the rodata section is marked with the "__end_rodata" symbol.
    This symbol have different aligning constraints than the inittext parts
    and therefor the start marked "_sinittext". Because of that the
    __end_rodata symbol shifts between < _sinittext and == _sinittext. The
    later variant is seen as a code symbol and recorded in the kallsyms data.

    On fix would be to move the exception table a little bit and get some
    space between that two areas.

    [1]: http://buildd.debian.org/fetch.cgi?pkg=linux-2.6&arch=alpha&ver=2.6.25-5&stamp=1213919009&file=log&as=raw

    Cc: maximilian attems
    Cc: Richard Henderson
    Cc: Ivan Kokshaysky
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Bastian Blank
     
  • Provide __ucmpdi2() for MN10300 so that allmodconfig can be built.

    Signed-off-by: David Howells
    Cc: Adrian Bunk
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    David Howells
     
  • Export kernel_thread() and empty_zero_page so that allmodconfig can be
    built for MN10300.

    Signed-off-by: David Howells
    Cc: Adrian Bunk
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    David Howells
     

04 Jul, 2008

4 commits

  • When converting the page number in a pte/pmd/pud/pgd between
    machine and pseudo-physical addresses, the converted result was
    being truncated at 32-bits. This caused failures on machines
    with more than 4G of physical memory.

    Signed-off-by: Jeremy Fitzhardinge
    Cc: "Christopher S. Aker"
    Cc: Ian Campbell
    Signed-off-by: Ingo Molnar

    Jeremy Fitzhardinge
     
  • The txx9_tmr_init() will not clear a timer counter register in a certain
    case. The counter register is cleared on 1->0 transition of TCE bit if
    CRE=1. So just clearing the TCE bit is not enough.

    Signed-off-by: Atsushi Nemoto
    Signed-off-by: Ralf Baechle

    Atsushi Nemoto
     
  • The introduction of a real dma cache invalidate makes it important
    to have a correct cache line size, otherwise the kernel will gives
    out two memory segment, which might share one cache line. The R4400
    Indy/Indigo2 CPU modules are using a second level cache line size
    of 128 bytes, so MIPS_L1_CACHE_SHIFT needs to be bumped up to 7 for
    IP22.

    Signed-off-by: Thomas Bogendoerfer
    Signed-off-by: Ralf Baechle

    Thomas Bogendoerfer
     
  • It's possible that the crime interrupt handler is called without
    pending interrupts (probably a hardware issue). To avoid irritating
    "unexpected irq 71" messages, we now just ignore the spurious crime
    interrupts.

    Signed-off-by: Thomas Bogendoerfer
    Signed-off-by: Ralf Baechle

    Thomas Bogendoerfer
     

03 Jul, 2008

7 commits


02 Jul, 2008

3 commits


01 Jul, 2008

4 commits

  • commit 4323838215184f5a2f081e0d17b8d60731b03164
    x86: change size of node ids from u8 to s16

    set the range for NODES_SHIFT to 1..15.

    The possible range is 1..9

    Fixes Bugzilla #10726

    Reported-by: Dave Jones
    Signed-off-by: Thomas Gleixner

    Thomas Gleixner
     
  • The symbol account_system_vtime is used by the kvm module but
    not exported. This breaks building with CONFIG_VIRT_CPU_ACCOUNTING
    and CONFIG_KVM=m.

    Signed-off-by: Doug Chapman
    Acked-by: Hidetosho Seto
    Signed-off-by: Tony Luck

    Doug Chapman
     
  • On a system where there are no hot pluggable cpus "additional_cpus"
    is still set to -1 at the point where we call per_cpu_scan_finalize().
    If we didn't find an SRAT table and so pick the default "32" for the
    number of cpus, when we get to:
    high_cpu = min(high_cpu + reserve_cpus, NR_CPUS);
    we will end up initializing for just 31 cpus ... and so we will
    die horribly when bringing up cpu#32.

    Problem introduced by: 2c6e6db41f01b6b4eb98809350827c9678996698
    "Minimize per_cpu reservations."

    Acked-by: Robin Holt
    Signed-off-by: Tony Luck

    Tony Luck
     
  • This patch annotates the platform_secondary_init function in
    arch/arm/mach-realview/platsmp.c with trace_hardirqs_off to avoid a
    warning when LOCKDEP and TRACE_IRQFLAGS are enabled.

    Signed-off-by: Catalin Marinas
    Signed-off-by: Russell King

    Catalin Marinas
     

30 Jun, 2008

3 commits

  • …git/tip/linux-2.6-tip

    * 'x86-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
    ptrace GET/SET FPXREGS broken
    x86: fix cpu hotplug crash
    x86: section/warning fixes
    x86: shift bits the right way in native_read_tscp

    Linus Torvalds
     
  • When I update kernel 2.6.25 from 2.6.24, gdb does not work.
    On 2.6.25, ptrace(PTRACE_GETFPXREGS, ...) returns ENODEV.

    But 2.6.24 kernel's ptrace() returns EIO.
    It is issue of compatibility.

    I attached test program as pt.c and patch for fix it.

    #include
    #include
    #include
    #include
    #include
    #include
    #include

    struct user_fxsr_struct {
    unsigned short cwd;
    unsigned short swd;
    unsigned short twd;
    unsigned short fop;
    long fip;
    long fcs;
    long foo;
    long fos;
    long mxcsr;
    long reserved;
    long st_space[32]; /* 8*16 bytes for each FP-reg = 128 bytes */
    long xmm_space[32]; /* 8*16 bytes for each XMM-reg = 128 bytes */
    long padding[56];
    };

    int main(void)
    {
    pid_t pid;

    pid = fork();

    switch(pid){
    case -1:/* error */
    break;
    case 0:/* child */
    child();
    break;
    default:
    parent(pid);
    break;
    }
    return 0;
    }

    int child(void)
    {
    ptrace(PTRACE_TRACEME);
    kill(getpid(), SIGSTOP);
    sleep(10);
    return 0;
    }
    int parent(pid_t pid)
    {
    int ret;
    struct user_fxsr_struct fpxregs;

    ret = ptrace(PTRACE_GETFPXREGS, pid, 0, &fpxregs);
    if(ret < 0){
    printf("%d: %s.\n", errno, strerror(errno));
    }
    kill(pid, SIGCONT);
    wait(pid);
    return 0;
    }

    /* in the kerel, at kernel/i387.c get_fpxregs() */

    Signed-off-by: Ingo Molnar

    TAKADA Yoshihito
     
  • Vegard Nossum reported crashes during cpu hotplug tests:

    http://marc.info/?l=linux-kernel&m=121413950227884&w=4

    In function _cpu_up, the panic happens when calling
    __raw_notifier_call_chain at the second time. Kernel doesn't panic when
    calling it at the first time. If just say because of nr_cpu_ids, that's
    not right.

    By checking the source code, I found that function do_boot_cpu is the culprit.
    Consider below call chain:
    _cpu_up=>__cpu_up=>smp_ops.cpu_up=>native_cpu_up=>do_boot_cpu.

    So do_boot_cpu is called in the end. In do_boot_cpu, if
    boot_error==true, cpu_clear(cpu, cpu_possible_map) is executed. So later
    on, when _cpu_up calls __raw_notifier_call_chain at the second time to
    report CPU_UP_CANCELED, because this cpu is already cleared from
    cpu_possible_map, get_cpu_sysdev returns NULL.

    Many resources are related to cpu_possible_map, so it's better not to
    change it.

    Below patch against 2.6.26-rc7 fixes it by removing the bit clearing in
    cpu_possible_map.

    Signed-off-by: Zhang Yanmin
    Tested-by: Vegard Nossum
    Acked-by: Rusty Russell
    Signed-off-by: Ingo Molnar

    Zhang, Yanmin
     

26 Jun, 2008

1 commit

  • WARNING: arch/x86/mm/built-in.o(.text+0x3a1): Section mismatch in
    reference from the function set_pte_phys() to the function
    .init.text:spp_getpage()
    The function set_pte_phys() references
    the function __init spp_getpage().
    This is often because set_pte_phys lacks a __init
    annotation or the annotation of spp_getpage is wrong.

    arch/x86/mm/init_64.c: In function 'early_memtest':
    arch/x86/mm/init_64.c:520: warning: passing argument 2 of
    'find_e820_area_size' from incompatible pointer type

    Signed-off-by: Daniel J Blueman
    Cc: "Linus Torvalds"
    Signed-off-by: Ingo Molnar

    Daniel J Blueman
     

25 Jun, 2008

4 commits

  • --
    WARNING: vmlinux.o(.text+0x721a): Section mismatch in reference from the function ___fill_code_cplbtab() to the function .init.text:_fill_cplbtab()
    The function ___fill_code_cplbtab() references
    the function __init _fill_cplbtab().
    This is often because ___fill_code_cplbtab lacks a __init
    annotation or the annotation of _fill_cplbtab is wrong.

    WARNING: vmlinux.o(.text+0x7238): Section mismatch in reference from the function ___fill_code_cplbtab() to the function .init.text:_fill_cplbtab()
    The function ___fill_code_cplbtab() references
    the function __init _fill_cplbtab().
    This is often because ___fill_code_cplbtab lacks a __init
    annotation or the annotation of _fill_cplbtab is wrong.

    WARNING: vmlinux.o(.text+0x7250): Section mismatch in reference from the function ___fill_code_cplbtab() to the function .init.text:_fill_cplbtab()
    The function ___fill_code_cplbtab() references
    the function __init _fill_cplbtab().
    This is often because ___fill_code_cplbtab lacks a __init
    annotation or the annotation of _fill_cplbtab is wrong.

    WARNING: vmlinux.o(.text+0x7264): Section mismatch in reference from the function ___fill_code_cplbtab() to the function .init.text:_fill_cplbtab()
    The function ___fill_code_cplbtab() references
    the function __init _fill_cplbtab().
    This is often because ___fill_code_cplbtab lacks a __init
    annotation or the annotation of _fill_cplbtab is wrong.

    WARNING: vmlinux.o(.text+0x72a2): Section mismatch in reference from the function ___fill_data_cplbtab() to the function .init.text:_fill_cplbtab()
    The function ___fill_data_cplbtab() references
    the function __init _fill_cplbtab().
    This is often because ___fill_data_cplbtab lacks a __init
    annotation or the annotation of _fill_cplbtab is wrong.

    WARNING: vmlinux.o(.text+0x72bc): Section mismatch in reference from the function ___fill_data_cplbtab() to the function .init.text:_fill_cplbtab()
    The function ___fill_data_cplbtab() references
    the function __init _fill_cplbtab().
    This is often because ___fill_data_cplbtab lacks a __init
    annotation or the annotation of _fill_cplbtab is wrong.

    WARNING: vmlinux.o(.text+0x72d4): Section mismatch in reference from the function ___fill_data_cplbtab() to the function .init.text:_fill_cplbtab()
    The function ___fill_data_cplbtab() references
    the function __init _fill_cplbtab().
    This is often because ___fill_data_cplbtab lacks a __init
    annotation or the annotation of _fill_cplbtab is wrong.

    WARNING: vmlinux.o(.text+0x72e8): Section mismatch in reference from the function ___fill_data_cplbtab() to the function .init.text:_fill_cplbtab()
    The function ___fill_data_cplbtab() references
    the function __init _fill_cplbtab().
    This is often because ___fill_data_cplbtab lacks a __init
    annotation or the annotation of _fill_cplbtab is wrong.
    --

    Signed-off-by: Bryan Wu

    Bryan Wu
     
  • Initialize the lock of bad_irq_desc properly.
    The content of irq_desc array is replaced by bad_irq_desc in blackfin
    arch irqchip init code. So, do it properly as common irq init code.

    Signed-off-by: Sonic Zhang
    Signed-off-by: Bryan Wu

    Sonic Zhang
     
  • * 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux-2.6:
    [IA64] Eliminate NULL test after alloc_bootmem in iosapic_alloc_rte()
    [IA64] Handle count==0 in sn2_ptc_proc_write()
    [IA64] Fix boot failure on ia64/sn2

    Linus Torvalds
     
  • * 'kvm-updates-2.6.26' of git://git.kernel.org/pub/scm/linux/kernel/git/avi/kvm:
    KVM: Remove now unused structs from kvm_para.h
    x86: KVM guest: Use the paravirt clocksource structs and functions
    KVM: Make kvm host use the paravirt clocksource structs
    x86: Make xen use the paravirt clocksource structs and functions
    x86: Add structs and functions for paravirt clocksource
    KVM: VMX: Fix host msr corruption with preemption enabled
    KVM: ioapic: fix lost interrupt when changing a device's irq
    KVM: MMU: Fix oops on guest userspace access to guest pagetable
    KVM: MMU: large page update_pte issue with non-PAE 32-bit guests (resend)
    KVM: MMU: Fix rmap_write_protect() hugepage iteration bug
    KVM: close timer injection race window in __vcpu_run
    KVM: Fix race between timer migration and vcpu migration

    Linus Torvalds