From: Andrew Morton <akpm@linux-foundation.org>
To: Anders Larsen <al@alarsen.net>
Cc: Iwo Mergler <iwo@call-direct.com.au>,
linux-mtd@lists.infradead.org,
Artem Bityutskiy <Artem.Bityutskiy@nokia.com>,
Ian McDonnell <ian@brightstareng.com>,
Nicolas Pitre <nico@fluxnic.net>,
linux-kernel@vger.kernel.org,
Matthias Kaehlcke <matthias@kaehlcke.net>,
David Woodhouse <dwmw2@infradead.org>,
Haavard Skinnemoen <hskinnemoen@atmel.com>
Subject: Re: [PATCH] Fix Oops with Atmel SPI
Date: Wed, 21 Apr 2010 15:24:10 -0700 [thread overview]
Message-ID: <20100421152410.0fea5e12.akpm@linux-foundation.org> (raw)
In-Reply-To: <1271231840l.5270l.0l@i-dmzi_al.realan.de>
On Wed, 14 Apr 2010 09:57:20 +0200
Anders Larsen <al@alarsen.net> wrote:
> On 2010-04-14 09:30:41, Iwo Mergler wrote:
> > I wouldn't recommend that. MTD erase blocks are 64K or more. In a typical
> > embedded system you will not be able to kmalloc that much memory after
> > a few day's of operation - the page pool gets fragmented.
>
> the original problem occurs with SPI flashes, which typically have a much
> smaller erase block size (and it only occurs when they are driven by an Atmel
> SoC SPI controller, hence the #ifdefs)
>
> > A possibly better approach is to arrange for that memory to get allocated
> > at driver start time.
>
> The buffer in question is indeed allocated _once_ (at the first write
> operation to the device) and only deallocated when the device is unmounted,
> so allocating it at driver load time wouldn't make much difference IMHO.
>
> I realize that my patch also affects e.g. parallel NOR flash on the system,
> but unless an MTD device is unmounted/remounted over and over again, I don't
> see a problem.
Attempting the allocation at mtdblock_writesect()-time is the least
reliable approach.
It would be much more reliable to perform the allocation at boot-time
or modprobe-time.
It would be 100% reliable to perform the allocation at compile time
too! If that's possible. A statically allocated buffer with
appropriate locking around it to prevent it from getting scribbled on.
Of course, this assumes that the buffer is shared between different
devices and it won't work at all if cache_data is really a "cache".
Ho-hum. Anyway, please do try to find a way to make this allocation
more reliable. It'd be pretty bad to have an embedded device go crump
when the user tries to save his data.
Also, the mdtblock code has changed a lot in this very area in the
linux-next tree (mtdblks[] has gone away). So please redo any patch
against linux-next.
Finally.. Wouldn't it be better to just fix the atmel SPI driver so
that it doesn't barf when handed vmalloc'ed memory? Who do we ridicule
about that? <checks, adds cc>
next prev parent reply other threads:[~2010-04-21 22:24 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-04-13 11:31 [PATCH] Fix Oops with Atmel SPI Anders Larsen
2010-04-14 7:30 ` Iwo Mergler
2010-04-14 7:57 ` Anders Larsen
2010-04-14 18:13 ` Kevin Cernekee
2010-04-15 7:32 ` Iwo Mergler
2010-04-21 22:24 ` Andrew Morton [this message]
2010-05-19 11:05 ` Anders Larsen
2010-05-21 19:01 ` Andrew Morton
2010-05-24 15:09 ` Ian McDonnell
2010-05-28 9:27 ` Haavard Skinnemoen
2010-04-27 12:57 ` Artem Bityutskiy
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=20100421152410.0fea5e12.akpm@linux-foundation.org \
--to=akpm@linux-foundation.org \
--cc=Artem.Bityutskiy@nokia.com \
--cc=al@alarsen.net \
--cc=dwmw2@infradead.org \
--cc=hskinnemoen@atmel.com \
--cc=ian@brightstareng.com \
--cc=iwo@call-direct.com.au \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mtd@lists.infradead.org \
--cc=matthias@kaehlcke.net \
--cc=nico@fluxnic.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox