[alsa-devel] [patch] ALSA: oxfw: fix a condition in start_stream()
Static checkers complain that this function doesn't return negative error codes. The comments for amdtp_stream_wait_callback() say that we should stop the stream if it returns false.
Fixes: f3699e2c7745 ('ALSA: oxfw: Change the way to start stream') Signed-off-by: Dan Carpenter dan.carpenter@oracle.com
diff --git a/sound/firewire/oxfw/oxfw-stream.c b/sound/firewire/oxfw/oxfw-stream.c index 29ccb36..ee67581 100644 --- a/sound/firewire/oxfw/oxfw-stream.c +++ b/sound/firewire/oxfw/oxfw-stream.c @@ -172,7 +172,7 @@ static int start_stream(struct snd_oxfw *oxfw, struct amdtp_stream *stream,
/* Wait first packet */ err = amdtp_stream_wait_callback(stream, CALLBACK_TIMEOUT); - if (err < 0) + if (err == 0) stop_stream(oxfw, stream); end: return err;
Hi Dan,
On Feb 27 2015 05:32, Dan Carpenter wrote:
Static checkers complain that this function doesn't return negative error codes. The comments for amdtp_stream_wait_callback() say that we should stop the stream if it returns false.
Fixes: f3699e2c7745 ('ALSA: oxfw: Change the way to start stream') Signed-off-by: Dan Carpenter dan.carpenter@oracle.com
Thanks for this patch, while the error code should be assigned to -ETIMEDOUT, as the other drivers do.
I post an alternative patch to fix them.
Thanks
Takashi Sakamoto
diff --git a/sound/firewire/oxfw/oxfw-stream.c b/sound/firewire/oxfw/oxfw-stream.c index 29ccb36..ee67581 100644 --- a/sound/firewire/oxfw/oxfw-stream.c +++ b/sound/firewire/oxfw/oxfw-stream.c @@ -172,7 +172,7 @@ static int start_stream(struct snd_oxfw *oxfw, struct amdtp_stream *stream,
/* Wait first packet */ err = amdtp_stream_wait_callback(stream, CALLBACK_TIMEOUT);
- if (err < 0)
- if (err == 0) stop_stream(oxfw, stream);
end: return err;
The amdtp_stream_wait_callback() doesn't return minus value and the return code is not for error code.
This commit fixes with a propper condition and an error code.
Fixes: f3699e2c7745 ('ALSA: oxfw: Change the way to start stream') Reported-by: Dan Carpenter dan.carpenter@oracle.com Signed-off-by: Takashi Sakamoto o-takashi@sakamocchi.jp --- sound/firewire/oxfw/oxfw-stream.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/sound/firewire/oxfw/oxfw-stream.c b/sound/firewire/oxfw/oxfw-stream.c index 29ccb36..e6757cd 100644 --- a/sound/firewire/oxfw/oxfw-stream.c +++ b/sound/firewire/oxfw/oxfw-stream.c @@ -171,9 +171,10 @@ static int start_stream(struct snd_oxfw *oxfw, struct amdtp_stream *stream, }
/* Wait first packet */ - err = amdtp_stream_wait_callback(stream, CALLBACK_TIMEOUT); - if (err < 0) + if (!amdtp_stream_wait_callback(stream, CALLBACK_TIMEOUT)) { stop_stream(oxfw, stream); + err = -ETIMEDOUT; + } end: return err; }
At Fri, 27 Feb 2015 09:39:32 +0900, Takashi Sakamoto wrote:
The amdtp_stream_wait_callback() doesn't return minus value and the return code is not for error code.
This commit fixes with a propper condition and an error code.
Fixes: f3699e2c7745 ('ALSA: oxfw: Change the way to start stream') Reported-by: Dan Carpenter dan.carpenter@oracle.com Signed-off-by: Takashi Sakamoto o-takashi@sakamocchi.jp
Applied, thanks.
Takashi
sound/firewire/oxfw/oxfw-stream.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/sound/firewire/oxfw/oxfw-stream.c b/sound/firewire/oxfw/oxfw-stream.c index 29ccb36..e6757cd 100644 --- a/sound/firewire/oxfw/oxfw-stream.c +++ b/sound/firewire/oxfw/oxfw-stream.c @@ -171,9 +171,10 @@ static int start_stream(struct snd_oxfw *oxfw, struct amdtp_stream *stream, }
/* Wait first packet */
- err = amdtp_stream_wait_callback(stream, CALLBACK_TIMEOUT);
- if (err < 0)
- if (!amdtp_stream_wait_callback(stream, CALLBACK_TIMEOUT)) { stop_stream(oxfw, stream);
err = -ETIMEDOUT;
- }
end: return err; } -- 2.1.0
participants (3)
-
Dan Carpenter
-
Takashi Iwai
-
Takashi Sakamoto