Skip to content

Commit 3ecfc91

Browse files
davejiangvinodkoul
authored andcommitted
dmaengine: idxd: add driver register helper
Add helper functions for dsa-driver registration similar to other bus-types. In particular, do not require dsa-drivers to open-code the bus, owner, and mod_name fields. Let registration and unregistration operate on the 'struct idxd_device_driver' instead of the raw / embedded 'struct device_driver'. Reviewed-by: Dan Williams <[email protected]> Signed-off-by: Dave Jiang <[email protected]> Link: https://lore.kernel.org/r/162637458949.744545.14996726325385482050.stgit@djiang5-desk3.ch.intel.com Signed-off-by: Vinod Koul <[email protected]>
1 parent 88c5d0a commit 3ecfc91

File tree

3 files changed

+26
-5
lines changed

3 files changed

+26
-5
lines changed

drivers/dma/idxd/idxd.h

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -402,6 +402,13 @@ static inline int idxd_wq_refcount(struct idxd_wq *wq)
402402
return wq->client_count;
403403
};
404404

405+
int __must_check __idxd_driver_register(struct idxd_device_driver *idxd_drv,
406+
struct module *module, const char *mod_name);
407+
#define idxd_driver_register(driver) \
408+
__idxd_driver_register(driver, THIS_MODULE, KBUILD_MODNAME)
409+
410+
void idxd_driver_unregister(struct idxd_device_driver *idxd_drv);
411+
405412
int idxd_register_bus_type(void);
406413
void idxd_unregister_bus_type(void);
407414
int idxd_register_devices(struct idxd_device *idxd);

drivers/dma/idxd/init.c

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -855,3 +855,20 @@ static void __exit idxd_exit_module(void)
855855
perfmon_exit();
856856
}
857857
module_exit(idxd_exit_module);
858+
859+
int __idxd_driver_register(struct idxd_device_driver *idxd_drv, struct module *owner,
860+
const char *mod_name)
861+
{
862+
struct device_driver *drv = &idxd_drv->drv;
863+
864+
drv->bus = &dsa_bus_type;
865+
drv->owner = owner;
866+
drv->mod_name = mod_name;
867+
868+
return driver_register(drv);
869+
}
870+
871+
void idxd_driver_unregister(struct idxd_device_driver *idxd_drv)
872+
{
873+
driver_unregister(&idxd_drv->drv);
874+
}

drivers/dma/idxd/sysfs.c

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -313,21 +313,18 @@ struct bus_type dsa_bus_type = {
313313
static struct idxd_device_driver dsa_drv = {
314314
.drv = {
315315
.name = "dsa",
316-
.bus = &dsa_bus_type,
317-
.owner = THIS_MODULE,
318-
.mod_name = KBUILD_MODNAME,
319316
},
320317
};
321318

322319
/* IDXD generic driver setup */
323320
int idxd_register_driver(void)
324321
{
325-
return driver_register(&dsa_drv.drv);
322+
return idxd_driver_register(&dsa_drv);
326323
}
327324

328325
void idxd_unregister_driver(void)
329326
{
330-
driver_unregister(&dsa_drv.drv);
327+
idxd_driver_unregister(&dsa_drv);
331328
}
332329

333330
/* IDXD engine attributes */

0 commit comments

Comments
 (0)