aboutsummaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorDavid S. Miller <davem@davemloft.net>2010-04-10 23:24:22 -0400
committerDavid S. Miller <davem@davemloft.net>2010-04-13 02:46:17 -0400
commit25ad403f67d7673f38a473ec138d240804785ae3 (patch)
tree8ec027a5cd22ad1a2a53e630bae74e356490d3e9 /arch
parent8b8d8e2840a440d62e8dc0ef36ba433b26f70d32 (diff)
sparc64: Add kmemleak annotation to sun4v_build_virq()
The only reference we store to this memory is in the form of a physical address, so kmemleak can't see it. Add a kmemleak_not_leak() annotation. It's probably useful to be able to look at a dump of these things either via debugfs or similar, and thus we could at some point store them in some kind of table and therefore get rid of this annotation. Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'arch')
-rw-r--r--arch/sparc/kernel/irq_64.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/arch/sparc/kernel/irq_64.c b/arch/sparc/kernel/irq_64.c
index af5c76c04e99..454ce3a25273 100644
--- a/arch/sparc/kernel/irq_64.c
+++ b/arch/sparc/kernel/irq_64.c
@@ -648,6 +648,14 @@ unsigned int sun4v_build_virq(u32 devhandle, unsigned int devino)
648 bucket = kzalloc(sizeof(struct ino_bucket), GFP_ATOMIC); 648 bucket = kzalloc(sizeof(struct ino_bucket), GFP_ATOMIC);
649 if (unlikely(!bucket)) 649 if (unlikely(!bucket))
650 return 0; 650 return 0;
651
652 /* The only reference we store to the IRQ bucket is
653 * by physical address which kmemleak can't see, tell
654 * it that this object explicitly is not a leak and
655 * should be scanned.
656 */
657 kmemleak_not_leak(bucket);
658
651 __flush_dcache_range((unsigned long) bucket, 659 __flush_dcache_range((unsigned long) bucket,
652 ((unsigned long) bucket + 660 ((unsigned long) bucket +
653 sizeof(struct ino_bucket))); 661 sizeof(struct ino_bucket)));