Messages in this thread | | | Date | Mon, 11 Sep 2006 06:22:01 +0200 | From | Heiko Carstens <> | Subject | Re: [patch 2/2] convert s390 page handling macros to functions v3 |
| |
On Sun, Sep 10, 2006 at 09:25:18AM -0700, Dave Hansen wrote: > On Sun, 2006-09-10 at 15:08 +0200, Heiko Carstens wrote: > > > > +static inline int page_test_and_clear_dirty(struct page *page) > > +{ > > + unsigned long physpage = __pa((page - mem_map) << PAGE_SHIFT); > > + int skey = page_get_storage_key(physpage); > > This has nothing to do with your patch at all, but why is 'page - > mem_map' being open-coded here?
I just changed the defines to functions without thinking about this.. :)
> I see at least a couple of page_to_phys() definitions on some > architectures. This operation is done enough times that s390 could > probably use the same treatment.
Yes, even s390 has page_to_phys() as well. But why is it in io.h? Seems like this is inconsistent across architectures. Also in quite a few architectures the define looks like this:
#define page_to_phys(page) ((page - mem_map) << PAGE_SHIFT)
A pair of braces is missing around page. Yet another possible subtle bug...
> It could at least use a page_to_pfn() instead of the 'page - mem_map' > operation, right?
Yes, I will address that in a later patch. Shouldn't stop this one from being merged, if there aren't any other objections. Thanks for pointing this out! - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |