mbox series

[0/3] ALSA: core: Make some functions return void

Message ID 20230207191907.467756-1-u.kleine-koenig@pengutronix.de (mailing list archive)
Headers show
Series ALSA: core: Make some functions return void | expand

Message

Uwe Kleine-König Feb. 7, 2023, 7:19 p.m. UTC
Hello,

while checking in which cases hda_tegra_remove() can return a non-zero value, I
found that actually cannot happen. This series makes the involved functions
return void to make this obvious.

This is a preparation for making platform_driver::remove return void, too.

Best regards
Uwe

Uwe Kleine-König (3):
  ALSA: core: Make snd_card_disconnect() return void
  ALSA: core: Make snd_card_free_when_closed() return void
  ALSA: core: Make snd_card_free() return void

 include/sound/core.h      |  6 +++---
 sound/core/init.c         | 40 ++++++++++++++-------------------------
 sound/pci/hda/hda_tegra.c |  6 ++----
 sound/ppc/snd_ps3.c       |  4 +---
 4 files changed, 20 insertions(+), 36 deletions(-)


base-commit: 05ecb680708a1dbe6554d6fc17e5d9a8a7cb5e6a

Comments

Takashi Sakamoto Feb. 8, 2023, 8:33 a.m. UTC | #1
Hi,

On Tue, Feb 07, 2023 at 08:19:04PM +0100, Uwe Kleine-König wrote:
> Hello,
> 
> while checking in which cases hda_tegra_remove() can return a non-zero value, I
> found that actually cannot happen. This series makes the involved functions
> return void to make this obvious.
> 
> This is a preparation for making platform_driver::remove return void, too.
> 
> Best regards
> Uwe
> 
> Uwe Kleine-König (3):
>   ALSA: core: Make snd_card_disconnect() return void
>   ALSA: core: Make snd_card_free_when_closed() return void
>   ALSA: core: Make snd_card_free() return void
> 
>  include/sound/core.h      |  6 +++---
>  sound/core/init.c         | 40 ++++++++++++++-------------------------
>  sound/pci/hda/hda_tegra.c |  6 ++----
>  sound/ppc/snd_ps3.c       |  4 +---
>  4 files changed, 20 insertions(+), 36 deletions(-)

All of the changes in the patches look good to me, as the return value
seems not to be so effective for a long time (15 years or more) and
expected so for future.
 
Reviewed-by: Takashi Sakamoto <o-takashi@sakamocchi.jp>

One of my concern is that we are mostly in the last week for v6.3
development. When taking influence of the changes into account, it
would be possible to postpone to v6.4 development. But it's up to the
maintainer.


> base-commit: 05ecb680708a1dbe6554d6fc17e5d9a8a7cb5e6a

A small nitpicking. I think you use Linus' tree or so:
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=05ecb680708a

Because the hash is not reachable from the branch for next merge window on
the tree of sound subsystem upstream:
https://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound.git/commit/?h=for-next&id=05ecb680708a

I guess it is safer to use his tree as your work-base, even
if the three patches can be applied to it as is (fortunately).


Regards

Takashi Sakamoto
Jaroslav Kysela Feb. 8, 2023, 8:39 a.m. UTC | #2
On 07. 02. 23 20:19, Uwe Kleine-König wrote:
> Hello,
> 
> while checking in which cases hda_tegra_remove() can return a non-zero value, I
> found that actually cannot happen. This series makes the involved functions
> return void to make this obvious.
> 
> This is a preparation for making platform_driver::remove return void, too.
> 
> Best regards
> Uwe
> 
> Uwe Kleine-König (3):
>    ALSA: core: Make snd_card_disconnect() return void
>    ALSA: core: Make snd_card_free_when_closed() return void
>    ALSA: core: Make snd_card_free() return void
> 
>   include/sound/core.h      |  6 +++---
>   sound/core/init.c         | 40 ++++++++++++++-------------------------
>   sound/pci/hda/hda_tegra.c |  6 ++----
>   sound/ppc/snd_ps3.c       |  4 +---
>   4 files changed, 20 insertions(+), 36 deletions(-)

Reviewed-by: Jaroslav Kysela <perex@perex.cz>
Uwe Kleine-König Feb. 8, 2023, 9:25 a.m. UTC | #3
Hello,

