On Thu, Apr 22, 2021 at 6:13 PM Oliver O'Halloran <ooh...@gmail.com> wrote: > > On Fri, Apr 23, 2021 at 9:09 AM Daniel Axtens <d...@axtens.net> wrote: > > > > Hi Nick, > > > > > While looking at -Wundef warnings, the #if CONFIG_EEH stood out as a > > > possible candidate to convert to #ifdef CONFIG_EEH, but it seems that > > > based on Kconfig dependencies it's not possible to build this file > > > without CONFIG_EEH enabled. > > > > This seemed odd to me, but I think you're right: > > > > arch/powerpc/platforms/Kconfig contains: > > > > config EEH > > bool > > depends on (PPC_POWERNV || PPC_PSERIES) && PCI > > default y > > > > It's not configurable from e.g. make menuconfig because there's no prompt. > > You can attempt to explicitly disable it with e.g. `scripts/config -d EEH` > > but then something like `make oldconfig` will silently re-enable it for > > you. > > > > It's been forced on since commit e49f7a9997c6 ("powerpc/pseries: Rivet > > CONFIG_EEH for pSeries platform") in 2012 which fixed it for > > pseries. That moved out from pseries to pseries + powernv later on. > > > > There are other cleanups in the same vein that could be made, from the > > Makefile (which has files only built with CONFIG_EEH) through to other > > source files. It looks like there's one `#ifdef CONFIG_EEH` in > > arch/powerpc/platforms/powernv/pci-ioda.c that could be pulled out, for > > example. > > > > I think it's probably worth trying to rip out all of those in one patch? > > The change in commit e49f7a9997c6 ("powerpc/pseries: Rivet CONFIG_EEH > for pSeries platform") never should have been made.
I'll change my patch to keep the conditionals, but use #ifdef instead of #if then? > > There's no inherent reason why EEH needs to be enabled and forcing it > on is (IMO) a large part of why EEH support is the byzantine > clusterfuck that it is. One of the things I was working towards was > allowing pseries and powernv to be built with !CONFIG_EEH since that > would help define a clearer boundary between what is "eeh support" and > what is required to support PCI on the platform. Pseries is > particularly bad for this since PAPR says the RTAS calls needed to do > a PCI bus reset are part of the EEH extension, but there's non-EEH > reasons why you might want to use those RTAS calls. The PHB reset that > we do when entering a kdump kernel is a good example since that uses > the same RTAS calls, but it has nothing to do with the EEH recovery > machinery enabled by CONFIG_EEH. > > I was looking into that largely because people were considering using > OPAL for microwatt platforms. Breaking the assumption that > powernv==EEH support is one of the few bits of work required to enable > that, but even if you don't go down that road I think everyone would > be better off if you kept a degree of separation between the two. -- Thanks, ~Nick Desaulniers