From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-wm1-f53.google.com (mail-wm1-f53.google.com [209.85.128.53]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 4869D3783BE for ; Wed, 7 Oct 2026 01:32:33 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.53 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1791336755; cv=none; b=J3BcvI2b56isD5oDaJJ7WJbw8o69yJZllTLmHlJAeywT7AQ2KLyV0hyMZoD/abnUrIjyG9lfF4VpQEn+NrsOAeKMWRcSEPSHSiRvVxs0h9WhPFJ1osNCm4RAIoweN3bhOPr4i7R3WlvNQvhqL5IlhoVb4nsC4vITFHlOPxYkEXw= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1791336755; c=relaxed/simple; bh=sZSKKXCePxitJxwkXP2zXOFTkw2i/N+YLyO84coSzgs=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=UpkUpSAu+IdWRCdcf8F2MP8zDlMztSVHbBJXuWGbH2TKh1dYr+0UECNN8Dr4vFJyCl92tPRpbBOISqEkJgIIi+cLUxkPHCyo4mvdtjT8CxfUlivFngWUFA+6UvI4/lY3bccDIH5C3ZjFURInVSKuKYhpTczZNWPC9/jLMVztZHw= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=l+Epunvb; arc=none smtp.client-ip=209.85.128.53 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="l+Epunvb" Received: by mail-wm1-f53.google.com with SMTP id 5b1f17b1804b1-4a0286c981dso31547325e9.2 for ; Tue, 06 Oct 2026 18:32:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1791336751; x=1791941551; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=PKjZvbLAs20rdhF/f8LJ7mlj5bzqJB3zMFv/Fdm/dPM=; b=l+EpunvbcMA5SflAzvTL9YJ7ZLnJ7g97QTIhTvfYpTW40y+EAPnPf1bHB5YP07UVA7 5IwoleGBjc47C5LNN2OWSsoX4Ic6axtiCG9bso+LJQ2CrqLwYu6FSGlgmOGg4hzfHcJY lI49yX8uq/h2Nduori177q3FrqFwaExhIuRTcSCrrnebFWe13TMdgCmSJSPrk3r7+I/U EXY6F0Os0TRBSgtc3K6J2xDIknjIy1KvQ08XkErL10bGQ1r+ExfoekG8UyZvu+PEOsFm ifHrKrrNyghLLIsNlJ9QoF2jPnHrhS0Q7AUaBaK4iBoaOFQrCAkNwMgodosaMtL6P8w6 YazA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1791336751; x=1791941551; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to:content-type; bh=PKjZvbLAs20rdhF/f8LJ7mlj5bzqJB3zMFv/Fdm/dPM=; b=BZdStc4ndEqbyzHybC4l1RREiO8wrD5kZz4NmDripQfSVGX9g93k3meT13rdE3bRtD 3MD2mCBFkWGTs5Y6JfqTIn9wzXB4C1d06Z2FqDnrilwtremqnr2U0W/SITx+95wWnPKd ibOPb3vvgGQ1vwrOfdmkfbyV3WrPlp84eBLLcRl/I0Nz7VfLo7GBoWtNFesar/84MekS 1E75Ba9AP8k2mQddVLJdZ3GkRgtIf8IIk7fQLz2r1zRFcZPZJ1THyACya4oqILBDS2qu oed+reK9LHBw/MyWG5uhGwyYWE1PVrMu9Vr3LDcgR4ca7Ln8XWjNREX47R5f34hLZvHd iORw== X-Forwarded-Encrypted: i=1; AKwUvByRlhkTlTkSbRlMtp9t84PND3jc56NswZibTM0OWOep+vpcshiRAMkqiJKj24kPkwPCDS/fuFmpoFu0lw==@vger.kernel.org X-Gm-Message-State: AFuF++kFRxPjWEPsZLjSttnv8yktW75ZCuPLVaLI1GiaY6qVvmfN6Wjj zy+3gPMeYzP3hAXHLTwhhHytzLd1sP3OMmexvZ4B8xTjlsgYH5OS9G06 X-Gm-Gg: AYBFou2fO4Dn5aRzjQiphVCn6J2ICBJhcCah2DzGXDtpE/XTU0yt4T0F6ohJRX7l4aj 4tzL7MLRYW35zUU+aNZFNmsj0pFnQ7qBFcUf8k90qJEZg4W5I2c2+45a0dR0qdMYiM56gCW5yPX iirrTkSUPFSRXyOc5o/3dOzpkzvqm3xiGb91vb/fv1ZCVkiHNVelQDKtljQJVkB3+EzEHyF9XkI so/vcJmoLAxGM2r1fHWqhzeQBSsqHEHg8HIaj6Pi6Ji20K7lvMeqbhkrxvsCRBHysk1WMMJAnV/ xu/iDFGYV9CicTXR9bBEXU9VOXaf7mU2QmbFnkLR7nuo7y2IihFDb1E4TfvCgTQ/UEKiR307sxl 9QVMEkMixzIlTY3ZaDCEpK2km5+2hUHxMWovPFLAqGsCzyKiN1JxaCz1mOHP1GuwyhnPtZEwmhg /wEtcAh6wWdL+o4agFURc1bwwerunBI4NYVRN1Un8Lpt0tamuZm7nIYsHNb13BDKAeHk9ebpDZ1 gjolI7LlcEK4bmY4ymWkKAZtzJrNrCuvGBemgXiED89IQb/lalF3n32LjFdUFNX6AEpeRlJ2BjE X-Received: by 2002:a05:600c:3155:b0:4a1:7ecc:b23c with SMTP id 5b1f17b1804b1-4a18041ad89mr5983065e9.6.1791336751486; Tue, 06 Oct 2026 18:32:31 -0700 (PDT) Received: from 127.mynet ([2a01:4b00:bd21:4f00:7cc6:d3ca:494:116c]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-4a17f6538b7sm21183615e9.13.2026.10.06.18.32.29 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 06 Oct 2026 18:32:30 -0700 (PDT) From: Pavel Begunkov To: linux-block@vger.kernel.org Cc: asml.silence@gmail.com, linux-kernel@vger.kernel.org, linux-media@vger.kernel.org, dri-devel@lists.freedesktop.org, linaro-mm-sig@lists.linaro.org, linux-nvme@lists.infradead.org, linux-fsdevel@vger.kernel.org, io-uring@vger.kernel.org, Christoph Hellwig , Sumit Semwal , =?UTF-8?q?Christian=20K=C3=B6nig?= , Keith Busch , Sagi Grimberg , Alexander Viro , Christian Brauner , Jan Kara , Andrew Morton , Jens Axboe , Nitesh Shetty , Kanchan Joshi , Anuj Gupta , Tushar Gohad , William Power , Matthew Brost , Alasdair Kergon , Mike Snitzer , Mikulas Patocka , Benjamin Marzinski , dm-devel@lists.linux.dev Subject: [PATCH v8 11/13] io_uring/rsrc: add uncloneable regbuf flag Date: Wed, 7 Oct 2026 02:31:54 +0100 Message-ID: <5ccde8461121af903a18cd6085ccac98656aba4b.1791336002.git.asml.silence@gmail.com> X-Mailer: git-send-email 2.54.0 In-Reply-To: References: Precedence: bulk X-Mailing-List: linux-media@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit It's hard to implement cloning if the internal structure needs to be mutable and/or relies on other ring resources. In preparation to such buffer types, add a flag indicating that the buffer can't be cloned. It might be possible to add cloning in the future for them, but that would likely need reallocating the structure and reacquiring resources in case by case manner. Signed-off-by: Pavel Begunkov --- io_uring/rsrc.c | 5 +++++ io_uring/rsrc.h | 3 ++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/io_uring/rsrc.c b/io_uring/rsrc.c index 77e6929f665d..6930a6897b41 100644 --- a/io_uring/rsrc.c +++ b/io_uring/rsrc.c @@ -1456,6 +1456,11 @@ static int io_clone_buffers(struct io_ring_ctx *ctx, struct io_ring_ctx *src_ctx if (!src_node) { dst_node = NULL; } else { + if (src_node->buf->flags & IO_REGBUF_F_UNCLONEABLE) { + io_rsrc_data_free(ctx, &data); + return -EOPNOTSUPP; + } + dst_node = io_rsrc_node_alloc(ctx, IORING_RSRC_BUFFER); if (!dst_node) { io_rsrc_data_free(ctx, &data); diff --git a/io_uring/rsrc.h b/io_uring/rsrc.h index 9ef88383b363..73d7b1ebf0b6 100644 --- a/io_uring/rsrc.h +++ b/io_uring/rsrc.h @@ -26,7 +26,8 @@ struct io_rsrc_node { }; enum { - IO_REGBUF_F_KBUF = 1, + IO_REGBUF_F_KBUF = 1 << 0, + IO_REGBUF_F_UNCLONEABLE = 1 << 1, }; struct io_mapped_ubuf { -- 2.54.0