Commit 3093c641 authored by Andy Shevchenko's avatar Andy Shevchenko Committed by Wolfram Sang

i2c: mux: pca954x: Move device_remove_file() out of pca954x_cleanup()

device_create_file() is called the last in ->probe() but pca954x_cleanup(),
which is called earlier in error path, tries to remove never created file.
Move device_remove_file() call outside of pca954x_cleanup() to make it
slightly closer to what pca954x_init() is doing.
Signed-off-by: default avatarAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Reviewed-by: default avatarPeter Rosin <peda@axentia.se>
Signed-off-by: default avatarWolfram Sang <wsa@kernel.org>
parent 753aa369
...@@ -383,11 +383,8 @@ static int pca954x_irq_setup(struct i2c_mux_core *muxc) ...@@ -383,11 +383,8 @@ static int pca954x_irq_setup(struct i2c_mux_core *muxc)
static void pca954x_cleanup(struct i2c_mux_core *muxc) static void pca954x_cleanup(struct i2c_mux_core *muxc)
{ {
struct pca954x *data = i2c_mux_priv(muxc); struct pca954x *data = i2c_mux_priv(muxc);
struct i2c_client *client = data->client;
int c, irq; int c, irq;
device_remove_file(&client->dev, &dev_attr_idle_state);
if (data->irq) { if (data->irq) {
for (c = 0; c < data->chip->nchans; c++) { for (c = 0; c < data->chip->nchans; c++) {
irq = irq_find_mapping(data->irq, c); irq = irq_find_mapping(data->irq, c);
...@@ -531,6 +528,8 @@ static int pca954x_remove(struct i2c_client *client) ...@@ -531,6 +528,8 @@ static int pca954x_remove(struct i2c_client *client)
{ {
struct i2c_mux_core *muxc = i2c_get_clientdata(client); struct i2c_mux_core *muxc = i2c_get_clientdata(client);
device_remove_file(&client->dev, &dev_attr_idle_state);
pca954x_cleanup(muxc); pca954x_cleanup(muxc);
return 0; return 0;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment