Re: [PATCH v7 09/10] um: Add dummy implementation for IO memcpy/memset

Johannes Berg <[email protected]>
Newsgroups gmane.linux.ports.m68k,gmane.linux.ports.arm.kernel,gmane.linux.kernel,gmane.linux.ports.alpha,gmane.linux.ports.parisc,gmane.linux.ports.sh.devel,gmane.linux.uml.devel,gmane.linux.kernel.cross-arch
Message-ID <[email protected]>
On Mon, 2024-10-07 at 09:49 +0200, Julian Vetter wrote:
> 
> > > The um arch is the only architecture that sets the config 'NO_IOMEM',

(you did note this, for the comment below)

> No, I think you're understanding the series correctly. It doesn't work. 
> I will revert this.

OK.

> > 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.

Right, well, as you noted above ARCH=um is the only architecture that
has NO_IOMEM, so I suppose drivers are just broken. But e.g.
kernel/iomem.c is also only ever built if you have HAS_IOMEM, so devm_*
functions related to this are not available.

So I don't know. On the one hand, it feels correct to have NO_IOMEM and
HAS_IOMEM, on the other hand that's a bit of a fight against windmills?


What happens now though? Seems it should _already_ not build with
ARCH=um and memcpy_*io() being used? No, I guess it picked up the asm-
generic version?

Hm. I'm almost thinking we should let such drivers not build, and then
see that they add appropriate HAS_IOMEM dependencies, but ... windmills?

johannes
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.