linux-modules.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* multiple softdeps
@ 2019-06-28 13:16 Harald Hoyer
  2019-06-28 16:25 ` Lucas De Marchi
  0 siblings, 1 reply; 5+ messages in thread
From: Harald Hoyer @ 2019-06-28 13:16 UTC (permalink / raw)
  To: linux-modules

Hi,

could you please enlighten me about kernel module softdeps?

$ modinfo cifs | grep soft
softdep:        pre: ccm
softdep:        pre: aead2
softdep:        pre: sha512
softdep:        pre: sha256
softdep:        pre: cmac
softdep:        pre: aes
softdep:        pre: nls
softdep:        pre: md5
softdep:        pre: md4
softdep:        pre: hmac
softdep:        pre: ecb
softdep:        pre: des
softdep:        pre: arc4

$ grep cifs /lib/modules/$(uname -r)/modules.softdep
softdep cifs pre: ccm
softdep cifs pre: aead2
softdep cifs pre: sha512
softdep cifs pre: sha256
softdep cifs pre: cmac
softdep cifs pre: aes
softdep cifs pre: nls
softdep cifs pre: md5
softdep cifs pre: md4
softdep cifs pre: hmac
softdep cifs pre: ecb
softdep cifs pre: des
softdep cifs pre: arc4

But, calling kmod_module_get_softdeps() on the cifs module only returns one module in the pre list ("ccm").

Is my understanding about how softdeps work wrong, or is the cifs module misconfigured, or is libkmod buggy?
Please CC me, as I am not subscribed to the mailing list.


softdeps-test.c:

#include <stdio.h>
#include <libkmod.h>
#include <stdlib.h>

int main() {
    int err;
    struct kmod_ctx *ctx = NULL;
    struct kmod_list *list = NULL;
    struct kmod_list *modpre = NULL;
    struct kmod_list *modpost = NULL;
    struct kmod_list *itr, *l;

    ctx = kmod_new(NULL, NULL);

    err = kmod_module_new_from_lookup(ctx, "cifs", &list);
    if (err < 0) {
        perror("kmod_module_new_from_lookup");
        return EXIT_FAILURE;
    }

    kmod_list_foreach(l, list) {
        struct kmod_module *mod = NULL;
        mod = kmod_module_get_module(l);

        kmod_module_get_softdeps(mod, &modpre, &modpost);

        kmod_list_foreach(itr, modpre) {
            struct kmod_module *mod = NULL;
            const char *path = NULL;
            mod = kmod_module_get_module(itr);
            path = kmod_module_get_path(mod);
            puts(path);
        }
    }
}

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2019-07-01 17:44 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-06-28 13:16 multiple softdeps Harald Hoyer
2019-06-28 16:25 ` Lucas De Marchi
2019-06-29  9:30   ` Jean Delvare
2019-06-30  5:57     ` Steve French
2019-07-01 17:33       ` Paulo Alcantara

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).