1. 25 Jul, 2013 1 commit
    • Aaron Plattner's avatar
      xfree86: detach scanout pixmaps when detaching output GPUs · bdd1e22c
      Aaron Plattner authored
      Commit 8f4640bd fixed a bit of a
      chicken-and-egg problem by detaching GPU screens when their providers
      are destroyed, which happens before CloseScreen is called.  However,
      this created a new problem: the GPU screen tears down its RandR crtc
      objects during CloseScreen and if one of them is active, it tries to
      detach the scanout pixmap then.  This crashes because
      RRCrtcDetachScanoutPixmap tries to get the master screen's screen
      pixmap, but crtc->pScreen->current_master is already NULL at that
      point.
      
      It doesn't make sense for an unbound GPU screen to still be scanning
      out its former master screen's pixmap, so detach them first when the
      provider is destroyed.
      Signed-off-by: Aaron Plattner's avatarAaron Plattner <aplattner@nvidia.com>
      Reviewed-by: default avatarDave Airlie <airlied@redhat.com>
      Signed-off-by: Keith Packard's avatarKeith Packard <keithp@keithp.com>
      bdd1e22c
  2. 30 Apr, 2013 1 commit
  3. 08 Apr, 2013 1 commit
  4. 01 Mar, 2013 1 commit
  5. 06 Aug, 2012 1 commit
  6. 11 Jul, 2012 1 commit
    • Maarten Lankhorst's avatar
      xfree86: Strip dangling pointers from desiredMode · deb08658
      Maarten Lankhorst authored
      Based on the original patch by Chris Wilson, which was a better fix than mine.
      
      We stash a copy of the desiredMode on the crtc so that we can restore it
      after a vt switch. This copy is a simple memcpy and so also stashes a
      references to the pointers contained within the desiredMode. Those
      pointers are freed the next time the outputs are probed and mode list
      rebuilt, resulting in us chasing those dangling pointers on the next
      mode switch.
      
      ==22787== Invalid read of size 1
      ==22787==    at 0x40293C2: __GI_strlen (in
      /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
      ==22787==    by 0x668F875: strdup (strdup.c:42)
      ==22787==    by 0x5DBA00: XNFstrdup (utils.c:1124)
      ==22787==    by 0x4D72ED: xf86DuplicateMode (xf86Modes.c:209)
      ==22787==    by 0x4CA848: xf86CrtcSetModeTransform (xf86Crtc.c:276)
      ==22787==    by 0x4D05B4: xf86SetDesiredModes (xf86Crtc.c:2677)
      ==22787==    by 0xA7479D0: sna_create_screen_resources
      (sna_driver.c:220)
      ==22787==    by 0x4CB914: xf86CrtcCreateScreenResources (xf86Crtc.c:725)
      ==22787==    by 0x425498: main (main.c:216)
      ==22787==  Address 0x72c60e0 is 0 bytes inside a block of size 9 free'd
      ==22787==    at 0x4027AAE: free (in
      /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
      ==22787==    by 0x4A547E: xf86DeleteMode (xf86Mode.c:1984)
      ==22787==    by 0x4CD84F: xf86ProbeOutputModes (xf86Crtc.c:1578)
      ==22787==    by 0x4DC405: xf86RandR12GetInfo12 (xf86RandR12.c:1537)
      ==22787==    by 0x518119: RRGetInfo (rrinfo.c:202)
      ==22787==    by 0x51D997: rrGetScreenResources (rrscreen.c:335)
      ==22787==    by 0x51E0D0: ProcRRGetScreenResources (rrscreen.c:475)
      ==22787==    by 0x513852: ProcRRDispatch (randr.c:493)
      ==22787==    by 0x4346DB: Dispatch (dispatch.c:439)
      ==22787==    by 0x4256E4: main (main.c:287)
      Signed-off-by: default avatarMaarten Lankhorst <maarten.lankhorst@canonical.com>
      Reported-by: zkabelac's avatarZdenek Kabelac <zdenek.kabelac@gmail.com>
      Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=36108Reviewed-by: Chris Wilson's avatarChris Wilson <chris@chris-wilson.co.uk>
      Signed-off-by: Keith Packard's avatarKeith Packard <keithp@keithp.com>
      deb08658
  7. 07 Jul, 2012 4 commits
  8. 06 Jul, 2012 1 commit
  9. 05 Jun, 2012 1 commit
  10. 21 May, 2012 3 commits
  11. 08 May, 2012 1 commit
    • James Cloos's avatar
      Fix RANDR’s gamma_to_ramp(). · afc153a5
      James Cloos authored
      In order to generate a 256-entry ramp in [0,65535] which covers the full
      range, one must mupliply eight-bit values not by 256 but rather by 257.
      
      Many years back – well before the RANDR extension was written, and
      before xorg@fdo – a similar bug fix was made to the DIX for converting
      client-supplied eight-bit color values into sixteen-bit values.
      
      Noticed by: Elle Stone and Graeme Gill.
      Signed-off-by: James Cloos's avatarJames Cloos <cloos@jhcloos.com>
      afc153a5
  12. 21 Mar, 2012 1 commit
    • Keith Packard's avatar
      Introduce a consistent coding style · 9838b703
      Keith Packard authored
      This is strictly the application of the script 'x-indent-all.sh'
      from util/modular. Compared to the patch that Daniel posted in
      January, I've added a few indent flags:
      
      	-bap
      	-psl
      	-T PrivatePtr
      	-T pmWait
      	-T _XFUNCPROTOBEGIN
      	-T _XFUNCPROTOEND
      	-T _X_EXPORT
      
      The typedefs were needed to make the output of sdksyms.sh match the
      previous output, otherwise, the code is formatted badly enough that
      sdksyms.sh generates incorrect output.
      
      The generated code was compared with the previous version and found to
      be essentially identical -- "assert" line numbers and BUILD_TIME were
      the only differences found.
      
      The comparison was done with this script:
      
      dir1=$1
      dir2=$2
      
      for dir in $dir1 $dir2; do
      	(cd $dir && find . -name '*.o' | while read file; do
      		dir=`dirname $file`
      		base=`basename $file .o`
      		dump=$dir/$base.dump
      		objdump -d $file > $dump
      	done)
      done
      
      find $dir1 -name '*.dump' | while read dump; do
      	otherdump=`echo $dump | sed "s;$dir1;$dir2;"`
      	diff -u $dump $otherdump
      done
      Signed-off-by: Keith Packard's avatarKeith Packard <keithp@keithp.com>
      Acked-by: Daniel Stone's avatarDaniel Stone <daniel@fooishbar.org>
      Acked-by: Alan Coopersmith's avatarAlan Coopersmith <alan.coopersmith@oracle.com>
      9838b703
  13. 13 Oct, 2011 1 commit
  14. 25 Apr, 2011 1 commit
  15. 28 Mar, 2011 1 commit
  16. 23 Feb, 2011 7 commits
  17. 22 Feb, 2011 1 commit
  18. 07 Dec, 2010 7 commits
  19. 24 Nov, 2010 2 commits
  20. 28 Sep, 2010 2 commits
    • Chris Wilson's avatar
      xfree86: Kill pixmapPrivate with a vengeance (v2) · 5c6a2f93
      Chris Wilson authored
      ScrnInfo->pixmapPrivate only existed in order to catch invalid access to
      the framebuffer by making the backing data NULL across the VT switch.
      This was causing more confusion in the higher layers during mode setting
      without any real benefit, so remove it.
      
      v2: Kill ShadowModifyPixmapHeader() as well.
      Signed-off-by: Chris Wilson's avatarChris Wilson <chris@chris-wilson.co.uk>
      Cc: Julien Cristau <jcristau@debian.org>
      Cc: Andrew Guertin <lists@dolphinling.net>
      Reviewed-by: Keith Packard's avatarKeith Packard <keithp@keithp.com>
      Signed-off-by: Keith Packard's avatarKeith Packard <keithp@keithp.com>
      5c6a2f93
    • Chris Wilson's avatar
      modes: Beware the driver switching root pixmaps · fdabcec5
      Chris Wilson authored
      Program received signal SIGSEGV, Segmentation fault.
      0x080d4a2d in xf86RandR12ScreenSetSize (pScreen=0x8dca3a0, width=800,
          height=600, mmWidth=210, mmHeight=157)
          at ../../../../hw/xfree86/modes/xf86RandR12.c:731
      731     ../../../../hw/xfree86/modes/xf86RandR12.c: No such file or directory.
              in ../../../../hw/xfree86/modes/xf86RandR12.c
      (gdb) bt full
          height=600, mmWidth=210, mmHeight=157)
          at ../../../../hw/xfree86/modes/xf86RandR12.c:731
              randrp = 0x8dcae68
              pScrn = 0x8dbeb28
              config = <value optimized out>
              pRoot = 0x8e08e30
              pScrnPix = 0xb6d12008
              ret = 1
              c = <value optimized out>
          mmWidth=210, mmHeight=157) at ../../randr/rrscreen.c:185
      No locals.
          at ../../randr/rrscreen.c:307
              pWin = 0x8e08e30
              pScreen = 0x8dca3a0
              i = <value optimized out>
              rc = 0
      ../../randr/randr.c:485
      Signed-off-by: Chris Wilson's avatarChris Wilson <chris@chris-wilson.co.uk>
      Cc: Julien Cristau <jcristau@debian.org>
      Tested-by: Julien Cristau's avatarJulien Cristau <jcristau@debian.org>
      Cc: Keith Packard <keithp@keithp.com>
      Reviewed-by: Keith Packard's avatarKeith Packard <keithp@keithp.com>
      Signed-off-by: Keith Packard's avatarKeith Packard <keithp@keithp.com>
      fdabcec5
  21. 18 Sep, 2010 1 commit
    • Jamey Sharp's avatar
      Xserver need not be compatible with old versions of xserver. · e4d4d6dd
      Jamey Sharp authored
      Delete time-traveling multiple personality disorder from the server.
      
      Gaetan notes:
      
          There were a couple of drivers containing an unknown version of the
          modes/parser code. This was done in server 1.2 time frame because it
          was released without mode code. It was barely or not maintained
          afterwards. There are currently no video drivers with a copy of the
          modes code.
      
      Most of these ifdefs were introduced in commit
      a8d760f5, where Aaron wrote,
      
          This change uses XORG_VERSION_CURRENT < 7.0 to mean "server newer
          than 1.2" since XORG_VERSION current went backwards at some point.
      
      Alan explains that:
      
          In Xorg 1.3, when we first released an Xorg server release decoupled
          from the katamari release schedule.  (1.0 through 1.2 were released
          as part of X11R7.0 through 7.2, while 1.3 came out between X11R7.2 &
          7.3.)
      
      Commit by Jamey Sharp and Josh Triplett.
      Signed-off-by: Jamey Sharp's avatarJamey Sharp <jamey@minilop.net>
      Signed-off-by: Josh Triplett's avatarJosh Triplett <josh@joshtriplett.org>
      Reviewed-by: Aaron Plattner's avatarAaron Plattner <aplattner@nvidia.com>
      e4d4d6dd