From 8c8fb912aff1c123809a7fbdabf4bd1f219f5b6d Mon Sep 17 00:00:00 2001 From: Dominik Brodowski Date: Wed, 17 Feb 2010 14:35:33 +0100 Subject: [PATCH] --- yaml --- r: 182010 b: refs/heads/master c: f309cb3e4fe79a68cb2fdedfb8a8a950a2cfe490 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/drivers/pcmcia/rsrc_nonstatic.c | 6 ++++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/[refs] b/[refs] index 0f0f927037ef..d06375d85f78 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: d801c1409ef7d45339cbe8ac9de28ade6ed4699a +refs/heads/master: f309cb3e4fe79a68cb2fdedfb8a8a950a2cfe490 diff --git a/trunk/drivers/pcmcia/rsrc_nonstatic.c b/trunk/drivers/pcmcia/rsrc_nonstatic.c index 19cecb539759..a06881c3b962 100644 --- a/trunk/drivers/pcmcia/rsrc_nonstatic.c +++ b/trunk/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; }