On Mon, Jul 23, 2018 at 11:42:28AM +0200, Florian Westphal wrote: > Pablo Neira Ayuso <pablo@xxxxxxxxxxxxx> wrote: > > > As David pointed out, once ->start() returns 0 we set cb_running, i.e. > > > only after successful ->start() netlink core will call ->dump() again. > > > > > > So I see no problem setting ->data to onstack cookie and then > > > duplicating it to heap via kmemdup in ->start(). > > > > > > As far as I can see netlink core offers all functionality already, > > > so we only need to switch netfilter to make use of it. > > > > > > If you disagree please let me know, otherwise I will cook up > > > a patch along this pattern for net/netfilter/*. > > > > Why not just call ->done from netlink_dump_start() when it fails? > > Not sure thats safe for all users, we will also still need to call > it in nft_netlink_dump_start and we need to play guess game wrt > EINTR (which can mean 'dump was now started, do not send ack'). We can also add another scratchpad area, similar to the ->cb[x] area that can be initialized before netlink_dump_start()? So we don't need the data pointer. By passing the array of attributes, we'll need to do attribute parsing over and over again from each netlink_dump() call. -- 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