There is a reason we handle things the way we do. In 2.0.x there was a routine
that verified addresses were ok. It stomped off into the page tables, checked
entries and said Yay or Nay. The hardware can do this except for the fact
you take the 'Oi stop that' message (the exception) when you access that
byte. 2.1.x uses this even though its tricker as verify_area() took valuable
CPU time and Linus decided to be cleverer than 99% of other OS vendors
again.
Alan