ef3021d
--- libnl-1.1/lib/route/link.c.BAD	2010-02-27 08:43:45.671957250 -0600
ef3021d
+++ libnl-1.1/lib/route/link.c	2010-02-28 10:23:42.732957755 -0600
ef3021d
@@ -364,14 +364,9 @@
ef3021d
 		link->ce_mask |= LINK_ATTR_QDISC;
ef3021d
 	}
ef3021d
 
ef3021d
-	if (tb[IFLA_MAP]) {
ef3021d
-		struct rtnl_link_ifmap *map =  nla_data(tb[IFLA_MAP]);
ef3021d
-		link->l_map.lm_mem_start = map->mem_start;
ef3021d
-		link->l_map.lm_mem_end   = map->mem_end;
ef3021d
-		link->l_map.lm_base_addr = map->base_addr;
ef3021d
-		link->l_map.lm_irq       = map->irq;
ef3021d
-		link->l_map.lm_dma       = map->dma;
ef3021d
-		link->l_map.lm_port      = map->port;
ef3021d
+        if (tb[IFLA_MAP]) {
ef3021d
+		nla_memcpy(&link->l_map, tb[IFLA_MAP], 
ef3021d
+			   sizeof(struct rtnl_link_ifmap));
ef3021d
 		link->ce_mask |= LINK_ATTR_MAP;
ef3021d
 	}
ef3021d