X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=drivers%2Fnet%2Firda%2Fsir_dongle.c;h=8d225921ae7bec9fc94496134e3b7d81d01b40e7;hb=987b0145d94eecf292d8b301228356f44611ab7c;hp=d7e32d9554fc555bb01ca8ae58921a4290e7fd3a;hpb=f7ed79d23a47594e7834d66a8f14449796d4f3e6;p=linux-2.6.git diff --git a/drivers/net/irda/sir_dongle.c b/drivers/net/irda/sir_dongle.c index d7e32d955..8d225921a 100644 --- a/drivers/net/irda/sir_dongle.c +++ b/drivers/net/irda/sir_dongle.c @@ -16,7 +16,6 @@ #include #include #include -#include #include @@ -29,7 +28,7 @@ */ static LIST_HEAD(dongle_list); /* list of registered dongle drivers */ -static DEFINE_MUTEX(dongle_list_lock); /* protects the list */ +static DECLARE_MUTEX(dongle_list_lock); /* protects the list */ int irda_register_dongle(struct dongle_driver *new) { @@ -39,25 +38,25 @@ int irda_register_dongle(struct dongle_driver *new) IRDA_DEBUG(0, "%s : registering dongle \"%s\" (%d).\n", __FUNCTION__, new->driver_name, new->type); - mutex_lock(&dongle_list_lock); + down(&dongle_list_lock); list_for_each(entry, &dongle_list) { drv = list_entry(entry, struct dongle_driver, dongle_list); if (new->type == drv->type) { - mutex_unlock(&dongle_list_lock); + up(&dongle_list_lock); return -EEXIST; } } list_add(&new->dongle_list, &dongle_list); - mutex_unlock(&dongle_list_lock); + up(&dongle_list_lock); return 0; } EXPORT_SYMBOL(irda_register_dongle); int irda_unregister_dongle(struct dongle_driver *drv) { - mutex_lock(&dongle_list_lock); + down(&dongle_list_lock); list_del(&drv->dongle_list); - mutex_unlock(&dongle_list_lock); + up(&dongle_list_lock); return 0; } EXPORT_SYMBOL(irda_unregister_dongle); @@ -76,7 +75,7 @@ int sirdev_get_dongle(struct sir_dev *dev, IRDA_DONGLE type) return -EBUSY; /* serialize access to the list of registered dongles */ - mutex_lock(&dongle_list_lock); + down(&dongle_list_lock); list_for_each(entry, &dongle_list) { drv = list_entry(entry, struct dongle_driver, dongle_list); @@ -110,14 +109,14 @@ int sirdev_get_dongle(struct sir_dev *dev, IRDA_DONGLE type) if (!drv->open || (err=drv->open(dev))!=0) goto out_reject; /* failed to open driver */ - mutex_unlock(&dongle_list_lock); + up(&dongle_list_lock); return 0; out_reject: dev->dongle_drv = NULL; module_put(drv->owner); out_unlock: - mutex_unlock(&dongle_list_lock); + up(&dongle_list_lock); return err; }