[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <adaod7o2sxh.fsf@cisco.com>
Date: Fri, 02 May 2008 16:21:46 -0700
From: Roland Dreier <rdreier@...co.com>
To: "Moore\, Eric" <Eric.Moore@....com>
Cc: "David Miller" <davem@...emloft.net>, <linux-scsi@...r.kernel.org>,
<linux-kernel@...r.kernel.org>
Subject: Re: HELP: Is writeq an atomic operation??
> Yeah, I forgot I have a #ifndef writeq, then defined the x86_64 version
> of that. I've not tested on x86, so I'm not sure whether it works.
> How are you handling writeq when its not defined, as the case in x86?
Write two writel() inside a spinlock to avoid any transactions in the
middle (the HW I'm dealing with can deal with two 32-bit transactions,
as long as nothing comes in the middle). If your hardware demands a
single 64-bit transaction, you may be in trouble, because I'm not sure
all 32-bit systems can generate such a PCIe transaction.
You can see include/linux/mlx4/doorbell.h for exactly what I did.
- R.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists