I checked this on the source tree for 3.8.0. The numbers appear to be inflated by allowing the swear words to be part of other words.
For example, "shit" appears in 121 lines, but " shit " only appears in 10 lines. Looking at the offending lines, there is only one swearword that is missed by excluding spaces.
"fuck" appears 29 times, all of which are some conjugation of the verb (and some lines have duplicates I'm not counting).
"crap" appears 161 times, 20 of which are part of "scrap"
"bastard" appears 17 times, 6 of which go to email addressed hosted at "lazybastard.org" and "you-bastards.com"
"penguin" appears 99 times, two of which are jokes.
How about trying \b[Ss][Hh][Ii][Tt]\b and the likes?
Hopefully these counts don't indicate increasing fragility or violent disagreements within the kernel. Does anyone with kernel experience have any insight into common purposes for kernel profanity?
The motive seems to be to acknowledge to the reader that, yes, this code is ugly, and it's not the writer's fault; it's the product of some bugginess external to the codebase that really isn't possible to fix. Blame "fucking gcc", or Sun for having the nerve to "take such nice parts and fuck up the programming interface" (to quote two examples from the Linux code). The target of the anger is most definitely not the intended audience.
EDIT: This is against linux-3.8.0 from Mint's repository.
It has been submitted a few more times, none with comments:
The last of these was just 14 hours ago - the trailing slash defeating the HN dup detector.
The spike just before 3.2.17 must be a glitch, but if it isn't, it's very intriguing.