[PATCH] dix: fix error logging occuring in signal context of GetTouchEvents
Peter Hutterer
peter.hutterer at who-t.net
Wed Jan 9 14:54:34 PST 2013
On Wed, Jan 09, 2013 at 07:32:19PM +0100, Benjamin Tissoires wrote:
> GetTouchEvents is usually called in a signal context.
> Calling ErrorF for the error messages leads to X complaining about log:
>
> (EE) BUG: triggered 'if (inSignalContext)'
> (EE) BUG: log.c:484 in LogVMessageVerb()
> (EE) Warning: attempting to log data in a signal unsafe manner while in signal context.
> Please update to check inSignalContext and/or use LogMessageVerbSigSafe() or ErrorFSigSafe().
> The offending log format message is:
> %s: Attempted to start touch without x/y (driver bug)
>
> Signed-off-by: Benjamin Tissoires <benjamin.tissoires at gmail.com>
applied, thanks.
Cheers,
Peter
> ---
> dix/getevents.c | 8 ++++----
> 1 file changed, 4 insertions(+), 4 deletions(-)
>
> diff --git a/dix/getevents.c b/dix/getevents.c
> index 3d41e1e..a1e1938 100644
> --- a/dix/getevents.c
> +++ b/dix/getevents.c
> @@ -1895,16 +1895,16 @@ GetTouchEvents(InternalEvent *events, DeviceIntPtr dev, uint32_t ddx_touchid,
> if (!mask_in ||
> !valuator_mask_isset(mask_in, 0) ||
> !valuator_mask_isset(mask_in, 1)) {
> - ErrorF("%s: Attempted to start touch without x/y (driver bug)\n",
> - dev->name);
> + ErrorFSigSafe("%s: Attempted to start touch without x/y "
> + "(driver bug)\n", dev->name);
> return 0;
> }
> break;
> case XI_TouchUpdate:
> event->type = ET_TouchUpdate;
> if (!mask_in || valuator_mask_num_valuators(mask_in) <= 0) {
> - ErrorF("%s: TouchUpdate with no valuators? Driver bug\n",
> - dev->name);
> + ErrorFSigSafe("%s: TouchUpdate with no valuators? Driver bug\n",
> + dev->name);
> }
> break;
> case XI_TouchEnd:
> --
> 1.8.0.2
>
More information about the xorg-devel
mailing list