/* * netsniff-ng - the packet sniffing beast * Copyright 2011 Daniel Borkmann, rewritten * Copyright 1991-2007 Kawahara Lab., Kyoto University * Copyright 2000-2005 Shikano Lab., Nara Institute of Science and Technology * Copyright 2005-2007 Julius project team, Nagoya Institute of Technology * All rights reserved * Subject to the GPL, version 2. */ #ifndef PATRICIA_H #define PATRICIA_H #include #include "built_in.h" struct patricia_node { void *key; size_t klen; struct sockaddr_storage *addr; size_t alen; union { int data; int thres_bit; } value; struct patricia_node *l, *r; } __cacheline_aligned; extern int ptree_search_data_nearest(void *str, size_t sstr, struct sockaddr_storage *addr, size_t *alen, struct patricia_node *root); extern int ptree_search_data_exact(void *str, size_t sstr, struct sockaddr_storage *addr, size_t *alen, struct patricia_node *root); extern int ptree_add_entry(void *str, size_t sstr, int data, struct sockaddr_storage *addr, size_t alen, struct patricia_node **root); extern void ptree_del_entry(void *str, size_t sstr, struct patricia_node **root); extern void ptree_get_key(int data, struct patricia_node *node, struct patricia_node **wanted); extern void ptree_get_key_addr(struct sockaddr_storage *addr, size_t alen, struct patricia_node *node, struct patricia_node **wanted); extern void ptree_display(struct patricia_node *node, int level); extern void ptree_free(struct patricia_node *root); #endif /* PATRICIA_H */ f='/cgit.cgi/linux/net-next.git/refs/?id=2c94b53738549d81dc7464a32117d1f5112c64d3'>refslogtreecommitdiff
diff options
context:
space:
mode:
authorTim Bingham <tbingham@akamai.com>2016-04-29 13:30:23 -0400
committerDavid S. Miller <davem@davemloft.net>2016-05-01 21:34:01 -0400
commit2c94b53738549d81dc7464a32117d1f5112c64d3 (patch)
treeb69ad831b2db75338433fadc9e27b4380d46b859
parentefe790502be85c60daa65c8aa51f05c333186e12 (diff)
net: Implement net_dbg_ratelimited() for CONFIG_DYNAMIC_DEBUG case
Prior to commit d92cff89a0c8 ("net_dbg_ratelimited: turn into no-op when !DEBUG") the implementation of net_dbg_ratelimited() was buggy for both the DEBUG and CONFIG_DYNAMIC_DEBUG cases. The bug was that net_ratelimit() was being called and, despite returning true, nothing was being printed to the console. This resulted in messages like the following - "net_ratelimit: %d callbacks suppressed" with no other output nearby. After commit d92cff89a0c8 ("net_dbg_ratelimited: turn into no-op when !DEBUG") the bug is fixed for the DEBUG case. However, there's no output at all for CONFIG_DYNAMIC_DEBUG case. This patch restores debug output (if enabled) for the CONFIG_DYNAMIC_DEBUG case. Add a definition of net_dbg_ratelimited() for the CONFIG_DYNAMIC_DEBUG case. The implementation takes care to check that dynamic debugging is enabled before calling net_ratelimit(). Fixes: d92cff89a0c8 ("net_dbg_ratelimited: turn into no-op when !DEBUG") Signed-off-by: Tim Bingham <tbingham@akamai.com> Signed-off-by: David S. Miller <davem@davemloft.net>