| Age | Commit message (Collapse) | Author |
|
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.
|
|
Rename the deprecated attribute to __deprecated to make it obvious
this is something special and to avoid namespace clashes.
Mark old module interfaces deprecated.
|
|
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.
|
|
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.
|
|
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."
|
|
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]
|
|
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.)
|
|
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.
|
|
was enabled, so split it up into "extable.c"
|
|
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);
|
|
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.
|
|
Fixes crypto so it compiles with !CONFIG_MODULES, and cleans up two
other cases which did #ifdef CONFIG_MODULES.
|
|
|
|
(Yes, they should probably use __stringify() instead).
|
|
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
|
|
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.
|
|
with attribute unused.
|
|
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
|
|
Make the kernel print out symbolic bactraces if symbol table information
is available (CONFIG_KALLSYMS)
|
|
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.
|
|
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.
|
|
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.
|
|
- 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
|
|
- 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
|
|
- 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
|
|
- 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
|
|
- 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.
|
|
- 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
|
|
- 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
|
|
- Alan Cox: big driver/mips sync
- Andries Brouwer, Christoph Hellwig: more gendisk fixups
- Tobias Ringstrom: tulip driver workaround for DC21143 erratum
|
|
- 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
|
|
- 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
|
|
|