11 Dec, 2009

10 commits


10 Dec, 2009

1 commit

  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial: (42 commits)
    tree-wide: fix misspelling of "definition" in comments
    reiserfs: fix misspelling of "journaled"
    doc: Fix a typo in slub.txt.
    inotify: remove superfluous return code check
    hdlc: spelling fix in find_pvc() comment
    doc: fix regulator docs cut-and-pasteism
    mtd: Fix comment in Kconfig
    doc: Fix IRQ chip docs
    tree-wide: fix assorted typos all over the place
    drivers/ata/libata-sff.c: comment spelling fixes
    fix typos/grammos in Documentation/edac.txt
    sysctl: add missing comments
    fs/debugfs/inode.c: fix comment typos
    sgivwfb: Make use of ARRAY_SIZE.
    sky2: fix sky2_link_down copy/paste comment error
    tree-wide: fix typos "couter" -> "counter"
    tree-wide: fix typos "offest" -> "offset"
    fix kerneldoc for set_irq_msi()
    spidev: fix double "of of" in comment
    comment typo fix: sybsystem -> subsystem
    ...

    Linus Torvalds
     

09 Dec, 2009

1 commit

  • * 'for-2.6.33' of git://git.kernel.dk/linux-2.6-block: (113 commits)
    cfq-iosched: Do not access cfqq after freeing it
    block: include linux/err.h to use ERR_PTR
    cfq-iosched: use call_rcu() instead of doing grace period stall on queue exit
    blkio: Allow CFQ group IO scheduling even when CFQ is a module
    blkio: Implement dynamic io controlling policy registration
    blkio: Export some symbols from blkio as its user CFQ can be a module
    block: Fix io_context leak after failure of clone with CLONE_IO
    block: Fix io_context leak after clone with CLONE_IO
    cfq-iosched: make nonrot check logic consistent
    io controller: quick fix for blk-cgroup and modular CFQ
    cfq-iosched: move IO controller declerations to a header file
    cfq-iosched: fix compile problem with !CONFIG_CGROUP
    blkio: Documentation
    blkio: Wait on sync-noidle queue even if rq_noidle = 1
    blkio: Implement group_isolation tunable
    blkio: Determine async workload length based on total number of queues
    blkio: Wait for cfq queue to get backlogged if group is empty
    blkio: Propagate cgroup weight updation to cfq groups
    blkio: Drop the reference to queue once the task changes cgroup
    blkio: Provide some isolation between groups
    ...

    Linus Torvalds
     

08 Dec, 2009

1 commit


06 Dec, 2009

1 commit

  • …/git/tip/linux-2.6-tip

    * 'core-iommu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (63 commits)
    x86, Calgary IOMMU quirk: Find nearest matching Calgary while walking up the PCI tree
    x86/amd-iommu: Remove amd_iommu_pd_table
    x86/amd-iommu: Move reset_iommu_command_buffer out of locked code
    x86/amd-iommu: Cleanup DTE flushing code
    x86/amd-iommu: Introduce iommu_flush_device() function
    x86/amd-iommu: Cleanup attach/detach_device code
    x86/amd-iommu: Keep devices per domain in a list
    x86/amd-iommu: Add device bind reference counting
    x86/amd-iommu: Use dev->arch->iommu to store iommu related information
    x86/amd-iommu: Remove support for domain sharing
    x86/amd-iommu: Rearrange dma_ops related functions
    x86/amd-iommu: Move some pte allocation functions in the right section
    x86/amd-iommu: Remove iommu parameter from dma_ops_domain_alloc
    x86/amd-iommu: Use get_device_id and check_device where appropriate
    x86/amd-iommu: Move find_protection_domain to helper functions
    x86/amd-iommu: Simplify get_device_resources()
    x86/amd-iommu: Let domain_for_device handle aliases
    x86/amd-iommu: Remove iommu specific handling from dma_ops path
    x86/amd-iommu: Remove iommu parameter from __(un)map_single
    x86/amd-iommu: Make alloc_new_range aware of multiple IOMMUs
    ...

    Linus Torvalds
     

04 Dec, 2009

2 commits


03 Dec, 2009

3 commits


01 Dec, 2009

1 commit


18 Nov, 2009

