summaryrefslogtreecommitdiff
path: root/include/linux/module.h
AgeCommit message (Collapse)Author
2002-12-29[PATCH] Embed __this_module in module itself.Rusty Russell
Rather than have the module loader the module structure and resolve the symbols __this_module to it, make __this_module a real structure inside the module, using the linkonce trick we used for module names. This saves us an allocation (saving a page per module on archs which need the module structure close by), and means we don't have to fill in a few module fields.
2002-12-29[PATCH] more deprectation bitsChristoph Hellwig
Rename the deprecated attribute to __deprecated to make it obvious this is something special and to avoid namespace clashes. Mark old module interfaces deprecated.
2002-12-14[PATCH] MODULE_PARM support for older modulesRusty Russell
This is the backwards compatibility code for MODULE_PARM, and moves __MODULE_STRING() down to the graveyard at the bottom of module.h. It's complicated by the fact that many modules place MODULE_PARM() before the declaration (some do MODULE_PARM() for non-existant variables, too). To avoid breaking them, we have to do the name lookups at load time, rather than just storing a pointer 8( CONFIG_OBSOLETE_MODPARM is set to y without prompting: it's a useful marker for deprecating in 2.7.
2002-12-13[PATCH] Module init reentry fixRusty Russell
In some configurations, parport and bttv request a module inside their module_init function. Drop the lock around mod->init(), change module->live to module->state so we can detect modules which are in init.
2002-12-01[PATCH] module names fixRusty Russell
By Kai Germaschewski: "Well, I have another solution, which doesn't need additional Makefile magic or anything. I just put the module name into each .o file where <linux/module.h> is included. Putting it into the section .gnu.linkonce.modname has the effect that even for multi-part modules, we only end up with one copy of the name. Caveat: I'm using the preprocessor macro KBUILD_MODNAME to know what to put into .gnu.linkonce.modname. The following used to happen: (drivers/isdn/eicon/Makefile) divas-objs := common.o Divas_mod.o ... eicon-objs := common.o eicon_mod.o ... Divas_mod.o is compiled with -DKBUILD_MODNAME=divas eicon_mod.o is compiled with -DKBUILD_MODNAME=eicon common.o is compiled with -DKBUILD_MODNAME=divas_eicon So in the case above, both divas.o and eicon.o would end up with a .gnu.linkonce.modname section containing "divas_eicon" My fix to this is to not define KBUILD_MODNAME when compiling an object whilch will be linked into more than one module - so common.o gets no .gnu.linkonce.modname section at all. Works fine here. Now, doing this I remove one of the reasons why we would need modules linked as '.ko' ;), but it seems much cleaner than generating a temporary file, using objcopy etc."
2002-12-01[PATCH] v850 supportRusty Russell
On the v850, the elf toolchain uses a `_' prefix for all user symbols (I'm not sure why, since most toolchains seem to have dropped this sort of thing). The attached patch adds the ability to deal with this, if the macro MODULE_SYMBOL_PREFIX is defined by <asm/module.h>. This only affects places where symbol names come from the user, e.g., EXPORT_SYMBOL, or the explicit symbol-names used in kernel/module.c itself. [Tweaked a little by Rusty, original by Miles Bader]
2002-12-01[PATCH] Table fix for module-init-toolsRusty Russell
This patch allows the new depmod to generate the USB & PCI hotplug tables. Greg Banks and I are (slowly) working on a better solution, but allows the old-style "modules.pcimap" etc. to be generated in the short term. This patch adds a "__mod_XXX_table" symbol which is an alias to the module table, rather than a pointer. This makes it relatively trivial to extract the table. Previously, it required a pointer dereference, which means the relocations must be applied, which is why the old depmod needs so much of modutils (ie. it basically links the whole module in order to find the table). The old depmod can still be invoked using "-F System.map" to generate the tables (there'll be lots of other warnings, and it will generate a completely bogus modules.dep, but the tables should be OK.)
2002-11-19[PATCH] module device table restorationRusty Russell
Patch from Adam Richter. I have a nicer solution based on aliases, but it requires coordination with USB, PCI and PCMCIA maintainers, which is taking time. This restores the old code in the meantime: one week without this is too long for people who need it.
2002-11-18Parts of "module.c" was needed even when no module supportLinus Torvalds
was enabled, so split it up into "extable.c"
2002-11-18[PATCH] kallsyms for new modulesRusty Russell
Since I believe kallsyms is important, this reimplements it sanely, using the current module infrastructure, and not using an external kallsyms script. FYI, the previous interface was: int kallsyms_symbol_to_address( const char *name, /* Name to lookup */ unsigned long *token, /* Which module to start with */ const char **mod_name, /* Set to module name or "kernel" */ unsigned long *mod_start, /* Set to start address of module */ unsigned long *mod_end, /* Set to end address of module */ const char **sec_name, /* Set to section name */ unsigned long *sec_start, /* Set to start address of section */ unsigned long *sec_end, /* Set to end address of section */ const char **sym_name, /* Set to full symbol name */ unsigned long *sym_start, /* Set to start address of symbol */ unsigned long *sym_end /* Set to end address of symbol */ ); The new one is: /* Lookup an address. modname is set to NULL if it's in the kernel. */ const char *kallsyms_lookup(unsigned long addr, unsigned long *symbolsize, unsigned long *offset, char **modname);
2002-11-16[PATCH] separate out moduleloader.hRusty Russell
Separates the module loading function prototypes (and elf.h) into moduleloader.h. AT_GID in elf.h clashes with xfs.h, but this also makes module.h less cluttered.
2002-11-13[PATCH] module_name macroRusty Russell
Fixes crypto so it compiles with !CONFIG_MODULES, and cleans up two other cases which did #ifdef CONFIG_MODULES.
2002-11-12Fix more CONFIG_MODULE_UNLOAD issuesLinus Torvalds
2002-11-10Re-introduce __MODULE_STRING, since some drivers depend on it.Linus Torvalds
(Yes, they should probably use __stringify() instead).
2002-11-10[PATCH] In-kernel Module LoaderRusty Russell
This is an implementation of the in-kernel module loader extending the try_inc_mod_count() primitive and making its use compulsory. This has the benifit of simplicity, and similarity to the existing scheme. To reduce the cost of the constant increments and decrements, reference counters are lockless and per-cpu. Eliminated (coming in following patches): o Modversions o Module parameters o kallsyms o EXPORT_SYMBOL_GPL and MODULE_LICENCE checks o DEVICE_TABLE support. New features: o Typesafe symbol_get/symbol_put o Single "insert this module" syscall interface allows trivial userspace. o Raceless loading and unloading You will need the trivial replacement module utilities from: http://ozlabs.org/~rusty/module-init-tools-0.6.tar.gz
2002-11-07[PATCH] Fix name of discarded section in modules.hPeter Chubb
Changeset willy@debian.org|ChangeSet|20021016154637|46581 in linux 2.5 changed the name of .exit.text to .text.exit. Unfortunately, one change got missed. Fix.
2002-10-11Fix defined but not used warnings by marking variablesRichard Henderson
with attribute unused.
2002-09-30[PATCH] Various trivial module related fixes.Dave Jones
More bits from 2.5.39-dj sucked out by Adrian Bunk. - drivers/char/toshiba.c: add MODULE_{PARM_DESC,AUTHOR,DESCRIPTION,SUPPORTED_DEVICE} - drivers/mtd/nand/nand_ecc.c: add MODULE_{AUTHOR,DESCRIPTION} - drivers/net/skfp/skfddi.c: add MODULE_AUTHOR - drivers/net/tokenring/olympic.c: remove "\n" at the end of MODULE_DESCRIPTION - fs/driverfs/inode.c: add MODULE_LICENSE - fs/nls/nls_cp1250.c: correct MODULE_LICENSE - include/linux/module.h: add "GPL v2" to the list of free software licenses
2002-09-26[PATCH] kksymoops-2.5.38-C9Ingo Molnar
Make the kernel print out symbolic bactraces if symbol table information is available (CONFIG_KALLSYMS)
2002-06-01kbuild: Clarify the CONFIG_MODVERSIONS logicKai Germaschewski
Observe that defined(MODVERSIONS) == defined(CONFIG_MODVERSIONS) && defined(MODULE) and from there I step by step simplified the logic in include/linux/module.h - staying logically equivalent, but it is much more understandable now, IMO. Still added a huge comment trying to help other people understand what kind of magic happens here.
2002-05-23EXPORT_SYMBOL: Remove the option of implicitly exporting symbolsKai Germaschewski
We now always allocate the section __ksymtab, which to modutils means not to implicitly export any symbols. That means that EXPORT_NO_SYMBOLS is now default, and thus can go away in the sources.
2002-05-09Don't implicitly export all symbolsKai Germaschewski
In the old days, we used to export all symbols from a module by default. We still do so, unless o either exported symbols are explicitly listed in EXPORT_SYMBOL() o or EXPORT_NO_SYMBOLS is given. This patches changes the default of 'export all symbols' to 'export no symbols' for all files which are not listed in $(export-objs) in the relevant Makefile.
2002-02-04v2.4.14.4 -> v2.4.14.5Linus Torvalds
- Greg KH: enable hotplug driver support - Andrea Arcangeli: remove bogus sanity check - David Mosberger: /proc/cpuinfo and scsi scatter-gather for ia64 - David Hinds: 16-bit pcmcia network driver updates/cleanups - Hugh Dickins: remove some stale code from VM - David Miller: /proc/cpuinfo for sparc, sparc fork bug fix, network fixes, warning fixes - Peter Braam: intermezzo update - Greg KH: USB updates - Ivan Kokshaysky: /proc/cpuinfo for alpha - David Woodhouse: jffs2 - remove dead code, remove gcc3 warning - Hugh Dickins: fix kiobuf page allocation/deallocation
2002-02-04v2.4.14.1 -> v2.4.14.2Linus Torvalds
- Ivan Kokshaysky: fix alpha dec_and_lock with modules, for alpha config entry - Kai Germaschewski: ISDN updates - Jeff Garzik: network driver updates, sysv fs update - Kai Mäkisara: SCSI tape update - Alan Cox: large drivers merge - Nikita Danilov: reiserfs procfs information - Andrew Morton: ext3 merge - Christoph Hellwig: vxfs livelock fix - Trond Myklebust: NFS updates - Jens Axboe: cpqarray + cciss dequeue fix - Tim Waugh: parport_serial base_baud setting - Matthew Dharm: usb-storage Freecom driver fixes - Dave McCracken: wait4() thread group race fix
2002-02-04v2.4.10.5 -> v2.4.10.6Linus Torvalds
- various: fix some module exports uncovered by stricter error checking - Urban Widmark: make smbfs use same error define names as samba and win32 - Greg KH: USB update - Tom Rini: MPC8xx ppc update - Matthew Wilcox: rd.c page cache flushing fix - Richard Gooch: devfs race fix: rwsem for symlinks - Björn Wesen: Cris arch update - Nikita Danilov: reiserfs cleanup - Tim Waugh: parport update - Peter Rival: update alpha SMP bootup to match wait_init_idle fixes - Trond Myklebust: lockd/grace period fix
2002-02-04v2.4.10.4 -> v2.4.10.5Linus Torvalds
- Keith Owens: module exporting error checking - Greg KH: USB update - Paul Mackerras: clean up wait_init_idle(), ppc prefetch macros - Jan Kara: quota fixes - Abraham vd Merwe: agpgart support for Intel 830M - Jakub Jelinek: ELF loader cleanups - Al Viro: more cleanups - David Miller: sparc64 fix, netfilter fixes - me: tweak resurrected oom handling
2002-02-04v2.4.10.2 -> v2.4.10.3Linus Torvalds
- Al Viro: superblock cleanups, partition handling fixes and cleanups - Ben Collins: firewire update - Jeff Garzik: network driver updates - Urban Widmark: smbfs updates - Kai Mäkisara: SCSI tape driver update - various: embarrassing lack of error checking in ELF loader - Neil Brown: md formatting cleanup.
2002-02-04v2.4.10.1 -> v2.4.10.2Linus Torvalds
- me/Al Viro: fix bdget() oops with block device modules that don't clean up after they exit - Alan Cox: continued merging (drivers, license tags) - David Miller: sparc update, network fixes - Christoph Hellwig: work around broken drivers that add a gendisk more than once - Jakub Jelinek: handle more ELF loading special cases - Trond Myklebust: NFS client and lockd reclaimer cleanups/fixes - Greg KH: USB updates - Mikael Pettersson: sparate out local APIC / IO-APIC config options
2002-02-04v2.4.9.8 -> v2.4.9.9Linus Torvalds
- Greg KH: start migration to new "min()/max()" - Roman Zippel: move affs over to "min()/max()". - Vojtech Pavlik: VIA update (make sure not to IRQ-unmask a vt82c576) - Jan Kara: quota bug-fix (don't decrement quota for non-counted inode) - Anton Altaparmakov: more NTFS updates - Al Viro: make nosuid/noexec/nodev be per-mount flags, not per-filesystem - Alan Cox: merge input/joystick layer differences, driver and alpha merge - Keith Owens: scsi Makefile cleanup - Trond Myklebust: fix oopsable race in locking code - Jean Tourrilhes: IrDA update
2002-02-04v2.4.9.6 -> v2.4.9.7Linus Torvalds
- Alan Cox: big driver/mips sync - Andries Brouwer, Christoph Hellwig: more gendisk fixups - Tobias Ringstrom: tulip driver workaround for DC21143 erratum
2002-02-04v2.4.9.4 -> v2.4.9.5Linus Torvalds
- Merge with Alan - Trond Myklebust: NFS fixes - kmap and root inode special case - Al Viro: more superblock cleanups, inode leak in rd.c, minix directories in page cache - Paul Mackerras: clean up rubbish from sl82c105.c - Neil Brown: md/raid cleanups, NFS filehandles - Johannes Erdfelt: USB update (usb-2.0 support, visor fix, Clie fix, pl2303 driver update) - David Miller: sparc and net update - Eric Biederman: simplify and correct bootdata allocation - don't overwrite ramdisks - Tim Waugh: support multiple SuperIO devices, parport doc updates
2002-02-04v2.4.1 -> v2.4.1.1Linus Torvalds
- XMM: don't allow illegal mxcsr values - ACPI: handle non-existent battery strings gracefully - Compaq Smart Array driver update - Kanoj Sarcar: serial console hardware flow control support - ide-cs: revert toc-valid cache checking in 2.4.1 - Vojtech Pavlik: update via82cxxx driver to handle the vt82c686 - raid5 graceful failure handling fix - ne2k-pci: enable device before asking the irq number - sis900 driver update - riva FB driver update - fix silly inode hashing pessimization - add SO_ACCEPTCONN for SuS - remove modinfo hack workaround, all newer modutils do it correctly - datagram socket shutdown fix - mark process as running when it takes a page-fault
2002-02-04Import changesetLinus Torvalds