On Thu, 2007-11-15 at 21:54 +0800, WANG Cong wrote: > Since sparse_index_alloc() can return NULL on memory allocation failure, > we must deal with the failure condition when calling it. > > Signed-off-by: WANG Cong <[EMAIL PROTECTED]> > Cc: Christoph Lameter <[EMAIL PROTECTED]> > Cc: Rik van Riel <[EMAIL PROTECTED]> > > --- > > diff --git a/Makefile b/Makefile > diff --git a/mm/sparse.c b/mm/sparse.c > index e06f514..d245e59 100644 > --- a/mm/sparse.c > +++ b/mm/sparse.c > @@ -83,6 +83,8 @@ static int __meminit sparse_index_init(unsigned long > section_nr, int nid) > return -EEXIST; > > section = sparse_index_alloc(nid); > + if (!section) > + return -ENOMEM; > /* > * This lock keeps two different sections from > * reallocating for the same index
Oddly enough, sparse_add_one_section() doesn't seem to like to check its allocations. The usemap is checked, but not freed on error. If you want to fix this up, I think it needs a little more love than just two lines. Do you want to try to add some actual error handling to sparse_add_one_section()? -- Dave - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/