01 Oct, 2009

31 commits

  • While 32-bit processes can't directly access R8...R15, they can
    gain access to these registers by temporarily switching themselves
    into 64-bit mode.

    Therefore, registers not preserved anyway by called C functions
    (i.e. R8...R11) must be cleared prior to returning to user mode.

    Signed-off-by: Jan Beulich
    Cc:
    LKML-Reference:
    Signed-off-by: Ingo Molnar

    Jan Beulich
     
  • Remove unused CONFIG FAST_CMPXCHG_LOCAL from Kconfig.

    Reported-by: Robert P. J. Day
    Signed-off-by: Jaswinder Singh Rajput
    Acked-by: Christoph Lameter
    Cc: Pekka Enberg
    Cc: Matt Mackall
    Cc: Andrew Morton
    Cc: "Robert P. J. Day"
    Cc: linux-mm@kvack.org
    LKML-Reference:
    Signed-off-by: Ingo Molnar

    Jaswinder Singh Rajput
     
  • Commit c953094 ("early_printk: Allow more than one early console")
    introduced a regression in the parsing of the earlyprintk= kernel
    arguments.

    If you specify "earlyprintk=serial,ttyS0,115200" as a kernel
    argument, the "serial,ttyS" should be parsed as a single argument
    and not as "serial" and then "ttyS".

    Also update the documentation to reflect you can specify the ttyS
    directly without the "serial" argument.

    Signed-off-by: Jason Wessel
    Cc: Len Brown
    Cc: Greg KH
    Cc: Linus Torvalds
    Cc: Andrew Morton
    Cc: Johannes Weiner
    LKML-Reference:
    Signed-off-by: Ingo Molnar

    Jason Wessel
     
  • Conditionaly compile cmpxchg8b_emu.o and EXPORT_SYMBOL(cmpxchg8b_emu).

    This reduces the kernel size a bit.

    Signed-off-by: Eric Dumazet
    Cc: Arjan van de Ven
    Cc: Martin Schwidefsky
    Cc: John Stultz
    Cc: Peter Zijlstra
    Cc: Linus Torvalds
    LKML-Reference:
    Signed-off-by: Ingo Molnar

    Eric Dumazet
     
  • Just like ip_fast_csum, the assembly snippet in csum_ipv6_magic needs a
    memory clobber, as it is only passed the address of the buffer, not a
    memory reference to the buffer itself.

    This caused failures in Hurd's pfinetv4 when we tried to compile it with
    gcc-4.3 (bogus checksums).

    Signed-off-by: Samuel Thibault
    Acked-by: David S. Miller
    Cc: Andi Kleen
    Cc:
    Signed-off-by: Andrew Morton
    Signed-off-by: H. Peter Anvin
    Signed-off-by: Ingo Molnar

    Samuel Thibault
     
  • Try to avoid the 'alternates()' code when we can statically
    determine that cmpxchg8b is fine. We already have that
    CONFIG_x86_CMPXCHG64 (enabled by PAE support), and we could easily
    also enable it for some of the CPU cases.

    Note, this patch only adds CMPXCHG8B for the obvious Intel CPU's,
    not for others. (There was something really messy about cmpxchg8b
    and clone CPU's, so if you enable it on other CPUs later, do it
    carefully.)

    If we avoid that asm-alternative thing when we can assume the
    instruction exists, we'll generate less support crud, and we'll
    avoid the whole issue with that extra 'nop' for padding instruction
    sizes etc.

    LKML-Reference:
    Signed-off-by: Ingo Molnar

    Linus Torvalds
     
  • …l/git/tip/linux-2.6-tip

    * 'sched-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
    sched_clock: Fix atomicity/continuity bug by using cmpxchg64()
    x86: Provide an alternative() based cmpxchg64()

    Linus Torvalds
     
  • Commit def0a9b2573 (sched_clock: Make it NMI safe) assumed
    cmpxchg() of 64bit values was available on X86_32.

    That is not so - and causes some subtle scheduler misbehavior due
    to incorrect timestamps off to up by ~4 seconds.

    Two symptoms are known right now:

    - interactivity problems seen by Arjan: up to 600 msecs
    latencies instead of the expected 20-40 msecs. These
    latencies are very visible on the desktop.

    - incorrect CPU stats: occasionally too high percentages in 'top',
    and crazy CPU usage stats.

    Reported-by: Martin Schwidefsky
    Signed-off-by: Eric Dumazet
    Signed-off-by: Arjan van de Ven
    Acked-by: Linus Torvalds
    Cc: John Stultz
    Cc: Peter Zijlstra
    LKML-Reference:
    Signed-off-by: Ingo Molnar

    Eric Dumazet
     
  • cmpxchg64() today generates, to quote Linus, "barf bag" code.

    cmpxchg64() is about to get used in the scheduler to fix a bug there,
    but it's a prerequisite that cmpxchg64() first be made non-sucking.

    This patch turns cmpxchg64() into an efficient implementation that
    uses the alternative() mechanism to just use the raw instruction on
    all modern systems.

    Note: the fallback is NOT smp safe, just like the current fallback
    is not SMP safe. (Interested parties with i486 based SMP systems
    are welcome to submit fix patches for that.)

    Signed-off-by: Arjan van de Ven
    Acked-by: Linus Torvalds
    [ fixed asm constraint bug ]
    Fixed-by: Eric Dumazet
    Cc: Martin Schwidefsky
    Cc: John Stultz
    Cc: Peter Zijlstra
    LKML-Reference:
    Signed-off-by: Ingo Molnar

    Arjan van de Ven
     
  • * 'upstream' of git://ftp.linux-mips.org/pub/scm/upstream-linus:
    MIPS: Avoid spurious make includecheck message
    MIPS: VPE: Get rid of BKL.
    MIPS: VPE: Fix build after the credential changes a while ago.
    MIPS: Excite: Get rid of BKL.
    MIPS: Sibyte: Get rid of BKL.
    MIPS: BCM63xx: Add PCMCIA & Cardbus support.
    MIPS: MSP71xx: request_irq() failure ignored in msp_pcibios_config_access()
    MIPS: Decrease size of au1xxx_dbdma_pm_regs[][]
    MIPS: SMP: Inline arch_send_call_function_{single_ipi,ipi_mask}
    MIPS: SMP: Fix build.
    MIPS: MIPSxx SC: Avoid destructive invalidation on partial L2 cachelines.
    MIPS: Sibyte: Fix compilation error.
    MIPS: BCM1480: Re-apply patch lost due to bad resolution of merge conflict.
    MIPS: BCM63xx: Add serial driver for bcm63xx integrated UART.
    MIPS: Loongson2: Fix typo "enalbe" -> "enable"
    MIPS: SMTC: Remove duplicate structure field initialization
    MIPS: Remove duplicated #include
    MIPS: BCM63xx: Remove duplicated #include

    Linus Torvalds
     
  • arch/mips/include/asm/unaligned.h: linux/unaligned/generic.h is included more than once.

    Entirely legitimate but just noise.

    Signed-off-by: Ralf Baechle

    Ralf Baechle
     
  • Signed-off-by: Ralf Baechle

    Ralf Baechle
     
  • Signed-off-by: Ralf Baechle

    Ralf Baechle
     
  • It's not obvious what good it was supposed to do here anyway.

    Signed-off-by: Ralf Baechle

    Ralf Baechle
     
  • Signed-off-by: Ralf Baechle

    Ralf Baechle
     
  • Signed-off-by: Maxime Bizon
    Reviewed-by: Wolfram Sang
    Signed-off-by: Ralf Baechle

    Maxime Bizon
     
  • Produce an error if request_irq() fails.

    Signed-off-by: Roel Kluin
    Cc: "Ithamar R. Adema"
    Signed-off-by: Andrew Morton
    Signed-off-by: Ralf Baechle

    Roel Kluin
     
  • There are 16 individual channels (NUM_DBDMA_CHANS) to save/restore plus the
    global ddma block config (the +1). The last register in a channel can be
    skipped since it's read-only (at offset 0x18).

    Signed-off-by: Roel Kluin
    Cc: Manuel Lauss
    Signed-off-by: Andrew Morton
    Signed-off-by: Ralf Baechle

    Roel Kluin
     
  • Signed-off-by: Ralf Baechle

    Ralf Baechle
     
  • commit 48a048fed82a8e5fdd8618574f6d3de1a0d67a50
    Author: Rusty Russell
    Date: Thu Sep 24 09:34:44 2009 -0600

    apparently only passed the "looks good" level of QA ;-)

    Signed-off-by: Ralf Baechle

    Ralf Baechle
     
  • This extends commit a8ca8b64e3fdfec17679cba0ca5ce6e3ffed092d to cover
    MIPSxx-style board cache code.

    Signed-off-by: Kevin Cernekee
    Signed-off-by: Ralf Baechle

    Kevin Cernekee
     
  • Build error introduced by d4f587c67fc39e0030ddd718675e252e208da4d7.

    Signed-off-by: Mark Mason
    Signed-off-by: Ralf Baechle

    Mark Mason
     
  • Patch 14275ccdb1e4b487cca745aba994699c426a31ee and
    d5dedd4507d307eb3f35f21b6e16f336fdc0d82a are conflicting and the
    conflict was resolved badly in merge
    92241940be501f798cb21db344bbb3d1ec3c4f1c resulting in the BCM1480 changes
    of 14275ccdb1e4b487cca745aba994699c426a31ee getting lost. Sort out the
    damage.

    Reported and initial patch by Mark Mason .

    Signed-off-by: Ralf Baechle

    Ralf Baechle
     
  • Signed-off-by: Maxime Bizon
    Acked-by: Greg Kroah-Hartman
    Signed-off-by: Ralf Baechle

    Maxime Bizon
     
  • Signed-off-by: Uwe Kleine-König
    Cc: Yanhua
    Cc: Robert Richter
    Acked-by: Wu Zhangjin
    Signed-off-by: Ralf Baechle

    Uwe Kleine-König
     
  • The definition of the irq_ipi structure has two initializations of the
    flags field. This combines them.

    [Ralf: The issue was originally introduced by commit
    be4894196d79455f420dd7bb78be7dc73bec115c (linux-mips.org) rsp.
    033890b084adfa367c544864451d7730552ce8bf (kernel.org). The original
    intention of the code was to initialize .flags with both flags ored together.
    The broken C code as actually implemented will be compiled by an equally
    broken gcc to use only the last initialization, that is IRQF_PERCPU
    which means this turned into an SMTC bug for 2.6.23 and newer.]

    The semantic match that finds this problem is as follows:
    (http://coccinelle.lip6.fr/)

    //
    @r@
    identifier I, s, fld;
    position p0,p;
    expression E;
    @@

    struct I s =@p0 { ... .fld@p = E, ...};

    @s@
    identifier I, s, r.fld;
    position r.p0,p;
    expression E;
    @@

    struct I s =@p0 { ... .fld@p = E, ...};

    @script:python@
    p0 << r.p0;
    fld << r.fld;
    ps << s.p;
    pr << r.p;
    @@

    if int(ps[0].line)!=int(pr[0].line) or int(ps[0].column)!=int(pr[0].column):
    cocci.print_main(fld,p0)
    //

    Signed-off-by: Julia Lawall
    Signed-off-by: Ralf Baechle

    Julia Lawall
     
  • Remove duplicated #include in arch/mips/kernel/smp.c.

    Signed-off-by: Huang Weiyi
    Signed-off-by: Ralf Baechle

    Huang Weiyi
     
  • Remove duplicated #include in arch/mips/bcm63xx/boards/board_bcm963xx.c.

    Signed-off-by: Huang Weiyi
    Signed-off-by: Ralf Baechle

    Huang Weiyi
     
  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ryusuke/nilfs2:
    nilfs2: fix missing initialization of i_dir_start_lookup member
    nilfs2: fix missing zero-fill initialization of btree node cache

    Linus Torvalds
     
  • * 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4:
    ext4: Fix time encoding with extra epoch bits
    ext4: Add a stub for mpage_da_data in the trace header
    jbd2: Use tracepoints for history file
    ext4: Use tracepoints for mb_history trace file
    ext4, jbd2: Drop unneeded printks at mount and unmount time
    ext4: Handle nested ext4_journal_start/stop calls without a journal
    ext4: Make sure ext4_dirty_inode() updates the inode in no journal mode
    ext4: Avoid updating the inode table bh twice in no journal mode
    ext4: EXT4_IOC_MOVE_EXT: Check for different original and donor inodes first
    ext4: async direct IO for holes and fallocate support
    ext4: Use end_io callback to avoid direct I/O fallback to buffered I/O
    ext4: Split uninitialized extents for direct I/O
    ext4: release reserved quota when block reservation for delalloc retry
    ext4: Adjust ext4_da_writepages() to write out larger contiguous chunks
    ext4: Fix hueristic which avoids group preallocation for closed files
    ext4: Use ext4_msg() for ext4_da_writepage() errors
    ext4: Update documentation about quota mount options

    Linus Torvalds
     
  • * git://git.kernel.org/pub/scm/linux/kernel/git/hirofumi/fatfs-2.6:
    fat: Check s_dirt in fat_sync_fs()
    vfat: change the default from shortname=lower to shortname=mixed
    fat/nls: Fix handling of utf8 invalid char

    Linus Torvalds
     

30 Sep, 2009

9 commits

  • * 'pm-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/suspend-2.6:
    PM / yenta: Fix cardbus suspend/resume regression
    PM / PCMCIA: Drop second argument of pcmcia_socket_dev_suspend()

    Linus Torvalds
     
  • * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6: (33 commits)
    sony-laptop: re-read the rfkill state when resuming from suspend
    sony-laptop: check for rfkill hard block at load time
    wext: add back wireless/ dir in sysfs for cfg80211 interfaces
    wext: Add bound checks for copy_from_user
    mac80211: improve/fix mlme messages
    cfg80211: always get BSS
    iwlwifi: fix 3945 ucode info retrieval after failure
    iwlwifi: fix memory leak in command queue handling
    iwlwifi: fix debugfs buffer handling
    cfg80211: don't set privacy w/o key
    cfg80211: wext: don't display BSSID unless associated
    net: Add explicit bound checks in net/socket.c
    bridge: Fix double-free in br_add_if.
    isdn: fix netjet/isdnhdlc build errors
    atm: dereference of he_dev->rbps_virt in he_init_group()
    ax25: Add missing dev_put in ax25_setsockopt
    Revert "sit: stateless autoconf for isatap"
    net: fix double skb free in dcbnl
    net: fix nlmsg len size for skb when error bit is set.
    net: fix vlan_get_size to include vlan_flags size
    ...

    Linus Torvalds
     
  • * 'drm-next' of git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6: (25 commits)
    drm/radeon/kms: Convert R520 to new init path and associated cleanup
    drm/radeon/kms: Convert RV515 to new init path and associated cleanup
    drm: fix radeon DRM warnings when !CONFIG_DEBUG_FS
    drm: fix drm_fb_helper warning when !CONFIG_MAGIC_SYSRQ
    drm/r600: fix memory leak introduced with 64k malloc avoidance fix.
    drm/kms: make fb helper work for all drivers.
    drm/radeon/r600: fix offset handling in CS parser
    drm/radeon/kms/r600: fix forcing pci mode on agp cards
    drm/radeon/kms: fix for the extra pages copying.
    drm/radeon/kms/r600: add support for vline relocs
    drm/radeon/kms: fix some bugs in vline reloc
    drm/radeon/kms/r600: clamp vram to aperture size
    drm/kms: protect against fb helper not being created.
    drm/r600: get values from the passed in IB not the copy.
    drm: create gitignore file for radeon
    drm/radeon/kms: remove unneeded master create/destroy functions.
    drm/kms: start adding command line interface using fb.
    fb: change rules for global rules match.
    drm/radeon/kms: don't require up to 64k allocations. (v2)
    drm/radeon/kms: enable dac load detection by default.
    ...

    Trivial conflicts in drivers/gpu/drm/radeon/radeon_asic.h due to adding
    '->vga_set_state' function pointers.

    Linus Torvalds
     
  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/percpu:
    percpu: make allocation failures more verbose
    percpu: make pcpu_setup_first_chunk() failures more verbose
    percpu: make embedding first chunk allocator check vmalloc space size
    sparc64: implement page mapping percpu first chunk allocator
    percpu: make pcpu_build_alloc_info() clear static buffers
    percpu: fix unit_map[] verification in pcpu_setup_first_chunk()

    Linus Torvalds
     
  • …/git/tmlind/linux-omap-2.6

    * 'omap-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap-2.6:
    omap: Fix wrong condition check in while loop for mailbox and iommu2
    omap: rng: Use resource_size instead of manual calculation
    omap: Fix MMC gpio_wp for BeagleBoard C2 and above
    omap: Fix matrix_keymap_data usage
    omap: Fix a OMAP_MPUIO_VBASE typo for 850
    omap: Fix wrong jtag_id for 850
    omap: iovmm: Fix compiler warning
    omap: mailbox: Flush posted write when acking mailbox irq
    omap: mailbox: Execute softreset at startup
    omap: Add missing mux pin for EHCI phy reset line
    omap: Fix 44xx compile
    omap: Fix mcspi compile for 2420
    omap: Fix compile for arch/arm/mach-omap2

    Linus Torvalds
     
  • David Howells noticed (due to the compiler warning about an unused
    'pty_ops_bsd' variable) that we haven't actually been using the code
    that implements TIOCSPTLCK for legacy pty handling. It's been that way
    since 2.6.26, commit 3e8e88ca053150efdbecb45d8f481cf560ec808d to be
    exact ("pty: prepare for tty->ops changes").

    DavidH initially submitted a patch just removing the dead code entirely,
    and since nobody has apparently ever complained, I'm not entirely sure
    that wouldn't be the right thing to do. But since the whole and only
    point of the legacy pty code is to be compatible with legacy distros
    that don't use the new unix98 pty model, let's just wire it up again.

    And clean it up a bit while we're at it.

    Acked-by: David Howells
    Cc: Alan Cox
    Signed-off-by: Linus Torvalds

    Linus Torvalds
     
  • This reverts commit 22223c9b417be5fd0ab2cf9ad17eb7bd1e19f7b9, as
    requested by Andi Kleen:

    "Obviously kernels compiled with AMD support can still run on non AMD
    systems, so messages like this can never be removed at compile time."

    Requsted-by: Andi Kleen
    Cc: Borislav Petkov
    Signed-off-by: Linus Torvalds

    Linus Torvalds
     
  • "Looking at ext4.h, I think the setting of extra time fields forgets to
    mask the epoch bits so the epoch part overwrites nsec part. The second
    change is only for coherency (2 -> EXT4_EPOCH_BITS)."

    Thanks to Damien Guibouret for pointing out this problem.

    Signed-off-by: "Theodore Ts'o"

    Theodore Ts'o
     
  • The tracepoint ext4_da_write_pages has a struct mpage_da_data*
    parameter, but that struct is only defined in fs/ext4/ext4.h. This
    patch adds a forward declaration for that struct, so this tracepoint
    header can still be used by tools like SystemTap.

    This is a continuation of the fix in commit 3661d286.

    http://sourceware.org/bugzilla/show_bug.cgi?id=10703

    Signed-off-by: Josh Stone
    Signed-off-by: "Theodore Ts'o"

    Josh Stone