Re: [RFC 01/32] Kconfig: introduce and depend on LEGACY_PCI
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
- Subject: Re: [RFC 01/32] Kconfig: introduce and depend on LEGACY_PCI
- From: Niklas Schnelle <schnelle@xxxxxxxxxxxxx>
- Date: Mon, 10 Jan 2022 10:34:34 +0100
- Cc: Mauro Carvalho Chehab <mchehab@xxxxxxxxxx>, Arnd Bergmann <arnd@xxxxxxxx>, Hans Verkuil <hverkuil-cisco@xxxxxxxxx>, Ettore Chimenti <ek5.chimenti@xxxxxxxxx>, Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>, Arnd Bergmann <arnd@xxxxxxxxxx>, Bjorn Helgaas <bhelgaas@xxxxxxxxxx>, Nick Hu <nickhu@xxxxxxxxxxxxx>, Greentime Hu <green.hu@xxxxxxxxx>, Vincent Chen <deanbo422@xxxxxxxxx>, Paul Walmsley <paul.walmsley@xxxxxxxxxx>, Palmer Dabbelt <palmer@xxxxxxxxxxx>, Albert Ou <aou@xxxxxxxxxxxxxxxxx>, Guo Ren <guoren@xxxxxxxxxx>, Damien Le Moal <damien.lemoal@xxxxxxxxxxxxxxxxxx>, Ian Abbott <abbotti@xxxxxxxxx>, H Hartley Sweeten <hsweeten@xxxxxxxxxxxxxxxxxxx>, Linus Walleij <linus.walleij@xxxxxxxxxx>, Bartosz Golaszewski <brgl@xxxxxxxx>, Jean Delvare <jdelvare@xxxxxxxx>, Guenter Roeck <linux@xxxxxxxxxxxx>, Dmitry Torokhov <dmitry.torokhov@xxxxxxxxx>, Karsten Keil <isdn@xxxxxxxxxxxxxx>, Sathya Prakash <sathya.prakash@xxxxxxxxxxxx>, Sreekanth Reddy <sreekanth.reddy@xxxxxxxxxxxx>, Suganath Prabu Subramani <suganath-prabu.subramani@xxxxxxxxxxxx>, Michael Grzeschik <m.grzeschik@xxxxxxxxxxxxxx>, "David S. Miller" <davem@xxxxxxxxxxxxx>, Jakub Kicinski <kuba@xxxxxxxxxx>, Jesse Brandeburg <jesse.brandeburg@xxxxxxxxx>, Tony Nguyen <anthony.l.nguyen@xxxxxxxxx>, Kalle Valo <kvalo@xxxxxxxxxx>, Jouni Malinen <j@xxxxx>, "James E.J. Bottomley" <jejb@xxxxxxxxxxxxx>, "Martin K. Petersen" <martin.petersen@xxxxxxxxxx>, Hannes Reinecke <hare@xxxxxxxx>, Kashyap Desai <kashyap.desai@xxxxxxxxxxxx>, Sumit Saxena <sumit.saxena@xxxxxxxxxxxx>, Shivasharan S <shivasharan.srikanteshwara@xxxxxxxxxxxx>, Nilesh Javali <njavali@xxxxxxxxxxx>, GR-QLogic-Storage-Upstream@xxxxxxxxxxx, Mark Brown <broonie@xxxxxxxxxx>, Sudip Mukherjee <sudipm.mukherjee@xxxxxxxxx>, Teddy Wang <teddy.wang@xxxxxxxxxxxxxxxxx>, Forest Bond <forest@xxxxxxxxxxxxxxxxxxx>, Jiri Slaby <jirislaby@xxxxxxxxxx>, Wim Van Sebroeck <wim@xxxxxxxxxxxxxxxxxx>, Jaroslav Kysela <perex@xxxxxxxx>, Takashi Iwai <tiwai@xxxxxxxx>, linux-kernel@xxxxxxxxxxxxxxx, linux-arch@xxxxxxxxxxxxxxx, linux-pci@xxxxxxxxxxxxxxx, linux-riscv@xxxxxxxxxxxxxxxxxxx, linux-csky@xxxxxxxxxxxxxxx, linux-ide@xxxxxxxxxxxxxxx, linux-gpio@xxxxxxxxxxxxxxx, linux-hwmon@xxxxxxxxxxxxxxx, linux-i2c@xxxxxxxxxxxxxxx, linux-input@xxxxxxxxxxxxxxx, netdev@xxxxxxxxxxxxxxx, linux-media@xxxxxxxxxxxxxxx, MPT-FusionLinux.pdl@xxxxxxxxxxxx, linux-scsi@xxxxxxxxxxxxxxx, intel-wired-lan@xxxxxxxxxxxxxxxx, linux-wireless@xxxxxxxxxxxxxxx, megaraidlinux.pdl@xxxxxxxxxxxx, linux-spi@xxxxxxxxxxxxxxx, linux-fbdev@xxxxxxxxxxxxxxx, linux-serial@xxxxxxxxxxxxxxx, dri-devel@xxxxxxxxxxxxxxxxxxxxx, linux-watchdog@xxxxxxxxxxxxxxx
- In-reply-to: <74bf4fde-3972-1c36-ca04-58089da0d82b@huawei.com>
- References: <20220105194748.GA215560@bhelgaas> <74bf4fde-3972-1c36-ca04-58089da0d82b@huawei.com>
On Thu, 2022-01-06 at 17:41 +0000, John Garry wrote:
> On 05/01/2022 19:47, Bjorn Helgaas wrote:
> > > > > > ok if the PCI maintainers decide otherwise.
> > > > > I don't really like the "LEGACY_PCI" Kconfig option. "Legacy" just
> > > > > means something old and out of favor; it doesn't say*what* that
> > > > > something is.
> > > > >
> > > > > I think you're specifically interested in I/O port space usage, and it
> > > > > seems that you want all PCI drivers that*only* use I/O port space to
> > > > > depend on LEGACY_PCI? Drivers that can use either I/O or memory
> > > > > space or both would not depend on LEGACY_PCI? This seems a little
> > > > > murky and error-prone.
> > > > I'd like to hear Arnd's opinion on this but you're the PCI maintainer
> > > > so of course your buy-in would be quite important for such an option.
> > I'd like to hear Arnd's opinion, too. If we do add LEGACY_PCI, I
> > think we need a clear guide for when to use it, e.g., "a PCI driver
> > that uses inb() must depend on LEGACY_PCI" or whatever it is.
> >
> > I must be missing something because I don't see what we gain from
> > this. We have PCI drivers, e.g., megaraid [1], for devices that have
> > either MEM or I/O BARs. I think we want to build drivers like that on
> > any arch that supports PCI.
> >
> > If the arch doesn't support I/O port space, devices that only have I/O
> > BARs won't work, of course, and hopefully the PCI core and driver can
> > figure that out and gracefully fail the probe.
> >
> > But that same driver should still work with devices that have MEM
> > BARs. If inb() isn't always present, I guess we could litter these
> > drivers with #ifdefs, but that would be pretty ugly.
I think this is the big question here. If we do go with a compile-time
solution as requested by Linus we will either get a lot of #ifdeffery,
coarse driver dependencies or as proposed by Alan Stern for the USB
#ifdefs might end up turning inb() into a compile-time nop.
The originally proposed change that returned ~0 from inb() and printed
a warning clearly is the simpler change and sure we could also drop the
warning. I'm honestly torn, I do agree with Linus that we shouldn't
have run-time things that we know at compile-time will not work but I
also dislike all the #ifdeffery a compile-time solution requires. Sadly
C really doesn't give us any better tools here.
Also I 100% agree with you Bjorn how likely it is to see a device on a
platform really shouldn't matter. Without going into details, on s390
we have already beneffited from PCI drivers working with 0 changes to
support devices we previously didn't have on the platform or
anticipated we would get in the future. Consequently drivers that could
work in principle should be built.
> >
>
> There were some ifdefs added to the 8250 drivers in Arnd's original
> patch [0], but it does not seem included here.
>
> Niklas, what happened to the 8250 and the other driver changes?
I missed it during the rebase, likely because the changed files compile
depend on !S390 via config SERIAL_8250 and thus didn't cause any errors
for my allyesconfig. That !S390 dependency is of course not really what
we want if the driver can use MEM BARs.
[Index of Archives]
[Linux Kernel]
[Linux ARM (vger)]
[Linux ARM MSM]
[Linux Omap]
[Linux Arm]
[Linux Tegra]
[Fedora ARM]
[Linux for Samsung SOC]
[eCos]
[Linux Fastboot]
[Gcc Help]
[Git]
[DCCP]
[IETF Announce]
[Security]
[Linux MIPS]
[Yosemite Campsites]
|