lkml.org 
[lkml]   [2005]   [Mar]   [25]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
Date
From
SubjectRe: [PATCH 2.6.11] aoe [5/12]: don't try to free null bufpool
On Thu, 24 Mar 2005, Arjan van de Ven wrote:

> On Thu, 2005-03-24 at 09:04 -0800, ecashin@noserose.net wrote:
> > Arjan van de Ven <arjan@infradead.org> writes:
> >
> > > On Thu, 2005-03-24 at 07:17 -0800, ecashin@noserose.net wrote:
> > >> don't try to free null bufpool
> > >
> > > in linux there is a "rule" that all memory free routines are supposed to
> > > also accept NULL as argument, so I think this patch is not needed (and
> > > even wrong)
> > >
> >
> > Hmm. The mm/mempool.c:mempool_destroy function immediately
> > dereferences the pointer passed to it:
> >
> > void mempool_destroy(mempool_t *pool)
> > {
> > if (pool->curr_nr != pool->min_nr)
> > BUG(); /* There were outstanding elements */
> > free_pool(pool);
> > }
> >
> > ... so I'm not sure mempool_destroy fits the rule. Are you suggesting
> > that the patch should instead modify mempool_destroy?
>
> hmm perhaps... Jens?
>

Having mempool_destroy() be the one that checks seems safer, then callers
won't forget to check - easier to just check in one place.
If that's what you want, then here's a patch. If this is acceptable I can
create another one that removes the (then pointless) NULL checks from all
callers - let me know if that's wanted.

Signed-off-by: Jesper Juhl <juhl-lkml@dif.dk>

--- linux-2.6.12-rc1-mm3-orig/mm/mempool.c 2005-03-21 23:12:43.000000000 +0100
+++ linux-2.6.12-rc1-mm3/mm/mempool.c 2005-03-25 15:34:04.000000000 +0100
@@ -176,6 +176,8 @@ EXPORT_SYMBOL(mempool_resize);
*/
void mempool_destroy(mempool_t *pool)
{
+ if (!pool)
+ return;
if (pool->curr_nr != pool->min_nr)
BUG(); /* There were outstanding elements */
free_pool(pool);

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2005-04-06 13:30    [W:0.203 / U:0.120 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site