浏览代码

pcmcia: allow for extension of resource interval

If a new interval overlaps or extends an existing interval in
add_interval(), do not fail, but extend the existing interval.

Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net>
Dominik Brodowski 15 年之前
父节点
当前提交
f309cb3e4f
共有 1 个文件被更改,包括 4 次插入2 次删除
  1. 4 2
      drivers/pcmcia/rsrc_nonstatic.c

+ 4 - 2
drivers/pcmcia/rsrc_nonstatic.c

@@ -124,8 +124,10 @@ static int add_interval(struct resource_map *map, u_long base, u_long num)
 	struct resource_map *p, *q;
 
 	for (p = map; ; p = p->next) {
-		if ((p != map) && (p->base+p->num-1 >= base))
-			return -1;
+		if ((p != map) && (p->base+p->num >= base)) {
+			p->num = max(num + base - p->base, p->num);
+			return 0;
+		}
 		if ((p->next == map) || (p->next->base > base+num-1))
 			break;
 	}