23 Dec, 2010

1 commit


21 Dec, 2010

3 commits


20 Dec, 2010

1 commit

  • …nel.org/pub/scm/linux/kernel/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:
    x86-32: Make sure we can map all of lowmem if we need to
    x86, vt-d: Handle previous faults after enabling fault handling
    x86: Enable the intr-remap fault handling after local APIC setup
    x86, vt-d: Fix the vt-d fault handling irq migration in the x2apic mode
    x86, vt-d: Quirk for masking vtd spec errors to platform error handling logic
    x86, xsave: Use alloc_bootmem_align() instead of alloc_bootmem()
    bootmem: Add alloc_bootmem_align()
    x86, gcc-4.6: Use gcc -m options when building vdso
    x86: HPET: Chose a paranoid safe value for the ETIME check
    x86: io_apic: Avoid unused variable warning when CONFIG_GENERIC_PENDING_IRQ=n

    * 'perf-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
    perf: Fix off by one in perf_swevent_init()
    perf: Fix duplicate events with multiple-pmu vs software events
    ftrace: Have recordmcount honor endianness in fn_ELF_R_INFO
    scripts/tags.sh: Add magic for trace-events
    tracing: Fix panic when lseek() called on "trace" opened for writing

    Linus Torvalds
     

19 Dec, 2010

3 commits


18 Dec, 2010

