linux-pwm.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] pwm: Fill in missing .owner fields
@ 2013-06-12 11:29 Thierry Reding
  2013-06-12 11:35 ` Sachin Kamat
  0 siblings, 1 reply; 6+ messages in thread
From: Thierry Reding @ 2013-06-12 11:29 UTC (permalink / raw)
  To: linux-pwm; +Cc: linux-kernel

Some drivers don't set the .owner fields of the struct device_driver or
struct pwm_ops, which causes the module usage count to become wrong.

Signed-off-by: Thierry Reding <thierry.reding@gmail.com>
---
 drivers/pwm/pwm-atmel-tcb.c | 1 +
 drivers/pwm/pwm-bfin.c      | 1 +
 drivers/pwm/pwm-imx.c       | 1 +
 drivers/pwm/pwm-lpc32xx.c   | 1 +
 drivers/pwm/pwm-mxs.c       | 1 +
 drivers/pwm/pwm-pca9685.c   | 1 +
 drivers/pwm/pwm-puv3.c      | 1 +
 drivers/pwm/pwm-spear.c     | 1 +
 drivers/pwm/pwm-tegra.c     | 1 +
 9 files changed, 9 insertions(+)

diff --git a/drivers/pwm/pwm-atmel-tcb.c b/drivers/pwm/pwm-atmel-tcb.c
index 09be626..ba6ce01 100644
--- a/drivers/pwm/pwm-atmel-tcb.c
+++ b/drivers/pwm/pwm-atmel-tcb.c
@@ -434,6 +434,7 @@ MODULE_DEVICE_TABLE(of, atmel_tcb_pwm_dt_ids);
 static struct platform_driver atmel_tcb_pwm_driver = {
 	.driver = {
 		.name = "atmel-tcb-pwm",
+		.owner = THIS_MODULE,
 		.of_match_table = atmel_tcb_pwm_dt_ids,
 	},
 	.probe = atmel_tcb_pwm_probe,
diff --git a/drivers/pwm/pwm-bfin.c b/drivers/pwm/pwm-bfin.c
index 7631ef1..9985d83 100644
--- a/drivers/pwm/pwm-bfin.c
+++ b/drivers/pwm/pwm-bfin.c
@@ -149,6 +149,7 @@ static int bfin_pwm_remove(struct platform_device *pdev)
 static struct platform_driver bfin_pwm_driver = {
 	.driver = {
 		.name = "bfin-pwm",
+		.owner = THIS_MODULE,
 	},
 	.probe = bfin_pwm_probe,
 	.remove = bfin_pwm_remove,
diff --git a/drivers/pwm/pwm-imx.c b/drivers/pwm/pwm-imx.c
index c938bae..2b7c4f8 100644
--- a/drivers/pwm/pwm-imx.c
+++ b/drivers/pwm/pwm-imx.c
@@ -295,6 +295,7 @@ static int imx_pwm_remove(struct platform_device *pdev)
 static struct platform_driver imx_pwm_driver = {
 	.driver		= {
 		.name	= "imx-pwm",
+		.owner = THIS_MODULE,
 		.of_match_table = of_match_ptr(imx_pwm_dt_ids),
 	},
 	.probe		= imx_pwm_probe,
diff --git a/drivers/pwm/pwm-lpc32xx.c b/drivers/pwm/pwm-lpc32xx.c
index 8272883..efb6c7b 100644
--- a/drivers/pwm/pwm-lpc32xx.c
+++ b/drivers/pwm/pwm-lpc32xx.c
@@ -171,6 +171,7 @@ MODULE_DEVICE_TABLE(of, lpc32xx_pwm_dt_ids);
 static struct platform_driver lpc32xx_pwm_driver = {
 	.driver = {
 		.name = "lpc32xx-pwm",
+		.owner = THIS_MODULE,
 		.of_match_table = of_match_ptr(lpc32xx_pwm_dt_ids),
 	},
 	.probe = lpc32xx_pwm_probe,
diff --git a/drivers/pwm/pwm-mxs.c b/drivers/pwm/pwm-mxs.c
index 6489a4b..2c77b81 100644
--- a/drivers/pwm/pwm-mxs.c
+++ b/drivers/pwm/pwm-mxs.c
@@ -182,6 +182,7 @@ MODULE_DEVICE_TABLE(of, mxs_pwm_dt_ids);
 static struct platform_driver mxs_pwm_driver = {
 	.driver = {
 		.name = "mxs-pwm",
+		.owner = THIS_MODULE,
 		.of_match_table = of_match_ptr(mxs_pwm_dt_ids),
 	},
 	.probe = mxs_pwm_probe,
diff --git a/drivers/pwm/pwm-pca9685.c b/drivers/pwm/pwm-pca9685.c
index 2afc904..c9f9e65 100644
--- a/drivers/pwm/pwm-pca9685.c
+++ b/drivers/pwm/pwm-pca9685.c
@@ -199,6 +199,7 @@ static const struct pwm_ops pca9685_pwm_ops = {
 	.config = pca9685_pwm_config,
 	.request = pca9685_pwm_request,
 	.free = pca9685_pwm_free,
+	.owner = THIS_MODULE,
 };
 
 static struct regmap_config pca9685_regmap_i2c_config = {
diff --git a/drivers/pwm/pwm-puv3.c b/drivers/pwm/pwm-puv3.c
index ed6007b..a9a2808 100644
--- a/drivers/pwm/pwm-puv3.c
+++ b/drivers/pwm/pwm-puv3.c
@@ -146,6 +146,7 @@ static int pwm_remove(struct platform_device *pdev)
 static struct platform_driver puv3_pwm_driver = {
 	.driver = {
 		.name = "PKUnity-v3-PWM",
+		.owner = THIS_MODULE,
 	},
 	.probe = pwm_probe,
 	.remove = pwm_remove,
diff --git a/drivers/pwm/pwm-spear.c b/drivers/pwm/pwm-spear.c
index 6d99e2c..a54d214 100644
--- a/drivers/pwm/pwm-spear.c
+++ b/drivers/pwm/pwm-spear.c
@@ -259,6 +259,7 @@ MODULE_DEVICE_TABLE(of, spear_pwm_of_match);
 static struct platform_driver spear_pwm_driver = {
 	.driver = {
 		.name = "spear-pwm",
+		.owner = THIS_MODULE,
 		.of_match_table = spear_pwm_of_match,
 	},
 	.probe = spear_pwm_probe,
diff --git a/drivers/pwm/pwm-tegra.c b/drivers/pwm/pwm-tegra.c
index a540293..74298c5 100644
--- a/drivers/pwm/pwm-tegra.c
+++ b/drivers/pwm/pwm-tegra.c
@@ -239,6 +239,7 @@ MODULE_DEVICE_TABLE(of, tegra_pwm_of_match);
 static struct platform_driver tegra_pwm_driver = {
 	.driver = {
 		.name = "tegra-pwm",
+		.owner = THIS_MODULE,
 		.of_match_table = tegra_pwm_of_match,
 	},
 	.probe = tegra_pwm_probe,
-- 
1.8.2

^ permalink raw reply related	[flat|nested] 6+ messages in thread

* Re: [PATCH] pwm: Fill in missing .owner fields
  2013-06-12 11:29 [PATCH] pwm: Fill in missing .owner fields Thierry Reding
@ 2013-06-12 11:35 ` Sachin Kamat
  2013-06-12 19:59   ` Thierry Reding
  0 siblings, 1 reply; 6+ messages in thread
From: Sachin Kamat @ 2013-06-12 11:35 UTC (permalink / raw)
  To: Thierry Reding; +Cc: linux-pwm, linux-kernel

Hi Thierry,

On 12 June 2013 16:59, Thierry Reding <thierry.reding@gmail.com> wrote:
> Some drivers don't set the .owner fields of the struct device_driver or
> struct pwm_ops, which causes the module usage count to become wrong.


Recently a patch [1] was added to solve this issue of missing .owner
fileds in struct platform_driver.
Probably something similar could be done for struct pwm_ops too?


[1] https://patchwork.kernel.org/patch/2612961/

-- 
With warm regards,
Sachin

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] pwm: Fill in missing .owner fields
  2013-06-12 11:35 ` Sachin Kamat
