All of lore.kernel.org
 help / color / mirror / Atom feed
From: Andrew Morton <akpm@linux-foundation.org>
To: kirjanov@gmail.com
Cc: joern@logfs.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH 2/2] lib/btree: Fix possible NULL pointer dereference
Date: Thu, 13 May 2010 13:19:07 -0700	[thread overview]
Message-ID: <20100513131907.a3373db2.akpm@linux-foundation.org> (raw)
In-Reply-To: <20100512212026.GA5513@coldcone>

On Thu, 13 May 2010 01:20:27 +0400
"Denis Kirjanov <kirjanov@gmail.com" <kirjanov@gmail.com> wrote:

> mempool_alloc can return null in atomic case.
> 
> Signed-off-by: Denis Kirjanov <kirjanov@gmail.com>
> ---
> diff --git a/lib/btree.c b/lib/btree.c
> index 41859a8..542c904 100644
> --- a/lib/btree.c
> +++ b/lib/btree.c
> @@ -95,7 +94,8 @@ static unsigned long *btree_node_alloc(struct btree_head *head, gfp_t gfp)
>  	unsigned long *node;
>  
>  	node = mempool_alloc(head->mempool, gfp);
> -	memset(node, 0, NODESIZE);
> +	if (likely(node))
> +		memset(node, 0, NODESIZE);
>  	return node;
>  }

hm, why is btree.c using mempools?  mempools are only appropriate when
it is known that objects will become available if the allocating task
simply waits for a while.  Typically, things like BIOs and
request-structs.  Simply waiting for the disk to complete some IO will
cause some objects to be returned to the mempool.

If waiting-and-doing-nothing fails to cause objects to be returned to
the pool then the mempool code can lock up.




  reply	other threads:[~2010-05-13 20:19 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-05-12 21:20 [PATCH 2/2] lib/btree: Fix possible NULL pointer dereference Denis Kirjanov <kirjanov@gmail.com
2010-05-13 20:19 ` Andrew Morton [this message]
2010-05-14 17:41   ` Jörn Engel

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20100513131907.a3373db2.akpm@linux-foundation.org \
    --to=akpm@linux-foundation.org \
    --cc=joern@logfs.org \
    --cc=kirjanov@gmail.com \
    --cc=linux-kernel@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.