tree b2aa664412afa2c2a5eef47d485b11c410949798
parent 4acdbdbe5089c06d5e0c7e96783fcc4414ded00a
author Loic Le Loarer <[EMAIL PROTECTED]> Fri, 22 Jul 2005 04:16:54 -0700
committer David S. Miller <[EMAIL PROTECTED]> Fri, 22 Jul 2005 04:16:54 -0700

[EQL]: Proper num_slaves decrement

Signed-off-by: Loic Le Loarer <[EMAIL PROTECTED]>
Signed-off-by: David S. Miller <[EMAIL PROTECTED]>

 drivers/net/eql.c |   16 ++++++++--------
 1 files changed, 8 insertions(+), 8 deletions(-)

diff --git a/drivers/net/eql.c b/drivers/net/eql.c
--- a/drivers/net/eql.c
+++ b/drivers/net/eql.c
@@ -132,7 +132,7 @@ static struct net_device_stats *eql_get_
 #define eql_is_slave(dev)      ((dev->flags & IFF_SLAVE) == IFF_SLAVE)
 #define eql_is_master(dev)     ((dev->flags & IFF_MASTER) == IFF_MASTER)
 
-static void eql_kill_one_slave(slave_t *slave);
+static void eql_kill_one_slave(slave_queue_t *queue, slave_t *slave);
 
 static void eql_timer(unsigned long param)
 {
@@ -149,7 +149,7 @@ static void eql_timer(unsigned long para
                        if (slave->bytes_queued < 0)
                                slave->bytes_queued = 0;
                } else {
-                       eql_kill_one_slave(slave);
+                       eql_kill_one_slave(&eql->queue, slave);
                }
 
        }
@@ -214,9 +214,10 @@ static int eql_open(struct net_device *d
        return 0;
 }
 
-static void eql_kill_one_slave(slave_t *slave)
+static void eql_kill_one_slave(slave_queue_t *queue, slave_t *slave)
 {
        list_del(&slave->list);
+       queue->num_slaves--;
        slave->dev->flags &= ~IFF_SLAVE;
        dev_put(slave->dev);
        kfree(slave);
@@ -232,8 +233,7 @@ static void eql_kill_slave_queue(slave_q
        list_for_each_safe(this, tmp, head) {
                slave_t *s = list_entry(this, slave_t, list);
 
-               eql_kill_one_slave(s);
-               queue->num_slaves--;
+               eql_kill_one_slave(queue, s);
        }
 
        spin_unlock_bh(&queue->lock);
@@ -318,7 +318,7 @@ static slave_t *__eql_schedule_slaves(sl
                        }
                } else {
                        /* We found a dead slave, kill it. */
-                       eql_kill_one_slave(slave);
+                       eql_kill_one_slave(queue, slave);
                }
        }
        return best_slave;
@@ -393,7 +393,7 @@ static int __eql_insert_slave(slave_queu
 
                duplicate_slave = __eql_find_slave_dev(queue, slave->dev);
                if (duplicate_slave != 0)
-                       eql_kill_one_slave(duplicate_slave);
+                       eql_kill_one_slave(queue, duplicate_slave);
 
                list_add(&slave->list, &queue->all_slaves);
                queue->num_slaves++;
@@ -471,7 +471,7 @@ static int eql_emancipate(struct net_dev
                                                              slave_dev);
 
                        if (slave) {
-                               eql_kill_one_slave(slave);
+                               eql_kill_one_slave(&eql->queue, slave);
                                ret = 0;
                        }
                }
-
To unsubscribe from this list: send the line "unsubscribe bk-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to