* long term mutex. The handler must provide an an outfn() to accept packets
* for queueing and must reinject all packets it receives, no matter what.
*/
* long term mutex. The handler must provide an an outfn() to accept packets
* for queueing and must reinject all packets it receives, no matter what.
*/
static DEFINE_MUTEX(queue_handler_mutex);
/* return EBUSY when somebody else is registered, return EEXIST if the
* same handler is registered, return 0 in case of success. */
static DEFINE_MUTEX(queue_handler_mutex);
/* return EBUSY when somebody else is registered, return EEXIST if the
* same handler is registered, return 0 in case of success. */
if (queue_handler[pf] == qh)
rcu_assign_pointer(queue_handler[pf], NULL);
}
if (queue_handler[pf] == qh)
rcu_assign_pointer(queue_handler[pf], NULL);
}
struct net_device *indev,
struct net_device *outdev,
int (*okfn)(struct sk_buff *),
struct net_device *indev,
struct net_device *outdev,
int (*okfn)(struct sk_buff *),
struct net_device *indev,
struct net_device *outdev,
int (*okfn)(struct sk_buff *),
struct net_device *indev,
struct net_device *outdev,
int (*okfn)(struct sk_buff *),