|
|
@@ -1129,16 +1129,12 @@ int snd_pcm_hw_rule_add(struct snd_pcm_runtime *runtime, unsigned int cond,
|
|
|
if (constrs->rules_num >= constrs->rules_all) {
|
|
|
struct snd_pcm_hw_rule *new;
|
|
|
unsigned int new_rules = constrs->rules_all + 16;
|
|
|
- new = kcalloc(new_rules, sizeof(*c), GFP_KERNEL);
|
|
|
+ new = krealloc(constrs->rules, new_rules * sizeof(*c),
|
|
|
+ GFP_KERNEL);
|
|
|
if (!new) {
|
|
|
va_end(args);
|
|
|
return -ENOMEM;
|
|
|
}
|
|
|
- if (constrs->rules) {
|
|
|
- memcpy(new, constrs->rules,
|
|
|
- constrs->rules_num * sizeof(*c));
|
|
|
- kfree(constrs->rules);
|
|
|
- }
|
|
|
constrs->rules = new;
|
|
|
constrs->rules_all = new_rules;
|
|
|
}
|