Messages in this thread | | | Date | Thu, 15 Apr 2010 17:32:14 +1000 | From | Iwo Mergler <> | Subject | Re: [PATCH] Fix Oops with Atmel SPI |
| |
Hi Anders,
Anders Larsen wrote: > Hi Iwo, > > 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'm sorry, I thought you were somewhere else in the MTD source. The bad block handling code for NAND also has a full erase block allocation, which happens during runtime.
You are correct in that the mount time allocation should be safe, for most systems.
Best regards,
Iwo
| |