Jes Sorensen <[EMAIL PROTECTED]> wrote:
>
> Convert /dev/mem read/write calls to use arch_translate_mem_ptr if
>  available. Needed on ia64 for pages converted fo uncached mappings to
>  avoid it being accessed in cached mode after the conversion which can
>  lead to memory corruption. Introduces PG_uncached page flag for
>  marking pages uncached.

For some reason this patch still gives me the creeps.  Maybe it's because
we lose a page flag for something so obscure.

Nothing ever clears PG_uncached.  We'll end up with every page in the
machine marked as being uncached.

But then, nothing ever sets PG_uncached, either.  Is there some patch which
you're hiding from me?

If a page is marked uncached then it'll remain marked as uncached even
after it's unmapped.  Or will it?  Would like to see the other patch, please.

We should add PG_uncached checks to the page allocator.  Is this OK?


--- 25/mm/page_alloc.c~ia64-specific-dev-mem-handlers-checks    2005-03-09 
22:53:12.000000000 -0800
+++ 25-akpm/mm/page_alloc.c     2005-03-09 22:53:44.000000000 -0800
@@ -108,6 +108,7 @@ static void bad_page(const char *functio
                        1 << PG_active  |
                        1 << PG_dirty   |
                        1 << PG_swapcache |
+                       1 << PG_uncached |
                        1 << PG_writeback);
        set_page_count(page, 0);
        reset_page_mapcount(page);
@@ -321,6 +322,7 @@ static inline void free_pages_check(cons
                        1 << PG_reclaim |
                        1 << PG_slab    |
                        1 << PG_swapcache |
+                       1 << PG_uncached |
                        1 << PG_writeback )))
                bad_page(function, page);
        if (PageDirty(page))
@@ -446,6 +448,7 @@ static void prep_new_page(struct page *p
                        1 << PG_dirty   |
                        1 << PG_reclaim |
                        1 << PG_swapcache |
+                       1 << PG_uncached |
                        1 << PG_writeback )))
                bad_page(__FUNCTION__, page);
 
_

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to