Fabian Hugelshofer wrote: > @@ -384,8 +378,11 @@ ctnetlink_fill_info(struct sk_buff *skb, u32 pid, u32 seq, > nest_parms = nla_nest_start(skb, CTA_TUPLE_REPLY | NLA_F_NESTED); > if (!nest_parms) > goto nla_put_failure; > - if (ctnetlink_dump_tuples(skb, tuple(ct, IP_CT_DIR_REPLY)) < 0) > + rcu_read_lock(); > + if (ctnetlink_dump_tuples(skb, tuple(ct, IP_CT_DIR_REPLY)) < 0) { > + rcu_read_unlock(); > goto nla_put_failure; ^^^ Would it look nicer if you add a new label 'nla_put_failure_unlock'? nla_put_failure_unlock: read_rcu_unlock(); nlmsg_failure: nla_put_failure: nlmsg_trim(skb, b); return -1; Or much simpler, just call read_rcu_unlock() before the first nla_nest_start() so that this results in much smaller patch: nlmsg_failure: nla_put_failure: read_rcu_unlock(); <--- nlmsg_trim(skb, b); return -1; BTW, please, add a short description to your patches and the 'Signed-off-by' field. -- "Los honestos son inadaptados sociales" -- Les Luthiers -- To unsubscribe from this list: send the line "unsubscribe netfilter-devel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html