summaryrefslogtreecommitdiff
path: root/BUGS
blob: fceddbcdefe0e55a8dca2f254d95efe886775e89 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
Except for many unimplemented things (listed in the TODO file), there may be
true bugs too. If you experience any problems, do not hesitate to mail
lm78@stimpy.netroedge.com. But read the documentation first, please!

Pre-2.1.58 /proc directory Oops
===============================

There is a problem in pre 2.1.58 kernels that can make the kernel Oops. You
can trigger this Oops if you have opened any file, or are in any directory,
created by a module. If you remove the module at such a moment, successive
access to those files or directories will make the kernel complain through
an Oops. There is really no good way to solve this. Stock kernel modules
exhibit the same problem, by the way. Kernels from 2.1.58 onwards have new
fill_inode() semantics; using this function, we can increase the module use
count while a module file or directory is accessed. This solves the problem,
because it makes it impossible to remove the module.
Alan Cox (alan@lxorguk.ukuu.org.uk), the maintainer of 2.0 kernels, has
said he will consider patches that backport this 2.1 feature; perhaps it
will be in 2.0.37. Until then, be careful when you unload modules.


2.2.x cdrom.o Oops
==================

Module cdrom.o in all 2.2 kernels conflicts with our sensors.o module.
You can get an Oops if cdrom.o is unloaded after sensors.o was loaded.
Below is a small diff that you can apply to the kernel to correct this.
Another solution is to make sure cdrom.o is never unloaded, or to make
sure it is not a module but compiled into the kernel proper.

The diff corrects a long-standing /proc bug. It will go into kernel 2.2.2
or later in a somewhat modified form. It was written by Jens Axboe 
<axboe@image.dk>.

-----cut here-----
--- virgin/kernel/sysctl.c      Sat Jan  9 07:54:16 1999
+++ linux/kernel/sysctl.c       Mon Feb  1 23:44:58 1999
@@ -559,12 +559,12 @@
                        unregister_proc_table(table->child, de);
                }
                /* Don't unregister proc directories which still have
-                  entries... */
-               if (!((de->mode & S_IFDIR) && de->subdir)) {
+                  entries or are still being used... */
+               if (!((de->mode & S_IFDIR) && de->subdir) && !de->count)
{
                        proc_unregister(root, de->low_ino);
                        table->de = NULL;
                        kfree(de);
-               } 
+               }
        }
 }
-----cut here-----


Kernel i2c conflict
===================

An older version of the i2c modules is distributed in 2.2 and late 2.1
kernels. If you try to use it at the same moment as our i2c modules, you
may get into trouble. This should be fixed for lm_sensors-2.4.0 and newer.