diff --git a/Documentation/kernel-docs.txt b/Documentation/kernel-docs.txt
index 177f7dc..341fef8 100644
--- a/Documentation/kernel-docs.txt
+++ b/Documentation/kernel-docs.txt
@@ -39,640 +39,640 @@
 ON-LINE DOCS
 ------------
 
-     * Title: **Linux Device Drivers, Third Edition**
+    * Title: **Linux Device Drivers, Third Edition**
 
-       :Author: Jonathan Corbet, Alessandro Rubini, Greg Kroah-Hartman
-       :URL: http://lwn.net/Kernel/LDD3/
-       :Description: A 600-page book covering the (2.6.10) driver
-         programming API and kernel hacking in general.  Available under the
-         Creative Commons Attribution-ShareAlike 2.0 license.
+      :Author: Jonathan Corbet, Alessandro Rubini, Greg Kroah-Hartman
+      :URL: http://lwn.net/Kernel/LDD3/
+      :Description: A 600-page book covering the (2.6.10) driver
+        programming API and kernel hacking in general.  Available under the
+        Creative Commons Attribution-ShareAlike 2.0 license.
 
-     * Title: **The Linux Kernel**
+    * Title: **The Linux Kernel**
 
-       :Author: David A. Rusling.
-       :URL: http://www.tldp.org/LDP/tlk/tlk.html
-       :Keywords: everything!, book.
-       :Description: On line, 200 pages book describing most aspects of
-         the Linux Kernel. Probably, the first reference for beginners.
-         Lots of illustrations explaining data structures use and
-         relationships in the purest Richard W. Stevens' style. Contents:
-         "1.-Hardware Basics, 2.-Software Basics, 3.-Memory Management,
-         4.-Processes, 5.-Interprocess Communication Mechanisms, 6.-PCI,
-         7.-Interrupts and Interrupt Handling, 8.-Device Drivers, 9.-The
-         File system, 10.-Networks, 11.-Kernel Mechanisms, 12.-Modules,
-         13.-The Linux Kernel Sources, A.-Linux Data Structures, B.-The
-         Alpha AXP Processor, C.-Useful Web and FTP Sites, D.-The GNU
-         General Public License, Glossary". In short: a must have.
+      :Author: David A. Rusling.
+      :URL: http://www.tldp.org/LDP/tlk/tlk.html
+      :Keywords: everything!, book.
+      :Description: On line, 200 pages book describing most aspects of
+        the Linux Kernel. Probably, the first reference for beginners.
+        Lots of illustrations explaining data structures use and
+        relationships in the purest Richard W. Stevens' style. Contents:
+        "1.-Hardware Basics, 2.-Software Basics, 3.-Memory Management,
+        4.-Processes, 5.-Interprocess Communication Mechanisms, 6.-PCI,
+        7.-Interrupts and Interrupt Handling, 8.-Device Drivers, 9.-The
+        File system, 10.-Networks, 11.-Kernel Mechanisms, 12.-Modules,
+        13.-The Linux Kernel Sources, A.-Linux Data Structures, B.-The
+        Alpha AXP Processor, C.-Useful Web and FTP Sites, D.-The GNU
+        General Public License, Glossary". In short: a must have.
 
-     * Title: **Linux Device Drivers, 2nd Edition**
+    * Title: **Linux Device Drivers, 2nd Edition**
 
-       :Author: Alessandro Rubini and Jonathan Corbet.
-       :URL: http://www.xml.com/ldd/chapter/book/index.html
-       :Keywords: device drivers, modules, debugging, memory, hardware,
-         interrupt handling, char drivers, block drivers, kmod, mmap, DMA,
-         buses.
-       :Description: O'Reilly's popular book, now also on-line under the
-         GNU Free Documentation License.
-       :Notes: You can also buy it in paper-form from O'Reilly. See below
-         under BOOKS (Not on-line).
+      :Author: Alessandro Rubini and Jonathan Corbet.
+      :URL: http://www.xml.com/ldd/chapter/book/index.html
+      :Keywords: device drivers, modules, debugging, memory, hardware,
+        interrupt handling, char drivers, block drivers, kmod, mmap, DMA,
+        buses.
+      :Description: O'Reilly's popular book, now also on-line under the
+        GNU Free Documentation License.
+      :Notes: You can also buy it in paper-form from O'Reilly. See below
+        under BOOKS (Not on-line).
 
-     * Title: **Conceptual Architecture of the Linux Kernel**
+    * Title: **Conceptual Architecture of the Linux Kernel**
 
-       :Author: Ivan T. Bowman.
-       :URL: http://plg.uwaterloo.ca/
-       :Keywords: conceptual software architecture, extracted design,
-         reverse engineering, system structure.
-       :Description: Conceptual software architecture of the Linux kernel,
-         automatically extracted from the source code. Very detailed. Good
-         figures. Gives good overall kernel understanding.
+      :Author: Ivan T. Bowman.
+      :URL: http://plg.uwaterloo.ca/
+      :Keywords: conceptual software architecture, extracted design,
+        reverse engineering, system structure.
+      :Description: Conceptual software architecture of the Linux kernel,
+        automatically extracted from the source code. Very detailed. Good
+        figures. Gives good overall kernel understanding.
 
-     * Title: **Concrete Architecture of the Linux Kernel**
+    * Title: **Concrete Architecture of the Linux Kernel**
 
-       :Author: Ivan T. Bowman, Saheem Siddiqi, and Meyer C. Tanuan.
-       :URL: http://plg.uwaterloo.ca/
-       :Keywords: concrete architecture, extracted design, reverse
-         engineering, system structure, dependencies.
-       :Description: Concrete architecture of the Linux kernel,
-         automatically extracted from the source code. Very detailed. Good
-         figures. Gives good overall kernel understanding. This papers
-         focus on lower details than its predecessor (files, variables...).
+      :Author: Ivan T. Bowman, Saheem Siddiqi, and Meyer C. Tanuan.
+      :URL: http://plg.uwaterloo.ca/
+      :Keywords: concrete architecture, extracted design, reverse
+        engineering, system structure, dependencies.
+      :Description: Concrete architecture of the Linux kernel,
+        automatically extracted from the source code. Very detailed. Good
+        figures. Gives good overall kernel understanding. This papers
+        focus on lower details than its predecessor (files, variables...).
 
-     * Title: **Linux as a Case Study: Its Extracted Software Architecture**
+    * Title: **Linux as a Case Study: Its Extracted Software Architecture**
 
-       :Author: Ivan T. Bowman, Richard C. Holt and Neil V. Brewster.
-       :URL: http://plg.uwaterloo.ca/
-       :Keywords: software architecture, architecture recovery,
-         redocumentation.
-       :Description: Paper appeared at ICSE'99, Los Angeles, May 16-22,
-         1999. A mixture of the previous two documents from the same
-         author.
+      :Author: Ivan T. Bowman, Richard C. Holt and Neil V. Brewster.
+      :URL: http://plg.uwaterloo.ca/
+      :Keywords: software architecture, architecture recovery,
+        redocumentation.
+      :Description: Paper appeared at ICSE'99, Los Angeles, May 16-22,
+        1999. A mixture of the previous two documents from the same
+        author.
 
