All of lore.kernel.org
 help / color / mirror / Atom feed
From: Marek Vasut <marex@denx.de>
To: Mike Dunn <mikedunn@newsguy.com>
Cc: linux-arm-kernel@lists.infradead.org, linux-pwm@vger.kernel.org,
	Thierry Reding <thierry.reding@avionic-design.de>,
	H Hartley Sweeten <hartleys@visionengravers.com>,
	Haojian Zhuang <haojian.zhuang@gmail.com>,
	Chao Xie <chao.xie@marvell.com>,
	Eric Miao <eric.y.miao@gmail.com>,
	Robert Jarzmik <robert.jarzmik@free.fr>
Subject: Re: [PATCH] ARM: pxa: make pwm driver module_platform_driver
Date: Fri, 9 Aug 2013 09:22:25 +0200	[thread overview]
Message-ID: <201308090922.26194.marex@denx.de> (raw)
In-Reply-To: <1375981237-7167-1-git-send-email-mikedunn@newsguy.com>

Dear Mike Dunn,

> Commit 76abbdde2d95a3807d0dc6bf9f84d03d0dbd4f3d
> 
>     pwm: Add sysfs interface
> 
> causes a kernel oops due to a null pointer dereference on pxa platforms. 
> This happens because the class added by the patch is registered in a
> subsys_initcall (initcall4), but the pxa pwm driver is registered in
> arch_initcall (initcall3). If the class is not registered before the
> driver probe function runs, the oops occurs in device_add() when the
> uninitialized pointers in struct class are dereferenced.  I don't see a
> reason that the driver must be an arch_initcall, so this patch makes it a
> regular module_platform_driver (initcall6), preventing the oops.
> 
> Signed-off-by: Mike Dunn <mikedunn@newsguy.com>
> ---
>  drivers/pwm/pwm-pxa.c | 12 +-----------
>  1 file changed, 1 insertion(+), 11 deletions(-)
> 
> diff --git a/drivers/pwm/pwm-pxa.c b/drivers/pwm/pwm-pxa.c
> index dc97175..a4d2164 100644
> --- a/drivers/pwm/pwm-pxa.c
> +++ b/drivers/pwm/pwm-pxa.c
> @@ -182,16 +182,6 @@ static struct platform_driver pwm_driver = {
>  	.id_table	= pwm_id_table,
>  };
> 
> -static int __init pwm_init(void)
> -{
> -	return platform_driver_register(&pwm_driver);
> -}
> -arch_initcall(pwm_init);
> -
> -static void __exit pwm_exit(void)
> -{
> -	platform_driver_unregister(&pwm_driver);
> -}
> -module_exit(pwm_exit);
> +module_platform_driver(pwm_driver);
> 
>  MODULE_LICENSE("GPL v2");

Acked-by: Marek Vasut <marex@denx.de>

Best regards,
Marek Vasut

WARNING: multiple messages have this Message-ID (diff)
From: marex@denx.de (Marek Vasut)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH] ARM: pxa: make pwm driver module_platform_driver
Date: Fri, 9 Aug 2013 09:22:25 +0200	[thread overview]
Message-ID: <201308090922.26194.marex@denx.de> (raw)
In-Reply-To: <1375981237-7167-1-git-send-email-mikedunn@newsguy.com>

Dear Mike Dunn,

> Commit 76abbdde2d95a3807d0dc6bf9f84d03d0dbd4f3d
> 
>     pwm: Add sysfs interface
> 
> causes a kernel oops due to a null pointer dereference on pxa platforms. 
> This happens because the class added by the patch is registered in a
> subsys_initcall (initcall4), but the pxa pwm driver is registered in
> arch_initcall (initcall3). If the class is not registered before the
> driver probe function runs, the oops occurs in device_add() when the
> uninitialized pointers in struct class are dereferenced.  I don't see a
> reason that the driver must be an arch_initcall, so this patch makes it a
> regular module_platform_driver (initcall6), preventing the oops.
> 
> Signed-off-by: Mike Dunn <mikedunn@newsguy.com>
> ---
>  drivers/pwm/pwm-pxa.c | 12 +-----------
>  1 file changed, 1 insertion(+), 11 deletions(-)
> 
> diff --git a/drivers/pwm/pwm-pxa.c b/drivers/pwm/pwm-pxa.c
> index dc97175..a4d2164 100644
> --- a/drivers/pwm/pwm-pxa.c
> +++ b/drivers/pwm/pwm-pxa.c
> @@ -182,16 +182,6 @@ static struct platform_driver pwm_driver = {
>  	.id_table	= pwm_id_table,
>  };
> 
> -static int __init pwm_init(void)
> -{
> -	return platform_driver_register(&pwm_driver);
> -}
> -arch_initcall(pwm_init);
> -
> -static void __exit pwm_exit(void)
> -{
> -	platform_driver_unregister(&pwm_driver);
> -}
> -module_exit(pwm_exit);
> +module_platform_driver(pwm_driver);
> 
>  MODULE_LICENSE("GPL v2");

Acked-by: Marek Vasut <marex@denx.de>

Best regards,
Marek Vasut

  parent reply	other threads:[~2013-08-09  7:22 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-08-08 17:00 [PATCH] ARM: pxa: make pwm driver module_platform_driver Mike Dunn
2013-08-08 17:00 ` Mike Dunn
2013-08-08 20:38 ` Robert Jarzmik
2013-08-08 20:38   ` Robert Jarzmik
2013-08-09  7:22 ` Marek Vasut [this message]
2013-08-09  7:22   ` Marek Vasut

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=201308090922.26194.marex@denx.de \
    --to=marex@denx.de \
    --cc=chao.xie@marvell.com \
    --cc=eric.y.miao@gmail.com \
    --cc=haojian.zhuang@gmail.com \
    --cc=hartleys@visionengravers.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-pwm@vger.kernel.org \
    --cc=mikedunn@newsguy.com \
    --cc=robert.jarzmik@free.fr \
    --cc=thierry.reding@avionic-design.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.