On Wed, Feb 08, 2023 at 05:33:48PM +0900, Takashi Sakamoto wrote:
> On Tue, Feb 07, 2023 at 08:19:04PM +0100, Uwe Kleine-König wrote:
> > Hello,
> > 
> > while checking in which cases hda_tegra_remove() can return a non-zero value, I
> > found that actually cannot happen. This series makes the involved functions
> > return void to make this obvious.
> > 
> > This is a preparation for making platform_driver::remove return void, too.
> > 
> > Best regards
> > Uwe
> > 
> > Uwe Kleine-König (3):
> >   ALSA: core: Make snd_card_disconnect() return void
> >   ALSA: core: Make snd_card_free_when_closed() return void
> >   ALSA: core: Make snd_card_free() return void
> > 
> >  include/sound/core.h      |  6 +++---
> >  sound/core/init.c         | 40 ++++++++++++++-------------------------
> >  sound/pci/hda/hda_tegra.c |  6 ++----
> >  sound/ppc/snd_ps3.c       |  4 +---
> >  4 files changed, 20 insertions(+), 36 deletions(-)
> 
> All of the changes in the patches look good to me, as the return value
> seems not to be so effective for a long time (15 years or more) and
> expected so for future.

To give a more complete picture: Returning an error code in a cleanup
function does active harm. It makes driver authors expect that there
must be error handing and that they can/should return that error from
the remove function. This is wrong however and likely yields resource
leaks. See bbc126ae381cf0a27822c1f822d0aeed74cc40d9 for an example.

> Reviewed-by: Takashi Sakamoto <o-takashi@sakamocchi.jp>
> 
> One of my concern is that we are mostly in the last week for v6.3
> development. When taking influence of the changes into account, it
> would be possible to postpone to v6.4 development. But it's up to the
> maintainer.

There is no rush from my side. Eventually I want to modify
platform_driver::remove which depends on this patch series, but the 6.4
merge window is fine for me, as this effort will likely take some more
time.

> > base-commit: 05ecb680708a1dbe6554d6fc17e5d9a8a7cb5e6a
> 
> A small nitpicking. I think you use Linus' tree or so:
> https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=05ecb680708a
> 
> Because the hash is not reachable from the branch for next merge window on
> the tree of sound subsystem upstream:
> https://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound.git/commit/?h=for-next&id=05ecb680708a
> 
> I guess it is safer to use his tree as your work-base, even
> if the three patches can be applied to it as is (fortunately).

I see your point. My reason not to do that is that finding out the right
tree (and branch) to base a patch on is not always trivial. As someone
who sends patches touching the whole tree this is a considerable
overhead and most of the time it's not worth the effort in my
experience. Even if I had based my patch on tiwai's tree, there might be
a patch still in flux that is picked up first and conflicts with my
change. Most of the time the patch still applies and stating the base is
just for the benefit of the auto builders (which might have problems
finding the base commit if it's not in next) and if it doesn't apply the
person picking up the patch probably knows about Linus' tree and so git
is helpful resolving the resulting conflict.

It's still more complicated for patches that might or might not be
considered a fix. Then it's up to the maintainer if they apply it to
their fixes or next branch. (And that situation is just about to happen
as I found a problem in a driver I touched here. So stay tuned :-)

So I gave up thinking too much about the right base and take the
opportunistic route of just using Linus' tree (or the last -rc1) and if
there really a merge conflict pops up, support the maintainer only then.

Best regards
Uwe
Takashi Iwai Feb. 8, 2023, 12:41 p.m. UTC | #4
On Tue, 07 Feb 2023 20:19:04 +0100,
Uwe Kleine-König wrote:
> 
> Hello,
> 
> while checking in which cases hda_tegra_remove() can return a non-zero value, I
> found that actually cannot happen. This series makes the involved functions
> return void to make this obvious.
> 
> This is a preparation for making platform_driver::remove return void, too.
> 
> Best regards
> Uwe
> 
> Uwe Kleine-König (3):
>   ALSA: core: Make snd_card_disconnect() return void
>   ALSA: core: Make snd_card_free_when_closed() return void
>   ALSA: core: Make snd_card_free() return void

Applied all three patches now.  Thanks.


Takashi