-     * Title: **Overview of the Virtual File System**
+    * Title: **Overview of the Virtual File System**
 
-       :Author: Richard Gooch.
-       :URL: http://www.mjmwired.net/kernel/Documentation/filesystems/vfs.txt
-       :Keywords: VFS, File System, mounting filesystems, opening files,
-         dentries, dcache.
-       :Description: Brief introduction to the Linux Virtual File System.
-         What is it, how it works, operations taken when opening a file or
-         mounting a file system and description of important data
-         structures explaining the purpose of each of their entries.
+      :Author: Richard Gooch.
+      :URL: http://www.mjmwired.net/kernel/Documentation/filesystems/vfs.txt
+      :Keywords: VFS, File System, mounting filesystems, opening files,
+        dentries, dcache.
+      :Description: Brief introduction to the Linux Virtual File System.
+        What is it, how it works, operations taken when opening a file or
+        mounting a file system and description of important data
+        structures explaining the purpose of each of their entries.
 
-     * Title: **The Linux RAID-1, 4, 5 Code**
+    * Title: **The Linux RAID-1, 4, 5 Code**
 
-       :Author: Ingo Molnar, Gadi Oxman and Miguel de Icaza.
-       :URL: http://www.linuxjournal.com/article.php?sid=2391
-       :Keywords: RAID, MD driver.
-       :Description: Linux Journal Kernel Korner article. Here is its
-       :Abstract: *A description of the implementation of the RAID-1,
-         RAID-4 and RAID-5 personalities of the MD device driver in the
-         Linux kernel, providing users with high performance and reliable,
-         secondary-storage capability using software*.
+      :Author: Ingo Molnar, Gadi Oxman and Miguel de Icaza.
+      :URL: http://www.linuxjournal.com/article.php?sid=2391
+      :Keywords: RAID, MD driver.
+      :Description: Linux Journal Kernel Korner article. Here is its
+      :Abstract: *A description of the implementation of the RAID-1,
+        RAID-4 and RAID-5 personalities of the MD device driver in the
+        Linux kernel, providing users with high performance and reliable,
+        secondary-storage capability using software*.
 
-     * Title: **Dynamic Kernels: Modularized Device Drivers**
+    * Title: **Dynamic Kernels: Modularized Device Drivers**
 
-       :Author: Alessandro Rubini.
-       :URL: http://www.linuxjournal.com/article.php?sid=1219
-       :Keywords: device driver, module, loading/unloading modules,
-         allocating resources.
-       :Description: Linux Journal Kernel Korner article. Here is its
-       :Abstract: *This is the first of a series of four articles
-         co-authored by Alessandro Rubini and Georg Zezchwitz which present
-         a practical approach to writing Linux device drivers as kernel
-         loadable modules. This installment presents an introduction to the
-         topic, preparing the reader to understand next month's
-         installment*.
+      :Author: Alessandro Rubini.
+      :URL: http://www.linuxjournal.com/article.php?sid=1219
+      :Keywords: device driver, module, loading/unloading modules,
+        allocating resources.
+      :Description: Linux Journal Kernel Korner article. Here is its
+      :Abstract: *This is the first of a series of four articles
+        co-authored by Alessandro Rubini and Georg Zezchwitz which present
+        a practical approach to writing Linux device drivers as kernel
+        loadable modules. This installment presents an introduction to the
+        topic, preparing the reader to understand next month's
+        installment*.
 
-     * Title: **Dynamic Kernels: Discovery**
+    * Title: **Dynamic Kernels: Discovery**
 
-       :Author: Alessandro Rubini.
-       :URL: http://www.linuxjournal.com/article.php?sid=1220
-       :Keywords: character driver, init_module, clean_up module,
-         autodetection, mayor number, minor number, file operations,
-         open(), close().
-       :Description: Linux Journal Kernel Korner article. Here is its
-       :Abstract: *This article, the second of four, introduces part of
-         the actual code to create custom module implementing a character
-         device driver. It describes the code for module initialization and
-         cleanup, as well as the open() and close() system calls*.
+      :Author: Alessandro Rubini.
+      :URL: http://www.linuxjournal.com/article.php?sid=1220
+      :Keywords: character driver, init_module, clean_up module,
+        autodetection, mayor number, minor number, file operations,
+        open(), close().
+      :Description: Linux Journal Kernel Korner article. Here is its
+      :Abstract: *This article, the second of four, introduces part of
+        the actual code to create custom module implementing a character
+        device driver. It describes the code for module initialization and
+        cleanup, as well as the open() and close() system calls*.
 
-     * Title: **On submitting kernel Patches**
+    * Title: **On submitting kernel Patches**
 
-       :Author: Andi Kleen
-       :URL: http://halobates.de/on-submitting-kernel-patches.pdf
-       :Keywords: patches, review process, types of submissions, basic rules, case studies
-       :Description: This paper gives several experience values on what types of patches
-         there are and how likley they get merged.
-       :Abstract:
-         [...]. This paper examines some common problems for
-          submitting larger changes and some strategies to avoid problems.
+      :Author: Andi Kleen
+      :URL: http://halobates.de/on-submitting-kernel-patches.pdf
+      :Keywords: patches, review process, types of submissions, basic rules, case studies
+      :Description: This paper gives several experience values on what types of patches
+        there are and how likley they get merged.
+      :Abstract:
+        [...]. This paper examines some common problems for
+         submitting larger changes and some strategies to avoid problems.
 
-     * Title: **Tracing the Way of Data in a TCP Connection through the Linux Kernel**
-       :Author: Richard Sailer
-       :URL: https://archive.org/details/linux_kernel_data_flow_short_paper
-       :Keywords: Linux Kernel Networking, TCP, tracing, ftrace
-       :Description: A seminar paper explaining ftrace and how to use it for
-         understanding linux kernel internals,
-         illustrated at tracing the way of a TCP packet through the kernel.
-       :Abstract: *This short paper outlines the usage of ftrace a tracing framework
-         as a tool to understand a running Linux system.
-         Having obtained a trace-log a kernel hacker can read and understand
-         source code more determined and with context.
-         In a detailed example this approach is demonstrated in tracing
-         and the way of data in a TCP Connection through the kernel.
-         Finally this trace-log is used as base for more a exact conceptual
-         exploration and description of the Linux TCP/IP implementation.*
+    * Title: **Tracing the Way of Data in a TCP Connection through the Linux Kernel**
+      :Author: Richard Sailer
+      :URL: https://archive.org/details/linux_kernel_data_flow_short_paper
+      :Keywords: Linux Kernel Networking, TCP, tracing, ftrace
+      :Description: A seminar paper explaining ftrace and how to use it for
+        understanding linux kernel internals,
+        illustrated at tracing the way of a TCP packet through the kernel.
+      :Abstract: *This short paper outlines the usage of ftrace a tracing framework
+        as a tool to understand a running Linux system.
+        Having obtained a trace-log a kernel hacker can read and understand
+        source code more determined and with context.
+        In a detailed example this approach is demonstrated in tracing
+        and the way of data in a TCP Connection through the kernel.
+        Finally this trace-log is used as base for more a exact conceptual
+        exploration and description of the Linux TCP/IP implementation.*
 