@ 2013-06-12 19:59   ` Thierry Reding
  2013-06-12 21:46     ` Greg Kroah-Hartman
  2013-06-12 22:33     ` Lars-Peter Clausen
  0 siblings, 2 replies; 6+ messages in thread
From: Thierry Reding @ 2013-06-12 19:59 UTC (permalink / raw)
  To: Sachin Kamat; +Cc: linux-pwm, linux-kernel, Greg Kroah-Hartman

[-- Attachment #1: Type: text/plain, Size: 1302 bytes --]

On Wed, Jun 12, 2013 at 05:05:18PM +0530, Sachin Kamat wrote:
> Hi Thierry,
> 
> On 12 June 2013 16:59, Thierry Reding <thierry.reding@gmail.com> wrote:
> > Some drivers don't set the .owner fields of the struct device_driver or
> > struct pwm_ops, which causes the module usage count to become wrong.
> 
> 
> Recently a patch [1] was added to solve this issue of missing .owner
> fileds in struct platform_driver.

Yes I saw that, but thought it might be good to initialize them anyway.
Especially since a couple of the drivers are I2C and I believe there's
no similar patch for those. It shouldn't be difficult to come up with
the corresponding patch, though.

I wonder if it'd make sense to remove all the explicit assignments of
.owner = THIS_MODULE in platform drivers once the patch you mentioned
has been merged. Cc'ing Greg to find out what he thinks about it.

> Probably something similar could be done for struct pwm_ops too?

Possibly. The issue isn't quite as bad in the PWM subsystem since I'm
now aware of the problem and will look for it specifically in the
future. It's a different matter for struct device_driver since that's
used all over the place.

Thierry

> [1] https://patchwork.kernel.org/patch/2612961/
> 
> -- 
> With warm regards,
> Sachin

[-- Attachment #2: Type: application/pgp-signature, Size: 836 bytes --]

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] pwm: Fill in missing .owner fields
  2013-06-12 19:59   ` Thierry Reding
