Other changes to be aware of...
In kernel-2.4.20-2.25, there has been a change to remap_page_range.
In the stock kernel, it is defined as:
extern int remap_page_range(unsigned long from, unsigned long to, unsigned long size, pgprot_t prot);
In the Redhat version, it is:
extern int remap_page_range(struct vm_area_struct *vma, unsigned long from, unsigned long to, unsigned long size, pgprot_t prot);
It looks like the vma structure needs to be passed, as the first argument. Everything else looks like it should be correct. (I am not certain about this because it is complaining about the calculation used to determine the size. I think it just needs to be cast properly.)
I have not tested my changes yet. I am still expecting to find changes in some of the memory map code.