04 Oct, 2007

3 commits


03 Oct, 2007

3 commits


02 Oct, 2007

4 commits

  • For the case where the source is not aligned modulo 8
    we don't use load-twins to suck the data in and this
    kills performance since normal loads allocate in the
    L1 cache (unlike load-twin) and thus big memcpys swipe
    the entire L1 D-cache.

    We need to allocate a register window to implement this
    properly, but that actually simplifies a lot of things
    as a nice side-effect.

    Signed-off-by: David S. Miller

    David S. Miller
     
  • * 'upstream' of git://ftp.linux-mips.org/pub/scm/upstream-linus:
    [MIPS] vmlinux.lds.S: Handle note sections
    [MIPS] Fix value of O_TRUNC

    Linus Torvalds
     
  • For some reason old binutils genertate larger headers so increase the text
    offset of the vdso to avoid linker errors.

    Roland McGrath explains:
    "There are extra symbols in the '.dynsym' section that are responsible
    for the size difference (They also cause corresponding inflation in
    '.gnu.version')

    Older ld's wrongly generated these unneeded symbols in .dynsym. This
    was fixed not all that long ago (2006); binutils-2.17.50.0.6 might be
    the first fixed version, but I have not verified for sure where the
    cutoff was.

    The unneeded symbols et al from old ld add almost 700 bytes excess.
    This limits fairly tightly the amount by which the actual text and
    data in the vDSO can grow in the future without pushing the whole
    file over 4kb. If it does grow later on, we should consider changing
    the layout with a config option or something to pack it better
    without that padding, when building the kernel with newer binutils."

    Signed-off-by: Andi Kleen
    Cc: Roland McGrath
    Cc: Badari Pulavarty
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andi Kleen
     
  • On a POWER6 machine running 2.6.23-rc8 I sometimes see the following error:

    xics_set_affinity: No online cpus in the mask 00000000,00000000,00000000,00000001 for irq 20

    In a desperate attempt to get a changelog entry in 2.6.23, I took a look
    into it.

    It turns out we are passing a real and not a virtual irq into
    get_irq_server. This works for the case where hwirq < NR_IRQS and we
    set virq = hwirq. In my case however hwirq = 590082 and we try and
    access irq_desc[590082], slightly past the end at 512 entries.

    Lucky we ship lots of memory with our machines.

    Signed-off-by: Anton Blanchard
    Signed-off-by: Paul Mackerras

    Anton Blanchard
     

01 Oct, 2007

3 commits

  • Store any note sections after the exception tables like the other
    architectures do. This is required for .note.gnu.build-id emitted from
    binutils 2.18 onwards if nothing else.

    Signed-off-by: Maciej W. Rozycki
    Signed-off-by: Ralf Baechle

    Maciej W. Rozycki
     
  • argv and envp are pointers to u32's in userspace, so don't
    try to put_user() a NULL to them.

    Aparently gcc-4.2.x now warns about this, and since we use
    -Werror for arch/sparc64 code, this breaks the build.

    Signed-off-by: David S. Miller

    David S. Miller
     
  • Fix the following (valid) section warnings:

    WARNING: vmlinux.o(.text+0xf7b5c): Section mismatch: reference to .init.text:pcibios_fixup_bus (between 'pci_scan_child_bus' and 'pci_scan_bridge')
    WARNING: vmlinux.o(.text+0xfc5f4): Section mismatch: reference to .init.text:pcibios_resource_to_bus (between 'pci_map_rom' and 'pci_unmap_rom')
    WARNING: vmlinux.o(.text+0xfc824): Section mismatch: reference to .init.text:pcibios_resource_to_bus (between 'pci_update_resource' and 'pci_claim_resource')
    WARNING: vmlinux.o(.text+0xfd6d8): Section mismatch: reference to .init.text:pcibios_resource_to_bus (between 'pci_setup_cardbus' and 'find_free_bus_resource')
    WARNING: vmlinux.o(.text+0xfd730): Section mismatch: reference to .init.text:pcibios_resource_to_bus (between 'pci_setup_cardbus' and 'find_free_bus_resource')
    WARNING: vmlinux.o(.text+0xfd788): Section mismatch: reference to .init.text:pcibios_resource_to_bus (between 'pci_setup_cardbus' and 'find_free_bus_resource')
    WARNING: vmlinux.o(.text+0xfd7e0): Section mismatch: reference to .init.text:pcibios_resource_to_bus (between 'pci_setup_cardbus' and 'find_free_bus_resource')
    WARNING: vmlinux.o(.text+0xfe024): Section mismatch: reference to .init.text:pcibios_resource_to_bus (between 'pci_bus_assign_resources' and 'sys_pciconfig_read')
    WARNING: vmlinux.o(.text+0xfe0f4): Section mismatch: reference to .init.text:pcibios_resource_to_bus (between 'pci_bus_assign_resources' and 'sys_pciconfig_read')
    WARNING: vmlinux.o(.text+0xfe17c): Section mismatch: reference to .init.text:pcibios_resource_to_bus (between 'pci_bus_assign_resources' and 'sys_pciconfig_read')

    Signed-off-by: Russell King

    Russell King
     

