diff options
author | Daniel Walker <dwalker@mvista.com> | 2008-03-28 14:41:26 -0700 |
---|---|---|
committer | Jeff Garzik <jeff@garzik.org> | 2008-03-28 22:14:30 -0400 |
commit | 9f71a568f5f1d6c9fb3ca89b6b973475e6475192 (patch) | |
tree | e3e239531663b7773c5f0a11483d443910e41daf /drivers/net | |
parent | 06f89edf89f254346c95d0c569cecd606459d83e (diff) |
netdev: ehea: ehea_fw_handles semaphore to mutex
Converted the ehea_fw_handles.lock to a mutex.
Signed-off-by: Daniel Walker <dwalker@mvista.com>
Cc: Christoph Raisch <raisch@de.ibm.com>
Cc: Jan-Bernd Themann <themann@de.ibm.com>
Cc: Thomas Klein <tklein@de.ibm.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
Diffstat (limited to 'drivers/net')
-rw-r--r-- | drivers/net/ehea/ehea.h | 2 | ||||
-rw-r--r-- | drivers/net/ehea/ehea_main.c | 18 |
2 files changed, 10 insertions, 10 deletions
diff --git a/drivers/net/ehea/ehea.h b/drivers/net/ehea/ehea.h index 93b7fb246960..f07af2c3bcbe 100644 --- a/drivers/net/ehea/ehea.h +++ b/drivers/net/ehea/ehea.h @@ -421,7 +421,7 @@ struct ehea_fw_handle_entry { struct ehea_fw_handle_array { struct ehea_fw_handle_entry *arr; int num_entries; - struct semaphore lock; + struct mutex lock; }; struct ehea_bcmc_reg_entry { diff --git a/drivers/net/ehea/ehea_main.c b/drivers/net/ehea/ehea_main.c index a3b3b165445a..4ae65e876487 100644 --- a/drivers/net/ehea/ehea_main.c +++ b/drivers/net/ehea/ehea_main.c @@ -2453,7 +2453,7 @@ static int ehea_up(struct net_device *dev) if (port->state == EHEA_PORT_UP) return 0; - down(&ehea_fw_handles.lock); + mutex_lock(&ehea_fw_handles.lock); ret = ehea_port_res_setup(port, port->num_def_qps, port->num_add_tx_qps); @@ -2517,7 +2517,7 @@ out: up(&ehea_bcmc_regs.lock); ehea_update_firmware_handles(); - up(&ehea_fw_handles.lock); + mutex_unlock(&ehea_fw_handles.lock); return ret; } @@ -2573,7 +2573,7 @@ static int ehea_down(struct net_device *dev) ehea_free_interrupts(dev); - down(&ehea_fw_handles.lock); + mutex_lock(&ehea_fw_handles.lock); port->state = EHEA_PORT_DOWN; @@ -2586,7 +2586,7 @@ static int ehea_down(struct net_device *dev) dev->name, ret); ehea_update_firmware_handles(); - up(&ehea_fw_handles.lock); + mutex_unlock(&ehea_fw_handles.lock); return ret; } @@ -3343,7 +3343,7 @@ static int __devinit ehea_probe_adapter(struct of_device *dev, ehea_error("Invalid ibmebus device probed"); return -EINVAL; } - down(&ehea_fw_handles.lock); + mutex_lock(&ehea_fw_handles.lock); adapter = kzalloc(sizeof(*adapter), GFP_KERNEL); if (!adapter) { @@ -3427,7 +3427,7 @@ out_free_ad: out: ehea_update_firmware_handles(); - up(&ehea_fw_handles.lock); + mutex_unlock(&ehea_fw_handles.lock); return ret; } @@ -3446,7 +3446,7 @@ static int __devexit ehea_remove(struct of_device *dev) flush_scheduled_work(); - down(&ehea_fw_handles.lock); + mutex_lock(&ehea_fw_handles.lock); ibmebus_free_irq(adapter->neq->attr.ist1, adapter); tasklet_kill(&adapter->neq_tasklet); @@ -3457,7 +3457,7 @@ static int __devexit ehea_remove(struct of_device *dev) kfree(adapter); ehea_update_firmware_handles(); - up(&ehea_fw_handles.lock); + mutex_unlock(&ehea_fw_handles.lock); return 0; } @@ -3544,7 +3544,7 @@ int __init ehea_module_init(void) memset(&ehea_fw_handles, 0, sizeof(ehea_fw_handles)); memset(&ehea_bcmc_regs, 0, sizeof(ehea_bcmc_regs)); - sema_init(&ehea_fw_handles.lock, 1); + mutex_init(&ehea_fw_handles.lock); sema_init(&ehea_bcmc_regs.lock, 1); ret = check_module_parm(); |