William Barsse writes:

fixes two other issues (plus the previous as well) with a 2.4 kernel :

- should be able to modprobe an already loaded module and get 0 return
code :
# modprobe <something> && modprobe <something> && echo "ok" || echo "failed"
....
failed

Well, hope this helps and that I didn't screw up again,
- William
This commit is contained in:
Eric Andersen
2004-08-03 08:23:33 +00:00
parent 93d7fba892
commit 44b5758247

View File

@@ -368,15 +368,14 @@ static int mod_strcmp ( const char *mod_path, const char *mod_name )
#define MODULE_EXTENSION ".o" #define MODULE_EXTENSION ".o"
#define MOD_EXTENSION_LEN 2 #define MOD_EXTENSION_LEN 2
#endif #endif
if ((strstr (mod_path, mod_name) == /* last path component */
(mod_path + strlen(mod_path) - const char *last_comp = strrchr (mod_path, '/');
strlen(mod_name) - MOD_EXTENSION_LEN))
&& (!strcmp(mod_path + strlen(mod_path) - return (strncmp(last_comp ? last_comp + 1 : mod_path,
MOD_EXTENSION_LEN, MODULE_EXTENSION))) mod_name,
{ strlen(mod_name)) == 0 ) &&
return 1; (strcmp(mod_path + strlen(mod_path) -
} MOD_EXTENSION_LEN, MODULE_EXTENSION) == 0);
return 0;
} }
/* return 1 = loaded, 0 = not loaded, -1 = can't tell */ /* return 1 = loaded, 0 = not loaded, -1 = can't tell */
@@ -409,7 +408,7 @@ static int already_loaded (const char *name)
static int mod_process ( struct mod_list_t *list, int do_insert ) static int mod_process ( struct mod_list_t *list, int do_insert )
{ {
char lcmd [256]; char lcmd [256];
int rc = 1; int rc = 0;
while ( list ) { while ( list ) {
*lcmd = '\0'; *lcmd = '\0';