public inbox for linux-mtd@lists.infradead.org
 help / color / mirror / Atom feed
* Is high_memory check in omap2.c for OneNAND is sufficient?
@ 2009-03-24 15:20 Singh, Vimal
  2009-03-24 15:44 ` Adrian Hunter
  0 siblings, 1 reply; 9+ messages in thread
From: Singh, Vimal @ 2009-03-24 15:20 UTC (permalink / raw)
  To: linux-mtd@lists.infradead.org

Hi,

There is check for 'high_memory' in 'drivers/mtd/onenand/omap2.c', always before doing 'dma_map_single'.
Snippet:
----------------------
        if (buf >= high_memory) {
                struct page *p1;
----------------------
This check seems not sufficient. There should be a check for upper boundary too.
Thinking scenario when 'buf' is less than 'high_memory', but somewhere near to it, and 'count' is big enough to beyond 'high_memory'.
Then again, function 'dma_cache_maint' will report bug.

Snippet:
--------------
void dma_cache_maint(const void *start, size_t size, int direction)
{
        const void *end = start + size;

        BUG_ON(!virt_addr_valid(start) || !virt_addr_valid(end - 1));
-------------

Should we replace "if (buf >= high_memory)" with "if (buf >= high_memory || (buf + count -1) >= high_memory)"...?

---
vimal

^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2009-03-26 14:52 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-03-24 15:20 Is high_memory check in omap2.c for OneNAND is sufficient? Singh, Vimal
2009-03-24 15:44 ` Adrian Hunter
2009-03-25  9:58   ` Singh, Vimal
2009-03-25 10:43     ` Adrian Hunter
2009-03-25 14:54       ` Singh, Vimal
2009-03-26  8:13         ` Adrian Hunter
2009-03-26  8:42           ` Singh, Vimal
2009-03-26  8:55             ` Adrian Hunter
2009-03-26 14:51               ` Singh, Vimal

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox