Kees Cook wrote: > +static int modpin_load_module(struct file *file) > +{ > + struct dentry *module_root; > + > + if (!file) { > + if (!modpin_enforced) { > + report_load_module(NULL, "old-api-pinning-ignored"); > + return 0; > + } > + > + report_load_module(NULL, "old-api-denied"); > + return -EPERM; > + } > + > + module_root = file->f_path.mnt->mnt_root; > + > + /* First loaded module defines the root for all others. */ > + spin_lock(&pinned_root_spinlock); > + if (!pinned_root) { > + pinned_root = dget(module_root); > + /* > + * Unlock now since it's only pinned_root we care about. > + * In the worst case, we will (correctly) report pinning > + * failures before we have announced that pinning is > + * enabled. This would be purely cosmetic. > + */ > + spin_unlock(&pinned_root_spinlock); > + check_pinning_enforcement(); > + report_load_module(&file->f_path, "pinned"); > + return 0; > + } > + spin_unlock(&pinned_root_spinlock);
Firstly loaded module is usually in initramfs whereas subsequently loaded modules are usually on a hard disk partition. This module is not meant for PC servers, is it? -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/