Re: Help with compiler warning

From: Larry Finger
Date: Sun Aug 24 2008 - 11:51:13 EST


Benny Halevy wrote:
On Aug. 24, 2008, 18:29 +0300, Benny Halevy <bhalevy@xxxxxxxxxxx> wrote:
On Aug. 22, 2008, 4:36 +0300, Larry Finger <Larry.Finger@xxxxxxxxxxxx> wrote:
In drivers/pcmcia/cardbus.c, the following statement

memcpy_fromio(ptr, s->cb_cis_virt + addr, len);

generates the warning

CC [M] drivers/pcmcia/cardbus.o
include/asm/io_32.h: In function âmemcpy_fromioâ:
include/asm/io_32.h:151: warning: passing argument 2 of â__memcpyâ discards qualifiers from pointer target type

s->cb_cis_virt is "void __iomem" and addr is uint.

What cast does argument 2 need to silence the warning?
memcpy_fromio takes a (const volatile void __iomem *) for the src address.

So the culprit could be the volatile qualifier...

Changing it to

memcpy_fromio(ptr, (const volatile void __iomem *)(s->cb_cis_virt + addr), len);

memcpy_fromio(ptr, (const volatile void __iomem *)s->cb_cis_virt + addr, len);

memcpy_fromio(ptr, (volatile void __iomem *)(s->cb_cis_virt + addr), len);

or

memcpy_fromio(ptr, (volatile void __iomem *)s->cb_cis_virt + addr, len);

makes no difference.

Thanks,

Larry
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/