Bug 59041

Summary: [PATCH 001/001] Compiling iwlwifi or alx against 3.4.47 kernel gives redefinition error
Product: Backports project Reporter: svrusso1
Component: BackportsAssignee: Backports Project Mailing List (backports)
Status: CLOSED CODE_FIX    
Severity: normal CC: c.s.sigman, hauke, mcgrof, mricon
Priority: P1    
Hardware: All   
OS: Linux   
Kernel Version: 3.4.47 Subsystem:
Regression: No Bisected commit-id:

Description svrusso1 2013-05-30 20:11:27 UTC
from: Steve Russo <svrusso1@gmail.com>

Compiling iwlwifi or alx against 3.4.47 kernel gives redefinition error. Tried using compat-drivers-3.9-rc4-2-su,  compat-drivers-3.9-rc2-2-su, and compat-drivers-3.8.3-2-snpu. Does not work from any of them.

Patch against compat-drivers-3.9-rc4-2-su follows body.

Error:
auser@mycomputer:/path/to/home/Dev/Wired/compat-drivers-3.9-rc4-2-su# make
make -C /lib/modules/3.4.47/build M=/path/to/home/Dev/Wired/compat-drivers-3.9-rc4-2-su modules
make[1]: Entering directory `/path/to/home/Dev/Kernel/generic/linux-3.4.47'
  CC [M]  /path/to/home/Dev/Wired/compat-drivers-3.9-rc4-2-su/compat/main.o
In file included from /path/to/home/Dev/Wired/compat-drivers-3.9-rc4-2-su/include/linux/compat-2.6.h:71:0,
                 from <command-line>:0:
/path/to/home/Dev/Wired/compat-drivers-3.9-rc4-2-su/include/linux/compat-3.8.h:49:32: error: redefinition of ‘kref_get_unless_zero’
In file included from include/linux/kobject.h:24:0,
                 from include/linux/device.h:17,
                 from include/linux/dmaengine.h:24,
                 from include/linux/skbuff.h:31,
                 from include/linux/if_ether.h:134,
                 from include/linux/netdevice.h:29,
                 from /path/to/home/Dev/Wired/compat-drivers-3.9-rc4-2-su/include/linux/compat-2.6.29.h:5,
                 from /path/to/home/Dev/Wired/compat-drivers-3.9-rc4-2-su/include/linux/compat-2.6.h:52,
                 from <command-line>:0:
include/linux/kref.h:113:32: note: previous definition of ‘kref_get_unless_zero’ was here
make[3]: *** [/path/to/home/Dev/Wired/compat-drivers-3.9-rc4-2-su/compat/main.o] Error 1
make[2]: *** [/path/to/home/Dev/Wired/compat-drivers-3.9-rc4-2-su/compat] Error 2
make[1]: *** [_module_/path/to/home/Dev/Wired/compat-drivers-3.9-rc4-2-su] Error 2
make[1]: Leaving directory `/path/to/home/Dev/Kernel/generic/linux-3.4.47'
make: *** [modules] Error 2
auser@mycomputer:/path/to/home/Dev/Wired/compat-drivers-3.9-rc4-2-su#

Signed-off-by: Steve Russo <svrusso1@gmail.com>
---

The following patch against compat-drivers-3.9-rc4-2-su allowed compilation to complete.

--- compat-3.8.h.0	2013-05-30 15:57:51.333132738 -0400
+++ compat-3.8.h	2013-05-30 15:59:12.689517900 -0400
@@ -22,6 +22,7 @@ extern void netdev_set_default_ethtool_o
 
 extern bool hid_ignore(struct hid_device *);
 
+#ifndef _KREF_H_
 /* This backports:
  *
  * commit 4b20db3de8dab005b07c74161cb041db8c5ff3a7
@@ -50,6 +51,7 @@ static inline int __must_check kref_get_
 {
 	return atomic_add_unless(&kref->refcount, 1, 0);
 }
+#endif
 
 /* This backports:
  *
Comment 2 Luis Chamberlain 2013-08-13 01:20:36 UTC
Please try the new backports releases, compat-drivers is deprecated.
Comment 3 CSS 2013-10-07 18:58:56 UTC
I've tried 3.10.4-1 as well as the latest development release (20130802), and had this issue with kernel 3.6.10 in Fedora 18.  I did not have this issue however in Fedora 19 with kernel 3.9.5
Comment 4 CSS 2013-10-08 11:36:14 UTC
(In reply to CSS from comment #3)
> I've tried 3.10.4-1 as well as the latest development release (20130802),
> and had this issue with kernel 3.6.10 in Fedora 18.  I did not have this
> issue however in Fedora 19 with kernel 3.9.5

Specifically, I've tried backports 3.10.4-1.
Comment 5 Hauke Mehrtens 2013-11-24 21:33:57 UTC
kref_get_unless_zero() was removed in backports-20131122-2, please try that version, that should fix your problem.
Comment 6 Hauke Mehrtens 2013-12-13 00:21:43 UTC
This should be fixed in the latest releases.