From: Russell King - ARM Linux <linux@arm.linux.org.uk>
To: linux-arm-kernel@lists.infradead.org
Subject: Re: [RFC] fbdev: arm has __raw I/O accessors, use them in fb.h
Date: Mon, 19 Nov 2012 09:46:06 +0000 [thread overview]
Message-ID: <20121119094606.GF3290@n2100.arm.linux.org.uk> (raw)
In-Reply-To: <50A9FD98.1060105@ti.com>
On Mon, Nov 19, 2012 at 11:36:24AM +0200, Tomi Valkeinen wrote:
> Probably not. I can't say anything to that matter, but I wonder if this
> patch is just going around the problem that we get sparse warnings when
> falling into the else ifdef block in fb.h.
>
> The macros in the else block are defined as:
>
> #define fb_readb(addr) (*(volatile u8 *) (addr))
>
> And fb code passes a pointer to __iomem. So shouldn't the cast be to
> (volatile u8 __iomem *)?
No, because sparse won't let you directly dereference an __iomem pointer.
Directly dereferencing an __iomem pointer is wrong, always has been. It's
marked with __iomem _because_ it's a separate cookied address space from
the virtual address space.
This is one of the situations which has been left because the warning is
correct - and this is one of those situations where silencing them via
casts et.al. is the wrong thing to do. The right thing to do is to leave
the warning in place.
This is one of the hardest things that I seem to get people to understand:
if the code is wrong then we _should_ get a warning for it and we should
definitely not paper over the warning.
next prev parent reply other threads:[~2012-11-19 9:46 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-11-16 9:28 [RFC] fbdev: arm has __raw I/O accessors, use them in fb.h Archit Taneja
2012-11-16 9:28 ` Tomi Valkeinen
2012-11-16 16:44 ` H Hartley Sweeten
2012-11-19 5:33 ` Archit Taneja
2012-11-19 9:15 ` Russell King - ARM Linux
2012-11-19 9:36 ` Tomi Valkeinen
2012-11-19 9:46 ` Russell King - ARM Linux [this message]
2012-11-19 10:34 ` Tomi Valkeinen
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20121119094606.GF3290@n2100.arm.linux.org.uk \
--to=linux@arm.linux.org.uk \
--cc=linux-arm-kernel@lists.infradead.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).