upstream to 3.4.11 from kernel.org