diff --git a/drivers/staging/speakup/kobjects.c b/drivers/staging/speakup/kobjects.c index 61a3f7a5eb6be148acc1c9ce88c4a7cb7278c277..f31afa2cffb71597df483615730c6a0e92fffdd6 100644 --- a/drivers/staging/speakup/kobjects.c +++ b/drivers/staging/speakup/kobjects.c @@ -651,7 +651,10 @@ ssize_t spk_var_store(struct kobject *kobj, struct kobj_attribute *attr, * If voice was just changed, we might need to reset our default * pitch and volume. */ - if (param->var_id == VOICE) { + if (param->var_id == VOICE && synth && + (ret == 0 || ret == -ERESTART)) { + var_data = param->data; + value = var_data->u.n.value; spk_reset_default_value("pitch", synth->default_pitch, value); spk_reset_default_value("vol", synth->default_vol,