All of lore.kernel.org
 help / color / mirror / Atom feed
From: Andrew Lunn <andrew@lunn.ch>
To: Simon Guinot <simon.guinot@sequanux.org>
Cc: Bryan Wu <cooloney@gmail.com>, Richard Purdie <rpurdie@rpsys.net>,
	Johan Hovold <johan@kernel.org>,
	linux-leds@vger.kernel.org, Jason Cooper <jason@lakedaemon.net>,
	Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com>,
	linux-arm-kernel@lists.infradead.org,
	Vincent Donnefort <vdonnefort@gmail.com>,
	stable@vger.kernel.org
Subject: Re: [PATCH RESEND] leds: netxbig: fix oops at probe time
Date: Tue, 30 Dec 2014 17:35:15 +0100	[thread overview]
Message-ID: <20141230163515.GD24811@lunn.ch> (raw)
In-Reply-To: <1419352764-24316-1-git-send-email-simon.guinot@sequanux.org>

On Tue, Dec 23, 2014 at 05:39:24PM +0100, Simon Guinot wrote:
> This patch fixes a NULL pointer dereference on led_dat->mode_val. Due to
> this bug, a kernel oops can be observed at probe time on the LaCie 2Big
> and 5Big v2 boards:
> 
> Unable to handle kernel NULL pointer dereference at virtual address 00000008
> [...]
> [<c03f244c>] (netxbig_led_probe) from [<c02c8c6c>] (platform_drv_probe+0x4c/0x9c)
> [<c02c8c6c>] (platform_drv_probe) from [<c02c72d0>] (driver_probe_device+0x98/0x25c)
> [<c02c72d0>] (driver_probe_device) from [<c02c7520>] (__driver_attach+0x8c/0x90)
> [<c02c7520>] (__driver_attach) from [<c02c5c24>] (bus_for_each_dev+0x68/0x94)
> [<c02c5c24>] (bus_for_each_dev) from [<c02c6408>] (bus_add_driver+0x124/0x1dc)
> [<c02c6408>] (bus_add_driver) from [<c02c7ac0>] (driver_register+0x78/0xf8)
> [<c02c7ac0>] (driver_register) from [<c000888c>] (do_one_initcall+0x80/0x1cc)
> [<c000888c>] (do_one_initcall) from [<c0733618>] (kernel_init_freeable+0xe4/0x1b4)
> [<c0733618>] (kernel_init_freeable) from [<c058db9c>] (kernel_init+0xc/0xec)
> [<c058db9c>] (kernel_init) from [<c0009850>] (ret_from_fork+0x14/0x24)
> [...]
> 
> This bug was introduced by commit 588a6a99286ae30afb1339d8bc2163517b1b7dd1
> ("leds: netxbig: fix attribute-creation race").
> 
> Signed-off-by: Simon Guinot <simon.guinot@sequanux.org>
> Cc: <stable@vger.kernel.org> # 3.17+
> Acked-by: Johan Hovold <johan@kernel.org>

Hi Bryan, Richard

Simon has asked that this be taken via mvebu, since there has not been
any response from the LED maintainers. I will queue it up as part of
my next set of fixes for -rc3, and Cc: you on the pull request.

If this is not O.K. with you, please let me know.

Thanks
	Andrew

> ---
>  drivers/leds/leds-netxbig.c | 12 ++++++------
>  1 file changed, 6 insertions(+), 6 deletions(-)
> 
> diff --git a/drivers/leds/leds-netxbig.c b/drivers/leds/leds-netxbig.c
> index 64fde485dcaa..4c794f15a57f 100644
> --- a/drivers/leds/leds-netxbig.c
> +++ b/drivers/leds/leds-netxbig.c
> @@ -330,18 +330,18 @@ create_netxbig_led(struct platform_device *pdev,
>  	led_dat->sata = 0;
>  	led_dat->cdev.brightness = LED_OFF;
>  	led_dat->cdev.flags |= LED_CORE_SUSPENDRESUME;
> -	/*
> -	 * If available, expose the SATA activity blink capability through
> -	 * a "sata" sysfs attribute.
> -	 */
> -	if (led_dat->mode_val[NETXBIG_LED_SATA] != NETXBIG_LED_INVALID_MODE)
> -		led_dat->cdev.groups = netxbig_led_groups;
>  	led_dat->mode_addr = template->mode_addr;
>  	led_dat->mode_val = template->mode_val;
>  	led_dat->bright_addr = template->bright_addr;
>  	led_dat->bright_max = (1 << pdata->gpio_ext->num_data) - 1;
>  	led_dat->timer = pdata->timer;
>  	led_dat->num_timer = pdata->num_timer;
> +	/*
> +	 * If available, expose the SATA activity blink capability through
> +	 * a "sata" sysfs attribute.
> +	 */
> +	if (led_dat->mode_val[NETXBIG_LED_SATA] != NETXBIG_LED_INVALID_MODE)
> +		led_dat->cdev.groups = netxbig_led_groups;
>  
>  	return led_classdev_register(&pdev->dev, &led_dat->cdev);
>  }
> -- 
> 2.1.1
> 

WARNING: multiple messages have this Message-ID (diff)
From: andrew@lunn.ch (Andrew Lunn)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH RESEND] leds: netxbig: fix oops at probe time
Date: Tue, 30 Dec 2014 17:35:15 +0100	[thread overview]
Message-ID: <20141230163515.GD24811@lunn.ch> (raw)
In-Reply-To: <1419352764-24316-1-git-send-email-simon.guinot@sequanux.org>

On Tue, Dec 23, 2014 at 05:39:24PM +0100, Simon Guinot wrote:
> This patch fixes a NULL pointer dereference on led_dat->mode_val. Due to
> this bug, a kernel oops can be observed at probe time on the LaCie 2Big
> and 5Big v2 boards:
> 
> Unable to handle kernel NULL pointer dereference at virtual address 00000008
> [...]
> [<c03f244c>] (netxbig_led_probe) from [<c02c8c6c>] (platform_drv_probe+0x4c/0x9c)
> [<c02c8c6c>] (platform_drv_probe) from [<c02c72d0>] (driver_probe_device+0x98/0x25c)
> [<c02c72d0>] (driver_probe_device) from [<c02c7520>] (__driver_attach+0x8c/0x90)
> [<c02c7520>] (__driver_attach) from [<c02c5c24>] (bus_for_each_dev+0x68/0x94)
> [<c02c5c24>] (bus_for_each_dev) from [<c02c6408>] (bus_add_driver+0x124/0x1dc)
> [<c02c6408>] (bus_add_driver) from [<c02c7ac0>] (driver_register+0x78/0xf8)
> [<c02c7ac0>] (driver_register) from [<c000888c>] (do_one_initcall+0x80/0x1cc)
> [<c000888c>] (do_one_initcall) from [<c0733618>] (kernel_init_freeable+0xe4/0x1b4)
> [<c0733618>] (kernel_init_freeable) from [<c058db9c>] (kernel_init+0xc/0xec)
> [<c058db9c>] (kernel_init) from [<c0009850>] (ret_from_fork+0x14/0x24)
> [...]
> 
> This bug was introduced by commit 588a6a99286ae30afb1339d8bc2163517b1b7dd1
> ("leds: netxbig: fix attribute-creation race").
> 
> Signed-off-by: Simon Guinot <simon.guinot@sequanux.org>
> Cc: <stable@vger.kernel.org> # 3.17+
> Acked-by: Johan Hovold <johan@kernel.org>

Hi Bryan, Richard

Simon has asked that this be taken via mvebu, since there has not been
any response from the LED maintainers. I will queue it up as part of
my next set of fixes for -rc3, and Cc: you on the pull request.

If this is not O.K. with you, please let me know.

Thanks
	Andrew

> ---
>  drivers/leds/leds-netxbig.c | 12 ++++++------
>  1 file changed, 6 insertions(+), 6 deletions(-)
> 
> diff --git a/drivers/leds/leds-netxbig.c b/drivers/leds/leds-netxbig.c
> index 64fde485dcaa..4c794f15a57f 100644
> --- a/drivers/leds/leds-netxbig.c
> +++ b/drivers/leds/leds-netxbig.c
> @@ -330,18 +330,18 @@ create_netxbig_led(struct platform_device *pdev,
>  	led_dat->sata = 0;
>  	led_dat->cdev.brightness = LED_OFF;
>  	led_dat->cdev.flags |= LED_CORE_SUSPENDRESUME;
> -	/*
> -	 * If available, expose the SATA activity blink capability through
> -	 * a "sata" sysfs attribute.
> -	 */
> -	if (led_dat->mode_val[NETXBIG_LED_SATA] != NETXBIG_LED_INVALID_MODE)
> -		led_dat->cdev.groups = netxbig_led_groups;
>  	led_dat->mode_addr = template->mode_addr;
>  	led_dat->mode_val = template->mode_val;
>  	led_dat->bright_addr = template->bright_addr;
>  	led_dat->bright_max = (1 << pdata->gpio_ext->num_data) - 1;
>  	led_dat->timer = pdata->timer;
>  	led_dat->num_timer = pdata->num_timer;
> +	/*
> +	 * If available, expose the SATA activity blink capability through
> +	 * a "sata" sysfs attribute.
> +	 */
> +	if (led_dat->mode_val[NETXBIG_LED_SATA] != NETXBIG_LED_INVALID_MODE)
> +		led_dat->cdev.groups = netxbig_led_groups;
>  
>  	return led_classdev_register(&pdev->dev, &led_dat->cdev);
>  }
> -- 
> 2.1.1
> 

  reply	other threads:[~2014-12-30 16:35 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-12-23 16:39 [PATCH RESEND] leds: netxbig: fix oops at probe time Simon Guinot
2014-12-23 16:39 ` Simon Guinot
2014-12-30 16:35 ` Andrew Lunn [this message]
2014-12-30 16:35   ` Andrew Lunn

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=20141230163515.GD24811@lunn.ch \
    --to=andrew@lunn.ch \
    --cc=cooloney@gmail.com \
    --cc=jason@lakedaemon.net \
    --cc=johan@kernel.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-leds@vger.kernel.org \
    --cc=rpurdie@rpsys.net \
    --cc=sebastian.hesselbarth@gmail.com \
    --cc=simon.guinot@sequanux.org \
    --cc=stable@vger.kernel.org \
    --cc=vdonnefort@gmail.com \
    /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.