From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-ed1-f53.google.com (mail-ed1-f53.google.com [209.85.208.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 BA3E83845D0 for ; Sat, 11 Jul 2026 09:12:33 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.208.53 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1783761155; cv=none; b=L5EY1Roki4y5yl8SpSMWgBDxxqmb2DfRyKiR1YKp8/MEVlJp+IscBZ8xA/P3mLMRgc49otOKT3MbfLjfxkRArjSgLAa+k/gEBXZaKrQR0OOBqA6I8XhN5lkVrACnXp0p4VUBymsiaPVkIajZ2dXU0UmObx8tydanUt2zA8Bte8U= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1783761155; c=relaxed/simple; bh=j/5GZEQZbF38L9JaQiUk3YKk/MPhOlWpLdjb7h/aMHo=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=MTgYFOqpko1+vMUyqZ8q70zk6EzhzB0mj9Kk4mDFT9WYgEnaFJcB2E7bgEDkm3PDUSEY+l++Z1x/fZXwA1YqpbQC7uwsJKbFLlmAQzMGaTH4MMIdh93JuROxtYxyj/kDvAqeABjsKhvjMinXRZ1nbEYGBNq2kyJpghHy99BFhpg= 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=gsWo+rfU; arc=none smtp.client-ip=209.85.208.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="gsWo+rfU" Received: by mail-ed1-f53.google.com with SMTP id 4fb4d7f45d1cf-698bf7a1a2dso2386605a12.0 for ; Sat, 11 Jul 2026 02:12:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1783761152; x=1784365952; 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=SN7mHS7hqYCVkOLfVfbV8OTyhnbG54L9cTrZjvi9uwY=; b=gsWo+rfUmYCnQj8dadtyJecKJEtCI2n9ILhshUtMwZ131pC+x34jIgqovtS2yYHdJb M1Tdrn40oQO5JpLtbk8R6BmL5Dwe0NpcA0Np/twypmVXZXjLkKYCOUHjL7ftiy+Nly2k 9/pE7wrtVL0Qjev6nzhqiiJOFOxX4o/Oe8wOq/Nt2KiAizNqAvnoDKkYMghQZVSdS6nx Yu+5wvrstFMZpkTSNriJD/mqpfVD5tv9pzOFEEChGcC7QBLsIxjPEiMONj5LgUSHtNRi 4lneRvNLpxy8xbAL584cOnGVZGCft/AP6N6vLzvNQWvaVUvBUMrBwU91AqGG4BP0YHrw JceQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1783761152; x=1784365952; 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=SN7mHS7hqYCVkOLfVfbV8OTyhnbG54L9cTrZjvi9uwY=; b=cb4pDpUvWv5GiudnRgPUWWBoqjvXihAMmSS9HipWMS2Sc+pCQ9ajfWIKgIj8Hmu9rs nZWTbZ9d4vcESLzT8foAc0RgVBfVWN4detjcTwtrgCSrbAqyyQ4hgWR51ZF2SX6ePoOt 8yBYsfhQLBGMmWxIbEHmu6W/FFUuxNh2unOXogf3z2u/gfLDmgbHFpoFcFyMH4V4DvQq XX9ou+LTc/vUUSmYzbwrF+tH1hZmK6n6enxPQ+NcaJwbAf9ssNgxseC4ZdyXb7AjHa9Y uRfbBgRYLg0V55FE4om1EvhWV6VfvO14cKgm7FoVug1bvX90JH57P6KYsMllTbk4Fqom zrjA== X-Forwarded-Encrypted: i=1; AHgh+Ro4KeudMBx1M1gHX6g0qbTSpRA3bH7dkiUZZgpZaB2Z2knfKmz4H/7MnHtu3yHjtxyGvXY+lig=@vger.kernel.org X-Gm-Message-State: AOJu0Ywrjy6/hJhpOAxXx6gOAKgaZJZIP8RCdFgj9oOp4TaXMLwn/42w vUL6j7c4KQlxbF9zt68bPhK0uRr49Ji5gWxeCdQ1RqkQejy5Q5JnvQvj X-Gm-Gg: AfdE7ckxBN4IN+hV0vrDmtuRxLXlDJJeqmQvOfWfZKOxkdhW5z7uxom7P8JlvrpK3mI kErsHy378oThmmSxNLivS9tKRTtZ3gkN9vCuWs/FX/KX1EdRWiC+DsVfHW/gvnKEG0lw/IVWA+1 ZPJe/KDnL5ozFFnMfDHa1BqpUWH7lUTuvUOpYfVvT4uBdSNrDZwbnUs2Q1U+80hBcsTL052QZrC RRAPz0aiMEoBWR4AOnCsmgMDUJlg4UIm6KciGJKqp9GchucqXC10OWJRVO5FY5bUTayW4jVM9fD TkzyNaBZacFQTDHIu9p4nldP+B2kDrugXA+OHxxs0XJw7JZ+Zgs/NkAhOYQbPqm+ElOmviDndgZ myGyaRctFAncIcqKJZ/X2zH/HQyAj36VNjr//USXCIZ0MEHagHkfysXYZCMrnle1+CUpsrGeeFl lY17GggYVmXNfht5Vljc9hyki1RLuWbZmI1Tboub15Q1UTGGf21zO2J/9fq3DknJAFMP2EJYq3j O+b5ODBzRJY9djQyBpUn7YgWLGa5SjOwiH1QGLyRnJwRJXk2473Mptt+A== X-Received: by 2002:a05:6402:1cc9:b0:695:822c:1083 with SMTP id 4fb4d7f45d1cf-69c5f124c51mr1053684a12.28.1783761151896; Sat, 11 Jul 2026 02:12:31 -0700 (PDT) Received: from 127.0.0.1localhost (82-132-221-54.dab.02.net. [82.132.221.54]) by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-69c60d47188sm681191a12.27.2026.07.11.02.12.29 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 11 Jul 2026 02:12:29 -0700 (PDT) From: Pavel Begunkov To: io-uring@vger.kernel.org Cc: asml.silence@gmail.com, netdev@vger.kernel.org Subject: [PATCH review-only 08/17] io_uring/zcrx: don't pass ifq_reg to area creation Date: Sat, 11 Jul 2026 10:11:31 +0100 Message-ID: <843ae4982c9e590713ac23ebb470dc0731b4da7f.1783616211.git.asml.silence@gmail.com> X-Mailer: git-send-email 2.54.0 In-Reply-To: References: Precedence: bulk X-Mailing-List: netdev@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit We might want to create an area without having an instance of struct io_uring_zcrx_ifq_reg. Extract a helper that doesn't have the ifq registration structure as an argument but takes the buf length explicitly. Signed-off-by: Pavel Begunkov --- io_uring/zcrx.c | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/io_uring/zcrx.c b/io_uring/zcrx.c index cfbfbd262f90..79099a78f8cd 100644 --- a/io_uring/zcrx.c +++ b/io_uring/zcrx.c @@ -460,21 +460,22 @@ static int io_zcrx_append_area(struct io_zcrx_ifq *ifq, return 0; } -static int io_zcrx_create_area(struct io_zcrx_ifq *ifq, +static int __zcrx_create_area(struct io_zcrx_ifq *ifq, struct io_uring_zcrx_area_reg *area_reg, - struct io_uring_zcrx_ifq_reg *reg) + u32 rx_buf_len) { int buf_size_shift = PAGE_SHIFT; struct io_zcrx_area *area; unsigned nr_iovs; int i, ret; - if (reg->rx_buf_len) { - if (!is_power_of_2(reg->rx_buf_len) || - reg->rx_buf_len < PAGE_SIZE) + if (rx_buf_len) { + if (!is_power_of_2(rx_buf_len) || rx_buf_len < PAGE_SIZE) return -EINVAL; - buf_size_shift = ilog2(reg->rx_buf_len); + buf_size_shift = ilog2(rx_buf_len); } + if (WARN_ON_ONCE(ifq->niov_shift)) + return -EINVAL; if (!ifq->dev && buf_size_shift != PAGE_SHIFT) return -EOPNOTSUPP; @@ -544,6 +545,13 @@ static int io_zcrx_create_area(struct io_zcrx_ifq *ifq, return ret; } +static int io_zcrx_create_area(struct io_zcrx_ifq *ifq, + struct io_uring_zcrx_area_reg *area_reg, + struct io_uring_zcrx_ifq_reg *reg) +{ + return __zcrx_create_area(ifq, area_reg, reg->rx_buf_len); +} + static struct io_zcrx_ifq *io_zcrx_ifq_alloc(struct io_ring_ctx *ctx) { struct io_zcrx_ifq *ifq; -- 2.54.0 From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-ej1-f46.google.com (mail-ej1-f46.google.com [209.85.218.46]) (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 25E973B992E for ; Sat, 11 Jul 2026 10:40:53 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.218.46 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1783766455; cv=none; b=KcD0fk3kG1sxNqHZGFPBz7se9BHd8zwP+6BYePIRWGV+rFL61BzV6n2SkJpZa4i8Z9ToKO5UN3V/UToKBhwA8bS6aUnvkleXnFOkpSP25xS5IQKLYJvirYfiPh54BRGd0a58uQaE2fNrVjQE2NwhUJrtMKzGnjV+oDgKqH7r/FU= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1783766455; c=relaxed/simple; bh=j/5GZEQZbF38L9JaQiUk3YKk/MPhOlWpLdjb7h/aMHo=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=KVDPt2Fvw+TlH7vn/x9OFNSFSgk7jfmExlDLXsGI3vyTecb0FZuZVVZmSlbK88qxntYIlNkKH+elTP4X95T4jwkZWJfqdHUn43EYxg9WXbdIlmKq0AQEauRf/JrJCZqLrWyzt43cQWOdaQic6k/oFWKQykD+R0ut6ZeEvSlagFY= 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=pjjQuvlU; arc=none smtp.client-ip=209.85.218.46 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="pjjQuvlU" Received: by mail-ej1-f46.google.com with SMTP id a640c23a62f3a-c15cb6f5c12so296750166b.0 for ; Sat, 11 Jul 2026 03:40:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1783766452; x=1784371252; 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=SN7mHS7hqYCVkOLfVfbV8OTyhnbG54L9cTrZjvi9uwY=; b=pjjQuvlUZQ6j00w+ftYnnxyGoy3DqIrqNDM50HkWt2I0uuYfwcZjAc1kjP9t1TDs1U CSPiZJ2WvJsEdNSIBkee3I0i1Q3lFCzRCl8unLVvL8S3oDgkmMtjlNSELzON8KRok8wU Jn4rgSsk6Ay0AMBi+Yx7UT8AtsOFd7TJOxN8tND2uWDO+hJo0y/s9XkMRH+2V5O9eatW t7BJOx9IvideCLSI0e7E7gONOUwRUV8IgMF9Y+BXuq/+c8aHOUd3dF7HdkSPGEMMVtJO XO9iUVGIRJQxQqsVil5ieSXtyLhPEzEaF+LRn1pKnWCSyQrDf9yUsXHS3L0aky4Xa+uY 4f1w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1783766452; x=1784371252; 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=SN7mHS7hqYCVkOLfVfbV8OTyhnbG54L9cTrZjvi9uwY=; b=HD6cf4ZDlOERijdX7PivqlGkah4B7TgQmo9twWNWqvRs6k9kM6P3OsPMJobVldDo3W vKFBFpIoGJLsD413H62w+GjrXj5UDVf5buVlFxs64NJBcvrZ8tfkLkt00ou3RDfLwja6 wVt+YDmQc5nr0Tv8gr+R+zOJaUWNTva/77Xda4NiJQBcr5jpbLj9LFm/50kaoI3AzMdh /XeHXa0ex7cYYmp4zll584vQDCpNt7ll8w5693uuIgbqujNLw87xHg+JMqXHL3TbsmCL y50JX3xqAGDsnb0OBoShZPH8l25SgpVt+MlO4dcxav5E6/Rb3KUkiSM6D5/NrlaMJBnm DeKA== X-Forwarded-Encrypted: i=1; AHgh+Rouo6UhuXrNKYQGV1GdjBF2Eu0gm59LyKni2YQQq/NznS/1l/qDzP+NIhSh4apdZUsZ6SYlNU8=@vger.kernel.org X-Gm-Message-State: AOJu0YyB+Evzbg46zGIUA2lwJP0V9a2WAEN1UEfWA9XZuAHZ+cY+npy5 S9ifz39Ea4AQBtja+R16HiVbxaZWo2CdVu2EDOH4eMLGvfcghbG0Omi9hMcKqg== X-Gm-Gg: AfdE7cnUuRYo4k9TGmoUteOTNIBDdYybDpFcgc7dIFE3xNGP93yKTJu0EeEiYdFUT76 HbXZ5c3Tnp0kqAOlOIZYV83Dgh3h8egtaaiuTpE/UQfAFM4RcTwK/awwss7YoljGULZpzm2InNH VLKve3oisCCEhih8mnZsiYTGH6bq9cn61KV6XLOP6yABsKfihJd1LyAtsMfFwaqIpnbKUs8UJoS Kb/MVpApS1v8XNOWBp8wILOo3JEQXjxGq89tlfrYoVikPkJav6s6uD1MzD23LpME+iQI7p1/pqX HpOrMp3qKEJ4ZH/Upyk8lMPBnYSoqLRdYK97HyyDrdQYWp6+tRZeFBXijkQVFf2r/WSdMkgQ4QD In3zCmrR2tejqjBlkvbwSP7llTucV1qF/70lYCFOokQQqUV6MLPedGyccWky4WkDQxnLvn31sNc NEGxAamSQzedNLHDSKqnNK/LiEOHsG4P+HwVkOy1Nt7yCPSFLu1VT4qHVsDoWce73tZZMzwi2ZD v1lq1j5i4J9zwGvHndtq8ghdjnZ5RfmOhi6bvyNlhyZTM2QqdzmzWTKDIcD X-Received: by 2002:a17:907:a0c:b0:c12:58ac:9869 with SMTP id a640c23a62f3a-c161e84c5d7mr94603566b.9.1783766452409; Sat, 11 Jul 2026 03:40:52 -0700 (PDT) Received: from 127.0.0.1localhost (82-132-222-132.dab.02.net. [82.132.222.132]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-c15d5de95e6sm483041566b.39.2026.07.11.03.40.48 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 11 Jul 2026 03:40:49 -0700 (PDT) From: Pavel Begunkov To: io-uring@vger.kernel.org Cc: asml.silence@gmail.com, netdev@vger.kernel.org Subject: [PATCH review-only 08/17] io_uring/zcrx: don't pass ifq_reg to area creation Date: Sat, 11 Jul 2026 11:40:01 +0100 Message-ID: <843ae4982c9e590713ac23ebb470dc0731b4da7f.1783616211.git.asml.silence@gmail.com> X-Mailer: git-send-email 2.54.0 In-Reply-To: References: Precedence: bulk X-Mailing-List: netdev@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Message-ID: <20260711104001.YPW64p6uzAH4C5U0s_9-fzVI_C2GbFBvpJnVwuJiiGI@z> We might want to create an area without having an instance of struct io_uring_zcrx_ifq_reg. Extract a helper that doesn't have the ifq registration structure as an argument but takes the buf length explicitly. Signed-off-by: Pavel Begunkov --- io_uring/zcrx.c | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/io_uring/zcrx.c b/io_uring/zcrx.c index cfbfbd262f90..79099a78f8cd 100644 --- a/io_uring/zcrx.c +++ b/io_uring/zcrx.c @@ -460,21 +460,22 @@ static int io_zcrx_append_area(struct io_zcrx_ifq *ifq, return 0; } -static int io_zcrx_create_area(struct io_zcrx_ifq *ifq, +static int __zcrx_create_area(struct io_zcrx_ifq *ifq, struct io_uring_zcrx_area_reg *area_reg, - struct io_uring_zcrx_ifq_reg *reg) + u32 rx_buf_len) { int buf_size_shift = PAGE_SHIFT; struct io_zcrx_area *area; unsigned nr_iovs; int i, ret; - if (reg->rx_buf_len) { - if (!is_power_of_2(reg->rx_buf_len) || - reg->rx_buf_len < PAGE_SIZE) + if (rx_buf_len) { + if (!is_power_of_2(rx_buf_len) || rx_buf_len < PAGE_SIZE) return -EINVAL; - buf_size_shift = ilog2(reg->rx_buf_len); + buf_size_shift = ilog2(rx_buf_len); } + if (WARN_ON_ONCE(ifq->niov_shift)) + return -EINVAL; if (!ifq->dev && buf_size_shift != PAGE_SHIFT) return -EOPNOTSUPP; @@ -544,6 +545,13 @@ static int io_zcrx_create_area(struct io_zcrx_ifq *ifq, return ret; } +static int io_zcrx_create_area(struct io_zcrx_ifq *ifq, + struct io_uring_zcrx_area_reg *area_reg, + struct io_uring_zcrx_ifq_reg *reg) +{ + return __zcrx_create_area(ifq, area_reg, reg->rx_buf_len); +} + static struct io_zcrx_ifq *io_zcrx_ifq_alloc(struct io_ring_ctx *ctx) { struct io_zcrx_ifq *ifq; -- 2.54.0