aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/i2c/i2c-mux.c
diff options
context:
space:
mode:
authorBrian Norris <computersforpeace@gmail.com>2017-06-01 13:53:55 -0400
committerBrian Norris <computersforpeace@gmail.com>2017-06-01 13:53:55 -0400
commit05e97a9eda72d58dba293857df6aac62584ef99a (patch)
treee86e692f26d4879ff2210c54722e2b7780210249 /drivers/i2c/i2c-mux.c
parent2ea659a9ef488125eb46da6eb571de5eae5c43f6 (diff)
parentd4ed3b9015b5eebc90d629579d9e7944607cbae5 (diff)
Merge tag 'nand/fixes-for-4.12-rc3' of git://git.infradead.org/linux-mtd into MTD
From Boris: """ This pull request contains several fixes to the core and the tango driver. tango fixes: * Add missing MODULE_DEVICE_TABLE() in tango_nand.c * Update the number of corrected bitflips core fixes: * Fix a long standing memory leak in nand_scan_tail() * Fix several bugs introduced by the per-vendor init/detection infrastructure (introduced in 4.12) * Add a static specifier to nand_ooblayout_lp_hamming_ops definition """
Diffstat (limited to 'drivers/i2c/i2c-mux.c')
-rw-r--r--drivers/i2c/i2c-mux.c26
1 files changed, 16 insertions, 10 deletions
diff --git a/drivers/i2c/i2c-mux.c b/drivers/i2c/i2c-mux.c
index 26f7237558ba..9669ca4937b8 100644
--- a/drivers/i2c/i2c-mux.c
+++ b/drivers/i2c/i2c-mux.c
@@ -395,18 +395,20 @@ int i2c_mux_add_adapter(struct i2c_mux_core *muxc,
395 if (force_nr) { 395 if (force_nr) {
396 priv->adap.nr = force_nr; 396 priv->adap.nr = force_nr;
397 ret = i2c_add_numbered_adapter(&priv->adap); 397 ret = i2c_add_numbered_adapter(&priv->adap);
398 dev_err(&parent->dev, 398 if (ret < 0) {
399 "failed to add mux-adapter %u as bus %u (error=%d)\n", 399 dev_err(&parent->dev,
400 chan_id, force_nr, ret); 400 "failed to add mux-adapter %u as bus %u (error=%d)\n",
401 chan_id, force_nr, ret);
402 goto err_free_priv;
403 }
401 } else { 404 } else {
402 ret = i2c_add_adapter(&priv->adap); 405 ret = i2c_add_adapter(&priv->adap);
403 dev_err(&parent->dev, 406 if (ret < 0) {
404 "failed to add mux-adapter %u (error=%d)\n", 407 dev_err(&parent->dev,
405 chan_id, ret); 408 "failed to add mux-adapter %u (error=%d)\n",
406 } 409 chan_id, ret);
407 if (ret < 0) { 410 goto err_free_priv;
408 kfree(priv); 411 }
409 return ret;
410 } 412 }
411 413
412 WARN(sysfs_create_link(&priv->adap.dev.kobj, &muxc->dev->kobj, 414 WARN(sysfs_create_link(&priv->adap.dev.kobj, &muxc->dev->kobj,
@@ -422,6 +424,10 @@ int i2c_mux_add_adapter(struct i2c_mux_core *muxc,
422 424
423 muxc->adapter[muxc->num_adapters++] = &priv->adap; 425 muxc->adapter[muxc->num_adapters++] = &priv->adap;
424 return 0; 426 return 0;
427
428err_free_priv:
429 kfree(priv);
430 return ret;
425} 431}
426EXPORT_SYMBOL_GPL(i2c_mux_add_adapter); 432EXPORT_SYMBOL_GPL(i2c_mux_add_adapter);
427 433