Permalink
Switch branches/tags
Commits on Apr 9, 2010
  1. Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel…

    …/git/roland/infiniband
    
    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband:
      IB/mlx4: Check correct variable for allocation failure
      RDMA/nes: Correct cap.max_inline_data assignment in nes_query_qp()
      RDMA/cm: Set num_paths when manually assigning path records
      IB/cm: Fix device_create() return value check
    torvalds committed Apr 9, 2010
  2. Merge branch 'for-linus' of git://git390.marist.edu/pub/scm/linux-2.6

    * 'for-linus' of git://git390.marist.edu/pub/scm/linux-2.6:
      [S390] Update default configuration.
      [S390] nss: add missing .previous statement to asm function
      [S390] increase default size of vmalloc area
      [S390] s390: disable change bit override
      [S390] fix io_return critical section cleanup
      [S390] sclp_async: potential buffer overflow
      [S390] arch/s390/kernel: Add missing unlock
    torvalds committed Apr 9, 2010
  3. Merge branch 'for-linus' of git://git.kernel.dk/linux-2.6-block

    * 'for-linus' of git://git.kernel.dk/linux-2.6-block: (34 commits)
      cfq-iosched: Fix the incorrect timeslice accounting with forced_dispatch
      loop: Update mtime when writing using aops
      block: expose the statistics in blkio.time and blkio.sectors for the root cgroup
      backing-dev: Handle class_create() failure
      Block: Fix block/elevator.c elevator_get() off-by-one error
      drbd: lc_element_by_index() never returns NULL
      cciss: unlock on error path
      cfq-iosched: Do not merge queues of BE and IDLE classes
      cfq-iosched: Add additional blktrace log messages in CFQ for easier debugging
      i2o: Remove the dangerous kobj_to_i2o_device macro
      block: remove 16 bytes of padding from struct request on 64bits
      cfq-iosched: fix a kbuild regression
      block: make CONFIG_BLK_CGROUP visible
      Remove GENHD_FL_DRIVERFS
      block: Export max number of segments and max segment size in sysfs
      block: Finalize conversion of block limits functions
      block: Fix overrun in lcm() and move it to lib
      vfs: improve writeback_inodes_wb()
      paride: fix off-by-one test
      drbd: fix al-to-on-disk-bitmap for 4k logical_block_size
      ...
    torvalds committed Apr 9, 2010
  4. Merge branch 'drm-linus' of git://git.kernel.org/pub/scm/linux/kernel…

    …/git/airlied/drm-2.6
    
    * 'drm-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6: (29 commits)
      drm/nouveau: bail out of auxch transaction if we repeatedly recieve defers
      drm/nv50: implement gpio set/get routines
      drm/nv50: parse/use some more de-magiced parts of gpio table entries
      drm/nouveau: store raw gpio table entry in bios gpio structs
      drm/nv40: Init some tiling-related PGRAPH state.
      drm/nv50: Add NVA3 support in ctxprog/ctxvals generator.
      drm/nv50: another dodgy DP hack
      drm/nv50: punt hotplug irq handling out to workqueue
      drm/nv50: preserve an unknown SOR_MODECTRL value for DP encoders
      drm/nv50: Allow using the NVA3 new compute class.
      drm/nv50: cleanup properly if PDISPLAY init fails
      drm/nouveau: fixup the init failure paths some more
      drm/nv50: fix instmem init on IGPs if stolen mem crosses 4GiB mark
      drm/nv40: add LVDS table quirk for Dell Latitude D620
      drm/nv40: rework lvds table parsing
      drm/nouveau: detect vram amount once, and save the value
      drm/nouveau: remove some unused members from drm_nouveau_private
      drm/nouveau: Make use of TTM busy_placements.
      drm/nv50: add more 0x100c80 flushy magic
      drm/nv50: fix fbcon when framebuffer above 4GiB mark
      ...
    torvalds committed Apr 9, 2010
  5. radix_tree_tag_get() is not as safe as the docs make out [ver #2]

    radix_tree_tag_get() is not safe to use concurrently with radix_tree_tag_set()
    or radix_tree_tag_clear().  The problem is that the double tag_get() in
    radix_tree_tag_get():
    
    		if (!tag_get(node, tag, offset))
    			saw_unset_tag = 1;
    		if (height == 1) {
    			int ret = tag_get(node, tag, offset);
    
    may see the value change due to the action of set/clear.  RCU is no protection
    against this as no pointers are being changed, no nodes are being replaced
    according to a COW protocol - set/clear alter the node directly.
    
    The documentation in linux/radix-tree.h, however, says that
    radix_tree_tag_get() is an exception to the rule that "any function modifying
    the tree or tags (...) must exclude other modifications, and exclude any
    functions reading the tree".
    
    The problem is that the next statement in radix_tree_tag_get() checks that the
    tag doesn't vary over time:
    
    			BUG_ON(ret && saw_unset_tag);
    
    This has been seen happening in FS-Cache:
    
    	https://www.redhat.com/archives/linux-cachefs/2010-April/msg00013.html
    
    To this end, remove the BUG_ON() from radix_tree_tag_get() and note in various
    comments that the value of the tag may change whilst the RCU read lock is held,
    and thus that the return value of radix_tree_tag_get() may not be relied upon
    unless radix_tree_tag_set/clear() and radix_tree_delete() are excluded from
    running concurrently with it.
    
    Reported-by: Romain DEGEZ <romain.degez@smartjog.com>
    Signed-off-by: David Howells <dhowells@redhat.com>
    Acked-by: Nick Piggin <npiggin@suse.de>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    dhowells committed with torvalds Apr 6, 2010
  6. slub: Fix kmem_ptr_validate() for non-kernel pointers

    As suggested by Linus, fix up kmem_ptr_validate() to handle non-kernel pointers
    more graciously. The patch changes kmem_ptr_validate() to use the newly
    introduced kern_ptr_validate() helper to check that a pointer is a valid kernel
    pointer before we attempt to convert it into a 'struct page'.
    
    Cc: Andrew Morton <akpm@linux-foundation.org>
    Cc: Ingo Molnar <mingo@elte.hu>
    Cc: Matt Mackall <mpm@selenic.com>
    Cc: Nick Piggin <npiggin@suse.de>
    Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
    Acked-by: Christoph Lameter <cl@linux-foundation.org>
    Acked-by: David Rientjes <rientjes@google.com>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Pekka Enberg committed with torvalds Apr 7, 2010
  7. slab: Generify kernel pointer validation

    As suggested by Linus, introduce a kern_ptr_validate() helper that does some
    sanity checks to make sure a pointer is a valid kernel pointer.  This is a
    preparational step for fixing SLUB kmem_ptr_validate().
    
    Cc: Andrew Morton <akpm@linux-foundation.org>
    Cc: Christoph Lameter <cl@linux-foundation.org>
    Cc: David Rientjes <rientjes@google.com>
    Cc: Ingo Molnar <mingo@elte.hu>
    Cc: Matt Mackall <mpm@selenic.com>
    Cc: Nick Piggin <npiggin@suse.de>
    Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Pekka Enberg committed with torvalds Apr 7, 2010
  8. Revert "memory-hotplug: add 0x prefix to HEX block_size_bytes"

    This reverts commit ba168fc.
    
    It changes user-visible sysfs interfaces, and breaks some existing user
    space applications which apparently rely on the fact that the output
    does not contain the "0x" prefix.
    
    Requested-by: Heiko Carstens <heiko.carstens@de.ibm.com>
    Acked-by: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
    Acked-by: Wu Fengguang <fengguang.wu@intel.com>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    torvalds committed Apr 9, 2010
  9. [S390] Update default configuration.

    Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
    Martin Schwidefsky committed with Martin Schwidefsky Apr 9, 2010
  10. [S390] nss: add missing .previous statement to asm function

    The savesys_ipl_nss asm function is put into the .init.text section
    however it is missing a ".previous" section which would restore the
    previous section.
    Luckily all functions in early.c are init functions so it doesn't
    matter currently.
    
    Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
    Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
    Heiko Carstens committed with Martin Schwidefsky Apr 9, 2010
  11. [S390] increase default size of vmalloc area

    The default size of the vmalloc area is currently 1 GB. The memory resource
    controller uses about 10 MB of vmalloc space per gigabyte of memory. That
    turns a system with more than ~100 GB memory unbootable with the default
    vmalloc size. It costs us nothing to increase the default size to some
    more adequate value, e.g. 128 GB.
    
    Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
    Martin Schwidefsky committed with Martin Schwidefsky Apr 9, 2010
  12. [S390] s390: disable change bit override

    commit 6a985c6
    ([S390] s390: use change recording override for kernel mapping)
    deactivated the change bit recording for the kernel mapping to
    improve the performance. This works most of the time, but there
    are cases (e.g. kernel runs in home space, futex atomic compare xcmg)
    where we modify user memory with the kernel mapping instead of the
    user mapping.
    Instead of fixing these cases, this patch just deactivates change bit
    override to avoid future problems with other kernel code that might
    use the kernel mapping for user memory.
    
    CC: stable@kernel.org
    Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com>
    Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
    borntraeger committed with Martin Schwidefsky Apr 9, 2010
  13. [S390] fix io_return critical section cleanup

    If a machine check interrupts the io interrupt handler on one of the
    instructions between io_return and io_leave the critical section
    cleanup code will move the return psw to io_work_loop. By doing that
    the switch from the asynchronous interrupt stack to the process stack
    is skipped. If e.g. TIF_NEED_RESCHED is set things break because
    the scheduler is called with the asynchronous interrupts stack.
    Moving the psw back to io_return instead fixes the problem.
    
    Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
    Martin Schwidefsky committed with Martin Schwidefsky Apr 9, 2010
  14. [S390] sclp_async: potential buffer overflow

    "len" hasn't been properly range checked so we shouldn't use it as an
    array offset.  This can only be written to by root but it would still be
    annoying to accidentally write more than 3 characters and corrupt your
    memory.
    
    Signed-off-by: Dan Carpenter <error27@gmail.com>
    Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
    error27 committed with Martin Schwidefsky Apr 9, 2010
  15. [S390] arch/s390/kernel: Add missing unlock

    In the default case the lock is not unlocked.  The return is
    converted to a goto, to share the unlock at the end of the function.
    
    A simplified version of the semantic patch that finds this problem is as
    follows: (http://coccinelle.lip6.fr/)
    
    // <smpl>
    @r exists@
    expression E1;
    identifier f;
    @@
    
    f (...) { <+...
    * spin_lock_irq (E1,...);
    ... when != E1
    * return ...;
    ...+> }
    // </smpl>
    
    Signed-off-by: Julia Lawall <julia@diku.dk>
    Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
    Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
    JuliaLawall committed with Martin Schwidefsky Apr 9, 2010
  16. cfq-iosched: Fix the incorrect timeslice accounting with forced_dispatch

    When CFQ dispatches requests forcefully due to a barrier or changing iosched,
    it runs through all cfqq's dispatching requests and then expires each queue.
    However, it does not activate a cfqq before flushing its IOs resulting in
    using stale values for computing slice_used.
    This patch fixes it by calling activate queue before flushing reuqests from
    each queue.
    
    This is useful mostly for barrier requests because when the iosched is changing
    it really doesnt matter if we have incorrect accounting since we're going to
    break down all structures anyway.
    
    We also now expire the current timeslice before moving on with the dispatch
    to accurately account slice used for that cfqq.
    
    Signed-off-by: Divyesh Shah<dpshah@google.com>
    Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
    Divyesh Shah committed with Jens Axboe Apr 9, 2010
  17. Merge remote branch 'nouveau/for-airlied' of ../drm-nouveau-next into…

    … drm-linus
    
    * 'nouveau/for-airlied' of ../drm-nouveau-next: (21 commits)
      drm/nouveau: bail out of auxch transaction if we repeatedly recieve defers
      drm/nv50: implement gpio set/get routines
      drm/nv50: parse/use some more de-magiced parts of gpio table entries
      drm/nouveau: store raw gpio table entry in bios gpio structs
      drm/nv40: Init some tiling-related PGRAPH state.
      drm/nv50: Add NVA3 support in ctxprog/ctxvals generator.
      drm/nv50: another dodgy DP hack
      drm/nv50: punt hotplug irq handling out to workqueue
      drm/nv50: preserve an unknown SOR_MODECTRL value for DP encoders
      drm/nv50: Allow using the NVA3 new compute class.
      drm/nv50: cleanup properly if PDISPLAY init fails
      drm/nouveau: fixup the init failure paths some more
      drm/nv50: fix instmem init on IGPs if stolen mem crosses 4GiB mark
      drm/nv40: add LVDS table quirk for Dell Latitude D620
      drm/nv40: rework lvds table parsing
      drm/nouveau: detect vram amount once, and save the value
      drm/nouveau: remove some unused members from drm_nouveau_private
      drm/nouveau: Make use of TTM busy_placements.
      drm/nv50: add more 0x100c80 flushy magic
      drm/nv50: fix fbcon when framebuffer above 4GiB mark
      ...
    Dave Airlie committed Apr 9, 2010
  18. drm/nouveau: bail out of auxch transaction if we repeatedly recieve d…

    …efers
    
    There's one known case where we never stop recieving DEFER, and loop here
    forever.  Lets not do that..
    
    Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
    skeggsb committed Mar 15, 2010
  19. drm/nv50: implement gpio set/get routines

    Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
    skeggsb committed Apr 7, 2010
  20. drm/nv50: parse/use some more de-magiced parts of gpio table entries

    Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
    skeggsb committed Apr 7, 2010
  21. drm/nouveau: store raw gpio table entry in bios gpio structs

    And use our own version of the GPIO table for the INIT_GPIO opcode.
    
    Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
    skeggsb committed Apr 7, 2010
  22. drm/nv40: Init some tiling-related PGRAPH state.

    Fixes garbled 3D on an nv46 card.
    
    Reported-by: Francesco Marella <francesco.marella@gmail.com>
    Signed-off-by: Francisco Jerez <currojerez@riseup.net>
    Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
    curro committed with skeggsb Apr 6, 2010
  23. drm/nv50: Add NVA3 support in ctxprog/ctxvals generator.

    Signed-off-by: Marcin Kościelnicki <koriakin@0x04.net>
    Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
    koriakin committed with skeggsb Apr 2, 2010
  24. drm/nv50: another dodgy DP hack

    Allows *some* DP cards to keep working in some corner cases that most
    people shouldn't hit.  I hit it all the time with development, so this
    can stay for now.
    
    Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
    skeggsb committed Mar 30, 2010
  25. drm/nv50: punt hotplug irq handling out to workqueue

    On DP outputs we'll likely end up running vbios init tables here, which
    may sleep.
    
    Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
    skeggsb committed Mar 30, 2010
  26. drm/nv50: preserve an unknown SOR_MODECTRL value for DP encoders

    This value interacts with some registers we don't currently know how to
    program properly ourselves.  The default of 5 that we were using matches
    what the VBIOS on early DP cards do, but later ones use 6, which would
    cause nouveau to program an incorrect mode on these chips.
    
    Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
    skeggsb committed Mar 29, 2010
  27. drm/nv50: Allow using the NVA3 new compute class.

    Signed-off-by: Marcin Kościelnicki <koriakin@0x04.net>
    Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
    koriakin committed with skeggsb Mar 24, 2010
  28. drm/nv50: cleanup properly if PDISPLAY init fails

    Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
    skeggsb committed Mar 25, 2010
  29. drm/nouveau: fixup the init failure paths some more

    Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
    skeggsb committed Mar 25, 2010
  30. drm/nv50: fix instmem init on IGPs if stolen mem crosses 4GiB mark

    Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
    skeggsb committed Mar 19, 2010
  31. drm/nv40: rework lvds table parsing

    All indications seem to be that the version 0x30 table should be handled
    the same way as 0x40 (as used on G80), at least for the parts that we
    currently try use.
    
    This commit cleans up the parsing to make it clearer about what we're
    actually trying to achieve, and unifies the 0x30/0x40 parsing.
    
    Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
    skeggsb committed Mar 18, 2010
  32. drm/nouveau: detect vram amount once, and save the value

    As opposed to repeatedly reading the amount back from the GPU every
    time we need to know the VRAM size.
    
    We should now fail to load gracefully on detecting no VRAM, rather than
    something potentially messy happening.
    
    Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
    skeggsb committed Mar 17, 2010
  33. drm/nouveau: remove some unused members from drm_nouveau_private

    Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
    skeggsb committed Mar 17, 2010