{"id":2222937,"url":"http://patchwork.ozlabs.org/api/1.1/covers/2222937/?format=json","web_url":"http://patchwork.ozlabs.org/project/linux-pci/cover/20260414031631.2107-1-emil.s.tantilov@intel.com/","project":{"id":28,"url":"http://patchwork.ozlabs.org/api/1.1/projects/28/?format=json","name":"Linux PCI development","link_name":"linux-pci","list_id":"linux-pci.vger.kernel.org","list_email":"linux-pci@vger.kernel.org","web_url":null,"scm_url":null,"webscm_url":null},"msgid":"<20260414031631.2107-1-emil.s.tantilov@intel.com>","date":"2026-04-14T03:16:29","name":"[iwl-next,v2,0/2] Introduce IDPF PCI callbacks","submitter":{"id":1670,"url":"http://patchwork.ozlabs.org/api/1.1/people/1670/?format=json","name":"Tantilov, Emil S","email":"emil.s.tantilov@intel.com"},"mbox":"http://patchwork.ozlabs.org/project/linux-pci/cover/20260414031631.2107-1-emil.s.tantilov@intel.com/mbox/","series":[{"id":499772,"url":"http://patchwork.ozlabs.org/api/1.1/series/499772/?format=json","web_url":"http://patchwork.ozlabs.org/project/linux-pci/list/?series=499772","date":"2026-04-14T03:16:31","name":"Introduce IDPF PCI callbacks","version":2,"mbox":"http://patchwork.ozlabs.org/series/499772/mbox/"}],"comments":"http://patchwork.ozlabs.org/api/covers/2222937/comments/","headers":{"Return-Path":"\n <linux-pci+bounces-52468-incoming=patchwork.ozlabs.org@vger.kernel.org>","X-Original-To":["incoming@patchwork.ozlabs.org","linux-pci@vger.kernel.org"],"Delivered-To":"patchwork-incoming@legolas.ozlabs.org","Authentication-Results":["legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=intel.com header.i=@intel.com header.a=rsa-sha256\n header.s=Intel header.b=RMRDStIh;\n\tdkim-atps=neutral","legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org\n (client-ip=2600:3c0a:e001:db::12fc:5321; helo=sea.lore.kernel.org;\n envelope-from=linux-pci+bounces-52468-incoming=patchwork.ozlabs.org@vger.kernel.org;\n receiver=patchwork.ozlabs.org)","smtp.subspace.kernel.org;\n\tdkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com\n header.b=\"RMRDStIh\"","smtp.subspace.kernel.org;\n arc=none smtp.client-ip=192.198.163.11","smtp.subspace.kernel.org;\n dmarc=pass (p=none dis=none) header.from=intel.com","smtp.subspace.kernel.org;\n spf=pass smtp.mailfrom=intel.com"],"Received":["from sea.lore.kernel.org (sea.lore.kernel.org\n [IPv6:2600:3c0a:e001:db::12fc:5321])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4fvqGW1ybMz1yDF\n\tfor <incoming@patchwork.ozlabs.org>; Tue, 14 Apr 2026 13:17:55 +1000 (AEST)","from smtp.subspace.kernel.org (conduit.subspace.kernel.org\n [100.90.174.1])\n\tby sea.lore.kernel.org (Postfix) with ESMTP id A87E7303AB7F\n\tfor <incoming@patchwork.ozlabs.org>; Tue, 14 Apr 2026 03:16:26 +0000 (UTC)","from localhost.localdomain (localhost.localdomain [127.0.0.1])\n\tby smtp.subspace.kernel.org (Postfix) with ESMTP id B99F531AF24;\n\tTue, 14 Apr 2026 03:16:25 +0000 (UTC)","from mgamail.intel.com (mgamail.intel.com [192.198.163.11])\n\t(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))\n\t(No client certificate requested)\n\tby smtp.subspace.kernel.org (Postfix) with ESMTPS id 677A8319848;\n\tTue, 14 Apr 2026 03:16:24 +0000 (UTC)","from fmviesa007.fm.intel.com ([10.60.135.147])\n  by fmvoesa105.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;\n 13 Apr 2026 20:16:24 -0700","from estantil-desk.jf.intel.com ([10.166.241.24])\n  by fmviesa007.fm.intel.com with ESMTP; 13 Apr 2026 20:16:23 -0700"],"ARC-Seal":"i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;\n\tt=1776136585; cv=none;\n b=JKhClj3z8yz1CE29dMZji/peOBHflhycBBarCnCJMd6SPdl/G93itkaa9emX9vTugomaLkB6FhYd7oqa54Yci8aZ9Ceqs3qSLrYSqxJ+6dNetfPUFc34giMvsKQElN+NCCU7CxXvYQSQ/1gHBwIrp9u3Tj8r5a0Tg7P0DPfB7SE=","ARC-Message-Signature":"i=1; a=rsa-sha256; d=subspace.kernel.org;\n\ts=arc-20240116; t=1776136585; c=relaxed/simple;\n\tbh=oKTYqYhLv/KKCwdvRpI6OjNnIIZ57VjTfvU9UFl192A=;\n\th=From:To:Cc:Subject:Date:Message-Id;\n b=EG5i9wNH543678o22KXcUlUI7znGtISLDQqomArXEaPehk/BSUZ329oIfhpfLY5K0M9/PDm5ZHHMIJi9PwQ9MgUaAZYchD9/WYt5z7uAtoel9QimLkyWDPv5HMyLwRh6l2JyWGA0nmUUCCP3CCcjzMGb4S2ZiJRLi9dvykKtBrI=","ARC-Authentication-Results":"i=1; smtp.subspace.kernel.org;\n dmarc=pass (p=none dis=none) header.from=intel.com;\n spf=pass smtp.mailfrom=intel.com;\n dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com\n header.b=RMRDStIh; arc=none smtp.client-ip=192.198.163.11","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple;\n  d=intel.com; i=@intel.com; q=dns/txt; s=Intel;\n  t=1776136584; x=1807672584;\n  h=from:to:cc:subject:date:message-id;\n  bh=oKTYqYhLv/KKCwdvRpI6OjNnIIZ57VjTfvU9UFl192A=;\n  b=RMRDStIhDgOtgYIkswWqDwOki1heAkDi54xUx5HMTtkXrePjlleFa4sn\n   m/DQUVyWqPdMqMkPzpmhwTa/0OATKmVx6XucczglCFhc1XJZUVtloNYfk\n   A459AZCJOZQntl1yRFmCzfhRm6sX1advtkrka1APIOxUhPcGXKWe93MVN\n   zH/nIDOKGi6aqlpGV5nNc4k/oHqmYpM1fcb79SPHjVaV0C0c0UNTB/n4f\n   +hbH8UnaBww81pYVKSgPLvObc37hnzYZxF9r16OLU0GiL4vU+PoZtRPz5\n   he6izqIL3MJdHZ/MBWQJDgO3dG6IU4Rj44motCbI7w5gnvTziLZ0ORY8b\n   Q==;","X-CSE-ConnectionGUID":["9aCLuYOaT66vm96dHEWaqg==","p1/4XYGlSN6pBnEUjOedkg=="],"X-CSE-MsgGUID":["KzJ9GZ23SNmF/52MqwJijg==","MJYetiEoTGqwlYG4dp6yxg=="],"X-IronPort-AV":["E=McAfee;i=\"6800,10657,11758\"; a=\"87706558\"","E=Sophos;i=\"6.23,178,1770624000\";\n   d=\"scan'208\";a=\"87706558\"","E=Sophos;i=\"6.23,178,1770624000\";\n   d=\"scan'208\";a=\"226795510\""],"X-ExtLoop1":"1","From":"Emil Tantilov <emil.s.tantilov@intel.com>","To":"intel-wired-lan@lists.osuosl.org","Cc":"netdev@vger.kernel.org,\n\tprzemyslaw.kitszel@intel.com,\n\tjay.bhat@intel.com,\n\tivan.d.barrera@intel.com,\n\taleksandr.loktionov@intel.com,\n\tlarysa.zaremba@intel.com,\n\tanthony.l.nguyen@intel.com,\n\tandrew+netdev@lunn.ch,\n\tdavem@davemloft.net,\n\tedumazet@google.com,\n\tkuba@kernel.org,\n\tpabeni@redhat.com,\n\taleksander.lobakin@intel.com,\n\tlinux-pci@vger.kernel.org,\n\tmadhu.chittim@intel.com,\n\tdecot@google.com,\n\twillemb@google.com,\n\tsheenamo@google.com,\n\tlukas@wunner.de","Subject":"[PATCH iwl-next v2 0/2] Introduce IDPF PCI callbacks","Date":"Mon, 13 Apr 2026 20:16:29 -0700","Message-Id":"<20260414031631.2107-1-emil.s.tantilov@intel.com>","X-Mailer":"git-send-email 2.17.2","Precedence":"bulk","X-Mailing-List":"linux-pci@vger.kernel.org","List-Id":"<linux-pci.vger.kernel.org>","List-Subscribe":"<mailto:linux-pci+subscribe@vger.kernel.org>","List-Unsubscribe":"<mailto:linux-pci+unsubscribe@vger.kernel.org>"},"content":"This series implements PCI callbacks for the purpose of handling FLR and\nPCI errors in the IDPF driver.\n\nThe first patch removes the conditional deinitialization of the mailbox in\nthe idpf_vc_core_deinit() function. Aside from being redundant, due to the\nshutdown of the mailbox after a reset is detected, the check was also\npreventing the driver from sending messages to stop and disable the vports\nand queues on FW side, which is needed for the prepare phase of the FLR\nhandling.\n\nThe second patch implements the PCI callbacks. The logic here follows\nthe reset handling done in idpf_init_hard_reset(), but is split in\nprepare and resume phases, where idpf_reset_prepare() stops all driver\noperations and the resume callback attempt to recover following the\nreset or the PCI error event.\n\nTesting hints:\n1. FLR via sysfs:\necho 1 > /sys/class/net/<ifname>/device/reset\n\nPreviously this would have been handled by idpf_init_hard_reset() as the\ndriver detects the reset. Now it will be done by the PCI err callbacks,\nso this is the easiest way to test the reset_prepare/resume path.\n\n2. PCI errors can be tested with aer-inject:\n./aer-inject -s 83:00.0 examples/<error_type>\n\n3. Stress testing can be done by combining various callbacks with the\nreset from step 1:\necho 1 > /sys/class/net/<if>/device/reset& ethtool -L <if> combined 8\nethtool -L <if> combined 16& echo 1 > /sys/class/net/<if>/device/reset\n\nChangelog:\nv1->v2:\n- Removed the call to pci_save_state() from idpf_pci_err_slot_reset(),\n  as it is no longer needed after pci_restore_state(). Suggested by\n  Lukas Wunner.\n\nv1:\nhttps://lore.kernel.org/netdev/20260411003959.30959-1-emil.s.tantilov@intel.com/\n\nEmil Tantilov (2):\n  idpf: remove conditonal MBX deinit from idpf_vc_core_deinit()\n  idpf: implement pci error handlers\n\n drivers/net/ethernet/intel/idpf/idpf.h        |   3 +\n drivers/net/ethernet/intel/idpf/idpf_lib.c    |  13 +-\n drivers/net/ethernet/intel/idpf/idpf_main.c   | 112 ++++++++++++++++++\n .../net/ethernet/intel/idpf/idpf_virtchnl.c   |  11 +-\n 4 files changed, 127 insertions(+), 12 deletions(-)"}