X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;ds=sidebyside;f=drivers%2Fieee1394%2Fhosts.c;fp=drivers%2Fieee1394%2Fhosts.c;h=ba09741fc82607fc09269ac4930f09055c84aa9e;hb=64ba3f394c830ec48a1c31b53dcae312c56f1604;hp=4feead4a35c5b7b404b2aacee5e2282f1dd4cd52;hpb=be1e6109ac94a859551f8e1774eb9a8469fe055c;p=linux-2.6.git diff --git a/drivers/ieee1394/hosts.c b/drivers/ieee1394/hosts.c index 4feead4a3..ba09741fc 100644 --- a/drivers/ieee1394/hosts.c +++ b/drivers/ieee1394/hosts.c @@ -10,6 +10,7 @@ * directory of the kernel sources for details. */ +#include #include #include #include @@ -18,7 +19,6 @@ #include #include #include -#include #include "csr1212.h" #include "ieee1394.h" @@ -102,18 +102,10 @@ static int alloc_hostnum_cb(struct hpsb_host *host, void *__data) * driver specific parts, enable the controller and make it available * to the general subsystem using hpsb_add_host(). * - * Return Value: a pointer to the &hpsb_host if successful, %NULL if + * Return Value: a pointer to the &hpsb_host if succesful, %NULL if * no memory was available. */ -static DEFINE_MUTEX(host_num_alloc); - -/* - * The pending_packet_queue is special in that it's processed - * from hardirq context too (such as hpsb_bus_reset()). Hence - * split the lock class from the usual networking skb-head - * lock class by using a separate key for it: - */ -static struct lock_class_key pending_packet_queue_key; +static DECLARE_MUTEX(host_num_alloc); struct hpsb_host *hpsb_alloc_host(struct hpsb_host_driver *drv, size_t extra, struct device *dev) @@ -136,8 +128,6 @@ struct hpsb_host *hpsb_alloc_host(struct hpsb_host_driver *drv, size_t extra, h->driver = drv; skb_queue_head_init(&h->pending_packet_queue); - lockdep_set_class(&h->pending_packet_queue.lock, - &pending_packet_queue_key); INIT_LIST_HEAD(&h->addr_space); for (i = 2; i < 16; i++) @@ -158,7 +148,7 @@ struct hpsb_host *hpsb_alloc_host(struct hpsb_host_driver *drv, size_t extra, h->topology_map = h->csr.topology_map + 3; h->speed_map = (u8 *)(h->csr.speed_map + 2); - mutex_lock(&host_num_alloc); + down(&host_num_alloc); while (nodemgr_for_each_host(&hostnum, alloc_hostnum_cb)) hostnum++; @@ -177,7 +167,7 @@ struct hpsb_host *hpsb_alloc_host(struct hpsb_host_driver *drv, size_t extra, class_device_register(&h->class_dev); get_device(&h->device); - mutex_unlock(&host_num_alloc); + up(&host_num_alloc); return h; }