via-velocity: add velocity_set_rxbufsize helper
authorFrancois Romieu <romieu@fr.zoreil.com>
Thu, 10 Jul 2008 22:05:57 +0000 (00:05 +0200)
committerJeff Garzik <jgarzik@redhat.com>
Fri, 11 Jul 2008 05:10:15 +0000 (01:10 -0400)
It removes a dependancy from velocity_init_rd_ring to dev->mtu.

Signed-off-by: Francois Romieu <romieu@fr.zoreil.com>
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
drivers/net/via-velocity.c

index 086d69c1992024f488c8493a6141c4b43264845f..370ce30f2f4575ece370f9f08fa408f18e6516b1 100644 (file)
@@ -1207,6 +1207,11 @@ static int velocity_rx_refill(struct velocity_info *vptr)
        return done;
 }
 
+static void velocity_set_rxbufsize(struct velocity_info *vptr, int mtu)
+{
+       vptr->rx_buf_sz = (mtu <= ETH_DATA_LEN) ? PKT_BUF_SZ : mtu + 32;
+}
+
 /**
  *     velocity_init_rd_ring   -       set up receive ring
  *     @vptr: velocity to configure
@@ -1217,11 +1222,8 @@ static int velocity_rx_refill(struct velocity_info *vptr)
 
 static int velocity_init_rd_ring(struct velocity_info *vptr)
 {
-       int mtu = vptr->dev->mtu;
        int ret = -ENOMEM;
 
-       vptr->rx_buf_sz = (mtu <= ETH_DATA_LEN) ? PKT_BUF_SZ : mtu + 32;
-
        vptr->rd_info = kcalloc(vptr->options.numrx,
                                sizeof(struct velocity_rd_info), GFP_KERNEL);
        if (!vptr->rd_info)
@@ -1860,6 +1862,8 @@ static int velocity_open(struct net_device *dev)
        struct velocity_info *vptr = netdev_priv(dev);
        int ret;
 
+       velocity_set_rxbufsize(vptr, dev->mtu);
+
        ret = velocity_init_rings(vptr);
        if (ret < 0)
                goto out;
@@ -1941,6 +1945,8 @@ static int velocity_change_mtu(struct net_device *dev, int new_mtu)
 
                dev->mtu = new_mtu;
 
+               velocity_set_rxbufsize(vptr, new_mtu);
+
                ret = velocity_init_rd_ring(vptr);
                if (ret < 0)
                        goto out_unlock;