-     * Title: **The Devil's in the Details**
+    * Title: **The Devil's in the Details**
 
-       :Author: Georg v. Zezschwitz and Alessandro Rubini.
-       :URL: http://www.linuxjournal.com/article.php?sid=1221
-       :Keywords: read(), write(), select(), ioctl(), blocking/non
-         blocking mode, interrupt handler.
-       :Description: Linux Journal Kernel Korner article. Here is its
-       :Abstract: *This article, the third of four on writing character
-         device drivers, introduces concepts of reading, writing, and using
-         ioctl-calls*.
+      :Author: Georg v. Zezschwitz and Alessandro Rubini.
+      :URL: http://www.linuxjournal.com/article.php?sid=1221
+      :Keywords: read(), write(), select(), ioctl(), blocking/non
+        blocking mode, interrupt handler.
+      :Description: Linux Journal Kernel Korner article. Here is its
+      :Abstract: *This article, the third of four on writing character
+        device drivers, introduces concepts of reading, writing, and using
+        ioctl-calls*.
 
-     * Title: **Dissecting Interrupts and Browsing DMA**
+    * Title: **Dissecting Interrupts and Browsing DMA**
 
-       :Author: Alessandro Rubini and Georg v. Zezschwitz.
-       :URL: http://www.linuxjournal.com/article.php?sid=1222
-       :Keywords: interrupts, irqs, DMA, bottom halves, task queues.
-       :Description: Linux Journal Kernel Korner article. Here is its
-       :Abstract: *This is the fourth in a series of articles about
-         writing character device drivers as loadable kernel modules. This
-         month, we further investigate the field of interrupt handling.
-         Though it is conceptually simple, practical limitations and
-         constraints make this an ''interesting'' part of device driver
-         writing, and several different facilities have been provided for
-         different situations. We also investigate the complex topic of
-         DMA*.
+      :Author: Alessandro Rubini and Georg v. Zezschwitz.
+      :URL: http://www.linuxjournal.com/article.php?sid=1222
+      :Keywords: interrupts, irqs, DMA, bottom halves, task queues.
+      :Description: Linux Journal Kernel Korner article. Here is its
+      :Abstract: *This is the fourth in a series of articles about
+        writing character device drivers as loadable kernel modules. This
+        month, we further investigate the field of interrupt handling.
+        Though it is conceptually simple, practical limitations and
+        constraints make this an ''interesting'' part of device driver
+        writing, and several different facilities have been provided for
+        different situations. We also investigate the complex topic of
+        DMA*.
 
-     * Title: **Device Drivers Concluded**
+    * Title: **Device Drivers Concluded**
 
-       :Author: Georg v. Zezschwitz.
-       :URL: http://www.linuxjournal.com/article.php?sid=1287
-       :Keywords: address spaces, pages, pagination, page management,
-         demand loading, swapping, memory protection, memory mapping, mmap,
-         virtual memory areas (VMAs), vremap, PCI.
-       :Description: Finally, the above turned out into a five articles
-         series. This latest one's introduction reads: "This is the last of
-         five articles about character device drivers. In this final
-         section, Georg deals with memory mapping devices, beginning with
-         an overall description of the Linux memory management concepts".
+      :Author: Georg v. Zezschwitz.
+      :URL: http://www.linuxjournal.com/article.php?sid=1287
+      :Keywords: address spaces, pages, pagination, page management,
+        demand loading, swapping, memory protection, memory mapping, mmap,
+        virtual memory areas (VMAs), vremap, PCI.
+      :Description: Finally, the above turned out into a five articles
+        series. This latest one's introduction reads: "This is the last of
+        five articles about character device drivers. In this final
+        section, Georg deals with memory mapping devices, beginning with
+        an overall description of the Linux memory management concepts".
 
-     * Title: **Network Buffers And Memory Management**
+    * Title: **Network Buffers And Memory Management**
 
-       :Author: Alan Cox.
-       :URL: http://www.linuxjournal.com/article.php?sid=1312
-       :Keywords: sk_buffs, network devices, protocol/link layer
-         variables, network devices flags, transmit, receive,
-         configuration, multicast.
-       :Description: Linux Journal Kernel Korner.
-       :Abstract: *Writing a network device driver for Linux is fundamentally
-         simple---most of the complexity (other than talking to the
-         hardware) involves managing network packets in memory*.
+      :Author: Alan Cox.
+      :URL: http://www.linuxjournal.com/article.php?sid=1312
+      :Keywords: sk_buffs, network devices, protocol/link layer
+        variables, network devices flags, transmit, receive,
+        configuration, multicast.
+      :Description: Linux Journal Kernel Korner.
+      :Abstract: *Writing a network device driver for Linux is fundamentally
+        simple---most of the complexity (other than talking to the
+        hardware) involves managing network packets in memory*.
 
-     * Title: **Linux Kernel Hackers' Guide**
+    * Title: **Linux Kernel Hackers' Guide**
 
-       :Author: Michael K. Johnson.
-       :URL: http://www.tldp.org/LDP/khg/HyperNews/get/khg.html
-       :Keywords: device drivers, files, VFS, kernel interface, character vs
-         block devices, hardware interrupts, scsi, DMA, access to user memory,
-         memory allocation, timers.
-       :Description: A guide designed to help you get up to speed on the
-         concepts that are not intuitevly obvious, and to document the internal
-         structures of Linux.
+      :Author: Michael K. Johnson.
+      :URL: http://www.tldp.org/LDP/khg/HyperNews/get/khg.html
+      :Keywords: device drivers, files, VFS, kernel interface, character vs
+        block devices, hardware interrupts, scsi, DMA, access to user memory,
+        memory allocation, timers.
+      :Description: A guide designed to help you get up to speed on the
+        concepts that are not intuitevly obvious, and to document the internal
+        structures of Linux.
 
-     * Title: **The Venus kernel interface**
+    * Title: **The Venus kernel interface**
 
-       :Author: Peter J. Braam.
-       :URL: http://www.coda.cs.cmu.edu/doc/html/kernel-venus-protocol.html
-       :Keywords: coda, filesystem, venus, cache manager.
-       :Description: "This document describes the communication between
-         Venus and kernel level file system code needed for the operation
-         of the Coda filesystem. This version document is meant to describe
-         the current interface (version 1.0) as well as improvements we
-         envisage".
+      :Author: Peter J. Braam.
+      :URL: http://www.coda.cs.cmu.edu/doc/html/kernel-venus-protocol.html
+      :Keywords: coda, filesystem, venus, cache manager.
+      :Description: "This document describes the communication between
+        Venus and kernel level file system code needed for the operation
+        of the Coda filesystem. This version document is meant to describe
+        the current interface (version 1.0) as well as improvements we
+        envisage".
 
