platform/upstream/xorg-server.git
11 years agoBump to 1.14.99.1 xorg-server-1.14.99.1
Keith Packard [Wed, 24 Apr 2013 17:11:03 +0000 (10:11 -0700)]
Bump to 1.14.99.1

Snapshot with fix for CVE-2013-1940.

Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agoxf86: fix flush input to work with Linux evdev devices.
Dave Airlie [Wed, 10 Apr 2013 06:09:01 +0000 (16:09 +1000)]
xf86: fix flush input to work with Linux evdev devices.

So when we VT switch back and attempt to flush the input devices,
we don't succeed because evdev won't return part of an event,
since we were only asking for 4 bytes, we'd only get -EINVAL back.

This could later cause events to be flushed that we shouldn't have
gotten.

This is a fix for CVE-2013-1940.

Signed-off-by: Dave Airlie <airlied@redhat.com>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
11 years agoDefine prototypes for hw/xfree86/modes/xf86Modes.c only in xf86Modes.h.
Jeremy White [Thu, 21 Mar 2013 15:58:57 +0000 (10:58 -0500)]
Define prototypes for hw/xfree86/modes/xf86Modes.c only in xf86Modes.h.

This removes a large number of redundant declaration warnings.

Signed-off-by: Jeremy White <jwhite@codeweavers.com>
Reviewed-by: Robert Morell <rmorell@nvidia.com>
Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agoxfree86: Be verbose if waiting on opening the drm device
Bryce Harrington [Tue, 19 Mar 2013 19:12:46 +0000 (12:12 -0700)]
xfree86: Be verbose if waiting on opening the drm device

Signed-off-by: Bryce Harrington <bryce@canonical.com>
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agoxfree86: Fix race condition failure opening drm.
Bryce Harrington [Tue, 19 Mar 2013 19:12:45 +0000 (12:12 -0700)]
xfree86: Fix race condition failure opening drm.

If other processes have had drm open previously, xserver may attempt to
open the device too early and fail, with xserver error exit "Cannot
run in framebuffer mode" or Xorg.0.log messages about "setversion 1.4
failed".

In this situation, we're receiving back -EACCES from libdrm.  To address
this we need to re-set ourselves as the drm master, and keep trying to
set the interface until it works (or until we give up).

See https://bugs.launchpad.net/ubuntu/+source/libdrm/+bug/982889

Signed-off-by: Bryce Harrington <bryce@canonical.com>
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agoxfree86: Keep trying to set interface on drm for 2 seconds.
Bryce Harrington [Tue, 19 Mar 2013 19:12:44 +0000 (12:12 -0700)]
xfree86: Keep trying to set interface on drm for 2 seconds.

And if we've had to delay booting due to not being able to set the
interface, fess up.

Signed-off-by: Bryce Harrington <bryce@canonical.com>
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agoxfree86: Provide more details on failure
Bryce Harrington [Tue, 19 Mar 2013 19:12:43 +0000 (12:12 -0700)]
xfree86: Provide more details on failure

Signed-off-by: Bryce Harrington <bryce@canonical.com>
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agoxfree86: Track error code and add label for error handling.
Bryce Harrington [Tue, 19 Mar 2013 19:12:42 +0000 (12:12 -0700)]
xfree86: Track error code and add label for error handling.

Signed-off-by: Bryce Harrington <bryce@canonical.com>
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agoxfree86: (Cleanup) Close fd if drm interface 1.4 could not be set.
Bryce Harrington [Tue, 19 Mar 2013 19:12:41 +0000 (12:12 -0700)]
xfree86: (Cleanup) Close fd if drm interface 1.4 could not be set.

Signed-off-by: Bryce Harrington <bryce@canonical.com>
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agokdrive/fbdev: revive randr new screen size logic
Geert Uytterhoeven [Mon, 18 Mar 2013 20:38:10 +0000 (21:38 +0100)]
kdrive/fbdev: revive randr new screen size logic

hw/kdrive/fbdev/fbdev.c: In function 'fbdevRandRSetConfig':
hw/kdrive/fbdev/fbdev.c:470:19: warning: variable 'newheight' set but not used [-Wunused-but-set-variable]
hw/kdrive/fbdev/fbdev.c:470:9: warning: variable 'newwidth' set but not used [-Wunused-but-set-variable]

Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
11 years agoRevert "kdrive: fix "set but not used" warnings"
Peter Hutterer [Mon, 25 Mar 2013 04:51:58 +0000 (14:51 +1000)]
Revert "kdrive: fix "set but not used" warnings"

Partial revert of commit 4149ee8ec0193acbf3812c7ee2627b93b9a89997, better
fix coming up.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
11 years agoxserver: add monitor Option "ZoomModes" [v2]
vdb@picaros.org [Thu, 7 Mar 2013 15:07:31 +0000 (16:07 +0100)]
xserver: add monitor Option "ZoomModes" [v2]

Section "Monitor"
  Identifier "a21inch"
  Option "PreferredMode" "1600x1200"
  Option "ZoomModes" "1600x1200 1280x1024 1280x1024 640x480"
EndSection

The option's effect is to search for and mark once each named mode in
the output modes list.  So the specification order is free and the zoom
modes sequence follows the order of the output modes list.  All marked
modes are available via the Ctrl+Alt+Keypad-{Plus,Minus} key
combination.

See also http://bugs.freedesktop.org/show_bug.cgi?id=17954.

This option has its use for combined monitor and television setups.
It allows for easy switching between 60 Hz and 50 Hz modes even when a
monitor refuses to display the input signal.

(Includes a few minor changes suggested by Aaron for v2)

Signed-off-by: Servaas Vandenberghe <vdb@picaros.org>
Reviewed-by: Aaron Plattner <aplattner@nvidia.com>
Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agoXi: add a comment to make a condition a bit clearer
Peter Hutterer [Thu, 28 Feb 2013 00:43:05 +0000 (10:43 +1000)]
Xi: add a comment to make a condition a bit clearer

The commit message to 676447190190d8546165e21be242cf16dd69f5ae explains it,
but that doesn't stop the WTF moment when reading the code.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Keith Packard <keithp@keithp.com>
11 years agodix: update coords for touch events in PlayReleasedEvents
Peter Hutterer [Mon, 25 Feb 2013 05:21:32 +0000 (15:21 +1000)]
dix: update coords for touch events in PlayReleasedEvents

Note: this is only hit for #ifdef PANORAMIX

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Keith Packard <keithp@keithp.com>
11 years agoXi: compress two if statements with the same body
Peter Hutterer [Thu, 28 Feb 2013 00:30:15 +0000 (10:30 +1000)]
Xi: compress two if statements with the same body

We do the same thing here, compress them into one body.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Keith Packard <keithp@keithp.com>
11 years agodix: fix a comment
Peter Hutterer [Mon, 25 Feb 2013 01:13:52 +0000 (11:13 +1000)]
dix: fix a comment

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Keith Packard <keithp@keithp.com>
11 years agoXi: use a temp variable for the new listener
Peter Hutterer [Thu, 28 Feb 2013 22:26:06 +0000 (08:26 +1000)]
Xi: use a temp variable for the new listener

Instead of accessing ti->listener[0] all the time.

No functional changes.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Keith Packard <keithp@keithp.com>
11 years agoXi: return !Success from DeliverTouchEmulatedEvent if we didn't deliver
Peter Hutterer [Thu, 28 Feb 2013 22:43:58 +0000 (08:43 +1000)]
Xi: return !Success from DeliverTouchEmulatedEvent if we didn't deliver

