mac80211: move netdev queue enabling to correct spot
[safe/jmp/linux-2.6] / net / netfilter / xt_NFQUEUE.c
index f28f6a5..12dcd70 100644 (file)
@@ -28,6 +28,7 @@ MODULE_ALIAS("ip6t_NFQUEUE");
 MODULE_ALIAS("arpt_NFQUEUE");
 
 static u32 jhash_initval __read_mostly;
+static bool rnd_inited __read_mostly;
 
 static unsigned int
 nfqueue_tg(struct sk_buff *skb, const struct xt_target_param *par)
@@ -90,6 +91,10 @@ static bool nfqueue_tg_v1_check(const struct xt_tgchk_param *par)
        const struct xt_NFQ_info_v1 *info = par->targinfo;
        u32 maxid;
 
+       if (unlikely(!rnd_inited)) {
+               get_random_bytes(&jhash_initval, sizeof(jhash_initval));
+               rnd_inited = true;
+       }
        if (info->queues_total == 0) {
                pr_err("NFQUEUE: number of total queues is 0\n");
                return false;
@@ -135,7 +140,6 @@ static struct xt_target nfqueue_tg_reg[] __read_mostly = {
 
 static int __init nfqueue_tg_init(void)
 {
-       get_random_bytes(&jhash_initval, sizeof(jhash_initval));
        return xt_register_targets(nfqueue_tg_reg, ARRAY_SIZE(nfqueue_tg_reg));
 }