Lance Yang <lance.yang@xxxxxxxxx> wrote: > Does this helper look correct? Yes, but ... > /** > * nf_log_is_registered - Check if NF_LOG is registered for a protocol > * family > * > * @pf: protocol family (e.g., NFPROTO_IPV4) > * > * Returns true if NF_LOG is registered, false otherwise. > */ > bool nf_log_is_registered(int pf) > { > struct nf_logger *logger; > > logger = nf_logger_find_get(pf, NF_LOG_TYPE_LOG); > if (logger) { > nf_logger_put(pf, NF_LOG_TYPE_LOG); > return true; > } > > logger = nf_logger_find_get(pf, NF_LOG_TYPE_ULOG); > if (logger) { > nf_logger_put(pf, NF_LOG_TYPE_ULOG); > return true; > } > > return false; > } Why not simply do: bool nf_log_is_registered(int pf) { int i; for (i = 0; i < NF_LOG_TYPE_MAX; i++) { if (rcu_access_pointer(loggers[pf][i])) return true; } return false; } ?