Note carefully: though being his usual brand of unfathomably blunt, Linus is talking about the code, not the person who wrote it. He's obviously bothered by the approach the code takes, but he probably doesn't think the person who wrote it is a 'dickhead' -- anyone can write truly awful code, even Linus.
In this case, it looks (from a quick glance) like some Patch X seemed like a good idea, but ended up requiring Patch Y, which was really ugly, and suggested that Patch X maybe wasn't the best idea to begin with.
Of course, this takes getting used to -- part of Linus's style is to be very blunt, call his opinions straightforwardly, and happily insult anyone's code, even his own, when it isn't living up to standards. To work with Linus, you need to have zero ego about your own code -- the goal is to get the best code into the kernel (no matter who wrote it), not to get your code into the kernel.
It's not always perfect, but I generally think it's a good approach, and it seems to largely work.
To solve this problem, you really only have two options:
- get really good at apologies
- spread the "love" out so evenly that nobody really ends up feeling
like they get unfairly targeted. Make it inventive enough, and they
might even be amused.
I think that Linus is at a point where he plays with it, because he knows that peoples know his game/character and that he will easily publicly say harsh words to someone. Thus by 'democratizing' it, nobody got ostracized in the developer community by having being called a 'moron' by Linus, because we all know (Linus included) this can happen to anyone.