29 Sep, 2007

6 commits


28 Sep, 2007

6 commits

  • Setup dr_mode for USB-DR to peripheral as the default (host mode) doesn't make
    much sense for the mini-AB connector on the ITX board.

    Peripheral mode is preferable to OTG as the fsl_usb2_udc.c driver doesn't yet
    properly support it.

    Signed-off-by: Peter Korsgaard
    Signed-off-by: Kumar Gala

    jacmet@sunsite.dk
     
  • mpc834x USB-MPH configuration got broken by commit
    6f442560021aecf08658e26ed9a37e6928ef0fa1. The selection bits in SICRL
    should be cleared rather than set to configure the USB MUXes for the MPH.

    Signed-off-by: Peter Korsgaard
    Signed-off-by: Kumar Gala

    jacmet@sunsite.dk
     
  • cpm_dpram_addr returns physical memory of the DP RAM instead of
    iomapped virtual memory. As there usually is a 1:1 MMU map of
    the IMMR area, this is often not noticed. However, cpm_dpram_phys
    assumes this iomapped virtual memory and returns garbage on the
    1:1 mapped memory causing CPM1 uart console to fail.

    This patch fixes the problem (copied from the powerpc tree).

    Signed-off-by: Jochen Friedrich
    Signed-off-by: Kumar Gala

    Jochen Friedrich
     
  • The powerpc version of commproc.c exports cpm_dpram_addr twice
    and cpm_dpram_phys not at all due to a typo. This patch fixes this
    problem.

    CC arch/powerpc/sysdev/commproc.o
    arch/powerpc/sysdev/commproc.c:398: error: redefinition of '__kcrctab_cpm_dpram_addr'
    arch/powerpc/sysdev/commproc.c:392: error: previous definition of '__kcrctab_cpm_dpram_addr' was here
    arch/powerpc/sysdev/commproc.c:398: error: redefinition of '__kstrtab_cpm_dpram_addr'
    arch/powerpc/sysdev/commproc.c:392: error: previous definition of '__kstrtab_cpm_dpram_addr' was here
    arch/powerpc/sysdev/commproc.c:398: error: redefinition of '__ksymtab_cpm_dpram_addr'
    arch/powerpc/sysdev/commproc.c:392: error: previous definition of '__ksymtab_cpm_dpram_addr' was here
    make[1]: *** [arch/powerpc/sysdev/commproc.o] Error 1
    make: *** [arch/powerpc/sysdev] Error 2

    Signed-off-by: Jochen Friedrich
    Signed-off-by: Kumar Gala

    Jochen Friedrich
     
  • Signed-off-by: Ralf Baechle

    Ralf Baechle
     
  • If of_get_property() fails, it returns NULL and the 'len'
    parameter is undefined. So we need to explicitly set len
    to zero in such cases.

    Noticed by Al Viro.

    Signed-off-by: David S. Miller

    David S. Miller
     

27 Sep, 2007