10 commits

  • The current tile rt_sigreturn() syscall pattern uses the common idiom
    of loading up pt_regs with all the saved registers from the time of
    the signal, then anticipating the fact that we will clobber the ABI
    "return value" register (r0) as we return from the syscall by setting
    the rt_sigreturn return value to whatever random value was in the pt_regs
    for r0.

    However, this breaks in our 64-bit kernel when running "compat" tasks,
    since we always sign-extend the "return value" register to properly
    handle returned pointers that are in the upper 2GB of the 32-bit compat
    address space. Doing this to the sigreturn path then causes occasional
    random corruption of the 64-bit r0 register.

    Instead, we stop doing the crazy "load the return-value register"
    hack in sigreturn. We already have some sigreturn-specific assembly
    code that we use to pass the pt_regs pointer to C code. We extend that
    code to also set the link register to point to a spot a few instructions
    after the usual syscall return address so we don't clobber the saved r0.
    Now it no longer matters what the rt_sigreturn syscall returns, and the
    pt_regs structure can be cleanly and completely reloaded.

    Signed-off-by: Chris Metcalf

    Chris Metcalf
     
  • Previously we were just setting up the "tp" register in the
    new task as started by clone() in libc. However, this is not
    quite right, since in principle a signal might be delivered to
    the new task before it had its TLS set up. (Of course, this race
    window still exists for resetting the libc getpid() cached value
    in the new task, in principle. But in any case, we are now doing
    this exactly the way all other architectures do it.)

    This change is important for 2.6.37 since the tile glibc we will
    be submitting upstream will not set TLS in user space any more,
    so it will only work on a kernel that has this fix. It should
    also be taken for 2.6.36.x in the stable tree if possible.

    Signed-off-by: Chris Metcalf
    Cc: stable

    Chris Metcalf
     
  • Seen with malta_defconfig on Linus' tree:

    CC arch/mips/mm/sc-mips.o
    arch/mips/mm/sc-mips.c: In function 'mips_sc_is_activated':
    arch/mips/mm/sc-mips.c:77: error: 'config2' undeclared (first use in this function)
    arch/mips/mm/sc-mips.c:77: error: (Each undeclared identifier is reported only once
    arch/mips/mm/sc-mips.c:77: error: for each function it appears in.)
    arch/mips/mm/sc-mips.c:81: error: 'tmp' undeclared (first use in this function)
    make[2]: *** [arch/mips/mm/sc-mips.o] Error 1
    make[1]: *** [arch/mips/mm] Error 2
    make: *** [arch/mips] Error 2

    [Ralf: Cosmetic changes to minimize the number of arguments passed to
    mips_sc_is_activated]

    Signed-off-by: Kevin Cernekee
    Patchwork: https://patchwork.linux-mips.org/patch/1752/
    Signed-off-by: Ralf Baechle

    Kevin Cernekee
     
  • This prevents allocation of the last 2MB before 4GB.

    The experiment described here shows Windows 7 ignoring the last 1MB:
    https://bugzilla.kernel.org/show_bug.cgi?id=23542#c27

    This patch ignores the top 2MB instead of just 1MB because H. Peter Anvin
    says "There will be ROM at the top of the 32-bit address space; it's a fact
    of the architecture, and on at least older systems it was common to have a
    shadow 1 MiB below."

    Acked-by: H. Peter Anvin
    Signed-off-by: Bjorn Helgaas
    Signed-off-by: Jesse Barnes

    Bjorn Helgaas
     
  • When we allocate address space, e.g., to assign it to a PCI device, don't
    allocate anything mentioned in the BIOS E820 memory map.

    On recent machines (2008 and newer), we assign PCI resources from the
    windows described by the ACPI PCI host bridge _CRS. On many Dell
    machines, these windows overlap some E820 reserved areas, e.g.,

    BIOS-e820: 00000000bfe4dc00 - 00000000c0000000 (reserved)
    pci_root PNP0A03:00: host bridge window [mem 0xbff00000-0xdfffffff]

    If we put devices at 0xbff00000, they don't work, probably because
    that's really RAM, not I/O memory. This patch prevents that by removing
    the 0xbfe4dc00-0xbfffffff area from the "available" resource.

    I'm not very happy with this solution because Windows solves the problem
    differently (it seems to ignore E820 reserved areas and it allocates
    top-down instead of bottom-up; details at comment 45 of the bugzilla
    below). That means we're vulnerable to BIOS defects that Windows would not
    trip over. For example, if BIOS described a device in ACPI but didn't
    mention it in E820, Windows would work fine but Linux would fail.

    Reference: https://bugzilla.kernel.org/show_bug.cgi?id=16228
    Acked-by: H. Peter Anvin
    Signed-off-by: Bjorn Helgaas
    Signed-off-by: Jesse Barnes

    Bjorn Helgaas
     
  • This implements arch_remove_reservations() so allocate_resource() can
    avoid any arch-specific reserved areas. This currently just avoids the
    BIOS area (the first 1MB), but could be used for E820 reserved areas if
    that turns out to be necessary.

    We previously avoided this area in pcibios_align_resource(). This patch
    moves the test from that PCI-specific path to a generic path, so *all*
    resource allocations will avoid this area.

    Acked-by: H. Peter Anvin
    Signed-off-by: Bjorn Helgaas
    Signed-off-by: Jesse Barnes

    Bjorn Helgaas
     
  • This reverts commit dc9887dc02e37bcf83f4e792aa14b07782ef54cf.

    Acked-by: H. Peter Anvin
    Signed-off-by: Bjorn Helgaas
    Signed-off-by: Jesse Barnes

    Bjorn Helgaas
     
  • This reverts commit 1af3c2e45e7a641e774bbb84fa428f2f0bf2d9c9.

    Acked-by: H. Peter Anvin
    Signed-off-by: Bjorn Helgaas
    Signed-off-by: Jesse Barnes

    Bjorn Helgaas
     
  • * 'for_linus' of git://github.com/at91linux/linux-2.6-at91:
    at91: Refactor Stamp9G20 and PControl G20 board file
    at91: Fix uhpck clock rate in upll case

    Linus Torvalds
     
  • * 'kvm-updates/2.6.37' of git://git.kernel.org/pub/scm/virt/kvm/kvm:
    KVM: Fix preemption counter leak in kvm_timer_init()
    KVM: enlarge number of possible CPUID leaves
    KVM: SVM: Do not report xsave in supported cpuid
    KVM: Fix OSXSAVE after migration

    Linus Torvalds
     

17 Dec, 2010

