Re: [PATCH 0/1] Recurse when searching for empty slots in resourcestrees

From: Linus Torvalds
Date: Tue Jun 16 2009 - 21:05:14 EST




On Tue, 16 Jun 2009, Linus Torvalds wrote:
>
> Can you try this patch?

Oops. As Jesse pointed out, there was no patch.

_This_ time.

Linus

---
kernel/resource.c | 13 ++++++++++---
1 files changed, 10 insertions(+), 3 deletions(-)

diff --git a/kernel/resource.c b/kernel/resource.c
index ac5f3a3..d9d7ede 100644
--- a/kernel/resource.c
+++ b/kernel/resource.c
@@ -140,6 +140,13 @@ __initcall(ioresources_init);

#endif /* CONFIG_PROC_FS */

+#define set_parent(x,p) __set_parent(__FUNCTION__, x, p)
+static void __set_parent(const char *fn, struct resource *x, struct resource *parent)
+{
+ WARN("%s: parent of '%s' is '%s'\n", fn, x->name, parent ? parent->name : "none");
+ x->parent = parent;
+}
+
/* Return the conflict entry if you can't request it */
static struct resource * __request_resource(struct resource *root, struct resource *new)
{
@@ -159,7 +166,7 @@ static struct resource * __request_resource(struct resource *root, struct resour
if (!tmp || tmp->start > end) {
new->sibling = tmp;
*p = new;
- new->parent = root;
+ set_parent(new, root);
return NULL;
}
p = &tmp->sibling;
@@ -395,13 +402,13 @@ static struct resource * __insert_resource(struct resource *parent, struct resou
break;
}

- new->parent = parent;
+ set_parent(new, parent);
new->sibling = next->sibling;
new->child = first;

next->sibling = NULL;
for (next = first; next; next = next->sibling)
- next->parent = new;
+ set_parent(next, new);

if (parent->child == first) {
parent->child = new;
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/