1. 16 4月, 2013 5 次提交
    • C
      drm: Perform ioctl command validation on the stored kernel values · e4fda9f2
      Chris Wilson 提交于
      Userspace is free to pass in any command bits it feels like through the
      ioctl cmd, and for example trinity likes to fuzz those bits to create
      conflicting commands. So instead of relying upon userspace to pass along
      the correct IN/OUT flags for the ioctl, use the flags as expected by the
      kernel.
      
      This does have a side-effect that NULL pointers can not be substituted
      by userspace in place of a struct. This feature was not being used by
      any driver, but instead exposed all of the command handlers to a user
      triggerable OOPS.
      Reported-by: NTommi Rantala <tt.rantala@gmail.com>
      Link: http://lkml.kernel.org/r/CA+ydwtpuBvbwxbt-tdgPUvj1EU7itmCHo_2B3w13HkD5+jWKow@mail.gmail.comSigned-off-by: NTommi Rantala <tt.rantala@gmail.com>
      Signed-off-by: NChris Wilson <chris@chris-wilson.co.uk>
      Signed-off-by: NDave Airlie <airlied@redhat.com>
      e4fda9f2
    • P
      drm.h: Fix DRM compilation with bare-metal toolchain. · b6330548
      Paul Sokolovsky 提交于
      An ifdef in drm.h expects to be compiled with full-fledged Linux
      toolchain, but it's common to compile kernel with just bare-metal
      toolchain which doesn't define __linux__. So, also add __KERNEL__
      check.
      
      [nm@ti.com: port forward to 3.9-rc6 and post to dri devel for feedback as RFC]
      Signed-off-by: NPaul Sokolovsky <paul.sokolovsky@linaro.org>
      Signed-off-by: NDave Airlie <airlied@redhat.com>
      b6330548
    • L
      drm: use vma_pages() to replace (vm_end - vm_start) >> PAGE_SHIFT · 025df775
      Libin 提交于
      (*->vm_end - *->vm_start) >> PAGE_SHIFT operation is implemented
      as a inline funcion vma_pages() in linux/mm.h, so using it.
      Signed-off-by: NLibin <huawei.libin@huawei.com>
      Signed-off-by: NDave Airlie <airlied@redhat.com>
      025df775
    • L
      drm: Destroy property blobs at mode config cleanup time · 87d24fc3
      Laurent Pinchart 提交于
      Property blob objects need to be destroyed when cleaning up to avoid
      memory leaks. Go through the list of all blobs in the
      drm_mode_config_cleanup() function and destroy them.
      
      The drm_mode_config_cleanup() function needs to be moved after the
      drm_property_destroy_blob() declaration. Move drm_mode_config_init() as
      well to keep the functions together.
      Signed-off-by: NLaurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
      Reviewed-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      Signed-off-by: NDave Airlie <airlied@redhat.com>
      87d24fc3
    • D
      Merge tag 'drm-intel-next-2013-04-06' of... · 28184f22
      Dave Airlie 提交于
      Merge tag 'drm-intel-next-2013-04-06' of git://people.freedesktop.org/~danvet/drm-intel into drm-next
      
      Daniel writes:
      Since I expect Linus to open the merge window in about a week I guess this
      is the last i915 feature pull for 3.10. Highlights:
      Updated testing tree for -next. Highlights:
      - Corner case fixes discovered with static analyzers (Damien).
      - More fixes to combat unclaimed register errors on Haswell (Paulo).
      - Some small fixes to the gpu turbo code (Rodrigo+Ben), Ben has more
        fixes for overclocking support pending.
      - More prep work for fastboot from Chris.
      - VT-switchless suspend/resume from Jesse.
      - The prep work of Egbert Eich's hpd irq storm handling. Hopefully we can
        squeeze in the actual storm handling code for 3.10 ...
      - More convenience helpers for Imre's sg iterator. Core parts acked by
        Andrew Morton.
      - A bit of backlight code cleanup from Jani.
      - Fixed ilk gpu reset (Jesse).
      - Reduced color range handling fixes for VLV (Ville).
      
      The big item here is though the introduction of pipe_config to properly
      pre-compute the desired modeset state before touching the hw. Together
      with some very basic support to read out the current config from the hw
      and compare the state with the sw tracking. This is all prep work for more
      reliable fastboot, atomic modesets and other cool features. Stuff
      converted to the new world includes:
      - Most simple pipe attributes (reduce color range, pixel multiplier).
      - Pipe bpp/dither handling.
      - Some convenience flags like ->has_pch_encoder to simplify the code flow.
      - (Almost) DP clock handling, had to be reverted since part of a prep
        patch was lost in rebasing ...
      Expect a lot of patches for this throughout 3.11, there's tons of work
      till we have all state properly tracked for fastbooting to woExpect a lot
      of patches for this throughout 3.11, there's tons of work till we have all
      state properly tracked for fastbooting to work.
      
      For 3.10 I have a bunch of fixes queued up and I plan to send them all out
      at the end of this week. I need to shuffle patches in my -next queue a bit
      so that we don't but feature-y stuff in there, too. The main thing I'd
      like to sneak in is Egbert's hpd irq storm handling, which should be
      pretty low-risk since all the infrastructure work has landed already. I
      also have the oops fix pending, but that only mustered review before the
      w/e and giving how hairy that part of our modeset code is, I want to give
      it some more testing before forwarding.
      
      Note: annarchy.fd.o seems to run out of disk space, so couldn't push the
      usual for-airlied branch. Tag should work though.
      
      Note 2: I've had to do a backmerge since conflicts grew too ugly, but the
      upstream -rc I've backmerged is already in your drm-next.
      
      * tag 'drm-intel-next-2013-04-06' of git://people.freedesktop.org/~danvet/drm-intel: (75 commits)
        drm/i915: info level for simulated gpu hang dmesg notice
        drm/i915: revert eDP bpp clamping code changes
        Revert "drm/i915: fix DP get_hw_state return value"
        drm/i915: Don't use the HDMI port color range bit on Valleyview
        drm/i915: Set PIPECONF color range bit on Valleyview
        drm/i915: extract i9xx_set_pipeconf
        drm/i915: Add no-lvds quirk for Fujitsu Esprimo Q900
        drm/i915: create pipe_config->dpll for clock state
        drm/i915: hw readout support for ->has_pch_encoders
        drm/i915: add hw state readout/checking for pipe_config
        drm/i915: rip out superflous is_dp&is_cpu_edp tracking
        drm/i915: remove leaky eDP functions
        drm/i915: track dp target_clock in pipe_config
        drm/i915: move dp_m_n computation to dp_encoder->compute_config
        drm/i915: clear up the fdi/dp set_m_n confusion
        drm/i915: Fix sdvo connector get_hw_state function
        drm/i915: drop DPFLIPSTAT enables on VLV v3
        drm/i915: add Punit read/write routines for VLV v2
        drm/i915: panel power sequencing for VLV eDP v2
        drm/i915/dp: fix up VLV DP handling v2
        ...
      28184f22
  2. 12 4月, 2013 8 次提交
  3. 06 4月, 2013 7 次提交
  4. 05 4月, 2013 2 次提交
    • D
      Merge tag 'drm-intel-next-2013-03-23' of... · 399403c7
      Dave Airlie 提交于
      Merge tag 'drm-intel-next-2013-03-23' of git://people.freedesktop.org/~danvet/drm-intel into drm-next
      
      Daniel writes:
      Highlights:
      - Imre's for_each_sg_pages rework (now also with the stolen mem backed
        case fixed with a hack) plus the drm prime sg list coalescing patch from
        Rahul Sharma. I have some follow-up cleanups pending, already acked by
        Andrew Morton.
      - Some prep-work for the crazy no-pch/display-less platform by Ben.
      - Some vlv patches, by far not all (Jesse et al).
      - Clean up the HDMI/SDVO #define confusion (Paulo)
      - gen2-4 vblank fixes from Ville.
      - Unclaimed register warning fixes for hsw (Paulo). More still to come ...
      - Complete pageflips which have been stuck in a gpu hang, should prevent
        stuck gl compositors (Ville).
      - pm patches for vt-switchless resume (Jesse). Note that the i915 enabling
        is not (yet) included, that took a bit longer to settle. PM patches are
        acked by Rafael Wysocki.
      - Minor fixlets all over from various people.
      
      * tag 'drm-intel-next-2013-03-23' of git://people.freedesktop.org/~danvet/drm-intel: (79 commits)
        drm/i915: Implement WaSwitchSolVfFArbitrationPriority
        drm/i915: Set the VIC in AVI infoframe for SDVO
        drm/i915: Kill a strange comment about DPMS functions
        drm/i915: Correct sandybrige overclocking
        drm/i915: Introduce GEN7_FEATURES for device info
        drm/i915: Move num_pipes to intel info
        drm/i915: fixup pd vs pt confusion in gen6 ppgtt code
        style nit: Align function parameter continuation properly.
        drm/i915: VLV doesn't have HDMI on port C
        drm/i915: DSPFW and BLC regs are in the display offset range
        drm/i915: set conservative clock gating values on VLV v2
        drm/i915: fix WaDisablePSDDualDispatchEnable on VLV v2
        drm/i915: add more VLV IDs
        drm/i915: use VLV DIP routines on VLV v2
        drm/i915: add media well to VLV force wake routines v2
        drm/i915: don't use plane pipe select on VLV
        drm: modify pages_to_sg prime helper to create optimized SG table
        drm/i915: use for_each_sg_page for setting up the gtt ptes
        drm/i915: create compact dma scatter lists for gem objects
        drm/i915: handle walking compact dma scatter lists
        ...
      399403c7
    • J
      mm: prevent mmap_cache race in find_vma() · b6a9b7f6
      Jan Stancek 提交于
      find_vma() can be called by multiple threads with read lock
      held on mm->mmap_sem and any of them can update mm->mmap_cache.
      Prevent compiler from re-fetching mm->mmap_cache, because other
      readers could update it in the meantime:
      
                     thread 1                             thread 2
                                              |
        find_vma()                            |  find_vma()
          struct vm_area_struct *vma = NULL;  |
          vma = mm->mmap_cache;               |
          if (!(vma && vma->vm_end > addr     |
              && vma->vm_start <= addr)) {    |
                                              |    mm->mmap_cache = vma;
          return vma;                         |
           ^^ compiler may optimize this      |
              local variable out and re-read  |
              mm->mmap_cache                  |
      
      This issue can be reproduced with gcc-4.8.0-1 on s390x by running
      mallocstress testcase from LTP, which triggers:
      
        kernel BUG at mm/rmap.c:1088!
          Call Trace:
           ([<000003d100c57000>] 0x3d100c57000)
            [<000000000023a1c0>] do_wp_page+0x2fc/0xa88
            [<000000000023baae>] handle_pte_fault+0x41a/0xac8
            [<000000000023d832>] handle_mm_fault+0x17a/0x268
            [<000000000060507a>] do_protection_exception+0x1e2/0x394
            [<0000000000603a04>] pgm_check_handler+0x138/0x13c
            [<000003fffcf1f07a>] 0x3fffcf1f07a
          Last Breaking-Event-Address:
            [<000000000024755e>] page_add_new_anon_rmap+0xc2/0x168
      
      Thanks to Jakub Jelinek for his insight on gcc and helping to
      track this down.
      Signed-off-by: NJan Stancek <jstancek@redhat.com>
      Acked-by: NDavid Rientjes <rientjes@google.com>
      Signed-off-by: NHugh Dickins <hughd@google.com>
      Cc: stable@vger.kernel.org
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      b6a9b7f6
  5. 04 4月, 2013 9 次提交
  6. 03 4月, 2013 9 次提交