Bug 1324376 - KMP issue: compatibility symlinks for compatible modules are not created on PPC64LE for errata kernel
Summary: KMP issue: compatibility symlinks for compatible modules are not created on P...
Keywords:
Status: CLOSED DUPLICATE of bug 1283486
Alias: None
Product: Red Hat Enterprise Linux 7
Classification: Red Hat
Component: kmod
Version: 7.2
Hardware: ppc64le
OS: Linux
unspecified
urgent
Target Milestone: rc
: ---
Assignee: David Shea
QA Contact: Xiaoli Li
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2016-04-06 08:18 UTC by Alaa Hleihel
Modified: 2016-04-11 12:34 UTC (History)
5 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2016-04-07 13:36:37 UTC
Target Upstream Version:


Attachments (Terms of Use)

Description Alaa Hleihel 2016-04-06 08:18:21 UTC
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/

Comment 2 David Shea 2016-04-07 13:36:37 UTC

*** This bug has been marked as a duplicate of bug 1283486 ***

Comment 3 Alaa Hleihel 2016-04-10 08:14:14 UTC
Hi David,

It seems that I don't have permission to access bug 1283486.
Would you please grant permissions to access it ?

Thanks,
Alaa

Comment 4 David Shea 2016-04-11 12:33:19 UTC
Hi Alaa, you should have access now.

Comment 5 Alaa Hleihel 2016-04-11 12:34:30 UTC
yes, I can see it now. thanks a lot.


Note You need to log in before you can comment on or make changes to this bug.