mirror of
https://github.com/torvalds/linux.git
synced 2026-07-28 10:09:10 +02:00
i2c: core: fix irq domain leak on adapter registration failure
Make sure to tear down the host notify irq domain on adapter
registration failure to avoid leaking it.
This issue was flagged by Sashiko when reviewing another adapter
registration fix.
Fixes: 4d5538f588 ("i2c: use an IRQ to report Host Notify events, not alert")
Cc: stable@vger.kernel.org # 4.10
Cc: Benjamin Tissoires <bentiss@kernel.org>
Signed-off-by: Johan Hovold <johan@kernel.org>
Signed-off-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
This commit is contained in:
parent
254f49634e
commit
8ce19524e4
|
|
@ -1574,7 +1574,7 @@ static int i2c_register_adapter(struct i2c_adapter *adap)
|
|||
if (res) {
|
||||
pr_err("adapter '%s': can't register device (%d)\n", adap->name, res);
|
||||
put_device(&adap->dev);
|
||||
goto out_list;
|
||||
goto err_remove_irq_domain;
|
||||
}
|
||||
|
||||
adap->debugfs = debugfs_create_dir(dev_name(&adap->dev), i2c_debugfs_root);
|
||||
|
|
@ -1609,6 +1609,8 @@ static int i2c_register_adapter(struct i2c_adapter *adap)
|
|||
init_completion(&adap->dev_released);
|
||||
device_unregister(&adap->dev);
|
||||
wait_for_completion(&adap->dev_released);
|
||||
err_remove_irq_domain:
|
||||
i2c_host_notify_irq_teardown(adap);
|
||||
out_list:
|
||||
mutex_lock(&core_lock);
|
||||
idr_remove(&i2c_adapter_idr, adap->nr);
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user