Re: [PATCH] x86: asm/io.h: Harden virt_to_phys/isa_virt_to_bus prototypes

From: Stanislav Kinsburskii
Date: Wed Apr 26 2023 - 12:31:36 EST


On Sat, Apr 22, 2023 at 11:02:33AM +0200, Arnd Bergmann wrote:
> On Fri, Apr 14, 2023, at 11:40, Stanislav Kinsburskii wrote:
> > From: Stanislav Kinsburskii <stanislav.kinsburskii@xxxxxxxxx>
> >
> > These two helper functions - virt_to_phys and isa_virt_to_bus - don't need the
> > address pointer to be mutable.
> >
> > In the same time expecting it to be mutable leads to the following build
> > warning for constant pointers:
> >
> > warning: passing argument 1 of ‘virt_to_phys’ discards ‘const’
> > qualifier from pointer target type
> >
>
> The change looks fine, and this is clearly useful for spreading
> more 'const' annotations, but I have two concerns:
>
> - I'd really like this to be done consistently across architectures,
> so at least the asm-generic/io.h version should get the same
> annotation, or ideally all of them in one patch.
>

Sure, let me come up with the a series to cover other architectures.

> - I would not describe this change itself as "hardening", as it
> also does the opposite, when you have a pointer that is actually
> "const" but converting it through virt_to_phys() and back
> through phys_to_virt() ends up losing the annotation.
>

Indeen, I didn't think about this way.
Let me then just state what the change does (i.e. "Make virt_to_phys to
allow unmutable pointers"), unless you have a better option to advice.

Thanks,
Stanislav

> Arnd