diff -Naur iproute2-original/lib/ll_map.c iproute2-patched/lib/ll_map.c --- iproute2-original/lib/ll_map.c 2008-08-05 19:15:56.000000000 +0000 +++ iproute2-patched/lib/ll_map.c 2008-08-05 22:22:36.000000000 +0000 @@ -23,6 +23,7 @@ #include "ll_map.h" extern unsigned int if_nametoindex (const char *); +static int ifacecache=0; struct idxmap { @@ -160,6 +161,10 @@ int ll_init_map(struct rtnl_handle *rth) { + if (ifacecache == 1) + return 0; + ifacecache = 1; + if (rtnl_wilddump_request(rth, AF_UNSPEC, RTM_GETLINK) < 0) { perror("Cannot send dump request"); exit(1);