From: "Bryan O'Sullivan" <bos@pathscale.com>
To: Matt Mackall <mpm@selenic.com>
Cc: linux-kernel@vger.kernel.org, akpm@osdl.org, hch@infradead.org
Subject: Re: [PATCH 1 of 3] Introduce __memcpy_toio32
Date: Wed, 28 Dec 2005 06:47:42 -0800 [thread overview]
Message-ID: <1135781263.1527.89.camel@serpentine.pathscale.com> (raw)
In-Reply-To: <20051228035231.GA3356@waste.org>
On Tue, 2005-12-27 at 21:52 -0600, Matt Mackall wrote:
> On Tue, Dec 27, 2005 at 03:41:55PM -0800, Bryan O'Sullivan wrote:
> > +/*
> > + * MMIO copy routines. These are guaranteed to operate in units denoted
> > + * by their names. This style of operation is required by some devices.
> > + */
>
> Using kdoc style for new code is nice.
OK, will do.
> > +extern void fastcall __memcpy_toio32(volatile void __iomem *to, const void *from, size_t count);
> > +
>
> Minor rant: extern is always redundant for function prototypes in C.
I know. My intent was to keep the prototype consistent with the
prevailing style of other declarations in that same routine. If you
think that cleanliness is more important, I'll be happy to change it.
> Suspicious use of volatile - writel is doing the actual write, this
> function never does a dereference.
Yeah. I lost the plot there a bit. I'll remove the volatiles.
> As you've already got private
> copies of the pointers already in s and d, it's perfectily reasonable
> and idiomatic to do:
>
> while (--count >= 0)
> __raw_writel(*s++, d++);
But pointer arithmetic is undefined on void pointers. gcc lets you do
it, but it treats sizeof(void) as 1, which gives entirely the wrong
results in this case.
> And as you appear to be using the __raw.. version to avoid repeated
> mb()s, you probably ought to tack one on at the end.
Well spotted, thanks.
<b
next prev parent reply other threads:[~2005-12-28 14:47 UTC|newest]
Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-12-27 23:41 [PATCH 0 of 3] Add memcpy_toio32, a 32-bit MMIO copy routine Bryan O'Sullivan
2005-12-27 23:41 ` [PATCH 1 of 3] Introduce __memcpy_toio32 Bryan O'Sullivan
2005-12-28 1:10 ` Roland Dreier
2005-12-28 14:40 ` Bryan O'Sullivan
2005-12-28 14:51 ` Matt Mackall
2005-12-30 23:46 ` Adrian Bunk
2005-12-30 23:44 ` Matt Mackall
2005-12-31 0:23 ` Linus Torvalds
2005-12-31 0:31 ` (OT) " Jan Engelhardt
2005-12-31 0:44 ` Linus Torvalds
2005-12-31 21:24 ` Adrian Bunk
2005-12-28 19:23 ` Roland Dreier
2005-12-28 1:11 ` Roland Dreier
2005-12-28 4:07 ` Matt Mackall
2005-12-28 3:52 ` Matt Mackall
2005-12-28 14:47 ` Bryan O'Sullivan [this message]
2005-12-28 14:55 ` Matt Mackall
2005-12-28 15:18 ` Geert Uytterhoeven
2005-12-28 15:52 ` Bryan O'Sullivan
2005-12-27 23:41 ` [PATCH 2 of 3] memcpy32 for x86_64 Bryan O'Sullivan
2005-12-28 4:22 ` Matt Mackall
2005-12-28 7:54 ` Denis Vlasenko
2005-12-28 14:52 ` Bryan O'Sullivan
2006-01-06 9:12 ` Pavel Machek
2006-01-06 16:02 ` Bryan O'Sullivan
2005-12-27 23:41 ` [PATCH 3 of 3] Add memcpy_toio32 to each arch Bryan O'Sullivan
[not found] <200512280603.jBS63WGB031117@taverner.CS.Berkeley.EDU>
2005-12-28 6:20 ` [PATCH 1 of 3] Introduce __memcpy_toio32 Matt Mackall
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=1135781263.1527.89.camel@serpentine.pathscale.com \
--to=bos@pathscale.com \
--cc=akpm@osdl.org \
--cc=hch@infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mpm@selenic.com \
/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