From nobody Sun Feb 8 21:07:16 2026 Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.12]) (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 CB3B0199924; Tue, 5 Aug 2025 01:28:13 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=198.175.65.12 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1754357295; cv=none; b=UZ9qWQPcY+L18Bi1PJSZUd9lQi5d9abhBwtMqyWZ+8TCw6APGy8FopKE+n7C2kgqQseVh3djiChLjjIfPeSAky0Vszfi+6gcj5daV0R5JYtoh8wupQkuGySJ0cHOYSFNrlY3YBF2kqTMXUaz8ORl5sqLjweH9Hf5w6jpjr9JVqw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1754357295; c=relaxed/simple; bh=IPYPIh8ls036r5dFdmKaGbGjopokvguBWp4n7+ERrDo=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=DNE6wvdnUgh+jAzRG3Q8Cx72Q7oFtm/fTEZBdN9P76UPCO0Xy7+FwMPOQ7I/nBP9QsOLur8lF2d1nxbT3IHqz7+TS3XBXdKS1WKEFrsBeEmR4MtyRzxEfjNYVAKEtiWF55PGiAuOCVTl5M8H30USW+VEl9sqPTkHVNTZhu+atpY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com; spf=pass smtp.mailfrom=intel.com; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b=YpX8XAcK; arc=none smtp.client-ip=198.175.65.12 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=intel.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b="YpX8XAcK" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1754357294; x=1785893294; h=from:date:subject:mime-version:content-transfer-encoding: message-id:references:in-reply-to:to:cc; bh=IPYPIh8ls036r5dFdmKaGbGjopokvguBWp4n7+ERrDo=; b=YpX8XAcK7v+VOT28m8ECjZqSKnFprQaI8qqBP5Wof0GB5K5pRwuFhzrl yzM61bxovDhG4CEd5IJL09FgQwV/IntkJpQ17iY6HtgmpACZimCR9/bYd IUniEIfhnieLYJcZrAoXxHulAoHw60Hb604eETw3vNjce6u7Jfnx5QfZA BHIVD7SCKbOZD3lmdIUPMUNuyLtAhFfVY2FjSgPCs17ZuBasxgek8Mxpq a+S4m+2L6o+bOSaPuAIId0RK515TblNOyWGkr4qoxINuJnVoeRaKQDUGB cEw6OBWrDfaex8kGQHcUlDdVmK3M++M2xUYpIIODnW6eIh5cYIcsPjuje g==; X-CSE-ConnectionGUID: 85PFfl3nQPmNChD9KOiPvQ== X-CSE-MsgGUID: z1lB5UzZSB+mMr4sC/6E2Q== X-IronPort-AV: E=McAfee;i="6800,10657,11512"; a="68085351" X-IronPort-AV: E=Sophos;i="6.17,265,1747724400"; d="scan'208";a="68085351" Received: from orviesa005.jf.intel.com ([10.64.159.145]) by orvoesa104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 04 Aug 2025 18:28:11 -0700 X-CSE-ConnectionGUID: ElpJFVpAQzeTC+5O7FTFHw== X-CSE-MsgGUID: upiuQnaaQYSJMFJXjMJDag== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.17,265,1747724400"; d="scan'208";a="169699537" Received: from vcostago-mobl3.jf.intel.com (HELO [10.98.32.147]) ([10.98.32.147]) by orviesa005-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 04 Aug 2025 18:28:11 -0700 From: Vinicius Costa Gomes Date: Mon, 04 Aug 2025 18:27:52 -0700 Subject: [PATCH 1/9] dmaengine: idxd: Fix lockdep warnings when calling idxd_device_config() 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="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250804-idxd-fix-flr-on-kernel-queues-v3-v1-1-4e020fbf52c1@intel.com> References: <20250804-idxd-fix-flr-on-kernel-queues-v3-v1-0-4e020fbf52c1@intel.com> In-Reply-To: <20250804-idxd-fix-flr-on-kernel-queues-v3-v1-0-4e020fbf52c1@intel.com> To: Dave Jiang , Vinod Koul , Fenghua Yu , Dan Williams Cc: dmaengine@vger.kernel.org, linux-kernel@vger.kernel.org, Vinicius Costa Gomes X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1754357291; l=1369; i=vinicius.gomes@intel.com; s=20230921; h=from:subject:message-id; bh=IPYPIh8ls036r5dFdmKaGbGjopokvguBWp4n7+ERrDo=; b=h+9RiBZLGSMkxRSSd0PfqobFOXuB2wNiYH8wtMHju3FWWUkMqVwy7cvQe87YnTH7RhFeJrTib FnOvkuUuK0TAjcT1u6FMqFd6ndv9xpeJwo1vX5Y++v2+5hjBJb4wh4V X-Developer-Key: i=vinicius.gomes@intel.com; a=ed25519; pk=aJkrtgqgT6TZ8iIHSG8/rTPsmlYnjMrUjCsMYvCzntk= idxd_device_config() should only be called with idxd->dev_lock held. Hold the lock to the calls that were missing. Signed-off-by: Vinicius Costa Gomes --- drivers/dma/idxd/init.c | 2 ++ drivers/dma/idxd/irq.c | 2 ++ 2 files changed, 4 insertions(+) diff --git a/drivers/dma/idxd/init.c b/drivers/dma/idxd/init.c index 35bdefd3728bb851beb0f235fae7c6d71bd59239..d828d352ab008127e5e442e7072= c9d5df0f2c6cf 100644 --- a/drivers/dma/idxd/init.c +++ b/drivers/dma/idxd/init.c @@ -1091,7 +1091,9 @@ static void idxd_reset_done(struct pci_dev *pdev) =20 /* Re-configure IDXD device if allowed. */ if (test_bit(IDXD_FLAG_CONFIGURABLE, &idxd->flags)) { + spin_lock(&idxd->dev_lock); rc =3D idxd_device_config(idxd); + spin_unlock(&idxd->dev_lock); if (rc < 0) { dev_err(dev, "HALT: %s config fails\n", idxd_name); goto out; diff --git a/drivers/dma/idxd/irq.c b/drivers/dma/idxd/irq.c index 1107db3ce0a3a65246bd0d9b1f96e99c9fa3def6..74059fe43fafeb930f58db21d38= 24f62b095b968 100644 --- a/drivers/dma/idxd/irq.c +++ b/drivers/dma/idxd/irq.c @@ -36,7 +36,9 @@ static void idxd_device_reinit(struct work_struct *work) int rc, i; =20 idxd_device_reset(idxd); + spin_lock(&idxd->dev_lock); rc =3D idxd_device_config(idxd); + spin_unlock(&idxd->dev_lock); if (rc < 0) goto out; =20 --=20 2.50.1 From nobody Sun Feb 8 21:07:16 2026 Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.12]) (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 2C1DC19C553; Tue, 5 Aug 2025 01:28:13 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=198.175.65.12 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1754357295; cv=none; b=E+tcPIpvklc/YoUB2VC7ZeFbrJcK9iJr1eedycABUOw2k46M6UvlCec30UBqZWVJNtrPnJVtY6QMdV/9izRhgBUZ8rXQ/4zdlYmYzi18mxl8qoYhg6KK9ojLLldupZRJfYzQyowTmeaGJ3q7IRnKMWWe+h/jFZ4esQXVtKn7qF0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1754357295; c=relaxed/simple; bh=GFgYukOaeMbxzvvbb9mGCIu7IxHd36cdjEq9BtBbyCc=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=LSIhXOn0DNlGrrUUkj6FudqPalm6H50Kr5eaCceXeX8C9bjWz2hu2sbO+4p7Z/FxHf6Pn2So8djvS4ny626VpJjxZZpw9p2U1BOStoDpcz8s5Ea9AgfSZDucPSPQi5dyd1NO+iVezdyXpKkv6qjgh8GY6eVcplEMjfRBQS/RCr8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com; spf=pass smtp.mailfrom=intel.com; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b=HuZU02I2; arc=none smtp.client-ip=198.175.65.12 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=intel.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b="HuZU02I2" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1754357294; x=1785893294; h=from:date:subject:mime-version:content-transfer-encoding: message-id:references:in-reply-to:to:cc; bh=GFgYukOaeMbxzvvbb9mGCIu7IxHd36cdjEq9BtBbyCc=; b=HuZU02I2N2miqst5daKNtGyzZcIdm/Fe3nD1NsT8S2k9Spj0anlddpn3 hWipy/3qw5IwEsH0WkA8iAG3/WoqsCn3EdlEKRS/IYEBfubBNTSRYnlXe McSx7Dr8L7KgZ+leaNv/cNtTgpvCa4O6x+gx70BVNZM04Tv3RsmWsAuck YFT1HicRdd/cLxr4yDw8dx9tsUY62XNL2Yvc0F7AwapqkXevDGxMqRLDf IlLhNQMmfHsCGf19G1qEPzu8n0ot3Vd3AZb2CyH//DT+eLgHF/EdYuEuW KYZwD4K107ROqYErIstWg/yw/YbrtKy6aUgQPVne+HIWz1f79B4UlzpIL g==; X-CSE-ConnectionGUID: 8wtaNaPySE2bP6ZrlzNS9g== X-CSE-MsgGUID: MTwBvq0sRoOSyivW2rOLIw== X-IronPort-AV: E=McAfee;i="6800,10657,11512"; a="68085353" X-IronPort-AV: E=Sophos;i="6.17,265,1747724400"; d="scan'208";a="68085353" Received: from orviesa005.jf.intel.com ([10.64.159.145]) by orvoesa104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 04 Aug 2025 18:28:11 -0700 X-CSE-ConnectionGUID: Yei+M1+1Rg2sktxdhi8rvQ== X-CSE-MsgGUID: /RNu/xleTjG5d+h+ZC/68A== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.17,265,1747724400"; d="scan'208";a="169699542" Received: from vcostago-mobl3.jf.intel.com (HELO [10.98.32.147]) ([10.98.32.147]) by orviesa005-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 04 Aug 2025 18:28:11 -0700 From: Vinicius Costa Gomes Date: Mon, 04 Aug 2025 18:27:53 -0700 Subject: [PATCH 2/9] dmaengine: idxd: Fix crash when the event log is disabled 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="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250804-idxd-fix-flr-on-kernel-queues-v3-v1-2-4e020fbf52c1@intel.com> References: <20250804-idxd-fix-flr-on-kernel-queues-v3-v1-0-4e020fbf52c1@intel.com> In-Reply-To: <20250804-idxd-fix-flr-on-kernel-queues-v3-v1-0-4e020fbf52c1@intel.com> To: Dave Jiang , Vinod Koul , Fenghua Yu , Dan Williams Cc: dmaengine@vger.kernel.org, linux-kernel@vger.kernel.org, Vinicius Costa Gomes X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1754357291; l=1684; i=vinicius.gomes@intel.com; s=20230921; h=from:subject:message-id; bh=GFgYukOaeMbxzvvbb9mGCIu7IxHd36cdjEq9BtBbyCc=; b=L53BApcXs9pDGTGNUNUjrNRsqZDELZB2MdBBrBx5v230e2DSSC/bBz2KeIVq1CpFVXlRaiheF 57d6y/w2/71AAWaQdfHmTgrB9S3q7bLIWTKwBeijq25v31MFe5LKcOq X-Developer-Key: i=vinicius.gomes@intel.com; a=ed25519; pk=aJkrtgqgT6TZ8iIHSG8/rTPsmlYnjMrUjCsMYvCzntk= If reporting errors to the event log is not supported by the hardware, and an error that causes Field Level Reset (FLR) is received, the driver will try to restore the event log even if it was not allocated. Also, only try to free the event log if it was properly allocated. Fixes: 6078a315aec1 ("dmaengine: idxd: Add idxd_device_config_save() and id= xd_device_config_restore() helpers") Signed-off-by: Vinicius Costa Gomes Reviewed-by: Dave Jiang --- drivers/dma/idxd/device.c | 3 +++ drivers/dma/idxd/init.c | 3 ++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/drivers/dma/idxd/device.c b/drivers/dma/idxd/device.c index 5cf419fe6b4645337cf361305ca066d34763b3c2..c599a902767ee9904d75a0510a9= 11596e35a259b 100644 --- a/drivers/dma/idxd/device.c +++ b/drivers/dma/idxd/device.c @@ -815,6 +815,9 @@ static void idxd_device_evl_free(struct idxd_device *id= xd) struct device *dev =3D &idxd->pdev->dev; struct idxd_evl *evl =3D idxd->evl; =20 + if (!evl) + return; + gencfg.bits =3D ioread32(idxd->reg_base + IDXD_GENCFG_OFFSET); if (!gencfg.evl_en) return; diff --git a/drivers/dma/idxd/init.c b/drivers/dma/idxd/init.c index d828d352ab008127e5e442e7072c9d5df0f2c6cf..a58b8cdbfa60ba9f00b91a737df= 01517885bc41a 100644 --- a/drivers/dma/idxd/init.c +++ b/drivers/dma/idxd/init.c @@ -959,7 +959,8 @@ static void idxd_device_config_restore(struct idxd_devi= ce *idxd, =20 idxd->rdbuf_limit =3D idxd_saved->saved_idxd.rdbuf_limit; =20 - idxd->evl->size =3D saved_evl->size; + if (idxd->evl) + idxd->evl->size =3D saved_evl->size; =20 for (i =3D 0; i < idxd->max_groups; i++) { struct idxd_group *saved_group, *group; --=20 2.50.1 From nobody Sun Feb 8 21:07:16 2026 Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.12]) (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 696E01A3166; Tue, 5 Aug 2025 01:28:15 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=198.175.65.12 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1754357296; cv=none; b=lZcTFL/jbO4qOWIhI7p/6Q5s26lO1w0of61vGAOpfmSmfpR9c1TeDIImDL8JZhH1xFjHd9KOPGZvPGZ+V5d31LLy/JkpF6PLs0+w/aafzDPreyLcR0pr/c/U7dNa7hzgjLfm5O5dQeeo+AGxwmJe4NU46zpRM/fjIveGQS8tb/o= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1754357296; c=relaxed/simple; bh=4cLCVz8K+Y02Y5GTc8PnvAxHDjxzkvsx4m/X+SySBxc=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=CWix1QvPEkGh9eyxVqb8rWKEr2/76/ZRnMyO7YUC0X9Ba0NVET7gj2YyMpop825pHxP4ws4mOzASaKPU5kyQzHBYML742pHQgkbrTQPkOyDMSyhsmBSF655nocxOfHz0VLykNYJ/98veRuucfZ7es3rl89zMLzN4J134w8bVpTA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com; spf=pass smtp.mailfrom=intel.com; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b=DxOVxVTh; arc=none smtp.client-ip=198.175.65.12 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=intel.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b="DxOVxVTh" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1754357295; x=1785893295; h=from:date:subject:mime-version:content-transfer-encoding: message-id:references:in-reply-to:to:cc; bh=4cLCVz8K+Y02Y5GTc8PnvAxHDjxzkvsx4m/X+SySBxc=; b=DxOVxVThp4t5TK4G+IdNc8XfG2P3DZuYf3XRgbCnIcoIXpmJbjQp4OPP Mg+saBBuQREtmvzoWSPr4FUXdyvVkVFVe52VVvk1OxbSkB2seSaSYCXbR 2r8Zhgt0wlgdTMEmzEDUXRV+nATmYRZhbHoEiMtjy4uFlinkZJ90dva5O Y6jndrT3B0MAr6ewOV+3hCIo408ytpu4x7iPxhm6xaDUvYlxf3S5wuVb9 9//hTPpW9Lq8KfMcGrs+nroPDZ2ao6HyL4lQZJC/wSaYhPz5W/P3nSQQO 6wVCxgAj2Rzeyah6iLoUJG14K1OHiOzHIp2rYEOjmcsbtxuSBWk3QpFPp A==; X-CSE-ConnectionGUID: Dh0TTjFATey0UptuZLxwzw== X-CSE-MsgGUID: M+GoRFJaT9evo4juAk1BEA== X-IronPort-AV: E=McAfee;i="6800,10657,11512"; a="68085355" X-IronPort-AV: E=Sophos;i="6.17,265,1747724400"; d="scan'208";a="68085355" Received: from orviesa005.jf.intel.com ([10.64.159.145]) by orvoesa104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 04 Aug 2025 18:28:11 -0700 X-CSE-ConnectionGUID: IvRz556WQ1+fuIBSDRvZ+g== X-CSE-MsgGUID: 4sLGXkQySsqvoYKvB9gbTw== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.17,265,1747724400"; d="scan'208";a="169699545" Received: from vcostago-mobl3.jf.intel.com (HELO [10.98.32.147]) ([10.98.32.147]) by orviesa005-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 04 Aug 2025 18:28:11 -0700 From: Vinicius Costa Gomes Date: Mon, 04 Aug 2025 18:27:54 -0700 Subject: [PATCH 3/9] dmaengine: idxd: Fix possible invalid memory access after FLR 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="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250804-idxd-fix-flr-on-kernel-queues-v3-v1-3-4e020fbf52c1@intel.com> References: <20250804-idxd-fix-flr-on-kernel-queues-v3-v1-0-4e020fbf52c1@intel.com> In-Reply-To: <20250804-idxd-fix-flr-on-kernel-queues-v3-v1-0-4e020fbf52c1@intel.com> To: Dave Jiang , Vinod Koul , Fenghua Yu , Dan Williams Cc: dmaengine@vger.kernel.org, linux-kernel@vger.kernel.org, Vinicius Costa Gomes X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1754357291; l=962; i=vinicius.gomes@intel.com; s=20230921; h=from:subject:message-id; bh=4cLCVz8K+Y02Y5GTc8PnvAxHDjxzkvsx4m/X+SySBxc=; b=KZPoJJ9EM2QFEaUnt2h/HHubG7oJKnk/UD6efNVKskN38S35gz3j79TS29Tgm+8nZFLEOtk/j TjnAWoPCBtUBb8yoVg9YMbiuMBtwJfq58Tx7ARv20hqvdPw6R3kJI4N X-Developer-Key: i=vinicius.gomes@intel.com; a=ed25519; pk=aJkrtgqgT6TZ8iIHSG8/rTPsmlYnjMrUjCsMYvCzntk= In the case that the first Field Level Reset (FLR) concludes correctly, but in the second FLR the scratch area for the saved configuration cannot be allocated, it's possible for a invalid memory access to happen. Always set the deallocated scratch area to NULL after FLR completes. Fixes: 98d187a98903 ("dmaengine: idxd: Enable Function Level Reset (FLR) fo= r halt") Signed-off-by: Vinicius Costa Gomes --- drivers/dma/idxd/init.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/dma/idxd/init.c b/drivers/dma/idxd/init.c index a58b8cdbfa60ba9f00b91a737df01517885bc41a..31e00af136a7e13887d3ffd00ef= bb05864712a80 100644 --- a/drivers/dma/idxd/init.c +++ b/drivers/dma/idxd/init.c @@ -1136,6 +1136,7 @@ static void idxd_reset_done(struct pci_dev *pdev) } out: kfree(idxd->idxd_saved); + idxd->idxd_saved =3D NULL; } =20 static const struct pci_error_handlers idxd_error_handler =3D { --=20 2.50.1 From nobody Sun Feb 8 21:07:16 2026 Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.12]) (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 D1C091B5EB5; Tue, 5 Aug 2025 01:28:15 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=198.175.65.12 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1754357297; cv=none; b=eIF4O+liSTXea4NExadtnheJfjdTOrbfXEzuM+xW9B6+gb/CPJMZtcX+4J+/1Hg6I+akwQeFM2mvfgLFaby9tZk+bl5PjonlTOIbbpPRizt4WfArZG8fegzGpVAgwUq0TdnerPh/ttGfgfc3ltTT/1CIXqjK5Hgi7NJAS+uR0Ps= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1754357297; c=relaxed/simple; bh=/0sZPC3NvpgLVkg52MwyQy6CZ79wB7OdOMTS9ZWTHf4=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=IPOdFdhE+G4Zf2pjmiGhw7R2DbMqVJKTAeyt5e08FKO1oRQ74g2RMOfpzTBdu7htUdPh9uH+fTlmOBk6AJssJcr39NOjrIBDmB2oC0/ZCW1jrc5v8vlMh8EkcUYHkcwYXu/rbAZyWdLHMoBxugjE3mx1hdLQhPRF//gVu56Ng+I= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com; spf=pass smtp.mailfrom=intel.com; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b=aildRGym; arc=none smtp.client-ip=198.175.65.12 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=intel.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b="aildRGym" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1754357296; x=1785893296; h=from:date:subject:mime-version:content-transfer-encoding: message-id:references:in-reply-to:to:cc; bh=/0sZPC3NvpgLVkg52MwyQy6CZ79wB7OdOMTS9ZWTHf4=; b=aildRGymcXkGvmPoKC+czCkVrBhpF+XMt/wpWOvvcXJtVRFB6Fj2GWH6 XTA5PqCyStHjAAU/qtWqOrp1tZRG54mFbzhkUjCABMUowIg1ppSBR26sW oafsei0wKLTiAMlIXb0wWsqsrXpgXEfuiYpbigUWxfV2Ro+dL1aSncjMW GqZy/hOXQsLAlDq02v8EYFW2u/riBNKOpeVhywOcSjrvXG2rjGct0Uako 3klnRwpmrfhtdcjAvXzWn0lOT4RaKphTpAKNmhdMuHl4O25dVxuT+kr8t F1Ght/tpF3xtXfDz8xHPiPwI7vEORnZz0eOc8F0TIfPG2ybL5H20HWlpU A==; X-CSE-ConnectionGUID: 8aBaCEq9SNiEWtc/z6iZzg== X-CSE-MsgGUID: kC4vUwBsQI6bh53uVtxy9w== X-IronPort-AV: E=McAfee;i="6800,10657,11512"; a="68085357" X-IronPort-AV: E=Sophos;i="6.17,265,1747724400"; d="scan'208";a="68085357" Received: from orviesa005.jf.intel.com ([10.64.159.145]) by orvoesa104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 04 Aug 2025 18:28:11 -0700 X-CSE-ConnectionGUID: ar6VPSbpSI6ftHlhRjuPJg== X-CSE-MsgGUID: zTTs4lx1QweC8B9CGc4avg== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.17,265,1747724400"; d="scan'208";a="169699550" Received: from vcostago-mobl3.jf.intel.com (HELO [10.98.32.147]) ([10.98.32.147]) by orviesa005-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 04 Aug 2025 18:28:11 -0700 From: Vinicius Costa Gomes Date: Mon, 04 Aug 2025 18:27:55 -0700 Subject: [PATCH 4/9] dmaengine: idxd: Flush kernel workqueues on Field Level Reset 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="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250804-idxd-fix-flr-on-kernel-queues-v3-v1-4-4e020fbf52c1@intel.com> References: <20250804-idxd-fix-flr-on-kernel-queues-v3-v1-0-4e020fbf52c1@intel.com> In-Reply-To: <20250804-idxd-fix-flr-on-kernel-queues-v3-v1-0-4e020fbf52c1@intel.com> To: Dave Jiang , Vinod Koul , Fenghua Yu , Dan Williams Cc: dmaengine@vger.kernel.org, linux-kernel@vger.kernel.org, Vinicius Costa Gomes X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1754357291; l=3286; i=vinicius.gomes@intel.com; s=20230921; h=from:subject:message-id; bh=/0sZPC3NvpgLVkg52MwyQy6CZ79wB7OdOMTS9ZWTHf4=; b=j4YzlOz6bwdwVPk0wMiHgTZ4fgMUorP6fqRX0JTCSprw+af0UYBnTCSpHlfcWm8yCWXjxCYrY +Twpm+6xCkNBa1kZwBR6XGmIqPWGL5dbcf47jw6lud8bxXiobVZHE64 X-Developer-Key: i=vinicius.gomes@intel.com; a=ed25519; pk=aJkrtgqgT6TZ8iIHSG8/rTPsmlYnjMrUjCsMYvCzntk= When a Field Level Reset (FLR) happens terminate the pending descriptors that were issued by in-kernel users and disable the interrupts associated with those. They will be re-enabled after FLR finishes. Signed-off-by: Vinicius Costa Gomes --- drivers/dma/idxd/device.c | 24 ++++++++++++++++++++++++ drivers/dma/idxd/idxd.h | 1 + drivers/dma/idxd/irq.c | 5 +++++ 3 files changed, 30 insertions(+) diff --git a/drivers/dma/idxd/device.c b/drivers/dma/idxd/device.c index c599a902767ee9904d75a0510a911596e35a259b..287cf3bf1f5a2efdc9037968e9a= 4eed506e489c3 100644 --- a/drivers/dma/idxd/device.c +++ b/drivers/dma/idxd/device.c @@ -1315,6 +1315,11 @@ void idxd_wq_free_irq(struct idxd_wq *wq) =20 free_irq(ie->vector, ie); idxd_flush_pending_descs(ie); + + /* The interrupt might have been already released by FLR */ + if (ie->int_handle =3D=3D INVALID_INT_HANDLE) + return; + if (idxd->request_int_handles) idxd_device_release_int_handle(idxd, ie->int_handle, IDXD_IRQ_MSIX); idxd_device_clear_perm_entry(idxd, ie); @@ -1323,6 +1328,25 @@ void idxd_wq_free_irq(struct idxd_wq *wq) ie->pasid =3D IOMMU_PASID_INVALID; } =20 +void idxd_wqs_flush_descs(struct idxd_device *idxd) +{ + struct idxd_wq *wq; + int i; + + for (i =3D 0; i < idxd->max_wqs; i++) { + wq =3D idxd->wqs[i]; + if (wq->state =3D=3D IDXD_WQ_ENABLED && wq->type =3D=3D IDXD_WQT_KERNEL)= { + struct idxd_irq_entry *ie =3D &wq->ie; + + idxd_flush_pending_descs(ie); + if (idxd->request_int_handles) + idxd_device_release_int_handle(idxd, ie->int_handle, IDXD_IRQ_MSIX); + idxd_device_clear_perm_entry(idxd, ie); + ie->int_handle =3D INVALID_INT_HANDLE; + } + } +} + int idxd_wq_request_irq(struct idxd_wq *wq) { struct idxd_device *idxd =3D wq->idxd; diff --git a/drivers/dma/idxd/idxd.h b/drivers/dma/idxd/idxd.h index 74e6695881e6f1684512601ca2c2ee241aaf0a78..6ccca3c56556dbffe0a7c983a2f= 11f6c73ff2bfd 100644 --- a/drivers/dma/idxd/idxd.h +++ b/drivers/dma/idxd/idxd.h @@ -737,6 +737,7 @@ static inline void idxd_desc_complete(struct idxd_desc = *desc, int idxd_register_devices(struct idxd_device *idxd); void idxd_unregister_devices(struct idxd_device *idxd); void idxd_wqs_quiesce(struct idxd_device *idxd); +void idxd_wqs_flush_descs(struct idxd_device *idxd); bool idxd_queue_int_handle_resubmit(struct idxd_desc *desc); void multi_u64_to_bmap(unsigned long *bmap, u64 *val, int count); int idxd_load_iaa_device_defaults(struct idxd_device *idxd); diff --git a/drivers/dma/idxd/irq.c b/drivers/dma/idxd/irq.c index 74059fe43fafeb930f58db21d3824f62b095b968..26547586fcfaa1b9d244b678bf8= e209b7b14d35a 100644 --- a/drivers/dma/idxd/irq.c +++ b/drivers/dma/idxd/irq.c @@ -417,6 +417,11 @@ static irqreturn_t idxd_halt(struct idxd_device *idxd) } else if (gensts.reset_type =3D=3D IDXD_DEVICE_RESET_FLR) { idxd->state =3D IDXD_DEV_HALTED; idxd_mask_error_interrupts(idxd); + /* Flush all pending descriptors, and disable + * interrupts, they will be re-enabled when FLR + * concludes. + */ + idxd_wqs_flush_descs(idxd); dev_dbg(&idxd->pdev->dev, "idxd halted, doing FLR. After FLR, configs are restored\n"); INIT_WORK(&idxd->work, idxd_device_flr); --=20 2.50.1 From nobody Sun Feb 8 21:07:16 2026 Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.12]) (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 A79551B043C; Tue, 5 Aug 2025 01:28:15 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=198.175.65.12 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1754357297; cv=none; b=HdQoHse9vd/TkpZ9ld4RVezZErKE+OHmYU/ygPOQ37ZspKvtPVh2nVGOcVidDdEl8+JGpwJHqF8iGjQ0VY4cQ+DO2wLNQs5CnWtSK2k42hCCDfBVMi6ionezv+wjVwFCcNRleJkf4/2E3ksmTGDD2I8VYZU+KT2X0oxTmVVdAqI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1754357297; c=relaxed/simple; bh=JMS2LYeIWmEtqp+NnkcPw0v2TmLdu2lQE4ttQDJh8EA=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=iIjdK6ZbSaB1vRGDWYUx3rE90oaqJv56F3Y9I6mqJynyQb5w1nvRhueUk5Q9//kyzpAckY2/GRVu8bcZaMqmAYl4mSWL65eNfEzeOzfyOlKoXf1glX55+OtLWpHRtIUf45EHkIQZpdhzYDGw130SNpSm2AnCj3Se+5sVVRPvxmw= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com; spf=pass smtp.mailfrom=intel.com; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b=l6sGuweE; arc=none smtp.client-ip=198.175.65.12 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=intel.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b="l6sGuweE" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1754357295; x=1785893295; h=from:date:subject:mime-version:content-transfer-encoding: message-id:references:in-reply-to:to:cc; bh=JMS2LYeIWmEtqp+NnkcPw0v2TmLdu2lQE4ttQDJh8EA=; b=l6sGuweE1Ti3+kIVhfVZEKPO9+1cp0tzrDlJrN+h+7QU9mssz3tA/0DU h+KbwtGYruW76DESVyGWx8bNrTVsUCn45i5KdCvKeS9dC9X1gvdRP+acl Sj6AK+Oa3LKpP9Zt3P7xhxcGCTbGQ6E225RI0fBR5E/h0ibuK7QcbsRWg QvQEFGsU3nyDvpLorlpocOy1Vfx51IXuHateqketI6vt+OjQTAmytM7tE UU+MY8F0J/RGXA4XshxcLHZSXXSzTLZmBPHnhjUlP8z9PSOIanwda3e2x C1xGY4GptVP3pw2CV7NUqjLIIT6igwyCyPqlOnysJgSP/xGtCbWrJF5Nh w==; X-CSE-ConnectionGUID: U1av+XVoROCqbJGOdA+XCw== X-CSE-MsgGUID: m8qyL/41Sv6QGitgAdRlYA== X-IronPort-AV: E=McAfee;i="6800,10657,11512"; a="68085359" X-IronPort-AV: E=Sophos;i="6.17,265,1747724400"; d="scan'208";a="68085359" Received: from orviesa005.jf.intel.com ([10.64.159.145]) by orvoesa104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 04 Aug 2025 18:28:11 -0700 X-CSE-ConnectionGUID: TWmqdfBgRWKkZZ12fTEzlQ== X-CSE-MsgGUID: a/wrVA3WRfmvMZ0ZvsOkfQ== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.17,265,1747724400"; d="scan'208";a="169699554" Received: from vcostago-mobl3.jf.intel.com (HELO [10.98.32.147]) ([10.98.32.147]) by orviesa005-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 04 Aug 2025 18:28:11 -0700 From: Vinicius Costa Gomes Date: Mon, 04 Aug 2025 18:27:56 -0700 Subject: [PATCH 5/9] dmaengine: idxd: Allow DMA clients to empty the pending queue 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="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250804-idxd-fix-flr-on-kernel-queues-v3-v1-5-4e020fbf52c1@intel.com> References: <20250804-idxd-fix-flr-on-kernel-queues-v3-v1-0-4e020fbf52c1@intel.com> In-Reply-To: <20250804-idxd-fix-flr-on-kernel-queues-v3-v1-0-4e020fbf52c1@intel.com> To: Dave Jiang , Vinod Koul , Fenghua Yu , Dan Williams Cc: dmaengine@vger.kernel.org, linux-kernel@vger.kernel.org, Vinicius Costa Gomes X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1754357291; l=1213; i=vinicius.gomes@intel.com; s=20230921; h=from:subject:message-id; bh=JMS2LYeIWmEtqp+NnkcPw0v2TmLdu2lQE4ttQDJh8EA=; b=6ZE7bcWpAuRpU+WG0zkCLCzOVH4nmAQUOwkvctGJihtale7M2ep3SLvUeVdRhxHeiPGqwWz8e tSzaGiQl0FiDxxjKR1NPbj9bqFeUhSqpv7NJaOdcdDgdvA8zDtfyeu3 X-Developer-Key: i=vinicius.gomes@intel.com; a=ed25519; pk=aJkrtgqgT6TZ8iIHSG8/rTPsmlYnjMrUjCsMYvCzntk= Send a request to drain all pending commands from the hardware queue when the DMA clients request. Signed-off-by: Vinicius Costa Gomes --- drivers/dma/idxd/dma.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/drivers/dma/idxd/dma.c b/drivers/dma/idxd/dma.c index dbecd699237e3ac5a73b49ed2097a897abc9a043..10356a00cbdfc2ddfeea629aa74= 9c40e7eec0a56 100644 --- a/drivers/dma/idxd/dma.c +++ b/drivers/dma/idxd/dma.c @@ -194,6 +194,15 @@ static void idxd_dma_release(struct dma_device *device) kfree(idxd_dma); } =20 +static int idxd_dma_terminate_all(struct dma_chan *c) +{ + struct idxd_wq *wq =3D to_idxd_wq(c); + + idxd_wq_drain(wq); + + return 0; +} + int idxd_register_dma_device(struct idxd_device *idxd) { struct idxd_dma_dev *idxd_dma; @@ -224,6 +233,7 @@ int idxd_register_dma_device(struct idxd_device *idxd) dma->device_issue_pending =3D idxd_dma_issue_pending; dma->device_alloc_chan_resources =3D idxd_dma_alloc_chan_resources; dma->device_free_chan_resources =3D idxd_dma_free_chan_resources; + dma->device_terminate_all =3D idxd_dma_terminate_all; =20 rc =3D dma_async_device_register(dma); if (rc < 0) { --=20 2.50.1 From nobody Sun Feb 8 21:07:16 2026 Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.12]) (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 E85011D5AB7; Tue, 5 Aug 2025 01:28:16 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=198.175.65.12 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1754357298; cv=none; b=nFh/0wyjgStHYJBngqJc4tb5PWe3cTUdb/+dFVisx8HzoNeawFqf1fDbIKhd0yoemKj6OnVPkDtvmSY32qG1MTlahIlHqeOrx6imYGFGMVYHVXgBnbcCIi4CRYcIgMkOo3VhQcdGTnisgIhd0PT5H0ZB3U/mdMwGd/ILIVDimUo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1754357298; c=relaxed/simple; bh=w2K9gcdNs0x+bQQ4NQocswwAKqj6gCP5v/62LBm0zi8=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=eT3opI6QNpTWhzlZDU4SdPFui/RSTlxRG/5CjY33cUq5+HZD7OEMRDEOJgD5aF8ruVoFV3CgQjC5ZrYH7PSqyCa8GL9qjdMcjLw8f1eUwHe6zAZzRf/oLReOdSjDf+DsU0o9hJrLbh93yImEG4uCvwkL44m5YbG7K/4kumBQxbs= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com; spf=pass smtp.mailfrom=intel.com; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b=foc0feWG; arc=none smtp.client-ip=198.175.65.12 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=intel.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b="foc0feWG" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1754357297; x=1785893297; h=from:date:subject:mime-version:content-transfer-encoding: message-id:references:in-reply-to:to:cc; bh=w2K9gcdNs0x+bQQ4NQocswwAKqj6gCP5v/62LBm0zi8=; b=foc0feWGSg1nk8iMswKTELn+nc0Axww8brv0+cbMUuW5zocy1cjp7hHz GXme+uJV8WNre5RPZb91kkHZP+tBo1GOgd8RDM1tnLHJhZnZJ4tah8eqe WgYJQpZuBBMOo3QbwXpAJaExt90NNUOoNcgtN168GN0gfdkwfDWPqoIwl b1Rt5yGCxCdJDBP/KlP31/rWT7x8CG5NSLpVH/5TpM+p9PmnF1m3IWovk cfDTYmMVVpTGIotAe/l/E4X9Lm+AqXUfwxCRYvGqoP8YzYm0Olo1/NwPJ 5xBfTKa8VfOtsKso6NddCASbIa8s4ej60ZNOeB7B7+ng2enm1JaGTfKrj Q==; X-CSE-ConnectionGUID: w8Fa0wbRSuaxRhb0MQdmZQ== X-CSE-MsgGUID: E54q9k5NTtKlU1v+lYUcXQ== X-IronPort-AV: E=McAfee;i="6800,10657,11512"; a="68085361" X-IronPort-AV: E=Sophos;i="6.17,265,1747724400"; d="scan'208";a="68085361" Received: from orviesa005.jf.intel.com ([10.64.159.145]) by orvoesa104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 04 Aug 2025 18:28:11 -0700 X-CSE-ConnectionGUID: uW2rUZpkTei1lNKd2DN4lg== X-CSE-MsgGUID: akTtzs76Sdi3GSuT2ROH1w== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.17,265,1747724400"; d="scan'208";a="169699559" Received: from vcostago-mobl3.jf.intel.com (HELO [10.98.32.147]) ([10.98.32.147]) by orviesa005-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 04 Aug 2025 18:28:11 -0700 From: Vinicius Costa Gomes Date: Mon, 04 Aug 2025 18:27:57 -0700 Subject: [PATCH 6/9] dmaengine: idxd: Fix not releasing workqueue on .release() 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="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250804-idxd-fix-flr-on-kernel-queues-v3-v1-6-4e020fbf52c1@intel.com> References: <20250804-idxd-fix-flr-on-kernel-queues-v3-v1-0-4e020fbf52c1@intel.com> In-Reply-To: <20250804-idxd-fix-flr-on-kernel-queues-v3-v1-0-4e020fbf52c1@intel.com> To: Dave Jiang , Vinod Koul , Fenghua Yu , Dan Williams Cc: dmaengine@vger.kernel.org, linux-kernel@vger.kernel.org, Vinicius Costa Gomes X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1754357291; l=811; i=vinicius.gomes@intel.com; s=20230921; h=from:subject:message-id; bh=w2K9gcdNs0x+bQQ4NQocswwAKqj6gCP5v/62LBm0zi8=; b=cPOmR3w6vItxMTn+RqmUG+hX7v68fpY86f05lVvaKYdJMjnfhMyBm/bdZUMZwn7V4H1krynyv 5z+JLWPg4p6C5mY2YtY0xMfpBWWJJtMeEAdwJRFLqjVYwtsf9wJl/kq X-Developer-Key: i=vinicius.gomes@intel.com; a=ed25519; pk=aJkrtgqgT6TZ8iIHSG8/rTPsmlYnjMrUjCsMYvCzntk= The workqueue associated with an DSA/IAA device is not released when the object is freed. Fixes: 47c16ac27d4c ("dmaengine: idxd: fix idxd conf_dev 'struct device' li= fetime") Signed-off-by: Vinicius Costa Gomes --- drivers/dma/idxd/sysfs.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/dma/idxd/sysfs.c b/drivers/dma/idxd/sysfs.c index 9f0701021af0e6fbe3c3c04a0e336ee9cd094641..cdd7a59140d90c80f5837473962= 017114cd00b13 100644 --- a/drivers/dma/idxd/sysfs.c +++ b/drivers/dma/idxd/sysfs.c @@ -1812,6 +1812,7 @@ static void idxd_conf_device_release(struct device *d= ev) { struct idxd_device *idxd =3D confdev_to_idxd(dev); =20 + destroy_workqueue(idxd->wq); kfree(idxd->groups); bitmap_free(idxd->wq_enable_map); kfree(idxd->wqs); --=20 2.50.1 From nobody Sun Feb 8 21:07:16 2026 Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.12]) (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 492B71D63F3; Tue, 5 Aug 2025 01:28:17 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=198.175.65.12 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1754357298; cv=none; b=JwnJigGS7vUKJT6fg/15LDyNwtK4JZtOs0bCZImss5GtqweiFSOffp3oV8CZEkYjKF8GiXiA4WI778a07xmONK2WFCOBirhYih0PWNvFv87mEnpgleqx8xWurnIbBYgxe+nzbn2/IkbGuq1gVxxsE7l2+w2M/fBRzFOXMD7MR90= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1754357298; c=relaxed/simple; bh=brOAJglmHR2vUYwDHkc6YSZ1b2+Xgali//Fba7NVv5g=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=hxbF2nrsskSS/YZ9jV0Z4ZnVCxAwGI2ry9oOvnqSt6ConWcaWTL8HWCdQqmldeBsx1kEnUueeZBfFjkzERbnP/4L+KDhIliK7479L4dURVCoFblM9Tif8abdzAQVn+NFte1ZJOie9Og+eLLvxn32dB8NRYUFrMYWuUe1YFOX1vg= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com; spf=pass smtp.mailfrom=intel.com; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b=Jg6rzp8d; arc=none smtp.client-ip=198.175.65.12 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=intel.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b="Jg6rzp8d" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1754357297; x=1785893297; h=from:date:subject:mime-version:content-transfer-encoding: message-id:references:in-reply-to:to:cc; bh=brOAJglmHR2vUYwDHkc6YSZ1b2+Xgali//Fba7NVv5g=; b=Jg6rzp8dY1DegcA/lz9lM7qdxCeoN4NVPHnZJBLM4Wj4FbAfDdVI2Sni 54rCajN5NsRRqiooBj/4MBFemxZk7Aped1ia8Xi7/LYYzBwiHb2qmBGjU a/xwhS92aIZ/+w9x+VxDYNslp7PWDZrGcLH9U0jeUckXoDRnelMizi2+k VCqmuNAiWsZHypTtFXSVmj+b1QHTQWiboou+7GQszjX7f3OFMJlTLcneL b7I6O/i5oPOl5NoYynN5JUSgIj/G+rb14DJCfbIOMM58cjnloQm81dTfF CuQLuneT7Q+0KTp6ogGaysCVKsSwrKwB6ymrMIU1KHdVk18zMMU6hfmgN w==; X-CSE-ConnectionGUID: L/HUoLhbRyWtzI2fvmzWAQ== X-CSE-MsgGUID: V7ZfPhs4QemjUHhS+L2OXg== X-IronPort-AV: E=McAfee;i="6800,10657,11512"; a="68085364" X-IronPort-AV: E=Sophos;i="6.17,265,1747724400"; d="scan'208";a="68085364" Received: from orviesa005.jf.intel.com ([10.64.159.145]) by orvoesa104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 04 Aug 2025 18:28:11 -0700 X-CSE-ConnectionGUID: +iCXtbk2Qxq+AYk65qsuuQ== X-CSE-MsgGUID: pYadlK8GSIa6MF+NeaOiGg== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.17,265,1747724400"; d="scan'208";a="169699563" Received: from vcostago-mobl3.jf.intel.com (HELO [10.98.32.147]) ([10.98.32.147]) by orviesa005-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 04 Aug 2025 18:28:11 -0700 From: Vinicius Costa Gomes Date: Mon, 04 Aug 2025 18:27:58 -0700 Subject: [PATCH 7/9] dmaengine: idxd: Fix memory leak when a wq is reset 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="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250804-idxd-fix-flr-on-kernel-queues-v3-v1-7-4e020fbf52c1@intel.com> References: <20250804-idxd-fix-flr-on-kernel-queues-v3-v1-0-4e020fbf52c1@intel.com> In-Reply-To: <20250804-idxd-fix-flr-on-kernel-queues-v3-v1-0-4e020fbf52c1@intel.com> To: Dave Jiang , Vinod Koul , Fenghua Yu , Dan Williams Cc: dmaengine@vger.kernel.org, linux-kernel@vger.kernel.org, Vinicius Costa Gomes X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1754357291; l=1622; i=vinicius.gomes@intel.com; s=20230921; h=from:subject:message-id; bh=brOAJglmHR2vUYwDHkc6YSZ1b2+Xgali//Fba7NVv5g=; b=H3FI2D33ylGTw2yc2L0GXa2NQ6h/Oyu/pksnVPCgl33kRU12wPiHBU4mMVjxqeeQkfbvsuWV4 B5lIkfU2C+kCCDGjY1MwC02MfHgmcvNYs8HRTyWfGiLx2u5gB+dz+1c X-Developer-Key: i=vinicius.gomes@intel.com; a=ed25519; pk=aJkrtgqgT6TZ8iIHSG8/rTPsmlYnjMrUjCsMYvCzntk= idxd_wq_disable_cleanup() which is called from the reset path for a workqueue, sets the wq type to NONE, which for other parts of the driver mean that the wq is empty (all its resources were released). Only set the wq type to NONE after its resources are released. Fixes: da32b28c95a7 ("dmaengine: idxd: cleanup workqueue config after disab= ling") Signed-off-by: Vinicius Costa Gomes --- drivers/dma/idxd/device.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/drivers/dma/idxd/device.c b/drivers/dma/idxd/device.c index 287cf3bf1f5a2efdc9037968e9a4eed506e489c3..8f6afcba840ed7128259ad6b58b= 2fd967b0c151c 100644 --- a/drivers/dma/idxd/device.c +++ b/drivers/dma/idxd/device.c @@ -174,6 +174,7 @@ void idxd_wq_free_resources(struct idxd_wq *wq) free_descs(wq); dma_free_coherent(dev, wq->compls_size, wq->compls, wq->compls_addr); sbitmap_queue_free(&wq->sbq); + wq->type =3D IDXD_WQT_NONE; } EXPORT_SYMBOL_NS_GPL(idxd_wq_free_resources, "IDXD"); =20 @@ -367,7 +368,6 @@ static void idxd_wq_disable_cleanup(struct idxd_wq *wq) lockdep_assert_held(&wq->wq_lock); wq->state =3D IDXD_WQ_DISABLED; memset(wq->wqcfg, 0, idxd->wqcfg_size); - wq->type =3D IDXD_WQT_NONE; wq->threshold =3D 0; wq->priority =3D 0; wq->enqcmds_retries =3D IDXD_ENQCMDS_RETRIES; @@ -1540,7 +1540,6 @@ void idxd_drv_disable_wq(struct idxd_wq *wq) idxd_wq_reset(wq); idxd_wq_free_resources(wq); percpu_ref_exit(&wq->wq_active); - wq->type =3D IDXD_WQT_NONE; wq->client_count =3D 0; } EXPORT_SYMBOL_NS_GPL(idxd_drv_disable_wq, "IDXD"); --=20 2.50.1 From nobody Sun Feb 8 21:07:16 2026 Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.12]) (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 9484B1DE2C2; Tue, 5 Aug 2025 01:28:17 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=198.175.65.12 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1754357299; cv=none; b=CqMAUx+6iHYbgy8o5sVqEXArphawPs6vIrbQi1jlwbMt2SwJQQ9jYc8+I3ybrkO+4Hqeso3jfWE8LkiTPVkHOVAnZ0Fd6WuFj01zjMdMGkdKTs7oKB/+bdAj6LOkATbziZpex89zcXaWnOdv4ywx8gVrIwbE8axObjwclnURjdI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1754357299; c=relaxed/simple; bh=hqRLY7svLkCk+t/5lKLr/BM+MsElzoLaOGbyxhXHyI8=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=lFnSC5tfv4BPaYAmtZmf8f8kxyVDL0hv5ILvaUY3the/zeJpRFHA5J/991XMxjy4OozyfTdSp/Kd/bOYeWXtYrntJkbHlz74GaJgQhWk1LPpCnmU7HbI+36eZogRSUuuFRZdedFprkCewyvMNIn8x+GT1wZM0xIq0P+rr4Vgz4c= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com; spf=pass smtp.mailfrom=intel.com; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b=P3+1HbqX; arc=none smtp.client-ip=198.175.65.12 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=intel.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b="P3+1HbqX" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1754357297; x=1785893297; h=from:date:subject:mime-version:content-transfer-encoding: message-id:references:in-reply-to:to:cc; bh=hqRLY7svLkCk+t/5lKLr/BM+MsElzoLaOGbyxhXHyI8=; b=P3+1HbqXc7Yb/2A4gbT0a2chKkLXd/nDebwe302N8eHAG1ou2n34aWHs ohdmTyHTjlhoYbRH2YJhQ2pn7p++S4IV4tkwzy2oM/XDiraGx9Z0ZZjOz BJ4oehTYZ51BYU1MvGsphQcM7JrnoL+kA5KfprXFk1cn47H0IgRpBGeps 76lZlO2v1yeeKUxYv+NZlkEGffmc8TUjXcTpBGI/I983RuxxpZld6hkEj d/XdgQCnDTCX6jZW+vmpRVXs+tM7jvCva/4fBku9FOLNqMqgKTsUnL4FJ rL7qYFoMa3QA+LlUSiB5oDVvDNszS1HRUpKPoiD5z9wnIpuRb70vJ+H/c g==; X-CSE-ConnectionGUID: g7wrqD6DTKaILSu78NPbVA== X-CSE-MsgGUID: 60qPTHIGSn6w3S/Sc+5FLg== X-IronPort-AV: E=McAfee;i="6800,10657,11512"; a="68085365" X-IronPort-AV: E=Sophos;i="6.17,265,1747724400"; d="scan'208";a="68085365" Received: from orviesa005.jf.intel.com ([10.64.159.145]) by orvoesa104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 04 Aug 2025 18:28:12 -0700 X-CSE-ConnectionGUID: tSMMTXTnQSKvrXERGnUvug== X-CSE-MsgGUID: JFmZXbguTxC0ynjgs0LC2g== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.17,265,1747724400"; d="scan'208";a="169699567" Received: from vcostago-mobl3.jf.intel.com (HELO [10.98.32.147]) ([10.98.32.147]) by orviesa005-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 04 Aug 2025 18:28:11 -0700 From: Vinicius Costa Gomes Date: Mon, 04 Aug 2025 18:27:59 -0700 Subject: [PATCH 8/9] dmaengine: idxd: Fix freeing the allocated ida too late 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="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250804-idxd-fix-flr-on-kernel-queues-v3-v1-8-4e020fbf52c1@intel.com> References: <20250804-idxd-fix-flr-on-kernel-queues-v3-v1-0-4e020fbf52c1@intel.com> In-Reply-To: <20250804-idxd-fix-flr-on-kernel-queues-v3-v1-0-4e020fbf52c1@intel.com> To: Dave Jiang , Vinod Koul , Fenghua Yu , Dan Williams Cc: dmaengine@vger.kernel.org, linux-kernel@vger.kernel.org, Vinicius Costa Gomes X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1754357291; l=1541; i=vinicius.gomes@intel.com; s=20230921; h=from:subject:message-id; bh=hqRLY7svLkCk+t/5lKLr/BM+MsElzoLaOGbyxhXHyI8=; b=UXgQtGshrX2xzl8Uiyt5T57ugdRzPf9ZoOTrh7lx8lOADrrHPh5JX8qkquHLk2p9mdiubXKNM tR0JC4QvtueD0D4CMADPy6xwoBBiMnB4ui5HWXXSNxcNzApn/kh3rpc X-Developer-Key: i=vinicius.gomes@intel.com; a=ed25519; pk=aJkrtgqgT6TZ8iIHSG8/rTPsmlYnjMrUjCsMYvCzntk= It can happen that when the cdev .release() is called, the driver already called ida_destroy(). Move ida_free() to the _del() path. We see with DEBUG_KOBJECT_RELEASE enabled and forcing an early PCI unbind. Fixes: 04922b7445a1 ("dmaengine: idxd: fix cdev setup and free device lifet= ime issues") Signed-off-by: Vinicius Costa Gomes --- drivers/dma/idxd/cdev.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/dma/idxd/cdev.c b/drivers/dma/idxd/cdev.c index 7e4715f927732702416d917f34ab0a83f575d533..4105688cf3f060704b851ee1746= 7c135c170326e 100644 --- a/drivers/dma/idxd/cdev.c +++ b/drivers/dma/idxd/cdev.c @@ -158,11 +158,7 @@ static const struct device_type idxd_cdev_file_type = =3D { static void idxd_cdev_dev_release(struct device *dev) { struct idxd_cdev *idxd_cdev =3D dev_to_cdev(dev); - struct idxd_cdev_context *cdev_ctx; - struct idxd_wq *wq =3D idxd_cdev->wq; =20 - cdev_ctx =3D &ictx[wq->idxd->data->type]; - ida_free(&cdev_ctx->minor_ida, idxd_cdev->minor); kfree(idxd_cdev); } =20 @@ -582,11 +578,15 @@ int idxd_wq_add_cdev(struct idxd_wq *wq) =20 void idxd_wq_del_cdev(struct idxd_wq *wq) { + struct idxd_cdev_context *cdev_ctx; struct idxd_cdev *idxd_cdev; =20 idxd_cdev =3D wq->idxd_cdev; wq->idxd_cdev =3D NULL; cdev_device_del(&idxd_cdev->cdev, cdev_dev(idxd_cdev)); + + cdev_ctx =3D &ictx[wq->idxd->data->type]; + ida_free(&cdev_ctx->minor_ida, idxd_cdev->minor); put_device(cdev_dev(idxd_cdev)); } =20 --=20 2.50.1 From nobody Sun Feb 8 21:07:16 2026 Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.12]) (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 CE7421EA7D2; Tue, 5 Aug 2025 01:28:18 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=198.175.65.12 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1754357300; cv=none; b=q9+OJEKgcub9kRpwXxi0Z0kCWi7TrF+ZBrRmLZMG3DOpKTxUX6/jaqj9HGO1EBy8NRAOEiMicVSUdawn9LFRPsM4llMdseGuJb3SJBT5c2axq5Gy2BxMeZsHGoez024QTImxCOFfmjv+Ut3v+g76OrH/LqLRiTQJ0C+Sf/nw18c= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1754357300; c=relaxed/simple; bh=EztGGHn6kT28gd4q118MU0nBKXitkO/GDUTSrKqzUGM=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=eQcPu1zaEFP50NP07FjzPyKHJ6f63GQ3BWnUBASK0Q7dd7yRiul3Yk0mKu4tdXsrmzlRfQp9YagdgjH1gLrF3c8+8EdNL1MeK+8Pu9c4vzvYDZzMhFt2y3UbEWdJOM3ZuU/gNXhoOPMSzifcQrH3Tb/Ly1cJ9M3c3w4nt3XdRKQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com; spf=pass smtp.mailfrom=intel.com; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b=hjp1eqz4; arc=none smtp.client-ip=198.175.65.12 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=intel.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b="hjp1eqz4" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1754357299; x=1785893299; h=from:date:subject:mime-version:content-transfer-encoding: message-id:references:in-reply-to:to:cc; bh=EztGGHn6kT28gd4q118MU0nBKXitkO/GDUTSrKqzUGM=; b=hjp1eqz4D6jZhrd7LLYP0q6rJ0u1TK9WOJoTP1BG+Q2CS6Dy6AP6A/Eq J8qe7Vx/+B2qIRt7TjrCkOrjGD0cHNGhg5gVu54vINnLr/4AFPNNBE7xT BRTQP8eNdqI6aOUQb9OybShek2yZzd9wO8HWVgN18LE+AHcioLnlUOcVe 203SnsQSUGzkTi4tf1G3phPcwDYseAXFyOltl2c648QJjGhaZs/0Am+XJ 1IUmXIJmWvVwYv30Svrv8SRqSUIJAxDvkzfeeQoELuoLPgh/ha9nGdVpu RWRCqEGLI01jtG2U6Tc7Nt6b48Ev4oIYE6YkNJCULv4I+wTF+KZSWU/xC Q==; X-CSE-ConnectionGUID: tZyopQqbSqG4P7W1xZs+FA== X-CSE-MsgGUID: qRABYXi/RKOmOLL6XiQKIA== X-IronPort-AV: E=McAfee;i="6800,10657,11512"; a="68085368" X-IronPort-AV: E=Sophos;i="6.17,265,1747724400"; d="scan'208";a="68085368" Received: from orviesa005.jf.intel.com ([10.64.159.145]) by orvoesa104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 04 Aug 2025 18:28:12 -0700 X-CSE-ConnectionGUID: OtOLKMmMSEGFC4BpEGY/xQ== X-CSE-MsgGUID: lE47SnROS1uibV8Alf60ug== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.17,265,1747724400"; d="scan'208";a="169699571" Received: from vcostago-mobl3.jf.intel.com (HELO [10.98.32.147]) ([10.98.32.147]) by orviesa005-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 04 Aug 2025 18:28:12 -0700 From: Vinicius Costa Gomes Date: Mon, 04 Aug 2025 18:28:00 -0700 Subject: [PATCH 9/9] dmaengine: idxd: Fix leaking event log memory 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="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250804-idxd-fix-flr-on-kernel-queues-v3-v1-9-4e020fbf52c1@intel.com> References: <20250804-idxd-fix-flr-on-kernel-queues-v3-v1-0-4e020fbf52c1@intel.com> In-Reply-To: <20250804-idxd-fix-flr-on-kernel-queues-v3-v1-0-4e020fbf52c1@intel.com> To: Dave Jiang , Vinod Koul , Fenghua Yu , Dan Williams Cc: dmaengine@vger.kernel.org, linux-kernel@vger.kernel.org, Vinicius Costa Gomes X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1754357291; l=1201; i=vinicius.gomes@intel.com; s=20230921; h=from:subject:message-id; bh=EztGGHn6kT28gd4q118MU0nBKXitkO/GDUTSrKqzUGM=; b=iG7GJUBKmwdXiEUkx0jslAdStb1MvaTNGNuMpwnG7XGNmqZ6TFCqYFWq6hHdcXvUKgKXZnyeK KaqHZ7GAT6fBZ1qiGBxu9EZ4OxLnieo2KWeyqYlH6ejlY+pxhiXwBrm X-Developer-Key: i=vinicius.gomes@intel.com; a=ed25519; pk=aJkrtgqgT6TZ8iIHSG8/rTPsmlYnjMrUjCsMYvCzntk= During the device remove process, the device is reset, causing the configuration registers to go back to their default state, which is zero. As the driver is checking if the event log support was enabled before deallocating, it will fail if a reset happened before. Do not check if the support was enabled, the check for 'idxd->evl' being valid (only allocated if the HW capability is available) is enough. Fixes: 244da66cda35 ("dmaengine: idxd: setup event log configuration") Signed-off-by: Vinicius Costa Gomes --- drivers/dma/idxd/device.c | 4 ---- 1 file changed, 4 deletions(-) diff --git a/drivers/dma/idxd/device.c b/drivers/dma/idxd/device.c index 8f6afcba840ed7128259ad6b58b2fd967b0c151c..288cfd85f3a91f40ce2f8d81508= 30ad0628eacbe 100644 --- a/drivers/dma/idxd/device.c +++ b/drivers/dma/idxd/device.c @@ -818,10 +818,6 @@ static void idxd_device_evl_free(struct idxd_device *i= dxd) if (!evl) return; =20 - gencfg.bits =3D ioread32(idxd->reg_base + IDXD_GENCFG_OFFSET); - if (!gencfg.evl_en) - return; - mutex_lock(&evl->lock); gencfg.evl_en =3D 0; iowrite32(gencfg.bits, idxd->reg_base + IDXD_GENCFG_OFFSET); --=20 2.50.1