merge from torvalds