ALSA: firewire-lib: Use ARRAY_SIZE() instead of sizeof() for correct loop limit
authorTakashi Sakamoto <o-takashi@sakamocchi.jp>
Tue, 27 May 2014 15:14:36 +0000 (00:14 +0900)
committerTakashi Iwai <tiwai@suse.de>
Tue, 27 May 2014 15:34:27 +0000 (17:34 +0200)
This commit fixes a big for loop count with array. The limitation of loop
count should be calcurated with the number of elements in the array, not
with the number of bytes.

Aditionally, this commit apply the same declaration as a prototype in header
for the array.

Signed-off-by: Takashi Sakamoto <o-takashi@sakamocchi.jp>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
sound/firewire/amdtp.c

index e573f253e39db672e0d79ea3f0f11db0afad45d0..31dd1cfc79b3225a31c8873253588705dc62e8be 100644 (file)
@@ -107,7 +107,7 @@ const unsigned int amdtp_syt_intervals[CIP_SFC_COUNT] = {
 };
 EXPORT_SYMBOL(amdtp_syt_intervals);
 
-const unsigned int amdtp_rate_table[] = {
+const unsigned int amdtp_rate_table[CIP_SFC_COUNT] = {
        [CIP_SFC_32000]  =  32000,
        [CIP_SFC_44100]  =  44100,
        [CIP_SFC_48000]  =  48000,
@@ -198,7 +198,7 @@ void amdtp_stream_set_parameters(struct amdtp_stream *s,
            WARN_ON(midi_channels > AMDTP_MAX_CHANNELS_FOR_MIDI))
                return;
 
-       for (sfc = 0; sfc < sizeof(amdtp_rate_table); ++sfc)
+       for (sfc = 0; sfc < ARRAY_SIZE(amdtp_rate_table); ++sfc)
                if (amdtp_rate_table[sfc] == rate)
                        goto sfc_found;
        WARN_ON(1);