Hi Barry, On Mon, Feb 10, 2014 at 06:07:39PM +0800, Barry Song wrote: > > static int sirfsoc_pwrc_remove(struct platform_device *pdev) > { > + struct sirfsoc_pwrc_drvdata *pwrcdrv = dev_get_drvdata(&pdev->dev); > + > device_init_wakeup(&pdev->dev, 0); > > + cancel_delayed_work_sync(&pwrcdrv->work); > + This is racy: interrupt is freed later and can schedule work again. Thanks. -- Dmitry -- To unsubscribe from this list: send the line "unsubscribe linux-input" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html