SRU - LP41091 - Crash when connecting to port replicator
Tim Gardner
tcanonical at tpi.com
Mon Nov 24 17:04:26 UTC 2008
Steve Conklin wrote:
> From b0e0c2ea951dffb31b99fab160fc674d05c95f99 Mon Sep 17 00:00:00 2001
> From: Shaohua Li <shaohua.li at intel.com>
> Date: Thu, 28 Aug 2008 10:02:03 +0800
> Subject: [PATCH] UBUNTU: Ubuntu crash when connecting to port replicator
> OriginalAuthor: Shaohua Li <shaohua.li at intel.com>
>
> Bug: #41091
> cherry picked from upstream.
> Confirmed by a community member to solve the problem.
>
> ACPI: dock: avoid check _STA method
>
> In some BIOSes, every _STA method call will send a notification again,
> this cause freeze. And in some BIOSes, it appears _STA should be called
> after _DCK. This tries to avoid calls _STA, and still keep the device
> present check.
>
> http://bugzilla.kernel.org/show_bug.cgi?id=10431
>
> Signed-off-by: Shaohua Li <shaohua.li at intel.com>
> Signed-off-by: Len Brown <len.brown at intel.com>
> Signed-off-by: Steve Conklin <sconklin at canonical.com>
> ---
> drivers/acpi/dock.c | 5 ++++-
> 1 files changed, 4 insertions(+), 1 deletions(-)
>
> diff --git a/drivers/acpi/dock.c b/drivers/acpi/dock.c
> index 7d2edf1..25d2161 100644
> --- a/drivers/acpi/dock.c
> +++ b/drivers/acpi/dock.c
> @@ -604,14 +604,17 @@ static int handle_eject_request(struct dock_station *ds, u32 event)
> static void dock_notify(acpi_handle handle, u32 event, void *data)
> {
> struct dock_station *ds = data;
> + struct acpi_device *tmp;
>
> switch (event) {
> case ACPI_NOTIFY_BUS_CHECK:
> - if (!dock_in_progress(ds) && dock_present(ds)) {
> + if (!dock_in_progress(ds) && acpi_bus_get_device(ds->handle,
> + &tmp)) {
> begin_dock(ds);
> dock(ds);
> if (!dock_present(ds)) {
> printk(KERN_ERR PREFIX "Unable to dock!\n");
> + complete_dock(ds);
> break;
> }
> atomic_notifier_call_chain(&dock_notifier_list,
ACK
--
Tim Gardner tim.gardner at canonical.com
More information about the kernel-team
mailing list