* [patch] acpi: use mutex instead of spinlock in dock driver
@ 2006-10-30 19:18 Kristen Carlson Accardi
2006-10-30 20:12 ` Len Brown
0 siblings, 1 reply; 2+ messages in thread
From: Kristen Carlson Accardi @ 2006-10-30 19:18 UTC (permalink / raw)
To: linux-acpi; +Cc: linux-kernel, len.brown
http://bugzilla.kernel.org/show_bug.cgi?id=7303
Use a mutex instead of a spinlock for locking the
hotplug list because we need to call into the acpi
subsystem which might sleep.
Signed-off-by: Kristen Carlson Accardi <kristen.c.accardi@intel.com>
---
drivers/acpi/dock.c | 16 ++++++++--------
1 file changed, 8 insertions(+), 8 deletions(-)
--- 2.6-git.orig/drivers/acpi/dock.c
+++ 2.6-git/drivers/acpi/dock.c
@@ -44,7 +44,7 @@ struct dock_station {
unsigned long last_dock_time;
u32 flags;
spinlock_t dd_lock;
- spinlock_t hp_lock;
+ struct mutex hp_lock;
struct list_head dependent_devices;
struct list_head hotplug_devices;
};
@@ -114,9 +114,9 @@ static void
dock_add_hotplug_device(struct dock_station *ds,
struct dock_dependent_device *dd)
{
- spin_lock(&ds->hp_lock);
+ mutex_lock(&ds->hp_lock);
list_add_tail(&dd->hotplug_list, &ds->hotplug_devices);
- spin_unlock(&ds->hp_lock);
+ mutex_unlock(&ds->hp_lock);
}
/**
@@ -130,9 +130,9 @@ static void
dock_del_hotplug_device(struct dock_station *ds,
struct dock_dependent_device *dd)
{
- spin_lock(&ds->hp_lock);
+ mutex_lock(&ds->hp_lock);
list_del(&dd->hotplug_list);
- spin_unlock(&ds->hp_lock);
+ mutex_unlock(&ds->hp_lock);
}
/**
@@ -295,7 +295,7 @@ static void hotplug_dock_devices(struct
{
struct dock_dependent_device *dd;
- spin_lock(&ds->hp_lock);
+ mutex_lock(&ds->hp_lock);
/*
* First call driver specific hotplug functions
@@ -317,7 +317,7 @@ static void hotplug_dock_devices(struct
else
dock_create_acpi_device(dd->handle);
}
- spin_unlock(&ds->hp_lock);
+ mutex_unlock(&ds->hp_lock);
}
static void dock_event(struct dock_station *ds, u32 event, int num)
@@ -625,7 +625,7 @@ static int dock_add(acpi_handle handle)
INIT_LIST_HEAD(&dock_station->dependent_devices);
INIT_LIST_HEAD(&dock_station->hotplug_devices);
spin_lock_init(&dock_station->dd_lock);
- spin_lock_init(&dock_station->hp_lock);
+ mutex_init(&dock_station->hp_lock);
ATOMIC_INIT_NOTIFIER_HEAD(&dock_notifier_list);
/* Find dependent devices */
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: [patch] acpi: use mutex instead of spinlock in dock driver
2006-10-30 19:18 [patch] acpi: use mutex instead of spinlock in dock driver Kristen Carlson Accardi
@ 2006-10-30 20:12 ` Len Brown
0 siblings, 0 replies; 2+ messages in thread
From: Len Brown @ 2006-10-30 20:12 UTC (permalink / raw)
To: Kristen Carlson Accardi; +Cc: linux-acpi, linux-kernel
Applied.
thanks,
-Len
On Monday 30 October 2006 14:18, Kristen Carlson Accardi wrote:
> http://bugzilla.kernel.org/show_bug.cgi?id=7303
>
> Use a mutex instead of a spinlock for locking the
> hotplug list because we need to call into the acpi
> subsystem which might sleep.
>
> Signed-off-by: Kristen Carlson Accardi <kristen.c.accardi@intel.com>
> ---
> drivers/acpi/dock.c | 16 ++++++++--------
> 1 file changed, 8 insertions(+), 8 deletions(-)
>
> --- 2.6-git.orig/drivers/acpi/dock.c
> +++ 2.6-git/drivers/acpi/dock.c
> @@ -44,7 +44,7 @@ struct dock_station {
> unsigned long last_dock_time;
> u32 flags;
> spinlock_t dd_lock;
> - spinlock_t hp_lock;
> + struct mutex hp_lock;
> struct list_head dependent_devices;
> struct list_head hotplug_devices;
> };
> @@ -114,9 +114,9 @@ static void
> dock_add_hotplug_device(struct dock_station *ds,
> struct dock_dependent_device *dd)
> {
> - spin_lock(&ds->hp_lock);
> + mutex_lock(&ds->hp_lock);
> list_add_tail(&dd->hotplug_list, &ds->hotplug_devices);
> - spin_unlock(&ds->hp_lock);
> + mutex_unlock(&ds->hp_lock);
> }
>
> /**
> @@ -130,9 +130,9 @@ static void
> dock_del_hotplug_device(struct dock_station *ds,
> struct dock_dependent_device *dd)
> {
> - spin_lock(&ds->hp_lock);
> + mutex_lock(&ds->hp_lock);
> list_del(&dd->hotplug_list);
> - spin_unlock(&ds->hp_lock);
> + mutex_unlock(&ds->hp_lock);
> }
>
> /**
> @@ -295,7 +295,7 @@ static void hotplug_dock_devices(struct
> {
> struct dock_dependent_device *dd;
>
> - spin_lock(&ds->hp_lock);
> + mutex_lock(&ds->hp_lock);
>
> /*
> * First call driver specific hotplug functions
> @@ -317,7 +317,7 @@ static void hotplug_dock_devices(struct
> else
> dock_create_acpi_device(dd->handle);
> }
> - spin_unlock(&ds->hp_lock);
> + mutex_unlock(&ds->hp_lock);
> }
>
> static void dock_event(struct dock_station *ds, u32 event, int num)
> @@ -625,7 +625,7 @@ static int dock_add(acpi_handle handle)
> INIT_LIST_HEAD(&dock_station->dependent_devices);
> INIT_LIST_HEAD(&dock_station->hotplug_devices);
> spin_lock_init(&dock_station->dd_lock);
> - spin_lock_init(&dock_station->hp_lock);
> + mutex_init(&dock_station->hp_lock);
> ATOMIC_INIT_NOTIFIER_HEAD(&dock_notifier_list);
>
> /* Find dependent devices */
> -
> To unsubscribe from this list: send the line "unsubscribe linux-acpi" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
>
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2006-10-30 20:10 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-10-30 19:18 [patch] acpi: use mutex instead of spinlock in dock driver Kristen Carlson Accardi
2006-10-30 20:12 ` Len Brown
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).