* [PATCH] hsi: omap_ssi_port: use normal module refcounting
@ 2014-06-04 7:56 Arnd Bergmann
2014-06-04 8:00 ` [PATCH v2] " Arnd Bergmann
0 siblings, 1 reply; 3+ messages in thread
From: Arnd Bergmann @ 2014-06-04 7:56 UTC (permalink / raw)
To: linux-arm-kernel
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 <arnd@arndb.de>
Cc: Sebastian Reichel <sre@kernel.org>
Cc: Carlos Chinea <carlos.chinea@nokia.com>
Cc: Ivaylo Dimitrov <ivo.g.dimitrov.75@gmail.com>
diff --git a/drivers/hsi/controllers/omap_ssi_port.c b/drivers/hsi/controllers/omap_ssi_port.c
index b8693f0..6eb7c28 100644
--- a/drivers/hsi/controllers/omap_ssi_port.c
+++ b/drivers/hsi/controllers/omap_ssi_port.c
@@ -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;
@@ -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(port->owner);
pm_runtime_disable(&pd->dev);
return 0;
^ permalink raw reply related [flat|nested] 3+ messages in thread
* [PATCH v2] hsi: omap_ssi_port: use normal module refcounting
2014-06-04 7:56 [PATCH] hsi: omap_ssi_port: use normal module refcounting Arnd Bergmann
@ 2014-06-04 8:00 ` Arnd Bergmann
2014-06-04 23:48 ` Sebastian Reichel
0 siblings, 1 reply; 3+ messages in thread
From: Arnd Bergmann @ 2014-06-04 8:00 UTC (permalink / raw)
To: linux-arm-kernel
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 <arnd@arndb.de>
Cc: Sebastian Reichel <sre@kernel.org>
Cc: Carlos Chinea <carlos.chinea@nokia.com>
Cc: Ivaylo Dimitrov <ivo.g.dimitrov.75@gmail.com>
---
v2: fix a stupid typo, I accidentally sent out the wrong version of the patch
diff --git a/drivers/hsi/controllers/omap_ssi_port.c b/drivers/hsi/controllers/omap_ssi_port.c
index b8693f0..29aea0b 100644
--- a/drivers/hsi/controllers/omap_ssi_port.c
+++ b/drivers/hsi/controllers/omap_ssi_port.c
@@ -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;
@@ -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;
^ permalink raw reply related [flat|nested] 3+ messages in thread
* [PATCH v2] hsi: omap_ssi_port: use normal module refcounting
2014-06-04 8:00 ` [PATCH v2] " Arnd Bergmann
@ 2014-06-04 23:48 ` Sebastian Reichel
0 siblings, 0 replies; 3+ messages in thread
From: Sebastian Reichel @ 2014-06-04 23:48 UTC (permalink / raw)
To: linux-arm-kernel
Hi,
On Wed, Jun 04, 2014 at 10:00:59AM +0200, Arnd Bergmann wrote:
> 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.
Thanks, applied:
https://git.kernel.org/cgit/linux/kernel/git/sre/linux-hsi.git/commit/?h=for-next&id=b357d7b58f379ebe8038cd97b6204f2f5c52220d
-- Sebastian
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: Digital signature
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20140605/8de21a91/attachment.sig>
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2014-06-04 23:48 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-06-04 7:56 [PATCH] hsi: omap_ssi_port: use normal module refcounting Arnd Bergmann
2014-06-04 8:00 ` [PATCH v2] " Arnd Bergmann
2014-06-04 23:48 ` Sebastian Reichel
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).