i disagree, the early_res stuff is still quite unclean, and what we want do do is to get rid of it, not promote it into 32-bit code ... (The reason we merged the early_res stuff in 2.6.25 was because it was certainly cleaner than the horrible open-coded reservations that the 64-bit code did before. So now we at least have a more less visible enumeration of reservations.)
The correct and clean clean solution is what hpa mentioned: to do reservations in the e820 space. I think hpa has some code for that already and we should merge that. Peter?