3.1.0-Rc0-Alpha1 kernel patch

Because of the size of patching to linux kernel 3.1,
commits will be broken up into a number of Rc0-Alpha#
patches to ensure nothing breaks along the way.