On Wednesday 17 April 2013 11:03:09 Benjamin Tissoires wrote:

> +static void appleir_remove(struct hid_device *hid)
> +{
> +       struct appleir *appleir = hid_get_drvdata(hid);
> +       del_timer_sync(&appleir->key_up_timer);
> +       hid_hw_stop(hid);
> +       kfree(appleir);
> +}

Hi,

this looks like a race condition. If you get input between
del_timer_sync() and hid_hw_stop() the timer may be restarted.
You need to stop the hw first.

        Regards
                Oliver

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to