5 commits

  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/hpa/linux-2.6-x86setup:
    [x86 setup] Handle case of improperly terminated E820 chain

    Linus Torvalds
     
  • This reverts commit e66485d747505e9d960b864fc6c37f8b2afafaf0, since
    Rafael Wysocki noticed that the change only works for his in -mm, not in
    mainline (and that both "noapictimer" _and_ "apicmaintimer" are broken
    on his hardware, but that's apparently not a regression, just a symptom
    of the same issue that causes the automatic apic timer disable to not
    work).

    It turns out that it really doesn't work correctly on x86-64, since
    x86-64 doesn't use the generic clock events for timers yet.

    Thanks to Rafal for testing, and here's the ugly details on x86-64 as
    per Thomas:

    "I just looked into the code and the logic vs. noapictimer on SMP is
    completely broken.

    On i386 the noapictimer option not only disables the local APIC
    timer, it also registers the CPUs for broadcasting via IPI on SMP
    systems.

    The x86-64 code uses the broadcast only when the local apic timer is
    active, i.e. "noapictimer" is not on the command line. This defeats
    the whole purpose of "noapictimer". It should be there to make boxen
    work, where the local APIC timer actually has a hardware problem,
    e.g. the nx6325.

    The current implementation of x86_64 only fixes the ACPI c-states
    related problem where the APIC timer stops in C3(2), nothing else.

    On nx6325 and other AMD X2 equipped systems which have the C1E
    enabled we run into the following:

    PIT keeps jiffies (and the system) running, but the local APIC timer
    interrupts can get out of sync due to this C1E effect.

    I don't think this is a critical problem, but it is wrong
    nevertheless.

    I think it's safe to revert the C1E patch and postpone the fix to the
    clock events conversion."

    On further reflection, Thomas noted:

    "It's even worse than I thought on the first check:

    "noapictimer" on the command line of an SMP box prevents _ONLY_ the
    boot CPU apic timer from being used. But the secondary CPU is still
    unconditionally setting up the APIC timer and uses the non
    calibrated variable calibration_result, which is of course 0, to
    setup the APIC timer. Wreckage guaranteed."

    so we'll just have to wait for the x86 merge to hopefully fix this up
    for x86-64.

    Tested-and-requested-by: Rafael J. Wysocki
    Acked-by: Thomas Gleixner
    Signed-off-by: Linus Torvalds

    Linus Torvalds
     
  • At least one system (a Geode system with a Digital Logic BIOS) has
    been found which suddenly stops reporting the SMAP signature when
    reading the E820 memory chain. We can't know what, exactly, broke in
    the BIOS, so if we detect this situation, declare the E820 data
    unusable and fall back to E801.

    Also, revert to original behavior of always probing all memory
    methods; that way all the memory information is available to the
    kernel.

    Signed-off-by: H. Peter Anvin
    Cc: Jordan Crouse
    Cc: Joerg Pommnitz

    H. Peter Anvin
     
  • execve's error paths don't activate (and therefore pin) the mm before
    calling exit_mmap to free it up, so don't try to unpin unless it is
    actually pinned. This prevents a BUG_ON from triggering.

    Signed-off-by: Jeremy Fitzhardinge
    Cc: Christian Ostheimer
    Signed-off-by: Linus Torvalds

    Jeremy Fitzhardinge
     
  • commit 3556ddfa9284a86a59a9b78fe5894430f6ab4eef titled

    [PATCH] x86-64: Disable local APIC timer use on AMD systems with C1E

    solves a problem with AMD dual core laptops e.g. HP nx6325 (Turion 64
    X2) with C1E enabled:

    When both cores go into idle at the same time, then the system switches
    into C1E state, which is basically the same as C3. This stops the local
    apic timer.

    This was debugged right after the dyntick merge on i386 and despite the
    patch title it fixes only the 32 bit path.

    x86_64 is still missing this fix. It seems that mainline is not really
    affected by this issue, as the PIT is running and keeps jiffies
    incrementing, but that's just waiting for trouble.

    -mm suffers from this problem due to the x86_64 high resolution timer
    patches.

    This is a quick and dirty port of the i386 code to x86_64.

    I spent quite a time with Rafael to debug the -mm / hrt wreckage until
    someone pointed us to this. I really had forgotten that we debugged this
    half a year ago already.

    Sigh, is it just me or is there something yelling arch/x86 into my ear?

    Signed-off-by: Thomas Gleixner
    Tested-by: Rafael J. Wysocki
    Signed-off-by: Linus Torvalds

    Thomas Gleixner
     

26 Sep, 2007

1 commit

  • The commit 8b6f50ef1d5cc86b278eb42bc91630fad455fb10 seems to have
    been affected by a mismerge of a duplicate patch
    (d054b36ffd302ec65aabec16a0c60ddd9e6b5a62) - both the
    spufs_dir_contents and spufs_dir_nosched_contents have been given
    write-only signal notification files.

    This change reverts the spufs_dir_contents array to use the
    readable signal notification file implementation.

    Signed-off-by: Jeremy Kerr
    Acked-by: Arnd Bergmann
    Signed-off-by: Paul Mackerras

    Jeremy Kerr
     

25 Sep, 2007

2 commits

  • When PTRACE_O_TRACEEXEC is used, a ptrace call to fetch the registers at
    the PTRACE_EVENT_EXEC stop (PTRACE_PEEKUSR) will oops in CHECK_FULL_REGS.
    With recent versions, "gdb --args /bin/sh -c 'exec /bin/true'" and "run" at
    the (gdb) prompt is sufficient to produce this. I also have written an
    isolated test case, see https://bugzilla.redhat.com/show_bug.cgi?id=301791#c15.

    This change fixes the problem by clearing the low bit of pt_regs.trap in
    start_thread so that FULL_REGS is true again. This is correct since all of
    the GPRs that "full" refers to are cleared in start_thread.

    Signed-off-by: Roland McGrath
    Signed-off-by: Paul Mackerras

    Roland McGrath
     
  • Issue reported and original patch by Kevin Kissel, cleaner (imho)
    implementation by me.

    Signed-off-by: Ralf Baechle

    Ralf Baechle
     

23 Sep, 2007

1 commit

  • When compiling the Blackfin kernel, checksyscalls.pl will report lots of missing syscalls warnings.
    This patch will add some missing syscalls which make sense on Blackfin arch

    After appling this patch, toolchain should be rebuilt. Then recompiling the kernel with the new
    toolchain.

    Signed-off-by: Bryan Wu

    Bryan Wu
     

22 Sep, 2007

6 commits