Re: Build failure after "phylib: remove !S390 dependeny from Kconfig"

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Heiko,

Thanks for your quick reply.

Le Sunday 05 May 2013 à 22:41 +0200, Heiko Carstens a écrit :
> On Sun, May 05, 2013 at 01:11:17PM +0200, Jean Delvare wrote:
> > In kernel 3.9 went this commit of yours:
> > 
> > commit 870a2b5e4fcde08c91c102712ea07d3cbc96f19a
> > Author: Heiko Carstens <heiko.carstens@xxxxxxxxxx>
> > Date:   Wed Feb 6 10:09:31 2013 +0100
> > 
> >     phylib: remove !S390 dependeny from Kconfig
> >     
> >     Signed-off-by: Heiko Carstens <heiko.carstens@xxxxxxxxxx>
> >     Signed-off-by: Martin Schwidefsky <schwidefsky@xxxxxxxxxx>
> > 
> > Now we get the following build failure on all s390/s390x kernels:
> > 
> > ERROR: "enable_irq" [drivers/net/phy/libphy.ko] undefined!
> > ERROR: "free_irq" [drivers/net/phy/libphy.ko] undefined!
> > 
> > I do not understand why the dependency was dropped if the code calls
> > functions which do not exist on S390. Can you explain? What is the
> > proper way to fix this?
>
> the correct fix would be to add a "depends on GENERIC_HARDIRQS" to the
> offending driver. However I do not see the link error here.
> What kernel is that?

OpenSUSE Factory's kernels. You can find the configuration files here:
https://build.opensuse.org/package/show?package=kernel-s390&project=Kernel%3AHEAD
(under config/*)

All 6 kernels fail with the error above.

> An allmodconfig just compiles fine.. well sort of. If one would add
> the usual missing GENERIC_HARDIRQS dependencies (see patch below).

I think I understand why our s390 (32-bit) kernels do not build.
enable_irq() and free_irq() are defined in arch/s390/pci/pci.c, which is
only built if CONFIG_PCI is set. However PCI depends on 64BIT on S390.
So you should be able to reproduce the failure easily with a 32-bit
allmodconfig build.

For our s390x (64-bit) kernels, well it turns out that we have not
selected CONFIG_PCI. I don't know if it was a deliberate choice or an
overlook, I'll ask. But the result is the same, and you should be able
to reproduce the build failure with a 64-bit allmodconfig with
CONFIG_PCI disabled.

I admit I'm not sure what is the proper way to fix this. Having PCI code
export non-PCI functions seems weird, but unless/until this gets fixed,
the most immediate fix would be:

From: Jean Delvare <jdelvare@xxxxxxx>
Subject: S390: Fix libphy link failure

On S390 basic IRQ functions are provided by the PCI subsystem, so
code which calls these cannot be built if PCI support was not
selected.

Signed-off-by: Jean Delvare <jdelvare@xxxxxxx>
Cc: Heiko Carstens <heiko.carstens@xxxxxxxxxx>
---
 drivers/net/phy/Kconfig |    1 +
 1 file changed, 1 insertion(+)

--- linux-3.10-rc0.orig/drivers/net/phy/Kconfig	2013-04-29 02:36:01.000000000 +0200
+++ linux-3.10-rc0/drivers/net/phy/Kconfig	2013-05-06 10:34:41.141846466 +0200
@@ -5,6 +5,7 @@
 menuconfig PHYLIB
 	tristate "PHY Device support and infrastructure"
 	depends on NETDEVICES
+	depends on !S390 || PCI
 	help
 	  Ethernet controllers are usually attached to PHY
 	  devices.  This option provides infrastructure for

But honestly this isn't very appealing and looks like a step backwards
from what you were trying to achieve in the first place :(

-- 
Jean Delvare
Suse L3

--
To unsubscribe from this list: send the line "unsubscribe linux-s390" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Kernel Development]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite Info]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Samba]     [Linux Media]     [Device Mapper]

  Powered by Linux