Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
home:philipsb:newer-kernels-on-sle10
module-init-tools
module-init-tools-eintr.diff
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File module-init-tools-eintr.diff of Package module-init-tools
--- insmod.c | 4 +++- modprobe.c | 11 ++++++++--- rmmod.c | 4 +++- 3 files changed, 14 insertions(+), 5 deletions(-) --- insmod.c.orig +++ insmod.c @@ -160,7 +160,9 @@ int main(int argc, char *argv[]) exit(1); } - ret = init_module(file, len, options); + do { + ret = init_module(file, len, options); + } while (ret == -1 && errno == EINTR); if (ret != 0) { fprintf(stderr, "insmod: error inserting '%s': %li %s\n", filename, ret, moderror(errno)); --- modprobe.c.orig +++ modprobe.c @@ -925,7 +925,9 @@ static void insmod(struct list_head *lis if (dry_run) goto out; - ret = init_module(map, len, optstring); + do { + ret = init_module(map, len, optstring); + } while (ret == -1 && errno == EINTR); if (ret != 0) { if (errno == EEXIST) { if (first_time) @@ -959,7 +961,7 @@ static void rmmod(struct list_head *list { const char *command; unsigned int usecount = 0; - int lock; + int lock, ret; struct module *mod = list_entry(list->next, struct module, list); /* Take first one off the list. */ @@ -995,7 +997,10 @@ static void rmmod(struct list_head *list if (dry_run) goto remove_rest; - if (delete_module(name, O_EXCL) != 0) { + do { + ret = delete_module(name, O_EXCL); + } while (ret == -1 && errno == EINTR); + if (ret != 0) { if (errno == ENOENT) goto nonexistent_module; error("Error removing %s (%s): %s\n", --- rmmod.c.orig +++ rmmod.c @@ -187,7 +187,9 @@ static int rmmod(int log, int verbose, c (flags & O_NONBLOCK) ? "no" : "yes", (flags & O_TRUNC) ? " force" : ""); - ret = delete_module(name, flags); + do { + ret = delete_module(name, flags); + } while (ret == -1 && errno == EINTR); if (ret != 0) error(log, "Removing '%s': %s\n", name, strerror(errno)); return ret;
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor