On 2025/5/22 21:19, Florian Westphal wrote:
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;
}
Yeah, it's simpler and better. Thanks!