On 10/1/24 14:53, Johannes Berg wrote:
On Mon, 2024-09-30 at 15:23 +0200, Julian Vetter wrote:
The um arch is the only architecture that sets the config 'NO_IOMEM',
yet drivers that use IO memory can be selected. In order to make these
drivers happy we add a dummy implementation for memcpy_{from,to}io and
memset_io functions.
Maybe I'm just not understanding this series, but how does this work
with lib/logic_iomem.c?
No, I think you're understanding the series correctly. It doesn't work.
I will revert this.
You're adding these inlines unconditionally, so if this included
logic_io.h, you should get symbol conflicts?
Also not sure these functions should/need to do anything at all, there's
no IO memory on ARCH=um in case of not having logic_io.h. Maybe even
BUG_ON() or something? It can't be reachable (under correct drivers)
since ioremap() always returns NULL (without logic_iomem).
Thanks. You're right. I added this patch because there was a build robot
on some mailinglist building a random config with 'ARCH=um' and with
some MTD drivers that actually use memcpy_fromio or memcpy_toio. These
drivers are not guarded by a 'depends on HAS_IOMEM'. I thought I could
simply fix it by adding stub functions to the um arch. Because I saw
there are A LOT of drivers that use IO functions without being guarded
by 'depends on HAS_IOMEM'. Not sure though, how to handle this case.
I think Arnd also said that other architectures might want to use
logic_iomem, though I don't see any now.
johannes