From: Christian Lamparter <chunkeey@gmail.com>
To: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
Cc: Kalle Valo <kvalo@kernel.org>,
"David S. Miller" <davem@davemloft.net>,
Eric Dumazet <edumazet@google.com>,
Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>,
"John W. Linville" <linville@tuxdriver.com>,
linux-kernel <linux-kernel@vger.kernel.org>,
kernel-janitors@vger.kernel.org,
Christian Lamparter <chunkeey@web.de>,
linux-wireless <linux-wireless@vger.kernel.org>,
Netdev <netdev@vger.kernel.org>
Subject: Re: [PATCH v2] p54: Fix an error handling path in p54spi_probe()
Date: Wed, 15 Jun 2022 23:03:34 +0200 [thread overview]
Message-ID: <df6b487b-b8b7-44fc-7c2d-e6fd15072c14@gmail.com> (raw)
In-Reply-To: <f13c3976-2ba0-e16d-0853-5b5b1be16d11@wanadoo.fr>
On 13/06/2022 22:57, Christophe JAILLET wrote:
> Le 13/06/2022 à 22:02, Christian Lamparter a écrit :
>> On Sun, Jun 12, 2022 at 11:12 PM Christophe JAILLET
>> <christophe.jaillet@wanadoo.fr> wrote:
>>>
>>> If an error occurs after a successful call to p54spi_request_firmware(), it
>>> must be undone by a corresponding release_firmware() as already done in
>>> the error handling path of p54spi_request_firmware() and in the .remove()
>>> function.
>>>
>>> Add the missing call in the error handling path and remove it from
>>> p54spi_request_firmware() now that it is the responsibility of the caller
>>> to release the firmawre
>>
>> that last word hast a typo: firmware. (maybe Kalle can fix this in post).
>
> More or less the same typo twice in a row... _Embarrassed_
>
>>
>>> Fixes: cd8d3d321285 ("p54spi: p54spi driver")
>>> Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
>> Acked-by: Christian Lamparter <chunkeey@gmail.com>
>> (Though, v1 was fine too.)
>>> ---
>>> v2: reduce diffstat and take advantage on the fact that release_firmware()
>>> checks for NULL
>>
>> Heh, ok ;) . Now that I see it, the "ret = p54_parse_firmware(...); ... "
>> could have been replaced with "return p54_parse_firmware(dev, priv->firmware);"
>> so the p54spi.c could shrink another 5-6 lines.
>>
>> I think leaving p54spi_request_firmware() callee to deal with
>> releasing the firmware
>> in the error case as well is nicer because it gets rid of a "but in
>> this case" complexity.
>
>
> Take the one you consider being the best one.
well said!
>
> If it deserves a v3 to axe some lines of code,
> I can do it but, as said previously,
> v1 is for me the cleaner and more future proof.
Gee, that last sentence about "future proof" is daring.
I don't know what's up on the horizon. For my part, I've been devresing
parts of carl9170 and now thinking about it. Because the various
request_firmware*() functions could be a target for devres too.
A driver usually loads the firmware in .probe(). It stays around because
of .suspend()+.resume() and gets freed by .release().
With devresing up request_firmware(), that release_firmware() would be
rendered obsolete in all of p54* cases.
There must be something that I have missed? right?
It's because there's already an extensive list of managed interfaces:
<https://www.kernel.org/doc/html/latest/driver-api/driver-model/devres.html>
But the firmware_class is not on it. Does somebody know the presumably
"very good" reason why not? I can't believe that this hasn't been done yet.
Regards,
Christian
next prev parent reply other threads:[~2022-06-15 21:03 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-06-12 21:12 [PATCH v2] p54: Fix an error handling path in p54spi_probe() Christophe JAILLET
2022-06-13 20:02 ` Christian Lamparter
2022-06-13 20:57 ` Christophe JAILLET
2022-06-14 6:15 ` Kalle Valo
2022-06-14 7:25 ` Dan Carpenter
2022-06-15 21:03 ` Christian Lamparter [this message]
2022-06-15 21:12 ` Johannes Berg
2022-06-16 10:36 ` Dan Carpenter
2022-06-16 13:13 ` Christian Lamparter
2022-06-16 15:19 ` Dan Carpenter
2022-06-16 19:35 ` Christophe JAILLET
2022-07-18 11:51 ` [v2] wifi: " Kalle Valo
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=df6b487b-b8b7-44fc-7c2d-e6fd15072c14@gmail.com \
--to=chunkeey@gmail.com \
--cc=christophe.jaillet@wanadoo.fr \
--cc=chunkeey@web.de \
--cc=davem@davemloft.net \
--cc=edumazet@google.com \
--cc=kernel-janitors@vger.kernel.org \
--cc=kuba@kernel.org \
--cc=kvalo@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-wireless@vger.kernel.org \
--cc=linville@tuxdriver.com \
--cc=netdev@vger.kernel.org \
--cc=pabeni@redhat.com \
/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
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.