linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
From: grinberg@compulab.co.il (Igor Grinberg)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH] ARM: pxa: Fix pxa3xx-u2d crash when ULPI not used
Date: Sun, 05 Sep 2010 10:54:31 +0300	[thread overview]
Message-ID: <4C834CB7.70800@compulab.co.il> (raw)
In-Reply-To: <1283546146-20000-1-git-send-email-marek.vasut@gmail.com>

 On 09/03/10 23:35, Marek Vasut wrote:
> In case the pxa3xx-u2d driver isn't used, probing of ohci-pxa27x will cause an
> ugly kernel crash (NULL pointer dereference in pxa3xx_u2d_start_hc(), because
> struct u2d is NULL and clk_enable() call will crash the kernel, trying to access
> it).

ohci code checks for pxa3xx cpu and only then runs start/stop hc.
pxa3xx_ulpi.c is compiled if CONFIG_PXA3xx is selected.
The device <-> driver binding should not be a problem, so the
pxa3xx_u2d_probe() will run.
The only case, I see, when struct u2d does not exist is failure of the
probe function. If this is the case, we are having an abnormal execution
and if your patch is dealing with this issue, shouldn't you comment it as such?

> Signed-off-by: Marek Vasut <marek.vasut@gmail.com>
> ---
>  arch/arm/mach-pxa/pxa3xx-ulpi.c |    8 ++++++++
>  1 files changed, 8 insertions(+), 0 deletions(-)
>
> diff --git a/arch/arm/mach-pxa/pxa3xx-ulpi.c b/arch/arm/mach-pxa/pxa3xx-ulpi.c
> index e57439e..ce7168b 100644
> --- a/arch/arm/mach-pxa/pxa3xx-ulpi.c
> +++ b/arch/arm/mach-pxa/pxa3xx-ulpi.c
> @@ -252,6 +252,10 @@ int pxa3xx_u2d_start_hc(struct usb_bus *host)
>  {
>  	int err = 0;
>  
> +	/* In case the PXA3xx ULPI isn't used, do nothing. */
> +	if (!u2d)
> +		return 0;
> +
>  	clk_enable(u2d->clk);
>  
>  	if (cpu_is_pxa310()) {
> @@ -264,6 +268,10 @@ int pxa3xx_u2d_start_hc(struct usb_bus *host)
>  
>  void pxa3xx_u2d_stop_hc(struct usb_bus *host)
>  {
> +	/* In case the PXA3xx ULPI isn't used, do nothing. */
> +	if (!u2d)
> +		return;
> +
>  	if (cpu_is_pxa310())
>  		pxa310_stop_otg_hc();
>  

-- 
Regards,
Igor.

  parent reply	other threads:[~2010-09-05  7:54 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-09-03 20:35 [PATCH] ARM: pxa: Fix pxa3xx-u2d crash when ULPI not used Marek Vasut
2010-09-04  5:38 ` Eric Miao
2010-09-05  7:54 ` Igor Grinberg [this message]
2010-09-05  8:01   ` Marek Vasut
2010-09-05  8:16     ` Igor Grinberg
2010-09-05  8:25       ` Marek Vasut
2010-09-05  8:35         ` Igor Grinberg
2010-09-05 10:43           ` Eric Miao
2010-09-05 13:46             ` Igor Grinberg
2010-09-05 13:58               ` Eric Miao
2010-09-05 14:31                 ` Igor Grinberg
2010-09-05 19:23                   ` 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=4C834CB7.70800@compulab.co.il \
    --to=grinberg@compulab.co.il \
    --cc=linux-arm-kernel@lists.infradead.org \
    /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 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).