lkml.org 
[lkml]   [2006]   [Oct]   [30]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    From
    SubjectRe: [patch] acpi: use mutex instead of spinlock in dock driver
    Date
    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
    >
    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

    \
     
     \ /
      Last update: 2006-10-30 21:13    [W:0.027 / U:30.020 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site