On Tue, 2016-04-12 at 14:43 +0300, Heikki Krogerus wrote: > +static int ucsi_init(struct ucsi *ucsi) > +{ > + struct ucsi_connector *con; > + struct ucsi_control ctrl; > + int ret; > + int i; > + > + atomic_set(&ucsi->event_pending, 0); > + init_completion(&ucsi->complete); > + mutex_init(&ucsi->ppm_lock); > + > + mutex_lock(&ucsi->ppm_lock); > + > + /* Reset */ > + ret = ucsi_acpi_cmd(ucsi, UCSI_PPM_RESET); > + if (ret) > + return ret; With a lock held? > +static int ucsi_acpi_remove(struct platform_device *pdev) > +{ > + struct ucsi *ucsi = platform_get_drvdata(pdev); > + > + acpi_remove_notify_handler(ACPI_HANDLE(&pdev->dev), > + ACPI_ALL_NOTIFY, ucsi_acpi_notify); > + > + /* Disable all notifications */ > + ucsi_acpi_cmd(ucsi, UCSI_SET_NOTIFICATION_ENABLE); You remove the handler before you disable notifications? Regards Oliver -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html