lkml.org 
[lkml]   [2022]   [Feb]   [14]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    SubjectRe: [PATCH] serial: parisc: GSC: fix build when PCI_LBA is not set
    From
    On 2/14/22 13:05, Helge Deller wrote:
    > On 2/14/22 01:15, Randy Dunlap wrote:
    >> 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@infradead.org>
    >>>>>> Reported-by: kernel test robot <lkp@intel.com>
    >>>>>> Cc: "James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>
    >>>>>> Cc: Helge Deller <deller@gmx.de>
    >>>>>> Cc: linux-parisc@vger.kernel.org
    >>>>>> Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    >>>>>> Cc: linux-serial@vger.kernel.org
    >>>>>> Cc: Jiri Slaby <jirislaby@kernel.org>
    >>>>>> Cc: Johan Hovold <johan@kernel.org>
    >>>>>> ---
    >>>>>> 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).
    >
    > Although I think all 64bit machines have a PCI bus, the better
    > fix is that the driver should only call iosapic_serial_irq(dev)
    > if CONFIG_IOSAPIC is set. This patch fixes the build:
    >
    > -#ifdef CONFIG_64BIT
    > +#ifdef CONFIG_IOSAPIC
    > if (!dev->irq && (dev->id.sversion == 0xad))
    > dev->irq = iosapic_serial_irq(dev);
    > #endif

    That was not fully correct.
    It needs to be:

    #if defined(CONFIG_64BIT) && defined(CONFIG_IOSAPIC)

    Otherwise you'll get an undefined reference in the 32-bit build.

    Helge

    \
     
     \ /
      Last update: 2022-02-14 13:25    [W:3.208 / U:0.592 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site