22 commits

  • As PControl G20 is a carrier board for the Stamp9G20 SoM, some code can
    be shared. Therefore board-stamp9g20.c is refactored to allow reusing the
    SoM initialization and board-pcontrol-g20.c is modified to use it.

    Signed-off-by: Christian Glindkamp
    Signed-off-by: Nicolas Ferre

    Christian Glindkamp
     
  • The uhpck clock should be divided from the utmi clock, not its parent
    (main). This change is mostly cosmetic as the uhpck rate value is not
    used anywhere except for the debugfs clock output.

    Signed-off-by: Ryan Mallon
    Signed-off-by: Nicolas Ferre

    Ryan Mallon
     
  • Fix interrupt priority level handling on SH-Mobile ARM.

    SH-Mobile ARM platforms using multiple interrupt priority
    levels need this patch to fix a potential dead lock that
    may occur if multiple interrupts with different levels
    are pending simultaneously.

    The default INTC configuration is to use the same priority
    level for all interrupts, so this issue does not trigger by
    default. It is however common for board code to override the
    interrupt priority for certain interrupt sources depending
    on the application. Without this fix such boards may lock up.

    In detail, this patch updates the INTC code in entry-macro.S
    to make sure that the INTLVLA register gets set as expected.

    To trigger this bug modify the board specific code to adjust
    the interrupt priority level for the ethernet chip. After
    changing the priority level simply use flood ping to drown
    the board with interrupts.

    This patch applies to INTCA-based processors such as sh7372,
    sh7377 and sh7372. GIC-based processors are not affected.

    Suitable for v2.6.37-rc and stable from v2.6.34 to v2.6.36.

    Cc: stable@kernel.org
    Signed-off-by: Magnus Damm
    Tested-by: Kuninori Morimoto
    Signed-off-by: Paul Mundt

    Magnus Damm
     
  • Turn down the warning noise from the compiler,
    basically a SH-Mobile specific version of the
    patch located in the RMK patch tracker:

    6484/1: "fix compile warning in mm/init.c",

    Without this patch the following warning triggers:

    CC arch/arm/kernel/sys_arm.o
    arch/arm/mm/init.c: In function 'mem_init':
    arch/arm/mm/init.c:606: warning: format '%08lx' expects type 'long unsigned int', but argument 12 has type 'unsigned int'
    CC arch/arm/kernel/traps.o

    Signed-off-by: Magnus Damm
    Signed-off-by: Paul Mundt

    Magnus Damm
     
  • This patch adds new entries required by the new version of MAX8998
    driver. Without them, the driver fails to init. See commit 50f19a4596

    Signed-off-by: Marek Szyprowski
    Signed-off-by: Kyungmin Park
    Signed-off-by: Kukjin Kim

    Marek Szyprowski
     
  • S3C2416 PM code uses low-level sleep routines from S3C2412 code,
    but these routines are compiled only for S3C2412 SoC.

    Split S3C2412_PM to two parts: S3C2412_PM, S3C2412_PM_SLEEP and
    select last in S3C2416's Kconfig.

    Signed-off-by: Yauhen Kharuzhy
    Signed-off-by: Kukjin Kim

    Yauhen Kharuzhy
     
  • Should be CONFIG_S3C_DEV_NAND instead of CONFIG_S3C_DEVICE_NAND.

    Cc: Ben Dooks
    Signed-off-by: Kukjin Kim

    Kukjin Kim
     
  • A relocatable kernel can be anywhere in lowmem -- and in the case of a
    kdump kernel, is likely to be fairly high. Since the early page
    tables map everything from address zero up we need to make sure we
    allocate enough brk that we can map all of lowmem if we need to.

    Reported-by: Stanislaw Gruszka
    Signed-off-by: H. Peter Anvin
    Tested-by: Yinghai Lu
    LKML-Reference:

    H. Peter Anvin
     
  • * 'upstream' of git://git.linux-mips.org/pub/scm/upstream-linus: (28 commits)
    MIPS: Add a CONFIG_FORCE_MAX_ZONEORDER Kconfig option.
    MIPS: LD/SD o32 macro GAS fix update
    MIPS: Alchemy: fix build with SERIAL_8250=n
    MIPS: Rename mips_dma_cache_sync back to dma_cache_sync
    MIPS: MT: Fix typo in comment.
    SSB: Fix nvram_get on BCM47xx platform
    MIPS: BCM47xx: Swap serial console if ttyS1 was specified.
    MIPS: BCM47xx: Use sscanf for parsing mac address
    MIPS: BCM47xx: Fill values for b43 into SSB sprom
    MIPS: BCM47xx: Do not read config from CFE
    MIPS: FDT size is a be32
    MIPS: Fix CP0 COUNTER clockevent race
    MIPS: Fix regression on BCM4710 processor detection
    MIPS: JZ4740: Fix pcm device name
    MIPS: Separate two consecutive loads in memset.S
    MIPS: Send proper signal and siginfo on FP emulator faults.
    MIPS: AR7: Fix loops per jiffies on TNETD7200 devices
    MIPS: AR7: Fix double ar7_gpio_init declaration
    MIPS: Rework GENERIC_HARDIRQS Kconfig.
    MIPS: Alchemy: Add return value check for strict_strtoul()
    ...

    Linus Torvalds
     
  • For huge page support with base page size of 16K or 32K, we have to
    increase the MAX_ORDER so that huge pages can be allocated.

    [Ralf: I don't think a user should have to configure obscure constants like
    this but for the time being this will have to suffice.]

    Signed-off-by: David Daney
    To: linux-mips@linux-mips.org
    Patchwork: https://patchwork.linux-mips.org/patch/1685/
    Signed-off-by: Ralf Baechle

    David Daney
     
  • I am about to commit:

    http://sourceware.org/ml/binutils/2010-10/msg00033.html

    that fixes a problem with the LD/SD macro currently implemented by GAS for
    the o32 ABI in an inconsistent way. This is best illustrated with a
    simple program, which I'm copying here from the message above for easier
    reference:

    $ cat ld.s
    ld $5,32767($4)
    ld $5,32768($4)

    This gets assebled into the following output:

    $ mips-linux-as -32 -mips3 -o ld.o ld.s
    $ mips-linux-objdump -d ld.o

    ld.o: file format elf32-tradbigmips

    Disassembly of section .text:

    00000000 :
    0: dc857fff ld a1,32767(a0)
    4: 3c010001 lui at,0x1
    8: 00810821 addu at,a0,at
    c: 8c258000 lw a1,-32768(at)
    10: 8c268004 lw a2,-32764(at)
    ...

    Oops!

    The GAS fix makes the macro behave in a consistent way and pairs of LW/SW
    instructions to be output as appropriate regardless of the size of the
    offset associated with the address used. The machine instruction is still
    available, but to reach it macros have to be disabled first. This has a
    side effect of requiring the use of a machine-addressable memory operand.

    As some platforms require 64-bit operations for accesses to some I/O
    registers LD/SD instructions are used in a couple of places in Linux
    regardless of the ABI selected. Here's a fix for some pieces of code
    affected I've been able to track down. The fix should be backwards
    compatible with all supported binutils releases in existence and can be
    used as a reference for any other places or off-tree code. The use of the
    "R" constraint guarantees a machine-addressable operand.

    Signed-off-by: Maciej W. Rozycki
    Cc: linux-mips@linux-mips.org
    Patchwork: https://patchwork.linux-mips.org/patch/1680/
    Signed-off-by: Ralf Baechle

    Maciej W. Rozycki
     
  • In commit 7d172bfe ("Alchemy: Add UART PM methods") I introduced
    platform PM methods which call a function of the 8250 driver;
    this patch works around link failures when the kernel is built
    without 8250 support.

    Signed-off-by: Manuel Lauss
    To: Linux-MIPS
    Patchwork: https://patchwork.linux-mips.org/patch/1737/
    Signed-off-by: Ralf Baechle

    Manuel Lauss
     
  • This fixes IP22 and IP28 build errors.

    Signed-off-by: Ralf Baechle

    Ralf Baechle
     
  • Signed-off-by: Ralf Baechle

    Ralf Baechle
     
  • Some devices like the Netgear WGT634U are using ttyS1 for default console
    output. We should switch to that console if it was given in the kernel_args
    parameters.

    Signed-off-by: Hauke Mehrtens
    To: linux-mips@linux-mips.org
    Cc: Hauke Mehrtens
    Patchwork: https://patchwork.linux-mips.org/patch/1848/
    Signed-off-by: Ralf Baechle

    Hauke Mehrtens
     
  • Instead of writing own function for parsing the mac address we now
    use sscanf.

    Signed-off-by: Hauke Mehrtens
    To: linux-mips@linux-mips.org
    Cc: Hauke Mehrtens
    Patchwork: https://patchwork.linux-mips.org/patch/1847/
    Signed-off-by: Ralf Baechle

    Hauke Mehrtens
     
  • Fill the sprom with all available values from the nvram. Most of these
    new values are needed for the b43 or b43legacy driver.

    Parts of this patch have been in OpenWRT for a long time and were written
    by Michael Buesch.

    Signed-off-by: Hauke Mehrtens
    To: linux-mips@linux-mips.org
    Cc: Hauke Mehrtens
    Patchwork: https://patchwork.linux-mips.org/patch/1846/
    Signed-off-by: Ralf Baechle

    Hauke Mehrtens
     
  • The config options read out here are not stored in CFE but only in NVRAM on
    the devices. Remove reading from CFE and only access the NVRAM. Reading out
    CFE does not harm but is useless here.

    Signed-off-by: Hauke Mehrtens
    To: linux-mips@linux-mips.org
    Cc: Hauke Mehrtens
    Patchwork: https://patchwork.linux-mips.org/patch/1845/
    Signed-off-by: Ralf Baechle

    Hauke Mehrtens
     
  • The totalsize field was be32. And the reserve bootmem would cause failure.

    Signed-off-by: Thomas Chou
    To: devicetree-discuss@lists.ozlabs.org
    Cc: linux-kernel@vger.kernel.org
    Cc: linux-mips@linux-mips.org
    Cc: grant.likely@secretlab.ca
    Cc: David Daney
    Cc: Dezhong Diao
    Patchwork: https://patchwork.linux-mips.org/patch/1838/
    Signed-off-by: Ralf Baechle

    Thomas Chou
     
  • Consider the following test case:

    write_c0_compare(read_c0_count());

    Even if the counter doesn't increment during execution, this might not
    generate an interrupt until the counter wraps around. The CPU may
    perform the comparison each time CP0 COUNT increments, not when CP0
    COMPARE is written.

    If mips_next_event() is called with a very small delta, and CP0 COUNT
    increments during the calculation of "cnt += delta", it is possible
    that CP0 COMPARE will be written with the current value of CP0 COUNT.
    If this is detected, the function should return -ETIME, to indicate
    that the interrupt might not have actually gotten scheduled.

    Signed-off-by: Kevin Cernekee
    Cc: linux-mips@linux-mips.org
    Cc: linux-kernel@vger.kernel.org
    Patchwork: https://patchwork.linux-mips.org/patch/1836/
    Signed-off-by: Ralf Baechle

    Kevin Cernekee
     
  • BCM4710 uses the BMIPS32 core (like BCM6345), not the MIPS 4Kc core as
    was previously believed.

    Signed-off-by: Kevin Cernekee
    Tested-by: Alexandros C. Couloumbis
    Patchwork: https://patchwork.linux-mips.org/patch/1837/
    Signed-off-by: Ralf Baechle

    Kevin Cernekee
     
  • As part the ASoC multi-component patch (commit f0fba2ad) the jz4740 pcm
    driver was renamed to 'jz4740-pcm-audio'. Adjust the device name
    accordingly.

    Signed-off-by: Lars-Peter Clausen
    Cc: linux-mips@linux-mips.org
    Cc: linux-kernel@vger.kernel.org
    Patchwork: https://patchwork.linux-mips.org/patch/1770/
    Signed-off-by: Ralf Baechle

    Lars-Peter Clausen