summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorStephen Rothwell <sfr@canb.auug.org.au>2009-04-23 15:09:49 +1000
committerStephen Rothwell <sfr@canb.auug.org.au>2009-04-23 15:09:49 +1000
commitedd6104e1abb42f30b8e477f6c4dcd0773d54890 (patch)
treef6c2b659048ae09f3ac8a96bdcfc3f73f9621960 /drivers
parent61d705e865ef4fb5a5538b434d7cb962923f7d69 (diff)
parentb525bd3e1944c91f711f113b1d27fbdd1be97d77 (diff)
Merge commit 'kmemleak/kmemleak'
Conflicts: lib/Kconfig.debug
Diffstat (limited to 'drivers')
-rw-r--r--drivers/char/vt.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/drivers/char/vt.c b/drivers/char/vt.c
index 08151d4de489..961c1a788c61 100644
--- a/drivers/char/vt.c
+++ b/drivers/char/vt.c
@@ -104,6 +104,7 @@
#include <linux/io.h>
#include <asm/system.h>
#include <linux/uaccess.h>
+#include <linux/kmemleak.h>
#define MAX_NR_CON_DRIVER 16
@@ -2880,6 +2881,12 @@ static int __init con_init(void)
*/
for (currcons = 0; currcons < MIN_NR_CONSOLES; currcons++) {
vc_cons[currcons].d = vc = alloc_bootmem(sizeof(struct vc_data));
+ /*
+ * Kmemleak does not track the memory allocated via
+ * alloc_bootmem() but this block contains pointers to
+ * other blocks allocated via kmalloc.
+ */
+ kmemleak_alloc(vc, sizeof(struct vc_data), 1, GFP_ATOMIC);
INIT_WORK(&vc_cons[currcons].SAK_work, vc_SAK);
visual_init(vc, currcons, 1);
vc->vc_screenbuf = (unsigned short *)alloc_bootmem(vc->vc_screenbuf_size);