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