- patches.arch/x86_mce_intel_decode_physical_address.patch:
[linux-flexiantxendom0-3.2.10.git] / net / netfilter / nf_log.c
index 015725a..7df37fd 100644 (file)
@@ -52,7 +52,8 @@ int nf_log_register(u_int8_t pf, struct nf_logger *logger)
        } else {
                /* register at end of list to honor first register win */
                list_add_tail(&logger->list[pf], &nf_loggers_l[pf]);
-               llog = rcu_dereference(nf_loggers[pf]);
+               llog = rcu_dereference_protected(nf_loggers[pf],
+                                                lockdep_is_held(&nf_log_mutex));
                if (llog == NULL)
                        rcu_assign_pointer(nf_loggers[pf], logger);
        }
@@ -70,7 +71,8 @@ void nf_log_unregister(struct nf_logger *logger)
 
        mutex_lock(&nf_log_mutex);
        for (i = 0; i < ARRAY_SIZE(nf_loggers); i++) {
-               c_logger = rcu_dereference(nf_loggers[i]);
+               c_logger = rcu_dereference_protected(nf_loggers[i],
+                                                    lockdep_is_held(&nf_log_mutex));
                if (c_logger == logger)
                        rcu_assign_pointer(nf_loggers[i], NULL);
                list_del(&logger->list[i]);