@ 2013-06-12 21:46     ` Greg Kroah-Hartman
  2013-06-12 22:33     ` Lars-Peter Clausen
  1 sibling, 0 replies; 6+ messages in thread
From: Greg Kroah-Hartman @ 2013-06-12 21:46 UTC (permalink / raw)
  To: Thierry Reding; +Cc: Sachin Kamat, linux-pwm, linux-kernel

On Wed, Jun 12, 2013 at 09:59:18PM +0200, Thierry Reding wrote:
> On Wed, Jun 12, 2013 at 05:05:18PM +0530, Sachin Kamat wrote:
> > Hi Thierry,
> > 
> > On 12 June 2013 16:59, Thierry Reding <thierry.reding@gmail.com> wrote:
> > > Some drivers don't set the .owner fields of the struct device_driver or
> > > struct pwm_ops, which causes the module usage count to become wrong.
> > 
> > 
> > Recently a patch [1] was added to solve this issue of missing .owner
> > fileds in struct platform_driver.
> 
> Yes I saw that, but thought it might be good to initialize them anyway.
> Especially since a couple of the drivers are I2C and I believe there's
> no similar patch for those. It shouldn't be difficult to come up with
> the corresponding patch, though.
> 
> I wonder if it'd make sense to remove all the explicit assignments of
> .owner = THIS_MODULE in platform drivers once the patch you mentioned
> has been merged. Cc'ing Greg to find out what he thinks about it.

Sure, they can be removed, but it's not really a big deal if they
aren't.

greg k-h

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] pwm: Fill in missing .owner fields
  2013-06-12 19:59   ` Thierry Reding
  2013-06-12 21:46     ` Greg Kroah-Hartman
@ 2013-06-12 22:33     ` Lars-Peter Clausen
  2013-06-13 18:23       ` Thierry Reding
  1 sibling, 1 reply; 6+ messages in thread
From: Lars-Peter Clausen @ 2013-06-12 22:33 UTC (permalink / raw)
  To: Thierry Reding; +Cc: Sachin Kamat, linux-pwm, linux-kernel, Greg Kroah-Hartman

On 06/12/2013 09:59 PM, Thierry Reding wrote:
> On Wed, Jun 12, 2013 at 05:05:18PM +0530, Sachin Kamat wrote:
>> Hi Thierry,
>>
>> On 12 June 2013 16:59, Thierry Reding <thierry.reding@gmail.com> wrote:
>>> Some drivers don't set the .owner fields of the struct device_driver or
>>> struct pwm_ops, which causes the module usage count to become wrong.
>>
>>
>> Recently a patch [1] was added to solve this issue of missing .owner
>> fileds in struct platform_driver.
> 
> Yes I saw that, but thought it might be good to initialize them anyway.
> Especially since a couple of the drivers are I2C and I believe there's
> no similar patch for those. It shouldn't be difficult to come up with
> the corresponding patch, though.

I2C had the same actually for quite some time now.

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] pwm: Fill in missing .owner fields
  2013-06-12 22:33     ` Lars-Peter Clausen
@ 2013-06-13 18:23       ` Thierry Reding
  0 siblings, 0 replies; 6+ messages in thread
From: Thierry Reding @ 2013-06-13 18:23 UTC (permalink / raw)
  To: Lars-Peter Clausen
  Cc: Sachin Kamat, linux-pwm, linux-kernel, Greg Kroah-Hartman

[-- Attachment #1: Type: text/plain, Size: 965 bytes --]

On Thu, Jun 13, 2013 at 12:33:13AM +0200, Lars-Peter Clausen wrote:
> On 06/12/2013 09:59 PM, Thierry Reding wrote:
> > On Wed, Jun 12, 2013 at 05:05:18PM +0530, Sachin Kamat wrote:
> >> Hi Thierry,
> >>
> >> On 12 June 2013 16:59, Thierry Reding <thierry.reding@gmail.com> wrote:
> >>> Some drivers don't set the .owner fields of the struct device_driver or
> >>> struct pwm_ops, which causes the module usage count to become wrong.
> >>
> >>
> >> Recently a patch [1] was added to solve this issue of missing .owner
> >> fileds in struct platform_driver.
> > 
> > Yes I saw that, but thought it might be good to initialize them anyway.
> > Especially since a couple of the drivers are I2C and I believe there's
> > no similar patch for those. It shouldn't be difficult to come up with
> > the corresponding patch, though.
> 
> I2C had the same actually for quite some time now.

I wasn't aware of that. Thanks for educating me. =)

Thierry

[-- Attachment #2: Type: application/pgp-signature, Size: 836 bytes --]

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2013-06-13 18:23 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-06-12 11:29 [PATCH] pwm: Fill in missing .owner fields Thierry Reding
2013-06-12 11:35 ` Sachin Kamat
2013-06-12 19:59   ` Thierry Reding
2013-06-12 21:46     ` Greg Kroah-Hartman
2013-06-12 22:33     ` Lars-Peter Clausen
2013-06-13 18:23       ` Thierry Reding

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).