From mboxrd@z Thu Jan 1 00:00:00 1970 From: Roland Dreier Subject: Re: Question regarding SLAB corruption Date: Mon, 09 Jul 2007 12:25:16 -0700 Message-ID: References: Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Return-path: In-Reply-To: (Keir Fraser's message of "Mon, 09 Jul 2007 19:29:59 +0100") List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xensource.com Errors-To: xen-devel-bounces@lists.xensource.com To: Keir Fraser Cc: Lukas Hejtmanek , xen-devel@lists.xensource.com List-Id: xen-devel@lists.xenproject.org > Oh! I take it then that the infiniband driver will call sync_single() on > subsections of a mapped region? I haven't seen that behaviour before and it > will kill lib/swiotlb.c (the generic Linux swiotlb implementation) just as > surely as it does the Xen-specific swiotlb! I guess it is not being hit on non-Xen Linux because mthca sets a 64-bit DMA mask and hence bypasses swiotlb. However what you point out does seem to be a bug: Documentation/DMA-API.txt says: void dma_sync_single(struct device *dev, dma_addr_t dma_handle, size_t size, enum dma_data_direction direction) ... synchronise a single contiguous or scatter/gather mapping. All the parameters must be the same as those passed into the single mapping API. so it seems not really kosher to do on a subsection of a mapping... I'll take a look at how we can do better here. - R.