From ad545f2854458f98498e0cfed136845ef029a115 Mon Sep 17 00:00:00 2001 From: Thomas Graf Date: Mon, 1 Apr 2013 11:16:34 +0200 Subject: [PATCH] genl: Update mt_id of cache ops when resolving genl id The cache layer uses the message type array stored in the cache ops to lookup which cache a message belongs to. Update to the the message array with the resolved generic netlink id to make it compatible with the caching API. Allows to use nl_cache_refill() and others for generic netlink based caches with dynamic generic netlink ids. Signed-off-by: Thomas Graf --- lib/genl/mngt.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/lib/genl/mngt.c b/lib/genl/mngt.c index 35bbb12..3648663 100644 --- a/lib/genl/mngt.c +++ b/lib/genl/mngt.c @@ -295,6 +295,10 @@ static int __genl_ops_resolve(struct nl_cache *ctrl, struct genl_ops *ops) family = genl_ctrl_search_by_name(ctrl, ops->o_name); if (family != NULL) { ops->o_id = genl_family_get_id(family); + + if (ops->o_cache_ops) + ops->o_cache_ops->co_msgtypes[0].mt_id = ops->o_id; + genl_family_put(family); return 0;