From nobody Fri Mar 27 01:52:32 2026 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4fhkDK3868z6WY4G for ; Fri, 27 Mar 2026 01:52:33 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fhkDJ6mDWz41SJ for ; Fri, 27 Mar 2026 01:52:32 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1774576353; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=AtHSe3RFrYGV6bP/wzhR03vX6ESnhJ6IWLaSFAZWLHU=; b=fMUdtBEKapWI/y14JHDSioVyuqd/u73ojc5U3In54B/EqzAQV3+gBz+ufXlcBrGLLDlVHU uEUX+z3dvwmSXedEkZyIFavIC3heGMpnd/dQ/t+vWKWBhUGXWbMz+XlatQ7OqjnQjZ1Sv/ mGBxF0ezGYKaAC5at3tXNMKtO+HZGwnDvqoRrOWLX/OgJlBxeZKaLkO4xRtGUR33svfU0q q8tHyJiFdMn8mL3FIJE11NFzA21ukc6AL9f4NaNMW1vJ1g+1b+LowyXAXkj0rB31JB/LUP Wn9EIuI9PBc4Hh73PR/+tWsq0mV8xvyJMOEpe9RJmL5oaewrcyT97eoxCv/GlQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1774576353; a=rsa-sha256; cv=none; b=HEaibmnJeM1BKbd/AZ4rJco9wD0P4rz2FdL17bsig3Qe6p/y3Y79V5XeXXoEZ3hW2D7dsa qw/R3fD5J8EozG/XG36wXAjd2Qe9/QTdUJ3UyB0VhdcRlLQquvA9wnfcWYxWhsRV1jnrVq aPhEi2Bf01eUgzZprEbV+yOHB4x3m16xu/TYCH99ETFwXoaVdajU/XVblUUnZPKzUX8PYh 7u0hWkVazCcdQ76tiPkQZ3aGKtpNrFOIKcqf5zneyjUJmB4l8ldzQdrF7OXuzZZtBx/1M9 gPEKQmwGZQlp4LqPbAv2iSebp4tkdz60keh6KpDlgtmGSJDskNOw3FzPOaLFqQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1774576353; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=AtHSe3RFrYGV6bP/wzhR03vX6ESnhJ6IWLaSFAZWLHU=; b=jcvLe8jRLzEKFmqltBKx/UPy0kvv/7gfZmpa4Os46qCAX2x8v2aXHEtT7yP0bcAlgsDQ9J /Zh2d098nzodpah++rRze4y44Dl20pVz2eJvejxG9n28MepcU7qkUyX7Z+hmDLIUTmsqHr nl22ejUZjZVGK0CReJoxOFfcZgmBqogIMPWahXgn8GSnG8yDHbuTbtQcZDusujr3KX9AVd Qq5iw7B3iHbBbuEiATdNgI5QxfKIPnnpGx7f1epf9dr5fm6r/DBw0+ZZv7mUhlKCv5GnMv z/8w+SsgmNkDzEOnlQw2JRsLLAwoGW47cfdu1zFEkwLjBxczqzwQOaBWtwzCrA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fhkDJ6KMHz3Cy for ; Fri, 27 Mar 2026 01:52:32 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 1ea8f by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Fri, 27 Mar 2026 01:52:32 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Konstantin Belousov Subject: git: a7182edc1025 - stable/15 - mlx5: postpone freeing the completed command entity to taskqueue List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-all@freebsd.org Sender: owner-dev-commits-src-all@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kib X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: a7182edc1025e4e55bba3fa67a9c57896abc8cb9 Auto-Submitted: auto-generated Date: Fri, 27 Mar 2026 01:52:32 +0000 Message-Id: <69c5e2e0.1ea8f.1329565@gitrepo.freebsd.org> The branch stable/15 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=a7182edc1025e4e55bba3fa67a9c57896abc8cb9 commit a7182edc1025e4e55bba3fa67a9c57896abc8cb9 Author: Konstantin Belousov AuthorDate: 2026-03-10 07:32:00 +0000 Commit: Konstantin Belousov CommitDate: 2026-03-26 23:42:57 +0000 mlx5: postpone freeing the completed command entity to taskqueue (cherry picked from commit f0d5f46a1e42b801d96447e544cc3820612748b1) --- sys/dev/mlx5/driver.h | 1 + sys/dev/mlx5/mlx5_core/mlx5_cmd.c | 12 +++++++++++- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/sys/dev/mlx5/driver.h b/sys/dev/mlx5/driver.h index cdefe7e013f6..ba6714c5c7b6 100644 --- a/sys/dev/mlx5/driver.h +++ b/sys/dev/mlx5/driver.h @@ -890,6 +890,7 @@ struct mlx5_cmd_work_ent { u16 op; u8 busy; bool polling; + struct work_struct freew; }; struct mlx5_pas { diff --git a/sys/dev/mlx5/mlx5_core/mlx5_cmd.c b/sys/dev/mlx5/mlx5_core/mlx5_cmd.c index 86c721a83cb7..e314a04c294f 100644 --- a/sys/dev/mlx5/mlx5_core/mlx5_cmd.c +++ b/sys/dev/mlx5/mlx5_core/mlx5_cmd.c @@ -802,6 +802,15 @@ static void cb_timeout_handler(struct work_struct *work) mlx5_cmd_comp_handler(dev, 1UL << ent->idx, MLX5_CMD_MODE_EVENTS); } +static void +cmd_free_work(struct work_struct *work) +{ + struct mlx5_cmd_work_ent *ent = container_of(work, + struct mlx5_cmd_work_ent, freew); + + free_cmd(ent); +} + static void complete_command(struct mlx5_cmd_work_ent *ent) { struct mlx5_cmd *cmd = ent->cmd; @@ -856,7 +865,8 @@ static void complete_command(struct mlx5_cmd_work_ent *ent) free_msg(dev, ent->in); err = err ? err : ent->status; - free_cmd(ent); + INIT_WORK(&ent->freew, cmd_free_work); + schedule_work(&ent->freew); callback(err, context); } else { complete(&ent->done);