From mboxrd@z Thu Jan 1 00:00:00 1970 From: Roland Dreier Subject: Re: Question regarding SLAB corruption Date: Mon, 09 Jul 2007 14:26:45 -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! > We could make the swiotlb robust to this treatment, I guess. It will involve > initialising all covered io_tlb_orig_addr[] slots rather than just the > first. Does this mean that lib/swiotlb.c's swiotlb_sync_single_range_for_cpu() and swiotlb_sync_single_range_for_device() are broken? Given that (as you say) io_tlb_orig_addr[] only gets one slot filled in at the end of map_single(), I don't see any way it could work if more than one page is mapped. - R.