Gitweb:     
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=09d7a96f5ad1019386594e2795c1f0229dd43305
Commit:     09d7a96f5ad1019386594e2795c1f0229dd43305
Parent:     70093cfde8af52b0b9030d90f9004cbde38f2ff8
Author:     Jean Delvare <[EMAIL PROTECTED]>
AuthorDate: Sun Apr 1 10:06:33 2007 +0200
Committer:  Stefan Richter <[EMAIL PROTECTED]>
CommitDate: Mon Apr 30 00:00:30 2007 +0200

    ieee1394: eth1394: Move common recv_init code to helper function
    
    There is some common code between ether1394_open and ether1394_add_host
    which can be moved to a separate helper function for a slightly smaller
    eth1394 driver (-160 bytes on i386.)
    
    Signed-off-by: Jean Delvare <[EMAIL PROTECTED]>
    Signed-off-by: Stefan Richter <[EMAIL PROTECTED]>
---
 drivers/ieee1394/eth1394.c |   71 +++++++++++++++++++------------------------
 1 files changed, 31 insertions(+), 40 deletions(-)

diff --git a/drivers/ieee1394/eth1394.c b/drivers/ieee1394/eth1394.c
index b4fa754..f7b47b9 100644
--- a/drivers/ieee1394/eth1394.c
+++ b/drivers/ieee1394/eth1394.c
@@ -208,38 +208,45 @@ static struct hpsb_highlevel eth1394_highlevel = {
 };
 
 
+static int ether1394_recv_init(struct net_device *dev)
+{
+       struct eth1394_priv *priv = netdev_priv(dev);
+
+       priv->iso = hpsb_iso_recv_init(priv->host,
+                                      ETHER1394_ISO_BUF_SIZE,
+                                      ETHER1394_GASP_BUFFERS,
+                                      priv->broadcast_channel,
+                                      HPSB_ISO_DMA_PACKET_PER_BUFFER,
+                                      1, ether1394_iso);
+       if (priv->iso == NULL) {
+               ETH1394_PRINT(KERN_ERR, dev->name,
+                             "Could not allocate isochronous receive "
+                             "context for the broadcast channel\n");
+               priv->bc_state = ETHER1394_BC_ERROR;
+               return -EAGAIN;
+       }
+
+       if (hpsb_iso_recv_start(priv->iso, -1, (1 << 3), -1) < 0)
+               priv->bc_state = ETHER1394_BC_STOPPED;
+       else
+               priv->bc_state = ETHER1394_BC_RUNNING;
+       return 0;
+}
+
 /* This is called after an "ifup" */
-static int ether1394_open (struct net_device *dev)
+static int ether1394_open(struct net_device *dev)
 {
        struct eth1394_priv *priv = netdev_priv(dev);
-       int ret = 0;
+       int ret;
 
        /* Something bad happened, don't even try */
        if (priv->bc_state == ETHER1394_BC_ERROR) {
                /* we'll try again */
-               priv->iso = hpsb_iso_recv_init(priv->host,
-                                              ETHER1394_ISO_BUF_SIZE,
-                                              ETHER1394_GASP_BUFFERS,
-                                              priv->broadcast_channel,
-                                              HPSB_ISO_DMA_PACKET_PER_BUFFER,
-                                              1, ether1394_iso);
-               if (priv->iso == NULL) {
-                       ETH1394_PRINT(KERN_ERR, dev->name,
-                                     "Could not allocate isochronous receive "
-                                     "context for the broadcast channel\n");
-                       priv->bc_state = ETHER1394_BC_ERROR;
-                       ret = -EAGAIN;
-               } else {
-                       if (hpsb_iso_recv_start(priv->iso, -1, (1 << 3), -1) < 
0)
-                               priv->bc_state = ETHER1394_BC_STOPPED;
-                       else
-                               priv->bc_state = ETHER1394_BC_RUNNING;
-               }
+               ret = ether1394_recv_init(dev);
+               if (ret)
+                       return ret;
        }
 
-       if (ret)
-               return ret;
-
        netif_start_queue (dev);
        return 0;
 }
@@ -628,23 +635,7 @@ static void ether1394_add_host (struct hpsb_host *host)
         * be checked when the eth device is opened. */
        priv->broadcast_channel = host->csr.broadcast_channel & 0x3f;
 
-       priv->iso = hpsb_iso_recv_init(host,
-                                      ETHER1394_ISO_BUF_SIZE,
-                                      ETHER1394_GASP_BUFFERS,
-                                      priv->broadcast_channel,
-                                      HPSB_ISO_DMA_PACKET_PER_BUFFER,
-                                      1, ether1394_iso);
-       if (priv->iso == NULL) {
-               ETH1394_PRINT(KERN_ERR, dev->name,
-                             "Could not allocate isochronous receive context "
-                             "for the broadcast channel\n");
-               priv->bc_state = ETHER1394_BC_ERROR;
-       } else {
-               if (hpsb_iso_recv_start(priv->iso, -1, (1 << 3), -1) < 0)
-                       priv->bc_state = ETHER1394_BC_STOPPED;
-               else
-                       priv->bc_state = ETHER1394_BC_RUNNING;
-       }
+       ether1394_recv_init(dev);
        return;
 out:
        if (dev)
-
To unsubscribe from this list: send the line "unsubscribe git-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