Fuck in Linux Kernel
Is Sunday, is raining, my wife is reading some psychological shit and I’m bored. I knew from the morning I need to do something very very important today, so I start to count the “fuck” word in Linux Kernel.
This command is faster
find . -name *.[hcS] -not -regex ‘\./\.git.*’ | xargs cat | grep ” fuck” | wc -l
than this command:
egrep -ir “( fuck)” * | wc -l
But when we need to see what files are containing the pornographic word, I use
egrep -H -A2 -ir “( fuck)” *
-H is for showing the filename
-A2 show the next 2 lines after you found the word
And here is the result:
arch/x86/kernel/cpu/cpufreq/powernow-k7.c: * Some Athlon laptops have really fucked PST tables.
arch/x86/kernel/cpu/cpufreq/powernow-k7.c- * A BIOS update is all that can save them.
arch/x86/kernel/cpu/cpufreq/powernow-k7.c- * Mention this, and disable cpufreq.
–
arch/x86/kernel/cpu/mtrr/generic.c:/* Some BIOS’s are fucked and don’t set all MTRRs the same! */
arch/x86/kernel/cpu/mtrr/generic.c-void __init mtrr_state_warn(void)
arch/x86/kernel/cpu/mtrr/generic.c-{arch/mips/pci/ops-bridge.c: * IOC3 is fucked fucked beyond believe … Don’t even give the
arch/mips/pci/ops-bridge.c- * generic PCI code a chance to look at it for real …
arch/mips/pci/ops-bridge.c- */
–
arch/mips/pci/ops-bridge.c: * IOC3 is fucked fucked beyond believe … Don’t even give the
arch/mips/pci/ops-bridge.c- * generic PCI code a chance to look at the wrong register.
arch/mips/pci/ops-bridge.c- */
–
arch/mips/pci/ops-bridge.c: * IOC3 is fucked fucked beyond believe … Don’t try to access
arch/mips/pci/ops-bridge.c- * anything but 32-bit words …
arch/mips/pci/ops-bridge.c- */
–
arch/mips/pci/ops-bridge.c: * IOC3 is fucked fucked beyond believe … Don’t even give the
arch/mips/pci/ops-bridge.c- * generic PCI code a chance to look at it for real …
arch/mips/pci/ops-bridge.c- */
–
arch/mips/pci/ops-bridge.c: * IOC3 is fucked fucked beyond believe … Don’t even give the
arch/mips/pci/ops-bridge.c- * generic PCI code a chance to look at the wrong register.
arch/mips/pci/ops-bridge.c- */
–
arch/mips/pci/ops-bridge.c: * IOC3 is fucked fucked beyond believe … Don’t try to access
arch/mips/pci/ops-bridge.c- * anything but 32-bit words …
arch/mips/pci/ops-bridge.c- */
–
arch/mips/pci/ops-bridge.c: * IOC3 is fucked fucked beyond believe … Don’t even give the
arch/mips/pci/ops-bridge.c- * generic PCI code a chance to look at it for real …
arch/mips/pci/ops-bridge.c- */
–
arch/mips/pci/ops-bridge.c: * IOC3 is fucked fucked beyond believe … Don’t even give the
arch/mips/pci/ops-bridge.c- * generic PCI code a chance to touch the wrong register.
arch/mips/pci/ops-bridge.c- */
–
arch/mips/pci/ops-bridge.c: * IOC3 is fucked fucked beyond believe … Don’t try to access
arch/mips/pci/ops-bridge.c- * anything but 32-bit words …
arch/mips/pci/ops-bridge.c- */
–
arch/mips/pci/ops-bridge.c: * IOC3 is fucked fucked beyond believe … Don’t even give the
arch/mips/pci/ops-bridge.c- * generic PCI code a chance to look at it for real …
arch/mips/pci/ops-bridge.c- */
–
arch/mips/pci/ops-bridge.c: * IOC3 is fucked fucked beyond believe … Don’t even give the
arch/mips/pci/ops-bridge.c- * generic PCI code a chance to touch the wrong register.
arch/mips/pci/ops-bridge.c- */
–
arch/mips/pci/ops-bridge.c: * IOC3 is fucked fucked beyond believe … Don’t try to access
arch/mips/pci/ops-bridge.c- * anything but 32-bit words …
arch/mips/pci/ops-bridge.c- */
–
arch/mips/sgi-ip22/ip22-setup.c: * fucking with the memory controller because it needs to know the
arch/mips/sgi-ip22/ip22-setup.c- * boardID and whether this is a Guiness or a FullHouse machine.
arch/mips/sgi-ip22/ip22-setup.c- */
–
arch/m68k/include/asm/sun3ints.h:/* master list of VME vectors — don’t fuck with this */
arch/m68k/include/asm/sun3ints.h-#define SUN3_VEC_FLOPPY (IRQ_USER+0)
arch/m68k/include/asm/sun3ints.h-#define SUN3_VEC_VMESCSI0 (IRQ_USER+0)
–
arch/sparc/include/asm/system_64.h: /* If you fuck with this, update ret_from_syscall code too. */ \
arch/sparc/include/asm/system_64.h- if (test_thread_flag(TIF_PERFCTR)) { \
arch/sparc/include/asm/system_64.h- write_pcr(current_thread_info()->pcr_reg); \
–
arch/sparc/kernel/head_32.S: /* XXX Fucking Cypress… */
arch/sparc/kernel/head_32.S- lda [%g0] ASI_M_MMUREGS, %g5
arch/sparc/kernel/head_32.S- srl %g5, 28, %g4
–
arch/parisc/kernel/sys_parisc.c:/* Fucking broken ABI */
arch/parisc/kernel/sys_parisc.c-
arch/parisc/kernel/sys_parisc.c-#ifdef CONFIG_64BIT
–
Documentation/DocBook/kernel-locking.tmpl: If you don’t see why, please stay the fuck away from my code.
Documentation/DocBook/kernel-locking.tmpl-
Documentation/DocBook/kernel-locking.tmpl-
–
drivers/watchdog/shwdt.c: * brain-damage, it’s managed to fuck things up one step further..
drivers/watchdog/shwdt.c- *
drivers/watchdog/shwdt.c- * If we need to clear the WOVF bit, the upper byte has to be 0xa5..
–
drivers/ide/cmd640.c: * These chips are basically fucked by design, and getting this driver
drivers/ide/cmd640.c- * to work on every motherboard design that uses this screwed chip seems
drivers/ide/cmd640.c- * bloody well impossible. However, we’re still trying.
–
drivers/scsi/qlogicpti.h:/* Am I fucking pedantic or what? */
drivers/scsi/qlogicpti.h-struct Entry_header {
drivers/scsi/qlogicpti.h-#ifdef __BIG_ENDIAN
–
drivers/media/video/bt819.c: BUG? Why does turning the chroma comb on fuck up color?
drivers/media/video/bt819.c- Bug in the bt819 stepping on my board?
drivers/media/video/bt819.c- */–
drivers/mtd/mtd_blkdevs.c: registered, to prevent the link/init ordering from fucking
drivers/mtd/mtd_blkdevs.c- us over. */
drivers/mtd/mtd_blkdevs.c- if (!blktrans_notifier.list.next)
–
drivers/net/sunhme.c:/* Only Sun can take such nice parts and fuck up the programming interface
drivers/net/sunhme.c- * like this. Good job guys…
drivers/net/sunhme.c- */
–
fs/xfs/xfs_btree.h: case XFS_BTNUM_MAX: ASSERT(0); /* fucking gcc */ ; break; \
fs/xfs/xfs_btree.h- } \
fs/xfs/xfs_btree.h-} while (0)
–
fs/xfs/xfs_btree.h: case XFS_BTNUM_MAX: ASSERT(0); /* fucking gcc */ ; break; \
fs/xfs/xfs_btree.h- } \
fs/xfs/xfs_btree.h-} while (0)
–
include/linux/netfilter/xt_limit.h: /* Ugly, ugly fucker. */
include/linux/netfilter/xt_limit.h- struct xt_rateinfo *master;
include/linux/netfilter/xt_limit.h-};
–
lib/vsprintf.c: * Wirzenius wrote this portably, Torvalds fucked it up
lib/vsprintf.c- */
lib/vsprintf.c-
–
net/ipv4/netfilter/nf_nat_snmp_basic.c: * (And this is the fucking ‘basic’ method).
net/ipv4/netfilter/nf_nat_snmp_basic.c- */
net/ipv4/netfilter/nf_nat_snmp_basic.c-static int snmp_parse_mangle(unsigned char *msg,
–
net/core/skbuff.c: /* Fuck, we are miserable poor guys… */
net/core/skbuff.c- if (ntail == 0)
net/core/skbuff.c- skb2 = skb_copy(skb1, GFP_ATOMIC);
–
sound/oss/opl3.c: * What the fuck is going on here? We leave junk in the beginning
sound/oss/opl3.c- * of ins and then check the field pretty close to that beginning?
sound/oss/opl3.c- */
Now I’m happy. I finally made something useful today!





