15 May, 2009

1 commit

  • This patch fixes a regression caused by commit
    b1569e99c795bf83b4ddf41c4f1c42761ab7f75e
    "ACPI: move thermal trip handling to generic thermal layer"
    which accidentally changed trip point trigger condition to
    temp > trip_temp

    This patch changes the trigger condition back to
    temp >= trip_temp

    Signed-off-by: Vladimir Zajac
    Acked-by: Zhang Rui
    Acked-by: Matthew Garrett
    Signed-off-by: Andrew Morton
    Signed-off-by: Len Brown

    Vladimir Zajac
     

09 May, 2009

8 commits


08 May, 2009

13 commits

  • Extend erase timeout in M25P80 SPI Flash driver.

    The M25P80 drivers fails erasing sectors on a M25P128 because the ready
    wait timeout is too short. Change the timeout from a simple loop count to a
    suitable number of seconds.

    Signed-off-by: Peter Horton
    Tested-by: Martin Michlmayr
    Signed-off-by: Andrew Morton
    Signed-off-by: David Woodhouse

    Peter Horton
     
  • Lockdep reports the warning below when Li tries to offline one cpu:

    [ 110.835487] =================================
    [ 110.835616] [ INFO: inconsistent lock state ]
    [ 110.835688] 2.6.30-rc4-00336-g8c9ed89 #52
    [ 110.835757] ---------------------------------
    [ 110.835828] inconsistent {HARDIRQ-ON-W} -> {IN-HARDIRQ-W} usage.
    [ 110.835908] swapper/0 [HC1[1]:SC0[0]:HE0:SE1] takes:
    [ 110.835982] (cmci_discover_lock){?.+...}, at: [] cmci_clear+0x30/0x9b

    cmci_clear() can be called via smp_call_function_single().

    It is better to disable interrupt while holding cmci_discover_lock,
    to turn it into an irq-safe lock - we can deadlock otherwise.

    [ Impact: fix possible deadlock in the MCE code ]

    Reported-by: Shaohua Li
    Signed-off-by: Hidetoshi Seto
    Cc: Andi Kleen
    Cc: Andrew Morton
    LKML-Reference:
    Signed-off-by: Ingo Molnar
    Reported-by: Shaohua Li

    Hidetoshi Seto
     
  • The Xen pagetables are no longer implicitly reserved as part of the other
    i386_start_kernel reservations, so make sure we explicitly reserve them.
    This prevents them from being released into the general kernel free page
    pool and reused.

    [ Impact: fix Xen guest crash ]

    Also-Bisected-by: Bryan Donlan
    Signed-off-by: Jeremy Fitzhardinge
    Cc: Xen-devel
    Cc: Linus Torvalds
    LKML-Reference:
    Signed-off-by: Ingo Molnar

    Jeremy Fitzhardinge
     
  • Tim Starling reported that crashdump will panic with kernel compiled
    with CONFIG_KEXEC_JUMP due to null pointer deference in
    machine_kexec_32.c: machine_kexec(), when deferencing
    kexec_image. Refering to:

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

    This patch fixes the BUG via replacing global variable reference:
    kexec_image in machine_kexec() with local variable reference: image,
    which is more appropriate, and will not be null.

    Same BUG is in machine_kexec_64.c too, so fixed too in the same way.

    [ Impact: fix crash on kexec ]

    Reported-by: Tim Starling
    Signed-off-by: Huang Ying
    LKML-Reference:
    Signed-off-by: H. Peter Anvin

    Huang Ying
     
  • With the introduction of the .brk section, special care must be taken
    that no unused page table entries remain if _brk_end and _end are
    separated by a 2M page boundary. cleanup_highmap() runs very early and
    hence cannot take care of that, hence potential entries needing to be
    removed past _brk_end must be cleared once the brk allocator has done
    its job.

    [ Impact: avoids undesirable TLB aliases ]

    Signed-off-by: Jan Beulich
    Signed-off-by: H. Peter Anvin

    Jan Beulich
     
  • If the first non-reserved (sub-)range doesn't fit the size requested,
    an endless loop will be entered. If a range returned from
    find_e820_area_size() turns out insufficient in size, the range must
    be skipped before calling the function again.

    [ Impact: fixes boot hang on some platforms ]

    Signed-off-by: Jan Beulich
    Signed-off-by: H. Peter Anvin

    Jan Beulich
     
  • * git://git.kernel.org/pub/scm/linux/kernel/git/sfrench/cifs-2.6: (32 commits)
    [CIFS] Fix double list addition in cifs posix open code
    [CIFS] Allow raw ntlmssp code to be enabled with sec=ntlmssp
    [CIFS] Fix SMB uid in NTLMSSP authenticate request
    [CIFS] NTLMSSP reenabled after move from connect.c to sess.c
    [CIFS] Remove sparse warning
    [CIFS] remove checkpatch warning
    [CIFS] Fix final user of old string conversion code
    [CIFS] remove cifs_strfromUCS_le
    [CIFS] NTLMSSP support moving into new file, old dead code removed
    [CIFS] Fix endian conversion of vcnum field
    [CIFS] Remove trailing whitespace
    [CIFS] Remove sparse endian warnings
    [CIFS] Add remaining ntlmssp flags and standardize field names
    [CIFS] Fix build warning
    cifs: fix length handling in cifs_get_name_from_search_buf
    [CIFS] Remove unneeded QuerySymlink call and fix mapping for unmapped status
    [CIFS] rename cifs_strndup to cifs_strndup_from_ucs
    Added loop check when mounting DFS tree.
    Enable dfs submounts to handle remote referrals.
    [CIFS] Remove older session setup implementation
    ...

    Linus Torvalds
     
  • Remove adding open file entry twice to lists in the file
    Do not fill file info twice in case of posix opens and creates

    Signed-off-by: Shirish Pargaonkar
    Signed-off-by: Steve French

    Steve French
     
  • Don't check vm_region::vm_start is page aligned in add_nommu_region() because
    the region may reflect some non-page-aligned mapped file, such as could be
    obtained from RomFS XIP.

    Signed-off-by: David Howells
    Acked-by: Greg Ungerer
    Signed-off-by: Linus Torvalds

    David Howells
     
  • * 'for-linus' of git://neil.brown.name/md:
    md: remove rd%d links immediately after stopping an array.
    md: remove ability to explicit set an inactive array to 'clean'.
    md: constify VFTs
    md: tidy up status_resync to handle large arrays.
    md: fix some (more) errors with bitmaps on devices larger than 2TB.
    md/raid10: don't clear bitmap during recovery if array will still be degraded.
    md: fix loading of out-of-date bitmap.

    Linus Torvalds
     
  • It's a really simple patch that basically just open-codes the current
    "secure_ip_id()" call, but when open-coding it we now use a _static_
    hashing area, so that it gets updated every time.

    And to make sure somebody can't just start from the same original seed of
    all-zeroes, and then do the "half_md4_transform()" over and over until
    they get the same sequence as the kernel has, each iteration also mixes in
    the same old "current->pid + jiffies" we used - so we should now have a
    regular strong pseudo-number generator, but we also have one that doesn't
    have a single seed.

    Note: the "pid + jiffies" is just meant to be a tiny tiny bit of noise. It
    has no real meaning. It could be anything. I just picked the previous
    seed, it's just that now we keep the state in between calls and that will
    feed into the next result, and that should make all the difference.

    I made that hash be a per-cpu data just to avoid cache-line ping-pong:
    having multiple CPU's write to the same data would be fine for randomness,
    and add yet another layer of chaos to it, but since get_random_int() is
    supposed to be a fast interface I did it that way instead. I considered
    using "__raw_get_cpu_var()" to avoid any preemption overhead while still
    getting the hash be _mostly_ ping-pong free, but in the end good taste won
    out.

    Signed-off-by: Ingo Molnar
    Signed-off-by: Linus Torvalds

    Linus Torvalds
     
  • * master.kernel.org:/home/rmk/linux-2.6-arm:
    [ARM] 5507/1: support R_ARM_MOVW_ABS_NC and MOVT_ABS relocation types
    [ARM] 5506/1: davinci: DMA_32BIT_MASK --> DMA_BIT_MASK(32)
    i.MX31: Disable CPU_32v6K in mx3_defconfig.
    mx3fb: Fix compilation with CONFIG_PM
    mx27ads: move PBC mapping out of vmalloc space
    MXC: remove BUG_ON in interrupt handler
    mx31: remove mx31moboard_defconfig
    ARM: ARCH_MXC should select HAVE_CLK
    mxc : BUG in imx_dma_request
    mxc : Clean up properly when imx_dma_free() used without imx_dma_disable()
    [ARM] mv78xx0: update defconfig
    [ARM] orion5x: update defconfig
    [ARM] Kirkwood: update defconfig
    [ARM] Kconfig typo fix: "PXA930" -> "CPU_PXA930".
    [ARM] S3C2412: Add missing cache flush in suspend code
    [ARM] S3C: Add UDIVSLOT support for newer UARTS
    [ARM] S3C64XX: Add S3C64XX_PA_IIS{0,1} to

    Linus Torvalds
     
  • From: Bruce Ashfield

    To fully support the armv7-a instruction set/optimizations, support
    for the R_ARM_MOVW_ABS_NC and R_ARM_MOVT_ABS relocation types is
    required.

    The MOVW and MOVT are both load-immediate instructions, MOVW loads 16
    bits into the bottom half of a register, and MOVT loads 16 bits into the
    top half of a register.

    The relocation information for these instructions has a full 32 bit
    value, plus an addend which is stored in the 16 immediate bits in the
    instruction itself. The immediate bits in the instruction are not
    contiguous (the register # splits it into a 4 bit and 12 bit value),
    so the addend has to be extracted accordingly and added to the value.
    The value is then split and put into the instruction; a MOVW uses the
    bottom 16 bits of the value, and a MOVT uses the top 16 bits.

    Signed-off-by: David Borman
    Signed-off-by: Bruce Ashfield
    Signed-off-by: Paul Gortmaker
    Signed-off-by: Russell King

    Paul Gortmaker
     

07 May, 2009

18 commits

  • As per commit 284901a90a9e0b812ca3f5f852cbbfb60d10249d, use
    DMA_BIT_MASK(n)

    Signed-off-by: Kevin Hilman
    Signed-off-by: Russell King

    Kevin Hilman
     
  • md maintains link in sys/mdXX/md/ to identify which device has
    which role in the array. e.g.
    rd2 -> dev-sda

    indicates that the device with role '2' in the array is sda.

    These links are only present when the array is active. They are
    created immediately after ->run is called, and so should be removed
    immediately after ->stop is called.
    However they are currently removed a little bit later, and it is
    possible for ->run to be called again, thus adding these links, before
    they are removed.

    So move the removal earlier so they are consistently only present when
    the array is active.

    Signed-off-by: NeilBrown

    NeilBrown
     
  • Being able to write 'clean' to an 'array_state' of an inactive array
    to activate it in 'clean' mode is both unnecessary and inconvenient.

    It is unnecessary because the same can be achieved by writing
    'active'. This activates and array, but it still remains 'clean'
    until the first write.

    It is inconvenient because writing 'clean' is more often used to
    cause an 'active' array to revert to 'clean' mode (thus blocking
    any writes until a 'write-pending' is promoted to 'active').

    Allowing 'clean' to both activate an array and mark an active array as
    clean can lead to races: One program writes 'clean' to mark the
    active array as clean at the same time as another program writes
    'inactive' to deactivate (stop) and active array. Depending on which
    writes first, the array could be deactivated and immediately
    reactivated which isn't what was desired.

    So just disable the use of 'clean' to activate an array.

    This avoids a race that can be triggered with mdadm-3.0 and external
    metadata, so it suitable for -stable.

    Reported-by: Rafal Marszewski
    Acked-by: Dan Williams
    Cc:
    Signed-off-by: NeilBrown

    NeilBrown
     
  • Signed-off-by: Jan Engelhardt
    Signed-off-by: NeilBrown

    Jan Engelhardt
     
  • Two problems in status_resync.
    1/ It still used Kilobytes as the basic block unit, while most code
    now uses sectors uniformly.
    2/ It doesn't allow for the possibility that max_sectors exceeds
    the range of "unsigned long".

    So
    - change "max_blocks" to "max_sectors", and store sector numbers
    in there and in 'resync'
    - Make 'rt' a 'sector_t' so it can temporarily hold the number of
    remaining sectors.
    - use sector_div rather than normal division.
    - change the magic '100' used to preserve precision to '32'.
    + making it a power of 2 makes division easier
    + it doesn't need to be as large as it was chosen when we averaged
    speed over the entire run. Now we average speed over the last 30
    seconds or so.

    Reported-by: "Mario 'BitKoenig' Holbe"
    Signed-off-by: NeilBrown

    NeilBrown
     
  • If a write intent bitmap covers more than 2TB, we sometimes work with
    values beyond 32bit, so these need to be sector_t. This patches
    add the required casts to some unsigned longs that are being shifted
    up.

    This will affect any raid10 larger than 2TB, or any raid1/4/5/6 with
    member devices that are larger than 2TB.

    Signed-off-by: NeilBrown
    Reported-by: "Mario 'BitKoenig' Holbe"
    Cc: stable@kernel.org

    NeilBrown
     
  • If we have a raid10 with multiple missing devices, and we recover just
    one of these to a spare, then we risk (depending on the bitmap and
    array chunk size) clearing bits of the bitmap for which recovery isn't
    complete (because a device is still missing).

    This can lead to a subsequent "re-add" being recovered without
    any IO happening, which would result in loss of data.

    This patch takes the safe approach of not clearing bitmap bits
    if the array will still be degraded.

    This patch is suitable for all active -stable kernels.

    Cc: stable@kernel.org
    Signed-off-by: NeilBrown

    NeilBrown
     
  • When md is loading a bitmap which it knows is out of date, it fills
    each page with 1s and writes it back out again. However the
    write_page call makes used of bitmap->file_pages and
    bitmap->last_page_size which haven't been set correctly yet. So this
    can sometimes fail.

    Move the setting of file_pages and last_page_size to before the call
    to write_page.

    This bug can cause the assembly on an array to fail, thus making the
    data inaccessible. Hence I think it is a suitable candidate for
    -stable.

    Cc: stable@kernel.org
    Reported-by: Vojtech Pavlik
    Signed-off-by: NeilBrown

    NeilBrown
     
  • Fix zillions of -mm x86_64 allmodconfig build errors - the file uses
    EXPORT_SYMBOL() and kmalloc but misses the needed includes.

    Cc: Greg Kroah-Hartman
    Cc: Joerg Roedel
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andrew Morton
     
  • With the removal of duplicate unpack_to_rootfs() (commit
    df52092f3c97788592ef72501a43fb7ac6a3cfe0) the messages displayed do not
    actually correspond to what the kernel is doing. In addition, depending
    if ramdisks are supported or not, the messages are not at all the same.

    So keep the messages more in sync with what is really doing the kernel,
    and only display a second message in case of failure. This also ensure
    that the printk message cannot be split by other printk's.

    Signed-off-by: Eric Piel
    Acked-by: H. Peter Anvin
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Eric Piel
     
  • NOMMU mmap() has an option controlled by a sysctl variable that determines
    whether the allocations made by do_mmap_private() should have the excess
    space trimmed off and returned to the allocator. Make the initial setting
    of this variable a Kconfig configuration option.

    The reason there can be excess space is that the allocator only allocates
    in power-of-2 size chunks, but mmap()'s can be made in sizes that aren't a
    power of 2.

    There are two alternatives:

    (1) Keep the excess as dead space. The dead space then remains unused for the
    lifetime of the mapping. Mappings of shared objects such as libc, ld.so
    or busybox's text segment may retain their dead space forever.

    (2) Return the excess to the allocator. This means that the dead space is
    limited to less than a page per mapping, but it means that for a transient
    process, there's more chance of fragmentation as the excess space may be
    reused fairly quickly.

    During the boot process, a lot of transient processes are created, and
    this can cause a lot of fragmentation as the pagecache and various slabs
    grow greatly during this time.

    By turning off the trimming of excess space during boot and disabling
    batching of frees, Coldfire can manage to boot.

    A better way of doing things might be to have /sbin/init turn this option
    off. By that point libc, ld.so and init - which are all long-duration
    processes - have all been loaded and trimmed.

    Reported-by: Lanttor Guo
    Signed-off-by: David Howells
    Tested-by: Lanttor Guo
    Cc: Greg Ungerer
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    David Howells
     
  • Clamp zone_batchsize() to 0 under NOMMU conditions to stop
    free_hot_cold_page() from queueing and batching frees.

    The problem is that under NOMMU conditions it is really important to be
    able to allocate large contiguous chunks of memory, but when munmap() or
    exit_mmap() releases big stretches of memory, return of these to the buddy
    allocator can be deferred, and when it does finally happen, it can be in
    small chunks.

    Whilst the fragmentation this incurs isn't so much of a problem under MMU
    conditions as userspace VM is glued together from individual pages with
    the aid of the MMU, it is a real problem if there isn't an MMU.

    By clamping the page freeing queue size to 0, pages are returned to the
    allocator immediately, and the buddy detector is more likely to be able to
    glue them together into large chunks immediately, and fragmentation is
    less likely to occur.

    By disabling batching of frees, and by turning off the trimming of excess
    space during boot, Coldfire can manage to boot.

    Reported-by: Lanttor Guo
    Signed-off-by: David Howells
    Tested-by: Lanttor Guo
    Cc: Greg Ungerer
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    David Howells
     
  • Use roundown_pow_of_two(N) in zone_batchsize() rather than (1 <<
    (fls(N)-1)) as they are equivalent, and with the former it is easier to
    see what is going on.

    Signed-off-by: David Howells
    Tested-by: Lanttor Guo
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    David Howells
     
  • The isl29003 does not interpret the return value of
    i2c_smbus_write_byte_data() correctly and hence causes an error on system
    resume.

    Also introduce power_state_before_suspend and restore the chip's power
    state upon wakeup.

    Signed-off-by: Daniel Mack
    Cc: "Rafael J. Wysocki"
    Cc: Jean Delvare
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Daniel Mack
     
  • The cyblafb driver is removed so remove its last trace in the makefile.

    Signed-off-by: Krzysztof Helt
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Krzysztof Helt
     
  • If alloc_vmap_area() fails the allocated struct vmap_area has to be freed.

    Signed-off-by: Ralph Wuerthner
    Reviewed-by: Christoph Lameter
    Reviewed-by: Minchan Kim
    Cc: Nick Piggin
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Ralph Wuerthner
     
  • Change last "i386" to X86-32 as is used throughout the rest of the file.
    Change combination of X86-32,X86-64 to just X86, as is done throughout the
    rest of the file.

    Add a note that hyphens and underscores are equivalent in parameter names,
    with examples.

    Signed-off-by: Randy Dunlap
    Cc: Jan Engelhardt
    Cc: Christopher Sylvain
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Randy Dunlap
     
  • The software fillrect routines do not work properly when the number of
    pixels per machine word is not an integer. To see that, run the following
    command on a fbdev console with a 24bpp video mode, using a
    non-accelerated driver such as (u)vesafb:

    reset ; echo -e '\e[41mtest\e[K'

    The expected result is 'test' displayed on a line with red background.
    Instead of that, 'test' has a red background, but the rest of the line
    (rendered using fillrect()) contains a distored colorful pattern.

    This patch fixes the problem by correctly computing rotation shifts. It
    has been tested in a 24bpp mode on 32- and 64-bit little-endian machines.

    Signed-off-by: Michal Januszewski
    Acked-by: Krzysztof Helt
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Michal Januszewski