All callers currently ignore the new value, so this patch has no effect.
Inverse call graph:

DeliverTouchEmulatedEvent
        DeliverEmulatedMotionEvent              Ignores value
        DeliverTouchBeginEvent
                DeliverTouchEvent
                        DeliverTouchEvents      Ignores value
        DeliverTouchEndEvent
                DeliverTouchEvent
                        DeliverTouchEvents      Ignores value

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Keith Packard <keithp@keithp.com>
11 years agoglx: fix uninitialized var in __glXDRIscreenProbe
Piotr Dziwinski [Sat, 23 Feb 2013 12:14:45 +0000 (13:14 +0100)]
glx: fix uninitialized var in __glXDRIscreenProbe

Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=59825

Signed-off-by: Piotr Dziwinski <piotrdz@gmail.com>
Reviewed-by: Keith Packard <keithp@keithp.com>
Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agoMerge remote-tracking branch 'whot/for-keith'
Keith Packard [Mon, 18 Mar 2013 18:26:24 +0000 (11:26 -0700)]
Merge remote-tracking branch 'whot/for-keith'

11 years agoGLX/DRI2: Do not expose INTEL_swap_event without swap control
Zack Rusin [Thu, 14 Feb 2013 23:06:57 +0000 (15:06 -0800)]
GLX/DRI2: Do not expose INTEL_swap_event without swap control

Swap events depent on the implementation of ScheduleSwap. By
unconditionally enabling GLX_INTEL_swap_event we're breaking
the system with drivers that don't support it because the apps
are forever stuck waiting for an event that will never be
delivered. So lets enable the extension only if the hooks it
depends on are actually there.

Signed-off-by: Zack Rusin <zackr@vmware.com>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agoMerge remote-tracking branch 'whot/next'
Keith Packard [Mon, 18 Mar 2013 18:18:58 +0000 (11:18 -0700)]
Merge remote-tracking branch 'whot/next'

11 years agoFull support of sRGB capable fbconfigs.
Tomasz Lis [Mon, 11 Mar 2013 09:21:28 +0000 (10:21 +0100)]
Full support of sRGB capable fbconfigs.

Changes to correctly initialize the sRGB capability attribute and
transfer it between XServer and the client. Modifications include
extension string, transferring visual config attribs and fbconfig
attribs. Also, attribute is initialized in the modules which do not
really use it (xquartz and xwin).
This version advertises both ARB and EXT strings, and initializes
the capability to default value of FALSE. It has corrected required
GLX version and does not influence swrast. The sRGB capable attribute
is attached only to those configs which do have this capability.
Both ARB and EXT versions share the same GLX extension enabling bit.

Signed-off-by: Tomasz Lis <tomasz.lis@intel.com>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agoBump release to 1.14.99.0
Keith Packard [Mon, 18 Mar 2013 17:01:20 +0000 (10:01 -0700)]
Bump release to 1.14.99.0

Get us off the release number so that we don't conflict with the
stable branch.

Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agolist.h: Make xorg_list_init inline
Robert Morell [Tue, 12 Mar 2013 16:40:16 +0000 (09:40 -0700)]
list.h: Make xorg_list_init inline

Otherwise this file is emitted in every unit that includes it.

Signed-off-by: Robert Morell <rmorell@nvidia.com>
Reviewed-by: Jamey Sharp <jamey@minilop.net>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
11 years agoconfigure.ac: Require inputproto 2.3
Robert Morell [Tue, 12 Mar 2013 16:37:43 +0000 (09:37 -0700)]
configure.ac: Require inputproto 2.3

This picks up support for Xi pointer barriers in the protocol.

