diff options
Diffstat (limited to 'drivers/mcb/mcb-core.c')
| -rw-r--r-- | drivers/mcb/mcb-core.c | 12 | 
1 files changed, 6 insertions, 6 deletions
diff --git a/drivers/mcb/mcb-core.c b/drivers/mcb/mcb-core.c index edf4ee6eff25..cf128b3471d7 100644 --- a/drivers/mcb/mcb-core.c +++ b/drivers/mcb/mcb-core.c @@ -275,8 +275,8 @@ struct mcb_bus *mcb_alloc_bus(struct device *carrier)  	bus_nr = ida_simple_get(&mcb_ida, 0, 0, GFP_KERNEL);  	if (bus_nr < 0) { -		rc = bus_nr; -		goto err_free; +		kfree(bus); +		return ERR_PTR(bus_nr);  	}  	bus->bus_nr = bus_nr; @@ -291,12 +291,12 @@ struct mcb_bus *mcb_alloc_bus(struct device *carrier)  	dev_set_name(&bus->dev, "mcb:%d", bus_nr);  	rc = device_add(&bus->dev);  	if (rc) -		goto err_free; +		goto err_put;  	return bus; -err_free: -	put_device(carrier); -	kfree(bus); + +err_put: +	put_device(&bus->dev);  	return ERR_PTR(rc);  }  EXPORT_SYMBOL_NS_GPL(mcb_alloc_bus, MCB);  | 
