|
@@ -28,7 +28,7 @@
|
|
|
|
|
|
static DEFINE_SPINLOCK(afinfo_lock);
|
|
static DEFINE_SPINLOCK(afinfo_lock);
|
|
|
|
|
|
-struct nf_afinfo *nf_afinfo[NPROTO];
|
|
|
|
|
|
+struct nf_afinfo *nf_afinfo[NPROTO] __read_mostly;
|
|
EXPORT_SYMBOL(nf_afinfo);
|
|
EXPORT_SYMBOL(nf_afinfo);
|
|
|
|
|
|
int nf_register_afinfo(struct nf_afinfo *afinfo)
|
|
int nf_register_afinfo(struct nf_afinfo *afinfo)
|
|
@@ -54,7 +54,7 @@ EXPORT_SYMBOL_GPL(nf_unregister_afinfo);
|
|
* of skbuffs queued for userspace, and not deregister a hook unless
|
|
* of skbuffs queued for userspace, and not deregister a hook unless
|
|
* this is zero, but that sucks. Now, we simply check when the
|
|
* this is zero, but that sucks. Now, we simply check when the
|
|
* packets come back: if the hook is gone, the packet is discarded. */
|
|
* packets come back: if the hook is gone, the packet is discarded. */
|
|
-struct list_head nf_hooks[NPROTO][NF_MAX_HOOKS];
|
|
|
|
|
|
+struct list_head nf_hooks[NPROTO][NF_MAX_HOOKS] __read_mostly;
|
|
EXPORT_SYMBOL(nf_hooks);
|
|
EXPORT_SYMBOL(nf_hooks);
|
|
static DEFINE_SPINLOCK(nf_hook_lock);
|
|
static DEFINE_SPINLOCK(nf_hook_lock);
|
|
|
|
|