On Wed, Aug 22, 2012 at 8:06 PM, Peter Hutterer
<peter.hutte...@who-t.net> wrote:
> wcmSingleFingerTap() is called during SIGIO, calling TimerSet(NULL, ...)
> will malloc inside the signal handler and hang the box.
>
> Signed-off-by: Peter Hutterer <peter.hutte...@who-t.net>

I haven't seen the lockup but makes sense.

Acked-by: Chris Bagwell <ch...@cnpbagwell.com>

> ---
>  src/wcmConfig.c      | 2 ++
>  src/wcmTouchFilter.c | 2 +-
>  src/xf86WacomDefs.h  | 1 +
>  3 files changed, 4 insertions(+), 1 deletion(-)
>
> diff --git a/src/wcmConfig.c b/src/wcmConfig.c
> index 157d9d3..24ec85b 100644
> --- a/src/wcmConfig.c
> +++ b/src/wcmConfig.c
> @@ -102,6 +102,7 @@ static int wcmAllocate(InputInfoPtr pInfo)
>
>         /* timers */
>         priv->serial_timer = TimerSet(NULL, 0, 0, NULL, NULL);
> +       priv->tap_timer = TimerSet(NULL, 0, 0, NULL, NULL);
>
>         return 1;
>
> @@ -125,6 +126,7 @@ static void wcmFree(InputInfoPtr pInfo)
>                 return;
>
>         TimerFree(priv->serial_timer);
> +       TimerFree(priv->tap_timer);
>         free(priv->tool);
>         wcmFreeCommon(&priv->common);
>         free(priv);
> diff --git a/src/wcmTouchFilter.c b/src/wcmTouchFilter.c
> index d25608b..bf0ecec 100644
> --- a/src/wcmTouchFilter.c
> +++ b/src/wcmTouchFilter.c
> @@ -201,7 +201,7 @@ static void wcmSingleFingerTap(WacomDevicePtr priv)
>                         common->wcmGestureMode = GESTURE_PREDRAG_MODE;
>
>                         /* Delay to detect possible drag operation */
> -                       TimerSet(NULL, 0, 
> common->wcmGestureParameters.wcmTapTime, wcmSingleFingerTapTimer, priv);
> +                       TimerSet(priv->tap_timer, 0, 
> common->wcmGestureParameters.wcmTapTime, wcmSingleFingerTapTimer, priv);
>                 }
>         }
>  }
> diff --git a/src/xf86WacomDefs.h b/src/xf86WacomDefs.h
> index 45970dc..38a0411 100644
> --- a/src/xf86WacomDefs.h
> +++ b/src/xf86WacomDefs.h
> @@ -304,6 +304,7 @@ struct _WacomDeviceRec
>         int isParent;           /* set to 1 if the device is not 
> auto-hotplugged */
>
>         OsTimerPtr serial_timer; /* timer used for serial number property 
> update */
> +       OsTimerPtr tap_timer;   /* timer used for tap timing */
>  };
>
>  
> /******************************************************************************
> --
> 1.7.11.2
>
>
> ------------------------------------------------------------------------------
> Live Security Virtual Conference
> Exclusive live event will cover all the ways today's security and
> threat landscape has changed and how IT managers can respond. Discussions
> will include endpoint security, mobile security and the latest in malware
> threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
> _______________________________________________
> Linuxwacom-devel mailing list
> Linuxwacom-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/linuxwacom-devel

------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
_______________________________________________
Linuxwacom-devel mailing list
Linuxwacom-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linuxwacom-devel

Reply via email to