Skip to content

Commit

Permalink
hsi: omap_ssi_port: use normal module refcounting
Browse files Browse the repository at this point in the history
The ref_module() function is used for internal housekeeping of the
module code, it's not normally used by subsystems or device drivers,
and the use of ref_module in the omap_ssi_port driver causes a link
build error when modules are disabled:

hsi/controllers/omap_ssi_port.c: In function 'ssi_port_probe':
hsi/controllers/omap_ssi_port.c:1119:2: error: implicit declaration of function 'ref_module' [-Werror=implicit-function-declaration]

This changes the omap_ssi_port driver to use try_module_get()
and module_put() instead, which is the normal way to ensure that
the driver providing a device used in another module does not
go away.

Signed-off-by: Arnd Bergmann <[email protected]>
Cc: Sebastian Reichel <[email protected]>
Cc: Carlos Chinea <[email protected]>
Cc: Ivaylo Dimitrov <[email protected]>
Signed-off-by: Sebastian Reichel <[email protected]>
  • Loading branch information
arndb authored and sre committed Jun 4, 2014
1 parent 518e162 commit b357d7b
Showing 1 changed file with 2 additions and 2 deletions.
4 changes: 2 additions & 2 deletions drivers/hsi/controllers/omap_ssi_port.c
Original file line number Diff line number Diff line change
Expand Up @@ -1116,8 +1116,7 @@ static int __init ssi_port_probe(struct platform_device *pd)

dev_dbg(&pd->dev, "init ssi port...\n");

err = ref_module(THIS_MODULE, ssi->owner);
if (err) {
if (!try_module_get(ssi->owner)) {
dev_err(&pd->dev, "could not increment parent module refcount (err=%d)\n",
err);
return -ENODEV;
Expand Down Expand Up @@ -1254,6 +1253,7 @@ static int __exit ssi_port_remove(struct platform_device *pd)

omap_ssi->port[omap_port->port_id] = NULL;
platform_set_drvdata(pd, NULL);
module_put(ssi->owner);
pm_runtime_disable(&pd->dev);

return 0;
Expand Down

0 comments on commit b357d7b

Please sign in to comment.