From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S937041AbdJRKN5 (ORCPT ); Wed, 18 Oct 2017 06:13:57 -0400 Received: from cloudserver094114.home.net.pl ([79.96.170.134]:42808 "EHLO cloudserver094114.home.net.pl" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932583AbdJRKN4 (ORCPT ); Wed, 18 Oct 2017 06:13:56 -0400 From: "Rafael J. Wysocki" To: Jeffy Chen Cc: linux-kernel@vger.kernel.org, dmitry.torokhov@gmail.com, heiko@sntech.de, briannorris@chromium.org, dianders@chromium.org, tfiga@chromium.org, broonie@kernel.org, seanpaul@chromium.org, thierry.reding@gmail.com, Greg Kroah-Hartman Subject: Re: [PATCH] driver core: Make sure device detached from driver before deleting it Date: Wed, 18 Oct 2017 12:04:18 +0200 Message-ID: <1742035.QldI8RN9SY@aspire.rjw.lan> In-Reply-To: <20171018054926.4756-1-jeffy.chen@rock-chips.com> References: <20171018054926.4756-1-jeffy.chen@rock-chips.com> MIME-Version: 1.0 Content-Transfer-Encoding: 7Bit Content-Type: text/plain; charset="us-ascii" Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wednesday, October 18, 2017 7:49:26 AM CEST Jeffy Chen wrote: > There are cases we call device_del() without detaching it from the > driver(e.g. spi core del children devices). But device_del() itself detaches the device from its driver. > Signed-off-by: Jeffy Chen > --- > > drivers/base/core.c | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/drivers/base/core.c b/drivers/base/core.c > index 12ebd055724c..717efc3020af 100644 > --- a/drivers/base/core.c > +++ b/drivers/base/core.c > @@ -1951,6 +1951,8 @@ void device_del(struct device *dev) > struct kobject *glue_dir = NULL; > struct class_interface *class_intf; > > + device_release_driver(dev); > + > /* Notify clients of device removal. This call must come > * before dpm_sysfs_remove(). > */ > But device_del() calls bus_remove_device() which in turn calls device_release_driver(), so this looks like an ordering issue to me. What *exactly* is not working? Or rather, what symptoms do you see? Thanks, Rafael