Messages in this thread |  | | From | Krzysztof Kozlowski <> | Date | Tue, 7 Jan 2020 14:05:14 +0100 | Subject | Re: [PATCH] sh: clk: Fix discarding const qualifier warning |
| |
On Tue, 7 Jan 2020 at 14:00, Geert Uytterhoeven <geert@linux-m68k.org> wrote: > > Hi Krzysztof, > > On Tue, Jan 7, 2020 at 1:26 PM Krzysztof Kozlowski <krzk@kernel.org> wrote: > > ioreadX() accepts pointer to non-const memory. This fixes warnings > > like: > > > > drivers/sh/clk/cpg.c: In function ‘r8’: > > drivers/sh/clk/cpg.c:41:17: warning: passing argument 1 of ‘ioread8’ > > discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers] > > > > Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org> > > Thanks for your patch! > > > --- a/drivers/sh/clk/cpg.c > > +++ b/drivers/sh/clk/cpg.c > > @@ -36,17 +36,17 @@ static void sh_clk_write(int value, struct clk *clk) > > iowrite32(value, clk->mapped_reg); > > } > > > > -static unsigned int r8(const void __iomem *addr) > > +static unsigned int r8(void __iomem *addr) > > { > > return ioread8(addr); > > } > > Isn't the real issue that some implementations of ioreadX() take const, > while others don't? > > Even the generic ones disagree: > > include/asm-generic/io.h:static inline u8 ioread8(const volatile > void __iomem *addr) > include/asm-generic/iomap.h:extern unsigned int ioread8(void __iomem *); > > IMHO they all should take "const volatile void __iomem *".
Since this is a SuperH driver, I adjusted it to the SuperH implementation - lack of const. However iIndeed it makes sense to have them all taking "const"... Let me check, if I can fix it (without the real HW).
Best regards, Krzysztof
|  |