Re: [PATCH] serial: parisc: GSC: fix build when PCI_LBA is not set

From: Randy Dunlap
Date: Sun Feb 13 2022 - 19:15:40 EST


Hi,

On 2/13/22 14:15, Helge Deller wrote:
> On 2/13/22 22:07, Randy Dunlap wrote:
>>
>>
>> On 2/13/22 12:35, Helge Deller wrote:
>>> Hi Randy,
>>>
>>> On 2/13/22 20:39, Randy Dunlap wrote:
>>>> There is a build error when using a kernel .config file from
>>>> 'kernel test robot' for a different build problem:
>>>>
>>>> hppa64-linux-ld: drivers/tty/serial/8250/8250_gsc.o: in function `.LC3':
>>>> (.data.rel.ro+0x18): undefined reference to `iosapic_serial_irq'
>>>>
>>>> when:
>>>> CONFIG_GSC=y
>>>> CONFIG_SERIO_GSCPS2=y
>>>> CONFIG_SERIAL_8250_GSC=y
>>>> CONFIG_PCI is not set
>>>> and hence PCI_LBA is not set.
>>>> IOSAPIC depends on PCI_LBA, so IOSAPIC is not set/enabled.
>>>>
>>>> Making SERIAL_8250_GSC depend on PCI_LBA prevents the build error.
>>>
>>> It maybe makes the build error go away, but ...
>>>
>>>> Signed-off-by: Randy Dunlap <rdunlap@xxxxxxxxxxxxx>
>>>> Reported-by: kernel test robot <lkp@xxxxxxxxx>
>>>> Cc: "James E.J. Bottomley" <James.Bottomley@xxxxxxxxxxxxxxxxxxxxx>
>>>> Cc: Helge Deller <deller@xxxxxx>
>>>> Cc: linux-parisc@xxxxxxxxxxxxxxx
>>>> Cc: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
>>>> Cc: linux-serial@xxxxxxxxxxxxxxx
>>>> Cc: Jiri Slaby <jirislaby@xxxxxxxxxx>
>>>> Cc: Johan Hovold <johan@xxxxxxxxxx>
>>>> ---
>>>> drivers/tty/serial/8250/Kconfig | 2 +-
>>>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>>>
>>>> --- linux-next-20220211.orig/drivers/tty/serial/8250/Kconfig
>>>> +++ linux-next-20220211/drivers/tty/serial/8250/Kconfig
>>>> @@ -118,7 +118,7 @@ config SERIAL_8250_CONSOLE
>>>>
>>>> config SERIAL_8250_GSC
>>>> tristate
>>>> - depends on SERIAL_8250 && GSC
>>>> + depends on SERIAL_8250 && GSC && PCI_LBA
>>>> default SERIAL_8250
>>>
>>> The serial device is on the GSC bus, so if you make it
>>> dependend on the PCI bus it will not be useable on machines
>>> which only have a GSC bus...
>>>
>>> We need another patch.
>>> Do you have a link to the build error?
>>
>>
>> No, it's from the other build error that you just replied to,
>> where the incorrect compiler was used.
>>
>> I'll recheck it and reconsider what to do, if anything.
>
> Ok, thank you!

I dunno what to do. This:

#ifdef CONFIG_64BIT
if (!dev->irq && (dev->id.sversion == 0xad))
dev->irq = iosapic_serial_irq(dev);
#endif

makes it look like 64BIT requires IOSAPIC (hence PCI_LBA).


> By the way, I just sent another patch (and added it to the parisc for-next tree)
> which should at least give a better error message if someone uses the wrong compiler:
> https://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux.git/commit/?h=for-next&id=b160628e9ebcdc85d0db9d7f423c26b3c7c179d0

Yes, I applied that, but that's not the problem here.
It is a 64BIT config and parisc64 compiler.

--
~Randy