[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <YL/7XP1fs/2bRiTM@piout.net>
Date: Wed, 9 Jun 2021 01:21:00 +0200
From: Alexandre Belloni <alexandre.belloni@...tlin.com>
To: Parshuram Raju Thombare <pthombar@...ence.com>
Cc: Nicolas Pitre <nico@...xnic.net>,
"slongerbeam@...il.com" <slongerbeam@...il.com>,
"vitor.soares@...opsys.com" <vitor.soares@...opsys.com>,
"praneeth@...com" <praneeth@...com>,
Milind Parab <mparab@...ence.com>,
"linux-i3c@...ts.infradead.org" <linux-i3c@...ts.infradead.org>,
"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>
Subject: Re: [PATCH v10 2/7] i3c: master: use i3c_master_register only for
main master
On 08/12/2020 05:47:51+0000, Parshuram Raju Thombare wrote:
> >This looks a bit confusing. Here you're rolling back detailss in
> >i3c_primary_master_register() that were factored out in
> >i3c_master_init(). If i3c_master_init() is successful, then you
> >shouldn't be undoing its things openly in i3c_primary_master_register().
> >Instead, there should be another function that does the reverse of
> >i3c_master_init() here.
>
> Every function do its cleanup in case of failures.
> And if any failure occur after successful i3c_master_init(), we have
> function i3c_master_bus_cleanup() which does the major cleanup.
>
The point from Nicolas here was that the workqueue is allocated in
i3c_master_init so you should have a function to destroy it instead of
having to do that separately in i3c_primary_master_register. The same is
true for the put_device. Or you have to ensure i3c_masterdev_release
is called when i3c_primary_master_register fails.
--
Alexandre Belloni, co-owner and COO, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com
Powered by blists - more mailing lists