fix some memory leaks in depmod, modprobe and rmmod
[mit.git] / NEWS
blob4611311cedcc926f1b40c6da5351ecbea6d141b6
1 0.9 Release of module-init-tools
3 This release needs depmod again, which should help speed for those of
4 you with 1300 modules.  A replacement depmod is provided, since the
5 previous one gets rightfully confused by 2.5.47+ kernels.  You will
6 require a small kernel patch to 2.5.50 (see below) for PCI and USB
7 tables to work.
9 Also included is modules.conf2modprobe.conf, which is fairly
10 simplistic but should get most people up and running.  This will be
11 enhanced as new features go into the new modprobe.
13 Some dummy options are implemented, and "modprobe -c" is implemented
14 too, which should help Mandrake and RedHat's init scripts deal with
15 the change.
17 Many thanks to those who provided patches, bug reports, and copies of
18 their init scripts.  Your feedback is greatly appreciated!
20 Please report any bugs to rusty@rustcorp.com.au.
22 Thanks!
23 Rusty.
25 diff -urNp --exclude TAGS -X /home/rusty/current-dontdiff --minimal linux-2.5.50/include/linux/module.h working-2.5.50-table/include/linux/module.h
26 --- linux-2.5.50/include/linux/module.h Mon Nov 25 08:44:18 2002
27 +++ working-2.5.50-table/include/linux/module.h Thu Nov 28 10:59:39 2002
28 @@ -14,6 +14,7 @@
29  #include <linux/cache.h>
30  #include <linux/kmod.h>
31  #include <linux/elf.h>
32 +#include <linux/stringify.h>
34  #include <asm/module.h>
35  #include <asm/uaccess.h> /* For struct exception_table_entry */
36 @@ -40,11 +40,14 @@ struct kernel_symbol
38  #ifdef MODULE
40 -#define MODULE_GENERIC_TABLE(gtype,name)       \
41 -static const unsigned long __module_##gtype##_size \
42 -  __attribute__ ((unused)) = sizeof(struct gtype##_id); \
43 -static const struct gtype##_id * __module_##gtype##_table \
44 -  __attribute__ ((unused)) = name
45 +/* For replacement modutils, use an alias not a pointer. */
46 +#define MODULE_GENERIC_TABLE(gtype,name)                       \
47 +static const unsigned long __module_##gtype##_size             \
48 +  __attribute__ ((unused)) = sizeof(struct gtype##_id);                \
49 +static const struct gtype##_id * __module_##gtype##_table      \
50 +  __attribute__ ((unused)) = name;                             \
51 +extern const struct gtype##_id __mod_##gtype##_table           \
52 +  __attribute__ ((unused, alias(__stringify(name))))
54  /* This is magically filled in by the linker, but THIS_MODULE must be
55     a constant so it works in initializers. */