aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorMichael Ellerman <michael@ellerman.id.au>2007-06-19 16:08:00 +1000
committerPaul Mackerras <paulus@samba.org>2007-07-10 21:53:47 +1000
commit6a281856c02d2291df2f7d9df5bfdee2e7bdd747 (patch)
treef9dee0818d797edef6fdb59ddeb069883a7b191c /include
parentd3b814bb1e8b0c63449a3430196c20cbe24a3e67 (diff)
downloadkernel_samsung_crespo-6a281856c02d2291df2f7d9df5bfdee2e7bdd747.zip
kernel_samsung_crespo-6a281856c02d2291df2f7d9df5bfdee2e7bdd747.tar.gz
kernel_samsung_crespo-6a281856c02d2291df2f7d9df5bfdee2e7bdd747.tar.bz2
[POWERPC] Add a warning to help trackdown device_node refcounting bugs
When the refcount for a device node goes to 0, we call the destructor - of_node_release(). This should only happen if we've already detached the node from the device tree. So add a flag OF_DETACHED which tracks detached-ness, and if we find ourselves in of_node_release() without it set, issue a warning and don't free the device_node. To avoid warning continuously reinitialise the kref to a sane value. Signed-off-by: Michael Ellerman <michael@ellerman.id.au> Signed-off-by: Paul Mackerras <paulus@samba.org>
Diffstat (limited to 'include')
-rw-r--r--include/asm-powerpc/prom.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/include/asm-powerpc/prom.h b/include/asm-powerpc/prom.h
index f1006b9..1632baa 100644
--- a/include/asm-powerpc/prom.h
+++ b/include/asm-powerpc/prom.h
@@ -99,6 +99,7 @@ extern struct device_node *of_chosen;
/* flag descriptions */
#define OF_DYNAMIC 1 /* node and properties were allocated via kmalloc */
+#define OF_DETACHED 2 /* node has been detached from the device tree */
static inline int of_node_check_flag(struct device_node *n, unsigned long flag)
{