]> rtime.felk.cvut.cz Git - socketcan-devel.git/commitdiff
don't allocate rx_alldev_list dynamically.
authorthuermann <thuermann@030b6a49-0b11-0410-94ab-b0dab22257f2>
Wed, 6 Dec 2006 12:20:15 +0000 (12:20 +0000)
committerthuermann <thuermann@030b6a49-0b11-0410-94ab-b0dab22257f2>
Wed, 6 Dec 2006 12:20:15 +0000 (12:20 +0000)
make rx_alldev_list static as it's not used outside af_can.c.
add proper parentheses in DNAME() macro.

git-svn-id: svn://svn.berlios.de//socketcan/trunk@113 030b6a49-0b11-0410-94ab-b0dab22257f2

kernel/2.6/net/can/af_can.c
kernel/2.6/net/can/af_can.h

index 5a82cc7614e4bfd44aefdbe8ae355a0fe67a4aca..52fb891ed6944afc23446b5569fd8e3e4909da5f 100644 (file)
@@ -126,7 +126,7 @@ static LIST_HEAD(notifier_list);
 static rwlock_t notifier_lock = RW_LOCK_UNLOCKED;
 
 HLIST_HEAD(rx_dev_list);
-struct dev_rcv_lists *rx_alldev_list; /* shortcut to persistent entry */
+static struct dev_rcv_lists rx_alldev_list;
 static spinlock_t rcv_lists_lock = SPIN_LOCK_UNLOCKED;
 
 static kmem_cache_t *rcv_cache;
@@ -171,15 +171,13 @@ static __init int can_init(void)
        if (!rcv_cache)
                return -ENOMEM;
 
-       /* create a dev_rcv_list for unbound receiption */
-       if (!(rx_alldev_list = kmalloc(sizeof(*rx_alldev_list), GFP_KERNEL))) {
-               printk(KERN_ERR "CAN: allocation of rx_alldev_list failed\n");
-               return -ENOMEM;
-       }
-       memset(rx_alldev_list, 0, sizeof(*rx_alldev_list)); /* dev = NULL */
+       /* Insert dev_rcv_list for reception on all devices.
+          This struct is zero initialized which is correct for the 
+          embedded hlist heads and the dev pointer.
+       */
 
        spin_lock(&rcv_lists_lock);
-       hlist_add_head_rcu(&rx_alldev_list->list, &rx_dev_list);
+       hlist_add_head_rcu(&rx_alldev_list.list, &rx_dev_list);
        spin_unlock(&rcv_lists_lock);
 
        if (stats_timer) {
@@ -678,7 +676,7 @@ static int can_rcv(struct sk_buff *skb, struct net_device *dev,
        rcu_read_lock();
 
        /* deliver the packet to sockets listening on all devices */
-       matches = can_rcv_filter(rx_alldev_list, skb);
+       matches = can_rcv_filter(&rx_alldev_list, skb);
 
        /* find receive list for this device */
        if ((d = find_dev_rcv_lists(dev)))
index 5eee8d8c55844206301d359fd3517729f1ec1582..90cc770e3fc4d89e98d46f4402ea3b6342307117 100644 (file)
@@ -52,7 +52,7 @@
 
 #include <linux/can.h>
 
-#define DNAME(dev) (dev)?dev->name:"any"
+#define DNAME(dev) ((dev) ? (dev)->name : "any")
 
 void can_debug_skb(struct sk_buff *skb);
 void can_debug_cframe(const char *msg, struct can_frame *cframe, ...);