From: tip-bot for Venkatesh Pallipadi on
Commit-ID: 6a4f3b523779b67e7d560ed42652f8a59f2f9782
Gitweb: http://git.kernel.org/tip/6a4f3b523779b67e7d560ed42652f8a59f2f9782
Author: Venkatesh Pallipadi <venki(a)google.com>
AuthorDate: Thu, 10 Jun 2010 17:45:01 -0700
Committer: H. Peter Anvin <hpa(a)linux.intel.com>
CommitDate: Fri, 11 Jun 2010 14:12:22 -0700

x86, pat: Proper init of memtype subtree_max_end

subtree_max_end that was recently added to struct memtype was not getting
properly initialized resulting in

WARNING: kmemcheck: Caught 64-bit read from uninitialized memory
in memtype_rb_augment_cb()
reported here
https://bugzilla.kernel.org/show_bug.cgi?id=16092

This change fixes the problem.

Reported-by: Christian Casteyde <casteyde.christian(a)free.fr>
Tested-by: Christian Casteyde <casteyde.christian(a)free.fr>
Signed-off-by: Venkatesh Pallipadi <venki(a)google.com>
LKML-Reference: <1276217101-11515-1-git-send-email-venki(a)google.com>
Signed-off-by: H. Peter Anvin <hpa(a)linux.intel.com>
Cc: Suresh Siddha <suresh.b.siddha(a)intel.com>
---
arch/x86/mm/pat.c | 2 +-
arch/x86/mm/pat_rbtree.c | 1 +
2 files changed, 2 insertions(+), 1 deletions(-)

diff --git a/arch/x86/mm/pat.c b/arch/x86/mm/pat.c
index acc15b2..64121a1 100644
--- a/arch/x86/mm/pat.c
+++ b/arch/x86/mm/pat.c
@@ -302,7 +302,7 @@ int reserve_memtype(u64 start, u64 end, unsigned long req_type,
return -EINVAL;
}

- new = kmalloc(sizeof(struct memtype), GFP_KERNEL);
+ new = kzalloc(sizeof(struct memtype), GFP_KERNEL);
if (!new)
return -ENOMEM;

diff --git a/arch/x86/mm/pat_rbtree.c b/arch/x86/mm/pat_rbtree.c
index f537087..f20eeec 100644
--- a/arch/x86/mm/pat_rbtree.c
+++ b/arch/x86/mm/pat_rbtree.c
@@ -226,6 +226,7 @@ int rbt_memtype_check_insert(struct memtype *new, unsigned long *ret_type)
if (ret_type)
new->type = *ret_type;

+ new->subtree_max_end = new->end;
memtype_rb_insert(&memtype_rbroot, new);
}
return err;
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo(a)vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/