aboutsummaryrefslogtreecommitdiff
path: root/kernel/module.c
AgeCommit message (Collapse)AuthorFilesLines
2008-07-22module: generic each_symbol iterator functionRusty Russell1-110/+134
Introduce an each_symbol() iterator to avoid duplicating the knowledge about the 5 different sections containing symbols. Currently only used by find_symbol(), but will be used by symbol_put_addr() too. (Includes NULL ptr deref fix by Jiri Kosina <[email protected]>) Signed-off-by: Rusty Russell <[email protected]> Cc: Jiri Kosina <[email protected]>
2008-07-22module: don't use stop_machine for waiting rmmodRusty Russell1-4/+11
rmmod has a little-used "-w" option, meaning that instead of failing if the module is in use, it should block until the module becomes unused. In this case, we don't need to use stop_machine: Max Krasnyansky indicated that would be useful for SystemTap which loads/unloads new modules frequently. Cc: Max Krasnyansky <[email protected]> Signed-off-by: Rusty Russell <[email protected]>
2008-05-23modules: proper cleanup of kobject without CONFIG_SYSFSDenis V. Lunev1-2/+14
kobject: '<NULL>' (ffffffffa0104050): is not initialized, yet kobject_put() is being called. ------------[ cut here ]------------ WARNING: at /home/den/src/linux-netns26/lib/kobject.c:583 kobject_put+0x53/0x55() Modules linked in: ipv6 nfsd lockd nfs_acl auth_rpcgss sunrpc exportfs ide_cd_mod cdrom button [last unloaded: pktgen] comm: rmmod Tainted: G W 2.6.26-rc3 #585 Call Trace: [<ffffffff802359ab>] warn_on_slowpath+0x58/0x7a [<ffffffff80236aca>] ? printk+0x67/0x69 [<ffffffff80236aca>] ? printk+0x67/0x69 [<ffffffff80324289>] kobject_put+0x53/0x55 [<ffffffff8025e2ee>] free_module+0x87/0xfa [<ffffffff8025fee5>] sys_delete_module+0x178/0x1e1 [<ffffffff804b1e70>] ? lockdep_sys_exit_thunk+0x35/0x67 [<ffffffff804b1dff>] ? trace_hardirqs_on_thunk+0x35/0x3a [<ffffffff8020c0bb>] system_call_after_swapgs+0x7b/0x80 ---[ end trace 8f5aafa7f6406cf8 ]--- mod->mkobj.kobj is not initialized without CONFIG_SYSFS. Do not call kobject_put in this case. Signed-off-by: Denis V. Lunev <[email protected]> Cc: Rusty Russell <[email protected]> Cc: Kay Sievers <[email protected]> Signed-off-by: Rusty Russell <[email protected]>
2008-05-23module loading ELF handling: use SELFMAG instead of numeric constantCyrill Gorcunov1-1/+1
Signed-off-by: Cyrill Gorcunov <[email protected]> Signed-off-by: Andrew Morton <[email protected]> Signed-off-by: Rusty Russell <[email protected]>
2008-05-09module: don't ignore vermagic string if module doesn't have modversionsRusty Russell1-6/+10
Linus found a logic bug: we ignore the version number in a module's vermagic string if we have CONFIG_MODVERSIONS set, but modversions also lets through a module with no __versions section for modprobe --force (with tainting, but still). We should only ignore the start of the vermagic string if the module actually *has* crcs to check. Rather than (say) having an entertaining hissy fit and creating a config option to work around the buggy code. Signed-off-by: Rusty Russell <[email protected]> Signed-off-by: Linus Torvalds <[email protected]>
2008-05-09module: be more picky about allowing missing module versionsRusty Russell1-2/+7
We allow missing __versions sections, because modprobe --force strips it. It makes less sense to allow sections where there's no version for a specific symbol the module uses, so disallow that. Signed-off-by: Rusty Russell <[email protected]> Signed-off-by: Linus Torvalds <[email protected]>
2008-05-04Make forced module loading optionalLinus Torvalds1-15/+29
The kernel module loader used to be much too happy to allow loading of modules for the wrong kernel version by default. For example, if you had MODVERSIONS enabled, but tried to load a module with no version info, it would happily load it and taint the kernel - whether it was likely to actually work or not! Generally, such forced module loading should be considered a really really bad idea, so make it conditional on a new config option (MODULE_FORCE_LOAD), and make it default to off. If somebody really wants to force module loads, that's their problem, but we should not encourage it. Especially as it happened to me by mistake (ie regular unversioned Fedora modules getting loaded) causing lots of strange behavior. Signed-off-by: Linus Torvalds <[email protected]>
2008-05-01module: add MODULE_STATE_GOING notifier callPeter Oberparleiter1-4/+7
Provide module unload callback. Required by the gcov profiling infrastructure to keep track of profiling data structures. Signed-off-by: Peter Oberparleiter <[email protected]> Signed-off-by: Rusty Russell <[email protected]>
2008-05-01module: Enhance verify_export_symbolsRusty Russell1-24/+24
Make verify_export_symbols check the modules unused, unused_gpl and gpl_future syms. Inspired by Jan Beulich's fix, but table-driven. Signed-off-by: Rusty Russell <[email protected]>
2008-05-01module: set unused_gpl_crcs instead of overwriting unused_crcsRusty Russell1-1/+2
Obvious typo, but I don't know of any modules with unused GPL exports, and then it would take someone noticing that the version shouldn't have matched in a dependent module. Signed-off-by: Rusty Russell <[email protected]>
2008-05-01module: neaten __find_symbol, rename to find_symbolRusty Russell1-121/+125
__find_symbol() has grown over time: there are now 5 different arrays of symbols it traverses. It also shouldn't print out a warning on some calls (ie. verify_symbol which simply checks for name clashes, and __symbol_put which checks for bugs). 1) Rename to find_symbol: no need for underscores. 2) Use bool and add "warn" parameter to suppress warnings. 3) Make table-driven rather than open coded. Signed-off-by: Rusty Russell <[email protected]>
2008-05-01module: reduce module image and resident sizeRusty Russell1-1/+2
Resulting reduction (x86-64, gcc 4.1.2) with my (special purpose, i.e. much reduced) configurations: - 16k kernel resident size - 180k module resident size - 10k module image size Signed-off-by: Jan Beulich <[email protected]> Signed-off-by: Rusty Russell <[email protected]>
2008-05-01module: make module_sect_attrs private to kernel/module.cRusty Russell1-1/+15
No-one else is using these afaics. Signed-off-by: Jan Beulich <[email protected]> Signed-off-by: Rusty Russell <[email protected]>
2008-04-18kernel: Remove unnecessary inclusions of asm/semaphore.hMatthew Wilcox1-2/+1
None of these files use any of the functionality promised by asm/semaphore.h. Signed-off-by: Matthew Wilcox <[email protected]>
2008-03-10modules: warn about suspicious return values from module's ->init() hookAlexey Dobriyan1-0/+8
Return value convention of module's init functions is 0/-E. Sometimes, e.g. during forward-porting mistakes happen and buggy module created, where result of comparison "workqueue != NULL" is propagated all the way up to sys_init_module. What happens is that some other module created workqueue in question, our module created it again and module was successfully loaded. Or it could be some other bug. Let's make such mistakes much more visible. In retrospective, such messages would noticeably shorten some of my head-scratching sessions. Note, that dump_stack() is just a way to get attention from user. Sample message: sys_init_module: 'foo'->init suspiciously returned 1, it should follow 0/-E convention sys_init_module: loading module anyway... Pid: 4223, comm: modprobe Not tainted 2.6.24-25f666300625d894ebe04bac2b4b3aadb907c861 #5 Call Trace: [<ffffffff80254b05>] sys_init_module+0xe5/0x1d0 [<ffffffff8020b39b>] system_call_after_swapgs+0x7b/0x80 Signed-off-by: Alexey Dobriyan <[email protected]> Cc: Rusty Russell <[email protected]> Signed-off-by: Andrew Morton <[email protected]> Signed-off-by: Linus Torvalds <[email protected]>
2008-03-10modules: fix module waiting for dependent modules' initRusty Russell1-3/+4
Commit c9a3ba55 (module: wait for dependent modules doing init.) didn't quite work because the waiter holds the module lock, meaning that the state of the module it's waiting for cannot change. Fortunately, it's fairly simple to update the state outside the lock and do the wakeup. Thanks to Jan Glauber for tracking this down and testing (qdio and qeth). Signed-off-by: Rusty Russell <[email protected]> Cc: Jan Glauber <[email protected]> Signed-off-by: Andrew Morton <[email protected]> Signed-off-by: Linus Torvalds <[email protected]>
2008-03-04module: allow ndiswrapper to use GPL-only symbolsPavel Roskin1-1/+8
A change after 2.6.24 broke ndiswrapper by accidentally removing its access to GPL-only symbols. Revert that change and add comments about the reasons why ndiswrapper and driverloader are treated in a special way. Signed-off-by: Pavel Roskin <[email protected]> Acked-by: Greg KH <[email protected]> Acked-by: Ingo Molnar <[email protected]> Cc: Rusty Russell <[email protected]> Cc: Jon Masters <[email protected]> Signed-off-by: Linus Torvalds <[email protected]>
2008-02-21modules: do not try to add sysfs attributes if !CONFIG_SYSFSKay Sievers1-5/+2
Thanks to Alexey for the testing and the fix of the fix. Cc: Alexey Dobriyan <[email protected]> Signed-off-by: Kay Sievers <[email protected]> Signed-off-by: Greg Kroah-Hartman <[email protected]>
2008-02-13Linux Kernel Markers: support multiple probesMathieu Desnoyers1-4/+3
RCU style multiple probes support for the Linux Kernel Markers. Common case (one probe) is still fast and does not require dynamic allocation or a supplementary pointer dereference on the fast path. - Move preempt disable from the marker site to the callback. Since we now have an internal callback, move the preempt disable/enable to the callback instead of the marker site. Since the callback change is done asynchronously (passing from a handler that supports arguments to a handler that does not setup the arguments is no arguments are passed), we can safely update it even if it is outside the preempt disable section. - Move probe arm to probe connection. Now, a connected probe is automatically armed. Remove MARK_MAX_FORMAT_LEN, unused. This patch modifies the Linux Kernel Markers API : it removes the probe "arm/disarm" and changes the probe function prototype : it now expects a va_list * instead of a "...". If we want to have more than one probe connected to a marker at a given time (LTTng, or blktrace, ssytemtap) then we need this patch. Without it, connecting a second probe handler to a marker will fail. It allow us, for instance, to do interesting combinations : Do standard tracing with LTTng and, eventually, to compute statistics with SystemTAP, or to have a special trigger on an event that would call a systemtap script which would stop flight recorder tracing. Signed-off-by: Mathieu Desnoyers <[email protected]> Cc: Christoph Hellwig <[email protected]> Cc: Mike Mason <[email protected]> Cc: Dipankar Sarma <[email protected]> Cc: David Smith <[email protected]> Cc: "Paul E. McKenney" <[email protected]> Cc: "Frank Ch. Eigler" <[email protected]> Cc: Steven Rostedt <[email protected]> Signed-off-by: Andrew Morton <[email protected]> Signed-off-by: Linus Torvalds <[email protected]>
2008-02-08fix "modules: make module_address_lookup() safe"Andrew Morton1-2/+2
Get the constness right, avoid nasty cast. Cc: Ingo Molnar <[email protected]> Cc: Kyle McMartin <[email protected]> Cc: Rusty Russell <[email protected]> Signed-off-by: Andrew Morton <[email protected]> Signed-off-by: Linus Torvalds <[email protected]>
2008-02-08modules: include sections.h to avoid defining linker variables explicitlyChristoph Lameter1-3/+1
module.c should not define linker variables on its own. We have an include file for that. Signed-off-by: Christoph Lameter <[email protected]> Cc: Rusty Russell <[email protected]> Signed-off-by: Andrew Morton <[email protected]> Signed-off-by: Linus Torvalds <[email protected]>
2008-02-08Modules: handle symbols that have a zero valueChristoph Lameter1-9/+14
The module subsystem cannot handle symbols that are zero. If symbols are present that have a zero value then the module resolver prints out a message that these symbols are unresolved. [[email protected]: fix __find_symbl() error checks] Cc: Mathieu Desnoyers <[email protected]> Cc: Kay Sievers <[email protected] Signed-off-by: Christoph Lameter <[email protected]> Cc: Rusty Russell <[email protected]> Cc: Andi Kleen <[email protected]> Signed-off-by: Akinobu Mita <[email protected]> Signed-off-by: Andrew Morton <[email protected]> Signed-off-by: Linus Torvalds <[email protected]>
2008-01-30x86/non-x86: percpu, node ids, apic ids x86.git fixupMike Travis1-0/+8
Signed-off-by: Ingo Molnar <[email protected]> Signed-off-by: Thomas Gleixner <[email protected]>
2008-01-29Module: check to see if we have a built in module with the same nameGreg Kroah-Hartman1-0/+10
When trying to load a module with the same name as a built-in one, a scary kobject backtrace comes up. Prevent that from checking for this condition and warning the user as to what exactly is going on. Cc: Rusty Russell <[email protected]> Cc: Linus Torvalds <[email protected]> Cc: Andrew Morton <[email protected]> Signed-off-by: Greg Kroah-Hartman <[email protected]> Signed-off-by: Rusty Russell <[email protected]>
2008-01-29module: add module taint on ndiswrapperJon Masters1-1/+1
The struct module taints member is supposed to store per-module taint data. The kernel knows about certain specific external modules that will taint the kernel, such as ndiswrapper. Use of ndiswrapper possibly should set the per-module taint in addition to the global kernel taint flag, unless we're arguing not because wrapper module itself is not what actually causes the kernel to be tainted as such? Signed-off-by: Jon Masters <[email protected]> Signed-off-by: Rusty Russell <[email protected]>
2008-01-29module: make module_address_lookup safeRusty Russell1-9/+13
module_address_lookup releases preemption then returns a pointer into the module space. The only user (kallsyms) copies the result, so just do that under the preempt disable. Signed-off-by: Rusty Russell <[email protected]>
2008-01-29module: better OOPS and lockdep coverage for loading modulesRusty Russell1-18/+20
If we put the module in the linked list *before* calling into to, we get the module name and functions in the OOPS (is_module_address can find the module). It also helps lockdep in a similar way. Acked-and-tested-by: Joern Engel <[email protected]> Tested-by: Erez Zadok <[email protected]> Signed-off-by: Rusty Russell <[email protected]>
2008-01-29module: Fix gratuitous sprintf in module.cRusty Russell1-1/+1
Andrew sent an older version of this patch: we shouldn't use sprintf to copy a string. Signed-off-by: Rusty Russell <[email protected]>
2008-01-29module: wait for dependent modules doing init.Rusty Russell1-5/+23
There have been reports of modules failing to load because the modules they depend on are still loading. This changes the modules to wait for a reasonable length of time in that case. We time out eventually, because there can be module loops or broken modules. Signed-off-by: Rusty Russell <[email protected]>
2008-01-25debug: track and print last unloaded module in the oops traceArjan van de Ven1-0/+6
Based on a suggestion from Andi: In various cases, the unload of a module may leave some bad state around that causes a kernel crash AFTER a module is unloaded; and it's then hard to find which module caused that. This patch tracks the last unloaded module, and prints this as part of the module list in the oops trace. Right now, only the last 1 module is tracked; I expect that this is enough for the vast majority of cases where this information matters; if it turns out that tracking more is important, we can always extend it to that. [ [email protected]: build fix ] Signed-off-by: Arjan van de Ven <[email protected]> Signed-off-by: Ingo Molnar <[email protected]>
2008-01-25debug: show being-loaded/being-unloaded indicator for modulesArjan van de Ven1-6/+15
It's rather common that an oops/WARN_ON/BUG happens during the load or unload of a module. Unfortunatly, it's not always easy to see directly which module is being loaded/unloaded from the oops itself. Worse, it's not even always possible to ask the bug reporter, since there are so many components (udev etc) that auto-load modules that there's a good chance that even the reporter doesn't know which module this is. This patch extends the existing "show if it's tainting" print code, which is used as part of printing the modules in the oops/BUG/WARN_ON to include a "+" for "being loaded" and a "-" for "being unloaded". As a result this extension, the "taint_flags()" function gets renamed to "module_flags()" (and takes a module struct as argument, not a taint flags int). Signed-off-by: Arjan van de Ven <[email protected]> Signed-off-by: Ingo Molnar <[email protected]>
2008-01-24Kobject: convert remaining kobject_unregister() to kobject_put()Greg Kroah-Hartman1-5/+4
There is no need for kobject_unregister() anymore, thanks to Kay's kobject cleanup changes, so replace all instances of it with kobject_put(). Cc: Kay Sievers <[email protected]> Signed-off-by: Greg Kroah-Hartman <[email protected]>
2008-01-24Kobject: convert kernel/module.c to use kobject_init/add_ng()Greg Kroah-Hartman1-8/+6
This converts the code to use the new kobject functions, cleaning up the logic in doing so. Cc: Kay Sievers <[email protected]> Signed-off-by: Greg Kroah-Hartman <[email protected]>
2008-01-24sysfs: fix /sys/module/*/holders after sysfs logic changeKay Sievers1-8/+7
Sysfs symlinks now require fully registered kobjects as a target, otherwise the call to create a symlink will fail. Here we register the kobject before we request the symlink in the holders directory. Signed-off-by: Kay Sievers <[email protected]> Cc: Tejun Heo <[email protected]> Signed-off-by: Greg Kroah-Hartman <[email protected]>
2008-01-24Driver core: move the driver specific module code into the driver coreGreg Kroah-Hartman1-87/+0
The module driver specific code should belong in the driver core, not in the kernel/ directory. So move this code. This is done in preparation for some struct device_driver rework that should be confined to the driver core code only. This also lets us keep from exporting these functions, as no external code should ever be calling it. Thanks to Andrew Morton for the !CONFIG_MODULES fix. Signed-off-by: Greg Kroah-Hartman <[email protected]>
2008-01-24kset: convert /sys/module to use kset_createGreg Kroah-Hartman1-4/+3
Dynamically create the kset instead of declaring it statically. We also rename module_subsys to module_kset to catch all users of the variable. Cc: Kay Sievers <[email protected]> Signed-off-by: Greg Kroah-Hartman <[email protected]>
2008-01-24kobject: get rid of kobject_add_dirGreg Kroah-Hartman1-3/+3
kobject_create_and_add is the same as kobject_add_dir, so drop kobject_add_dir. Cc: Kay Sievers <[email protected]> Signed-off-by: Greg Kroah-Hartman <[email protected]>
2008-01-24kobject: remove struct kobj_type from struct ksetGreg Kroah-Hartman1-1/+1
We don't need a "default" ktype for a kset. We should set this explicitly every time for each kset. This change is needed so that we can make ksets dynamic, and cleans up one of the odd, undocumented assumption that the kset/kobject/ktype model has. This patch is based on a lot of help from Kay Sievers. Nasty bug in the block code was found by Dave Young <[email protected]> Cc: Kay Sievers <[email protected]> Cc: Dave Young <[email protected]> Signed-off-by: Greg Kroah-Hartman <[email protected]>
2008-01-14modules: de-mutex more symbol lookup paths in the module codeRusty Russell1-11/+18
Kyle McMartin reports sysrq_timer_list_show() can hit the module mutex from hard interrupt context. These paths don't need to though, since we long ago changed all the module list manipulation to occur via stop_machine(). Disabling preemption is enough. Signed-off-by: Rusty Russell <[email protected]> Cc: Ingo Molnar <[email protected]> Cc: Kyle McMartin <[email protected]> Signed-off-by: Andrew Morton <[email protected]> Signed-off-by: Linus Torvalds <[email protected]>
2007-11-19module: fix and elaborate commentsMatti Linnanvuori1-3/+5
Fix and elaborate comments. Signed-off-by: Matti Linnanvuori <[email protected]> Signed-off-by: Rusty Russell <[email protected]>
2007-10-19Linux Kernel MarkersMathieu Desnoyers1-0/+30
The marker activation functions sits in kernel/marker.c. A hash table is used to keep track of the registered probes and armed markers, so the markers within a newly loaded module that should be active can be activated at module load time. marker_query has been removed. marker_get_first, marker_get_next and marker_release should be used as iterators on the markers. [[email protected]: coding-style fixes] Signed-off-by: Mathieu Desnoyers <[email protected]> Acked-by: "Frank Ch. Eigler" <[email protected]> Cc: Christoph Hellwig <[email protected]> Cc: Rusty Russell <[email protected]> Cc: Mike Mason <[email protected]> Signed-off-by: Andrew Morton <[email protected]> Signed-off-by: Linus Torvalds <[email protected]>
2007-10-18whitespace fixes: module loadingDaniel Walker1-19/+19
Signed-off-by: Daniel Walker <[email protected]> Signed-off-by: Andrew Morton <[email protected]> Signed-off-by: Linus Torvalds <[email protected]>
2007-10-17module: return error when mod_sysfs_init() failedAkinobu Mita1-1/+2
load_module() returns zero when mod_sysfs_init() fails, then the module loading will succeed accidentally. This patch makes load_module() return error correctly in that case. Acked-by: Greg Kroah-Hartman <[email protected]> Acked-by: Rusty Russell <[email protected]> Signed-off-by: Akinobu Mita <[email protected]> Signed-off-by: Andrew Morton <[email protected]> Signed-off-by: Linus Torvalds <[email protected]>
2007-10-17Add /sys/module/name/notesRoland McGrath1-0/+106
This patch adds the /sys/module/<name>/notes/ magic directory, which has a file for each allocated SHT_NOTE section that appears in <name>.ko. This is the counterpart for each module of /sys/kernel/notes for vmlinux. Reading this delivers the contents of the module's SHT_NOTE sections. This lets userland easily glean any detailed information about that module's build that was stored there at compile time (e.g. by ld --build-id). Signed-off-by: Roland McGrath <[email protected]> Signed-off-by: Andrew Morton <[email protected]> Signed-off-by: Linus Torvalds <[email protected]>
2007-10-17Remove "unsafe" from module structRusty Russell1-16/+5
Adrian Bunk points out that "unsafe" was used to mark modules touched by the deprecated MOD_INC_USE_COUNT interface, which has long gone. It's time to remove the member from the module structure, as well. If you want a module which can't unload, don't register an exit function. (Vlad Yasevich says SCTP is now safe to unload, so just remove the __unsafe there). Signed-off-by: Rusty Russell <[email protected]> Acked-by: Shannon Nelson <[email protected]> Acked-by: Dan Williams <[email protected]> Acked-by: Vlad Yasevich <[email protected]> Cc: Sridhar Samudrala <[email protected]> Cc: Adrian Bunk <[email protected]> Signed-off-by: Andrew Morton <[email protected]> Signed-off-by: Linus Torvalds <[email protected]>
2007-08-22Fix Off-by-one in /sys/module/*/refcntAlexey Dobriyan1-2/+1
sysfs internals were changed to not pin module in question. Signed-off-by: Alexey Dobriyan <[email protected]> Acked-by: Kay Sievers <[email protected]> Acked-by: Tejun Heo <[email protected]> Signed-off-by: Greg Kroah-Hartman <[email protected]>
2007-07-17kallsyms: make KSYM_NAME_LEN include space for trailing '\0'Tejun Heo1-5/+5
KSYM_NAME_LEN is peculiar in that it does not include the space for the trailing '\0', forcing all users to use KSYM_NAME_LEN + 1 when allocating buffer. This is nonsense and error-prone. Moreover, when the caller forgets that it's very likely to subtly bite back by corrupting the stack because the last position of the buffer is always cleared to zero. This patch increments KSYM_NAME_LEN by one and updates code accordingly. * off-by-one bug in asm-powerpc/kprobes.h::kprobe_lookup_name() macro is fixed. * Where MODULE_NAME_LEN and KSYM_NAME_LEN were used together, MODULE_NAME_LEN was treated as if it didn't include space for the trailing '\0'. Fix it. Signed-off-by: Tejun Heo <[email protected]> Acked-by: Paulo Marques <[email protected]> Cc: Benjamin Herrenschmidt <[email protected]> Cc: Paul Mackerras <[email protected]> Signed-off-by: Andrew Morton <[email protected]> Signed-off-by: Linus Torvalds <[email protected]>
2007-07-16modules: remove modlist_lockRusty Russell1-21/+15
Now we always use stop_machine for module insertion or deletion, we no longer need the modlist_lock: merely disabling preemption is sufficient to block against list manipulation. This avoids deadlock on OOPSen where we can potentially grab the lock twice. Bug: 8695 Signed-off-by: Rusty Russell <[email protected]> Cc: Ingo Molnar <[email protected]> Cc: Tobias Oed <[email protected]> Signed-off-by: Andrew Morton <[email protected]> Signed-off-by: Linus Torvalds <[email protected]>
2007-07-16Make /proc/modules use seq_list_xxx helpersPavel Emelianov1-15/+2
Here there is not need even in .show callback altering. The original code passes list_head in *v. Signed-off-by: Pavel Emelianov <[email protected]> Signed-off-by: Andrew Morton <[email protected]> Signed-off-by: Linus Torvalds <[email protected]>
2007-07-11sysfs: kill unnecessary attribute->ownerTejun Heo1-6/+3
sysfs is now completely out of driver/module lifetime game. After deletion, a sysfs node doesn't access anything outside sysfs proper, so there's no reason to hold onto the attribute owners. Note that often the wrong modules were accounted for as owners leading to accessing removed modules. This patch kills now unnecessary attribute->owner. Note that with this change, userland holding a sysfs node does not prevent the backing module from being unloaded. For more info regarding lifetime rule cleanup, please read the following message. http://article.gmane.org/gmane.linux.kernel/510293 (tweaked by Greg to not delete the field just yet, to make it easier to merge things properly.) Signed-off-by: Tejun Heo <[email protected]> Cc: Cornelia Huck <[email protected]> Cc: Andrew Morton <[email protected]> Signed-off-by: Greg Kroah-Hartman <[email protected]>