2 commits

  • Allow memory hotplug and hibernation in the same kernel

    Memory hotplug and hibernation were exclusive in Kconfig. This is
    obviously a problem for distribution kernels who want to support both in
    the same image.

    After some discussions with Rafael and others the only problem is with
    parallel memory hotadd or removal while a hibernation operation is in
    process. It was also working for s390 before.

    This patch removes the Kconfig level exclusion, and simply makes the
    memory add / remove functions grab the pm_mutex to exclude against
    hibernation.

    Fixes a regression - old kernels didn't exclude memory hotadd and
    hibernation.

    Signed-off-by: Andi Kleen
    Cc: Gerald Schaefer
    Cc: KOSAKI Motohiro
    Cc: Yasunori Goto
    Acked-by: Rafael J. Wysocki
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andi Kleen
     
  • With CONFIG_MEMORY_HOTPLUG I got following warning:

    WARNING: vmlinux.o(.text+0x1276b0): Section mismatch in reference from
    the function hotadd_new_pgdat() to the function
    .meminit.text:free_area_init_node()
    The function hotadd_new_pgdat() references
    the function __meminit free_area_init_node().
    This is often because hotadd_new_pgdat lacks a __meminit
    annotation or the annotation of free_area_init_node is wrong.

    Use __ref to fix this.

    Signed-off-by: Hidetoshi Seto
    Cc: Minchan Kim
    Cc: Mel Gorman
    Cc: Yasunori Goto
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Hidetoshi Seto
     

17 Nov, 2009

1 commit


15 Nov, 2009

1 commit


12 Nov, 2009

6 commits

  • pcpu_extend_area_map() had the following two bugs.

    * It should return 1 if pcpu_lock was dropped and reacquired but it
    returned 0. This could lead to oops if free_percpu() races with
    area map extension.

    * pcpu_mem_free() was called under pcpu_lock. pcpu_mem_free() might
    end up calling vfree() which isn't IRQ safe. This could lead to
    deadlock through lock order inversion via IRQ.

    In addition, Linus pointed out that the temporary lock dropping and
    subtle three-way return value of pcpu_extend_area_map() was very ugly
    and suggested to split the function into two - pcpu_need_to_extend()
    and pcpu_extend_area_map().

    This patch restructures pcpu_extend_area_map() as suggested and fixes
    the two bugs.

    Signed-off-by: Tejun Heo
    Acked-by: Linus Torvalds
    Cc: Ingo Molnar

    Tejun Heo
     
  • Lee Schermerhorn reported that he saw bad pointer dereference in
    mem_cgroup_end_migration() when he disabled memcg by boot option.

    memcg's page migration logic works as

    mem_cgroup_prepare_migration(page, &ptr);
    do page migration
    mem_cgroup_end_migration(page, ptr);

    Now, ptr is not initialized in prepare_migration when memcg is disabled
    by boot option. This causes panic in end_migration. This patch fixes it.

    Reported-by: Lee Schermerhorn
    Cc: Balbir Singh
    Signed-off-by: KAMEZAWA Hiroyuki
    Reviewed-by: Daisuke Nishimura
    Cc:
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    KAMEZAWA Hiroyuki
     
  • Commit 341ce06f69abfafa31b9468410a13dbd60e2b237 ("page allocator:
    calculate the alloc_flags for allocation only once") altered watermark
    logic slightly by allowing rt_tasks that are handling an interrupt to set
    ALLOC_HARDER. This patch brings the watermark logic more in line with
    2.6.30.

    This change results in a reduction of the number high-order GFP_ATOMIC
    allocation failures reported. See
    http://www.gossamer-threads.com/lists/linux/kernel/1144153

    [rientjes@google.com: Spotted the problem]
    Signed-off-by: Mel Gorman
    Reviewed-by: Pekka Enberg
    Reviewed-by: Rik van Riel
    Reviewed-by: KOSAKI Motohiro
    Cc: David Rientjes
    Cc:
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Mel Gorman
     
  • If a direct reclaim makes no forward progress, it considers whether it
    should go OOM or not. Whether OOM is triggered or not, it may retry the
    allocation afterwards. In times past, this would always wake kswapd as
    well but currently, kswapd is not woken up after direct reclaim fails.
    For order-0 allocations, this makes little difference but if there is a
    heavy mix of higher-order allocations that direct reclaim is failing for,
    it might mean that kswapd is not rewoken for higher orders as much as it
    did previously.

    This patch wakes up kswapd when an allocation is being retried after a
    direct reclaim failure. It would be expected that kswapd is already
    awake, but this has the effect of telling kswapd to reclaim at the higher
    order as well.

    Signed-off-by: Mel Gorman
    Reviewed-by: Christoph Lameter
    Reviewed-by: Pekka Enberg
    Reviewed-by: KOSAKI Motohiro
    Cc:
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Mel Gorman
     
  • Unfreezes the bdi flusher task when the said task needs to exit.

    Steps to reproduce this.
    1) Mount a file system from MMC/SD card.
    2) Unmount the file system. This creates a flusher task.
    3) Attempt suspend to RAM. System is unresponsive.

    This is because the bdi flusher thread is already in the refrigerator and will
    remain so until it is thawed. The MMC driver suspend routine call stack will
    ultimately issue a 'kthread_stop' on the bdi flusher thread and will block
    until the flusher thread is exited. Since the bdi flusher thread is in the
    refrigerator it never cleans up until thawed.

    Signed-off-by: Romit Dasgupta
    Signed-off-by: Jens Axboe

    Romit Dasgupta
     
  • …/git/tip/linux-2.6-tip

    * 'core-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
    highmem: Fix debug_kmap_atomic() to also handle KM_IRQ_PTE, KM_NMI, and KM_NMI_PTE
    highmem: Fix race in debug_kmap_atomic() which could cause warn_count to underflow
    rcu: Fix long-grace-period race between forcing and initialization
    uids: Prevent tear down race

    Linus Torvalds
     

10 Nov, 2009

4 commits

  • Add a new function for freeing bootmem after the bootmem
    allocator has been released and the unreserved pages given to
    the page allocator.

    This allows us to reserve bootmem and then release it if we
    later discover it was not needed.

    ( This new API will be used by the swiotlb code to recover
    a significant amount of RAM (64MB). )

    Signed-off-by: FUJITA Tomonori
    Acked-by: Pekka Enberg
    Cc: chrisw@sous-sol.org
    Cc: dwmw2@infradead.org
    Cc: joerg.roedel@amd.com
    Cc: muli@il.ibm.com
    Cc: hannes@cmpxchg.org
    Cc: tj@kernel.org
    Cc: akpm@linux-foundation.org
    Cc: Linus Torvalds
    LKML-Reference:
    Signed-off-by: Ingo Molnar

    FUJITA Tomonori
     
  • Previously calling debug_kmap_atomic() with these types would
    cause spurious warnings.

    (triggered by SysProf using perf events)

    Signed-off-by: Soeren Sandmann Pedersen
    Cc: Linus Torvalds
    Cc: a.p.zijlstra@chello.nl
    Cc: # .31.x
    LKML-Reference:
    Signed-off-by: Ingo Molnar

    Soeren Sandmann
     
  • debug_kmap_atomic() tries to prevent ever printing more than 10
    warnings, but it does so by testing whether an unsigned integer
    is equal to 0. However, if the warning is caused by a nested
    IRQ, then this counter may underflow and the stream of warnings
    will never end.

    Fix that by using a signed integer instead.

    Signed-off-by: Soeren Sandmann Pedersen
    Cc: Linus Torvalds
    Cc: a.p.zijlstra@chello.nl
    Cc: # .31.x
    LKML-Reference:
    Signed-off-by: Ingo Molnar

    Soeren Sandmann
     
  • KSM needs a cond_resched() for CONFIG_PREEMPT_NONE, in its unbounded
    search of the unstable tree. The stable tree cases already have one,
    and originally there was one down inside get_user_pages();
    but I missed it when I converted to follow_page() instead.

    Signed-off-by: Hugh Dickins
    Acked-by: Izik Eidus
    Signed-off-by: Linus Torvalds

    Hugh Dickins
     

09 Nov, 2009

1 commit


04 Nov, 2009

2 commits


03 Nov, 2009

1 commit

  • In try_to_unuse(), swcount is a local copy of *swap_map, including the
    SWAP_HAS_CACHE bit; but a wrong comparison against swap_count(*swap_map),
    which masks off the SWAP_HAS_CACHE bit, succeeded where it should fail.

    That had the effect of resetting the mm from which to start searching
    for the next swap page, to an irrelevant mm instead of to an mm in which
    this swap page had been found: which may increase search time by ~20%.
    But we're used to swapoff being slow, so never noticed the slowdown.

    Remove that one spurious use of swap_count(): Bo Liu thought it merely
    redundant, Hugh rewrote the description since it was measurably wrong.

    Signed-off-by: Bo Liu
    Signed-off-by: Hugh Dickins
    Reviewed-by: KAMEZAWA Hiroyuki
    Cc: stable@kernel.org
    Signed-off-by: Linus Torvalds

    Bo Liu
     

01 Nov, 2009

1 commit

  • Don't pass NULL pointers to fput() in the error handling paths of the NOMMU
    do_mmap_pgoff() as it can't handle it.

    The following can be used as a test program:

    int main() { static long long a[1024 * 1024 * 20] = { 0 }; return a;}

    Without the patch, the code oopses in atomic_long_dec_and_test() as called by
    fput() after the kernel complains that it can't allocate that big a chunk of
    memory. With the patch, the kernel just complains about the allocation size
    and then the program segfaults during execve() as execve() can't complete the
    allocation of all the new ELF program segments.

    Reported-by: Robin Getz
    Signed-off-by: David Howells
    Acked-by: Robin Getz
    Cc: stable@kernel.org
    Signed-off-by: Linus Torvalds

    David Howells
     

30 Oct, 2009

1 commit