From: Greg Kroah-Hartman <firstname.lastname@example.org> To: Lukas Wunner <email@example.com> Cc: "Rafael J. Wysocki" <firstname.lastname@example.org>, Dan Williams <email@example.com>, Geert Uytterhoeven <firstname.lastname@example.org>, Pantelis Antoniou <email@example.com>, Alexander Duyck <firstname.lastname@example.org>, Mark Brown <email@example.com>, firstname.lastname@example.org, email@example.com Subject: Re: [PATCH 2/3] driver core: Use rwsem for kill_device() serialization Date: Fri, 31 Jul 2020 08:45:05 +0200 Message-ID: <20200731064505.GH1508201@kroah.com> (raw) In-Reply-To: <firstname.lastname@example.org> On Thu, Jul 30, 2020 at 11:56:10AM +0200, Lukas Wunner wrote: > On Thu, Jul 30, 2020 at 08:53:26AM +0200, Greg Kroah-Hartman wrote: > > On Wed, Jul 08, 2020 at 03:27:02PM +0200, Lukas Wunner wrote: > > > kill_device() is currently serialized with driver probing by way of the > > > device_lock(). We're about to serialize it with device_add() as well > > > to prevent addition of children below a device which is going away. > > > > Why? Who does this? Shouldn't the bus that is trying to do this know > > this is happening? > > AFAICS, at least spi and i2c are affected. > > I first thought that pci is affected as well but it seems the global > pci_lock_rescan_remove() performs the required serialization. > > I've yet to take a closer look at acpi and usb. Any bus which > creates a device hierarchy with dynamic addition & removal needs > to make sure no new children are added after removal of the parent > has begun. > > > > So, why are you pushing this down into the driver core, can't this be > > done in whatever crazy bus wants to do this, like is done here? > > I guess it can. Let me try to perform the locking at the bus level then. I thought the bus code itself had this type of serialization already...
next prev parent reply index Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top 2020-07-08 13:27 [PATCH 0/3] Fix races on device removal Lukas Wunner 2020-07-08 13:27 ` [PATCH 1/3] driver core: Avoid binding drivers to dead devices Lukas Wunner 2020-07-08 13:27 ` [PATCH 2/3] driver core: Use rwsem for kill_device() serialization Lukas Wunner 2020-07-30 6:53 ` Greg Kroah-Hartman 2020-07-30 9:56 ` Lukas Wunner 2020-07-31 6:45 ` Greg Kroah-Hartman [this message] 2020-07-31 9:53 ` Lukas Wunner 2020-07-08 13:27 ` [PATCH 3/3] driver core: Avoid adding children below a dead parent Lukas Wunner 2020-07-24 14:29 ` [driver core] e3b1cb5c89: WARNING:possible_recursive_locking_detected kernel test robot 2020-07-25 11:07 ` Lukas Wunner 2020-07-30 6:54 ` [PATCH 0/3] Fix races on device removal Greg Kroah-Hartman
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20200731064505.GH1508201@kroah.com \ --email@example.com \ --firstname.lastname@example.org \ --email@example.com \ --firstname.lastname@example.org \ --email@example.com \ --firstname.lastname@example.org \ --email@example.com \ --firstname.lastname@example.org \ --email@example.com \ --firstname.lastname@example.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
Linux-SPI Archive on lore.kernel.org Archives are clonable: git clone --mirror https://lore.kernel.org/linux-spi/0 linux-spi/git/0.git # If you have public-inbox 1.1+ installed, you may # initialize and index your mirror using the following commands: public-inbox-init -V2 linux-spi linux-spi/ https://lore.kernel.org/linux-spi \ email@example.com public-inbox-index linux-spi Example config snippet for mirrors Newsgroup available over NNTP: nntp://nntp.lore.kernel.org/org.kernel.vger.linux-spi AGPL code for this site: git clone https://public-inbox.org/public-inbox.git