|
@@ -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);
|