netdev: ehea: port_lock semaphore to mutex
authorDaniel Walker <dwalker@mvista.com>
Fri, 28 Mar 2008 21:41:28 +0000 (14:41 -0700)
committerJeff Garzik <jeff@garzik.org>
Sat, 29 Mar 2008 02:14:43 +0000 (22:14 -0400)
Convert the port_lock to a mutex.  There is also some additional cleanup.  The
line length inside the ehea_rereg_mrs was getting long so I made some
adjustments to shorten them.

[akpm@linux-foundation.org: dec99ification]
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>
drivers/net/ehea/ehea.h
drivers/net/ehea/ehea_main.c

index b5c8eb96bd26f9a7fb448dd573888a67a5142754..26acd05c80b561cb8813f2d6a55d244196ad78d0 100644 (file)
@@ -452,7 +452,7 @@ struct ehea_port {
        struct vlan_group *vgrp;
        struct ehea_eq *qp_eq;
        struct work_struct reset_task;
-       struct semaphore port_lock;
+       struct mutex port_lock;
        char int_aff_name[EHEA_IRQ_NAME_SIZE];
        int allmulti;                    /* Indicates IFF_ALLMULTI state */
        int promisc;                     /* Indicates IFF_PROMISC state */
index 73dd6f9dfbbec1936d566834dc32450970b3ae59..0c1c360a85ca19ba5dd1addfac54646321bc692b 100644 (file)
@@ -2543,7 +2543,7 @@ static int ehea_open(struct net_device *dev)
        int ret;
        struct ehea_port *port = netdev_priv(dev);
 
-       down(&port->port_lock);
+       mutex_lock(&port->port_lock);
 
        if (netif_msg_ifup(port))
                ehea_info("enabling port %s", dev->name);
@@ -2554,7 +2554,7 @@ static int ehea_open(struct net_device *dev)
                netif_start_queue(dev);
        }
 
-       up(&port->port_lock);
+       mutex_unlock(&port->port_lock);
 
        return ret;
 }
@@ -2600,11 +2600,11 @@ static int ehea_stop(struct net_device *dev)
                ehea_info("disabling port %s", dev->name);
 
        flush_scheduled_work();
-       down(&port->port_lock);
+       mutex_lock(&port->port_lock);
        netif_stop_queue(dev);
        port_napi_disable(port);
        ret = ehea_down(dev);
-       up(&port->port_lock);
+       mutex_unlock(&port->port_lock);
        return ret;
 }
 
@@ -2802,7 +2802,7 @@ static void ehea_reset_port(struct work_struct *work)
        struct net_device *dev = port->netdev;
 
        port->resets++;
-       down(&port->port_lock);
+       mutex_lock(&port->port_lock);
        netif_stop_queue(dev);
 
        port_napi_disable(port);
@@ -2822,7 +2822,7 @@ static void ehea_reset_port(struct work_struct *work)
 
        netif_wake_queue(dev);
 out:
-       up(&port->port_lock);
+       mutex_unlock(&port->port_lock);
        return;
 }
 
@@ -2839,21 +2839,23 @@ static void ehea_rereg_mrs(struct work_struct *work)
                        /* Shutdown all ports */
                        for (i = 0; i < EHEA_MAX_PORTS; i++) {
                                struct ehea_port *port = adapter->port[i];
+                               struct net_device *dev;
 
-                               if (port) {
-                                       struct net_device *dev = port->netdev;
+                               if (!port)
+                                       continue;
 
-                                       if (dev->flags & IFF_UP) {
-                                               down(&port->port_lock);
-                                               netif_stop_queue(dev);
-                                               ret = ehea_stop_qps(dev);
-                                               if (ret) {
-                                                       up(&port->port_lock);
-                                                       goto out;
-                                               }
-                                               port_napi_disable(port);
-                                               up(&port->port_lock);
+                               dev = port->netdev;
+
+                               if (dev->flags & IFF_UP) {
+                                       mutex_lock(&port->port_lock);
+                                       netif_stop_queue(dev);
+                                       ret = ehea_stop_qps(dev);
+                                       if (ret) {
+                                               mutex_unlock(&port->port_lock);
+                                               goto out;
                                        }
+                                       port_napi_disable(port);
+                                       mutex_unlock(&port->port_lock);
                                }
                        }
 
@@ -2893,12 +2895,12 @@ static void ehea_rereg_mrs(struct work_struct *work)
                                        struct net_device *dev = port->netdev;
 
                                        if (dev->flags & IFF_UP) {
-                                               down(&port->port_lock);
+                                               mutex_lock(&port->port_lock);
                                                port_napi_enable(port);
                                                ret = ehea_restart_qps(dev);
                                                if (!ret)
                                                        netif_wake_queue(dev);
-                                               up(&port->port_lock);
+                                               mutex_unlock(&port->port_lock);
                                        }
                                }
                        }
@@ -3064,7 +3066,7 @@ struct ehea_port *ehea_setup_single_port(struct ehea_adapter *adapter,
 
        port = netdev_priv(dev);
 
-       sema_init(&port->port_lock, 1);
+       mutex_init(&port->port_lock);
        port->state = EHEA_PORT_DOWN;
        port->sig_comp_iv = sq_entries / 10;