-     * Title: **Design and Implementation of the Second Extended Filesystem**
+    * Title: **Design and Implementation of the Second Extended Filesystem**
 
-       :Author: Rémy Card, Theodore Ts'o, Stephen Tweedie.
-       :URL: http://web.mit.edu/tytso/www/linux/ext2intro.html
-       :Keywords: ext2, linux fs history, inode, directory, link, devices,
-         VFS, physical structure, performance, benchmarks, ext2fs library,
-         ext2fs tools, e2fsck.
-       :Description: Paper written by three of the top ext2 hackers.
-         Covers Linux filesystems history, ext2 motivation, ext2 features,
-         design, physical structure on disk, performance, benchmarks,
-         e2fsck's passes description... A must read!
-       :Notes: This paper was first published in the Proceedings of the
-         First Dutch International Symposium on Linux, ISBN 90-367-0385-9.
+      :Author: Rémy Card, Theodore Ts'o, Stephen Tweedie.
+      :URL: http://web.mit.edu/tytso/www/linux/ext2intro.html
+      :Keywords: ext2, linux fs history, inode, directory, link, devices,
+        VFS, physical structure, performance, benchmarks, ext2fs library,
+        ext2fs tools, e2fsck.
+      :Description: Paper written by three of the top ext2 hackers.
+        Covers Linux filesystems history, ext2 motivation, ext2 features,
+        design, physical structure on disk, performance, benchmarks,
+        e2fsck's passes description... A must read!
+      :Notes: This paper was first published in the Proceedings of the
+        First Dutch International Symposium on Linux, ISBN 90-367-0385-9.
 
-     * Title: **Analysis of the Ext2fs structure**
+    * Title: **Analysis of the Ext2fs structure**
 
-       :Author: Louis-Dominique Dubeau.
-       :URL: http://teaching.csse.uwa.edu.au/units/CITS2002/fs-ext2/
-       :Keywords: ext2, filesystem, ext2fs.
-       :Description: Description of ext2's blocks, directories, inodes,
-         bitmaps, invariants...
+      :Author: Louis-Dominique Dubeau.
+      :URL: http://teaching.csse.uwa.edu.au/units/CITS2002/fs-ext2/
+      :Keywords: ext2, filesystem, ext2fs.
+      :Description: Description of ext2's blocks, directories, inodes,
+        bitmaps, invariants...
 
-     * Title: **Linux Kernel Module Programming Guide**
+    * Title: **Linux Kernel Module Programming Guide**
 
-       :Author: Ori Pomerantz.
-       :URL: http://tldp.org/LDP/lkmpg/2.6/html/index.html
-       :Keywords: modules, GPL book, /proc, ioctls, system calls,
-         interrupt handlers .
-       :Description: Very nice 92 pages GPL book on the topic of modules
-         programming. Lots of examples.
+      :Author: Ori Pomerantz.
+      :URL: http://tldp.org/LDP/lkmpg/2.6/html/index.html
+      :Keywords: modules, GPL book, /proc, ioctls, system calls,
+        interrupt handlers .
+      :Description: Very nice 92 pages GPL book on the topic of modules
+        programming. Lots of examples.
 
-     * Title: **I/O Event Handling Under Linux**
+    * Title: **I/O Event Handling Under Linux**
 
-       :Author: Richard Gooch.
-       :Keywords: IO, I/O, select(2), poll(2), FDs, aio_read(2), readiness
-         event queues.
-       :Description: From the Introduction: "I/O Event handling is about
-         how your Operating System allows you to manage a large number of
-         open files (file descriptors in UNIX/POSIX, or FDs) in your
-         application. You want the OS to notify you when FDs become active
-         (have data ready to be read or are ready for writing). Ideally you
-         want a mechanism that is scalable. This means a large number of
-         inactive FDs cost very little in memory and CPU time to manage".
+      :Author: Richard Gooch.
+      :Keywords: IO, I/O, select(2), poll(2), FDs, aio_read(2), readiness
+        event queues.
+      :Description: From the Introduction: "I/O Event handling is about
+        how your Operating System allows you to manage a large number of
+        open files (file descriptors in UNIX/POSIX, or FDs) in your
+        application. You want the OS to notify you when FDs become active
+        (have data ready to be read or are ready for writing). Ideally you
+        want a mechanism that is scalable. This means a large number of
+        inactive FDs cost very little in memory and CPU time to manage".
 
-     * Title: **The Kernel Hacking HOWTO**
+    * Title: **The Kernel Hacking HOWTO**
 
