mirror of https://github.com/tLDP/LDP
62 lines
1.9 KiB
Plaintext
62 lines
1.9 KiB
Plaintext
<sect1><title>Common Pitfalls</title>
|
|
|
|
<sect2><title>Common Pitfalls</title>
|
|
|
|
<para>Before I send you on your way to go out into the world and write
|
|
kernel modules, there are a few things I need to warn you about. If I
|
|
fail to warn you and something bad happens, please report the problem to
|
|
me for a full refund of the amount I was paid for your copy of the book.
|
|
</para>
|
|
|
|
<indexterm><primary>refund policy</primary></indexterm>
|
|
|
|
<variablelist>
|
|
<varlistentry>
|
|
<term>Using standard libraries</term>
|
|
<indexterm><primary>standard libraries</primary></indexterm>
|
|
<indexterm>
|
|
<primary>libraries</primary>
|
|
<secondary>standard</secondary>
|
|
</indexterm>
|
|
<listitem>
|
|
<para>
|
|
You can't do that. In a kernel module you can only use kernel
|
|
functions, which are the functions you can see in
|
|
<filename>/proc/ksyms</filename>.
|
|
<indexterm><primary>/proc/ksyms</primary></indexterm>
|
|
<indexterm>
|
|
<primary>proc file</primary>
|
|
<secondary>ksyms</secondary>
|
|
</indexterm>
|
|
</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
<term>Disabling interrupts</term>
|
|
<indexterm>
|
|
<primary>interrupts</primary>
|
|
<secondary>disabling</secondary>
|
|
</indexterm>
|
|
<listitem>
|
|
<para>
|
|
You might need to do this for a short time and that is OK, but if
|
|
you don't enable them afterwards, your system will be stuck and
|
|
you'll have to power it off.
|
|
</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
<term>Sticking your head inside a large carnivore</term>
|
|
<listitem>
|
|
<para>
|
|
I probably don't have to warn you about this, but I figured I will
|
|
anyway, just in case.
|
|
</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
</variablelist>
|
|
</sect2>
|
|
</sect1>
|