From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 96492276020 for ; Wed, 10 Dec 2025 17:12:09 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=170.10.133.124 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765386731; cv=none; b=qyL983yHGL/rCB5daoOh078ry6OKn1HaNLvCS2ureEi3GOFFYZkHuvExibsG2hNu1+u1MgwrBSQrmOW/EzeRaeJ78RPGvrBSFnx54GnMCpckIQd/U4gKo2aWa61KP84KsgkdOHjMdY/SQMntk3S9gWlfy+ezPaXeL4hseNQ7uG8= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765386731; c=relaxed/simple; bh=q+2G+U6BpJLX1Z/0Jsa39HPxOnPyaRSQ+Uck+sOSfns=; h=Date:From:To:cc:Subject:In-Reply-To:Message-ID:References: MIME-Version:Content-Type; b=UziQjuKnh76vVEdoNg0TOfqsMveXtzrMccS/u/jrYc6IPnW4RKubsfukickSxwTIY+0ftZo3T40m7hgqxtCRXimNB/mRSH0DDpOs/QtIADj/NxKCGlKr+mMlRdzn7pSDqQqKOMLFbQ6WO7xH1SxhBNLR2V60wEVRyI65OJ2//10= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=redhat.com; spf=pass smtp.mailfrom=redhat.com; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b=E9BSyxvI; dkim=pass (2048-bit key) header.d=redhat.com header.i=@redhat.com header.b=Hm3ORAX8; arc=none smtp.client-ip=170.10.133.124 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=redhat.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=redhat.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b="E9BSyxvI"; dkim=pass (2048-bit key) header.d=redhat.com header.i=@redhat.com header.b="Hm3ORAX8" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1765386728; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=8ajtU3yfJbX06BLmikcUePQ/6Tt1KKMvvS1DqwC86HA=; b=E9BSyxvIKE57pAa9MhD6fWe17rlZGFVB68tDQ7eAc0J/zHw0rxQzBc7yYihmwwNbHyvZ4l TG8O2vsTdF8sU82Z9KUr0sagh2Aj6lFa+dlQMpJEPBxKx83L7tjo6WcLI3lby0Z0kide/+ QKFMPvqRhhmKkwO6oujyHmg5Fk4KKYY= Received: from mail-wr1-f72.google.com (mail-wr1-f72.google.com [209.85.221.72]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-62-f5Z7Yzn-OGipmKvbIRvCAg-1; Wed, 10 Dec 2025 12:12:06 -0500 X-MC-Unique: f5Z7Yzn-OGipmKvbIRvCAg-1 X-Mimecast-MFC-AGG-ID: f5Z7Yzn-OGipmKvbIRvCAg_1765386725 Received: by mail-wr1-f72.google.com with SMTP id ffacd0b85a97d-42b2b642287so3565017f8f.2 for ; Wed, 10 Dec 2025 09:12:05 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=google; t=1765386725; x=1765991525; darn=vger.kernel.org; h=mime-version:references:message-id:in-reply-to:subject:cc:to:from :date:from:to:cc:subject:date:message-id:reply-to; bh=8ajtU3yfJbX06BLmikcUePQ/6Tt1KKMvvS1DqwC86HA=; b=Hm3ORAX83b2gAf9Iv+MF2aWUCiKptW6P/UVQIqgTkXnjnFyr4fdxXRY54Y2UIfspjy XYWXUyAybfguOFfYxC4Loe3D7HhERF+1Wjl34XTjzktfxQjrbpfZow8/NaW8UOZCYBmx 2nObyV5KWCl3nGLtx+IiFC4oWglGUuhxnSnJpVI4J3v1fj0BsSHRuDObXwrpK7Qxf0+U eD3CeH3KU0ZZF4Ig3ojMXagdbLCFiWPqm+0C6GjLf18Uqb/pLqGdL3Xbrau4YFBjn7nk Uhur2EQpG7tczTJjLoJQpK/pXcV/cX0LWFXJfY6bAMSld2hYIeXiRD8GaIqVqB6HG50f pYYw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1765386725; x=1765991525; h=mime-version:references:message-id:in-reply-to:subject:cc:to:from :date:x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=8ajtU3yfJbX06BLmikcUePQ/6Tt1KKMvvS1DqwC86HA=; b=GBFBun6+xqSSmpEnFDjQoFMITwqlNLyzz2QgKATDKifd00ZEE3VCSvI2xcOr4lqX8s wvtrv9cmh4G/VJIQPsQOQvxYs9MOCAJvav94gSYZiivvFa0Dr6xx9pxxpHvLG8XNWP8f RGPysYNp3OS0zOxf/pfHzbsrua26CD+7amL4cngBm4zn+m2p8EAK19EybEYoF6lakHJ/ JhezTaCinDaLrYYUGLS06OgBqVkeBzmxOMQHNuAm1ZVVN2Jb0T/fgHJnNh0nrDuZR6uq JmY9Ru6ommPpogL33/pRShNFi4FNKlwQNP96Nuz4s76+VbuyyKsBSDedkcMPQ/miX1cj SSkA== X-Forwarded-Encrypted: i=1; AJvYcCVxBaA1NuX4gQHjedBUxSCg9djP5RuFbxeoZ1XhdpsrGWjn4hThnfdBo5tmCXYjJUJ2hdLqFc6AD6OHtww=@vger.kernel.org X-Gm-Message-State: AOJu0Yz1A6kOOiEMjIH9A38pIc4apBAgjshUSGQnFxBznjEKjIhTW3cH 63Vz6GbRkfbXOJKfx202cWeG51ipAuJgO7NLGWcigAj/Pu8itGxybqaFcU3cahMOlfrQ9P5SCfk otQxIPWREnqJ+0kl5AGzVUVX/fQLhOF85RATFVWWa1Azt+fDuFco1+By07LVLfWUcHQ== X-Gm-Gg: AY/fxX7IC9yMfx4F0ONZTDGU23HlAqtXtfidfZmAn0kbAjBgCgRV86wwvpNPyY1qHq9 jmm8RsfP4Yw2th+/shGg8YLDBDngiWPuA79mDfH+peWDF4w989N8fjSaRbUUugwdUTnsqSyjOLI UhdH4UH2JMyuZ9IqSmytfB5UVZAcS4091fyWivKHya4f5loyozr71rWHWdcSZyXIJrL/Pnbi/cV 8GBpk0Pjaiy0cwmRdmey+Mp87GWr/XvedhpvIPaiIorNB39kesMbdt5h70LpLOQyzpzUQ+FtM4n W1x9I7HMeeQl5mt7+GKRz7+WPRwsKa8pq4Gxiaflfjhtl53wkhmvUkshrEGUvd2csh/6rnsVoL0 tJEe3E6If1XoXL+lCHYZUFBYRkEns09qyaV5i+SbnxQagnk6SbbzpUHhvpRU= X-Received: by 2002:a5d:5f91:0:b0:429:d1a8:3fa2 with SMTP id ffacd0b85a97d-42fa3b17092mr3315984f8f.48.1765386724817; Wed, 10 Dec 2025 09:12:04 -0800 (PST) X-Google-Smtp-Source: AGHT+IExCXlgcWY7yBdco5ZpK1NFXlvlTRlygsYWJNZD8Qo0xz2z2qNLT3h+7nj8AJhe/t1VfpQnNg== X-Received: by 2002:a5d:5f91:0:b0:429:d1a8:3fa2 with SMTP id ffacd0b85a97d-42fa3b17092mr3315940f8f.48.1765386724378; Wed, 10 Dec 2025 09:12:04 -0800 (PST) Received: from rh (p200300f6af498100e5be2e2bdb5254b6.dip0.t-ipconnect.de. [2003:f6:af49:8100:e5be:2e2b:db52:54b6]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-42fa8b9b20dsm27930f8f.38.2025.12.10.09.12.03 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 10 Dec 2025 09:12:03 -0800 (PST) Date: Wed, 10 Dec 2025 18:12:02 +0100 (CET) From: Sebastian Ott To: Chaitanya Kulkarni cc: Keith Busch , "linux-nvme@lists.infradead.org" , "iommu@lists.linux.dev" , Robin Murphy , "linux-block@vger.kernel.org" , "linux-kernel@vger.kernel.org" , "linux-xfs@vger.kernel.org" , Jens Axboe , Christoph Hellwig , Will Deacon , Carlos Maiolino , Leon Romanovsky Subject: Re: WARNING: drivers/iommu/io-pgtable-arm.c:639 In-Reply-To: <2fcc9d30-42e8-4382-bbbc-a3f66016f368@nvidia.com> Message-ID: <0eec3806-c002-54d5-95a9-7fa201c6b921@redhat.com> References: <170120f7-dd2c-4d2a-d6fc-ac4c82afefd7@redhat.com> <4386e0f7-9e45-41d2-8236-7133d6d00610@arm.com> <99e12a04-d23f-f9e7-b02e-770e0012a794@redhat.com> <30ae8fc4-94ff-4467-835e-28b4a4dfcd8f@nvidia.com> <2fcc9d30-42e8-4382-bbbc-a3f66016f368@nvidia.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII; format=flowed On Wed, 10 Dec 2025, Chaitanya Kulkarni wrote: > (+ Leon Romanovsky) > > On 12/9/25 20:05, Keith Busch wrote: >> On Wed, Dec 10, 2025 at 02:30:50AM +0000, Chaitanya Kulkarni wrote: >>> @@ -126,17 +126,26 @@ static bool blk_rq_dma_map_iova(struct request *req, struct device *dma_dev, >>> error = dma_iova_link(dma_dev, state, vec->paddr, mapped, >>> vec->len, dir, attrs); >>> if (error) >>> - break; >>> + goto out_unlink; >>> mapped += vec->len; >>> } while (blk_map_iter_next(req, &iter->iter, vec)); >>> >>> error = dma_iova_sync(dma_dev, state, 0, mapped); >>> - if (error) { >>> - iter->status = errno_to_blk_status(error); >>> - return false; >>> - } >>> + if (error) >>> + goto out_unlink; >>> >>> return true; >>> + >>> +out_unlink: >>> + /* >>> + * Unlink any partial mapping to avoid unmap mismatch later. >>> + * If we mapped some bytes but not all, we must clean up now >>> + * to prevent attempting to unmap more than was actually mapped. >>> + */ >>> + if (mapped) >>> + dma_iova_unlink(dma_dev, state, 0, mapped, dir, attrs); >>> + iter->status = errno_to_blk_status(error); >>> + return false; >>> } >> It does look like a bug to continue on when dma_iova_link() fails as the >> caller thinks the entire mapping was successful, but I think you also >> need to call dma_iova_free() to undo the earlier dma_iova_try_alloc(), >> otherwise iova space is leaked. > > Thanks for catching that, see updated version of this patch [1]. > >> I'm a bit doubtful this error condition was hit though: this sequence >> is largely the same as it was in v6.18 before the regression. The only >> difference since then should just be for handling P2P DMA across a host >> bridge, which I don't think applies to the reported bug since that's a >> pretty unusual thing to do. > > That's why I've asked reporter to test it. > > Either way, IMO both of the patches are still needed. > The patch Keith posted fixes the issue for me. Should I do another run with only these 2 applied?