An error occurred fetching the project authors.
- 06 Jun, 2003 2 commits
-
-
Rusty Russell authored
This adds a /proc/kallsyms if you have CONFIG_KALLSYMS in your kernel. The output is nm-like, with symbols in caps (global) if exported using EXPORT_SYMBOL, rather than the normal static vs. non-static differentiation. This is useful for things like performance monitoring tools (profiling etc) that want to match addresses to names in user space.
-
Andrew Morton authored
From: Rusty Russell <rusty@rustcorp.com.au> OK, this does the *minimum* required to support DEFINE_PER_CPU inside modules. If we decide to change kmalloc_percpu later, great, we can turf this out. Basically, overallocates the amount of per-cpu data at boot to at least PERCPU_ENOUGH_ROOM if CONFIG_MODULES=y (arch-specific by default 32k: I have only 7744 bytes of percpu data in my kernel here, so makes sense), and a special allocator in module.c dishes it out.
-
- 12 May, 2003 2 commits
-
-
Andrew Morton authored
From: Rusty Russell <rusty@rustcorp.com.au> __module_get is theoretically allowed on module inside init, since we already hold an implicit reference. Currently this BUG()s: make the reference count explicit, which also simplifies delete path. Also cleans up unload path, such that it only drops semaphore when it's actually sleeping for rmmod --wait.
-
Andrew Morton authored
From: Rusty Russell <rusty@rustcorp.com.au>, David Mosberger The patch below updates the other platforms with module_arch_cleanup(). Also, I added more debug output to kernel/module.c since I found it useful to be able to see the final section layout.
-
- 30 Apr, 2003 2 commits
-
-
Rusty Russell authored
Introduces __module_get for places where we know we already hold a reference and ignoring the fact that the module is being "rmmod --wait"ed is simpler.
-
Rusty Russell authored
Restores .modinfo section, and uses it to store license and vermagic.
-
- 15 Apr, 2003 1 commit
-
-
David Mosberger authored
Fix for trivial typo. Without it, you can't insert anything on top of agpgart.ko because the agp_register_driver() will erroneously pick up the symbol version from agp_backend_acquire().
-
- 08 Apr, 2003 1 commit
-
-
Linus Torvalds authored
-
- 04 Apr, 2003 1 commit
-
-
Rusty Russell authored
-
- 03 Apr, 2003 1 commit
-
-
David S. Miller authored
-
- 02 Apr, 2003 2 commits
-
-
Kai Germaschewski authored
This patch fixes two issues: o The CONFIG_MODVERSIONING=y case broke at compile time since some functions were not updated with the latest module changes o Exporting symbols from modules stopped working due to confusion of mod->num_syms and mod->num_ksyms. Rename mod->num_ksyms to mod->num_syms, which is more logical since the associated array is called ->syms, and for the kallsyms member use "num_symtab", since the associated array is ->symtab.
-
Linus Torvalds authored
while number of symbols is "num_syms". It used to be "num_syms" and "num_ksyms" respectively (ie the "k" was the wrong way around). The previous naming was not just confusing, it had caused one actual bug (ie the normal symbol code had used "num_syms", which was wrong in the old confusing naming scheme).
-
- 01 Apr, 2003 4 commits
-
-
John Levon authored
This implements a simple notifier so oprofile can notice removed and added modules properly
-
Rusty Russell authored
This removes the extable list, and the struct exception_table, in favour of just iterating through the modules. Now all iteration is within kernel/module.c, this is a fairly trivial cleanup.
-
Rusty Russell authored
This removes the symbol list, and the concept of kernel symbol groups, in favour of just iterating through the modules. Now all iteration is within kernel/module.c, this is a fairly trivial cleanup.
-
Rusty Russell authored
By making module_text_address return the module it found, we simplify symbol_put_addr significantly.
-
- 25 Feb, 2003 3 commits
-
-
Linus Torvalds authored
-
Rusty Russell authored
Now that we search for 11 different sections by name, the if/else was getting unwieldy. Also, handle_section just does relocs, so it's a bit of a misnomer, and it's best simply moved into the main code. This open-codes handle_section, which simply does relocations now. Also adds "find_sec" and uses it to find the various sections.
-
Rusty Russell authored
Bob Miller points out that the try_module_get in use_module() can, of course, fail. Secondly, there is a race between setting the module live, and a simultaneous removal of it.
-
- 14 Feb, 2003 3 commits
-
-
Rusty Russell authored
Checks the module structure itself when CONFIG_MODVERSIONS is set.
-
Kai Germaschewski authored
During postprocessing, we get the information which modules we depend on (i.e. which modules export symbols we need to import) for free, so we record it in .modinfo. This may allow us to remove the "depmod" program at a later time, though for now it remains working as usual.
-
Kai Germaschewski authored
Since we'll have to always do module postprocessing shortly, we can as well get rid of the special cased init/vermagic.o which needed to be compiled before descending, and instead include the current version magic string during post processing. For that purpose, the generation of the string is moved from init/vermagic.c to include/linux/vermagic.h. People who externally maintain modules will also be happy about that.
-
- 09 Feb, 2003 1 commit
-
-
Rusty Russell authored
From: John Levon <levon@movementarian.org>
-
- 03 Feb, 2003 4 commits
-
-
Kai Germaschewski authored
o Build modules with CONFIG_MODVERSIONS when just saying "make" o Ignore generated *.ver.c files o Fix a typo (Sam Ravnborg) o Fix another typo (Paul Marinceu)
-
Rusty Russell authored
Skip over the first part of __vermagic in modversioning is on: otherwise you'll have to force it when changing from 2.6.0 to 2.6.1.
-
Rusty Russell authored
Fix the case where no CRCs are supplied (OK, but taints kernel), and only print one tainted message (otherwise --force gives hundreds of them).
-
Kai Germaschewski authored
CONFIG_MODVERSIONING was a temporary name introduced to distinguish between the old and new module version implementation. Since the traces of the old implementation are now gone from the build system, we rename the config option back in order to not confuse users more than necessary in 2.6. Also, remove some historic modversions cruft throughout the tree.
-
- 24 Jan, 2003 6 commits
-
-
Kai Germaschewski authored
Yeah, the final step! Now that we've got the checksums for the exported symbols and the checksums of the unresolved symbols for the module we're loading, let's compare and see. Again, we allow to load a module which has the version info stripped, but taint the kernel in that case.
-
Kai Germaschewski authored
We'll need that index to find the version checksum for the symbol in a bit.
-
Kai Germaschewski authored
Store the information on the checksum alongside the rest of the information on exported symbols. To actually use them, we need something to check them against first, though ;) Also, fix some conditional debug code to actually compile.
-
Kai Germaschewski authored
Again, the license string is only used at load time, so no need to store it permanently in kernel memory.
-
Kai Germaschewski authored
modprobe --force allows to load modules without a matching version magic string. This invalidation is done by clearing the SHF_ALLOC flag, so check it in the kernel. Also, clear the SHF_ALLOC flag unconditionally, since we don't need to store the __vermagic section in the kernel, it's only checked once at load time.
-
Kai Germaschewski authored
This patch adds the new config option CONFIG_MODVERSIONING which will be the new way of checking for ABI changes between kernel and module code. This and the following patches are in part based on an initial implementation by Rusty Russell and I believe some of the ideas go back to discussions on linux-kbuild, Keith Owens and Rusty. though I'm not sure I think credit for the basic idea of storing version info in sections goes to Keith Owens and Rusty. o Rename __gpl_ksymtab to __ksymtab_gpl since that looks more consistent and appending _gpl instead of putting it into the middle simplifies sharing code for EXPORT_SYMBOL() and EXPORT_SYMBOL_GPL() o Add CONFIG_MODVERSIONING o If CONFIG_MODVERSIONING is set, add a section __kcrctab{,_gpl}, which contains the ABI checksums for the exported symbols listed in __ksymtab{,_crc} Since we don't know the checksums yet at compilation time, just make them an unresolved symbol which gets filled in by the linker later.
-
- 16 Jan, 2003 1 commit
-
-
Christoph Hellwig authored
This is a left-over from the old modules code, Rusty stubbed it out to always return 0. Three scsi pcmcia driver check it for beeing non-NULL, trying to work around their unload races. I've added #warnings there and stubbed out the GET_USE_COUNT so we can remove it from the core.
-
- 14 Jan, 2003 1 commit
-
-
Kai Germaschewski authored
This patch, based on Rusty's implementation, adds a special section to vmlinux and all modules, which contain the kernel version string, values of some particularly important config options (SMP,preempt,proc family) and the gcc version. When inserting a module, the version string is checked against the kernel version string and loading is rejected if they don't match. The version string is actually added to the modules during the final .ko generation, so that a changed version string does only cause relinking, not recompilation, which is a major performance improvement over the old 2.4 way of doing things.
-
- 13 Jan, 2003 2 commits
-
-
Rusty Russell authored
The address allows oprofile and ksymoops to work again. The state is simply informative.
-
Richard Henderson authored
-
- 12 Jan, 2003 2 commits
-
-
Rusty Russell authored
Since these are just symbols in the module object, they need symbol name munging to find the symbol from the parameter name.
-
Rusty Russell authored
strlen_user returns 0 on error, not an error number, and otherwise returns the length including the NUL byte. Found by Andi Kleen.
-
- 06 Jan, 2003 1 commit
-
-
Rusty Russell authored
Various archs (i386, m68k, s390, s390x, m68k, parisc, um, x86_64) implement kernel_text_address. Put this in kernel/extable.c, and the module iteration inside module.c. Other than cleanliness, this finally allows the module list and lock to be static to kernel/module.c (you didn't think I actually cared about those archs did you?) It also drops the module->init_size to zero when it's discarded, so bounds checking is simplified (and the /proc/modules size statistic will be more accurate, too).
-