Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1738106 > unrolled thread

Re: [PATCH 1/3] ALSA: bebob: Use common error handling code in snd_bebob_stream_start_duplex()

Started byTakashi Sakamoto <o-takashi@sakamocchi.jp>
First post2017-09-24 06:00 +0200
Last post2017-09-27 13:20 +0200
Articles 5 — 2 participants

Back to article view | Back to linux.kernel

This discussion starts older than the indexed window; earlier articles aren't shown. The article labeled Started by below is the oldest one visible, not the original post.


Contents

  Re: [PATCH 1/3] ALSA: bebob: Use common error handling code in  snd_bebob_stream_start_duplex() Takashi Sakamoto <o-takashi@sakamocchi.jp> - 2017-09-24 06:00 +0200
    Re: ALSA: bebob: Use common error handling code in  snd_bebob_stream_start_duplex() SF Markus Elfring <elfring@users.sourceforge.net> - 2017-09-24 09:10 +0200
      Re: ALSA: bebob: Use common error handling code in  snd_bebob_stream_start_duplex() Takashi Sakamoto <o-takashi@sakamocchi.jp> - 2017-09-27 01:40 +0200
        Re: ALSA: bebob: Use common error handling code in  snd_bebob_stream_start_duplex() SF Markus Elfring <elfring@users.sourceforge.net> - 2017-09-27 08:40 +0200
          Re: ALSA: bebob: Use common error handling code in  snd_bebob_stream_start_duplex() Takashi Sakamoto <o-takashi@sakamocchi.jp> - 2017-09-27 13:20 +0200

#1738106 — Re: [PATCH 1/3] ALSA: bebob: Use common error handling code in snd_bebob_stream_start_duplex()

FromTakashi Sakamoto <o-takashi@sakamocchi.jp>
Date2017-09-24 06:00 +0200
SubjectRe: [PATCH 1/3] ALSA: bebob: Use common error handling code in snd_bebob_stream_start_duplex()
Message-ID<ut6ff-3Eq-3@gated-at.bofh.it>
Hi,

On Sep 6 2017 19:22, SF Markus Elfring wrote:
> From: Markus Elfring <elfring@users.sourceforge.net>
> Date: Wed, 6 Sep 2017 11:40:53 +0200
> 
> Add jump targets so that a bit of exception handling can be better reused
> at the end of this function.
> 
> This issue was detected by using the Coccinelle software.
> 
> Signed-off-by: Markus Elfring <elfring@users.sourceforge.net>
> ---
>   sound/firewire/bebob/bebob_stream.c | 21 ++++++++++-----------
>   1 file changed, 10 insertions(+), 11 deletions(-)
> 
> diff --git a/sound/firewire/bebob/bebob_stream.c b/sound/firewire/bebob/bebob_stream.c
> index 4d3034a68bdf..bc9e42b6368e 100644
> --- a/sound/firewire/bebob/bebob_stream.c
> +++ b/sound/firewire/bebob/bebob_stream.c
> ...
> @@ -666,9 +661,7 @@ int snd_bebob_stream_start_duplex(struct snd_bebob *bebob, unsigned int rate)
>   		if (err < 0) {
>   			dev_err(&bebob->unit->device,
>   				"fail to run AMDTP slave stream:%d\n", err);
> -			amdtp_stream_stop(&bebob->rx_stream);
> -			break_both_connections(bebob);
> -			goto end;
> +			goto stop_rx_stream;
>   		}
>   
>   		/* wait first callback */

After the above code block, we have below code block.

658 /* start slave if needed */
659 if (!amdtp_stream_running(&bebob->tx_stream)) {
660     err = start_stream(bebob, &bebob->tx_stream, rate);
661     if (err < 0) {
662         dev_err(&bebob->unit->device,
663                 "fail to run AMDTP slave stream:%d\n", err);
664         goto stop_rx_stream;
665     }
666
667     /* wait first callback */
668     if (!amdtp_stream_wait_callback(&bebob->tx_stream,
669                                     CALLBACK_TIMEOUT)) {
670         amdtp_stream_stop(&bebob->tx_stream);
671         amdtp_stream_stop(&bebob->rx_stream);
672         break_both_connections(bebob);
673         err = -ETIMEDOUT;
674     }
675 }

