diff options
Diffstat (limited to 'drivers/acpi/dock.c')
-rw-r--r-- | 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 7d2edf143f16..25d2161ae9d9 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) | |||
604 | static void dock_notify(acpi_handle handle, u32 event, void *data) | 604 | static void dock_notify(acpi_handle handle, u32 event, void *data) |
605 | { | 605 | { |
606 | struct dock_station *ds = data; | 606 | struct dock_station *ds = data; |
607 | struct acpi_device *tmp; | ||
607 | 608 | ||
608 | switch (event) { | 609 | switch (event) { |
609 | case ACPI_NOTIFY_BUS_CHECK: | 610 | case ACPI_NOTIFY_BUS_CHECK: |
610 | if (!dock_in_progress(ds) && dock_present(ds)) { | 611 | if (!dock_in_progress(ds) && acpi_bus_get_device(ds->handle, |
612 | &tmp)) { | ||
611 | begin_dock(ds); | 613 | begin_dock(ds); |
612 | dock(ds); | 614 | dock(ds); |
613 | if (!dock_present(ds)) { | 615 | if (!dock_present(ds)) { |
614 | printk(KERN_ERR PREFIX "Unable to dock!\n"); | 616 | printk(KERN_ERR PREFIX "Unable to dock!\n"); |
617 | complete_dock(ds); | ||
615 | break; | 618 | break; |
616 | } | 619 | } |
617 | atomic_notifier_call_chain(&dock_notifier_list, | 620 | atomic_notifier_call_chain(&dock_notifier_list, |