|
@@ -2298,6 +2298,11 @@ static int dspxfr_one_seg(struct hda_codec *codec,
|
|
|
hda_frame_size_words = ((sample_rate_div == 0) ? 0 :
|
|
|
(num_chans * sample_rate_mul / sample_rate_div));
|
|
|
|
|
|
+ if (hda_frame_size_words == 0) {
|
|
|
+ snd_printdd(KERN_ERR "frmsz zero\n");
|
|
|
+ return -EINVAL;
|
|
|
+ }
|
|
|
+
|
|
|
buffer_size_words = min(buffer_size_words,
|
|
|
(unsigned int)(UC_RANGE(chip_addx, 1) ?
|
|
|
65536 : 32768));
|
|
@@ -2308,8 +2313,7 @@ static int dspxfr_one_seg(struct hda_codec *codec,
|
|
|
chip_addx, hda_frame_size_words, num_chans,
|
|
|
sample_rate_mul, sample_rate_div, buffer_size_words);
|
|
|
|
|
|
- if ((buffer_addx == NULL) || (hda_frame_size_words == 0) ||
|
|
|
- (buffer_size_words < hda_frame_size_words)) {
|
|
|
+ if (buffer_size_words < hda_frame_size_words) {
|
|
|
snd_printdd(KERN_ERR "dspxfr_one_seg:failed\n");
|
|
|
return -EINVAL;
|
|
|
}
|