On Fri, 3 Feb 2012 17:20:56 +0900 Geunsik Lim <geunsik.lim@xxxxxxxxx> wrote: > struct memblock_region 'r' will not be initialized potentially > because of while statement's condition in __next_mem_pfn_range()function. > Initialize struct memblock_region data structure by default. > > Signed-off-by: Geunsik Lim <geunsik.lim@xxxxxxxxxxx> > --- > mm/memblock.c | 2 +- > 1 files changed, 1 insertions(+), 1 deletions(-) > > diff --git a/mm/memblock.c b/mm/memblock.c > index 77b5f22..867f5a2 100644 > --- a/mm/memblock.c > +++ b/mm/memblock.c > @@ -671,7 +671,7 @@ void __init_memblock __next_mem_pfn_range(int *idx, int nid, > unsigned long *out_end_pfn, int *out_nid) > { > struct memblock_type *type = &memblock.memory; > - struct memblock_region *r; > + struct memblock_region *r = &type->regions[*idx]; > > while (++*idx < type->cnt) { > r = &type->regions[*idx]; The following `if' test prevents any such dereference. Maybe you saw a compilation warning (I didn't). If so, unintialized_var() is one way of suppressing it. A better way is to reorganise the code (nicely). Often that option isn't available. -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/ Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>