Willian Barsse wrote
"There seems to be a slight problem with the "mod_strcmp" function in modprobe.c, it scans for the first occurence of the module name in the "mod_path" variable and expects it to be the last path element. ie /lib/modules/2.4.22-debug/kernel/fs/vfat in my example. The comparison will always fail if mod_path contains another substring matching the module name." Robert McQueen wrote "Although William Barsse's patch fixed mod_strcmp for 2.4 kernels, there was a remaining problem which prevented it from working for me. I've just tracked it down - when you enable kernel 2.6 module support it hard-wired the extension to .ko instead of checking at runtime like the other places where 2.4 differs from 2.6. The attached patch fixes this for me."
This commit is contained in:
parent
2f325a030b
commit
65c8c7ba27
@ -361,21 +361,20 @@ static struct dep_t *build_dep ( void )
|
||||
/* return 1 = found, 0 = not found */
|
||||
static int mod_strcmp ( const char *mod_path, const char *mod_name )
|
||||
{
|
||||
#if defined(CONFIG_FEATURE_2_6_MODULES)
|
||||
#define MODULE_EXTENSION ".ko"
|
||||
#define MOD_EXTENSION_LEN 3
|
||||
#else
|
||||
#define MODULE_EXTENSION ".o"
|
||||
#define MOD_EXTENSION_LEN 2
|
||||
#endif
|
||||
/* last path component */
|
||||
const char *last_comp = strrchr (mod_path, '/');
|
||||
const char *mod_ext = ".o";
|
||||
|
||||
#if defined(CONFIG_FEATURE_2_6_MODULES)
|
||||
if ( k_version > 4 )
|
||||
mod_ext = ".ko";
|
||||
#endif
|
||||
|
||||
return (strncmp(last_comp ? last_comp + 1 : mod_path,
|
||||
mod_name,
|
||||
strlen(mod_name)) == 0 ) &&
|
||||
(strcmp(mod_path + strlen(mod_path) -
|
||||
MOD_EXTENSION_LEN, MODULE_EXTENSION) == 0);
|
||||
strlen(mod_ext), mod_ext) == 0);
|
||||
}
|
||||
|
||||
/* return 1 = loaded, 0 = not loaded, -1 = can't tell */
|
||||
|
Loading…
Reference in New Issue
Block a user