[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#655377: [3.0 -> 3.1 regression] Kernel panic when turning off screen backlight using laptop Fn key

tags 655377 + patch moreinfo

Jonathan Nieder wrote:
> Artem X wrote:

>> Hello, there's patch available to fix the kernel panic when 'turning
>> off screen backlight'
>> which me and other people experienced (on various distros including
>> debian testing on lenovo).
> Might be fixed by v3.2-rc1~111^2~22 (ideapad: Check if acpi already
> handle backlight power to avoid a page fault, 2011-10-23).  Could you
> try a 3.2.y release candidate from experimental to check?

Even better, please try this patch against a 3.1.y kernel.org kernel.
Instructions for testing a patched kernel are at [1].

If it works, we can send it to Greg to consider applying to the 3.1.y

Luckily the ideapad-laptop backlight driver was only introduced in
v3.1-rc1~14^2~29, so older kernels do not have this bug.

Many thanks,

[1] http://kernel-handbook.alioth.debian.org/ch-common-tasks.html#s-kernel-org-package

-- >8 --
From: Rene Bollford <xsecute@googlemail.com>
Date: Sun, 23 Oct 2011 09:56:42 +0200
Subject: ideapad: Check if acpi already handle backlight power to avoid a page fault

commit d4afc7754a60b885b63ef23fd194984e2d53a4e6 upstream.

This patch avoid a page fault in the ideapad-laptop extras when
turning the backlight power on or off.

Signed-off-by: Rene Bolldorf <xsecute@googlemail.com>
Signed-off-by: Matthew Garrett <mjg@redhat.com>
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
 drivers/platform/x86/ideapad-laptop.c |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)

diff --git a/drivers/platform/x86/ideapad-laptop.c b/drivers/platform/x86/ideapad-laptop.c
index 0c595410e788..0d94eec00f4d 100644
--- a/drivers/platform/x86/ideapad-laptop.c
+++ b/drivers/platform/x86/ideapad-laptop.c
@@ -493,6 +493,8 @@ static void ideapad_backlight_notify_power(struct ideapad_private *priv)
 	unsigned long power;
 	struct backlight_device *blightdev = priv->blightdev;
+	if (!blightdev)
+		return;
 	if (read_ec_data(ideapad_handle, 0x18, &power))
 	blightdev->props.power = power ? FB_BLANK_UNBLANK : FB_BLANK_POWERDOWN;

Reply to: