LDP/LDP/guide/docbook/lkmpg/14-CommonPitfalls.sgml

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>