1. 10 Feb, 2010 13 commits
    • Chris Wilson's avatar
      drm/i915: Increase fb alignment to 64k · fd2e8ea5
      Chris Wilson authored
      An untiled framebuffer must be aligned to 64k. This is normally handled
      by intel_pin_and_fence_fb_obj(), but the intelfb_create() likes to be
      different and do the pinning itself. However, it aligns the buffer
      object incorrectly for pre-i965 chipsets causing a PGTBL_ERR when it is
      installed onto the output.
      
      Fixes:
        KMS error message while initializing modesetting -
        render error detected: EIR: 0x10 [i915]
        http://bugs.freedesktop.org/show_bug.cgi?id=22936Signed-off-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
      Cc: stable@kernel.org
      Signed-off-by: default avatarEric Anholt <eric@anholt.net>
      fd2e8ea5
    • Daniel Vetter's avatar
      drm/i915: Update write_domains on active list after flush. · 99fcb766
      Daniel Vetter authored
      Before changing the status of a buffer with a pending write we will await
      upon a new flush for that buffer. So we can take advantage of any flushes
      posted whilst the buffer is active and pending processing by the GPU, by
      clearing its write_domain and updating its last_rendering_seqno -- thus
      saving a potential flush in deep queues and improves flushing behaviour
      upon eviction for both GTT space and fences.
      
      In order to reduce the time spent searching the active list for matching
      write_domains, we move those to a separate list whose elements are
      the buffers belong to the active/flushing list with pending writes.
      
      Orignal patch by Chris Wilson <chris@chris-wilson.co.uk>, forward-ported
      by me.
      
      In addition to better performance, this also fixes a real bug. Before
      this changes, i915_gem_evict_everything didn't work as advertised. When
      the gpu was actually busy and processing request, the flush and subsequent
      wait would not move active and dirty buffers to the inactive list, but
      just to the flushing list. Which triggered the BUG_ON at the end of this
      function. With the more tight dirty buffer tracking, all currently busy and
      dirty buffers get moved to the inactive list by one i915_gem_flush operation.
      
      I've left the BUG_ON I've used to prove this in there.
      
      References:
        Bug 25911 - 2.10.0 causes kernel oops and system hangs
        http://bugs.freedesktop.org/show_bug.cgi?id=25911
      
        Bug 26101 - [i915] xf86-video-intel 2.10.0 (and git) triggers kernel oops
                    within seconds after login
        http://bugs.freedesktop.org/show_bug.cgi?id=26101Signed-off-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
      Signed-off-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
      Tested-by: default avatarAdam Lantos <hege@playma.org>
      Cc: stable@kernel.org
      Signed-off-by: default avatarEric Anholt <eric@anholt.net>
      99fcb766
    • Zhenyu Wang's avatar
      drm/i915: Rework DPLL calculation parameters for Ironlake · b91ad0ec
      Zhenyu Wang authored
      Got Ironlake DPLL parameter table, which reflects the hardware
      optimized values. So this one trys to list DPLL parameters for
      different output types, should potential fix clock issue seen
      on new Arrandale CPUs.
      
      This fixes DPLL setting failure on one 1920x1080 dual channel
      LVDS for Ironlake. Test has also been made on LVDS panels with
      smaller size and CRT/HDMI/DP ports for different monitors on
      their all supported modes.
      
      Update:
      - Change name of double LVDS to dual LVDS.
      - Fix SSC 120M reference clock to use the right range.
      
      Cc: CSJ <changsijay@gmail.com>
      Signed-off-by: default avatarZhenyu Wang <zhenyuw@linux.intel.com>
      Signed-off-by: default avatarEric Anholt <eric@anholt.net>
      b91ad0ec
    • Linus Torvalds's avatar
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git390.marist.edu/pub/scm/linux-2.6 · 909ccdb4
      Linus Torvalds authored
      * 'for-linus' of git://git390.marist.edu/pub/scm/linux-2.6:
        [S390] Fix struct _lowcore layout.
        [S390] qdio: prevent call trace if CHPID is offline
        [S390] qdio: continue polling for buffer state ERROR
      909ccdb4
    • Linus Torvalds's avatar
      Merge branch 'kvm-updates/2.6.33' of git://git.kernel.org/pub/scm/virt/kvm/kvm · 2cbd1883
      Linus Torvalds authored
      * 'kvm-updates/2.6.33' of git://git.kernel.org/pub/scm/virt/kvm/kvm:
        KVM: PIT: control word is write-only
        kvmclock: count total_sleep_time when updating guest clock
        Export the symbol of getboottime and mmonotonic_to_bootbased
      2cbd1883
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/hskinnemoen/avr32-2.6 · 5993fe31
      Linus Torvalds authored
      * git://git.kernel.org/pub/scm/linux/kernel/git/hskinnemoen/avr32-2.6:
        avr32: clean up memory allocation in at32_add_device_mci
        arch/avr32: Fix build failure for avr32 caused by typo
      5993fe31
    • Linus Torvalds's avatar
      Merge branch 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc · 53910146
      Linus Torvalds authored
      * 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc:
        powerpc: Fix address masking bug in hpte_need_flush()
      53910146
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/sfrench/cifs-2.6 · 5551638a
      Linus Torvalds authored
      * git://git.kernel.org/pub/scm/linux/kernel/git/sfrench/cifs-2.6:
        cifs: fix dentry hash calculation for case-insensitive mounts
        [CIFS] Don't cache timestamps on utimes due to coarse granularity
        [CIFS] Maximum username length check in session setup does not match
        cifs: fix length calculation for converted unicode readdir names
        [CIFS] Add support for TCP_NODELAY
      5551638a
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6 · 0ea45783
      Linus Torvalds authored
      * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6: (29 commits)
        drivers/net: Correct NULL test
        MAINTAINERS: networking drivers - Add git net-next tree
        net/sched: Fix module name in Kconfig
        cxgb3: fix GRO checksum check
        dst: call cond_resched() in dst_gc_task()
        netfilter: nf_conntrack: fix hash resizing with namespaces
        netfilter: xtables: compat out of scope fix
        netfilter: nf_conntrack: restrict runtime expect hashsize modifications
        netfilter: nf_conntrack: per netns nf_conntrack_cachep
        netfilter: nf_conntrack: fix memory corruption with multiple namespaces
        Bluetooth: Keep a copy of each HID device's report descriptor
        pktgen: Fix freezing problem
        igb: make certain to reassign legacy interrupt vectors after reset
        irda: add missing BKL in irnet_ppp ioctl
        irda: unbalanced lock_kernel in irnet_ppp
        ixgbe: Fix return of invalid txq
        ixgbe: Fix ixgbe_tx_map error path
        netxen: protect resource cleanup by rtnl lock
        netxen: fix tx timeout recovery for NX2031 chip
        Bluetooth: Enter active mode before establishing a SCO link.
        ...
      0ea45783
    • David Gibson's avatar
      powerpc: Fix address masking bug in hpte_need_flush() · 77058e1a
      David Gibson authored
      Commit f71dc176 'Make
      hpte_need_flush() correctly mask for multiple page sizes' introduced
      bug, which is triggered when a kernel with a 64k base page size is run
      on a system whose hardware does not 64k hash PTEs.  In this case, we
      emulate 64k pages with multiple 4k hash PTEs, however in
      hpte_need_flush() we incorrectly only mask the hardware page size from
      the address, instead of the logical page size.  This causes things to
      go wrong when we later attempt to iterate through the hardware
      subpages of the logical page.
      
      This patch corrects the error.  It has been tested on pSeries bare
      metal by Michael Neuling.
      Signed-off-by: default avatarDavid Gibson <dwg@au1.ibm.com>
      Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
      77058e1a
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://neil.brown.name/md · ac73fddf
      Linus Torvalds authored
      * 'for-linus' of git://neil.brown.name/md:
        md: fix some lockdep issues between md and sysfs.
        md: fix 'degraded' calculation when starting a reshape.
      ac73fddf
    • NeilBrown's avatar
      md: fix some lockdep issues between md and sysfs. · ef286f6f
      NeilBrown authored
      ======
      This fix is related to
          http://bugzilla.kernel.org/show_bug.cgi?id=15142
      but does not address that exact issue.
      ======
      
      sysfs does like attributes being removed while they are being accessed
      (i.e. read or written) and waits for the access to complete.
      
      As accessing some md attributes takes the same lock that is held while
      removing those attributes a deadlock can occur.
      
      This patch addresses 3 issues in md that could lead to this deadlock.
      
      Two relate to calling flush_scheduled_work while the lock is held.
      This is probably a bad idea in general and as we use schedule_work to
      delete various sysfs objects it is particularly bad.
      
      In one case flush_scheduled_work is called from md_alloc (called by
      md_probe) called from do_md_run which holds the lock.  This call is
      only present to ensure that ->gendisk is set.  However we can be sure
      that gendisk is always set (though possibly we couldn't when that code
      was originally written.  This is because do_md_run is called in three
      different contexts:
        1/ from md_ioctl.  This requires that md_open has succeeded, and it
           fails if ->gendisk is not set.
        2/ from writing a sysfs attribute.  This can only happen if the
           mddev has been registered in sysfs which happens in md_alloc
           after ->gendisk has been set.
        3/ from autorun_array which is only called by autorun_devices, which
           checks for ->gendisk to be set before calling autorun_array.
      So the call to md_probe in do_md_run can be removed, and the check on
      ->gendisk can also go.
      
      
      In the other case flush_scheduled_work is being called in do_md_stop,
      purportedly to wait for all md_delayed_delete calls (which delete the
      component rdevs) to complete.  However there really isn't any need to
      wait for them - they have already been disconnected in all important
      ways.
      
      The third issue is that raid5->stop() removes some attribute names
      while the lock is held.  There is already some infrastructure in place
      to delay attribute removal until after the lock is released (using
      schedule_work).  So extend that infrastructure to remove the
      raid5_attrs_group.
      
      This does not address all lockdep issues related to the sysfs
      "s_active" lock.  The rest can be address by splitting that lockdep
      context between symlinks and non-symlinks which hopefully will happen.
      Signed-off-by: default avatarNeilBrown <neilb@suse.de>
      ef286f6f
  2. 09 Feb, 2010 16 commits
  3. 08 Feb, 2010 11 commits