netgraph7: rewrite netgraph core stage 2/many.
authorNuno Antunes <nuno.antunes@gmail.com>
Mon, 6 Aug 2012 22:53:07 +0000 (23:53 +0100)
committerNuno Antunes <nuno.antunes@gmail.com>
Thu, 4 Oct 2012 13:01:36 +0000 (14:01 +0100)
* Get rid of NG_ALLOC_HOOK and NG_ALLOC_NODE macros.

* kmalloc() with M_WAITOK will never return NULL, so don't check for that
  case.

sys/netgraph7/netgraph/ng_base.c

index fcdbcb7..5ba86e3 100644 (file)
@@ -50,7 +50,6 @@
 #include <sys/systm.h>
 #include <sys/ctype.h>
 #include <sys/errno.h>
-/*#include <sys/kdb.h>*/
 #include <sys/kernel.h>
 #include <sys/ktr.h>
 #include <sys/limits.h>
@@ -211,13 +210,6 @@ MALLOC_DEFINE(M_NETGRAPH_MSG, "netgraph_msg", "netgraph name storage");
 
 /* Should not be visible outside this file */
 
-#define _NG_ALLOC_HOOK(hook) \
-       hook = kmalloc(sizeof(*hook), M_NETGRAPH_HOOK, \
-           M_WAITOK | M_NULLOK | M_ZERO)
-#define _NG_ALLOC_NODE(node) \
-       node = kmalloc(sizeof(*node), M_NETGRAPH_NODE, \
-           M_WAITOK | M_NULLOK | M_ZERO)
-
 #define        NG_QUEUE_LOCK_INIT(n)                   \
        mtx_init(&(n)->q_mtx)
 #define        NG_QUEUE_LOCK(n)                        \
@@ -231,9 +223,6 @@ MALLOC_DEFINE(M_NETGRAPH_MSG, "netgraph_msg", "netgraph name storage");
 #define        NG_WORKLIST_UNLOCK()                    \
        mtx_unlock(&ng_worklist_mtx)
 
-#define NG_ALLOC_HOOK(hook) _NG_ALLOC_HOOK(hook)
-#define NG_ALLOC_NODE(node) _NG_ALLOC_NODE(node)
-
 #define NG_FREE_HOOK(hook) do { kfree((hook), M_NETGRAPH_HOOK); } while (0)
 #define NG_FREE_NODE(node) do { kfree((node), M_NETGRAPH_NODE); } while (0)
 
@@ -513,11 +502,7 @@ ng_make_node_common(struct ng_type *type, node_p *nodepp)
        }
 
        /* Make a node and try attach it to the type */
-       NG_ALLOC_NODE(node);
-       if (node == NULL) {
-               TRAP_ERROR();
-               return (ENOMEM);
-       }
+       node = kmalloc(sizeof(*node), M_NETGRAPH_NODE, M_WAITOK | M_ZERO);
        node->nd_type = type;
        NG_NODE_REF(node);                              /* note reference */
        type->refs++;
@@ -878,11 +863,7 @@ ng_add_hook(node_p node, const char *name, hook_p *hookp)
        }
 
        /* Allocate the hook and link it up */
-       NG_ALLOC_HOOK(hook);
-       if (hook == NULL) {
-               TRAP_ERROR();
-               return (ENOMEM);
-       }
+       hook = kmalloc(sizeof(*hook), M_NETGRAPH_HOOK, M_WAITOK | M_ZERO);
        hook->hk_refs = 1;              /* add a reference for us to return */
        hook->hk_flags = HK_INVALID;
        hook->hk_peer = &ng_deadhook;   /* start off this way */
@@ -1284,13 +1265,7 @@ ng_con_nodes(item_p item, node_p node, const char *name,
        if ((error = ng_add_hook(node, name, &hook)))  /* gives us a ref */
                return (error);
        /* Allocate the other hook and link it up */
-       NG_ALLOC_HOOK(hook2);
-       if (hook2 == NULL) {
-               TRAP_ERROR();
-               ng_destroy_hook(hook);  /* XXX check ref counts so far */
-               NG_HOOK_UNREF(hook);    /* including our ref */
-               return (ENOMEM);
-       }
+       hook2 = kmalloc(sizeof(*hook2), M_NETGRAPH_HOOK, M_WAITOK | M_ZERO);
        hook2->hk_refs = 1;             /* start with a reference for us. */
        hook2->hk_flags = HK_INVALID;
        hook2->hk_peer = hook;          /* Link the two together */