{"id":307,"date":"2008-05-19T20:59:38","date_gmt":"2008-05-19T17:59:38","guid":{"rendered":"http:\/\/www.void.gr\/kargig\/blog\/?p=307"},"modified":"2008-05-29T21:28:20","modified_gmt":"2008-05-29T18:28:20","slug":"kernel-fun","status":"publish","type":"post","link":"https:\/\/www.void.gr\/kargig\/blog\/2008\/05\/19\/kernel-fun\/","title":{"rendered":"kernel fun"},"content":{"rendered":"<p>I know this has been posted a zillion times again and again&#8230;but it&#8217;s still a lot of fun:<\/p>\n<p><strong>Swearing? NEVER!<\/strong><br \/>\n<code># cd \/usr\/src\/linux; egrep -ir \"( fuck)|( shit)|( crap)\" *<br \/>\narch\/m68k\/mac\/config.c: * have to disable interrupts for this. Our IRQ handlers will crap<br \/>\narch\/sparc\/mm\/srmmu.c:\t\/* Clear any crap from the cache or else... *\/<br \/>\narch\/sparc\/mm\/srmmu.c:\t * this shit off... nice job Fujitsu.<br \/>\narch\/sparc\/mm\/srmmu.c:\t\/* Clear any crap from the cache or else... *\/<br \/>\narch\/sparc\/lib\/checksum.S:\t * give up.  I'm serious, I am going to kick the living shit<br \/>\narch\/sparc\/kernel\/ptrace.c:\/* Fuck me gently with a chainsaw... *\/<br \/>\narch\/sparc\/kernel\/process.c:\t\/* fuck me plenty *\/<br \/>\narch\/sparc\/kernel\/head.S:\t\/* XXX Fucking Cypress... *\/<br \/>\narch\/sparc\/kernel\/sunos_ioctl.c:\t\/* Binary compatibility is good American knowhow fuckin' up. *\/<br \/>\narch\/sparc\/kernel\/ebus.c: * Here we list PROMs and systems that are known to supply crap as IRQ numbers.<br \/>\narch\/sparc\/kernel\/pcic.c:\t\t\t\t * to shit into regions like that.<br \/>\narch\/um\/drivers\/daemon_kern.c:\t\/* We will free this pointer. If it contains crap we're burned. *\/<br \/>\narch\/frv\/mb93090-mb00\/pci-frv.c: *  timer as certain crappy BIOSes forget to set it properly.<br \/>\narch\/mips\/pci\/ops-bridge.c:\t * IOC3 is fucked fucked beyond believe ...  Don't even give the<br \/>\narch\/mips\/pci\/ops-bridge.c:\t * IOC3 is fucked fucked beyond believe ...  Don't even give the<br \/>\narch\/mips\/pci\/ops-bridge.c:\t * IOC3 is fucked fucked beyond believe ...  Don't try to access<br \/>\narch\/mips\/pci\/ops-bridge.c:\t * IOC3 is fucked fucked beyond believe ...  Don't even give the<br \/>\narch\/mips\/pci\/ops-bridge.c:\t * IOC3 is fucked fucked beyond believe ...  Don't even give the<br \/>\narch\/mips\/pci\/ops-bridge.c:\t * IOC3 is fucked fucked beyond believe ...  Don't try to access<br \/>\narch\/mips\/pci\/ops-bridge.c:\t * IOC3 is fucked fucked beyond believe ...  Don't even give the<br \/>\narch\/mips\/pci\/ops-bridge.c:\t * IOC3 is fucked fucked beyond believe ...  Don't even give the<br \/>\narch\/mips\/pci\/ops-bridge.c:\t * IOC3 is fucked fucked beyond believe ...  Don't try to access<br \/>\narch\/mips\/pci\/ops-bridge.c:\t * IOC3 is fucked fucked beyond believe ...  Don't even give the<br \/>\narch\/mips\/pci\/ops-bridge.c:\t * IOC3 is fucked fucked beyond believe ...  Don't even give the<br \/>\narch\/mips\/pci\/ops-bridge.c:\t * IOC3 is fucked fucked beyond believe ...  Don't try to access<br \/>\narch\/mips\/pci\/fixup-ip32.c: * right if there exists such a broken piece of crap.<br \/>\narch\/mips\/pci\/pci.c: *  timer as certain crappy BIOSes forget to set it properly.<br \/>\narch\/mips\/sgi-ip22\/ip22-setup.c:\t * fucking with the memory controller because it needs to know the<br \/>\narch\/mips\/kernel\/irixelf.c:#if 0 \/* XXX No fucking way dude... *\/<br \/>\narch\/mips\/kernel\/genex.S:\t * Big shit, we now may have two dirty primary cache lines for the same<br \/>\narch\/mips\/kernel\/vmlinux.lds.S:\t\t\/* ABI crap starts here *\/<br \/>\narch\/mips\/kernel\/traps.c:\t\t * (Duh, crap, there is someone with a triple R6k machine)<br \/>\narch\/mips\/kernel\/irixioctl.c: * irixioctl.c: A fucking mess...<br \/>\narch\/mips\/kernel\/irix5sys.S:\tsys\tirix_unimp\t0\t\/* 1064  XXX AFS shit\t      DC*\/<br \/>\narch\/mips\/kernel\/irix5sys.S:\tsys\tirix_unimp\t0\t\/* 1065  XXX AFS shit\t      DC*\/<br \/>\narch\/mips\/kernel\/irix5sys.S:\tsys\tirix_unimp\t0\t\/* 1066  XXX AFS shit\t      DC*\/<br \/>\narch\/mips\/kernel\/irix5sys.S:\tsys\tirix_unimp\t0\t\/* 1067  XXX AFS shit\t      DC*\/<br \/>\narch\/mips\/kernel\/irix5sys.S:\tsys\tirix_unimp\t0\t\/* 1068  XXX AFS shit\t      DC*\/<br \/>\narch\/mips\/kernel\/irix5sys.S:\tsys\tirix_unimp\t0\t\/* 1069  XXX AFS shit\t      DC*\/<br \/>\narch\/mips\/kernel\/irix5sys.S:\tsys\tirix_unimp\t0\t\/* 1070  XXX AFS shit\t      DC*\/<br \/>\narch\/mips\/kernel\/irix5sys.S:\tsys\tirix_unimp\t0\t\/* 1071  XXX AFS shit\t      DC*\/<br \/>\narch\/mips\/kernel\/irix5sys.S:\tsys\tirix_unimp\t0\t\/* 1072  XXX AFS shit\t      DC*\/<br \/>\narch\/mips\/kernel\/irix5sys.S:\tsys\tirix_unimp\t0\t\/* 1073  XXX AFS shit\t      DC*\/<br \/>\narch\/mips\/kernel\/sysirix.c:\/* 2,191 lines of complete and utter shit coming up... *\/<br \/>\narch\/mips\/kernel\/irixsig.c:\t\/* XXX do sigstack crapola here... XXX *\/<br \/>\narch\/v850\/Kconfig:# Turn off some random 386 crap that can affect device config<br \/>\narch\/v850\/Kconfig:   # The crappy-ass zone allocator requires that the start of allocatable<br \/>\narch\/sparc64\/mm\/ultra.S:\t * in Microelectronics who refused to fix this shit.<br \/>\narch\/sparc64\/solaris\/socksys.c:\t * No shit.  WTF is it supposed to do, anyway?<br \/>\narch\/sparc64\/kernel\/viohs.c: * to be aware of this crap.<br \/>\narch\/sparc64\/kernel\/iommu_common.c:\t\tprintk(\"verify_sglist: Crap, messed up mappings, dumping, iodma at \");<br \/>\narch\/sparc64\/kernel\/traps.c:\t\t\/* Shit... *\/<br \/>\narch\/sparc64\/kernel\/binfmt_aout32.c:\t\t\/* Fuck me plenty... *\/<br \/>\narch\/arm\/common\/it8152.c: * timer as we don't have even crappy BIOSes to set it properly.<br \/>\narch\/arm\/kernel\/head.S: * We're trying to keep crap to a minimum; DO NOT add any machine specific<br \/>\narch\/arm\/kernel\/head.S: * crap here - that's what the boot loader (or in extreme, well justified<br \/>\narch\/cris\/arch-v32\/drivers\/gpio.c: * Removed old crap.<br \/>\narch\/ppc\/8xx_io\/commproc.c:\t * XXX: This is actually crap.  CPM_DATAONLY_BASE and<br \/>\narch\/ppc\/syslib\/cpm2_common.c:\t\/* XXX: This is actually crap. CPM_DATAONLY_BASE and<br \/>\narch\/ppc\/syslib\/ppc405_pci.c:\t * the kernel try to remap our BAR #1 and fuck up bus<br \/>\narch\/x86\/pci\/pci.h:\tu32 miniport_data;\t\t\/* Crap *\/<br \/>\narch\/x86\/pci\/i386.c: *  timer as certain crappy BIOSes forget to set it properly.<br \/>\narch\/x86\/mach-visws\/setup.c:\t * What lunatic came up with this shit?<br \/>\narch\/x86\/mach-voyager\/voyager_smp.c:\t * FIXME: This algorithm is total crap when mixed with SMP<br \/>\narch\/x86\/kernel\/cpu\/cpufreq\/powernow-k7.c: * Some Athlon laptops have really fucked PST tables.<br \/>\narch\/x86\/kernel\/cpu\/mcheck\/mce_64.c:\t\t   by default and leave crap in there. Don't log. *\/<br \/>\narch\/x86\/kernel\/cpu\/mtrr\/generic.c:\/*  Some BIOS's are fucked and don't set all MTRRs the same!  *\/<br \/>\narch\/parisc\/kernel\/sys_parisc.c:\/* Fucking broken ABI *\/<br \/>\narch\/powerpc\/sysdev\/commproc.c:\t * XXX: This is actually crap.  CPM_DATAONLY_BASE and<br \/>\narch\/powerpc\/sysdev\/cpm2_common.c:\t\/* XXX: This is actually crap. CPM_DATAONLY_BASE and<br \/>\narch\/powerpc\/platforms\/cell\/spider-pic.c: * crap and we don't know on which BE iic interrupt we are hooked on at<br \/>\narch\/powerpc\/platforms\/powermac\/smp.c:\t * ideally, all that crap will be done in prom.c and the CPU left<br \/>\nDocumentation\/DocBook\/kernel-hacking.tmpl:         * give up.  I'm serious, I am going to kick the living shit<br \/>\nDocumentation\/DocBook\/kernel-locking.tmpl:       If you don't see why, please stay the fuck away from my code.<br \/>\nDocumentation\/scsi\/ibmmca.txt:\tbackwards.  This confuses the crap out of those heathens who've<br \/>\nDocumentation\/sound\/alsa\/ALSA-Configuration.txt:    Note: This driver is really crappy.  It's a porting from the<br \/>\nDocumentation\/ManagementStyle:a while, and you'll feel cleansed. Just don't crap too close to home.<br \/>\ndrivers\/pci\/pci-driver.c:\t * horrible the crap we have to deal with is when we are awake...<br \/>\ndrivers\/ide\/pci\/cmd640.c: *  These chips are basically fucked by design, and getting this driver<br \/>\ndrivers\/ide\/ide-probe.c: *\thave the same drive viewed twice. This occurs with crap CF adapters<br \/>\ndrivers\/ide\/ide-io.c:\t\t * remove all the ifdef PCI crap<br \/>\ndrivers\/lguest\/lg.h: * There are many cases where the Guest can do something invalid, like pass crap<br \/>\ndrivers\/char\/ip2\/i2ellis.c:\/\/ !!! Not Used, this is DOS crap, some of you young folks may be interested in<br \/>\ndrivers\/char\/agp\/amd64-agp.c:\t\/* Northbridge seems to contain crap. Try the AGP bridge. *\/<br \/>\ndrivers\/hwmon\/abituguru.c:\t   anyways. If we read sensors\/pwms not there we'll just read crap<br \/>\ndrivers\/video\/sstfb.c:   and as reading fbinit 6 will return crap (see FBIINIT6_DEFAULT) we just<br \/>\ndrivers\/video\/aty\/radeon_pm.c:\t\/* Hrm... same shit, X doesn't do that but I have to *\/<br \/>\ndrivers\/video\/sis\/init301.c:     \/* This is a piece of typical SiS crap: They code the OEM LCD<br \/>\ndrivers\/scsi\/NCR53C9x.c: * how bad the target and\/or ESP fucks things up.<br \/>\ndrivers\/scsi\/NCR53C9x.c:\t\t\/* shit *\/<br \/>\ndrivers\/scsi\/NCR53C9x.c:\t\t\/* Be careful, we could really get fucked during synchronous<br \/>\ndrivers\/scsi\/NCR53C9x.c:\t\t\t\t\/* Crapola, mark it as a slowcmd<br \/>\ndrivers\/scsi\/NCR53C9x.c:\t\t\t\/* shit *\/<br \/>\ndrivers\/scsi\/aha1542.c:\t * the strategy handler takes care of that crap.<br \/>\ndrivers\/scsi\/aha1542.c:\t * the strategy handler takes care of that crap.<br \/>\ndrivers\/scsi\/dc395x.c:\t\/* KG: Can this prevent crap sense data ? *\/<br \/>\ndrivers\/scsi\/scsi_tgt_lib.c:\/* TODO: test this crap and replace bio_map_user with new interface maybe *\/<br \/>\ndrivers\/scsi\/qlogicpti.h:\/* Am I fucking pedantic or what? *\/<br \/>\ndrivers\/net\/3c509.c:\t *\tUsing disable_irq stops us crapping on other<br \/>\ndrivers\/net\/irda\/donauboe.c:toshoboe_gotosleep (struct pci_dev *pci_dev, pm_message_t crap)<br \/>\ndrivers\/net\/sunlance.c: *\t\t  This was the sun4c killer. Shit, stupid bug.<br \/>\ndrivers\/net\/wan\/dscc4.c: * - misc crapectomy.<br \/>\ndrivers\/net\/wan\/dscc4.c:\t\t\t * If the driver ends sending crap on the wire, it<br \/>\ndrivers\/net\/wan\/cycx_main.c:* 2000\/07\/13\tacme\t\tremove useless #ifdef MODULE and crap<br \/>\ndrivers\/net\/wan\/z85230.c:\t\t\t *\tCheck if we crapped out.<br \/>\ndrivers\/net\/wan\/z85230.c:\t\t\tct=2;\t\/* Shit happens.. *\/<br \/>\ndrivers\/net\/declance.c: *      v0.007: Big shit. The LANCE seems to use a different DMA mechanism to<br \/>\ndrivers\/net\/sky2.c:\t * to handle crap frames.<br \/>\ndrivers\/net\/sunhme.c:\t\/* Remember: \"Different name, same old buggy as shit hardware.\" *\/<br \/>\ndrivers\/net\/sunhme.c:\/* Only Sun can take such nice parts and fuck up the programming interface<br \/>\ndrivers\/net\/3c523.c:\t\/* this bit masking stuff is crap.  I'd rather have separate<br \/>\ndrivers\/net\/dm9000.c:\tmdelay(8);\t\t\/* same shit *\/<br \/>\ndrivers\/block\/ub.c:\t\t\t\t * This is typically ENOMEM or some other such shit.<br \/>\ndrivers\/block\/umem.c: *\tThat's crap, since doing that while some partitions are opened<br \/>\ndrivers\/media\/video\/ov7670.c:\t * Weird crap seems to exist in the upper part of<br \/>\ndrivers\/media\/video\/bt819.c:\t\t\t\t\t   BUG? Why does turning the chroma comb on fuck up color?<br \/>\ndrivers\/media\/video\/usbvideo\/usbvideo.c:\/* XXX: this piece of crap really wants some error handling.. *\/<br \/>\ndrivers\/media\/video\/indycam.c:\t\/* Indy specific crap *\/<br \/>\ndrivers\/mtd\/mtd_blkdevs.c:\t   registered, to prevent the link\/init ordering from fucking<br \/>\ndrivers\/mtd\/ubi\/scan.c:\t\tdbg_bld(\"using old crappy leb_ver stuff\");<br \/>\ndrivers\/macintosh\/windfarm_pm81.c:\t\/* One more crappy race: I don't think we have any guarantee here<br \/>\ndrivers\/macintosh\/windfarm_pm91.c:\t\/* One more crappy race: I don't think we have any guarantee here<br \/>\ndrivers\/parport\/parport_pc.c: *\tPiles of crap below pretend to be a parser for module and kernel<br \/>\ndrivers\/md\/dm.c: *   you this clearly demarcated crap.<br \/>\ndrivers\/usb\/serial\/whiteheat.c: *\tfirmware is improved to guard against crap sent to device<br \/>\ndrivers\/pcmcia\/sa1100_jornada720.c:   * What is all this crap for?<br \/>\ndrivers\/watchdog\/shwdt.c:\t * brain-damage, it's managed to fuck things up one step further..<br \/>\ndrivers\/serial\/pmac_zilog.c:\t * shadows so we don't write crap there before baud rate is<br \/>\ndrivers\/serial\/sunsu.c:\t\t * splitting all the OBP probing crap from the UART probing.<br \/>\ndrivers\/ata\/sata_via.c: *\tSCR registers on vt6420 are pieces of shit and may hang the<br \/>\ndrivers\/ata\/pata_cmd640.c:\t * Of putting crap on the disk<br \/>\ndrivers\/ata\/pata_acpi.c:\t\/* We always use the 0 slot for crap hardware *\/<br \/>\nfs\/reiserfs\/inode.c:\t\t\t\/* crap, we are writing to a hole *\/<br \/>\nfs\/partitions\/sgi.c:\tu8 _unused0[48];\t\t\/* Device parameter useless crapola.. *\/<br \/>\nfs\/jffs2\/dir.c:\t\t\/* Oh shit. We really ought to make a single node which can do both atomically *\/<br \/>\nfs\/jffs2\/super.c:\t   assumes that they're not aligned -- so it emits crappy<br \/>\nfs\/jffs2\/TODO:2. get_sb()->build_fs()->scan() path... Why get_sb() removes scan()'s crap in<br \/>\nfs\/jffs2\/gc.c:\t   all the iget() crap anyway *\/<br \/>\nfs\/file_table.c: * Note: This is a crappy interface.  It is here to make<br \/>\nfs\/namei.c:\t * have to copy the last component. And all that crap because of<br \/>\nfs\/binfmt_aout.c:\t\t\/* Fuck me plenty... *\/<br \/>\ninclude\/asm-arm\/arch-cl7500\/io.h: * GCC is totally crap at loading\/storing data.  We try to persuade it<br \/>\ninclude\/asm-arm\/arch-rpc\/io.h: * GCC is totally crap at loading\/storing data.  We try to persuade it<br \/>\ninclude\/asm-arm\/arch-omap\/keypad.h: * in order to workaround certain crappy HW designs that produce ghost<br \/>\ninclude\/asm-v850\/pgalloc.h:#include &lt;linux \/mm.h&gt;  \/* some crap code expects this *\/<br \/>\ninclude\/scsi\/scsi_host.h:\t\/* legacy crap *\/<br \/>\ninclude\/linux\/netfilter\/nf_conntrack_pptp.h:\/* crap needed for nf_conntrack_compat.h *\/<br \/>\ninclude\/linux\/netfilter\/xt_limit.h:\t\/* Ugly, ugly fucker. *\/<br \/>\ninclude\/linux\/mtd\/cfi.h:\t   of optimising away all the crap for 'bankwidth' larger than<br \/>\ninclude\/linux\/mtd\/cfi.h:\t   of optimising away all the crap for 'bankwidth' larger than<br \/>\ninclude\/linux\/cyclomx.h:* 2000\/07\/13    acme\t\tremove crap #if KERNEL_VERSION > blah<br \/>\ninclude\/asm-m68k\/sun3xflop.h:\/* We don't need no stinkin' I\/O port allocation crap. *\/<br \/>\ninclude\/asm-m68k\/sun3ints.h:\/* master list of VME vectors -- don't fuck with this *\/<br \/>\ninclude\/asm-ia64\/pal.h:\/* Machine Check related crap *\/<br \/>\ninclude\/asm-mips\/mipsprom.h:\/* More PROM shit.  Probably has to do with VME RMW cycles??? *\/<br \/>\ninclude\/asm-sparc64\/system.h:\t\/* If you fuck with this, update ret_from_syscall code too. *\/\t\\<br \/>\ninclude\/asm-sparc64\/io.h:\/* PC crapola... *\/<br \/>\ninclude\/asm-sparc\/floppy.h:\/* We don't need no stinkin' I\/O port allocation crap. *\/<br \/>\ninclude\/asm-cris\/arch-v32\/spinlock.h: * writers) in interrupt handlers someone fucked up and we'd dead-lock<br \/>\nkernel\/cpu.c:\/* Crappy recursive lock-takers in cpufreq! Complain loudly about idiots *\/<br \/>\nlib\/vsprintf.c: * Wirzenius wrote this portably, Torvalds fucked it up :-)<br \/>\nnet\/netfilter\/nf_queue.c:\t\t\/* James M doesn't say fuck enough. *\/<br \/>\nnet\/netfilter\/xt_hashlimit.c:\/* hash table crap *\/<br \/>\nnet\/netfilter\/nf_conntrack_ftp.c:\t\telse { \/* Some other crap *\/<br \/>\nnet\/ipv4\/netfilter\/arp_tables.c:\t\tduprintf(\"Valid hook crap: %08X vs %08X\\n\",<br \/>\nnet\/ipv4\/netfilter\/nf_nat_snmp_basic.c: * (And this is the fucking 'basic' method).<br \/>\nnet\/ipv4\/netfilter\/ip_tables.c:\t\tduprintf(\"Valid hook crap: %08X vs %08X\\n\",<br \/>\nnet\/ipv4\/netfilter\/ipt_REJECT.c:\t   This means that the iptables jump stack is now crap.  We<br \/>\nnet\/ipv4\/tcp_input.c:\t\/* Old crap is replaced with new one. 8)<br \/>\nnet\/ipv4\/tcp_input.c:\t *    all the algo is pure shit and should be replaced<br \/>\nnet\/ipv4\/ah4.c:\t\tcase 0x85:\t\/* Some \"Extended Security\" crap. *\/<br \/>\nnet\/ipv4\/ip_input.c: *\t\t\t\t\tnew frame it queues. Still crap because<br \/>\nnet\/ipv4\/ip_input.c:\t\/* When the interface is in promisc. mode, drop all the crap<br \/>\nnet\/ipv6\/netfilter\/ip6t_REJECT.c:\t   This means that the ip6tables jump stack is now crap.  We<br \/>\nnet\/ipv6\/netfilter\/ip6_tables.c:\t\tduprintf(\"Valid hook crap: %08X vs %08X\\n\",<br \/>\nnet\/core\/skbuff.c:\t\t\t\/* Fuck, we are miserable poor guys... *\/<br \/>\nnet\/irda\/irnet\/irnet.h: * instances on demand (no \/dev\/ircommX crap) and to allow linkname<br \/>\nnet\/appletalk\/ddp.c:\t * Size check to see if ddp->deh_len was crap<br \/>\nnet\/llc\/llc_input.c:\t * When the interface is in promisc. mode, drop all the crap that it<br \/>\nnet\/sched\/sch_cbq.c:\t\t   BTW cbq-2.0 has a crap in this<br \/>\nsound\/pci\/maestro3.c:\/* XXX fix this crap up *\/<br \/>\nsound\/pci\/es1968.c:\t\/* parallel in crap, see maestro reg 0xC [8-11] *\/<br \/>\nsound\/pci\/au88x0\/au88x0_core.c:\t\/\/ FIXME: get rid of this crap.<br \/>\nsound\/pci\/cs46xx\/dsp_spos_scb_lib.c:\t\/* !!!! THIS IS A PIECE OF SHIT MADE BY ME !!! *\/<br \/>\nsound\/aoa\/soundbus\/i2sbus\/i2sbus-core.c:\t * useless crap (ugh ugh ugh). We work around that here by calling<br \/>\nsound\/oss\/trident.c:\t * crap documentation), perhaps broken ? *\/<br \/>\nsound\/oss\/uart6850.c: *\tStatus: Testing required (no shit -jgarzik)<br \/>\nsound\/oss\/opl3.c:\t * What the fuck is going on here?  We leave junk in the beginning<br \/>\nsound\/oss\/i810_audio.c:\t *\tAdjust for misclocked crap<br \/>\nsound\/oss\/i810_audio.c:\t *\tAdjust for misclocked crap<br \/>\nsound\/oss\/via82cxxx_audio.c:\t\/* accounting crap for SNDCTL_DSP_GETxPTR *\/&lt;\/linux><\/code><\/p>\n<p>some of those are hilarious \ud83d\ude00<\/p>\n<p><strong>Horrible or Terrible<\/strong><br \/>\n<code># cd \/usr\/src\/linux; egrep -ir \"( horrib)|( terrib)\" *<br \/>\narch\/m68k\/math-emu\/multi_arith.h:\t   probably eliminate this horribly wasteful loop.  I will<br \/>\narch\/m68k\/lib\/checksum.c: *\t\tFixed some nasty bugs, causing some horrible crashes.<br \/>\narch\/m68k\/kernel\/sys_m68k.c: * This is really horribly ugly.<br \/>\narch\/sparc\/mm\/srmmu.c:\t\t * horrible eh?  But wait, after extensive testing it appears<br \/>\narch\/sparc\/kernel\/sys_sparc.c: * This is really horribly ugly.<br \/>\narch\/sparc\/kernel\/wuf.S:\/* Don't touch the above registers or else you die horribly... *\/<br \/>\narch\/sparc\/kernel\/pcic.c: * We do not use horrible macros here because we want to<br \/>\narch\/ia64\/ia32\/ia32priv.h:   implementation specific libraries for optimization.  Not terribly<br \/>\narch\/um\/sys-ppc\/Makefile:# the asm link is horrible, and breaks the other targets.  This is also<br \/>\narch\/um\/sys-i386\/syscalls.c: * This is really horribly ugly.<br \/>\narch\/frv\/lib\/checksum.c: *\t\tFixed some nasty bugs, causing some horrible crashes.<br \/>\narch\/frv\/kernel\/sys_frv.c: * This is really horribly ugly.<br \/>\narch\/mips\/kernel\/signal.c: * Horribly complicated - with the bloody RM9000 workarounds enabled<br \/>\narch\/mips\/kernel\/signal32.c: * Horribly complicated - with the bloody RM9000 workarounds enabled<br \/>\narch\/mips\/kernel\/syscall.c: * This is really horribly ugly.<br \/>\narch\/mips\/Kconfig:\t# Horrible source of confusion.  Die, die, die ...<br \/>\narch\/v850\/kernel\/syscalls.c: * This is really horribly ugly.<br \/>\narch\/sparc64\/kernel\/sys_sparc.c: * This is really horribly ugly.<br \/>\narch\/arm\/plat-omap\/gpio.c:\t\t * horribly racy, but it's the best we can do to work around<br \/>\narch\/arm\/mach-ixp2000\/ixdp2x00.c: * a driver on each NPU will try to manage it and we will have horrible<br \/>\narch\/arm\/mach-ebsa110\/io.c: * Luckily, the work-around for this is not too horrible.  See<br \/>\narch\/arm\/kernel\/sys_arm.c: * This is really horribly ugly.<br \/>\narch\/cris\/arch-v10\/kernel\/kgdb.c:   part of the code in order to avoid horrible addressing modes. *\/<br \/>\narch\/cris\/kernel\/sys_cris.c: * This is really horribly ugly. (same as arch\/i386)<br \/>\narch\/ppc\/boot\/simple\/pci.c: * This isn't a terribly fancy algorithm.  I just map the spaces from<br \/>\narch\/ppc\/kernel\/setup.c:\t\t * This 0x10000 offset is a terrible hack but it will go away when<br \/>\narch\/sh\/mm\/tlb-nommu.c: * Nothing too terribly exciting here ..<br \/>\narch\/sh\/drivers\/pci\/ops-dreamcast.c: * wouldn't make it terribly far through the PCI setup anyways.<br \/>\narch\/sh\/oprofile\/op_model_sh7750.c: * profile for too horribly long.<br \/>\narch\/sh\/kernel\/sys_sh.c: * This is really horribly ugly.<br \/>\narch\/x86\/kernel\/apm_32.c: * disabled before the suspend. Linux used to get terribly confused by that.<br \/>\narch\/x86\/kernel\/cpu\/cyrix.c:\t * If this breaks your GX1 horribly, please e-mail<br \/>\narch\/x86\/kernel\/sys_i386_32.c: * This is really horribly ugly.<br \/>\narch\/sh64\/kernel\/unwind.c: * Finding the previous stack frame isn't horribly straightforward as it is<br \/>\narch\/sh64\/kernel\/sys_sh64.c: * This is really horribly ugly.<br \/>\narch\/m32r\/kernel\/sys_m32r.c: * This is really horribly ugly.<br \/>\narch\/h8300\/lib\/checksum.c: *\t\tFixed some nasty bugs, causing some horrible crashes.<br \/>\narch\/h8300\/kernel\/sys_h8300.c: * This is really horribly ugly.<br \/>\narch\/powerpc\/platforms\/cell\/spider-pic.c:\t\/* Now do the horrible hacks *\/<br \/>\narch\/powerpc\/kernel\/syscalls.c: * This is really horribly ugly.<br \/>\narch\/s390\/kernel\/compat_linux.c: * This is really horribly ugly.<br \/>\narch\/s390\/kernel\/sys_s390.c: * This is really horribly ugly.<br \/>\narch\/m68knommu\/lib\/checksum.c: *\t\tFixed some nasty bugs, causing some horrible crashes.<br \/>\narch\/m68knommu\/kernel\/sys_m68k.c: * This is really horribly ugly.<br \/>\narch\/alpha\/kernel\/osf_sys.c:\t   a terribly broken way to program.<br \/>\nblock\/ll_rw_blk.c:\t\t * size, something has gone terribly wrong<br \/>\nDocumentation\/unicode.txt:since they are horribly vendor-specific.  This, of course, is an<br \/>\nDocumentation\/unicode.txt:excellent example of horrible design.<br \/>\nDocumentation\/lguest\/lguest.c:\t\t * something went terribly wrong. *\/<br \/>\nDocumentation\/DocBook\/kernel-hacking.tmpl:    it is horrible and worse: division and multiplication does not work<br \/>\nDocumentation\/DocBook\/videobook.tmpl:        terribly useful to anyone.<br \/>\nDocumentation\/scsi\/ibmmca.txt:   1) I passed a horrible weekend getting mad with NMIs on kernel 2.2.14 and<br \/>\nDocumentation\/sound\/oss\/README.OSS:in some systems but is likely to cause terrible noise on some other systems.<br \/>\nDocumentation\/sound\/oss\/README.OSS:are terrible), just modify ssinit.c to use another microcode file and try<br \/>\nDocumentation\/sound\/oss\/README.OSS:Some MAD16 based cards may cause feedback, whistle or terrible noise if the<br \/>\nDocumentation\/svga.txt:off by default as it's a bit unreliable due to terribly bad PC design. If you<br \/>\nDocumentation\/pci-error-recovery.txt:isn't terribly complex). That means some IRQ latency for other devices<br \/>\nDocumentation\/filesystems\/inotify.txt:   Signals are a terrible, terrible interface for file notification.  Or for<br \/>\ndrivers\/pci\/pci-driver.c:\t * horrible the crap we have to deal with is when we are awake...<br \/>\ndrivers\/pci\/hotplug\/cpqphp_pci.c:#include \"..\/..\/..\/arch\/x86\/pci\/pci.h\"\t\/* horrible hack showing how processor dependent we are... *\/<br \/>\ndrivers\/pci\/hotplug\/ibmphp_pci.c:\t\t\terr (\"strange, cannot find bus which is supposed to be at the system... something is terribly wrong...\\n\");<br \/>\ndrivers\/pci\/hotplug\/ibmphp_res.c:\t\tdebug (\"something terribly wrong. Cannot find parent bus to the one to remove\\n\");<br \/>\ndrivers\/pci\/hotplug\/cpqphp_core.c:#include \"..\/..\/..\/arch\/x86\/pci\/pci.h\"\t\/* horrible hack showing how processor dependent we are... *\/<br \/>\ndrivers\/lguest\/core.c:\t\t\/* All long-lived kernel loops need to check with this horrible<br \/>\ndrivers\/char\/hvcs.c:\t * throw us into a horrible recursive echo-echo-echo loop.<br \/>\ndrivers\/input\/serio\/i8042-x86ia64io.h: * die horrible death on reboot.<br \/>\ndrivers\/input\/serio\/hp_sdc.c: * compared to the CPU.  This should not be too horrible most of the time,<br \/>\ndrivers\/input\/mouse\/psmouse-base.c: * Some boxes, such as HP nx7400, get terribly confused if mouse<br \/>\ndrivers\/video\/sis\/init.c:\t\/* Terrible hack, but correct CRTC data for<br \/>\ndrivers\/scsi\/NCR53C9x.c:\t\/* Check for partial transfers and other horrible events. *\/<br \/>\ndrivers\/scsi\/NCR53C9x.c:\t\t * we could die horribly!  I used to have the sg<br \/>\ndrivers\/scsi\/NCR5380.c:   seems to be no terribly good way of doing this on a 5380 under all<br \/>\ndrivers\/scsi\/NCR5380.c:   the usual exit conditions are not met.  Not a terribly clean or<br \/>\ndrivers\/scsi\/aic7xxx_old\/aic7xxx.seq: * In order for this to be reliable, we have to do all sorts of horrible<br \/>\ndrivers\/net\/acenic.c:\t * Nothing terrible happens, if we load wrong size.<br \/>\ndrivers\/net\/ne2k-pci.c:\t\t\/* This looks like a horrible timing loop, but it should never take<br \/>\ndrivers\/net\/eepro.c:\/* The horrible routine to read a word from the serial EEPROM. *\/<br \/>\ndrivers\/net\/ibm_newemac\/core.c:\t *  not terribly harmful)<br \/>\ndrivers\/net\/lib8390.c: *\tcard means that approach caused horrible problems like losing serial data<br \/>\ndrivers\/net\/tulip\/winbond-840.c:A horrible bug exists in the transmit FIFO.  Apparently the chip doesn't<br \/>\ndrivers\/net\/tulip\/winbond-840.c:\t\/* Work around horrible bug in the chip by marking the queue as full<br \/>\ndrivers\/net\/tulip\/eeprom.c:\t\t\treturn; \/* Horrible, impossible failure. *\/<br \/>\ndrivers\/net\/tulip\/eeprom.c:\t\t\treturn;\t\t\t\t\/* Horrible, impossible failure. *\/<br \/>\ndrivers\/net\/tulip\/tulip_core.c:\t\/* bugfix: the ASIX must have a burst limit or horrible things happen. *\/<br \/>\ndrivers\/net\/atl1\/atl1_main.c: * Fix TSO; tx performance is horrible with TSO enabled.<br \/>\ndrivers\/net\/wan\/z85230.c: *\tThe caller must hold sufficient locks to avoid violating the horrible<br \/>\ndrivers\/net\/3c501.c:    Do not purchase this card, even as a joke.  It's performance is horrible,<br \/>\ndrivers\/net\/appletalk\/ltpc.c: *      anything terribly complicated -- it pretends to be an ether device<br \/>\ndrivers\/media\/video\/pvrusb2\/pvrusb2-sysfs.c:  This next batch of horrible preprocessor hackery is needed because the<br \/>\ndrivers\/mtd\/maps\/sa1100-flash.c:\t\t   the chance, and this leads to horrible problems<br \/>\ndrivers\/atm\/firestream.c:\/* It seems the ATM forum recommends this horribly complicated 16bit<br \/>\ndrivers\/pnp\/pnpbios\/bioscalls.c:\t * PnP BIOSes are generally not terribly re-entrant.<br \/>\ndrivers\/pnp\/pnpbios\/bioscalls.c: * Note that some PnP BIOSes (e.g., on Sony Vaio laptops) die a horrible<br \/>\ndrivers\/parisc\/iommu-helpers.h:\t\/* Horrible hack.  For efficiency's sake, dma_sg starts one<br \/>\ndrivers\/usb\/serial\/usb-serial.c:\t\/* BEGIN HORRIBLE HACK FOR PL2303 *\/<br \/>\ndrivers\/usb\/serial\/usb-serial.c:\t\/* END HORRIBLE HACK FOR PL2303 *\/<br \/>\ndrivers\/isdn\/i4l\/isdn_net.c:\t\t\t\t\t * The solution is horribly but it runs, so what:<br \/>\ndrivers\/pcmcia\/m32r_pcc.c:\/* this is horribly ugly... proper locking needs to be done here at<br \/>\ndrivers\/pcmcia\/i82365.c:\/* this is horribly ugly... proper locking needs to be done here at<br \/>\ndrivers\/pcmcia\/m32r_cfc.c:\/* this is horribly ugly... proper locking needs to be done here at<br \/>\ndrivers\/serial\/8250.h: * Digital did something really horribly wrong with the OUT1 and OUT2<br \/>\ndrivers\/ata\/pata_qdi.c: * libata. While the QDI6580 was 'neat' in 1993 it is no longer terribly<br \/>\nfs\/ntfs\/layout.h: * horrible thing to do as it would trash our current driver implementation. )-:<br \/>\nfs\/ntfs\/namei.c: * architectures is usually 64 bits so it would all fail horribly on huge<br \/>\nfs\/ocfs2\/dlm\/dlmmaster.c:\t\t\t\/* ok, something horribly messed.  kill thyself. *\/<br \/>\nfs\/ocfs2\/cluster\/quorum.c:\/* this is horribly heavy-handed.  It should instead flip the file<br \/>\nfs\/isofs\/inode.c:\t * then we have horrible problems with trying to piece together<br \/>\nfs\/hpfs\/dnode.c: * It's easy to read but terrible to write.<br \/>\nfs\/namei.c: * checks.   It's a horrible hack to work around the braindead sysfs<br \/>\nfs\/ncpfs\/inode.c:\t\t\t\t   a terrible hack, but I do not know<br \/>\ninclude\/asm-arm\/arch-pxa\/hardware.h:   especially if it is a variable, otherwise horrible code will result. *\/<br \/>\ninclude\/asm-arm\/arch-s3c2410\/irqs.h: * and we don't end up having to do horrible things to the<br \/>\ninclude\/asm-x86\/apicdef_64.h: * the local APIC register structure, memory mapped. Not terribly well<br \/>\ninclude\/asm-x86\/string_32.h: * This looks horribly ugly, but the compiler can optimize it totally,<br \/>\ninclude\/asm-x86\/apicdef_32.h: * the local APIC register structure, memory mapped. Not terribly well<br \/>\ninclude\/asm\/apicdef_64.h: * the local APIC register structure, memory mapped. Not terribly well<br \/>\ninclude\/asm\/string_32.h: * This looks horribly ugly, but the compiler can optimize it totally,<br \/>\ninclude\/asm\/apicdef_32.h: * the local APIC register structure, memory mapped. Not terribly well<br \/>\ninclude\/asm-v850\/bitops.h:   to use a real constant value.  This is horrible, and ultimately<br \/>\ninclude\/asm-v850\/processor.h: * The only places this is used seem to be horrible bletcherous kludges,<br \/>\ninclude\/asm-xtensa\/system.h: * This only works if the compiler isn't horribly bad at optimizing.<br \/>\ninclude\/linux\/dccp.h:\t\t\t\t\t    This mapping is horrible, but TCP has<br \/>\ninclude\/linux\/serialP.h: * Digital did something really horribly wrong with the OUT1 and OUT2<br \/>\ninclude\/linux\/sunrpc\/svc.h: * change the number of threads.  Horrible, but there it is.<br \/>\ninclude\/linux\/bitmap.h: * Otherwise many inlines will generate horrible code.<br \/>\ninclude\/asm-m68k\/page.h:\/* This #define is a horrible hack to suppress lots of warnings. --m *\/<br \/>\ninclude\/asm-ia64\/elf.h:   implementation specific libraries for optimization.  Not terribly<br \/>\ninclude\/asm-mips\/dma.h:\/* Horrible hack to have a correct DMA window on IP22 *\/<br \/>\ninclude\/asm-sparc\/io-unit.h: * XXX some horrible hwbugs though, so be careful.  -DaveM<br \/>\nmm\/slob.c: * however to avoid the horrible mess in include\/linux\/mm_types.h, we'll<br \/>\nmm\/memory.c:\t * There's a horrible special case to handle copy-on-write<br \/>\nmm\/truncate.c: * the VM. Can you say \"ext3 is horribly ugly\"? Tought you could.<br \/>\nnet\/netfilter\/nf_conntrack_extend.c:\/* Horrible trick to figure out smallest amount worth kmallocing. *\/<br \/>\nnet\/ipv4\/ipvs\/ip_vs_lblc.c: *     Martin Hamilton         :    fixed the terrible locking bugs<br \/>\nnet\/ipv4\/ipconfig.c:\t * seems to be a terrible waste of CPU time, but actually there is<br \/>\nnet\/irda\/irttp.c:\t\t * because it has horrible latency. No tasklets<br \/>\nnet\/packet\/af_packet.c:\t *\tof horrible races and re-entrancy so we can forget about it<br \/>\nnet\/econet\/af_econet.c:\t *\tof horrible races and re-entrancy so we can forget about it<br \/>\nsound\/oss\/ad1848.c:\t\/* Still hanging here. Something must be terribly wrong *\/<br \/>\nsound\/ppc\/awacs.c:\t\/* Sorry for the horrible delays... I hope to get that improved<br \/>\n<\/code><\/p>\n","protected":false},"excerpt":{"rendered":"<p>I know this has been posted a zillion times again and again&#8230;but it&#8217;s still a lot of fun: Swearing? NEVER! # cd \/usr\/src\/linux; egrep -ir &#8220;( fuck)|( shit)|( crap)&#8221; * arch\/m68k\/mac\/config.c: * have to disable interrupts for this. Our IRQ handlers will crap arch\/sparc\/mm\/srmmu.c: \/* Clear any crap from the cache or else&#8230; *\/ arch\/sparc\/mm\/srmmu.c: [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"ep_exclude_from_search":false,"footnotes":""},"categories":[3],"tags":[],"class_list":["post-307","post","type-post","status-publish","format-standard","hentry","category-linux"],"aioseo_notices":[],"views":32122,"_links":{"self":[{"href":"https:\/\/www.void.gr\/kargig\/blog\/wp-json\/wp\/v2\/posts\/307","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.void.gr\/kargig\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.void.gr\/kargig\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.void.gr\/kargig\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.void.gr\/kargig\/blog\/wp-json\/wp\/v2\/comments?post=307"}],"version-history":[{"count":0,"href":"https:\/\/www.void.gr\/kargig\/blog\/wp-json\/wp\/v2\/posts\/307\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.void.gr\/kargig\/blog\/wp-json\/wp\/v2\/media?parent=307"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.void.gr\/kargig\/blog\/wp-json\/wp\/v2\/categories?post=307"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.void.gr\/kargig\/blog\/wp-json\/wp\/v2\/tags?post=307"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}