http://lkml.indiana.edu/hypermail/linux/kernel/0206.1/0402.html
In particular, he said:
~ PS. And never _ever_ make the "pointerness" part of the type. People who write
typedef struct urb_struct * urbp_t;
(or whatever the name was) should just be shot.
~I took this advice seriously and held out to the bitter end. But today I released this code:
https://github.com/chkoreff/Fexl/commit/9e361240168151706bcc289b400059a37c5245d8
Look at the difference in that sample code in the commit message. Using typedef is so obviously better that I just have to ignore Linus' advice here.