Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
L
linux
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
nexedi
linux
Commits
f9da8a74
Commit
f9da8a74
authored
Nov 17, 2002
by
Doug Ledford
Browse files
Options
Browse Files
Download
Plain Diff
Merge aladin.rdu.redhat.com:/usr/local/home/dledford/bk/linus-2.5
into aladin.rdu.redhat.com:/usr/src/2.5
parents
f6c8e663
d0081995
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
12 additions
and
3 deletions
+12
-3
kernel/module.c
kernel/module.c
+12
-3
No files found.
kernel/module.c
View file @
f9da8a74
...
@@ -1098,6 +1098,15 @@ sys_init_module(void *umod,
...
@@ -1098,6 +1098,15 @@ sys_init_module(void *umod,
list_add
(
&
mod
->
extable
.
list
,
&
extables
);
list_add
(
&
mod
->
extable
.
list
,
&
extables
);
spin_unlock_irq
(
&
modlist_lock
);
spin_unlock_irq
(
&
modlist_lock
);
/* Note, setting the mod->live to 1 here is safe because we haven't
* linked the module into the system's kernel symbol table yet,
* which means that the only way any other kernel code can call
* into this module right now is if this module hands out entry
* pointers to the other code. We assume that no module hands out
* entry pointers to the rest of the kernel unless it is ready to
* have them used.
*/
mod
->
live
=
1
;
/* Start the module */
/* Start the module */
ret
=
mod
->
init
?
mod
->
init
()
:
0
;
ret
=
mod
->
init
?
mod
->
init
()
:
0
;
if
(
ret
<
0
)
{
if
(
ret
<
0
)
{
...
@@ -1110,9 +1119,10 @@ sys_init_module(void *umod,
...
@@ -1110,9 +1119,10 @@ sys_init_module(void *umod,
/* Mark it "live" so that they can force
/* Mark it "live" so that they can force
deletion later, and we don't keep getting
deletion later, and we don't keep getting
woken on every decrement. */
woken on every decrement. */
mod
->
live
=
1
;
}
else
{
}
else
mod
->
live
=
0
;
free_module
(
mod
);
free_module
(
mod
);
}
up
(
&
module_mutex
);
up
(
&
module_mutex
);
return
ret
;
return
ret
;
}
}
...
@@ -1127,7 +1137,6 @@ sys_init_module(void *umod,
...
@@ -1127,7 +1137,6 @@ sys_init_module(void *umod,
mod
->
module_init
=
NULL
;
mod
->
module_init
=
NULL
;
/* All ok! */
/* All ok! */
mod
->
live
=
1
;
up
(
&
module_mutex
);
up
(
&
module_mutex
);
return
0
;
return
0
;
}
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment