New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 833502 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: Apr 2018
Cc:
EstimatedDays: ----
NextAction: ----
OS: Chrome
Pri: 3
Type: Bug



Sign in to add a comment

Core35 iwlwifi code no longer builds on 32 bit kernels

Project Member Reported by groeck@chromium.org, Apr 16 2018

Issue description

Attempts to build iwl7000 for 32 bit kernels results in:

./usr/include/drm/i915_drm.h:33: userspace cannot reference function or variable defined in the kernel
ERROR: "__udivdi3" [drivers/net/wireless/iwl7000/iwlwifi/xvt/iwlxvt.ko] undefined!
ERROR: "__umoddi3" [drivers/net/wireless/iwl7000/iwlwifi/xvt/iwlxvt.ko] undefined!

Obviously this isn't tested, so let's just restrict iwl7000 support to 64 bit images.



 

Comment 1 by groeck@chromium.org, Apr 16 2018

Status: Started (was: Assigned)

Comment 2 by lro...@gmail.com, Apr 17 2018

As I mentioned in the commit itself, we do test 32-bit it in our main driver tree.  I'll check what is going on here.  What is the exact kernel configuration you are using?

Comment 3 by lro...@gmail.com, Apr 17 2018

I could not reproduce this problem with the latest chromeos-4.4 kernel with the attached .config (based on i386_defconfig with ARCH=i386).  iwl7000 (including iwlxvt.ko) seem to build cleanly with gcc-6 (Debian 6.4.0-12) 6.4.0 20180123.

Can you give more information on how to reproduce this? Configuration file, compiler version and git head would be useful.
.config
103 KB Download

Comment 4 by groeck@chromium.org, Apr 17 2018

A quick glance shows that the provided configuration does not enable all configuration options used by the iwl7000 code. The most striking ones are IWL7000_DEBUGFS and LOCKDEP, though there may be others. It is not surprising that the problem can not be reproduced with such a limited configuration.
Configurations used in our build tests are defconfig, allmodconfig, and allyesconfig.

Comment 5 by groeck@chromium.org, Apr 17 2018

For completeness:

$ gcc --version
gcc (Ubuntu 5.4.0-6ubuntu1~16.04.9) 5.4.0 20160609
Copyright (C) 2015 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

groeck@server:~$ cd src/linux-chromeos/
groeck@server:~/src/linux-chromeos$ git describe
v4.4.127-13876-g5a8db585f0c0

Comment 6 by groeck@chromium.org, Apr 17 2018

Commit d2ce576a9723079f1ca1a67608f2a3a1223567ab: 64-bit iterators are kind of unusual, but explain the problem.
This makes me wonder, though, if the code was really compile tested for 32 bit. 

Reply #c6: If thats the only problematic commit, its in the iwlxvt.ko module which is used only by the factory and RF testers (unrelated to iwlwifi/iwl7000)

Comment 8 by groeck@chromium.org, Apr 17 2018

#7: It is part of the iwl7000 code and thus not "unrelated", and it fails to build. If it fails to build, it should not be enabled.
I'll retest making IWL7000_XVT dependent on 64BIT. If that works, I'll update the CL accordingly.

Comment 9 by groeck@chromium.org, Apr 18 2018

Labels: Kernel-4.14
Problem now also affects chromeos-4.14.

Project Member

Comment 10 by bugdroid1@chromium.org, Apr 19 2018

Labels: merge-merged-chromeos-4.4
The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/kernel/+/1733fcca17ec1531cad0e1d7a9d93fe9de726a30

commit 1733fcca17ec1531cad0e1d7a9d93fe9de726a30
Author: Guenter Roeck <groeck@chromium.org>
Date: Thu Apr 19 15:31:19 2018

CHROMIUM: iwl7000: 32 bit images are not supported

Attempts to build iwl7000 images for 32 bit kernels results in:

./usr/include/drm/i915_drm.h:33: userspace cannot reference function or variable defined in the kernel
ERROR: "__udivdi3" [drivers/net/wireless/iwl7000/iwlwifi/xvt/iwlxvt.ko] undefined!
ERROR: "__umoddi3" [drivers/net/wireless/iwl7000/iwlwifi/xvt/iwlxvt.ko] undefined!

Mark the offending code (IWL7000_XVT) as dependent on 64 bit builds.

BUG= chromium:833502 
TEST=Build i386:allmodconfig

Change-Id: I5fd0ff3a11da8eef9b231609dc834734914c5bd6
Signed-off-by: Guenter Roeck <groeck@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/1014291
Reviewed-by: Kirtika Ruchandani <kirtika@chromium.org>

[modify] https://crrev.com/1733fcca17ec1531cad0e1d7a9d93fe9de726a30/drivers/net/wireless/iwl7000/Kconfig

Project Member

Comment 11 by bugdroid1@chromium.org, Apr 19 2018

Labels: merge-merged-chromeos-4.14
The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/kernel/+/9ba91fd712bfbc144d371df39b3df22808c66cc1

commit 9ba91fd712bfbc144d371df39b3df22808c66cc1
Author: Guenter Roeck <groeck@chromium.org>
Date: Thu Apr 19 15:31:21 2018

CHROMIUM: iwl7000: 32 bit images are not supported

Attempts to build iwl7000 images for 32 bit kernels results in:

./usr/include/drm/i915_drm.h:33: userspace cannot reference function or variable defined in the kernel
ERROR: "__udivdi3" [drivers/net/wireless/iwl7000/iwlwifi/xvt/iwlxvt.ko] undefined!
ERROR: "__umoddi3" [drivers/net/wireless/iwl7000/iwlwifi/xvt/iwlxvt.ko] undefined!

