[lkml]   [2006]   [Sep]   [1]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
SubjectRe: 2.6.18-rc5-mm1: drivers/infiniband/hw/amso1100/c2.c compile error
On Fri, 01 Sep 2006 10:34:24 -0700
Roland Dreier <> wrote:

> Andrew> What's __raw_writeq() supposed to do, anyway? On alpha
> Andrew> it's writeq() without an mb(). On parisc it's writeq()
> Andrew> only the data is byte-reversed. On sparc64() it's
> Andrew> incomprehensible. On everything else it's writeq().
> My understanding is that __raw_writeq() is like writeq() except not
> strongly ordered and without the byte-swap on big-endian
> architectures. The __raw_writeX() variants are convenient to avoid
> having to write inefficient code like writel(swab32(foo), ...) when
> talking to a PCI device that wants big-endian data. Without the raw
> variant, you end up with a double swap on big-endian architectures.
> sparc64 looks wrong, since __raw_writeq() seems identical to writeq(),
> which seems to imply it's going to swab what is stores.

OK. Can we please stop hacking around this in drivers and

a) work out what it's supposed to do

b) document that (Documentation/DocBook/deviceiobook.tmpl or code
comment or whatever)

c) tell arch maintainers?
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to
More majordomo info at
Please read the FAQ at

 \ /
  Last update: 2006-09-01 20:33    [W:0.085 / U:24.872 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site