On Wed, 20 Jun 2012 09:15:33 -0300 Lucas De Marchi <lucas.demarchi@xxxxxxxxxxxxxx> wrote: > On Wed, Jun 20, 2012 at 8:56 AM, Robert Milasan <rmilasan@xxxxxxx> > wrote: > > On Wed, 20 Jun 2012 08:34:59 -0300 > > Lucas De Marchi <lucas.demarchi@xxxxxxxxxxxxxx> wrote: > > > >> Hi Robert, > >> > >> please CC linux-modules@xxxxxxxxxxxxxxx so others can benefit from > >> the responses. I'm doing so now. > >> > >> On Wed, Jun 20, 2012 at 8:21 AM, Robert Milasan <rmilasan@xxxxxxx> > >> wrote: > >> > Hello, I'm trying now to build kmod 9 on 64 and 32 bits > >> > opensuse. On 64bits everything is fine, but on 32bits it fails > >> > in init_modules.c: 150:assert(mkdir_p(buf, 0755) >= 0); > >> > > >> > If I drop assert, all works. Do you have an idea why it fails? > >> > >> Does "make check" work for you after removing this assert? Some of > >> the tests that rely on being able to create dirs on testsuite's > >> rootfs should fail if you didn't create the dirs. > >> > >> On your 32 bits machine, is your testsuite/rootfs dir (or any of > >> the dirs below) read-only? > >> > >> Lucas De Marchi > > > > If I drop assert(mkdir_p...) then all works. rootfs and the below > > dirs all have the rights "0755" so all good, but this issue doesn't > > happen on 64bits which is a bit strange for me. Maybe there is > > something wrong in mkdir.c -> mkdir_p function. > > Maybe... gotta check this on a 32 bits machine. > > > > > Anyway I've asked around and some people said that using assert on > > "mkdir_p" is kind of a bad idea, but I'm not a developer so I > > wouldn't know. > > Yeah, except that this code path runs only on *testsuite*, i.e. it's > part of the tests we make to check it's right, but it's not part of > libkmod, modprobe or depmod, etc that runs on production. > > I put the assert because there are tests that depend on being able to > create dirs: among others, the "install command loop" test. If dir is > not created, it will fail nonetheless, but instead of saying it's > because of a failed dir creation it will create a fork bomb (yeah, > it's a loop of fork + exec). I preferred failing the test earlier than > having to killall modprobe later or wait for kernel's oom killer. > > > Lucas De Marchi I can't disagree with you, but the reality is that dropping assert makes things work. On the other hand in some conditions or situation it might fail without assert like you said. It didn't happen to me, but it might :) -- Robert Milasan L3 Support Engineer SUSE rmilasan@xxxxxxxx -- To unsubscribe from this list: send the line "unsubscribe linux-modules" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html