Mark the offending code (IWL7000_XVT) as dependent on 64 bit builds.

BUG= chromium:833502 
TEST=Build i386:allmodconfig

Change-Id: I5fd0ff3a11da8eef9b231609dc834734914c5bd6
Signed-off-by: Guenter Roeck <groeck@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/1017160
Reviewed-by: Kirtika Ruchandani <kirtika@chromium.org>

[modify] https://crrev.com/9ba91fd712bfbc144d371df39b3df22808c66cc1/drivers/net/wireless/iwl7000/Kconfig

Status: Fixed (was: Started)
Project Member

Comment 13 by bugdroid1@chromium.org, May 27 2018

Labels: merge-merged-chromeos-3.14
The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/kernel/+/4b15733ce3520a3a99b22d583b6d33a4a1319f7d

commit 4b15733ce3520a3a99b22d583b6d33a4a1319f7d
Author: Guenter Roeck <groeck@chromium.org>
Date: Sun May 27 06:25:35 2018

CHROMIUM: iwl7000: 32 bit images are not supported

Attempts to build iwl7000 images for 32 bit kernels results in:

./usr/include/drm/i915_drm.h:33: userspace cannot reference function or variable defined in the kernel
ERROR: "__udivdi3" [drivers/net/wireless-3.8/iwl7000/iwlwifi/xvt/iwlxvt.ko] undefined!
ERROR: "__umoddi3" [drivers/net/wireless-3.8/iwl7000/iwlwifi/xvt/iwlxvt.ko] undefined!

Mark the offending code (IWL7000_XVT) as dependent on 64 bit builds.

BUG= chromium:833502 
TEST=Build i386:allmodconfig

Change-Id: I5fd0ff3a11da8eef9b231609dc834734914c5bd6
Signed-off-by: Guenter Roeck <groeck@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/1074727
Commit-Ready: Kirtika Ruchandani <kirtika@chromium.org>
Tested-by: Kirtika Ruchandani <kirtika@chromium.org>

[modify] https://crrev.com/4b15733ce3520a3a99b22d583b6d33a4a1319f7d/drivers/net/wireless-3.8/iwl7000/Kconfig

Project Member

Comment 14 by bugdroid1@chromium.org, Jun 2 2018

Labels: merge-merged-chromeos-3.18
The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/kernel/+/e11c1905f337cc38913969210896131805e0f349

commit e11c1905f337cc38913969210896131805e0f349
Author: Guenter Roeck <groeck@chromium.org>
Date: Sat Jun 02 00:44:28 2018

CHROMIUM: iwl7000: 32 bit images are not supported

Attempts to build iwl7000 images for 32 bit kernels results in:

./usr/include/drm/i915_drm.h:33: userspace cannot reference function or variable defined in the kernel
ERROR: "__udivdi3" [drivers/net/wireless/iwl7000/iwlwifi/xvt/iwlxvt.ko] undefined!
ERROR: "__umoddi3" [drivers/net/wireless/iwl7000/iwlwifi/xvt/iwlxvt.ko] undefined!

Mark the offending code (IWL7000_XVT) as dependent on 64 bit builds.

BUG= chromium:833502 
TEST=Build i386:allmodconfig

Change-Id: I5fd0ff3a11da8eef9b231609dc834734914c5bd6
Signed-off-by: Guenter Roeck <groeck@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/1074729
Commit-Ready: ChromeOS CL Exonerator Bot <chromiumos-cl-exonerator@appspot.gserviceaccount.com>
Tested-by: Kirtika Ruchandani <kirtika@chromium.org>

[modify] https://crrev.com/e11c1905f337cc38913969210896131805e0f349/drivers/net/wireless/iwl7000/Kconfig

Project Member

Comment 15 by bugdroid1@chromium.org, Jun 21 2018

Labels: merge-merged-chromeos-3.8
The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/kernel/+/5007f7b6454f731cd7aead93a3347b57d1a2f983

commit 5007f7b6454f731cd7aead93a3347b57d1a2f983
Author: Guenter Roeck <groeck@chromium.org>
Date: Thu Jun 21 08:05:54 2018

CHROMIUM: iwl7000: 32 bit images are not supported

Attempts to build iwl7000 images for 32 bit kernels results in:

./usr/include/drm/i915_drm.h:33: userspace cannot reference function or variable defined in the kernel
ERROR: "__udivdi3" [drivers/net/wireless/iwl7000/iwlwifi/xvt/iwlxvt.ko] undefined!
ERROR: "__umoddi3" [drivers/net/wireless/iwl7000/iwlwifi/xvt/iwlxvt.ko] undefined!

Mark the offending code (IWL7000_XVT) as dependent on 64 bit builds.

BUG= chromium:833502 
TEST=Build i386:allmodconfig

Change-Id: I5fd0ff3a11da8eef9b231609dc834734914c5bd6
Signed-off-by: Guenter Roeck <groeck@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/1014291
Reviewed-by: Kirtika Ruchandani <kirtika@chromium.org>
(cherry picked from commit 1733fcca17ec1531cad0e1d7a9d93fe9de726a30)
Reviewed-on: https://chromium-review.googlesource.com/1103877
Commit-Ready: Kirtika Ruchandani <kirtika@chromium.org>
Tested-by: Kirtika Ruchandani <kirtika@chromium.org>

[modify] https://crrev.com/5007f7b6454f731cd7aead93a3347b57d1a2f983/drivers/net/wireless/iwl7000/Kconfig

Sign in to add a comment