| Summary: | KMP issue: compatibility symlinks for compatible modules are not created on PPC64LE for errata kernel | ||
|---|---|---|---|
| Product: | Red Hat Enterprise Linux 7 | Reporter: | Alaa Hleihel <alaa> |
| Component: | kmod | Assignee: | David Shea <dshea> |
| Status: | CLOSED DUPLICATE | QA Contact: | Xiaoli Li <xiaolli> |
| Severity: | urgent | Docs Contact: | |
| Priority: | unspecified | ||
| Version: | 7.2 | CC: | alaa, cye, dshea, hannsj_uhl, vlad |
| Target Milestone: | rc | ||
| Target Release: | --- | ||
| Hardware: | ppc64le | ||
| OS: | Linux | ||
| Whiteboard: | |||
| Fixed In Version: | Doc Type: | Bug Fix | |
| Doc Text: | Story Points: | --- | |
| Clone Of: | Environment: | ||
| Last Closed: | 2016-04-07 13:36:37 UTC | Type: | Bug |
| Regression: | --- | Mount Type: | --- |
| Documentation: | --- | CRM: | |
| Verified Versions: | Category: | --- | |
| oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
| Cloudforms Team: | --- | Target Upstream Version: | |
*** This bug has been marked as a duplicate of bug 1283486 *** Hi David, It seems that I don't have permission to access bug 1283486. Would you please grant permissions to access it ? Thanks, Alaa Hi Alaa, you should have access now. yes, I can see it now. thanks a lot. |
Description of problem: After installing a kernel module packaged in an RPM with KMP support (kmod-... rpm file that was built against default kernel version 3.10.0-327.el7.ppc64le) on RHEL 7.2 PPC64LE with errata kernel version 3.10.0-327.10.1.el7.ppc64le, the compatibility symlinks for the modules were not created under /lib/modules/3.10.0-327.10.1.el7.ppc64le/weak-updates/. The problem is with a regular expression in script "/sbin/weak-modules" in function module_is_compatible, which fails to get the "TOC." symbol from kernel's symvers, which causes a false alarm like: "Module ib_core.ko from kernel 3.10.0-327.el7.ppc64le is not compatible with kernel 3.10.0-327.10.1.el7.ppc64le in symbols: TOC." Therefore, the symlink is not created under weak-updates/ directory. * Note that manually insmod-ing the module worked, which indicated that there is no ABI compatibility issue. More details: At line #201: | sed -r -ne 's:^(0x[0]*[0-9a-f]{8}\t[0-9a-zA-Z_]+)\t.*:\1:p' The symbol "TOC." is excluded as "\." is not in the regular expression for a valid symbol name. But, when getting modversios for each module using modprobe, all symbols are taken including those with "." in their names, and as a result, the script thinks that the module needs a symbol that is not provided by anyone. I verified that "TOC." exists in /boot/symvers-$krel.gz with same version as in my module (both are 0x00000000 TOC.). The "TOC." symbol seems to exist only on PPC64LE, therefore the issue exist only on PPC64LE. ###################### Version-Release number of selected component (if applicable): /sbin/weak-modules from kmod-20-5.el7.ppc64le Red Hat Enterprise Linux Server release 7.2 (Maipo) ###################### How reproducible: Always. ###################### Steps to Reproduce: 1. Build kernel module packaged in an RPM with KMP support on 3.10.0-327.el7.ppc64le 2. Install it on errata kernel 3.10.0-327.10.1.el7.ppc64le ###################### Actual results: Compatibility symlinks for compatible modules are not created. Nothing under /lib/modules/3.10.0-327.10.1.el7.ppc64le/weak-updates/ ###################### Expected results: Links for installed module should exist under /lib/modules/3.10.0-327.10.1.el7.ppc64le/weak-updates/