mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-07-22 03:27:30 -04:00
isa: switch to dynamic root device
Driver core expects devices to be dynamically allocated and will, for example, complain loudly if a device that lacks a release function is ever freed. Use root_device_register() to allocate and register the root device instead of open coding using a static device. Note that this also fixes a reference leak in case device_register() fails which may be flagged by static checkers. Signed-off-by: Johan Hovold <johan@kernel.org> Acked-by: William Breathitt Gray <wbg@kernel.org> Link: https://patch.msgid.link/20260424102400.2615677-1-johan@kernel.org Signed-off-by: Danilo Krummrich <dakr@kernel.org>
This commit is contained in:
committed by
Danilo Krummrich
parent
627e284555
commit
30c878ed16
@@ -11,9 +11,7 @@
|
||||
#include <linux/dma-mapping.h>
|
||||
#include <linux/isa.h>
|
||||
|
||||
static struct device isa_bus = {
|
||||
.init_name = "isa"
|
||||
};
|
||||
static struct device *isa_bus;
|
||||
|
||||
struct isa_dev {
|
||||
struct device dev;
|
||||
@@ -131,7 +129,7 @@ int isa_register_driver(struct isa_driver *isa_driver, unsigned int ndev)
|
||||
break;
|
||||
}
|
||||
|
||||
isa_dev->dev.parent = &isa_bus;
|
||||
isa_dev->dev.parent = isa_bus;
|
||||
isa_dev->dev.bus = &isa_bus_type;
|
||||
|
||||
dev_set_name(&isa_dev->dev, "%s.%u",
|
||||
@@ -169,9 +167,11 @@ static int __init isa_bus_init(void)
|
||||
|
||||
error = bus_register(&isa_bus_type);
|
||||
if (!error) {
|
||||
error = device_register(&isa_bus);
|
||||
if (error)
|
||||
isa_bus = root_device_register("isa");
|
||||
if (IS_ERR(isa_bus)) {
|
||||
error = PTR_ERR(isa_bus);
|
||||
bus_unregister(&isa_bus_type);
|
||||
}
|
||||
}
|
||||
return error;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user