-       :Author: Various Talented People, and Rusty.
-       :Location: in kernel tree, Documentation/DocBook/kernel-hacking.tmpl
-         (must be built as "make {htmldocs | psdocs | pdfdocs})
-       :Keywords: HOWTO, kernel contexts, deadlock, locking, modules,
-         symbols, return conventions.
-       :Description: From the Introduction: "Please understand that I
-         never wanted to write this document, being grossly underqualified,
-         but I always wanted to read it, and this was the only way. I
-         simply explain some best practices, and give reading entry-points
-         into the kernel sources. I avoid implementation details: that's
-         what the code is for, and I ignore whole tracts of useful
-         routines. This document assumes familiarity with C, and an
-         understanding of what the kernel is, and how it is used. It was
-         originally written for the 2.3 kernels, but nearly all of it
-         applies to 2.2 too; 2.0 is slightly different".
+      :Author: Various Talented People, and Rusty.
+      :Location: in kernel tree, Documentation/DocBook/kernel-hacking.tmpl
+        (must be built as "make {htmldocs | psdocs | pdfdocs})
+      :Keywords: HOWTO, kernel contexts, deadlock, locking, modules,
+        symbols, return conventions.
+      :Description: From the Introduction: "Please understand that I
+        never wanted to write this document, being grossly underqualified,
+        but I always wanted to read it, and this was the only way. I
+        simply explain some best practices, and give reading entry-points
+        into the kernel sources. I avoid implementation details: that's
+        what the code is for, and I ignore whole tracts of useful
+        routines. This document assumes familiarity with C, and an
+        understanding of what the kernel is, and how it is used. It was
+        originally written for the 2.3 kernels, but nearly all of it
+        applies to 2.2 too; 2.0 is slightly different".
 
-     * Title: **Writing an ALSA Driver**
+    * Title: **Writing an ALSA Driver**
 
-       :Author: Takashi Iwai <tiwai@suse.de>
-       :URL: http://www.alsa-project.org/~iwai/writing-an-alsa-driver/index.html
-       :Keywords: ALSA, sound, soundcard, driver, lowlevel, hardware.
-       :Description: Advanced Linux Sound Architecture for developers,
-         both at kernel and user-level sides. ALSA is the Linux kernel
-         sound architecture in the 2.6 kernel version.
+      :Author: Takashi Iwai <tiwai@suse.de>
+      :URL: http://www.alsa-project.org/~iwai/writing-an-alsa-driver/index.html
+      :Keywords: ALSA, sound, soundcard, driver, lowlevel, hardware.
+      :Description: Advanced Linux Sound Architecture for developers,
+        both at kernel and user-level sides. ALSA is the Linux kernel
+        sound architecture in the 2.6 kernel version.
 
-     * Title: **Linux Kernel Mailing List Glossary**
+    * Title: **Linux Kernel Mailing List Glossary**
 
-       :Author: various
-       :URL: http://kernelnewbies.org/glossary/
-       :Keywords: glossary, terms, linux-kernel.
-       :Description: From the introduction: "This glossary is intended as
-         a brief description of some of the acronyms and terms you may hear
-         during discussion of the Linux kernel".
+      :Author: various
+      :URL: http://kernelnewbies.org/glossary/
+      :Keywords: glossary, terms, linux-kernel.
+      :Description: From the introduction: "This glossary is intended as
+        a brief description of some of the acronyms and terms you may hear
+        during discussion of the Linux kernel".
 
-     * Title: **Linux Kernel Locking HOWTO**
+    * Title: **Linux Kernel Locking HOWTO**
 
-       :Author: Various Talented People, and Rusty.
-       :Location: in kernel tree, Documentation/DocBook/kernel-locking.tmpl
-         (must be built as "make {htmldocs | psdocs | pdfdocs})
-       :Keywords: locks, locking, spinlock, semaphore, atomic, race
-         condition, bottom halves, tasklets, softirqs.
-       :Description: The title says it all: document describing the
-         locking system in the Linux Kernel either in uniprocessor or SMP
-         systems.
-       :Notes: "It was originally written for the later (>2.3.47) 2.3
-         kernels, but most of it applies to 2.2 too; 2.0 is slightly
-         different". Freely redistributable under the conditions of the GNU
-         General Public License.
+      :Author: Various Talented People, and Rusty.
+      :Location: in kernel tree, Documentation/DocBook/kernel-locking.tmpl
+        (must be built as "make {htmldocs | psdocs | pdfdocs})
+      :Keywords: locks, locking, spinlock, semaphore, atomic, race
+        condition, bottom halves, tasklets, softirqs.
+      :Description: The title says it all: document describing the
+        locking system in the Linux Kernel either in uniprocessor or SMP
+        systems.
+      :Notes: "It was originally written for the later (>2.3.47) 2.3
+        kernels, but most of it applies to 2.2 too; 2.0 is slightly
+        different". Freely redistributable under the conditions of the GNU
+        General Public License.
 
-     * Title: **Global spinlock list and usage**
+    * Title: **Global spinlock list and usage**
 
-       :Author: Rick Lindsley.
-       :URL: http://lse.sourceforge.net/lockhier/global-spin-lock
-       :Keywords: spinlock.
-       :Description: This is an attempt to document both the existence and
-         usage of the spinlocks in the Linux 2.4.5 kernel. Comprehensive
-         list of spinlocks showing when they are used, which functions
-         access them, how each lock is acquired, under what conditions it
-         is held, whether interrupts can occur or not while it is held...
+      :Author: Rick Lindsley.
+      :URL: http://lse.sourceforge.net/lockhier/global-spin-lock
+      :Keywords: spinlock.
+      :Description: This is an attempt to document both the existence and
+        usage of the spinlocks in the Linux 2.4.5 kernel. Comprehensive
+        list of spinlocks showing when they are used, which functions
+        access them, how each lock is acquired, under what conditions it
+        is held, whether interrupts can occur or not while it is held...
 
-     * Title: **How To Make Sure Your Driver Will Work On The Power Macintosh**
+    * Title: **How To Make Sure Your Driver Will Work On The Power Macintosh**
 
-       :Author: Paul Mackerras.
-       :URL: http://www.linux-mag.com/id/261
-       :Keywords: Mac, Power Macintosh, porting, drivers, compatibility.
-       :Description: The title says it all.
+      :Author: Paul Mackerras.
+      :URL: http://www.linux-mag.com/id/261
+      :Keywords: Mac, Power Macintosh, porting, drivers, compatibility.
+      :Description: The title says it all.
 
-     * Title: **An Introduction to SCSI Drivers**
+    * Title: **An Introduction to SCSI Drivers**
 
-       :Author: Alan Cox.
-       :URL: http://www.linux-mag.com/id/284
-       :Keywords: SCSI, device, driver.
-       :Description: The title says it all.
+      :Author: Alan Cox.
+      :URL: http://www.linux-mag.com/id/284
+      :Keywords: SCSI, device, driver.
+      :Description: The title says it all.
 
-     * Title: **Advanced SCSI Drivers And Other Tales**
+    * Title: **Advanced SCSI Drivers And Other Tales**
 
-       :Author: Alan Cox.
-       :URL: http://www.linux-mag.com/id/307
-       :Keywords: SCSI, device, driver, advanced.
-       :Description: The title says it all.
+      :Author: Alan Cox.
+      :URL: http://www.linux-mag.com/id/307
+      :Keywords: SCSI, device, driver, advanced.
+      :Description: The title says it all.
 
-     * Title: **Writing Linux Mouse Drivers**
+    * Title: **Writing Linux Mouse Drivers**
 
-       :Author: Alan Cox.
-       :URL: http://www.linux-mag.com/id/330
-       :Keywords: mouse, driver, gpm.
-       :Description: The title says it all.
+      :Author: Alan Cox.
+      :URL: http://www.linux-mag.com/id/330
+      :Keywords: mouse, driver, gpm.
+      :Description: The title says it all.
 
-     * Title: **More on Mouse Drivers**
+    * Title: **More on Mouse Drivers**
 
-       :Author: Alan Cox.
-       :URL: http://www.linux-mag.com/id/356
-       :Keywords: mouse, driver, gpm, races, asynchronous I/O.
-       :Description: The title still says it all.
+      :Author: Alan Cox.
+      :URL: http://www.linux-mag.com/id/356
+      :Keywords: mouse, driver, gpm, races, asynchronous I/O.
+      :Description: The title still says it all.
 
-     * Title: **Writing Video4linux Radio Driver**
+    * Title: **Writing Video4linux Radio Driver**
 
-       :Author: Alan Cox.
-       :URL: http://www.linux-mag.com/id/381
-       :Keywords: video4linux, driver, radio, radio devices.
-       :Description: The title says it all.
+      :Author: Alan Cox.
+      :URL: http://www.linux-mag.com/id/381
+      :Keywords: video4linux, driver, radio, radio devices.
+      :Description: The title says it all.
 
-     * Title: **Video4linux Drivers, Part 1: Video-Capture Device**
+    * Title: **Video4linux Drivers, Part 1: Video-Capture Device**
 
-       :Author: Alan Cox.
-       :URL: http://www.linux-mag.com/id/406
-       :Keywords: video4linux, driver, video capture, capture devices,
-         camera driver.
-       :Description: The title says it all.
+      :Author: Alan Cox.
+      :URL: http://www.linux-mag.com/id/406
+      :Keywords: video4linux, driver, video capture, capture devices,
+        camera driver.
+      :Description: The title says it all.
 
-     * Title: **Video4linux Drivers, Part 2: Video-capture Devices**
+    * Title: **Video4linux Drivers, Part 2: Video-capture Devices**
 
-       :Author: Alan Cox.
-       :URL: http://www.linux-mag.com/id/429
-       :Keywords: video4linux, driver, video capture, capture devices,
-         camera driver, control, query capabilities, capability, facility.
-       :Description: The title says it all.
+      :Author: Alan Cox.
+      :URL: http://www.linux-mag.com/id/429
+      :Keywords: video4linux, driver, video capture, capture devices,
+        camera driver, control, query capabilities, capability, facility.
+      :Description: The title says it all.
 
-     * Title: **Linux IP Networking. A Guide to the Implementation and Modification of the Linux Protocol Stack.**
+    * Title: **Linux IP Networking. A Guide to the Implementation and Modification of the Linux Protocol Stack.**
 
-       :Author: Glenn Herrin.
-       :URL: http://www.cs.unh.edu/cnrg/gherrin
-       :Keywords: network, networking, protocol, IP, UDP, TCP, connection,
-         socket, receiving, transmitting, forwarding, routing, packets,
-         modules, /proc, sk_buff, FIB, tags.
-       :Description: Excellent paper devoted to the Linux IP Networking,
-         explaining anything from the kernel's to the user space
-         configuration tools' code. Very good to get a general overview of
-         the kernel networking implementation and understand all steps
-         packets follow from the time they are received at the network
-         device till they are delivered to applications. The studied kernel
-         code is from 2.2.14 version. Provides code for a working packet
-         dropper example.
+      :Author: Glenn Herrin.
+      :URL: http://www.cs.unh.edu/cnrg/gherrin
+      :Keywords: network, networking, protocol, IP, UDP, TCP, connection,
+        socket, receiving, transmitting, forwarding, routing, packets,
+        modules, /proc, sk_buff, FIB, tags.
+      :Description: Excellent paper devoted to the Linux IP Networking,
+        explaining anything from the kernel's to the user space
+        configuration tools' code. Very good to get a general overview of
+        the kernel networking implementation and understand all steps
+        packets follow from the time they are received at the network
+        device till they are delivered to applications. The studied kernel
+        code is from 2.2.14 version. Provides code for a working packet
+        dropper example.
 
-     * Title: **Linux PCMCIA Programmer's Guide**
+    * Title: **Linux PCMCIA Programmer's Guide**
 
-       :Author: David Hinds.
-       :URL: http://pcmcia-cs.sourceforge.net/ftp/doc/PCMCIA-PROG.html
-       :Keywords: PCMCIA.
-       :Description: "This document describes how to write kernel device
-         drivers for the Linux PCMCIA Card Services interface. It also
-         describes how to write user-mode utilities for communicating with
-         Card Services.
+      :Author: David Hinds.
+      :URL: http://pcmcia-cs.sourceforge.net/ftp/doc/PCMCIA-PROG.html
+      :Keywords: PCMCIA.
+      :Description: "This document describes how to write kernel device
+        drivers for the Linux PCMCIA Card Services interface. It also
+        describes how to write user-mode utilities for communicating with
+        Card Services.
 
-     * Title: **A Linux vm README**
+    * Title: **A Linux vm README**
 
-       :Author: Kanoj Sarcar.
-       :URL: http://kos.enix.org/pub/linux-vmm.html
-       :Keywords: virtual memory, mm, pgd, vma, page, page flags, page
-         cache, swap cache, kswapd.
-       :Description: Telegraphic, short descriptions and definitions
-         relating the Linux virtual memory implementation.
+      :Author: Kanoj Sarcar.
+      :URL: http://kos.enix.org/pub/linux-vmm.html
+      :Keywords: virtual memory, mm, pgd, vma, page, page flags, page
+        cache, swap cache, kswapd.
+      :Description: Telegraphic, short descriptions and definitions
+        relating the Linux virtual memory implementation.
 
-     * Title: **(nearly) Complete Linux Loadable Kernel Modules. The definitive guide for hackers, virus coders and system administrators.**
+    * Title: **(nearly) Complete Linux Loadable Kernel Modules. The definitive guide for hackers, virus coders and system administrators.**
 
-       :Author: pragmatic/THC.
-       :URL: http://packetstormsecurity.org/docs/hack/LKM_HACKING.html
-       :Keywords: syscalls, intercept, hide, abuse, symbol table.
-       :Description: Interesting paper on how to abuse the Linux kernel in
-         order to intercept and modify syscalls, make
-         files/directories/processes invisible, become root, hijack ttys,
-         write kernel modules based virus... and solutions for admins to
-         avoid all those abuses.
-       :Notes: For 2.0.x kernels. Gives guidances to port it to 2.2.x
-         kernels.
+      :Author: pragmatic/THC.
+      :URL: http://packetstormsecurity.org/docs/hack/LKM_HACKING.html
+      :Keywords: syscalls, intercept, hide, abuse, symbol table.
+      :Description: Interesting paper on how to abuse the Linux kernel in
+        order to intercept and modify syscalls, make
+        files/directories/processes invisible, become root, hijack ttys,
+        write kernel modules based virus... and solutions for admins to
+        avoid all those abuses.
+      :Notes: For 2.0.x kernels. Gives guidances to port it to 2.2.x
+        kernels.
 
 BOOKS: (Not on-line)
 --------------------
 
-     * Title: **Linux Device Drivers**
+    * Title: **Linux Device Drivers**
 
-       :Author: Alessandro Rubini
-       :Publisher: O'Reilly & Associates
-       :Date: 1998
-       :Pages: 439
-       :ISBN: 1-56592-292-1
+      :Author: Alessandro Rubini
+      :Publisher: O'Reilly & Associates
+      :Date: 1998
+      :Pages: 439
+      :ISBN: 1-56592-292-1
 
-     * Title: **Linux Device Drivers, 2nd Edition**
+    * Title: **Linux Device Drivers, 2nd Edition**
 
-       :Author: Alessandro Rubini and Jonathan Corbet
-       :Publisher: O'Reilly & Associates
-       :Date: 2001
-       :Pages: 586
-       :ISBN: 0-59600-008-1
-       :Notes: Further information in
-         http://www.oreilly.com/catalog/linuxdrive2/
+      :Author: Alessandro Rubini and Jonathan Corbet
+      :Publisher: O'Reilly & Associates
+      :Date: 2001
+      :Pages: 586
+      :ISBN: 0-59600-008-1
+      :Notes: Further information in
+        http://www.oreilly.com/catalog/linuxdrive2/
 
-     * Title: **Linux Device Drivers, 3rd Edition**
+    * Title: **Linux Device Drivers, 3rd Edition**
 
-       :Authors: Jonathan Corbet, Alessandro Rubini, and Greg Kroah-Hartman
-       :Publisher: O'Reilly & Associates
-       :Date: 2005
-       :Pages: 636
-       :ISBN: 0-596-00590-3
-       :Notes: Further information in
-         http://www.oreilly.com/catalog/linuxdrive3/
-         PDF format, URL: http://lwn.net/Kernel/LDD3/
+      :Authors: Jonathan Corbet, Alessandro Rubini, and Greg Kroah-Hartman
+      :Publisher: O'Reilly & Associates
+      :Date: 2005
+      :Pages: 636
+      :ISBN: 0-596-00590-3
+      :Notes: Further information in
+        http://www.oreilly.com/catalog/linuxdrive3/
+        PDF format, URL: http://lwn.net/Kernel/LDD3/
 
-     * Title: **Linux Kernel Internals**
+    * Title: **Linux Kernel Internals**
 
-       :Author: Michael Beck
-       :Publisher: Addison-Wesley
-       :Date: 1997
-       :ISBN: 0-201-33143-8 (second edition)
+      :Author: Michael Beck
+      :Publisher: Addison-Wesley
+      :Date: 1997
+      :ISBN: 0-201-33143-8 (second edition)
 
-     * Title: **The Design of the UNIX Operating System**
+    * Title: **The Design of the UNIX Operating System**
 
-       :Author: Maurice J. Bach
-       :Publisher: Prentice Hall
-       :Date: 1986
-       :Pages: 471
-       :ISBN: 0-13-201757-1
+      :Author: Maurice J. Bach
+      :Publisher: Prentice Hall
+      :Date: 1986
+      :Pages: 471
+      :ISBN: 0-13-201757-1
 
-     * Title: **The Design and Implementation of the 4.3 BSD UNIX Operating System**
+    * Title: **The Design and Implementation of the 4.3 BSD UNIX Operating System**
 
-       :Author: Samuel J. Leffler, Marshall Kirk McKusick, Michael J
-         Karels, John S. Quarterman
-       :Publisher: Addison-Wesley
-       :Date: 1989 (reprinted with corrections on October, 1990)
-       :ISBN: 0-201-06196-1
+      :Author: Samuel J. Leffler, Marshall Kirk McKusick, Michael J
+        Karels, John S. Quarterman
+      :Publisher: Addison-Wesley
+      :Date: 1989 (reprinted with corrections on October, 1990)
+      :ISBN: 0-201-06196-1
 
-     * Title: **The Design and Implementation of the 4.4 BSD UNIX Operating System**
+    * Title: **The Design and Implementation of the 4.4 BSD UNIX Operating System**
 
-       :Author: Marshall Kirk McKusick, Keith Bostic, Michael J. Karels,
-         John S. Quarterman
-       :Publisher: Addison-Wesley
-       :Date: 1996
-       :ISBN: 0-201-54979-4
+      :Author: Marshall Kirk McKusick, Keith Bostic, Michael J. Karels,
+        John S. Quarterman
+      :Publisher: Addison-Wesley
+      :Date: 1996
+      :ISBN: 0-201-54979-4
 
-     * Title: **Programmation Linux 2.0 API systeme et fonctionnement du noyau**
+    * Title: **Programmation Linux 2.0 API systeme et fonctionnement du noyau**
 
-       :Author: Remy Card, Eric Dumas, Franck Mevel
-       :Publisher: Eyrolles
-       :Date: 1997
-       :Pages: 520
-       :ISBN: 2-212-08932-5
-       :Notes: French
+      :Author: Remy Card, Eric Dumas, Franck Mevel
+      :Publisher: Eyrolles
+      :Date: 1997
+      :Pages: 520
+      :ISBN: 2-212-08932-5
+      :Notes: French
 
-     * Title: **Unix internals -- the new frontiers**
+    * Title: **Unix internals -- the new frontiers**
 
-       :Author: Uresh Vahalia
-       :Publisher: Prentice Hall
-       :Date: 1996
-       :Pages: 600
-       :ISBN: 0-13-101908-2
+      :Author: Uresh Vahalia
+      :Publisher: Prentice Hall
+      :Date: 1996
+      :Pages: 600
+      :ISBN: 0-13-101908-2
 
-     * Title: **Programming for the real world - POSIX.4**
+    * Title: **Programming for the real world - POSIX.4**
 
-       :Author: Bill O. Gallmeister
-       :Publisher: O'Reilly & Associates, Inc
-       :Date: 1995
-       :Pages: ???
-       :ISBN: I-56592-074-0
-       :Notes: Though not being directly about Linux, Linux aims to be
-         POSIX. Good reference.
+      :Author: Bill O. Gallmeister
+      :Publisher: O'Reilly & Associates, Inc
+      :Date: 1995
+      :Pages: ???
+      :ISBN: I-56592-074-0
+      :Notes: Though not being directly about Linux, Linux aims to be
+        POSIX. Good reference.
 
-     * Title:  **UNIX  Systems  for  Modern Architectures: Symmetric Multiprocessing and Caching for Kernel Programmers**
+    * Title:  **UNIX  Systems  for  Modern Architectures: Symmetric Multiprocessing and Caching for Kernel Programmers**
 
-       :Author: Curt Schimmel
-       :Publisher: Addison Wesley
-       :Date: June, 1994
-       :Pages: 432
-       :ISBN: 0-201-63338-8
+      :Author: Curt Schimmel
+      :Publisher: Addison Wesley
+      :Date: June, 1994
+      :Pages: 432
+      :ISBN: 0-201-63338-8
 
-     * Title: **Linux Kernel Development, 3rd Edition**
+    * Title: **Linux Kernel Development, 3rd Edition**
 
-       :Author: Robert Love
-       :Publisher: Addison-Wesley
-       :Date: July, 2010
-       :Pages: 440
-       :ISBN: 978-0672329463
+      :Author: Robert Love
+      :Publisher: Addison-Wesley
+      :Date: July, 2010
+      :Pages: 440
+      :ISBN: 978-0672329463
 
-     * Title: **Linux Kernel Networking: Implementation and Theory**
+    * Title: **Linux Kernel Networking: Implementation and Theory**
 
-       :Author: Rami Rosen
-       :Publisher: Apress
-       :Date: December 22, 2013
-       :Pages: 648
-       :ISBN: 978-1430261964
+      :Author: Rami Rosen
+      :Publisher: Apress
+      :Date: December 22, 2013
+      :Pages: 648
+      :ISBN: 978-1430261964
 
-     * Title: **Linux Treiber entwickeln**
+    * Title: **Linux Treiber entwickeln**
 
-       :Author: Jürgen Quade, Eva-Katharina Kunst
-       :Publisher: dpunkt.verlag
-       :Date: Oct 2015 (4th edition)
-       :Pages: 688
-       :ISBN: 978-3-86490-288-8
-       :Note: German. The third edition from 2011 is
-          much cheaper and still quite up-to-date.
+      :Author: Jürgen Quade, Eva-Katharina Kunst
+      :Publisher: dpunkt.verlag
+      :Date: Oct 2015 (4th edition)
+      :Pages: 688
+      :ISBN: 978-3-86490-288-8
+      :Note: German. The third edition from 2011 is
+         much cheaper and still quite up-to-date.
 
 MISCELLANEOUS
 -------------
 
-     * Name: **linux/Documentation**
+    * Name: **linux/Documentation**
 
-       :Author: Many.
-       :URL: Just look inside your kernel sources.
-       :Keywords: anything, DocBook.
-       :Description: Documentation that comes with the kernel sources,
-         inside the Documentation directory. Some pages from this document
-         (including this document itself) have been moved there, and might
-         be more up to date than the web version.
+      :Author: Many.
+      :URL: Just look inside your kernel sources.
+      :Keywords: anything, DocBook.
+      :Description: Documentation that comes with the kernel sources,
+        inside the Documentation directory. Some pages from this document
+        (including this document itself) have been moved there, and might
+        be more up to date than the web version.
 
-     * Name: **Linux Kernel Source Reference**
+    * Name: **Linux Kernel Source Reference**
 
-       :Author: Thomas Graichen.
-       :URL: http://marc.info/?l=linux-kernel&m=96446640102205&w=4
-       :Keywords: CVS, web, cvsweb, browsing source code.
-       :Description: Web interface to a CVS server with the kernel
-         sources. "Here you can have a look at any file of the Linux kernel
-         sources of any version starting from 1.0 up to the (daily updated)
-         current version available. Also you can check the differences
-         between two versions of a file".
+      :Author: Thomas Graichen.
+      :URL: http://marc.info/?l=linux-kernel&m=96446640102205&w=4
+      :Keywords: CVS, web, cvsweb, browsing source code.
+      :Description: Web interface to a CVS server with the kernel
+        sources. "Here you can have a look at any file of the Linux kernel
+        sources of any version starting from 1.0 up to the (daily updated)
+        current version available. Also you can check the differences
+        between two versions of a file".
 
-     * Name: **Cross-Referencing Linux**
+    * Name: **Cross-Referencing Linux**
 
-       :URL: http://lxr.free-electrons.com/
-       :Keywords: Browsing source code.
-       :Description: Another web-based Linux kernel source code browser.
-         Lots of cross references to variables and functions. You can see
-         where they are defined and where they are used.
+      :URL: http://lxr.free-electrons.com/
+      :Keywords: Browsing source code.
+      :Description: Another web-based Linux kernel source code browser.
+        Lots of cross references to variables and functions. You can see
+        where they are defined and where they are used.
 
-     * Name: **Linux Weekly News**
+    * Name: **Linux Weekly News**
 
-       :URL: http://lwn.net
-       :Keywords: latest kernel news.
-       :Description: The title says it all. There's a fixed kernel section
-         summarizing developers' work, bug fixes, new features and versions
-         produced during the week. Published every Thursday.
+      :URL: http://lwn.net
+      :Keywords: latest kernel news.
+      :Description: The title says it all. There's a fixed kernel section
+        summarizing developers' work, bug fixes, new features and versions
+        produced during the week. Published every Thursday.
 
-     * Name: **Linux Virtual File System**
+    * Name: **Linux Virtual File System**
 
-       :Author: Peter J. Braam.
-       :URL: http://www.coda.cs.cmu.edu/doc/talks/linuxvfs/
-       :Keywords: slides, VFS, inode, superblock, dentry, dcache.
-       :Description: Set of slides, presumably from a presentation on the
-         Linux VFS layer. Covers version 2.1.x, with dentries and the
-         dcache.
+      :Author: Peter J. Braam.
+      :URL: http://www.coda.cs.cmu.edu/doc/talks/linuxvfs/
+      :Keywords: slides, VFS, inode, superblock, dentry, dcache.
+      :Description: Set of slides, presumably from a presentation on the
+        Linux VFS layer. Covers version 2.1.x, with dentries and the
+        dcache.
 
-     * Name: **The home page of Linux-MM**
+    * Name: **The home page of Linux-MM**
 
-       :Author: The Linux-MM team.
-       :URL: http://linux-mm.org/
-       :Keywords: memory management, Linux-MM, mm patches, TODO, docs,
-         mailing list.
-       :Description: Site devoted to Linux Memory Management development.
-         Memory related patches, HOWTOs, links, mm developers... Don't miss
-         it if you are interested in memory management development!
+      :Author: The Linux-MM team.
+      :URL: http://linux-mm.org/
+      :Keywords: memory management, Linux-MM, mm patches, TODO, docs,
+        mailing list.
+      :Description: Site devoted to Linux Memory Management development.
+        Memory related patches, HOWTOs, links, mm developers... Don't miss
+        it if you are interested in memory management development!
 
-     * Name: **Kernel Newbies IRC Channel and Website**
+    * Name: **Kernel Newbies IRC Channel and Website**
 
-       :URL: http://www.kernelnewbies.org
-       :Keywords: IRC, newbies, channel, asking doubts.
-       :Description: #kernelnewbies on irc.oftc.net.
-         #kernelnewbies is an IRC network dedicated to the 'newbie'
-         kernel hacker. The audience mostly consists of people who are
-         learning about the kernel, working on kernel projects or
-         professional kernel hackers that want to help less seasoned kernel
-         people.
-         #kernelnewbies is on the OFTC IRC Network.
-         Try irc.oftc.net as your server and then /join #kernelnewbies.
-         The kernelnewbies website also hosts articles, documents, FAQs...
+      :URL: http://www.kernelnewbies.org
+      :Keywords: IRC, newbies, channel, asking doubts.
+      :Description: #kernelnewbies on irc.oftc.net.
+        #kernelnewbies is an IRC network dedicated to the 'newbie'
+        kernel hacker. The audience mostly consists of people who are
+        learning about the kernel, working on kernel projects or
+        professional kernel hackers that want to help less seasoned kernel
+        people.
+        #kernelnewbies is on the OFTC IRC Network.
+        Try irc.oftc.net as your server and then /join #kernelnewbies.
+        The kernelnewbies website also hosts articles, documents, FAQs...
 
-     * Name: **linux-kernel mailing list archives and search engines**
+    * Name: **linux-kernel mailing list archives and search engines**
 
-       :URL: http://vger.kernel.org/vger-lists.html
-       :URL: http://www.uwsg.indiana.edu/hypermail/linux/kernel/index.html
-       :URL: http://groups.google.com/group/mlist.linux.kernel
-       :Keywords: linux-kernel, archives, search.
-       :Description: Some of the linux-kernel mailing list archivers. If
-         you have a better/another one, please let me know.
+      :URL: http://vger.kernel.org/vger-lists.html
+      :URL: http://www.uwsg.indiana.edu/hypermail/linux/kernel/index.html
+      :URL: http://groups.google.com/group/mlist.linux.kernel
+      :Keywords: linux-kernel, archives, search.
+      :Description: Some of the linux-kernel mailing list archivers. If
+        you have a better/another one, please let me know.
 
 -------
 
