| 1 |
Except for many unimplemented things (listed in the TODO file), there may be |
|---|
| 2 |
true bugs too. If you experience any problems, do not hesitate to mail |
|---|
| 3 |
lm78@stimpy.netroedge.com. But read the documentation first, please! |
|---|
| 4 |
|
|---|
| 5 |
Pre-2.1.58 /proc directory Oops |
|---|
| 6 |
=============================== |
|---|
| 7 |
|
|---|
| 8 |
There is a problem in pre 2.1.58 kernels that can make the kernel Oops. You |
|---|
| 9 |
can trigger this Oops if you have opened any file, or are in any directory, |
|---|
| 10 |
created by a module. If you remove the module at such a moment, successive |
|---|
| 11 |
access to those files or directories will make the kernel complain through |
|---|
| 12 |
an Oops. There is really no good way to solve this. Stock kernel modules |
|---|
| 13 |
exhibit the same problem, by the way. Kernels from 2.1.58 onwards have new |
|---|
| 14 |
fill_inode() semantics; using this function, we can increase the module use |
|---|
| 15 |
count while a module file or directory is accessed. This solves the problem, |
|---|
| 16 |
because it makes it impossible to remove the module. |
|---|
| 17 |
Alan Cox (alan@lxorguk.ukuu.org.uk), the maintainer of 2.0 kernels, has |
|---|
| 18 |
said he will consider patches that backport this 2.1 feature; perhaps it |
|---|
| 19 |
will be in 2.0.37. Until then, be careful when you unload modules. |
|---|
| 20 |
|
|---|
| 21 |
|
|---|
| 22 |
2.2.x cdrom.o Oops |
|---|
| 23 |
================== |
|---|
| 24 |
|
|---|
| 25 |
Module cdrom.o in all 2.2 kernels conflicts with our sensors.o module. |
|---|
| 26 |
You can get an Oops if cdrom.o is unloaded after sensors.o was loaded. |
|---|
| 27 |
Below is a small diff that you can apply to the kernel to correct this. |
|---|
| 28 |
Another solution is to make sure cdrom.o is never unloaded, or to make |
|---|
| 29 |
sure it is not a module but compiled into the kernel proper. |
|---|
| 30 |
|
|---|
| 31 |
The diff corrects a long-standing /proc bug. It will go into kernel 2.2.2 |
|---|
| 32 |
or later in a somewhat modified form. It was written by Jens Axboe |
|---|
| 33 |
<axboe@image.dk>. |
|---|
| 34 |
|
|---|
| 35 |
-----cut here----- |
|---|
| 36 |
--- virgin/kernel/sysctl.c Sat Jan 9 07:54:16 1999 |
|---|
| 37 |
+++ linux/kernel/sysctl.c Mon Feb 1 23:44:58 1999 |
|---|
| 38 |
@@ -559,12 +559,12 @@ |
|---|
| 39 |
unregister_proc_table(table->child, de); |
|---|
| 40 |
} |
|---|
| 41 |
/* Don't unregister proc directories which still have |
|---|
| 42 |
- entries... */ |
|---|
| 43 |
- if (!((de->mode & S_IFDIR) && de->subdir)) { |
|---|
| 44 |
+ entries or are still being used... */ |
|---|
| 45 |
+ if (!((de->mode & S_IFDIR) && de->subdir) && !de->count) |
|---|
| 46 |
{ |
|---|
| 47 |
proc_unregister(root, de->low_ino); |
|---|
| 48 |
table->de = NULL; |
|---|
| 49 |
kfree(de); |
|---|
| 50 |
- } |
|---|
| 51 |
+ } |
|---|
| 52 |
} |
|---|
| 53 |
} |
|---|
| 54 |
-----cut here----- |
|---|
| 55 |
|
|---|
| 56 |
|
|---|
| 57 |
Kernel i2c conflict |
|---|
| 58 |
=================== |
|---|
| 59 |
|
|---|
| 60 |
An older version of the i2c modules is distributed in 2.2 and late 2.1 |
|---|
| 61 |
kernels. If you try to use it at the same moment as our i2c modules, you |
|---|
| 62 |
may get into trouble. This should be fixed for lm_sensors-2.4.0 and newer. |
|---|