On Mon, Feb 10, 2025, at 16:23, Andy Shevchenko wrote: > +Cc: Arnd > > > TBH I have no quick idea how to address this. It seems that io.h > includes device.h > for no reason (but I haven't checked that carefully). OTOH, we need only > IOMEM_IS_ERR() definition which can simply be moved from io.h to err.h > as the > former includes the latter and the definition depends only on > compiler_types.h. > > Arnd? Removing linux/device.h from asm/io.h is probably the right step, it really has no business in there and no other architecture includes it. I don't see an IOMEM_IS_ERR() definition, do you mean EEH_POSSIBLE_ERROR? Most of asm/eeh.h probably shouldn't be included by asm/io.h either, my guess is that we can get away with the eeh_{s,}{b,w,l,q}{_be} helpers, eeh_memcpy_fromio() and eeh_check_failure(), which have no dependency on 'struct device' in the header. Removing a giant header inclusion from another one likely causes build regressions in drivers that should have included the header (linux/device.h or something included by that) themselves, so ideally there should be some separate build testing of powerpc kernels. Arnd