Message ID | 20210127230124.109522-1-uwe@kleine-koenig.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [1/3] device-dax: Prevent registering drivers without probe or remove callback | expand |
diff --git a/drivers/dax/bus.c b/drivers/dax/bus.c index 737b207c9e30..618d462975ba 100644 --- a/drivers/dax/bus.c +++ b/drivers/dax/bus.c @@ -1392,6 +1392,14 @@ int __dax_driver_register(struct dax_device_driver *dax_drv, struct device_driver *drv = &dax_drv->drv; int rc = 0; + /* + * dax_bus_probe() calls dax_drv->probe() unconditionally and + * dax_bus_remove() calls dax_drv->remove() unconditionally. So better + * be safe than sorry and ensure these are provided. + */ + if (!dax_drv->probe || !dax_drv->remove) + return -EINVAL; + INIT_LIST_HEAD(&dax_drv->ids); drv->owner = module; drv->name = mod_name;
The bus probe and remove functions (dax_bus_probe and dax_bus_remove respectively) call these functions without checking them to be non-NULL. Add a check to prevent a NULL pointer exception. Signed-off-by: Uwe Kleine-König <uwe@kleine-koenig.org> --- drivers/dax/bus.c | 8 ++++++++ 1 file changed, 8 insertions(+) base-commit: 5c8fe583cce542aa0b84adc939ce85293de36e5e