Bug 552443

Summary: libcrc32c kernel module has missing dependency on crc32c module
Product: [openSUSE] openSUSE 11.2 Reporter: Andreas Jaeger <aj>
Component: KernelAssignee: Michal Marek <mmarek>
Status: RESOLVED FIXED QA Contact: E-mail List <qa-bugs>
Severity: Major    
Priority: P3 - Medium CC: aschnell, mge, mmarek
Version: RC 1   
Target Milestone: ---   
Hardware: Other   
OS: Other   
Whiteboard:
Found By: --- Services Priority:
Business Priority: Blocker: ---
Marketing QA Status: --- IT Deployment: ---

Description Andreas Jaeger 2009-11-04 10:04:30 UTC
User-Agent:       Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1.4) Gecko/20091016 SUSE/3.5.4-1.1.2 Firefox/3.5.4

I tried to install btrfs as root filesystem but it did not boot the machine since the btrfs module could not get loaded.  The problem is that the dependend module libcrc32c could not be loaded since it needs crc32c but does not have a dependency on it - and therefore the module is not added to the initrd and cannot get used.

Please add a dependency in the module libcrc32c on crc32c.

Reproducible: Always

Steps to Reproduce:
Install 11.2 system with / as btrfs and then boot (needs separate /boot partition as well) - it fails.
Comment 1 Greg Kroah-Hartman 2009-11-04 14:45:43 UTC
Dependencies happen "automagically", there is no need to specify them by hand anywhere.

What are the log messages when you try to do this?
Comment 2 Andreas Jaeger 2009-11-04 15:07:27 UTC
According to Hare (NEEDINFO) these are not set correctly.

The message was that there was an error inserting the module btrfs - 
modprove -v btrfs showed that libcrc32c could not get inserted.

After adding crc32c to the initrd everything worked fine.
Comment 3 Michal Marek 2009-11-04 16:02:50 UTC
libcrc32c calls crypto_alloc_shash("crc32c", 0, 0), which results in a request_module("crc32c"), but that dependency is not seen by modpost/depmod :-(.
Comment 4 Andreas Jaeger 2009-11-04 16:07:22 UTC
I think comment #3 answers the question.
Comment 5 Michal Marek 2009-11-04 20:26:00 UTC
As a workaround, I added
# SUSE INITRD: libcrc32c REQUIRES crc32c
to modprobe.conf so that our mkinitrd picks up the crc32c module.

BTW Andreas Robinson is planning a mechanism to add explicit dependencies to modules, that would be a proper fix.
Comment 6 Arvin Schnell 2009-11-06 20:45:42 UTC

*** This bug has been marked as a duplicate of bug 543801 ***
Comment 7 Michal Marek 2009-11-10 09:25:30 UTC
*** Bug 543801 has been marked as a duplicate of this bug. ***
Comment 8 Bernhard Wiedemann 2016-04-15 10:29:17 UTC
This is an autogenerated message for OBS integration:
This bug (552443) was mentioned in
https://build.opensuse.org/request/show/23896 Factory / module-init-tools