I think it better to apply your solution too in the above to keep code 
consistency.

> @@ -682,6 +675,12 @@ int snd_bebob_stream_start_duplex(struct snd_bebob *bebob, unsigned int rate)
>   	}
>   end:
>   	return err;
> +
> +stop_rx_stream:
> +	amdtp_stream_stop(&bebob->rx_stream);
> +break_connections:
> +	break_both_connections(bebob);
> +	return err;
>   }
>   
>   void snd_bebob_stream_stop_duplex(struct snd_bebob *bebob)

For the other patches, I can find no merit to apply except for reduction 
of the number of characters included in the file.


Thanks

Takashi Sakamoto

[toc] | [next] | [standalone]


#1738114 — Re: ALSA: bebob: Use common error handling code in snd_bebob_stream_start_duplex()

FromSF Markus Elfring <elfring@users.sourceforge.net>
Date2017-09-24 09:10 +0200
SubjectRe: ALSA: bebob: Use common error handling code in snd_bebob_stream_start_duplex()
Message-ID<ut9d7-5Gg-11@gated-at.bofh.it>
In reply to#1738106
> 668     if (!amdtp_stream_wait_callback(&bebob->tx_stream,
> 669                                     CALLBACK_TIMEOUT)) {
> 670         amdtp_stream_stop(&bebob->tx_stream);
> 671         amdtp_stream_stop(&bebob->rx_stream);
> 672         break_both_connections(bebob);
> 673         err = -ETIMEDOUT;
> 674     }
> 675 }
> 
> I think it better to apply your solution too in the above to keep code consistency.

How do you think about to adjust this function implementation after the other two
update steps from the patch series would be integrated?


> For the other patches, I can find no merit to apply except for reduction
> of the number of characters included in the file.

Would you like to refer to any specific update suggestions for further clarification?

Regards,
Markus

[toc] | [prev] | [next] | [standalone]


#1740280 — Re: ALSA: bebob: Use common error handling code in snd_bebob_stream_start_duplex()

FromTakashi Sakamoto <o-takashi@sakamocchi.jp>
Date2017-09-27 01:40 +0200
SubjectRe: ALSA: bebob: Use common error handling code in snd_bebob_stream_start_duplex()
Message-ID<uu7Ch-2SA-1@gated-at.bofh.it>
In reply to#1738114
Hi,

On Sep 24 2017 16:06, SF Markus Elfring wrote:
>> 668     if (!amdtp_stream_wait_callback(&bebob->tx_stream,
>> 669                                     CALLBACK_TIMEOUT)) {
>> 670         amdtp_stream_stop(&bebob->tx_stream);
>> 671         amdtp_stream_stop(&bebob->rx_stream);
>> 672         break_both_connections(bebob);
>> 673         err = -ETIMEDOUT;
>> 674     }
>> 675 }
>>
>> I think it better to apply your solution too in the above to keep code consistency.
> 
> How do you think about to adjust this function implementation after the other two
> update steps from the patch series would be integrated?
> 
> 
>> For the other patches, I can find no merit to apply except for reduction
>> of the number of characters included in the file.
> 
> Would you like to refer to any specific update suggestions for further clarification?

I had already read your patch comments and understand your intention
somehow, because it's a part of task for daily reviewing. Then, I did
comment.

At development for Linux kernel, there're some important points for
developers to notice. In our case, we should care of _practicality_.
Roughly speaking, our work for kernel should add advantages for
kernel/application runtime or assists the other developers' work. In
this point, some patches are welcome and the others are not. I'll show
you two examples.

In this subsystem, I have reviewed patches from Julia Lawall. The most
of her or his patches attempt to add 'const' qualifier for read-only
symbols. As a result, the symbols place to '.rodata' section of ELF
binary. This section has a hint for loaders to put these symbols to
segments with read-only attributes. This has an advantage for
compilation time and runtime. Recent compilers can detect codes to
change content of the symbols with 'const' qualifier. Even if the codes
were exposed from developers understanding or compilers' check,
segmentation would occur in runtime at early stage of development or
early days after releasing kernel. This is very helpful for developers
to find unexpected changes for contents of the symbol.

