All of lore.kernel.org
 help / color / mirror / Atom feed
From: Ralf Baechle <ralf@linux-mips.org>
To: Manuel Lauss <manuel.lauss@googlemail.com>
Cc: Linux-MIPS <linux-mips@linux-mips.org>,
	Manuel Lauss <manuel.lauss@gmail.com>
Subject: Re: [PATCH v2] MIPS: Alchemy: fix dbdma ring destruction memory debugcheck.
Date: Wed, 27 Jan 2010 23:18:18 +0100	[thread overview]
Message-ID: <20100127221818.GB26426@linux-mips.org> (raw)
In-Reply-To: <1264534773-24909-1-git-send-email-manuel.lauss@gmail.com>

On Tue, Jan 26, 2010 at 08:39:33PM +0100, Manuel Lauss wrote:

> DBDMA descriptors need to be located at 32-byte aligned addresses;
> however kmalloc in conjunction with the SLAB allocator and 
> CONFIG_DEBUG_SLUB enabled doesn't deliver any.  The dbdma code works
> around that by allocating a larger area and realigning the start
> address within it.
> 
> When freeing a channel however this adjustment is not taken into
> account which results in an oops:
> 
> Kernel bug detected[#1]:
> [...]
> Call Trace:
> [<80186010>] cache_free_debugcheck+0x284/0x318
> [<801869d8>] kfree+0xe8/0x2a0
> [<8010b31c>] au1xxx_dbdma_chan_free+0x2c/0x7c
> [<80388dc8>] au1x_pcm_dbdma_free+0x34/0x4c
> [<80388fa8>] au1xpsc_pcm_close+0x28/0x38
> [<80383cb8>] soc_codec_close+0x14c/0x1cc
> [<8036dbb4>] snd_pcm_release_substream+0x60/0xac
> [<8036dc40>] snd_pcm_release+0x40/0xa0
> [<8018c7a8>] __fput+0x11c/0x228
> [<80188f60>] filp_close+0x7c/0x98
> [<80189018>] sys_close+0x9c/0xe4
> [<801022a0>] stack_done+0x20/0x3c
> 
> Fix this by recording the address delivered by kmalloc() and using
> it as parameter to kfree().
> 
> This fix is only necessary with the SLAB allocator and CONFIG_DEBUG_SLAB
> enabled;  non-debug SLAB, SLUB do return nicely aligned addresses,
> debug-enabled SLUB currently panics early in the boot process.

Queued for 2.6.34 - should this also go into 2.6.33?

Have you considered increasing the value ARCH_KMALLOC_MINALIGN which
defaults to 8?  Or your own slab cache of suitable alignment?  The latter
is more something for frequent allocations.

  Ralf

  reply	other threads:[~2010-01-27 22:18 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-01-26 19:39 [PATCH v2] MIPS: Alchemy: fix dbdma ring destruction memory debugcheck Manuel Lauss
2010-01-27 22:18 ` Ralf Baechle [this message]
2010-01-28  8:23   ` Manuel Lauss
2010-01-28  8:23     ` Manuel Lauss
2010-01-28 11:22     ` Ralf Baechle

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=20100127221818.GB26426@linux-mips.org \
    --to=ralf@linux-mips.org \
    --cc=linux-mips@linux-mips.org \
    --cc=manuel.lauss@gmail.com \
    --cc=manuel.lauss@googlemail.com \
    /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.