Re: [PATCH v2 2/2] staging: greybus: remove unneeded return

From: Jaehee Park
Date: Wed Apr 13 2022 - 00:43:46 EST


On Tue, Apr 12, 2022 at 03:35:04PM -0500, Alex Elder wrote:
> On 4/12/22 2:59 PM, Jaehee Park wrote:
> > An empty function with void return type does not need an explicit
> > return. Issue found by checkpatch.
> >
> > Signed-off-by: Jaehee Park <jhpark1013@xxxxxxxxx>
>
> Dan's suggestion here was to simply remove this function
> entirely. It is only used as the ->remove callback
> for the soc_codec_dev_gbaudio structure.
>
> You can see that soc_codec_dev_gbaudio is only used in the
> call to devm_snd_soc_register_component() near the end of
> "audio_codec.c". When a sound component is registered
> that way, the ->remove callback is optional. You can see
> that because the only place in "sound/soc/soc-component.c"
> that it is referenced is snd_soc_component_remove() (as
> Dan said), and it only calls the function if it the pointer
> is non-null. Allowing null function pointers in places
> like this. to allow them to be optionally omitted is not
> an uncommon pattern you'll see in the kernel.
>
> Anyway, please don't just add another small patch to remove
> the function. Just replace *this* patch with one that
> removes the function, and omits the assignment if its
> address to soc_codec_dev_gbaudio->remove.
>
> -Alex

Hi Alex, Thank you for explaining where the functions are called from!
It makes a lot more sense now. I've used your explanation for my patch
log. Please let me know if I'm misunderstanding things. I've sent patch
v3 for your review. The first patch (typo patch) already has your
"review-by" -- thank you for the advice.

Thanks,
Jaehee
>
> > ---
> > drivers/staging/greybus/audio_codec.c | 1 -
> > 1 file changed, 1 deletion(-)
> >
> > diff --git a/drivers/staging/greybus/audio_codec.c b/drivers/staging/greybus/audio_codec.c
> > index 0f50d1e51e2c..3e3a16568def 100644
> > --- a/drivers/staging/greybus/audio_codec.c
> > +++ b/drivers/staging/greybus/audio_codec.c
> > @@ -1032,7 +1032,6 @@ static int gbcodec_probe(struct snd_soc_component *comp)
> > static void gbcodec_remove(struct snd_soc_component *comp)
> > {
> > /* Empty function for now */
> > - return;
> > }
> > static int gbcodec_write(struct snd_soc_component *comp, unsigned int reg,
>