There is a typo here so we end up using the old freed pointer instead of
the newly allocated one.  (If the "n" is zero then the code works,
obviously).
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Acked-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Mark Brown <broonie@linaro.org>
 
        new_data = krealloc(data, sizeof(*data) + sizeof(widget) * n,
                GFP_KERNEL);
-       if (!data)
+       if (!new_data)
                return -ENOMEM;
 
-       data->wlist.widgets[n - 1] = widget;
-       data->wlist.num_widgets = n;
+       new_data->wlist.widgets[n - 1] = widget;
+       new_data->wlist.num_widgets = n;
 
-       kcontrol->private_data = data;
+       kcontrol->private_data = new_data;
 
        return 0;
 }