All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] usb-audio: fix combine_word problem
@ 2009-11-06 21:44 Julian Anastasov
  2009-11-07  9:22 ` Takashi Iwai
  0 siblings, 1 reply; 2+ messages in thread
From: Julian Anastasov @ 2009-11-06 21:44 UTC (permalink / raw)
  To: Takashi Iwai; +Cc: linux-kernel


	Fix combine_word problem where first octet is not
read properly. The only affected place seems to be the
INPUT_TERMINAL type. Before now, sound controls can be created
with the output terminal's name which is a fallback mechanism
used only for unknown input terminal types. For example,
Line can wrongly appear as Speaker. After the change it
should appear as Line.

	The side effect of this change can be that users
can expect the wrong control name in their scripts or
programs while now we return the correct one.

	Probably, these defines should use get_unaligned_le16 and
friends.

Signed-off-by: Julian Anastasov <ja@ssi.bg>
---

diff -urp v2.6.31/linux/sound/usb/usbaudio.h linux/sound/usb/usbaudio.h
--- v2.6.31/linux/sound/usb/usbaudio.h	2009-06-13 10:53:59.000000000 +0300
+++ linux/sound/usb/usbaudio.h	2009-11-06 22:38:00.000000000 +0200
@@ -210,7 +210,7 @@ struct snd_usb_midi_endpoint_info {
 /*
  */
 
-#define combine_word(s)    ((*s) | ((unsigned int)(s)[1] << 8))
+#define combine_word(s)    ((*(s)) | ((unsigned int)(s)[1] << 8))
 #define combine_triple(s)  (combine_word(s) | ((unsigned int)(s)[2] << 16))
 #define combine_quad(s)    (combine_triple(s) | ((unsigned int)(s)[3] << 24))
 

^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: [PATCH] usb-audio: fix combine_word problem
  2009-11-06 21:44 [PATCH] usb-audio: fix combine_word problem Julian Anastasov
@ 2009-11-07  9:22 ` Takashi Iwai
  0 siblings, 0 replies; 2+ messages in thread
From: Takashi Iwai @ 2009-11-07  9:22 UTC (permalink / raw)
  To: Julian Anastasov; +Cc: linux-kernel

At Fri, 6 Nov 2009 23:44:53 +0200 (EET),
Julian Anastasov wrote:
> 
> 
> 	Fix combine_word problem where first octet is not
> read properly. The only affected place seems to be the
> INPUT_TERMINAL type. Before now, sound controls can be created
> with the output terminal's name which is a fallback mechanism
> used only for unknown input terminal types. For example,
> Line can wrongly appear as Speaker. After the change it
> should appear as Line.

Wow, this is really an old bug.  I wonder no one noticed it, so far...

> 	The side effect of this change can be that users
> can expect the wrong control name in their scripts or
> programs while now we return the correct one.

Yes, but it's a right "fix", so let it be.

> 	Probably, these defines should use get_unaligned_le16 and
> friends.

Sounds like a good idea.  But 24bit version is still missing :)

> Signed-off-by: Julian Anastasov <ja@ssi.bg>

Applied now, and added Cc to stable kernel.

Thanks!


Takashi

> ---
> 
> diff -urp v2.6.31/linux/sound/usb/usbaudio.h linux/sound/usb/usbaudio.h
> --- v2.6.31/linux/sound/usb/usbaudio.h	2009-06-13 10:53:59.000000000 +0300
> +++ linux/sound/usb/usbaudio.h	2009-11-06 22:38:00.000000000 +0200
> @@ -210,7 +210,7 @@ struct snd_usb_midi_endpoint_info {
>  /*
>   */
>  
> -#define combine_word(s)    ((*s) | ((unsigned int)(s)[1] << 8))
> +#define combine_word(s)    ((*(s)) | ((unsigned int)(s)[1] << 8))
>  #define combine_triple(s)  (combine_word(s) | ((unsigned int)(s)[2] << 16))
>  #define combine_quad(s)    (combine_triple(s) | ((unsigned int)(s)[3] << 24))
>  
> 

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2009-11-07  9:22 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2009-11-06 21:44 [PATCH] usb-audio: fix combine_word problem Julian Anastasov
2009-11-07  9:22 ` Takashi Iwai

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.