X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=drivers%2Fnet%2Fsungem.c;h=28ce47a02408e9946c2e3941c491b5313ca56db2;hb=987b0145d94eecf292d8b301228356f44611ab7c;hp=38cd30cb7c750e0ef7c248d160f1400b3593e22b;hpb=f7ed79d23a47594e7834d66a8f14449796d4f3e6;p=linux-2.6.git diff --git a/drivers/net/sungem.c b/drivers/net/sungem.c index 38cd30cb7..28ce47a02 100644 --- a/drivers/net/sungem.c +++ b/drivers/net/sungem.c @@ -55,7 +55,6 @@ #include #include #include -#include #include #include @@ -2285,7 +2284,7 @@ static void gem_reset_task(void *data) { struct gem *gp = (struct gem *) data; - mutex_lock(&gp->pm_mutex); + down(&gp->pm_sem); netif_poll_disable(gp->dev); @@ -2312,7 +2311,7 @@ static void gem_reset_task(void *data) netif_poll_enable(gp->dev); - mutex_unlock(&gp->pm_mutex); + up(&gp->pm_sem); } @@ -2321,14 +2320,14 @@ static int gem_open(struct net_device *dev) struct gem *gp = dev->priv; int rc = 0; - mutex_lock(&gp->pm_mutex); + down(&gp->pm_sem); /* We need the cell enabled */ if (!gp->asleep) rc = gem_do_start(dev); gp->opened = (rc == 0); - mutex_unlock(&gp->pm_mutex); + up(&gp->pm_sem); return rc; } @@ -2341,13 +2340,13 @@ static int gem_close(struct net_device *dev) * our caller (dev_close) already did it for us */ - mutex_lock(&gp->pm_mutex); + down(&gp->pm_sem); gp->opened = 0; if (!gp->asleep) gem_do_stop(dev, 0); - mutex_unlock(&gp->pm_mutex); + up(&gp->pm_sem); return 0; } @@ -2359,7 +2358,7 @@ static int gem_suspend(struct pci_dev *pdev, pm_message_t state) struct gem *gp = dev->priv; unsigned long flags; - mutex_lock(&gp->pm_mutex); + down(&gp->pm_sem); netif_poll_disable(dev); @@ -2392,11 +2391,11 @@ static int gem_suspend(struct pci_dev *pdev, pm_message_t state) /* Stop the link timer */ del_timer_sync(&gp->link_timer); - /* Now we release the mutex to not block the reset task who + /* Now we release the semaphore to not block the reset task who * can take it too. We are marked asleep, so there will be no * conflict here */ - mutex_unlock(&gp->pm_mutex); + up(&gp->pm_sem); /* Wait for a pending reset task to complete */ while (gp->reset_task_pending) @@ -2425,7 +2424,7 @@ static int gem_resume(struct pci_dev *pdev) printk(KERN_INFO "%s: resuming\n", dev->name); - mutex_lock(&gp->pm_mutex); + down(&gp->pm_sem); /* Keep the cell enabled during the entire operation, no need to * take a lock here tho since nothing else can happen while we are @@ -2441,7 +2440,7 @@ static int gem_resume(struct pci_dev *pdev) * still asleep, a new sleep cycle may bring it back */ gem_put_cell(gp); - mutex_unlock(&gp->pm_mutex); + up(&gp->pm_sem); return 0; } pci_set_master(gp->pdev); @@ -2487,7 +2486,7 @@ static int gem_resume(struct pci_dev *pdev) netif_poll_enable(dev); - mutex_unlock(&gp->pm_mutex); + up(&gp->pm_sem); return 0; } @@ -2592,7 +2591,7 @@ static int gem_change_mtu(struct net_device *dev, int new_mtu) return 0; } - mutex_lock(&gp->pm_mutex); + down(&gp->pm_sem); spin_lock_irq(&gp->lock); spin_lock(&gp->tx_lock); dev->mtu = new_mtu; @@ -2603,7 +2602,7 @@ static int gem_change_mtu(struct net_device *dev, int new_mtu) } spin_unlock(&gp->tx_lock); spin_unlock_irq(&gp->lock); - mutex_unlock(&gp->pm_mutex); + up(&gp->pm_sem); return 0; } @@ -2772,10 +2771,10 @@ static int gem_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd) int rc = -EOPNOTSUPP; unsigned long flags; - /* Hold the PM mutex while doing ioctl's or we may collide + /* Hold the PM semaphore while doing ioctl's or we may collide * with power management. */ - mutex_lock(&gp->pm_mutex); + down(&gp->pm_sem); spin_lock_irqsave(&gp->lock, flags); gem_get_cell(gp); @@ -2813,7 +2812,7 @@ static int gem_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd) gem_put_cell(gp); spin_unlock_irqrestore(&gp->lock, flags); - mutex_unlock(&gp->pm_mutex); + up(&gp->pm_sem); return rc; } @@ -3034,7 +3033,7 @@ static int __devinit gem_init_one(struct pci_dev *pdev, spin_lock_init(&gp->lock); spin_lock_init(&gp->tx_lock); - mutex_init(&gp->pm_mutex); + init_MUTEX(&gp->pm_sem); init_timer(&gp->link_timer); gp->link_timer.function = gem_link_timer;