firewire: nosy: unroll some simple functions
authorStefan Richter <stefanr@s5r6.in-berlin.de>
Thu, 22 Jul 2010 09:56:38 +0000 (11:56 +0200)
committerStefan Richter <stefanr@s5r6.in-berlin.de>
Tue, 27 Jul 2010 09:04:10 +0000 (11:04 +0200)
nosy_start/stop_snoop() and nosy_add/remove_client() are simple enough
to be inlined into their callers.

Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
drivers/firewire/nosy.c

index 2357e17..57a1100 100644 (file)
@@ -260,68 +260,44 @@ set_phy_reg(struct pcilynx *lynx, int addr, int val)
        return 0;
 }
 
-static void
-nosy_start_snoop(struct client *client)
-{
-       spin_lock_irq(&client->lynx->client_list_lock);
-       list_add_tail(&client->link, &client->lynx->client_list);
-       spin_unlock_irq(&client->lynx->client_list_lock);
-}
-
-static void
-nosy_stop_snoop(struct client *client)
-{
-       spin_lock_irq(&client->lynx->client_list_lock);
-       list_del_init(&client->link);
-       spin_unlock_irq(&client->lynx->client_list_lock);
-}
-
-static struct client *
-nosy_add_client(struct pcilynx *lynx)
+static int
+nosy_open(struct inode *inode, struct file *file)
 {
+       int minor = iminor(inode);
        struct client *client;
 
+       if (minor > MAX_MINORS || minors[minor] == NULL)
+               return -ENODEV;
+
        client = kmalloc(sizeof *client, GFP_KERNEL);
+       if (client == NULL)
+               return -ENOMEM;
+
        client->tcode_mask = ~0;
-       client->lynx = lynx;
+       client->lynx = minors[minor];
        INIT_LIST_HEAD(&client->link);
 
        if (packet_buffer_init(&client->buffer, 128 * 1024) < 0) {
                kfree(client);
-               debug("Failed to allocate packet buffer\n");
-               return NULL;
+               return -ENOMEM;
        }
 
-       return client;
-}
+       file->private_data = client;
 
-static void
-nosy_remove_client(struct client *client)
-{
-       nosy_stop_snoop(client);
-       packet_buffer_destroy(&client->buffer);
-       kfree(client);
+       return 0;
 }
 
 static int
-nosy_open(struct inode *inode, struct file *file)
+nosy_release(struct inode *inode, struct file *file)
 {
-       int minor = iminor(inode);
-
-       if (minor > MAX_MINORS || minors[minor] == NULL)
-               return -ENODEV;
+       struct client *client = file->private_data;
 
-       file->private_data = nosy_add_client(minors[minor]);
-       if (file->private_data == NULL)
-               return -ENOMEM;
-       else
-               return 0;
-}
+       spin_lock_irq(&client->lynx->client_list_lock);
+       list_del_init(&client->link);
+       spin_unlock_irq(&client->lynx->client_list_lock);
 
-static int
-nosy_release(struct inode *inode, struct file *file)
-{
-       nosy_remove_client(file->private_data);
+       packet_buffer_destroy(&client->buffer);
+       kfree(client);
 
        return 0;
 }
@@ -367,17 +343,24 @@ nosy_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
                        return 0;
 
        case NOSY_IOC_START:
-               nosy_start_snoop(client);
+               spin_lock_irq(client_list_lock);
+               list_add_tail(&client->link, &client->lynx->client_list);
+               spin_unlock_irq(client_list_lock);
+
                return 0;
 
        case NOSY_IOC_STOP:
-               nosy_stop_snoop(client);
+               spin_lock_irq(client_list_lock);
+               list_del_init(&client->link);
+               spin_unlock_irq(client_list_lock);
+
                return 0;
 
        case NOSY_IOC_FILTER:
                spin_lock_irq(client_list_lock);
                client->tcode_mask = arg;
                spin_unlock_irq(client_list_lock);
+
                return 0;
 
        default: