All of lore.kernel.org
 help / color / mirror / Atom feed
From: Johannes Weiner <hannes@cmpxchg.org>
To: Ivan Kokshaysky <ink@jurassic.park.msu.ru>
Cc: Nick Piggin <npiggin@suse.de>,
	Andrew Morton <akpm@linux-foundation.org>,
	Richard Henderson <rth@twiddle.net>,
	linux-kernel@vger.kernel.org
Subject: Re: [PATCH] alpha: fix vmalloc breakage
Date: Mon, 12 Jan 2009 00:04:30 +0100	[thread overview]
Message-ID: <20090111230430.GA17873@cmpxchg.org> (raw)
In-Reply-To: <20090107230144.GA30170@jurassic.park.msu.ru>

On Thu, Jan 08, 2009 at 02:01:44AM +0300, Ivan Kokshaysky wrote:
> On alpha, we have to map some stuff in the VMALLOC space very
> early in the boot process (to make SRM console callbacks work
> and so on, see arch/alpha/mm/init.c). For old VM allocator,
> we just manually placed a vm_struct onto the global vmlist
> and this worked for ages.
> Unfortunately, the new allocator isn't aware of this, so it constantly
> tries to allocate the VM space which is already in use, making vmalloc
> on alpha defunct.
> 
> This patch forces KVA to import vmlist entries on init.
> 
> Signed-off-by: Ivan Kokshaysky <ink@jurassic.park.msu.ru>
> ---
>  mm/vmalloc.c |   13 +++++++++++++
>  1 files changed, 13 insertions(+), 0 deletions(-)
> 
> diff --git a/mm/vmalloc.c b/mm/vmalloc.c
> index c5db9a7..0dd9c2e 100644
> --- a/mm/vmalloc.c
> +++ b/mm/vmalloc.c
> @@ -24,6 +24,7 @@
>  #include <linux/rbtree.h>
>  #include <linux/radix-tree.h>
>  #include <linux/rcupdate.h>
> +#include <linux/bootmem.h>
>  
>  #include <asm/atomic.h>
>  #include <asm/uaccess.h>
> @@ -984,6 +985,8 @@ EXPORT_SYMBOL(vm_map_ram);
>  
>  void __init vmalloc_init(void)
>  {
> +	struct vmap_area *va;
> +	struct vm_struct *tmp;
>  	int i;
>  
>  	for_each_possible_cpu(i) {
> @@ -996,6 +999,16 @@ void __init vmalloc_init(void)
>  		vbq->nr_dirty = 0;
>  	}
>  
> +	/* Import existing vmlist entries. */
> +	for (tmp = vmlist; tmp; tmp = tmp->next) {
> +		va = alloc_bootmem(sizeof(struct vmap_area));
> +		if (!va)
> +			break;

You don't need this check, alloc_bootmem() panics when it fails.

	Hannes

  reply	other threads:[~2009-01-11 23:04 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-01-07 23:01 [PATCH] alpha: fix vmalloc breakage Ivan Kokshaysky
2009-01-11 23:04 ` Johannes Weiner [this message]
2009-01-12 11:35   ` Ivan Kokshaysky

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=20090111230430.GA17873@cmpxchg.org \
    --to=hannes@cmpxchg.org \
    --cc=akpm@linux-foundation.org \
    --cc=ink@jurassic.park.msu.ru \
    --cc=linux-kernel@vger.kernel.org \
    --cc=npiggin@suse.de \
    --cc=rth@twiddle.net \
    /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.