Re: [PATCH v2] sata_sil24: Use memory barriers before issuing commands

From: Tejun Heo
Date: Thu Jun 10 2010 - 12:12:39 EST


On 06/10/2010 06:02 PM, Catalin Marinas wrote:
> The data in the cmd_block buffers may reach the main memory after the
> writel() to the device ports. This patch introduces two calls to wmb()
> to ensure the relative ordering.
>
> Signed-off-by: Catalin Marinas <catalin.marinas@xxxxxxx>
> Tested-by: Colin Tuckley <colin.tuckley@xxxxxxx>
> Cc: Tejun Heo <tj@xxxxxxxxxx>
> Cc: Jeff Garzik <jeff@xxxxxxxxxx>

I suppose you have tested and verified that this is actually
necessary, right? I've been looking through the docs but couldn't
find anything which described the ordering between writes to main
memory and write[bwl]()'s. One thing that kind of bothers me is that
r/wmb()'s are for ordering memory accesses among CPUs which
participate in cache coherency protocol and although it may work right
in the above case I'm not really sure whether this is the right thing
to do. Do you have more information on the subject?

Thanks.

--
tejun
--
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/