{"id":2229405,"url":"http://patchwork.ozlabs.org/api/1.1/patches/2229405/?format=json","web_url":"http://patchwork.ozlabs.org/project/intel-wired-lan/patch/20260428082654.44364-4-larysa.zaremba@intel.com/","project":{"id":46,"url":"http://patchwork.ozlabs.org/api/1.1/projects/46/?format=json","name":"Intel Wired Ethernet development","link_name":"intel-wired-lan","list_id":"intel-wired-lan.osuosl.org","list_email":"intel-wired-lan@osuosl.org","web_url":"","scm_url":"","webscm_url":""},"msgid":"<20260428082654.44364-4-larysa.zaremba@intel.com>","date":"2026-04-28T08:26:37","name":"[iwl-next,v7,03/14] libeth: allow to create fill queues without NAPI","commit_ref":null,"pull_url":null,"state":"new","archived":false,"hash":"56df55cb5056230c04a863cc1cafcda76af17896","submitter":{"id":84900,"url":"http://patchwork.ozlabs.org/api/1.1/people/84900/?format=json","name":"Larysa Zaremba","email":"larysa.zaremba@intel.com"},"delegate":null,"mbox":"http://patchwork.ozlabs.org/project/intel-wired-lan/patch/20260428082654.44364-4-larysa.zaremba@intel.com/mbox/","series":[{"id":501793,"url":"http://patchwork.ozlabs.org/api/1.1/series/501793/?format=json","web_url":"http://patchwork.ozlabs.org/project/intel-wired-lan/list/?series=501793","date":"2026-04-28T08:26:34","name":"Introduce iXD driver","version":7,"mbox":"http://patchwork.ozlabs.org/series/501793/mbox/"}],"comments":"http://patchwork.ozlabs.org/api/patches/2229405/comments/","check":"pending","checks":"http://patchwork.ozlabs.org/api/patches/2229405/checks/","tags":{},"headers":{"Return-Path":"<intel-wired-lan-bounces@osuosl.org>","X-Original-To":["incoming@patchwork.ozlabs.org","intel-wired-lan@lists.osuosl.org"],"Delivered-To":["patchwork-incoming@legolas.ozlabs.org","intel-wired-lan@lists.osuosl.org"],"Authentication-Results":["legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=osuosl.org header.i=@osuosl.org header.a=rsa-sha256\n header.s=default header.b=sJBB02zK;\n\tdkim-atps=neutral","legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=osuosl.org\n (client-ip=2605:bc80:3010::137; helo=smtp4.osuosl.org;\n envelope-from=intel-wired-lan-bounces@osuosl.org;\n receiver=patchwork.ozlabs.org)"],"Received":["from smtp4.osuosl.org (smtp4.osuosl.org [IPv6:2605:bc80:3010::137])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519 server-signature ECDSA (secp384r1) server-digest SHA384)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4g4YSy09f8z1xvV\n\tfor <incoming@patchwork.ozlabs.org>; Tue, 28 Apr 2026 18:27:14 +1000 (AEST)","from localhost (localhost [127.0.0.1])\n\tby smtp4.osuosl.org (Postfix) with ESMTP id 918A941167;\n\tTue, 28 Apr 2026 08:27:12 +0000 (UTC)","from smtp4.osuosl.org ([127.0.0.1])\n by localhost (smtp4.osuosl.org [127.0.0.1]) (amavis, port 10024) with ESMTP\n id nUaR9xBoKy3B; Tue, 28 Apr 2026 08:27:12 +0000 (UTC)","from lists1.osuosl.org (lists1.osuosl.org [140.211.166.142])\n\tby smtp4.osuosl.org (Postfix) with ESMTP id E125341181;\n\tTue, 28 Apr 2026 08:27:11 +0000 (UTC)","from smtp1.osuosl.org (smtp1.osuosl.org [IPv6:2605:bc80:3010::138])\n by lists1.osuosl.org (Postfix) with ESMTP id 15BD723D\n for <intel-wired-lan@lists.osuosl.org>; Tue, 28 Apr 2026 08:27:10 +0000 (UTC)","from localhost (localhost [127.0.0.1])\n by smtp1.osuosl.org (Postfix) with ESMTP id 30E9983709\n for <intel-wired-lan@lists.osuosl.org>; Tue, 28 Apr 2026 08:27:09 +0000 (UTC)","from smtp1.osuosl.org ([127.0.0.1])\n by localhost (smtp1.osuosl.org [127.0.0.1]) (amavis, port 10024) with ESMTP\n id IhVakYxZl9Y0 for <intel-wired-lan@lists.osuosl.org>;\n Tue, 28 Apr 2026 08:27:08 +0000 (UTC)","from mgamail.intel.com (mgamail.intel.com [192.198.163.15])\n by smtp1.osuosl.org (Postfix) with ESMTPS id 320A5836F1\n for <intel-wired-lan@lists.osuosl.org>; Tue, 28 Apr 2026 08:27:08 +0000 (UTC)","from orviesa006.jf.intel.com ([10.64.159.146])\n by fmvoesa109.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;\n 28 Apr 2026 01:27:08 -0700","from irvmail002.ir.intel.com ([10.43.11.120])\n by orviesa006.jf.intel.com with ESMTP; 28 Apr 2026 01:27:03 -0700","from mglak.igk.intel.com (mglak.igk.intel.com [10.237.112.146])\n by irvmail002.ir.intel.com (Postfix) with ESMTP id 869F427BA7;\n Tue, 28 Apr 2026 09:27:00 +0100 (IST)"],"X-Virus-Scanned":["amavis at osuosl.org","amavis at osuosl.org"],"X-Comment":"SPF check N/A for local connections - client-ip=140.211.166.142;\n helo=lists1.osuosl.org; envelope-from=intel-wired-lan-bounces@osuosl.org;\n receiver=<UNKNOWN> ","DKIM-Filter":["OpenDKIM Filter v2.11.0 smtp4.osuosl.org E125341181","OpenDKIM Filter v2.11.0 smtp1.osuosl.org 320A5836F1"],"DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed; d=osuosl.org;\n\ts=default; t=1777364831;\n\tbh=uQIPMVzZDHMNFnaR71fFP4nfVMJzvW59dGf0gFpOQsw=;\n\th=From:To:Cc:Date:In-Reply-To:References:Subject:List-Id:\n\t List-Unsubscribe:List-Archive:List-Post:List-Help:List-Subscribe:\n\t From;\n\tb=sJBB02zKEZCj0zlhfXQM7KGgvkKTx0dTTGL85E8WmAZ4puNSaYUxUtIGeyl5ngclr\n\t ivgOgDZz+1PmEeU//Mrgu8uBAm7N1BX3NMMNZ2EFTA0ZUS6hEqdxKgfEpEz2jZGKHA\n\t cHhC21iD0MfqVo1QkKJFylMDzE4BwjQE7aIOuGfEeh0kMzvdoPiyKlI7gUnYjRgAB0\n\t b7vrc8Q80fVRCaxpjU1r7t0MvSq1QCTduXcapKptnlT5oYxNfjnx2DHS0Sm+tU7tvn\n\t H9kdKTOao9d1T2JV+1Wyp4eCahz++bqO7UEynKnN++Bl9XzRFk0DUeFyIP4qvftH7r\n\t 4B3poktfJ9Fig==","Received-SPF":"Pass (mailfrom) identity=mailfrom; client-ip=192.198.163.15;\n helo=mgamail.intel.com; envelope-from=larysa.zaremba@intel.com;\n receiver=<UNKNOWN>","DMARC-Filter":"OpenDMARC Filter v1.4.2 smtp1.osuosl.org 320A5836F1","X-CSE-ConnectionGUID":["AJruWFgzQ8y2D68gLYiTwg==","GEXapSElRTS2FJuvNYkANg=="],"X-CSE-MsgGUID":["bixAB75iQj2jmjbalu80eQ==","Flc4Mq5DSoOBcD0MJMfM2A=="],"X-IronPort-AV":["E=McAfee;i=\"6800,10657,11769\"; a=\"78376868\"","E=Sophos;i=\"6.23,203,1770624000\"; d=\"scan'208\";a=\"78376868\"","E=Sophos;i=\"6.23,203,1770624000\"; d=\"scan'208\";a=\"232881477\""],"X-ExtLoop1":"1","From":"Larysa Zaremba <larysa.zaremba@intel.com>","To":"intel-wired-lan@lists.osuosl.org, Tony Nguyen <anthony.l.nguyen@intel.com>","Cc":"aleksander.lobakin@intel.com, sridhar.samudrala@intel.com,\n Michal Swiatkowski <michal.swiatkowski@linux.intel.com>,\n Larysa Zaremba <larysa.zaremba@intel.com>,\n \"Fijalkowski, Maciej\" <maciej.fijalkowski@intel.com>,\n Emil Tantilov <emil.s.tantilov@intel.com>,\n Madhu Chittim <madhu.chittim@intel.com>, Josh Hay <joshua.a.hay@intel.com>,\n \"Keller, Jacob E\" <jacob.e.keller@intel.com>,\n jayaprakash.shanmugam@intel.com, Jiri Pirko <jiri@resnulli.us>,\n \"David S. Miller\" <davem@davemloft.net>,\n Eric Dumazet <edumazet@google.com>, Jakub Kicinski <kuba@kernel.org>,\n Paolo Abeni <pabeni@redhat.com>, Simon Horman <horms@kernel.org>,\n Jonathan Corbet <corbet@lwn.net>,\n Richard Cochran <richardcochran@gmail.com>,\n Przemek Kitszel <przemyslaw.kitszel@intel.com>,\n Andrew Lunn <andrew+netdev@lunn.ch>, netdev@vger.kernel.org,\n linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org,\n Bharath R <bharath.r@intel.com>, Samuel Salin <Samuel.salin@intel.com>","Date":"Tue, 28 Apr 2026 10:26:37 +0200","Message-ID":"<20260428082654.44364-4-larysa.zaremba@intel.com>","X-Mailer":"git-send-email 2.47.0","In-Reply-To":"<20260428082654.44364-1-larysa.zaremba@intel.com>","References":"<20260428082654.44364-1-larysa.zaremba@intel.com>","MIME-Version":"1.0","Content-Transfer-Encoding":"8bit","X-Mailman-Original-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple;\n d=intel.com; i=@intel.com; q=dns/txt; s=Intel;\n t=1777364828; x=1808900828;\n h=from:to:cc:subject:date:message-id:in-reply-to:\n references:mime-version:content-transfer-encoding;\n bh=f89MZan3iUCMImpwFJMAPlV8Oa0551rEAwn3TXkL7pI=;\n b=k/cY8RaL5YUjLIlwI7Q5BZLQEgJZNfqkvcKlAbu3xbWnQvjg86S8m4zG\n 4baOTiQWkVCNfYkEy0A9U+Ks+KmiBVhH1i8pST5TdcKk4WWK8IBnhfC79\n EGH7CyjX++l3pb2xKHuNtGDvyJ2gvXDQynLAQ0hgnw4xjZAKlEu/fxwFE\n wYfekYF1bc4Crti3fPFFhgSeFBDIDXfDNNyeLseHV5U0NizHCotcECucJ\n oySSiaFb/oJYzj02lsBUvQxapQpKyG7hEnOj2KMoD3LzQ7JDIOhCutkqf\n ohGfv3/b9Vaf4XEA4Gik9xyqeU7xFGtDrglXxwdmGu8QSOCXbbDukBFhX\n w==;","X-Mailman-Original-Authentication-Results":["smtp1.osuosl.org;\n dmarc=pass (p=none dis=none)\n header.from=intel.com","smtp1.osuosl.org;\n dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com\n header.a=rsa-sha256 header.s=Intel header.b=k/cY8RaL"],"Subject":"[Intel-wired-lan] [PATCH iwl-next v7 03/14] libeth: allow to create\n fill queues without NAPI","X-BeenThere":"intel-wired-lan@osuosl.org","X-Mailman-Version":"2.1.30","Precedence":"list","List-Id":"Intel Wired Ethernet Linux Kernel Driver Development\n <intel-wired-lan.osuosl.org>","List-Unsubscribe":"<https://lists.osuosl.org/mailman/options/intel-wired-lan>,\n <mailto:intel-wired-lan-request@osuosl.org?subject=unsubscribe>","List-Archive":"<http://lists.osuosl.org/pipermail/intel-wired-lan/>","List-Post":"<mailto:intel-wired-lan@osuosl.org>","List-Help":"<mailto:intel-wired-lan-request@osuosl.org?subject=help>","List-Subscribe":"<https://lists.osuosl.org/mailman/listinfo/intel-wired-lan>,\n <mailto:intel-wired-lan-request@osuosl.org?subject=subscribe>","Errors-To":"intel-wired-lan-bounces@osuosl.org","Sender":"\"Intel-wired-lan\" <intel-wired-lan-bounces@osuosl.org>"},"content":"From: Pavan Kumar Linga <pavan.kumar.linga@intel.com>\n\nControl queues can utilize libeth_rx fill queues, despite working outside\nof NAPI context. The only problem is standard fill queues requiring NAPI\nthat provides them with the device pointer.\n\nIntroduce a way to provide the device directly without using NAPI.\n\nSuggested-by: Alexander Lobakin <aleksander.lobakin@intel.com>\nReviewed-by: Maciej Fijalkowski <maciej.fijalkowski@intel.com>\nSigned-off-by: Pavan Kumar Linga <pavan.kumar.linga@intel.com>\nSigned-off-by: Larysa Zaremba <larysa.zaremba@intel.com>\nTested-by: Bharath R <bharath.r@intel.com>\nTested-by: Samuel Salin <Samuel.salin@intel.com>\nSigned-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>\n---\n drivers/net/ethernet/intel/libeth/rx.c | 12 ++++++++----\n include/net/libeth/rx.h                |  4 +++-\n 2 files changed, 11 insertions(+), 5 deletions(-)","diff":"diff --git a/drivers/net/ethernet/intel/libeth/rx.c b/drivers/net/ethernet/intel/libeth/rx.c\nindex 62521a1f4ec9..0c1a565a1b3a 100644\n--- a/drivers/net/ethernet/intel/libeth/rx.c\n+++ b/drivers/net/ethernet/intel/libeth/rx.c\n@@ -145,25 +145,29 @@ static bool libeth_rx_page_pool_params_zc(struct libeth_fq *fq,\n /**\n  * libeth_rx_fq_create - create a PP with the default libeth settings\n  * @fq: buffer queue struct to fill\n- * @napi: &napi_struct covering this PP (no usage outside its poll loops)\n+ * @napi_dev: &napi_struct for NAPI (data) queues, &device for others\n  *\n  * Return: %0 on success, -%errno on failure.\n  */\n-int libeth_rx_fq_create(struct libeth_fq *fq, struct napi_struct *napi)\n+int libeth_rx_fq_create(struct libeth_fq *fq, void *napi_dev)\n {\n+\tstruct napi_struct *napi = fq->no_napi ? NULL : napi_dev;\n \tstruct page_pool_params pp = {\n \t\t.flags\t\t= PP_FLAG_DMA_MAP | PP_FLAG_DMA_SYNC_DEV,\n \t\t.order\t\t= LIBETH_RX_PAGE_ORDER,\n \t\t.pool_size\t= fq->count,\n \t\t.nid\t\t= fq->nid,\n-\t\t.dev\t\t= napi->dev->dev.parent,\n-\t\t.netdev\t\t= napi->dev,\n+\t\t.dev\t\t= napi ? napi->dev->dev.parent : napi_dev,\n+\t\t.netdev\t\t= napi ? napi->dev : NULL,\n \t\t.napi\t\t= napi,\n \t};\n \tstruct libeth_fqe *fqes;\n \tstruct page_pool *pool;\n \tint ret;\n \n+\tif (!pp.netdev && fq->type == LIBETH_FQE_MTU)\n+\t\treturn -EINVAL;\n+\n \tpp.dma_dir = fq->xdp ? DMA_BIDIRECTIONAL : DMA_FROM_DEVICE;\n \n \tif (!fq->hsplit)\ndiff --git a/include/net/libeth/rx.h b/include/net/libeth/rx.h\nindex 5d991404845e..0e736846c5e8 100644\n--- a/include/net/libeth/rx.h\n+++ b/include/net/libeth/rx.h\n@@ -69,6 +69,7 @@ enum libeth_fqe_type {\n  * @type: type of the buffers this queue has\n  * @hsplit: flag whether header split is enabled\n  * @xdp: flag indicating whether XDP is enabled\n+ * @no_napi: the queue is not a data queue and does not have NAPI\n  * @buf_len: HW-writeable length per each buffer\n  * @nid: ID of the closest NUMA node with memory\n  */\n@@ -85,12 +86,13 @@ struct libeth_fq {\n \tenum libeth_fqe_type\ttype:2;\n \tbool\t\t\thsplit:1;\n \tbool\t\t\txdp:1;\n+\tbool\t\t\tno_napi:1;\n \n \tu32\t\t\tbuf_len;\n \tint\t\t\tnid;\n };\n \n-int libeth_rx_fq_create(struct libeth_fq *fq, struct napi_struct *napi);\n+int libeth_rx_fq_create(struct libeth_fq *fq, void *napi_dev);\n void libeth_rx_fq_destroy(struct libeth_fq *fq);\n \n /**\n","prefixes":["iwl-next","v7","03/14"]}