[PATCH] ARM: pxa: Fix pxa3xx-u2d crash when ULPI not used

Eric Miao eric.y.miao at gmail.com
Sat Sep 4 01:38:24 EDT 2010


On Sat, Sep 4, 2010 at 4:35 AM, Marek Vasut <marek.vasut at gmail.com> 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).
>
> Signed-off-by: Marek Vasut <marek.vasut at gmail.com>

Applied to 'devel'.

> ---
>  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();
>
> --
> 1.7.1
>
>



More information about the linux-arm-kernel mailing list