Skip to content

Commit 821caa5

Browse files
authored
Merge pull request #342 from Jordymalone/fix-indent
Fix itemize indentation
2 parents 6e66ca7 + c394687 commit 821caa5

File tree

1 file changed

+29
-29
lines changed

1 file changed

+29
-29
lines changed

lkmpg.tex

Lines changed: 29 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -1561,12 +1561,12 @@ \section{System Calls}
15611561
For more information, check out the following:
15621562

15631563
\begin{itemize}
1564-
\item \href{https://lwn.net/Articles/804849/}{Cook: Security things in Linux v5.3}
1565-
\item \href{https://lwn.net/Articles/12211/}{Unexporting the system call table}
1566-
\item \href{https://lwn.net/Articles/810077/}{Control-flow integrity for the kernel}
1567-
\item \href{https://lwn.net/Articles/813350/}{Unexporting kallsyms\_lookup\_name()}
1568-
\item \href{https://www.kernel.org/doc/Documentation/kprobes.txt}{Kernel Probes (Kprobes)}
1569-
\item \href{https://lwn.net/Articles/569635/}{Kernel address space layout randomization}
1564+
\item \href{https://lwn.net/Articles/804849/}{Cook: Security things in Linux v5.3}
1565+
\item \href{https://lwn.net/Articles/12211/}{Unexporting the system call table}
1566+
\item \href{https://lwn.net/Articles/810077/}{Control-flow integrity for the kernel}
1567+
\item \href{https://lwn.net/Articles/813350/}{Unexporting kallsyms\_lookup\_name()}
1568+
\item \href{https://www.kernel.org/doc/Documentation/kprobes.txt}{Kernel Probes (Kprobes)}
1569+
\item \href{https://lwn.net/Articles/569635/}{Kernel address space layout randomization}
15701570
\end{itemize}
15711571

15721572
The source code here is an example of such a kernel module.
@@ -1782,10 +1782,10 @@ \subsection{Spinlocks}
17821782
Unlike \cpp|spin_lock_irq()| and \cpp|spin_lock_irqsave()|, which disable both hardware and software interrupts, \cpp|spin_lock_bh()| is useful when hardware interrupts need to remain active.
17831783

17841784
For more information about spinlock usage and lock types, see the following resources:
1785-
\begin{itemize}
1785+
\begin{itemize}
17861786
\item \href{https://www.kernel.org/doc/Documentation/locking/spinlocks.txt}{Lesson 1: Spin locks}
1787-
\item\href{https://docs.kernel.org/locking/locktypes.html}{Lock types and their rules}
1788-
\end{itemize}
1787+
\item \href{https://docs.kernel.org/locking/locktypes.html}{Lock types and their rules}
1788+
\end{itemize}
17891789

17901790
\subsection{Read and write locks}
17911791
\label{sec:rwlock}
@@ -1809,9 +1809,9 @@ \subsection{Atomic operations}
18091809
But there are some problems, such as the memory model of the kernel doesn't match the model formed by the C11 atomics.
18101810
For further details, see:
18111811
\begin{itemize}
1812-
\item \href{https://www.kernel.org/doc/Documentation/atomic_t.txt}{kernel documentation of atomic types}
1813-
\item \href{https://lwn.net/Articles/691128/}{Time to move to C11 atomics?}
1814-
\item \href{https://lwn.net/Articles/698315/}{Atomic usage patterns in the kernel}
1812+
\item \href{https://www.kernel.org/doc/Documentation/atomic_t.txt}{kernel documentation of atomic types}
1813+
\item \href{https://lwn.net/Articles/691128/}{Time to move to C11 atomics?}
1814+
\item \href{https://lwn.net/Articles/698315/}{Atomic usage patterns in the kernel}
18151815
\end{itemize}
18161816

18171817
% FIXME: we should rewrite this section
@@ -2170,9 +2170,9 @@ \section{Virtual Input Device Driver}
21702170
The driver needs to export a \cpp|vinput_device()| that contains the virtual device name and \cpp|vinput_ops| structure that describes:
21712171

21722172
\begin{itemize}
2173-
\item the init function: \cpp|init()|
2174-
\item the input event injection function: \cpp|send()|
2175-
\item the readback function: \cpp|read()|
2173+
\item the init function: \cpp|init()|
2174+
\item the input event injection function: \cpp|send()|
2175+
\item the readback function: \cpp|read()|
21762176
\end{itemize}
21772177

21782178
Then using \cpp|vinput_register_device()| and \cpp|vinput_unregister_device()| will add a new device to the list of support virtual input devices.
@@ -2285,10 +2285,10 @@ \subsection{Device Tree and Kernel Modules}
22852285

22862286
The key concepts for Device Tree interaction in kernel modules include:
22872287
\begin{itemize}
2288-
\item \textbf{Compatible strings}: Unique identifiers that match Device Tree nodes to their drivers
2289-
\item \textbf{Property reading}: Functions to extract configuration data from Device Tree nodes
2290-
\item \textbf{Platform driver framework}: Infrastructure for binding drivers to devices described in Device Tree
2291-
\item \textbf{Device-specific data}: Custom properties that can be defined for specific hardware
2288+
\item \textbf{Compatible strings}: Unique identifiers that match Device Tree nodes to their drivers
2289+
\item \textbf{Property reading}: Functions to extract configuration data from Device Tree nodes
2290+
\item \textbf{Platform driver framework}: Infrastructure for binding drivers to devices described in Device Tree
2291+
\item \textbf{Device-specific data}: Custom properties that can be defined for specific hardware
22922292
\end{itemize}
22932293

22942294
\subsection{Example: Device Tree Module}
@@ -2321,11 +2321,11 @@ \subsection{Testing Device Tree Modules}
23212321
Testing Device Tree modules can be done in several ways:
23222322

23232323
\begin{enumerate}
2324-
\item \textbf{Using Device Tree overlays}: On systems that support it (like Raspberry Pi), you can load Device Tree overlays at runtime to add new devices without rebooting.
2324+
\item \textbf{Using Device Tree overlays}: On systems that support it (like Raspberry Pi), you can load Device Tree overlays at runtime to add new devices without rebooting.
23252325

2326-
\item \textbf{Modifying the main Device Tree}: Add your device nodes to the system's main Device Tree source file and recompile it.
2326+
\item \textbf{Modifying the main Device Tree}: Add your device nodes to the system's main Device Tree source file and recompile it.
23272327

2328-
\item \textbf{Using QEMU}: For development and testing, QEMU can emulate systems with custom Device Trees, allowing you to test your modules without physical hardware.
2328+
\item \textbf{Using QEMU}: For development and testing, QEMU can emulate systems with custom Device Trees, allowing you to test your modules without physical hardware.
23292329
\end{enumerate}
23302330

23312331
To check if your device was properly detected, you can examine the sysfs filesystem:
@@ -2343,13 +2343,13 @@ \subsection{Common Device Tree Functions}
23432343
Here are some commonly used Device Tree functions in kernel modules:
23442344

23452345
\begin{itemize}
2346-
\item \cpp|of_property_read_string()| - Read a string property
2347-
\item \cpp|of_property_read_u32()| - Read a 32-bit integer property
2348-
\item \cpp|of_property_read_bool()| - Check if a boolean property exists
2349-
\item \cpp|of_find_property()| - Find a property by name
2350-
\item \cpp|of_get_property()| - Get a property's raw value
2351-
\item \cpp|of_match_device()| - Match a device against a match table
2352-
\item \cpp|of_parse_phandle()| - Parse a phandle reference to another node
2346+
\item \cpp|of_property_read_string()| - Read a string property
2347+
\item \cpp|of_property_read_u32()| - Read a 32-bit integer property
2348+
\item \cpp|of_property_read_bool()| - Check if a boolean property exists
2349+
\item \cpp|of_find_property()| - Find a property by name
2350+
\item \cpp|of_get_property()| - Get a property's raw value
2351+
\item \cpp|of_match_device()| - Match a device against a match table
2352+
\item \cpp|of_parse_phandle()| - Parse a phandle reference to another node
23532353
\end{itemize}
23542354

23552355
These functions provide a robust interface for extracting configuration data from Device Tree nodes,

0 commit comments

Comments
 (0)