I also subscribe a mailing list of Linux Driver Project[1], which is for
various drivers. Sometimes posted patches are rejected by maintainers.
Such patches typically include minor code change without actual
advantages for runtime or developers. For instance, patches for '80
characters per line' are often posted and rejected. If this kind of
patchset were added to change history of kernel, tons of unpractical
logs are accumulated for development.  This make it worse for developers
to maintain the kernel.

By the way, ALSA BeBoB driver is just for ASIC and firmwares which
ArchWave AG (formerly BridgeCo. AG.) had produced for devices with
IEC 61883-1/6 packet streaming on IEEE 1394 bus and Time Sensitive
Network (TSN). As long as I know, the last product with this solution
was shipped at 2010. Thus the driver is under maintenance. I have some
tasks for this driver as well as drivers in ALSA firewire stack,
however basically this driver is under maintenance and might not get
further integration. I think that code cleanup for the driver don't help
the other developers. It's better to apply such cleanup to more
long-live codes such as core functionality of ALSA. (But pay enough
attention to practicality of the changes when you start this kind of
work.)

In this point of view, whether your patchset is worth to be applied
or not, Please keep enough time to think about.


[1] http://driverdev.linuxdriverproject.org/mailman/listinfo

Thanks

Takashi Sakamoto

[toc] | [prev] | [next] | [standalone]


#1740427 — Re: ALSA: bebob: Use common error handling code in snd_bebob_stream_start_duplex()

FromSF Markus Elfring <elfring@users.sourceforge.net>
Date2017-09-27 08:40 +0200
SubjectRe: ALSA: bebob: Use common error handling code in snd_bebob_stream_start_duplex()
Message-ID<uueaK-79N-9@gated-at.bofh.it>
In reply to#1740280
> As long as I know, the last product with this solution was shipped
> at 2010. Thus the driver is under maintenance.

Thanks for your information.


> I have some tasks for this driver as well as drivers in ALSA firewire stack,
> however basically this driver is under maintenance and might not get
> further integration.

Good to know in principle …


> I think that code cleanup for the driver don't help the other developers.

I thought in an other direction if other contributors would like to care
for longer term support.


> It's better to apply such cleanup to more long-live codes such as
> core functionality of ALSA.

I am trying another general transformation pattern out.


> In this point of view, whether your patchset is worth to be applied
> or not, Please keep enough time to think about.

Automatic source code analysis can find various update candidates.
I am just unsure if a bit more software development attention is still
appropriate at some places.

Do you find any of the affected software modules so outdated
so that they should not be touched any more?

Regards,
Markus

[toc] | [prev] | [next] | [standalone]


#1740619 — Re: ALSA: bebob: Use common error handling code in snd_bebob_stream_start_duplex()

FromTakashi Sakamoto <o-takashi@sakamocchi.jp>
Date2017-09-27 13:20 +0200
SubjectRe: ALSA: bebob: Use common error handling code in snd_bebob_stream_start_duplex()
Message-ID<uuixI-1FJ-3@gated-at.bofh.it>
In reply to#1740427
On Sep 27 2017 15:38, SF Markus Elfring wrote:
>> As long as I know, the last product with this solution was shipped
>> at 2010. Thus the driver is under maintenance.
> 
> Thanks for your information.
> 
> 
>> I have some tasks for this driver as well as drivers in ALSA firewire stack,
>> however basically this driver is under maintenance and might not get
>> further integration.
> 
> Good to know in principle …
> 
> 
>> I think that code cleanup for the driver don't help the other developers.
> 
> I thought in an other direction if other contributors would like to care
> for longer term support.
> 
> 
>> It's better to apply such cleanup to more long-live codes such as
>> core functionality of ALSA.
> 
> I am trying another general transformation pattern out.
> 
> 
>> In this point of view, whether your patchset is worth to be applied
>> or not, Please keep enough time to think about.
> 
> Automatic source code analysis can find various update candidates.
> I am just unsure if a bit more software development attention is still
> appropriate at some places.
> 
> Do you find any of the affected software modules so outdated
> so that they should not be touched any more?

Please don't ignore the practicality I've explained, and don't 
accumulate your questions without it.


Regards

Takashi Sakamoto

[toc] | [prev] | [standalone]


Back to top | Article view | linux.kernel


csiph-web