Signed-off-by: Robert Morell <rmorell@nvidia.com>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
11 years agoxfixes: ifdef PanoramiXFixes* (#62015)
Peter Hutterer [Sat, 9 Mar 2013 07:12:53 +0000 (17:12 +1000)]
xfixes: ifdef PanoramiXFixes* (#62015)

Fixes build failure with --disable-xinerama introduced by
482e0cb cursor: Move pointer barrier code over to XI

Reason is new include order: sdksyms.sh includes xfixes.h, which previously
did not include xfixesint.h.

As of 482e0cb xfixes.h includes xibarriers.h which includes xfixesint.h

X.Org Bug 62015 <http://bugs.freedesktop.org/show_bug.cgi?id=62015>

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Tested-by: Daniel Martin <consume.noise@gmail.com>
11 years agofb: Rename wfbDestroyGlyphCache
Aaron Plattner [Wed, 6 Mar 2013 17:40:28 +0000 (09:40 -0800)]
fb: Rename wfbDestroyGlyphCache

Renaming this function was missed in commit
9cbcb5bd6a5360a128d15b77a02d8d3351f74366, so both libfb.so and libwfb.so define
functions named fbDestroyGlyphCache.

Signed-off-by: Aaron Plattner <aplattner@nvidia.com>
Reviewed-by: Søren Sandmann <ssp@redhat.com>
Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agoVersion bumped to 1.14 xorg-server-1.14.0
Keith Packard [Wed, 6 Mar 2013 06:31:17 +0000 (22:31 -0800)]
Version bumped to 1.14

Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agoxkb: Fixes to LatchMods/LatchGroup
Andreas Wettstein [Sun, 3 Mar 2013 19:25:44 +0000 (20:25 +0100)]
xkb: Fixes to LatchMods/LatchGroup

The main problem this patch addresses is that if a latch is put on
multi-level key with a Latch/Lock/Set, it is possible that after all
keys are released, still base modifiers are set, which typically will
make the keyboard unusable.  To see how it happens (without the patch),
assume that key AltGr sets Mod5 when pressed by itself, and latches Mod3
when pressed together with Shift.  Now press Shift, then AltGr and
release both keys in reverse order.  Mod3 is now latched, and the
LatchMods filter remains active as the second filter.  Now press AltGr;
Mod5 base modifier gets set, and the SetMods filter will become active
as the first filter.  Release AltGr: First, the SetMods filter will set
clearMods to Mod5, then the LatchMods filter will overwrite clearMods
with Mod3.  Result: the Mod5 base modifier will remain set.  This
example becomes practically relevant for the revised German standard
layout (DIN 2137-1:2012-06).

Other changes implement the latch behaviour more accurately according to
the specification.  For example, releasing a modifier latching key can
at the same time clear a locked modifier, promote another modifier that
is latched to locked, and latch a third modifier.  Overall, what the
code does should be straightforward to compare what the XKB protocol
specification demands, see the table in section 6.3.

Finally, releasing a key no longer cancels a latch that has not become
pending yet.  In my opinion, the specification is not clear; it speaks
of "operating" a key, which the patch effectivly interprets as "press"
rather than "press or release".  From my experience, using the latter
interpretation makes latches on higher levels practically unusable.  In
the example given above, one would have to release AltGr always before
Shift to get the Mod3-Latch.  The practical relevance of latches on
higher levels is once more given by the revised German standard layout.

Signed-off-by: Andreas Wettstein <wettstein509@solnet.ch>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
11 years agoxephyr: fix "set but not used warnings"
Peter Hutterer [Fri, 15 Feb 2013 01:19:09 +0000 (11:19 +1000)]
xephyr: fix "set but not used warnings"

ephyrvideo.c: In function 'ephyrPutVideo':
ephyrvideo.c:1009:42: warning: variable 'drw_h' set but not used
ephyrvideo.c:1009:31: warning: variable 'drw_w' set but not used
ephyrvideo.c:1009:20: warning: variable 'drw_y' set but not used
ephyrvideo.c:1009:9: warning: variable 'drw_x' set but not used
ephyrvideo.c: In function 'ephyrGetVideo':
ephyrvideo.c:1058:42: warning: variable 'drw_h' set but not used
ephyrvideo.c:1058:31: warning: variable 'drw_w' set but not used
ephyrvideo.c:1058:20: warning: variable 'drw_y' set but not used
ephyrvideo.c:1058:9: warning: variable 'drw_x' set but not used
ephyrvideo.c: In function 'ephyrPutStill':
ephyrvideo.c:1107:42: warning: variable 'drw_h' set but not used
ephyrvideo.c:1107:31: warning: variable 'drw_w' set but not used
ephyrvideo.c:1107:20: warning: variable 'drw_y' set but not used
ephyrvideo.c:1107:9: warning: variable 'drw_x' set but not used
ephyrvideo.c: In function 'ephyrGetStill':
ephyrvideo.c:1156:42: warning: variable 'drw_h' set but not used
ephyrvideo.c:1156:31: warning: variable 'drw_w' set but not used
ephyrvideo.c:1156:20: warning: variable 'drw_y' set but not used
ephyrvideo.c:1156:9: warning: variable 'drw_x' set but not used

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Robert Morell <rmorell@nvidia.com>
11 years agokdrive: fix "set but not used" warnings
Peter Hutterer [Fri, 15 Feb 2013 01:19:08 +0000 (11:19 +1000)]
kdrive: fix "set but not used" warnings

kinput.c: In function 'KdEnqueueKeyboardEvent':
kinput.c:1845:16: warning: variable 'ctrl' set but not used
kinput.c:1844:17: warning: variable 'keyc' set but not used

kinput.c: In function 'KdEnqueuePointerEvent':
kinput.c:1887:12: warning: variable 'ms' set but not used

kxv.c: In function 'KdXVDisable':
kxv.c:1181:19: warning: variable 'ScreenPriv' set but not used

mouse.c: In function 'ps2SkipInit':
mouse.c:444:9: warning: variable 'skipping' set but not used
mouse.c: In function 'ps2Init':
mouse.c:473:10: warning: variable 'waiting' set but not used
mouse.c:472:9: warning: variable 'skipping' set but not used

fbdev.c: In function 'fbdevRandRSetConfig':
fbdev.c:468:19: warning: variable 'newheight' set but not used
fbdev.c:468:9: warning: variable 'newwidth' set but not used

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Robert Morell <rmorell@nvidia.com>
11 years agoos: document pnprintf as sigsafe snprintf
Peter Hutterer [Mon, 18 Feb 2013 04:57:58 +0000 (14:57 +1000)]
os: document pnprintf as sigsafe snprintf

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
11 years agodix: only show the cursor if a window defines one (#58398)
Peter Hutterer [Tue, 18 Dec 2012 04:12:40 +0000 (14:12 +1000)]
dix: only show the cursor if a window defines one (#58398)

e02f864fdf "Suppress cursor display until the first XDefineCursor() request"
disabled cursor display a priori unless -retro is given.

On a plain server, caling XFixesHideCursor() and XFixesShowCursor() would
show the default root cursor, despite no client actually defining a cursor.

Change the logic, disable CursorVisible by default and only enable it from
the window's CWCursor logic. If no window ever defines a cursor, said cursor
stays invisible.

X.Org Bug 58398 <http://bugs.freedesktop.org/show_bug.cgi?id=58398>

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Tested-by: Bastien Nocera <hadess@hadess.net>
Reviewed-by: Daniel Martin <consume.noise@gmail.com>
11 years agoDPMS: include GPU screens in DPMS code
Aaron Plattner [Tue, 5 Mar 2013 21:04:46 +0000 (13:04 -0800)]
DPMS: include GPU screens in DPMS code

Otherwise, displays driven by GPU screens remain on all the time.

Signed-off-by: Aaron Plattner <aplattner@nvidia.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agoXi: force dtime to 0 on the first BarrierHit
Peter Hutterer [Tue, 5 Mar 2013 00:14:29 +0000 (10:14 +1000)]
Xi: force dtime to 0 on the first BarrierHit

dtime to the previous event is 0 on the first BarrierHit event.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Jasper St. Pierre <jstpierre@mecheye.net>
Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agoMerge commit '6ea59dc2d8887102bfd8d7c838d2e7ab17645aec'
Keith Packard [Tue, 5 Mar 2013 05:09:59 +0000 (21:09 -0800)]
Merge commit '6ea59dc2d8887102bfd8d7c838d2e7ab17645aec'

11 years agoxibarriers: Remove accidental use of the comma operator
Jasper St. Pierre [Sun, 3 Mar 2013 09:50:55 +0000 (04:50 -0500)]
xibarriers: Remove accidental use of the comma operator

Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
11 years agoephyr: Fix crash on 24bpp host framebuffer
Daniel Martin [Thu, 20 Dec 2012 12:50:17 +0000 (13:50 +0100)]
ephyr: Fix crash on 24bpp host framebuffer

Use bytes_per_line and bits_per_pixel from the created XImage to fix
    https://bugzilla.redhat.com/show_bug.cgi?id=518960

Signed-off-by: Daniel Martin <consume.noise@gmail.com>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
11 years agorandr: cleanup provider properly
Dave Airlie [Wed, 9 Jan 2013 02:58:28 +0000 (12:58 +1000)]
randr: cleanup provider properly

So in the cold plug server shutdown case, we reap the resources
before we call CloseScreen handlers, so the config->randr_provider
is a dangling pointer when the xf86CrtcCloseScreen handler is called,

however in the hot screen unplug case, we can't rely on automatically
reaped resources, so we need to clean up the provider in the xf86CrtcCloseScreen
case.

This patch provides a cleanup callback from the randr provider removal
into the DDX so it can cleanup properly, this then gets called by the automatic
code for cold plug, or if hot unplug it gets called explicitly.

Fixes a number of random server crashes on shutdown
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=58174
Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=891140

Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
Signed-off-by: Dave Airlie <airlied@redhat.com>
11 years agoxf86: actually set the compat output in the failure case
Dave Airlie [Wed, 9 Jan 2013 02:53:14 +0000 (12:53 +1000)]
xf86: actually set the compat output in the failure case

The previous fix for the previous fix, didn't fully work,

If we don't set compat_output we end up doing derferences
of arrays with -1, leading to valgrind warnings.

Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
Signed-off-by: Dave Airlie <airlied@redhat.com>
11 years agoxfree86/hotplug: cleanup properly if the screen fails to initialise
Dave Airlie [Wed, 9 Jan 2013 02:51:45 +0000 (12:51 +1000)]
xfree86/hotplug: cleanup properly if the screen fails to initialise

Due to another bug, the modesetting/udl driver would fail to init properly
on hotplug, when it did the code didn't clean up properly, and on removing
the device the server could crash.

Found in F18 testing.

Signed-off-by: Dave Airlie <airlied@redhat.com>
Reviewed-by: Aaron Plattner <aplattner@nvidia.com>
11 years agoos: use libunwind to generate backtraces
Marcin Slusarz [Wed, 20 Feb 2013 23:02:44 +0000 (09:02 +1000)]
os: use libunwind to generate backtraces

Libunwind generates backtraces much more reliably than glibc's "backtrace".

Before:
0: /opt/xserver/bin/X (0x400000+0x18ce36) [0x58ce36]
1: /opt/xserver/bin/X (xorg_backtrace+0x9) [0x58d119]
2: /opt/xserver/bin/X (0x400000+0x190d69) [0x590d69]
3: /lib64/libpthread.so.0 (0x7fb904268000+0x10a90) [0x7fb904278a90]
4: /lib64/libc.so.6 (ioctl+0x7) [0x7fb902fbf987]
5: /usr/lib64/libdrm.so.2 (drmIoctl+0x28) [0x7fb90405ffa8]
6: /usr/lib64/libdrm.so.2 (drmCommandWrite+0x1b) [0x7fb90406235b]
7: /usr/lib64/libdrm_nouveau.so.2 (nouveau_bo_wait+0x89) [0x7fb902009719]
8: /opt/xserver/lib/xorg/modules/drivers/nouveau_drv.so (0x7fb90220e000+0x76f3) [0x7fb9022156f3]
9: /opt/xserver/lib/xorg/modules/libexa.so (0x7fb9019c7000+0xbae0) [0x7fb9019d2ae0]
10: /opt/xserver/bin/X (0x400000+0x17d2b3) [0x57d2b3]
11: /opt/xserver/bin/X (0x400000+0xc9930) [0x4c9930]
12: /opt/xserver/bin/X (0x400000+0x3a81a) [0x43a81a]
13: /opt/xserver/bin/X (0x400000+0x3d6a1) [0x43d6a1]
14: /opt/xserver/bin/X (0x400000+0x2c2ca) [0x42c2ca]
15: /lib64/libc.so.6 (__libc_start_main+0xf5) [0x7fb902f019b5]
16: /opt/xserver/bin/X (0x400000+0x2c60d) [0x42c60d]
17: ?? [0x0]

After:
0: /opt/xserver/bin/X (OsSigHandler+0x39) [0x590d69]
1: /lib64/libpthread.so.0 (__restore_rt+0x0) [0x7fb904278a8f]
2: /lib64/libc.so.6 (ioctl+0x7) [0x7fb902fbf987]
3: /usr/lib64/libdrm.so.2 (drmIoctl+0x28) [0x7fb90405ffa8]
4: /usr/lib64/libdrm.so.2 (drmCommandWrite+0x1b) [0x7fb90406235b]
5: /usr/lib64/libdrm_nouveau.so.2 (nouveau_bo_wait+0x89) [0x7fb902009719]
6: /opt/xserver/lib/xorg/modules/drivers/nouveau_drv.so (nouveau_exa_download_from_screen+0x1a3) [0x7fb9022156f3]
7: /opt/xserver/lib/xorg/modules/libexa.so (exaGetImage+0x1f0) [0x7fb9019d2ae0]
8: /opt/xserver/bin/X (miSpriteGetImage+0x173) [0x57d2b3]
9: /opt/xserver/bin/X (compGetImage+0xb0) [0x4c9930]
10: /opt/xserver/bin/X (ProcGetImage+0x55a) [0x43a81a]
11: /opt/xserver/bin/X (Dispatch+0x341) [0x43d6a1]
12: /opt/xserver/bin/X (main+0x3ba) [0x42c2ca]
13: /lib64/libc.so.6 (__libc_start_main+0xf5) [0x7fb902f019b5]
14: /opt/xserver/bin/X (_start+0x29) [0x42c60d]
15: ? (?+0x29) [0x29]

Signed-off-by: Marcin Slusarz <marcin.slusarz@gmail.com>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
Tested-by: Knut Petersen <knut.petersen@t-online.de>
11 years agoxkb: Set nIndicators in XkbGetIndicatorMap
Peter Harris [Tue, 19 Feb 2013 21:08:52 +0000 (16:08 -0500)]
xkb: Set nIndicators in XkbGetIndicatorMap

Xlib doesn't use this value (it computes it from the reply length
instead) which is why nobody has noticed yet. But the spec
http://www.x.org/releases/X11R7.7/doc/kbproto/xkbproto.html
says that it should be set.

Signed-off-by: Peter Harris <pharris@opentext.com>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
11 years agoephyr: Add -resizeable option
Daniel Martin [Tue, 11 Dec 2012 16:23:55 +0000 (17:23 +0100)]
ephyr: Add -resizeable option

With this option passed, ephyr windows can be resized like normal
windows on the fly, without the need of an explicit parent window.

Signed-off-by: Daniel Martin <daniel.martin@secunet.com>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
11 years agodix: FreeAllAtoms() on reset
Peter Hutterer [Mon, 27 Feb 2012 06:43:10 +0000 (16:43 +1000)]
dix: FreeAllAtoms() on reset

==5712== 6 bytes in 1 blocks are still reachable in loss record 17 of 585
==5712==    at 0x4A074CD: malloc (vg_replace_malloc.c:236)
==5712==    by 0x3D1DE885B1: strndup (strndup.c:46)
==5712==    by 0x41CB71: MakeAtom (atom.c:121)
==5712==    by 0x55AE3E: XIGetKnownProperty (xiproperty.c:401)
==5712==    by 0x4251C9: AddInputDevice (devices.c:312)
==5712==    by 0x42AC0C: AllocDevicePair (devices.c:2657)
==5712==    by 0x425E6E: InitCoreDevices (devices.c:677)
==5712==    by 0x5ACA05: main (main.c:257)

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Chase Douglas <chase.douglas@canonical.com>
11 years agoMerge branch 'master' of git+ssh://people.freedesktop.org/~alanc/xserver into next
Peter Hutterer [Fri, 15 Feb 2013 01:58:52 +0000 (11:58 +1000)]
Merge branch 'master' of git+ssh://people.freedesktop.org/~alanc/xserver into next

11 years agoxfree86: remove redundant declaration of inputInfo
Peter Hutterer [Thu, 14 Feb 2013 00:21:47 +0000 (10:21 +1000)]
xfree86: remove redundant declaration of inputInfo

xf86Cursor.c:19:18: warning: redundant redeclaration of 'inputInfo'
[-Wredundant-decls]
In file included from xf86Cursor.c:18:0:
../../../include/inputstr.h:614:57: note: previous declaration of
'inputInfo' was here

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Alan Coopersmith <alan.coopersmith@oracle.com>
Reviewed-by: Mark Kettenis <kettenis@openbsd.org>
11 years agoxkb: remove unused variable 'names'
Peter Hutterer [Thu, 14 Feb 2013 00:15:33 +0000 (10:15 +1000)]
xkb: remove unused variable 'names'

xkb.c: In function '_XkbSetNamesCheck':
xkb.c:3987:18: warning: variable 'names' set but not used
[-Wunused-but-set-variable]

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Alan Coopersmith <alan.coopersmith@oracle.com>
Reviewed-by: Mark Kettenis <kettenis@openbsd.org>
11 years agoXext: rename two shadowing variables
Peter Hutterer [Thu, 14 Feb 2013 00:13:53 +0000 (10:13 +1000)]
Xext: rename two shadowing variables

panoramiX.c: In function 'PanoramiXCreateConnectionBlock':
panoramiX.c:599:10: warning: declaration of 'disableBackingStore' shadows a
global declaration [-Wshadow]
In file included from ../include/windowstr.h:60:0,
                 from panoramiX.c:47:
../include/opaque.h:56:52: warning: shadowed declaration is here [-Wshadow]

panoramiX.c: In function 'PanoramiXConsolidate':
panoramiX.c:834:19: warning: declaration of 'pScreen' shadows a previous
local [-Wshadow]
panoramiX.c:813:15: warning: shadowed declaration is here [-Wshadow]

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Alan Coopersmith <alan.coopersmith@oracle.com>
Reviewed-by: Mark Kettenis <kettenis@openbsd.org>
11 years agoXext: renaming shadowing variable
Peter Hutterer [Thu, 14 Feb 2013 00:09:53 +0000 (10:09 +1000)]
Xext: renaming shadowing variable

xvdisp.c: In function 'ProcXvStopVideo':
xvdisp.c:712:11: warning: declaration of 'rc' shadows a previous local
[-Wshadow]
xvdisp.c:705:17: warning: shadowed declaration is here [-Wshadow]

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Alan Coopersmith <alan.coopersmith@oracle.com>
Reviewed-by: Mark Kettenis <kettenis@openbsd.org>
11 years agofb: drop two unneeded shadowing variables
Peter Hutterer [Thu, 14 Feb 2013 00:06:55 +0000 (10:06 +1000)]
fb: drop two unneeded shadowing variables

fbpict.c: In function 'fbGlyphs':
fbpict.c:188:6: warning: declaration of 'x' shadows a previous local
[-Wshadow]
fbpict.c:111:9: warning: shadowed declaration is here [-Wshadow]
fbpict.c:188:9: warning: declaration of 'y' shadows a previous local
[-Wshadow]
fbpict.c:111:12: warning: shadowed declaration is here [-Wshadow]

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Alan Coopersmith <alan.coopersmith@oracle.com>
Reviewed-by: Soren Sandmann <ssp@redhat.com>
Reviewed-by: Mark Kettenis <kettenis@openbsd.org>
11 years agoxfree86: drop unused prevSIGIO
Peter Hutterer [Thu, 14 Feb 2013 00:04:06 +0000 (10:04 +1000)]
xfree86: drop unused prevSIGIO

Unused as of 5d309af2ed93e91c7d72f548a11052051efbb40f

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Alan Coopersmith <alan.coopersmith@oracle.com>
Reviewed-by: Mark Kettenis <kettenis@openbsd.org>
11 years agorandr: fix "set but unused" warnings
Peter Hutterer [Thu, 14 Feb 2013 00:02:02 +0000 (10:02 +1000)]
randr: fix "set but unused" warnings

rrcrtc.c: In function 'RRCrtcDetachScanoutPixmap':
rrcrtc.c:366:9: warning: variable 'ret' set but not used
[-Wunused-but-set-variable]
rrcrtc.c: In function 'rrCheckPixmapBounding':
rrcrtc.c:505:13: warning: variable 'ret' set but not used
[-Wunused-but-set-variable]
rrcrtc.c:445:9: warning: unused variable 'i' [-Wunused-variable]

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Alan Coopersmith <alan.coopersmith@oracle.com>
Reviewed-by: Mark Kettenis <kettenis@openbsd.org>
11 years agoMerge remote-tracking branch 'jeremyhu/master'
Keith Packard [Thu, 14 Feb 2013 19:05:48 +0000 (11:05 -0800)]
Merge remote-tracking branch 'jeremyhu/master'

11 years agoos: fix pnprintf OOB buffer read for unterminated length modifiers
Peter Hutterer [Thu, 14 Feb 2013 06:31:13 +0000 (16:31 +1000)]
os: fix pnprintf OOB buffer read for unterminated length modifiers

Format strings with length modifiers but missing format specifier like "%0"
will read one byte past the array size.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Keith Packard <keithp@keithp.com>
Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agoXORG_TLS: Pick the first option that works (ie: prefer __thread)
Jeremy Huddleston Sequoia [Sun, 10 Feb 2013 04:53:02 +0000 (20:53 -0800)]
XORG_TLS: Pick the first option that works (ie: prefer __thread)

Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
11 years agoos: Ensure <dix-config.h> is included in strndup.c
Jeremy Huddleston Sequoia [Sun, 10 Feb 2013 04:40:10 +0000 (20:40 -0800)]
os: Ensure <dix-config.h> is included in strndup.c

Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
Reviewed-by: Alan Coopersmith <alan.coopersmith@oracle.com>
11 years agoXQuartz: Ensure <dix-config.h> is included in capabilities.c
Jeremy Huddleston Sequoia [Sun, 10 Feb 2013 04:34:33 +0000 (20:34 -0800)]
XQuartz: Ensure <dix-config.h> is included in capabilities.c

Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
Reviewed-by: Alan Coopersmith <alan.coopersmith@oracle.com>
11 years agoUpdate to version 1.3.99.902 (1.14 RC2) xorg-server-1.13.99.902
Keith Packard [Thu, 14 Feb 2013 05:39:37 +0000 (21:39 -0800)]
Update to version 1.3.99.902 (1.14 RC2)

Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agorandr: unref the provider shared pixmap the appropriate number of times
Aaron Plattner [Thu, 24 Jan 2013 00:58:47 +0000 (16:58 -0800)]
randr: unref the provider shared pixmap the appropriate number of times

When an RandR shared pixmap is created in rrCreateSharedPixmap, it has a refcnt
of 1.  Then, PixmapShareToSlave bumps the refcnt to 2.  However, there's no
corresponding PixmapUnshareFromSlave where the refcnt can be decreased again,
and there's no convenient common place where the refcnt can be decremented when
the slave pixmap is destroyed.

Fix this by just unreffing the pixmap twice in RRCrtcDetachScanoutPixmap.

Signed-off-by: Aaron Plattner <aplattner@nvidia.com>
Reviewed-by: Dave Airlie <airlied@redhat.com>
Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agoxf86: use nt_list_for_each_entry_safe to walk InputHandlers in xf86Wakeup
Aaron Plattner [Mon, 11 Feb 2013 22:31:56 +0000 (14:31 -0800)]
xf86: use nt_list_for_each_entry_safe to walk InputHandlers in xf86Wakeup

This is necessary when the input handler deletes itself from the
list. Bug found by Maarten Lankhorst, this patch uses the list macros
instead of open-coding the fix.

Signed-off-by: Keith Packard <keithp@keithp.com>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
11 years agoxfree86: Man page shouldn't say Device is mandatory anymore
Bryce Harrington [Fri, 8 Feb 2013 23:56:02 +0000 (15:56 -0800)]
xfree86: Man page shouldn't say Device is mandatory anymore

man xorg.conf states that the 'Device' identifier is required in the
'Screen' section, yet current xserver defaults properly and boots up
fine without it.

Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=20742
Signed-off-by: Bryce Harrington <bryce@canonical.com>
Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agoxfree86: Use fbdev/vesa driver on Oaktrail, Medfield, CDV rather than -intel
Bryce Harrington [Fri, 8 Feb 2013 23:56:01 +0000 (15:56 -0800)]
xfree86: Use fbdev/vesa driver on Oaktrail, Medfield, CDV rather than -intel

Instead of defaulting to -intel for Oaktrail, Medfield, and CDV chips,
default to -fbdev.  For Poulsbo (only), attempt to use -psb if it's
installed, and fallback to fbdev otherwise.  All other Intel chips
should use -intel.

This fixed an issue where -intel would load on these chips and cause a
boot failure.  Newer -intel drivers avoid the boot hang, but it's still
the wrong driver to load, so why take chances.

The patch was originally created by Stefan Dirsch for OpenSUSE.  We have
included it in our stable release (Ubuntu "quantal" 12.10) since
December.

ref:  https://bugzilla.novell.com/show_bug.cgi?id=772279
ref:  https://bugs.launchpad.net/ubuntu/+bug/1069031
Fixes:  https://bugs.freedesktop.org/show_bug.cgi?id=60514
Signed-off-by: Bryce Harrington <bryce@canonical.com>
Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agorandr: bump advertised RandR version to 1.4
Dave Airlie [Tue, 5 Feb 2013 15:46:06 +0000 (07:46 -0800)]
randr: bump advertised RandR version to 1.4

Signed-off-by: Dave Airlie <airlied@redhat.com>
Reviewed-by: Aaron Plattner <aplattner@nvidia.com>
Tested-by: Aaron Plattner <aplattner@nvidia.com>
Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agoShort-cut the input device cleanup process during AbortServer()
Peter Hutterer [Wed, 30 Jan 2013 03:20:07 +0000 (03:20 +0000)]
Short-cut the input device cleanup process during AbortServer()

If we're about to abort, we're already in the signal handler and cannot call
down to the default device cleanup routines (which reset, free, alloc, and
do a bunch of other things).

Add a new DEVICE_ABORT mode to signal a driver's DeviceProc that it must
reset the hardware if needed but do nothing else. An actual HW reset is only
required for some drivers dealing with the HW directly.

This is largely backwards-compatible, hence the input ABI minor bump only.

Drivers we care about either return BadValue on a mode that's not
DEVICE_{INIT|ON|OFF|CLOSE} or print an error and return BadValue. Exception
here is vmmouse, which currently ignores it and would not reset anything.
This should be fixed if the reset is required.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Keith Packard <keithp@keithp.com>
Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agodix: support the transformation matrix for relative devices.
Peter Hutterer [Fri, 8 Feb 2013 04:52:02 +0000 (14:52 +1000)]
dix: support the transformation matrix for relative devices.

The transformation matrix we previously stored was a scaled matrix based on
the axis ranges of the device. For relative movements, the scaling is not
required (or desired).

Store two separate matrices, one as requested by the client, one as the
product of [scale . matrix . inv_scale]. Depending on the type of movement,
apply the respective matrix.

For relative movements, also drop the translation component since it doesn't
really make sense to use that bit.

Input ABI 19

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Keith Packard <keithp@keithp.com>
Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agoos: Round fraction in pnprintf %f format
Keith Packard [Fri, 8 Feb 2013 16:57:43 +0000 (08:57 -0800)]
os: Round fraction in pnprintf %f format

Truncating the fraction part leads to a test failure where -1203.30 is
printed as -1203.29. Round this to the nearest value instead by adding
0.5 before converting to an integer

Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agodix: Set focus field on XI2 crossing events
Carlos Garnacho [Wed, 6 Feb 2013 13:07:22 +0000 (14:07 +0100)]
dix: Set focus field on XI2 crossing events

Set on DeviceEnterLeaveEvent() the xXIEnterEvent->focus field
similarly to how the CoreEnterLeaveEvent() function above does
for core events.

This fixes bug https://bugzilla.gnome.org/show_bug.cgi?id=677329
reported to GTK+, where focus handling on window managers with
sloppy focus or no window manager present was broken due to this
field being always set to FALSE.

Signed-off-by: Carlos Garnacho <carlosg@gnome.org>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
11 years agodix: when shutting down slave devices, shut down xtest devices last
Peter Hutterer [Fri, 25 Jan 2013 01:47:32 +0000 (11:47 +1000)]
dix: when shutting down slave devices, shut down xtest devices last

XTest devices are the first ones in the list, being initialised together
with the master devices. If we disable the devices in-order and a device has
a button down when being disabled, the XTest device is checked for a
required button release (xkbAccessX.c's ProcessPointerEvent). This fails if
the device is already NULL.

Instead of putting the check there, disable the devices in the reverse order
they are initialised. Disable physical slaves first, then xtest devices,
then the master devices.

Testcase: shut down server with a button still held down on a physical
device

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Keith Packard <keithp@keithp.com>
11 years agoMerge branch 'ptraccel-fixes' into for-keith
Peter Hutterer [Fri, 8 Feb 2013 04:10:52 +0000 (14:10 +1000)]
Merge branch 'ptraccel-fixes' into for-keith

11 years agodix: pre-scale relative events from abs devices to desktop ratio (#31636)
Peter Hutterer [Fri, 11 Jan 2013 04:22:07 +0000 (14:22 +1000)]
dix: pre-scale relative events from abs devices to desktop ratio (#31636)

Absolute devices may send relative events depending on the mode (synaptics
by default, wacom per option). The relative events are added to the previous
position, converted into device coordinates and then scaled into desktop
coordinates for pointer movement.

Because the device range must be mapped into the desktop coordinate range,
this results in uneven scaling depending dimensions, e.g. on a setup with
width == 2 * height, a relative movement of 10/10 in device coordinates
results in a cursor movement of 20/10 (+ acceleration)

Other commonly user-visible results:
* the touchpad changing acceleration once an external monitor as added.
* drawing a circle on a wacom tablet in relative mode gives an ellipsis in
  the same ratio as the desktop dimensions.

Solution: pre-scale the incoming relative x/y coordinates by width/height
ratio of the total desktop size. Then add them to the previous
coordinates and scale back with the previous mapping, which will undo the
pre-scaling and give us the right movement.

X.Org Bug 31636 <http://bugs.freedesktop.org/show_bug.cgi?id=31636>

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Keith Packard <keithp@keithp.com>
11 years agodix: unify prefix for ptraccel debugging in DebugAccelF macro
Peter Hutterer [Thu, 10 Jan 2013 22:53:24 +0000 (08:53 +1000)]
dix: unify prefix for ptraccel debugging in DebugAccelF macro

If we're already using our own custom macro, might as well use it properly.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Keith Packard <keithp@keithp.com>
11 years agodix: use BUG_RETURN_VAL for an error message
Peter Hutterer [Thu, 10 Jan 2013 22:52:08 +0000 (08:52 +1000)]
dix: use BUG_RETURN_VAL for an error message

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Keith Packard <keithp@keithp.com>
11 years agodix: add some more info to a ptraccel debug msg
Peter Hutterer [Thu, 10 Jan 2013 22:49:15 +0000 (08:49 +1000)]
dix: add some more info to a ptraccel debug msg

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Keith Packard <keithp@keithp.com>
11 years agodix: fix ptraccel debugging printfs
Peter Hutterer [Thu, 10 Jan 2013 03:19:27 +0000 (13:19 +1000)]
dix: fix ptraccel debugging printfs

This is mostly sigsafe code, so use sigsave printf. And update some fields
to double that used to be int.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Keith Packard <keithp@keithp.com>
11 years agoxkb: Fix repeat behaviour of redirect and message actions
Andreas Wettstein [Tue, 29 Jan 2013 20:49:20 +0000 (21:49 +0100)]
xkb: Fix repeat behaviour of redirect and message actions

The redirect and the message action filter functions implicitly assumed that
when they receive an event for the same keycode they were activated for, that
this is the a release of the key that activated the filter.  This is not true
if the key autorepeats.  Due to the incorrect assumption, the effective key
repeat rate was effectively halved.

Signed-off-by: Andreas Wettstein <wettstein509@solnet.ch>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
11 years agoXext: if a root window is given in XTestFakeInput, move to that
Peter Hutterer [Sat, 26 Jan 2013 05:53:08 +0000 (15:53 +1000)]
Xext: if a root window is given in XTestFakeInput, move to that

For absolute events, if the client specifies a screen number offset the
coordinates by that. And add a new flag so we know when _not_ to add the
screen offset in GPE.

Without this offset and the flag, GPE would simply add the offset of the
current screen if POINTER_SCREEN is set.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Keith Packard <keithp@keithp.com>
11 years agoXext: pass the current screen to miProcessDeviceEvent() from xtest calls
Peter Hutterer [Tue, 29 Jan 2013 05:13:44 +0000 (15:13 +1000)]
Xext: pass the current screen to miProcessDeviceEvent() from xtest calls

Not passing in a screen means we skip the screen crossing updates, so a
xtest event that changes between ScreenRecs won't do so until the next
physical event comes in or never, whichever comes earlier.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Keith Packard <keithp@keithp.com>
11 years agodix: when scaling from desktop coord, take the total desktop size (#51904)
Sybren van Elderen [Tue, 29 Jan 2013 05:43:57 +0000 (15:43 +1000)]
dix: when scaling from desktop coord, take the total desktop size (#51904)

Scaled is already in desktop coordinates, take the total width into account,
not just the current screen's width.

Fixes Xdmx pointer position calculation.

X.Org Bug 51904 <http://bugs.freedesktop.org/show_bug.cgi?id=51904>

Signed-off-by: Sybren van Elderen <sowmestno@msn.com>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
11 years agoinclude: fix typo in list description
Peter Hutterer [Tue, 29 Jan 2013 02:51:15 +0000 (12:51 +1000)]
include: fix typo in list description

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
11 years agoxfree86: bail on misformed acpi strings (#73227)
Ted Felix [Tue, 29 Jan 2013 06:36:48 +0000 (16:36 +1000)]
xfree86: bail on misformed acpi strings (#73227)

If acpid sends a string in a format that we can't parse, bail out instead of
potentially dereferencing a NULL-pointer.

X.Org Bug 73227 <http://bugs.freedesktop.org/show_bug.cgi?id=73227>

Signed-off-by: Ted Felix <ted@tedfelix.com>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
11 years agoXi: limit valuator copy to valuator array size (#59939)
Peter Hutterer [Tue, 29 Jan 2013 01:01:29 +0000 (11:01 +1000)]
Xi: limit valuator copy to valuator array size (#59939)

mask[(MAX_VALUATORS + 7)/8] is larger than data[MAX_VALUATORS], so static
code checkers think we may be running OOB on the data array. Mask is
initialized to 0, so this should not happen, but change it anyway to shut up
code analyzer noise.

X.Org Bug 59939 <http://bugs.freedesktop.org/show_bug.cgi?id=59939>

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Alan Coopersmith <alan.coopersmith@oracle.com>
11 years agoXext: avoid null-pointer dereference in XTestFakeInput (#59937)
Alan Coopersmith [Tue, 29 Jan 2013 00:24:32 +0000 (10:24 +1000)]
Xext: avoid null-pointer dereference in XTestFakeInput (#59937)

dv is still NULL at this point, so return firstValuator instead (which is
the same value dv->firstValuator would be once initialized)

X.Org Bug 59937 <http://bugs.freedesktop.org/show_bug.cgi?id=59937>

Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
11 years agodmx: don't include dmx-config.h from xdmxconfig (#37502)
Peter Hutterer [Sat, 26 Jan 2013 04:13:33 +0000 (14:13 +1000)]
dmx: don't include dmx-config.h from xdmxconfig (#37502)

dmx-config.h is a server header which includes dix-config.h. That again
defines a bunch of server-specifics, including setting the size of XID to
32 bit.

libX11 uses unsigned long (8 bits on x86_64). XGCValues thus ends up being
16 bytes smaller in xdmxconfig than in the library, causing garbage to be
sent to the server.

X.Org Bug 37502 <http://bugs.freedesktop.org/show_bug.cgi?id=37502>

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Keith Packard <keithp@keithp.com>
11 years agoAvoid memory leak in ddc resort() if find_header() fails
Alan Coopersmith [Sun, 27 Jan 2013 23:42:02 +0000 (15:42 -0800)]
Avoid memory leak in ddc resort() if find_header() fails

Call find_header first, returning on failure before calling malloc.

Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
11 years agoxf86XvMCScreenInit: Avoid leak if dixRegisterPrivateKey fails
Alan Coopersmith [Sun, 27 Jan 2013 22:00:54 +0000 (14:00 -0800)]
xf86XvMCScreenInit: Avoid leak if dixRegisterPrivateKey fails

Found by parfait 1.1 memory analyser:
   Memory leak of pointer 'pAdapt' allocated with malloc((88 * num_adaptors))
        at line 162 of hw/xfree86/common/xf86xvmc.c in function 'xf86XvMCScreenInit'.
          'pAdapt' allocated at line 158 with malloc((88 * num_adaptors)).

Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
11 years agoAvoid memory leak on realloc failure in localRegisterFreeBoxCallback
Alan Coopersmith [Sun, 27 Jan 2013 21:55:50 +0000 (13:55 -0800)]
Avoid memory leak on realloc failure in localRegisterFreeBoxCallback

Also avoids leaving invalid pointers in structures if realloc had to
move them elsewhere to make them larger.

Found by parfait 1.1 code analyzer:
   Memory leak of pointer 'newCallbacks' allocated with realloc(((char*)offman->FreeBoxesUpdateCallback), (8 * (offman->NumCallbacks + 1)))
        at line 328 of hw/xfree86/common/xf86fbman.c in function 'localRegisterFreeBoxCallback'.
          'newCallbacks' allocated at line 320 with realloc(((char*)offman->FreeBoxesUpdateCallback), (8 * (offman->NumCallbacks + 1))).
          newCallbacks leaks when newCallbacks != NULL at line 327.
   Memory leak of pointer 'newPrivates' allocated with realloc(((char*)offman->devPrivates), (8 * (offman->NumCallbacks + 1)))
        at line 328 of hw/xfree86/common/xf86fbman.c in function 'localRegisterFreeBoxCallback'.
          'newPrivates' allocated at line 324 with realloc(((char*)offman->devPrivates), (8 * (offman->NumCallbacks + 1))).
          newPrivates leaks when newCallbacks == NULL at line 327.

Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
11 years agoAvoid NULL pointer dereference in xf86TokenToOptinfo if token not found
Alan Coopersmith [Sun, 27 Jan 2013 21:50:30 +0000 (13:50 -0800)]
Avoid NULL pointer dereference in xf86TokenToOptinfo if token not found

Reported by parfait 1.1 code analyzer:

Error: Null pointer dereference (CWE 476)
   Read from null pointer 'p'
        at line 746 of hw/xfree86/common/xf86Option.c in function 'xf86TokenToOptName'.
          Function 'xf86TokenToOptinfo' may return constant 'NULL' at line 721, called at line 745.
          Null pointer introduced at line 721 in function 'xf86TokenToOptinfo'.

Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
11 years agoMake xf86ValidateModes actually copy clock range list to screen pointer
Alan Coopersmith [Sun, 27 Jan 2013 21:10:08 +0000 (13:10 -0800)]
Make xf86ValidateModes actually copy clock range list to screen pointer

Our in-house parfait 1.1 code analysis tool complained that every exit
path from xf86ValidateModes() in hw/xfree86/common/xf86Mode.c leaks the
storeClockRanges allocation made at line 1501 with XNFalloc.

Investigating, it seems that this code to copy the clock range list to
the clockRanges list in the screen pointer is just plain insane, and
according to git, has been since we first imported it from XFree86.

We start at line 1495 by walking the linked list from scrp->clockRanges
until we find the end.  But that was just a diversion, since we've found
the end and immediately forgotten it, and thus at 1499 we know that
storeClockRanges is NULL, but that's not a problem since we're going to
immediately overwrite that value as the first thing in the loop.

So we move on through this loop at 1499, which takes us through the
linked list from the clockRanges variable, and for every entry in
that list allocates a new structure and copies cp to it.  If we've
not filled in the screen's clockRanges pointer yet, we set it to
the first storeClockRanges we copied from cp.   Otherwise, as best
I can tell, we just drop it into memory and let it leak away, as
parfait warned.

And then we hit the loop action, which if we haven't hit the end of
the cp list, advances cp to the next item in the list, and then just
for the fun of it, also sets storeClockRanges to the ->next pointer it
has just copied from cp as well, even though it's going to overwrite
it as the very first instruction in the loop body.

v2: rewritten using nt_list_* macros from Xorg's list.h header

Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
11 years agoFree keymap on error in Xephyr's hostx_load_keymap
Alan Coopersmith [Sun, 27 Jan 2013 20:08:47 +0000 (12:08 -0800)]
Free keymap on error in Xephyr's hostx_load_keymap

Found by parfait 1.1 code analyser:
   Memory leak of pointer 'keymap' allocated with XGetKeyboardMapping(HostX.dpy, min_keycode, ((max_keycode - min_keycode) + 1), &host_width)
        at line 861 of hw/kdrive/ephyr/hostx.c in function 'hostx_load_keymap'.
          'keymap' allocated at line 845 with XGetKeyboardMapping(HostX.dpy, min_keycode, ((max_keycode - min_keycode) + 1), &host_width).

Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
11 years agoStop leaking overlayWin in PanoramiXCompositeGetOverlayWindow error paths
Alan Coopersmith [Sun, 27 Jan 2013 19:20:45 +0000 (11:20 -0800)]
Stop leaking overlayWin in PanoramiXCompositeGetOverlayWindow error paths

Found by parfait 1.1 code analyzer:

Error: Memory leak (CWE 401)
   Memory leak of pointer 'overlayWin' allocated with malloc(72)
        at line 806 of composite/compext.c in function 'PanoramiXCompositeGetOverlayWindow'.
          pointer allocated at line 794 with malloc(72).
          <unknown> leaks when rc != 0 at line 804.
        at line 816 of composite/compext.c in function 'PanoramiXCompositeGetOverlayWindow'.
          pointer allocated at line 794 with malloc(72).
          <unknown> leaks when pOc == NULL at line 815.
        at line 825 of composite/compext.c in function 'PanoramiXCompositeGetOverlayWindow'.
          pointer allocated at line 794 with malloc(72).
          <unknown> leaks when cs->pOverlayWin == NULL at line 822
              and compCreateOverlayWindow(pScreen) == 0 at line 823.
        at line 834 of composite/compext.c in function 'PanoramiXCompositeGetOverlayWindow'.
          pointer allocated at line 794 with malloc(72).
          <unknown> leaks when rc != 0 at line 832.

Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
11 years agoHandle failure to create counter in init_system_idle_counter
Alan Coopersmith [Sun, 27 Jan 2013 18:06:42 +0000 (10:06 -0800)]
Handle failure to create counter in init_system_idle_counter

Check for NULL pointer (which can be returned for multiple reasons)
before trying to dereference it to add privates.   To avoid memory leak
in error path, delay malloc of privates until we're ready to add them.

In case we do return NULL up through SyncInitDeviceIdleTime, handle the
possibility of getting NULL passed back down to SyncRemoveDeviceIdleTime.

As reported by parfait 1.1:
Error: Null pointer dereference (CWE 476)
   Read from null pointer 'idle_time_counter'
        at line 2764 of xserver/Xext/sync.c in function 'init_system_idle_counter'.
          Function 'SyncCreateSystemCounter' may return constant 'NULL' at line 952, called at line 2756.
          Null pointer introduced at line 952 in function 'SyncCreateSystemCounter'.

Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
11 years agoprotocol-versions: Bump minor version of XI
Jasper St. Pierre [Wed, 23 Jan 2013 18:11:55 +0000 (13:11 -0500)]
protocol-versions: Bump minor version of XI

This was accidentally excluded when we added barriers.

Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agoconfig/udev: fix "removing GPU device" format string mistake
Aaron Plattner [Fri, 11 Jan 2013 01:01:17 +0000 (17:01 -0800)]
config/udev: fix "removing GPU device" format string mistake

 udev.c: In function 'device_removed':
 udev.c:270:9: warning: format '%d' expects argument of type 'int', but argument 3 has type 'const char *' [-Wformat]

Signed-off-by: Aaron Plattner <aplattner@nvidia.com>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agoxserver: fix build regression since 91ab237358c6e33da854914d3de493a9cbea7637
Dave Airlie [Mon, 21 Jan 2013 21:39:53 +0000 (07:39 +1000)]
xserver: fix build regression since 91ab237358c6e33da854914d3de493a9cbea7637

inputstr, double defines TouchListener typedef, maybe some gcc handles it,
but not all.

fixes tinderbox

Reported-by: Jon TURNEY <jon.turney@dronecode.org.uk>
Signed-off-by: Dave Airlie <airlied@redhat.com>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
Signed-off-by: Keith Packard <keithp@keithp.com>
11 years agoMerge remote-tracking branch 'jturney/xserver-next'
Keith Packard [Sun, 20 Jan 2013 23:58:38 +0000 (15:58 -0800)]
Merge remote-tracking branch 'jturney/xserver-next'

11 years agoMerge remote-tracking branch 'whot/for-keith'
Keith Packard [Sun, 20 Jan 2013 23:52:26 +0000 (15:52 -0800)]
Merge remote-tracking branch 'whot/for-keith'

11 years agoos: add support for %f to pnprintf
Peter Hutterer [Thu, 10 Jan 2013 03:20:12 +0000 (13:20 +1000)]
os: add support for %f to pnprintf

This is the lazy man's %f support. Print the decimal part of the number,
then append a decimal point, then print the first two digits of the
fractional part. So %f in sigsafe printing is really %.2f.

No boundary checks in place here.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Keith Packard <keithp@keithp.com>
11 years agoos: silently ignore length modifiers in pnprintf
Peter Hutterer [Thu, 10 Jan 2013 03:24:05 +0000 (13:24 +1000)]
os: silently ignore length modifiers in pnprintf

Until we have support for them, ignore any length modifiers so we don't need
to update all callers.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Keith Packard <keithp@keithp.com>