From nobody Tue Jan 17 00:33:28 2023 X-Original-To: dev-commits-src-branches@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 4Nwqcn1NB8z2sphq; Tue, 17 Jan 2023 00:33:29 +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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Nwqcn0kFmz4Jpp; Tue, 17 Jan 2023 00:33:29 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1673915609; 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=p1W0liMEmEU6PveZVjCVPPhRnVmaSlllJdJQOS2BvEc=; b=tHd2/XW4MWbELN3NqWRhAW4UVPAlHAM5YOjIMaHaDnGE/Y4yoQur5Bn6iELuGE8QvSxzxP 846TomKC/b34rkCEfEhwNkVK84tOqJK5LjfW2Mi4auMFAIegduXpXPEz92jAACCEzI78Vc Syi9wqztKG0kqz6q2u2c+ouvOD6kqtmQxtnBFZvRIWFSzDA8c/i/9lLzjwOSLrQc/LIIMO MouGgP5l4xHDvtuzhB401+7C2CCGGBRx4ET7+4a9VTdwqpzc6DXHwG3/NZYOAGClult0da plSP/Pt3W9p/lin347MzgACNh+YbGTSgAxphorH3rbbgo+iZZajoKpytaV/X7g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1673915609; 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=p1W0liMEmEU6PveZVjCVPPhRnVmaSlllJdJQOS2BvEc=; b=wJ5X/7z4vUP2QQ7lWcZVWQOapqh91xGF+7ogXtG5Ng2rQZk4AxWIA/c7Dh5tgYBqdH/yxO 1RSP4+eGZtqgekAAAJi3ppIxbLXwBapNJL6C7KjGnAVwLCmpIWnJlJLjuoaCEFM04BzidL sxr3v7KVQkoA8Wr95QR2IuMVpi/phc01+uHZpSIQxJeiPGIoRo0vmjSYuVdCf7PtGNSo5y P24mqBFxqQZUEJ47IvtMqmwzwsztutUyvCBD7kDOSmn6z284JzyVxWTfAaTjDArMGyAGLh 8IvDsd4DG1Ki1DKvRsMoY0rII6/kcp1s5ZeVOHkmjg4i1yB3UWSJTI4uM3A5xA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1673915609; a=rsa-sha256; cv=none; b=gIKf1zLQSmnhz2WaOPPtAY6nVY+BZK4uXVFy36P6Ng4iqbUmasOD9c0A+m6/46yZBwa1As 07jWKPHKH38hB3II4NizMl6PU6C+GpbsVlXZlomBGGk/dPP8IJ9u6LFVi0M4lgLVQDgGtz VPz8YVm5MxLQhSaU7SNdPjztSwwQccppCOmbMLuloeUPGoSAmY9MWQW0hSHJm2R3H5bXab ExCtg/UBfBw+wfxzFMOVzFKve+mRwHlmlHyRZaHYU+qDMEIAd4MMA4188wyTnG77139Gn3 fs1pK5b+sbO6pXTCQf80zYu2euRbY6ti4pXlWmUB93ie6V/7W68rE9734P0HEg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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 did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Nwqcm6sg4z1R2L; Tue, 17 Jan 2023 00:33:28 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 30H0XSQT021370; Tue, 17 Jan 2023 00:33:28 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 30H0XSH5021369; Tue, 17 Jan 2023 00:33:28 GMT (envelope-from git) Date: Tue, 17 Jan 2023 00:33:28 GMT Message-Id: <202301170033.30H0XSH5021369@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Ed Maste Subject: git: de1ce17d2305 - stable/13 - dma: dma.conf.5 as MLINK to dma.8 List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: emaste X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: de1ce17d2305d34152ed50c4bb68960d41da6c69 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by emaste: URL: https://cgit.FreeBSD.org/src/commit/?id=de1ce17d2305d34152ed50c4bb68960d41da6c69 commit de1ce17d2305d34152ed50c4bb68960d41da6c69 Author: Ed Maste AuthorDate: 2023-01-04 18:47:26 +0000 Commit: Ed Maste CommitDate: 2023-01-17 00:32:59 +0000 dma: dma.conf.5 as MLINK to dma.8 There's no separate man page for dma.conf, but the format is documented in dma.8. Reviewed by: bapt MFC after: 1 week Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D37944 (cherry picked from commit 45396fda8b73146d3980797d48704184a5aa99ff) --- libexec/dma/dmagent/Makefile | 1 + 1 file changed, 1 insertion(+) diff --git a/libexec/dma/dmagent/Makefile b/libexec/dma/dmagent/Makefile index f7f127cf4e7e..f56b16a0b6f0 100644 --- a/libexec/dma/dmagent/Makefile +++ b/libexec/dma/dmagent/Makefile @@ -18,6 +18,7 @@ SRCS= aliases_parse.y \ spool.c \ util.c MAN8= dma.8 +MLINKS= dma.8 dma.conf.5 CONFS= dma.conf CONFSDIR= ${CONFDIR}/dma YFLAGS+= -i From nobody Wed Jan 18 00:32:11 2023 X-Original-To: dev-commits-src-branches@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 4NxRXr1cMSz2sX7d; Wed, 18 Jan 2023 00:32:12 +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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4NxRXr1641z4Kw5; Wed, 18 Jan 2023 00:32:12 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1674001932; 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=7K9vD+zi8o8EmIgtKPeTrqIlHvmWJQZDf0T0JJnbfAM=; b=AZ5BFMkr7uWb99BueGa7sp8Bc/v+4DTzQsKH3L3IZCYDU573JRjcWnqJF9aO+87Y+bT6Kn tFKKGmX9RzJBbfiYYFtITWLta2+2RKwmFUfVQV3VCxX7DmXsmnDbVMsXrP+9g8HBKZ1Ja3 mlO/NVHoNGD5PEAdsW0svATh5z9U5Ps97m3yWTW8tXIPrGO3v/Tjw2LWZc7/G1oKK1d0EZ Qzup/Zr86GPYrsCnabnXrGItxZeCGcZ4PRg9ke2kIQhuqTHWX/FkngOG0RRdjAVfZCUMUw GKzHJYtgX0kwZse0G4+EGyP5jZbTPS1P8TctuQ3Q9UScOtyYexs/PuPNrLnhoQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1674001932; 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=7K9vD+zi8o8EmIgtKPeTrqIlHvmWJQZDf0T0JJnbfAM=; b=J3oawkkZ8uR+9nIxOwAMhtJypfb0CYpWVpx2vKIeWxZEUos4bzHllt9Eb8rXDoJLhSeYBb doUxfBzIQqeI/T8aBhxgKxAUnI/QZZVJdkh6mz/FGA3eQmv/dcuYmCfJwE+Zf7m9X4wHM/ 0khOngVnJWPytTVeg+IjKmKhgupxqhCm9tpZdYazbboI5162h9iWYWfm+d/YA88rrdQWZT MQq1MsULz4RDXGpH9l6KLFhMNv2J6zKU6ziBKYyNWk9T2S7qXxdv8IaI1+0zaQVAiBR6hs VyTHfVaQxnt487gR1mZuiHUgWyKlca2NmNKJLDAA6bGlJ2I6OqKUBbzu1CE7Fg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1674001932; a=rsa-sha256; cv=none; b=GVS4IRZ/hbQY/XQmuo8HSXyXO5wyCBY8OFIhSkyR0eHj8gl6IqsKQuV+/Rghk+E9QgePHV HilITFZr65AMjagMfi7O7fjTXPQDQJrFTiLyaNFwh4JigyIqwAoq7KE5Wiu5e+AXoTZtxu lsN5dGcOCkh40iuwjcXp++spCTHZs1d25C0UYOIN5cJALsPU9jABAWFoj0+pR21+rGROG6 r++Rd3w9JL4qolM6qPXR5rxoTNsFjN2bhOz4toc6EejX6K28HA8oTaILlW04+HK4enoDJy HhVmjQLn9DauwJcFwCFRe/m7ibn1TzW6SZeH8zAZ+bXoaDOyo1Gx16zMoo6Wjw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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 did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4NxRXr035Rzrs7; Wed, 18 Jan 2023 00:32:12 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 30I0WBA8080002; Wed, 18 Jan 2023 00:32:11 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 30I0WBae080001; Wed, 18 Jan 2023 00:32:11 GMT (envelope-from git) Date: Wed, 18 Jan 2023 00:32:11 GMT Message-Id: <202301180032.30I0WBae080001@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Kirk McKusick Subject: git: 3f908eed27b4 - stable/13 - Enable taking snapshots on UFS/FFS filesystems using journaled soft updates. List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: mckusick X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: 3f908eed27b47ae40947e3fec2b262acdb5efcd5 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by mckusick: URL: https://cgit.FreeBSD.org/src/commit/?id=3f908eed27b47ae40947e3fec2b262acdb5efcd5 commit 3f908eed27b47ae40947e3fec2b262acdb5efcd5 Author: Kirk McKusick AuthorDate: 2022-11-13 06:56:03 +0000 Commit: Kirk McKusick CommitDate: 2023-01-18 00:30:46 +0000 Enable taking snapshots on UFS/FFS filesystems using journaled soft updates. Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D36491 (cherry picked from commit 78f41298760509f5c2b5865b2158c801d4023363) --- sbin/newfs/newfs.8 | 4 +--- sbin/tunefs/tunefs.8 | 4 +--- sys/ufs/ffs/ffs_snapshot.c | 9 --------- 3 files changed, 2 insertions(+), 15 deletions(-) diff --git a/sbin/newfs/newfs.8 b/sbin/newfs/newfs.8 index 43896fe0bdb4..803b3221503d 100644 --- a/sbin/newfs/newfs.8 +++ b/sbin/newfs/newfs.8 @@ -205,9 +205,7 @@ is running. Running a full fsck on a UFS filesystem is the equivalent of running a scrub on a ZFS filesystem. .Pp -Presently it is not possible to take a snapshot on a UFS filesystem -running with journaled soft updates. -Thus it is not possible to reliably dump mounted filesystems or +Presently it is not possible to run background fsck on filesystems enabled for journaling. .It Fl k Ar held-for-metadata-blocks Set the amount of space to be held for metadata blocks in each cylinder group. diff --git a/sbin/tunefs/tunefs.8 b/sbin/tunefs/tunefs.8 index b9a581df6784..0264c3e5f772 100644 --- a/sbin/tunefs/tunefs.8 +++ b/sbin/tunefs/tunefs.8 @@ -131,9 +131,7 @@ is running. Running a full fsck on a UFS filesystem is the equivalent of running a scrub on a ZFS filesystem. .Pp -Presently it is not possible to take a snapshot on a UFS filesystem -running with journaled soft updates. -Thus it is not possible to reliably dump mounted filesystems or +Presently it is not possible to run background fsck on filesystems enabled for journaling. .It Fl J Cm enable | disable Turn on/off gjournal flag. diff --git a/sys/ufs/ffs/ffs_snapshot.c b/sys/ufs/ffs/ffs_snapshot.c index 89301576f48a..709038db071f 100644 --- a/sys/ufs/ffs/ffs_snapshot.c +++ b/sys/ufs/ffs/ffs_snapshot.c @@ -226,15 +226,6 @@ ffs_snapshot(struct mount *mp, char *snapfile) ump = VFSTOUFS(mp); fs = ump->um_fs; sn = NULL; - /* - * At the moment, journaled soft updates cannot support - * taking snapshots. - */ - if (MOUNTEDSUJ(mp)) { - vfs_mount_error(mp, "%s: Snapshots are not yet supported when " - "running with journaled soft updates", fs->fs_fsmnt); - return (EOPNOTSUPP); - } MNT_ILOCK(mp); flag = mp->mnt_flag; MNT_IUNLOCK(mp); From nobody Wed Jan 18 16:24:35 2023 X-Original-To: dev-commits-src-branches@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 4Nxrgm1VzPz2yJNP; Wed, 18 Jan 2023 16:24:36 +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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Nxrgm0n1Cz3D8K; Wed, 18 Jan 2023 16:24:36 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1674059076; 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=Y8JtkdSUjBVpKIDakFs6+PAejfk+QgW2FhEsxhdzZfg=; b=AXAMBqCE9FU7bs2cPJEF18WnEQNIMA1qi0cncCBJi4Ftr2VvQaO+O1nhLEYdNbwA1C9Oai /Cj0qwHDkBDzsbVflqQ5yP27Grp/uAeZ92+nuatkjiP+j1NBDTuc7bny2tygdEXqkgjUIT 5lH+idMGpxkIhLsIjZqdtYBbTf8a/WN6r1R1LTOmRuXrP3/AWE30rdKGwUgVkdFyXv+Ulo q3ItEMyUwMXt/SokdlLRVqdoDor9EmRoy8oGDSl+p8e6vU0JGYNzguhsHLu+jKM9S5RKXd UvnyMQnuUIUOY3J6L24Ss/U9pXFtVcxV9fuIg1ooxb2/o2A3yty+LjkZruMtDg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1674059076; 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=Y8JtkdSUjBVpKIDakFs6+PAejfk+QgW2FhEsxhdzZfg=; b=nyT19eoPd8mv/1faYCNBBTK6nEdeP7IWEW08Bg3i0xwlQHx4SRzjXIiYkqHOAhDW8QnjMR sPWXGLTJ+njsuboPkzFRydsPh85DYvmzIIXlTWs5xes6Bh0FAbkMhGfnmKAbLDB5lfcwI/ OKMhQgWrALGjRG9flqZYqy+4wEruWt8BfR8uFJry6GZ0YWC+qn7reoF1NbEsuAm3dKSojY HVAJxwXNIxR0Upm1djH3sHGWVJhTsAb/5i8feKtIeDM/ElLQTNUhnB5Ww/rj9zjPWpHcqN Qm3+izfLZM5p6YfzHcTJ4tlidaAPn/zAn0GpftcnmBoITIKZGQm+OhLRvUQFnQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1674059076; a=rsa-sha256; cv=none; b=NNFcI1pWDD5076av31zIy1aV5iNb/QrcH7lt/1mXDw4xj7ZChPzI52D+jkIGQvfLXaj1Zs UBTZO+mRQgj8s4b28kJqph+DDOT2MKIx+k34j6L6zSW38k7u7A3Iz+nVb/VCSD72KhJmZt 2uDreNKSxAdkHhb3qhVaYUY1x+4uFANcKy2Gp+2HPqDxoruTCPubw6A1FPaJnIOH1RChYJ GkeuQxtiDrBLXk+S5LkBmQNuyy2SyQ6L6ehKdBo07hPY9f8VYIo8h+SJHntSBFP0oYpD0X liIHYspI4sbU2qOrKkiu9WtLHLyA3O1ZViLE5Tvdm9zd3UbVXE3mM5HDvTqrSQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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 did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Nxrgl6vzvzHp5; Wed, 18 Jan 2023 16:24:35 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 30IGOZdZ037654; Wed, 18 Jan 2023 16:24:35 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 30IGOZAF037653; Wed, 18 Jan 2023 16:24:35 GMT (envelope-from git) Date: Wed, 18 Jan 2023 16:24:35 GMT Message-Id: <202301181624.30IGOZAF037653@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: "Bjoern A. Zeeb" Subject: git: b3e602d9ac5e - stable/13 - device_get_property: add a HANDLE case List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bz X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: b3e602d9ac5e3157874dfe3986dc819971d2142c Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=b3e602d9ac5e3157874dfe3986dc819971d2142c commit b3e602d9ac5e3157874dfe3986dc819971d2142c Author: Bjoern A. Zeeb AuthorDate: 2022-09-29 12:41:58 +0000 Commit: Bjoern A. Zeeb CommitDate: 2023-01-18 13:22:13 +0000 device_get_property: add a HANDLE case This will resolve a reference and return the appropriate handle, a node on the simplebus or an ACPI_HANDLE for ACPI. For now we do not try to further abstract the return type. Reviewed by: mw Differential Revision: https://reviews.freebsd.org/D36793 (cherry picked from commit 99e6980fcf5e12654c3e89b97b774de807d740a4) --- share/man/man9/device_get_property.9 | 5 +++- sys/dev/acpica/acpi.c | 47 ++++++++++++++++++++++++++++++++++++ sys/dev/fdt/simplebus.c | 19 +++++++++++++-- sys/kern/subr_bus.c | 1 + sys/sys/bus.h | 1 + 5 files changed, 70 insertions(+), 3 deletions(-) diff --git a/share/man/man9/device_get_property.9 b/share/man/man9/device_get_property.9 index d925f5f224db..93c01f199477 100644 --- a/share/man/man9/device_get_property.9 +++ b/share/man/man9/device_get_property.9 @@ -25,7 +25,7 @@ .\" .\" $FreeBSD$ .\" -.Dd February 18, 2022 +.Dd September 29, 2022 .Dt DEVICE_GET_PROPERTY 9 .Os .Sh NAME @@ -54,6 +54,9 @@ Currently the following types are supported: The underlying property is a string of bytes. .It Dv DEVICE_PROP_ANY Wildcard property type. +.It Dv DEVICE_PROP_HANDLE +Following a reference the underlying property is a handle of the +respective bus. .It Dv DEVICE_PROP_UINT32 The underlying property is an array of unsigned 32 bit integers. The diff --git a/sys/dev/acpica/acpi.c b/sys/dev/acpica/acpi.c index 9005448ddee9..8f4419a76c58 100644 --- a/sys/dev/acpica/acpi.c +++ b/sys/dev/acpica/acpi.c @@ -1824,6 +1824,35 @@ acpi_find_dsd(struct acpi_device *ad) return (AE_NOT_FOUND); } +static ssize_t +acpi_bus_get_prop_handle(const ACPI_OBJECT *hobj, void *propvalue, size_t size) +{ + ACPI_OBJECT *pobj; + ACPI_HANDLE h; + + if (hobj->Type != ACPI_TYPE_PACKAGE) + goto err; + if (hobj->Package.Count != 1) + goto err; + + pobj = &hobj->Package.Elements[0]; + if (pobj == NULL) + goto err; + if (pobj->Type != ACPI_TYPE_LOCAL_REFERENCE) + goto err; + + h = acpi_GetReference(NULL, pobj); + if (h == NULL) + goto err; + + if (propvalue != NULL && size >= sizeof(ACPI_HANDLE)) + *(ACPI_HANDLE *)propvalue = h; + return (sizeof(ACPI_HANDLE)); + +err: + return (-1); +} + static ssize_t acpi_bus_get_prop(device_t bus, device_t child, const char *propname, void *propvalue, size_t size, device_property_type_t type) @@ -1842,6 +1871,8 @@ acpi_bus_get_prop(device_t bus, device_t child, const char *propname, case DEVICE_PROP_UINT32: case DEVICE_PROP_UINT64: break; + case DEVICE_PROP_HANDLE: + return (acpi_bus_get_prop_handle(obj, propvalue, size)); default: return (-1); } @@ -1873,6 +1904,22 @@ acpi_bus_get_prop(device_t bus, device_t child, const char *propname, MIN(size, obj->Buffer.Length)); return (obj->Buffer.Length); + case ACPI_TYPE_PACKAGE: + if (propvalue != NULL && size >= sizeof(ACPI_OBJECT *)) { + *((ACPI_OBJECT **) propvalue) = + __DECONST(ACPI_OBJECT *, obj); + } + return (sizeof(ACPI_OBJECT *)); + + case ACPI_TYPE_LOCAL_REFERENCE: + if (propvalue != NULL && size >= sizeof(ACPI_HANDLE)) { + ACPI_HANDLE h; + + h = acpi_GetReference(NULL, + __DECONST(ACPI_OBJECT *, obj)); + memcpy(propvalue, h, sizeof(ACPI_HANDLE)); + } + return (sizeof(ACPI_HANDLE)); default: return (0); } diff --git a/sys/dev/fdt/simplebus.c b/sys/dev/fdt/simplebus.c index ab7868f245bf..a29b28f2a016 100644 --- a/sys/dev/fdt/simplebus.c +++ b/sys/dev/fdt/simplebus.c @@ -359,7 +359,7 @@ static ssize_t simplebus_get_property(device_t bus, device_t child, const char *propname, void *propvalue, size_t size, device_property_type_t type) { - phandle_t node = ofw_bus_get_node(child); + phandle_t node, xref; ssize_t ret, i; uint32_t *buffer; uint64_t val; @@ -369,11 +369,13 @@ simplebus_get_property(device_t bus, device_t child, const char *propname, case DEVICE_PROP_BUFFER: case DEVICE_PROP_UINT32: case DEVICE_PROP_UINT64: + case DEVICE_PROP_HANDLE: break; default: return (-1); } + node = ofw_bus_get_node(child); if (propvalue == NULL || size == 0) return (OF_getproplen(node, propname)); @@ -404,7 +406,20 @@ simplebus_get_property(device_t bus, device_t child, const char *propname, ((uint64_t *)buffer)[i / 2] = val; } return (ret); - } + } + + if (type == DEVICE_PROP_HANDLE) { + if (size < sizeof(node)) + return (-1); + ret = OF_getencprop(node, propname, &xref, sizeof(xref)); + if (ret <= 0) + return (ret); + + node = OF_node_from_xref(xref); + if (propvalue != NULL) + *(uint32_t *)propvalue = node; + return (ret); + } return (OF_getprop(node, propname, propvalue, size)); } diff --git a/sys/kern/subr_bus.c b/sys/kern/subr_bus.c index c70e0e7b5ec1..c1383add7e47 100644 --- a/sys/kern/subr_bus.c +++ b/sys/kern/subr_bus.c @@ -2683,6 +2683,7 @@ device_get_property(device_t dev, const char *prop, void *val, size_t sz, switch (type) { case DEVICE_PROP_ANY: case DEVICE_PROP_BUFFER: + case DEVICE_PROP_HANDLE: /* Size checks done in implementation. */ break; case DEVICE_PROP_UINT32: if (sz % 4 != 0) diff --git a/sys/sys/bus.h b/sys/sys/bus.h index c017f38dcf11..a308810f158f 100644 --- a/sys/sys/bus.h +++ b/sys/sys/bus.h @@ -73,6 +73,7 @@ typedef enum device_property_type { DEVICE_PROP_BUFFER = 1, DEVICE_PROP_UINT32 = 2, DEVICE_PROP_UINT64 = 3, + DEVICE_PROP_HANDLE = 4, } device_property_type_t; /** From nobody Wed Jan 18 16:24:37 2023 X-Original-To: dev-commits-src-branches@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 4Nxrgp3YS7z2yJNR; Wed, 18 Jan 2023 16:24:38 +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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Nxrgp3CsKz3DNp; Wed, 18 Jan 2023 16:24:38 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1674059078; 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=Dw3OmD4V5izTiJ9fqVdNXK6eN1NVqITX7P8GkAkYWM8=; b=L8XBKxvuTV3uzWGhy7RhfL+ryqZcACgKFHm+7x/Gs+BOnVe5KqDzlzkDIGyjAKxPFe0y8J tHsckiph/5hkGO7G7UNTOf3KlMHQ3JYKXulgZAzBxv9t5+ZLSk6wHfOlsNzdcLdbBNWb23 a4+iWYVdcbxPLx6kMAcWJi636yBeNQ70x5dc42AG2FqMEillp1IBJLzC7AP5CuNFVmw0ee bQ1LMLKWf0bNYD8R7qHoWuXXGTTtUolCkj9iNCZBhDHUguZEX0DHEP64tEKlWjyFkoab6D 0FUXFe4UtyPCCICaf/LFM6IB34ywY6qwOfSatOHvacByyqcl+/PGSUcOnNKoEw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1674059078; 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=Dw3OmD4V5izTiJ9fqVdNXK6eN1NVqITX7P8GkAkYWM8=; b=XVzfKo7TxlI/mGLzS2rA2exrv2C43NRAxhBWKQFhK2gY9M8VVFEDmYkJac0/+pGCOkVZmi o+pSs/g2w9RLfTufMkCAHpGIxxH5pn7RZi/IGE65jZqERWiGX2Nl+EA2W3l0aqlys1HmT1 JrlxLkMGSNvyWwy9dGpBEBZ9nSObPC6dfp5pQTxez29Bz6JpYjVF2qEEsogr90BJ+DnrdW 66MMKZKGStT19LVIInhIPTSDj7izzRqXGLnGFoh8iTyM7SRXv3JFWfsWBaVSkLRtnEXeFm wjhmDdDI0UT5/obDep2ok5oSkcNBnGy6B+Og31pK5S6hmYXefw/rc7YKWzPd6A== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1674059078; a=rsa-sha256; cv=none; b=QtfiTObQ2l46I4duZets/1FvMeFhrmEe5aAZPgL6PeDZue5d9a0NjPHMxxZCuR96LZ1wQ9 gz+8ypub2NyLQc5bQWUdNgDdyNyMMiulnRnDrASGQKSKjNK/y8MqTvMCj4zannpS3YhZ90 j3/yV1SzjIk2c9Zx5ycEGJrzz8sfN7n5JysHgZDYrEm9uN0zcOH46MJzeQneMZxoT1jgnh yWgIcOAzGjbLh18BYdbmMCjRU+1OyeciIH7zDv+C7fTiEjjlxlFX1nHPEfO/liG3e7BAlT t3Aq9BWhHLPElu6JkxejSLLG1eItmjemlTKKdgOdg+IUZlVE6GUrpe88caW3mg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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 did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Nxrgp1w22zHZY; Wed, 18 Jan 2023 16:24:38 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 30IGOcLi037678; Wed, 18 Jan 2023 16:24:38 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 30IGObst037677; Wed, 18 Jan 2023 16:24:37 GMT (envelope-from git) Date: Wed, 18 Jan 2023 16:24:37 GMT Message-Id: <202301181624.30IGObst037677@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: "Bjoern A. Zeeb" Subject: git: 6ce9424029aa - stable/13 - rtw89: import Realtek's rtw89 driver List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bz X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: 6ce9424029aa34232ac5af1818ba2d6e5249ffe4 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=6ce9424029aa34232ac5af1818ba2d6e5249ffe4 commit 6ce9424029aa34232ac5af1818ba2d6e5249ffe4 Author: Bjoern A. Zeeb AuthorDate: 2022-09-09 12:41:07 +0000 Commit: Bjoern A. Zeeb CommitDate: 2023-01-18 13:22:24 +0000 rtw89: import Realtek's rtw89 driver Import rtw89 based on wireless-testing at (tag: wt-2022-09-02) 78667a29c116c6b186a37e28cd8dd7fa9923aee8 with adjustments for FreeBSD. For the moment this will stay disconnected from the build until the last bits are flushed out, but this will help people with a card to do testing and possibly help improving. Given the lack of full license texts on non-local files this is imported under the draft policy for handling SPDX files (D29226). [1] Approved by: core.11 (imp) [1] [2022-03-27] (cherry picked from commit 8e93258f2686c76b4e3b384a904d8b4413976229) --- sys/contrib/dev/rtw89/Kconfig | 68 + sys/contrib/dev/rtw89/Makefile | 40 + sys/contrib/dev/rtw89/cam.c | 765 + sys/contrib/dev/rtw89/cam.h | 391 + sys/contrib/dev/rtw89/chan.c | 235 + sys/contrib/dev/rtw89/chan.h | 64 + sys/contrib/dev/rtw89/coex.c | 6600 ++++ sys/contrib/dev/rtw89/coex.h | 189 + sys/contrib/dev/rtw89/core.c | 3318 ++ sys/contrib/dev/rtw89/core.h | 4193 +++ sys/contrib/dev/rtw89/debug.c | 2667 ++ sys/contrib/dev/rtw89/debug.h | 92 + sys/contrib/dev/rtw89/efuse.c | 330 + sys/contrib/dev/rtw89/efuse.h | 13 + sys/contrib/dev/rtw89/fw.c | 2625 ++ sys/contrib/dev/rtw89/fw.h | 2701 ++ sys/contrib/dev/rtw89/mac.c | 4673 +++ sys/contrib/dev/rtw89/mac.h | 967 + sys/contrib/dev/rtw89/mac80211.c | 879 + sys/contrib/dev/rtw89/pci.c | 3942 +++ sys/contrib/dev/rtw89/pci.h | 1128 + sys/contrib/dev/rtw89/phy.c | 3879 ++ sys/contrib/dev/rtw89/phy.h | 499 + sys/contrib/dev/rtw89/ps.c | 181 + sys/contrib/dev/rtw89/ps.h | 16 + sys/contrib/dev/rtw89/reg.h | 4283 +++ sys/contrib/dev/rtw89/regd.c | 358 + sys/contrib/dev/rtw89/rtw8852a.c | 2213 ++ sys/contrib/dev/rtw89/rtw8852a.h | 111 + sys/contrib/dev/rtw89/rtw8852a_rfk.c | 3868 ++ sys/contrib/dev/rtw89/rtw8852a_rfk.h | 24 + sys/contrib/dev/rtw89/rtw8852a_rfk_table.c | 1607 + sys/contrib/dev/rtw89/rtw8852a_rfk_table.h | 86 + sys/contrib/dev/rtw89/rtw8852a_table.c | 51045 +++++++++++++++++++++++++++ sys/contrib/dev/rtw89/rtw8852a_table.h | 28 + sys/contrib/dev/rtw89/rtw8852ae.c | 89 + sys/contrib/dev/rtw89/rtw8852c.c | 3050 ++ sys/contrib/dev/rtw89/rtw8852c.h | 88 + sys/contrib/dev/rtw89/rtw8852c_rfk.c | 4081 +++ sys/contrib/dev/rtw89/rtw8852c_rfk.h | 29 + sys/contrib/dev/rtw89/rtw8852c_rfk_table.c | 781 + sys/contrib/dev/rtw89/rtw8852c_rfk_table.h | 67 + sys/contrib/dev/rtw89/rtw8852c_table.c | 36704 +++++++++++++++++++ sys/contrib/dev/rtw89/rtw8852c_table.h | 36 + sys/contrib/dev/rtw89/rtw8852ce.c | 94 + sys/contrib/dev/rtw89/sar.c | 298 + sys/contrib/dev/rtw89/sar.h | 26 + sys/contrib/dev/rtw89/ser.c | 745 + sys/contrib/dev/rtw89/ser.h | 15 + sys/contrib/dev/rtw89/txrx.h | 433 + sys/contrib/dev/rtw89/util.h | 47 + sys/modules/rtw89/Makefile | 40 + 52 files changed, 150701 insertions(+) diff --git a/sys/contrib/dev/rtw89/Kconfig b/sys/contrib/dev/rtw89/Kconfig new file mode 100644 index 000000000000..93e09400aac4 --- /dev/null +++ b/sys/contrib/dev/rtw89/Kconfig @@ -0,0 +1,68 @@ +# SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause +menuconfig RTW89 + tristate "Realtek 802.11ax wireless chips support" + depends on MAC80211 + help + This module adds support for mac80211-based wireless drivers that + enables Realtek IEEE 802.11ax wireless chipsets. + + If you choose to build a module, it'll be called rtw89. + +if RTW89 + +config RTW89_CORE + tristate + +config RTW89_PCI + tristate + +config RTW89_8852A + tristate + +config RTW89_8852C + tristate + +config RTW89_8852AE + tristate "Realtek 8852AE PCI wireless network (Wi-Fi 6) adapter" + depends on PCI + select RTW89_CORE + select RTW89_PCI + select RTW89_8852A + help + Select this option will enable support for 8852AE chipset + + 802.11ax PCIe wireless network (Wi-Fi 6) adapter + +config RTW89_8852CE + tristate "Realtek 8852CE PCI wireless network (Wi-Fi 6E) adapter" + depends on PCI + select RTW89_CORE + select RTW89_PCI + select RTW89_8852C + help + Select this option will enable support for 8852CE chipset + + 802.11ax PCIe wireless network (Wi-Fi 6E) adapter + +config RTW89_DEBUG + bool + +config RTW89_DEBUGMSG + bool "Realtek rtw89 debug message support" + depends on RTW89_CORE + select RTW89_DEBUG + help + Enable debug message support + + If unsure, say Y to simplify debug problems + +config RTW89_DEBUGFS + bool "Realtek rtw89 debugfs support" + depends on RTW89_CORE + select RTW89_DEBUG + help + Enable debugfs support + + If unsure, say Y to simplify debug problems + +endif diff --git a/sys/contrib/dev/rtw89/Makefile b/sys/contrib/dev/rtw89/Makefile new file mode 100644 index 000000000000..a87f2aff4def --- /dev/null +++ b/sys/contrib/dev/rtw89/Makefile @@ -0,0 +1,40 @@ +# SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause + +obj-$(CONFIG_RTW89_CORE) += rtw89_core.o +rtw89_core-y += core.o \ + mac80211.o \ + mac.o \ + phy.o \ + fw.o \ + cam.o \ + efuse.o \ + regd.o \ + sar.o \ + coex.o \ + ps.o \ + chan.o \ + ser.o + +obj-$(CONFIG_RTW89_8852A) += rtw89_8852a.o +rtw89_8852a-objs := rtw8852a.o \ + rtw8852a_table.o \ + rtw8852a_rfk.o \ + rtw8852a_rfk_table.o + +obj-$(CONFIG_RTW89_8852AE) += rtw89_8852ae.o +rtw89_8852ae-objs := rtw8852ae.o + +obj-$(CONFIG_RTW89_8852C) += rtw89_8852c.o +rtw89_8852c-objs := rtw8852c.o \ + rtw8852c_table.o \ + rtw8852c_rfk.o \ + rtw8852c_rfk_table.o + +obj-$(CONFIG_RTW89_8852CE) += rtw89_8852ce.o +rtw89_8852ce-objs := rtw8852ce.o + +rtw89_core-$(CONFIG_RTW89_DEBUG) += debug.o + +obj-$(CONFIG_RTW89_PCI) += rtw89_pci.o +rtw89_pci-y := pci.o + diff --git a/sys/contrib/dev/rtw89/cam.c b/sys/contrib/dev/rtw89/cam.c new file mode 100644 index 000000000000..f5301c2bbf13 --- /dev/null +++ b/sys/contrib/dev/rtw89/cam.c @@ -0,0 +1,765 @@ +// SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause +/* Copyright(c) 2019-2020 Realtek Corporation + */ + +#include "cam.h" +#include "debug.h" +#include "fw.h" +#include "mac.h" + +static struct sk_buff * +rtw89_cam_get_sec_key_cmd(struct rtw89_dev *rtwdev, + struct rtw89_sec_cam_entry *sec_cam, + bool ext_key) +{ + struct sk_buff *skb; + u32 cmd_len = H2C_SEC_CAM_LEN; + u32 key32[4]; + u8 *cmd; + int i, j; + + skb = rtw89_fw_h2c_alloc_skb_with_hdr(rtwdev, cmd_len); + if (!skb) + return NULL; + + skb_put_zero(skb, cmd_len); + + for (i = 0; i < 4; i++) { + j = i * 4; + j += ext_key ? 16 : 0; + key32[i] = FIELD_PREP(GENMASK(7, 0), sec_cam->key[j + 0]) | + FIELD_PREP(GENMASK(15, 8), sec_cam->key[j + 1]) | + FIELD_PREP(GENMASK(23, 16), sec_cam->key[j + 2]) | + FIELD_PREP(GENMASK(31, 24), sec_cam->key[j + 3]); + } + + cmd = skb->data; + RTW89_SET_FWCMD_SEC_IDX(cmd, sec_cam->sec_cam_idx + (ext_key ? 1 : 0)); + RTW89_SET_FWCMD_SEC_OFFSET(cmd, sec_cam->offset); + RTW89_SET_FWCMD_SEC_LEN(cmd, sec_cam->len); + RTW89_SET_FWCMD_SEC_TYPE(cmd, sec_cam->type); + RTW89_SET_FWCMD_SEC_EXT_KEY(cmd, ext_key); + RTW89_SET_FWCMD_SEC_SPP_MODE(cmd, sec_cam->spp_mode); + RTW89_SET_FWCMD_SEC_KEY0(cmd, key32[0]); + RTW89_SET_FWCMD_SEC_KEY1(cmd, key32[1]); + RTW89_SET_FWCMD_SEC_KEY2(cmd, key32[2]); + RTW89_SET_FWCMD_SEC_KEY3(cmd, key32[3]); + + return skb; +} + +static int rtw89_cam_send_sec_key_cmd(struct rtw89_dev *rtwdev, + struct rtw89_sec_cam_entry *sec_cam) +{ + struct sk_buff *skb, *ext_skb; + int ret; + + skb = rtw89_cam_get_sec_key_cmd(rtwdev, sec_cam, false); + if (!skb) { + rtw89_err(rtwdev, "failed to get sec key command\n"); + return -ENOMEM; + } + + rtw89_h2c_pkt_set_hdr(rtwdev, skb, + FWCMD_TYPE_H2C, + H2C_CAT_MAC, + H2C_CL_MAC_SEC_CAM, + H2C_FUNC_MAC_SEC_UPD, 1, 0, + H2C_SEC_CAM_LEN); + ret = rtw89_h2c_tx(rtwdev, skb, false); + if (ret) { + rtw89_err(rtwdev, "failed to send sec key h2c: %d\n", ret); + dev_kfree_skb(skb); + return ret; + } + + if (!sec_cam->ext_key) + return 0; + + ext_skb = rtw89_cam_get_sec_key_cmd(rtwdev, sec_cam, true); + if (!ext_skb) { + rtw89_err(rtwdev, "failed to get ext sec key command\n"); + return -ENOMEM; + } + + rtw89_h2c_pkt_set_hdr(rtwdev, ext_skb, + FWCMD_TYPE_H2C, + H2C_CAT_MAC, + H2C_CL_MAC_SEC_CAM, + H2C_FUNC_MAC_SEC_UPD, + 1, 0, H2C_SEC_CAM_LEN); + ret = rtw89_h2c_tx(rtwdev, ext_skb, false); + if (ret) { + rtw89_err(rtwdev, "failed to send ext sec key h2c: %d\n", ret); + dev_kfree_skb(ext_skb); + return ret; + } + + return 0; +} + +static int rtw89_cam_get_avail_sec_cam(struct rtw89_dev *rtwdev, + u8 *sec_cam_idx, bool ext_key) +{ + const struct rtw89_chip_info *chip = rtwdev->chip; + struct rtw89_cam_info *cam_info = &rtwdev->cam_info; + u8 sec_cam_num = chip->scam_num; + u8 idx = 0; + + if (!ext_key) { + idx = find_first_zero_bit(cam_info->sec_cam_map, sec_cam_num); + if (idx >= sec_cam_num) + return -EBUSY; + + set_bit(idx, cam_info->sec_cam_map); + *sec_cam_idx = idx; + + return 0; + } + +again: + idx = find_next_zero_bit(cam_info->sec_cam_map, sec_cam_num, idx); + if (idx >= sec_cam_num - 1) + return -EBUSY; + /* ext keys need two cam entries for 256-bit key */ + if (test_bit(idx + 1, cam_info->sec_cam_map)) { + idx++; + goto again; + } + + set_bit(idx, cam_info->sec_cam_map); + set_bit(idx + 1, cam_info->sec_cam_map); + *sec_cam_idx = idx; + + return 0; +} + +static int rtw89_cam_get_addr_cam_key_idx(struct rtw89_addr_cam_entry *addr_cam, + struct rtw89_sec_cam_entry *sec_cam, + struct ieee80211_key_conf *key, + u8 *key_idx) +{ + u8 idx; + + /* RTW89_ADDR_CAM_SEC_NONE : not enabled + * RTW89_ADDR_CAM_SEC_ALL_UNI : 0 - 6 unicast + * RTW89_ADDR_CAM_SEC_NORMAL : 0 - 1 unicast, 2 - 4 group, 5 - 6 BIP + * RTW89_ADDR_CAM_SEC_4GROUP : 0 - 1 unicast, 2 - 5 group, 6 BIP + */ + switch (addr_cam->sec_ent_mode) { + case RTW89_ADDR_CAM_SEC_NONE: + return -EINVAL; + case RTW89_ADDR_CAM_SEC_ALL_UNI: + if (!(key->flags & IEEE80211_KEY_FLAG_PAIRWISE)) + return -EINVAL; + idx = find_first_zero_bit(addr_cam->sec_cam_map, + RTW89_SEC_CAM_IN_ADDR_CAM); + if (idx >= RTW89_SEC_CAM_IN_ADDR_CAM) + return -EBUSY; + *key_idx = idx; + break; + case RTW89_ADDR_CAM_SEC_NORMAL: + if (sec_cam->type == RTW89_SEC_KEY_TYPE_BIP_CCMP128) { + idx = find_next_zero_bit(addr_cam->sec_cam_map, + RTW89_SEC_CAM_IN_ADDR_CAM, 5); + if (idx > 6) + return -EBUSY; + *key_idx = idx; + break; + } + + if (key->flags & IEEE80211_KEY_FLAG_PAIRWISE) { + idx = find_next_zero_bit(addr_cam->sec_cam_map, + RTW89_SEC_CAM_IN_ADDR_CAM, 0); + if (idx > 1) + return -EBUSY; + *key_idx = idx; + break; + } + + /* Group keys */ + idx = find_next_zero_bit(addr_cam->sec_cam_map, + RTW89_SEC_CAM_IN_ADDR_CAM, 2); + if (idx > 4) + return -EBUSY; + *key_idx = idx; + break; + case RTW89_ADDR_CAM_SEC_4GROUP: + if (sec_cam->type == RTW89_SEC_KEY_TYPE_BIP_CCMP128) { + if (test_bit(6, addr_cam->sec_cam_map)) + return -EINVAL; + *key_idx = 6; + break; + } + + if (key->flags & IEEE80211_KEY_FLAG_PAIRWISE) { + idx = find_next_zero_bit(addr_cam->sec_cam_map, + RTW89_SEC_CAM_IN_ADDR_CAM, 0); + if (idx > 1) + return -EBUSY; + *key_idx = idx; + break; + } + + /* Group keys */ + idx = find_next_zero_bit(addr_cam->sec_cam_map, + RTW89_SEC_CAM_IN_ADDR_CAM, 2); + if (idx > 5) + return -EBUSY; + *key_idx = idx; + break; + } + + return 0; +} + +static int rtw89_cam_attach_sec_cam(struct rtw89_dev *rtwdev, + struct ieee80211_vif *vif, + struct ieee80211_sta *sta, + struct ieee80211_key_conf *key, + struct rtw89_sec_cam_entry *sec_cam) +{ + struct rtw89_sta *rtwsta = sta_to_rtwsta_safe(sta); + struct rtw89_vif *rtwvif; + struct rtw89_addr_cam_entry *addr_cam; + u8 key_idx = 0; + int ret; + + if (!vif) { + rtw89_err(rtwdev, "No iface for adding sec cam\n"); + return -EINVAL; + } + + rtwvif = (struct rtw89_vif *)vif->drv_priv; + addr_cam = rtw89_get_addr_cam_of(rtwvif, rtwsta); + ret = rtw89_cam_get_addr_cam_key_idx(addr_cam, sec_cam, key, &key_idx); + if (ret) { + rtw89_err(rtwdev, "failed to get addr cam key idx %d, %d\n", + addr_cam->sec_ent_mode, sec_cam->type); + return ret; + } + + key->hw_key_idx = key_idx; + addr_cam->sec_ent_keyid[key_idx] = key->keyidx; + addr_cam->sec_ent[key_idx] = sec_cam->sec_cam_idx; + addr_cam->sec_entries[key_idx] = sec_cam; + set_bit(key_idx, addr_cam->sec_cam_map); + ret = rtw89_chip_h2c_dctl_sec_cam(rtwdev, rtwvif, rtwsta); + if (ret) { + rtw89_err(rtwdev, "failed to update dctl cam sec entry: %d\n", + ret); + return ret; + } + ret = rtw89_fw_h2c_cam(rtwdev, rtwvif, rtwsta, NULL); + if (ret) { + rtw89_err(rtwdev, "failed to update addr cam sec entry: %d\n", + ret); + clear_bit(key_idx, addr_cam->sec_cam_map); + addr_cam->sec_entries[key_idx] = NULL; + return ret; + } + + return 0; +} + +static int rtw89_cam_sec_key_install(struct rtw89_dev *rtwdev, + struct ieee80211_vif *vif, + struct ieee80211_sta *sta, + struct ieee80211_key_conf *key, + u8 hw_key_type, bool ext_key) +{ + struct rtw89_sec_cam_entry *sec_cam = NULL; + struct rtw89_cam_info *cam_info = &rtwdev->cam_info; + u8 sec_cam_idx; + int ret; + + /* maximum key length 256-bit */ + if (key->keylen > 32) { + rtw89_err(rtwdev, "invalid sec key length %d\n", key->keylen); + return -EINVAL; + } + + ret = rtw89_cam_get_avail_sec_cam(rtwdev, &sec_cam_idx, ext_key); + if (ret) { + rtw89_warn(rtwdev, "no available sec cam: %d ext: %d\n", + ret, ext_key); + return ret; + } + + sec_cam = kzalloc(sizeof(*sec_cam), GFP_KERNEL); + if (!sec_cam) { + ret = -ENOMEM; + goto err_release_cam; + } + + sec_cam->sec_cam_idx = sec_cam_idx; + sec_cam->type = hw_key_type; + sec_cam->len = RTW89_SEC_CAM_LEN; + sec_cam->ext_key = ext_key; + memcpy(sec_cam->key, key->key, key->keylen); + ret = rtw89_cam_send_sec_key_cmd(rtwdev, sec_cam); + if (ret) { + rtw89_err(rtwdev, "failed to send sec key cmd: %d\n", ret); + goto err_release_cam; + } + + /* associate with addr cam */ + ret = rtw89_cam_attach_sec_cam(rtwdev, vif, sta, key, sec_cam); + if (ret) { + rtw89_err(rtwdev, "failed to attach sec cam: %d\n", ret); + goto err_release_cam; + } + + return 0; + +err_release_cam: + kfree(sec_cam); + clear_bit(sec_cam_idx, cam_info->sec_cam_map); + if (ext_key) + clear_bit(sec_cam_idx + 1, cam_info->sec_cam_map); + + return ret; +} + +int rtw89_cam_sec_key_add(struct rtw89_dev *rtwdev, + struct ieee80211_vif *vif, + struct ieee80211_sta *sta, + struct ieee80211_key_conf *key) +{ + const struct rtw89_chip_info *chip = rtwdev->chip; + u8 hw_key_type; + bool ext_key = false; + int ret; + + switch (key->cipher) { + case WLAN_CIPHER_SUITE_WEP40: + hw_key_type = RTW89_SEC_KEY_TYPE_WEP40; + break; + case WLAN_CIPHER_SUITE_WEP104: + hw_key_type = RTW89_SEC_KEY_TYPE_WEP104; + break; + case WLAN_CIPHER_SUITE_CCMP: + hw_key_type = RTW89_SEC_KEY_TYPE_CCMP128; + key->flags |= IEEE80211_KEY_FLAG_SW_MGMT_TX; + break; + case WLAN_CIPHER_SUITE_CCMP_256: + hw_key_type = RTW89_SEC_KEY_TYPE_CCMP256; + key->flags |= IEEE80211_KEY_FLAG_SW_MGMT_TX; + ext_key = true; + break; + case WLAN_CIPHER_SUITE_GCMP: + hw_key_type = RTW89_SEC_KEY_TYPE_GCMP128; + key->flags |= IEEE80211_KEY_FLAG_SW_MGMT_TX; + break; + case WLAN_CIPHER_SUITE_GCMP_256: + hw_key_type = RTW89_SEC_KEY_TYPE_GCMP256; + key->flags |= IEEE80211_KEY_FLAG_SW_MGMT_TX; + ext_key = true; + break; + default: + return -EOPNOTSUPP; + } + + if (!chip->hw_sec_hdr) + key->flags |= IEEE80211_KEY_FLAG_GENERATE_IV; + + ret = rtw89_cam_sec_key_install(rtwdev, vif, sta, key, hw_key_type, + ext_key); + if (ret) { + rtw89_err(rtwdev, "failed to install key type %d ext %d: %d\n", + hw_key_type, ext_key, ret); + return ret; + } + + return 0; +} + +int rtw89_cam_sec_key_del(struct rtw89_dev *rtwdev, + struct ieee80211_vif *vif, + struct ieee80211_sta *sta, + struct ieee80211_key_conf *key, + bool inform_fw) +{ + struct rtw89_sta *rtwsta = sta_to_rtwsta_safe(sta); + struct rtw89_cam_info *cam_info = &rtwdev->cam_info; + struct rtw89_vif *rtwvif; + struct rtw89_addr_cam_entry *addr_cam; + struct rtw89_sec_cam_entry *sec_cam; + u8 key_idx = key->hw_key_idx; + u8 sec_cam_idx; + int ret = 0; + + if (!vif) { + rtw89_err(rtwdev, "No iface for deleting sec cam\n"); + return -EINVAL; + } + + rtwvif = (struct rtw89_vif *)vif->drv_priv; + addr_cam = rtw89_get_addr_cam_of(rtwvif, rtwsta); + sec_cam = addr_cam->sec_entries[key_idx]; + if (!sec_cam) + return -EINVAL; + + /* detach sec cam from addr cam */ + clear_bit(key_idx, addr_cam->sec_cam_map); + addr_cam->sec_entries[key_idx] = NULL; + if (inform_fw) { + ret = rtw89_chip_h2c_dctl_sec_cam(rtwdev, rtwvif, rtwsta); + if (ret) + rtw89_err(rtwdev, "failed to update dctl cam del key: %d\n", ret); + ret = rtw89_fw_h2c_cam(rtwdev, rtwvif, rtwsta, NULL); + if (ret) + rtw89_err(rtwdev, "failed to update cam del key: %d\n", ret); + } + + /* clear valid bit in addr cam will disable sec cam, + * so we don't need to send H2C command again + */ + sec_cam_idx = sec_cam->sec_cam_idx; + clear_bit(sec_cam_idx, cam_info->sec_cam_map); + if (sec_cam->ext_key) + clear_bit(sec_cam_idx + 1, cam_info->sec_cam_map); + + kfree(sec_cam); + + return ret; +} + +static void rtw89_cam_reset_key_iter(struct ieee80211_hw *hw, + struct ieee80211_vif *vif, + struct ieee80211_sta *sta, + struct ieee80211_key_conf *key, + void *data) +{ + struct rtw89_dev *rtwdev = (struct rtw89_dev *)data; + + rtw89_cam_sec_key_del(rtwdev, vif, sta, key, false); +} + +void rtw89_cam_deinit_addr_cam(struct rtw89_dev *rtwdev, + struct rtw89_addr_cam_entry *addr_cam) +{ + struct rtw89_cam_info *cam_info = &rtwdev->cam_info; + + addr_cam->valid = false; + clear_bit(addr_cam->addr_cam_idx, cam_info->addr_cam_map); +} + +void rtw89_cam_deinit_bssid_cam(struct rtw89_dev *rtwdev, + struct rtw89_bssid_cam_entry *bssid_cam) +{ + struct rtw89_cam_info *cam_info = &rtwdev->cam_info; + + bssid_cam->valid = false; + clear_bit(bssid_cam->bssid_cam_idx, cam_info->bssid_cam_map); +} + +void rtw89_cam_deinit(struct rtw89_dev *rtwdev, struct rtw89_vif *rtwvif) +{ + struct rtw89_addr_cam_entry *addr_cam = &rtwvif->addr_cam; + struct rtw89_bssid_cam_entry *bssid_cam = &rtwvif->bssid_cam; + + rtw89_cam_deinit_addr_cam(rtwdev, addr_cam); + rtw89_cam_deinit_bssid_cam(rtwdev, bssid_cam); +} + +void rtw89_cam_reset_keys(struct rtw89_dev *rtwdev) +{ + rcu_read_lock(); + ieee80211_iter_keys_rcu(rtwdev->hw, NULL, rtw89_cam_reset_key_iter, rtwdev); + rcu_read_unlock(); +} + +static int rtw89_cam_get_avail_addr_cam(struct rtw89_dev *rtwdev, + u8 *addr_cam_idx) +{ + const struct rtw89_chip_info *chip = rtwdev->chip; + struct rtw89_cam_info *cam_info = &rtwdev->cam_info; + u8 addr_cam_num = chip->acam_num; + u8 idx; + + idx = find_first_zero_bit(cam_info->addr_cam_map, addr_cam_num); + if (idx >= addr_cam_num) + return -EBUSY; + + set_bit(idx, cam_info->addr_cam_map); + *addr_cam_idx = idx; + + return 0; +} + +int rtw89_cam_init_addr_cam(struct rtw89_dev *rtwdev, + struct rtw89_addr_cam_entry *addr_cam, + const struct rtw89_bssid_cam_entry *bssid_cam) +{ + u8 addr_cam_idx; + int i; + int ret; + + if (unlikely(addr_cam->valid)) { + rtw89_debug(rtwdev, RTW89_DBG_FW, + "addr cam is already valid; skip init\n"); + return 0; + } + + ret = rtw89_cam_get_avail_addr_cam(rtwdev, &addr_cam_idx); + if (ret) { + rtw89_err(rtwdev, "failed to get available addr cam\n"); + return ret; + } + + addr_cam->addr_cam_idx = addr_cam_idx; + addr_cam->len = ADDR_CAM_ENT_SIZE; + addr_cam->offset = 0; + addr_cam->valid = true; + addr_cam->addr_mask = 0; + addr_cam->mask_sel = RTW89_NO_MSK; + addr_cam->sec_ent_mode = RTW89_ADDR_CAM_SEC_NORMAL; + bitmap_zero(addr_cam->sec_cam_map, RTW89_SEC_CAM_IN_ADDR_CAM); + + for (i = 0; i < RTW89_SEC_CAM_IN_ADDR_CAM; i++) { + addr_cam->sec_ent_keyid[i] = 0; + addr_cam->sec_ent[i] = 0; + } + + /* associate addr cam with bssid cam */ + addr_cam->bssid_cam_idx = bssid_cam->bssid_cam_idx; + + return 0; +} + +static int rtw89_cam_get_avail_bssid_cam(struct rtw89_dev *rtwdev, + u8 *bssid_cam_idx) +{ + const struct rtw89_chip_info *chip = rtwdev->chip; + struct rtw89_cam_info *cam_info = &rtwdev->cam_info; + u8 bssid_cam_num = chip->bcam_num; + u8 idx; + + idx = find_first_zero_bit(cam_info->bssid_cam_map, bssid_cam_num); + if (idx >= bssid_cam_num) + return -EBUSY; + + set_bit(idx, cam_info->bssid_cam_map); + *bssid_cam_idx = idx; + + return 0; +} + +int rtw89_cam_init_bssid_cam(struct rtw89_dev *rtwdev, + struct rtw89_vif *rtwvif, + struct rtw89_bssid_cam_entry *bssid_cam, + const u8 *bssid) +{ + u8 bssid_cam_idx; + int ret; + + if (unlikely(bssid_cam->valid)) { + rtw89_debug(rtwdev, RTW89_DBG_FW, + "bssid cam is already valid; skip init\n"); + return 0; + } + + ret = rtw89_cam_get_avail_bssid_cam(rtwdev, &bssid_cam_idx); + if (ret) { + rtw89_err(rtwdev, "failed to get available bssid cam\n"); + return ret; + } + + bssid_cam->bssid_cam_idx = bssid_cam_idx; + bssid_cam->phy_idx = rtwvif->phy_idx; + bssid_cam->len = BSSID_CAM_ENT_SIZE; + bssid_cam->offset = 0; + bssid_cam->valid = true; + ether_addr_copy(bssid_cam->bssid, bssid); + + return 0; +} + +void rtw89_cam_bssid_changed(struct rtw89_dev *rtwdev, struct rtw89_vif *rtwvif) +{ + struct rtw89_bssid_cam_entry *bssid_cam = &rtwvif->bssid_cam; + + ether_addr_copy(bssid_cam->bssid, rtwvif->bssid); +} + +int rtw89_cam_init(struct rtw89_dev *rtwdev, struct rtw89_vif *rtwvif) +{ + struct rtw89_addr_cam_entry *addr_cam = &rtwvif->addr_cam; + struct rtw89_bssid_cam_entry *bssid_cam = &rtwvif->bssid_cam; + int ret; + + ret = rtw89_cam_init_bssid_cam(rtwdev, rtwvif, bssid_cam, rtwvif->bssid); + if (ret) { + rtw89_err(rtwdev, "failed to init bssid cam\n"); + return ret; + } + + ret = rtw89_cam_init_addr_cam(rtwdev, addr_cam, bssid_cam); + if (ret) { + rtw89_err(rtwdev, "failed to init addr cam\n"); + return ret; + } + + return 0; +} + +int rtw89_cam_fill_bssid_cam_info(struct rtw89_dev *rtwdev, + struct rtw89_vif *rtwvif, + struct rtw89_sta *rtwsta, u8 *cmd) +{ + struct ieee80211_vif *vif = rtwvif_to_vif(rtwvif); + struct rtw89_bssid_cam_entry *bssid_cam = rtw89_get_bssid_cam_of(rtwvif, rtwsta); + u8 bss_color = vif->bss_conf.he_bss_color.color; + u8 bss_mask; + + if (vif->bss_conf.nontransmitted) + bss_mask = RTW89_BSSID_MATCH_5_BYTES; + else + bss_mask = RTW89_BSSID_MATCH_ALL; + + FWCMD_SET_ADDR_BSSID_IDX(cmd, bssid_cam->bssid_cam_idx); + FWCMD_SET_ADDR_BSSID_OFFSET(cmd, bssid_cam->offset); + FWCMD_SET_ADDR_BSSID_LEN(cmd, bssid_cam->len); + FWCMD_SET_ADDR_BSSID_VALID(cmd, bssid_cam->valid); + FWCMD_SET_ADDR_BSSID_MASK(cmd, bss_mask); + FWCMD_SET_ADDR_BSSID_BB_SEL(cmd, bssid_cam->phy_idx); + FWCMD_SET_ADDR_BSSID_BSS_COLOR(cmd, bss_color); + + FWCMD_SET_ADDR_BSSID_BSSID0(cmd, bssid_cam->bssid[0]); + FWCMD_SET_ADDR_BSSID_BSSID1(cmd, bssid_cam->bssid[1]); + FWCMD_SET_ADDR_BSSID_BSSID2(cmd, bssid_cam->bssid[2]); + FWCMD_SET_ADDR_BSSID_BSSID3(cmd, bssid_cam->bssid[3]); + FWCMD_SET_ADDR_BSSID_BSSID4(cmd, bssid_cam->bssid[4]); + FWCMD_SET_ADDR_BSSID_BSSID5(cmd, bssid_cam->bssid[5]); + + return 0; +} + +static u8 rtw89_cam_addr_hash(u8 start, const u8 *addr) +{ + u8 hash = 0; + u8 i; + + for (i = start; i < ETH_ALEN; i++) + hash ^= addr[i]; + + return hash; +} + +void rtw89_cam_fill_addr_cam_info(struct rtw89_dev *rtwdev, + struct rtw89_vif *rtwvif, + struct rtw89_sta *rtwsta, + const u8 *scan_mac_addr, + u8 *cmd) +{ + struct ieee80211_vif *vif = rtwvif_to_vif(rtwvif); + struct rtw89_addr_cam_entry *addr_cam = rtw89_get_addr_cam_of(rtwvif, rtwsta); + struct ieee80211_sta *sta = rtwsta_to_sta_safe(rtwsta); + const u8 *sma = scan_mac_addr ? scan_mac_addr : rtwvif->mac_addr; + u8 sma_hash, tma_hash, addr_msk_start; + u8 sma_start = 0; + u8 tma_start = 0; + u8 *tma = sta ? sta->addr : rtwvif->bssid; + + if (addr_cam->addr_mask != 0) { + addr_msk_start = __ffs(addr_cam->addr_mask); + if (addr_cam->mask_sel == RTW89_SMA) + sma_start = addr_msk_start; + else if (addr_cam->mask_sel == RTW89_TMA) + tma_start = addr_msk_start; + } + sma_hash = rtw89_cam_addr_hash(sma_start, sma); + tma_hash = rtw89_cam_addr_hash(tma_start, tma); + + FWCMD_SET_ADDR_IDX(cmd, addr_cam->addr_cam_idx); + FWCMD_SET_ADDR_OFFSET(cmd, addr_cam->offset); + FWCMD_SET_ADDR_LEN(cmd, addr_cam->len); + + FWCMD_SET_ADDR_VALID(cmd, addr_cam->valid); + FWCMD_SET_ADDR_NET_TYPE(cmd, rtwvif->net_type); + FWCMD_SET_ADDR_BCN_HIT_COND(cmd, rtwvif->bcn_hit_cond); + FWCMD_SET_ADDR_HIT_RULE(cmd, rtwvif->hit_rule); + FWCMD_SET_ADDR_BB_SEL(cmd, rtwvif->phy_idx); + FWCMD_SET_ADDR_ADDR_MASK(cmd, addr_cam->addr_mask); + FWCMD_SET_ADDR_MASK_SEL(cmd, addr_cam->mask_sel); + FWCMD_SET_ADDR_SMA_HASH(cmd, sma_hash); + FWCMD_SET_ADDR_TMA_HASH(cmd, tma_hash); + + FWCMD_SET_ADDR_BSSID_CAM_IDX(cmd, addr_cam->bssid_cam_idx); + + FWCMD_SET_ADDR_SMA0(cmd, sma[0]); + FWCMD_SET_ADDR_SMA1(cmd, sma[1]); + FWCMD_SET_ADDR_SMA2(cmd, sma[2]); + FWCMD_SET_ADDR_SMA3(cmd, sma[3]); + FWCMD_SET_ADDR_SMA4(cmd, sma[4]); + FWCMD_SET_ADDR_SMA5(cmd, sma[5]); + + FWCMD_SET_ADDR_TMA0(cmd, tma[0]); + FWCMD_SET_ADDR_TMA1(cmd, tma[1]); + FWCMD_SET_ADDR_TMA2(cmd, tma[2]); + FWCMD_SET_ADDR_TMA3(cmd, tma[3]); + FWCMD_SET_ADDR_TMA4(cmd, tma[4]); + FWCMD_SET_ADDR_TMA5(cmd, tma[5]); + + FWCMD_SET_ADDR_PORT_INT(cmd, rtwvif->port); + FWCMD_SET_ADDR_TSF_SYNC(cmd, rtwvif->port); + FWCMD_SET_ADDR_TF_TRS(cmd, rtwvif->trigger); + FWCMD_SET_ADDR_LSIG_TXOP(cmd, rtwvif->lsig_txop); + FWCMD_SET_ADDR_TGT_IND(cmd, rtwvif->tgt_ind); + FWCMD_SET_ADDR_FRM_TGT_IND(cmd, rtwvif->frm_tgt_ind); + FWCMD_SET_ADDR_MACID(cmd, rtwsta ? rtwsta->mac_id : rtwvif->mac_id); + if (rtwvif->net_type == RTW89_NET_TYPE_INFRA) + FWCMD_SET_ADDR_AID12(cmd, vif->cfg.aid & 0xfff); + else if (rtwvif->net_type == RTW89_NET_TYPE_AP_MODE) + FWCMD_SET_ADDR_AID12(cmd, sta ? sta->aid & 0xfff : 0); + FWCMD_SET_ADDR_WOL_PATTERN(cmd, rtwvif->wowlan_pattern); + FWCMD_SET_ADDR_WOL_UC(cmd, rtwvif->wowlan_uc); + FWCMD_SET_ADDR_WOL_MAGIC(cmd, rtwvif->wowlan_magic); + FWCMD_SET_ADDR_WAPI(cmd, addr_cam->wapi); + FWCMD_SET_ADDR_SEC_ENT_MODE(cmd, addr_cam->sec_ent_mode); + FWCMD_SET_ADDR_SEC_ENT0_KEYID(cmd, addr_cam->sec_ent_keyid[0]); + FWCMD_SET_ADDR_SEC_ENT1_KEYID(cmd, addr_cam->sec_ent_keyid[1]); + FWCMD_SET_ADDR_SEC_ENT2_KEYID(cmd, addr_cam->sec_ent_keyid[2]); + FWCMD_SET_ADDR_SEC_ENT3_KEYID(cmd, addr_cam->sec_ent_keyid[3]); + FWCMD_SET_ADDR_SEC_ENT4_KEYID(cmd, addr_cam->sec_ent_keyid[4]); + FWCMD_SET_ADDR_SEC_ENT5_KEYID(cmd, addr_cam->sec_ent_keyid[5]); + FWCMD_SET_ADDR_SEC_ENT6_KEYID(cmd, addr_cam->sec_ent_keyid[6]); + + FWCMD_SET_ADDR_SEC_ENT_VALID(cmd, addr_cam->sec_cam_map[0] & 0xff); + FWCMD_SET_ADDR_SEC_ENT0(cmd, addr_cam->sec_ent[0]); + FWCMD_SET_ADDR_SEC_ENT1(cmd, addr_cam->sec_ent[1]); + FWCMD_SET_ADDR_SEC_ENT2(cmd, addr_cam->sec_ent[2]); + FWCMD_SET_ADDR_SEC_ENT3(cmd, addr_cam->sec_ent[3]); + FWCMD_SET_ADDR_SEC_ENT4(cmd, addr_cam->sec_ent[4]); + FWCMD_SET_ADDR_SEC_ENT5(cmd, addr_cam->sec_ent[5]); + FWCMD_SET_ADDR_SEC_ENT6(cmd, addr_cam->sec_ent[6]); +} + +void rtw89_cam_fill_dctl_sec_cam_info_v1(struct rtw89_dev *rtwdev, + struct rtw89_vif *rtwvif, + struct rtw89_sta *rtwsta, + u8 *cmd) +{ + struct rtw89_addr_cam_entry *addr_cam = rtw89_get_addr_cam_of(rtwvif, rtwsta); + + SET_DCTL_MACID_V1(cmd, rtwsta ? rtwsta->mac_id : rtwvif->mac_id); + SET_DCTL_OPERATION_V1(cmd, 1); + + SET_DCTL_SEC_ENT0_KEYID_V1(cmd, addr_cam->sec_ent_keyid[0]); + SET_DCTL_SEC_ENT1_KEYID_V1(cmd, addr_cam->sec_ent_keyid[1]); + SET_DCTL_SEC_ENT2_KEYID_V1(cmd, addr_cam->sec_ent_keyid[2]); + SET_DCTL_SEC_ENT3_KEYID_V1(cmd, addr_cam->sec_ent_keyid[3]); + SET_DCTL_SEC_ENT4_KEYID_V1(cmd, addr_cam->sec_ent_keyid[4]); + SET_DCTL_SEC_ENT5_KEYID_V1(cmd, addr_cam->sec_ent_keyid[5]); + SET_DCTL_SEC_ENT6_KEYID_V1(cmd, addr_cam->sec_ent_keyid[6]); + + SET_DCTL_SEC_ENT_VALID_V1(cmd, addr_cam->sec_cam_map[0] & 0xff); + SET_DCTL_SEC_ENT0_V1(cmd, addr_cam->sec_ent[0]); + SET_DCTL_SEC_ENT1_V1(cmd, addr_cam->sec_ent[1]); + SET_DCTL_SEC_ENT2_V1(cmd, addr_cam->sec_ent[2]); + SET_DCTL_SEC_ENT3_V1(cmd, addr_cam->sec_ent[3]); + SET_DCTL_SEC_ENT4_V1(cmd, addr_cam->sec_ent[4]); + SET_DCTL_SEC_ENT5_V1(cmd, addr_cam->sec_ent[5]); + SET_DCTL_SEC_ENT6_V1(cmd, addr_cam->sec_ent[6]); +} diff --git a/sys/contrib/dev/rtw89/cam.h b/sys/contrib/dev/rtw89/cam.h new file mode 100644 index 000000000000..83c160a614e6 --- /dev/null +++ b/sys/contrib/dev/rtw89/cam.h @@ -0,0 +1,391 @@ +/* SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause */ +/* Copyright(c) 2019-2020 Realtek Corporation + */ + +#ifndef __RTW89_CAM_H__ +#define __RTW89_CAM_H__ + +#include "core.h" + +#define RTW89_SEC_CAM_LEN 20 *** 150106 LINES SKIPPED *** From nobody Wed Jan 18 16:24:39 2023 X-Original-To: dev-commits-src-branches@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 4Nxrgq548Nz2yJL1; Wed, 18 Jan 2023 16:24:39 +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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Nxrgq49C3z3DH7; Wed, 18 Jan 2023 16:24:39 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1674059079; 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=XlRIlA8U+1zPXwSXelmA532VGpkcnQPk6Qzhn4rsQFU=; b=RcFHpMHn7v3uHGgeHX7dWAbueBrgf5JBKWrUmL+m7GqGOIRXfMRN/HzJ0Wdz5jOeu2qRVw M8bg1HyxiKLUaxnLTT+1xnKQWVm1OMEUODcDTMjRKjR1fNirbWU9Ds/h+xvlOq+KS1Qg9i QEzZXxBw+Bwd41XoSDTaKfP7WqIgRY15tujzQ+YcsW12z6DWnDIEz7B1w6slfaSgD/UIzg 3NJhycOr/I3BafViWpcrkLK7XN2MUAZjLu/B0ZLgSmRFld3pDDcFINPtMCxAA0LdFn1GNG x6K85JtaRc/zXiQssPMEf7iePQ7tV3Uj4+ZWyxzTnkWyV5REvULVxl+CH1CMHQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1674059079; 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=XlRIlA8U+1zPXwSXelmA532VGpkcnQPk6Qzhn4rsQFU=; b=lYiOoXxIrNuvtsdte6Z9u7j/183OajfIh59wGGWzY4dJ88uPe8XJK+ovWsjUYLUd+infwv kBtBo6fkhQUG/jkT5ubp/+xiHol+7zo5AP9qajH2ANc7ThLyXdOqOub4XwtZ/HioUNvh1L HWCFs5hFmwpI/QtiaYS3TewxcFBxl66JC79d9M/6WoWYZbivSpLF75Qrt9Tweyq9fcu3um WjSaj9SZqRaOgeSGeDvqZOgsCoAm0FXyG0V93hECzBWX80N3MtL5paadatH6WbMD071Abo uihcjg6ZQgzb2WwvXKWqokkfKJdxvg+HETTGn1Q2Fz+JUd11llBNy5B9uw2iDg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1674059079; a=rsa-sha256; cv=none; b=F1e8Je6unVB1P+fODHBtHY11VU2inREWR0aKN47CZNvqvC9RDGGPA9lJb/n6D0wt+2uJ6D xfWICpn8i3rr5oM2JLwJtx5g1RWCOvIZazuNnnc9+iPPGBMcKUpjXl1nYFwaP4EUl/6O8y 0IGgK/wT08+Y/HJJDO11Ka15D7hPuh9Z4ZvN1zHhTIBPLrFa5OtXIkO/8VrUP5+S3Q89wG 6y+RWI4r915v4AuAZgWhmb/TjsTJNgkoK/9mwGNaJ+a3aw/wAFEl5lHmyUGmifvzK6ampt v/H8R1nxUCiTYEOLtEf5EsFDUPNeOl2pXQ2rnxvkGNbVWG2WfMJnt0k/shwcww== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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 did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Nxrgq3GWCzHp6; Wed, 18 Jan 2023 16:24:39 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 30IGOdnR037709; Wed, 18 Jan 2023 16:24:39 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 30IGOdTG037708; Wed, 18 Jan 2023 16:24:39 GMT (envelope-from git) Date: Wed, 18 Jan 2023 16:24:39 GMT Message-Id: <202301181624.30IGOdTG037708@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: "Bjoern A. Zeeb" Subject: git: b8262cc1340e - stable/13 - rtw89: import firmware for Realtek's rtw89 supported chipsets. List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bz X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: b8262cc1340e993829dc7f6512b4773cd167b89e Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=b8262cc1340e993829dc7f6512b4773cd167b89e commit b8262cc1340e993829dc7f6512b4773cd167b89e Author: Bjoern A. Zeeb AuthorDate: 2022-09-09 12:52:54 +0000 Commit: Bjoern A. Zeeb CommitDate: 2023-01-18 13:22:44 +0000 rtw89: import firmware for Realtek's rtw89 supported chipsets. Import the most recent versions of the firmware images for the rtw89 driver. This is based on linux-firmware at 2f2f0181581d3e35bfdb9fc65f609ee9d3fbaeb7. The license of the firmware matches the previously added rtw88(4) firmware and you can find a copy in sys/contrib/dev/rtw89fw/LICENCE.rtlwifi_firmware.txt. Add build infrastructure to create the .ko files but do not yet hook it up to the build until all parts are in the tree. Approved by: core.11 (imp) [2022-03-27] (cherry picked from commit 866e021654cfb72c050fd228dee476fb92fa6f48) --- .../dev/rtw89fw/LICENCE.rtlwifi_firmware.txt | 39 +++++++++++++++++++++ sys/contrib/dev/rtw89fw/WHENCE | 8 +++++ sys/contrib/dev/rtw89fw/rtw8852a_fw.bin | Bin 0 -> 1423232 bytes sys/contrib/dev/rtw89fw/rtw8852c_fw.bin | Bin 0 -> 1340192 bytes sys/modules/rtw89fw/Makefile | 7 ++++ sys/modules/rtw89fw/Makefile.inc | 17 +++++++++ sys/modules/rtw89fw/rtw8852a/Makefile | 6 ++++ sys/modules/rtw89fw/rtw8852c/Makefile | 6 ++++ 8 files changed, 83 insertions(+) diff --git a/sys/contrib/dev/rtw89fw/LICENCE.rtlwifi_firmware.txt b/sys/contrib/dev/rtw89fw/LICENCE.rtlwifi_firmware.txt new file mode 100644 index 000000000000..d70921f49379 --- /dev/null +++ b/sys/contrib/dev/rtw89fw/LICENCE.rtlwifi_firmware.txt @@ -0,0 +1,39 @@ +Copyright (c) 2010, Realtek Semiconductor Corporation +All rights reserved. + +Redistribution. Redistribution and use in binary form, without +modification, are permitted provided that the following conditions are +met: + +* Redistributions must reproduce the above copyright notice and the + following disclaimer in the documentation and/or other materials + provided with the distribution. +* Neither the name of Realtek Semiconductor Corporation nor the names of its + suppliers may be used to endorse or promote products derived from this + software without specific prior written permission. +* No reverse engineering, decompilation, or disassembly of this software + is permitted. + +Limited patent license. Realtek Semiconductor Corporation grants a world-wide, +royalty-free, non-exclusive license under patents it now or hereafter +owns or controls to make, have made, use, import, offer to sell and +sell ("Utilize") this software, but solely to the extent that any +such patent is necessary to Utilize the software alone, or in +combination with an operating system licensed under an approved Open +Source license as listed by the Open Source Initiative at +http://opensource.org/licenses. The patent license shall not apply to +any other combinations which include this software. No hardware per +se is licensed hereunder. + +DISCLAIMER. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND +CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS +OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR +TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE +USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. diff --git a/sys/contrib/dev/rtw89fw/WHENCE b/sys/contrib/dev/rtw89fw/WHENCE new file mode 100644 index 000000000000..496ef115ef0b --- /dev/null +++ b/sys/contrib/dev/rtw89fw/WHENCE @@ -0,0 +1,8 @@ + +Driver: rtw89 - Realtek 802.11ax WLAN driver for RTL8852A + +File: rtw89/rtw8852a_fw.bin +File: rtw89/rtw8852c_fw.bin + +Licence: Redistributable. See LICENCE.rtlwifi_firmware.txt for details. + diff --git a/sys/contrib/dev/rtw89fw/rtw8852a_fw.bin b/sys/contrib/dev/rtw89fw/rtw8852a_fw.bin new file mode 100644 index 000000000000..00d139b3f2f1 Binary files /dev/null and b/sys/contrib/dev/rtw89fw/rtw8852a_fw.bin differ diff --git a/sys/contrib/dev/rtw89fw/rtw8852c_fw.bin b/sys/contrib/dev/rtw89fw/rtw8852c_fw.bin new file mode 100644 index 000000000000..86b634aeb69f Binary files /dev/null and b/sys/contrib/dev/rtw89fw/rtw8852c_fw.bin differ diff --git a/sys/modules/rtw89fw/Makefile b/sys/modules/rtw89fw/Makefile new file mode 100644 index 000000000000..2db828c06f00 --- /dev/null +++ b/sys/modules/rtw89fw/Makefile @@ -0,0 +1,7 @@ +# $FreeBSD$ + +SUBDIR= \ + rtw8852a \ + rtw8852c + +.include diff --git a/sys/modules/rtw89fw/Makefile.inc b/sys/modules/rtw89fw/Makefile.inc new file mode 100644 index 000000000000..96ab73502152 --- /dev/null +++ b/sys/modules/rtw89fw/Makefile.inc @@ -0,0 +1,17 @@ +# $FreeBSD$ +# +# Common rules for building firmware. Note this gets auto-included +# by the subdir Makefile's as a consequence of included bsd.kmod.mk. + +_NAME= rtw${NAME}_fw.bin + +IMG= ${_NAME} +KMOD= ${_NAME} + +CLEANFILES+= ${IMG} + +FIRMWS= ${IMG}:${IMG}:${VERSION} + +${IMG}: ${SRCTOP}/sys/contrib/dev/rtw89fw/${IMG} + cp ${.ALLSRC} ${.TARGET} + diff --git a/sys/modules/rtw89fw/rtw8852a/Makefile b/sys/modules/rtw89fw/rtw8852a/Makefile new file mode 100644 index 000000000000..7ed7ad1f6c71 --- /dev/null +++ b/sys/modules/rtw89fw/rtw8852a/Makefile @@ -0,0 +1,6 @@ +# $FreeBSD$ + +VERSION= 013360 +NAME= 8852a + +.include diff --git a/sys/modules/rtw89fw/rtw8852c/Makefile b/sys/modules/rtw89fw/rtw8852c/Makefile new file mode 100644 index 000000000000..7b871745cde4 --- /dev/null +++ b/sys/modules/rtw89fw/rtw8852c/Makefile @@ -0,0 +1,6 @@ +# $FreeBSD$ + +VERSION= 027200 +NAME= 8852c + +.include From nobody Wed Jan 18 16:24:40 2023 X-Original-To: dev-commits-src-branches@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 4Nxrgr68ntz2yJ12; Wed, 18 Jan 2023 16:24:40 +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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Nxrgr5M21z3DDt; Wed, 18 Jan 2023 16:24:40 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1674059080; 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=erQjhqyisNDiY2GeFioAvKq3aGr8+rgn9nE1Gb028dM=; b=l1ygI2qShjmt4LywZag73ryS78jRbHZQzV3L6cWTVYpVTtN+4ZJkTP/e7PCWQc4IsU/HaJ ABLRhWYVwcYJQlOxhsGGr6NXYOIcwQIPyKZucQLEoKzTNB+wH9uEVf0sZvgB6DErtP1dHh kIDhRd6BbVO5juI4mgNEyM/jkvhl+BN6B8HnWwvfyF0kQ9F9p2WImnvgGMazYFWUWeZHf6 KSs5k0Hqfx9Ar8/LKwyGAUwxOiLDwq9bZ6pN7zjNfiiJKo5lnC/Zsk/ooqqXHxIhiW0ghi w/jAOH+rEwc3/OOzwXuJLDaHwlwDq40NtKkZTpdJhM2jtjfSC8r+mmhHyT1BWQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1674059080; 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=erQjhqyisNDiY2GeFioAvKq3aGr8+rgn9nE1Gb028dM=; b=fkKKdIDZPUlZlTKnJwnlDImjpMut6/uChow089ULwRjEm/GFUCDdHGjMOhiuvHRj2lKuWS A3iyPGR+7txIfYp4fhZ7cSUypRQvql1j8EqFIW/dUaQmFW0PvYuLY9+QO9gpE8ojv5/TZC ffkzpsmybEGuSSAiEFFrfqymPL7ZpfXDJdn1RdUNOBDhPdcYz4ef7VSiJdC/hO5URntw6R DCUldA530W8/Z16c8CcQxUnRJyNLSPfaPVEwLbEUKVeNseiDXdLNwlfpxtX8dzsgXIdsD3 yUuPx7t6X+X2Q+ltBeRYt4wsEZ4xfhUR5LuQtVyVvPcaGVgfsy+sOm78kzgT1Q== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1674059080; a=rsa-sha256; cv=none; b=GuCvANO4jV3GhU9eoSpoJxWHMgQD02URTDoTIOL65DIl74WpWTHcmIlWsxeMtSYqEJGPY8 AQdgiV2IrBz7AJ1G210MwKdhSvqufgCHfamYwl/CQwC0qdCuAyC1M/i3avqYGLkXr5E/xm QkJV3m+qDV5uhthDYOI/yqebvsM1k50f2Taz05wBrQPcjq1gn7l3fgD6FVc+MOyjA2/lgi dGaCUrB4zSqHEYCQcpxVVQVkJQX9P5eNqKEcRTcBCAtGpXRtYMA+7+J7PV8osue8Mf/gDt Trog3TjPpgzu7EQ8OBi+GULoOsAKzUjco4oPtDP5yU01yfH6RL8Y4udd5CXIYw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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 did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Nxrgr40cdzHp7; Wed, 18 Jan 2023 16:24:40 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 30IGOeES037733; Wed, 18 Jan 2023 16:24:40 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 30IGOepA037732; Wed, 18 Jan 2023 16:24:40 GMT (envelope-from git) Date: Wed, 18 Jan 2023 16:24:40 GMT Message-Id: <202301181624.30IGOepA037732@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: "Bjoern A. Zeeb" Subject: git: 2cf1918dfce3 - stable/13 - lindebugfs,rtw88,rtw89: correct module dependencies List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bz X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: 2cf1918dfce36f3db1fb263ca6e247a8c259ac28 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=2cf1918dfce36f3db1fb263ca6e247a8c259ac28 commit 2cf1918dfce36f3db1fb263ca6e247a8c259ac28 Author: Bjoern A. Zeeb AuthorDate: 2022-09-25 21:36:10 +0000 Commit: Bjoern A. Zeeb CommitDate: 2023-01-18 13:22:52 +0000 lindebugfs,rtw88,rtw89: correct module dependencies In f697b9432d9c7aa4c5ab5f5445ef5dc1bd40ce00 the name of the PSEUDOFS was changed from debugsfs to lindebugfs but the in-tree consumers were not updated now leaving the drivers not loading if compiled with debugfs support due to missing dependencies. (cherry picked from commit 1a2b55732ff27fba2533724a72a39d33516c9417) --- sys/contrib/dev/rtw88/pci.c | 2 +- sys/contrib/dev/rtw89/pci.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/sys/contrib/dev/rtw88/pci.c b/sys/contrib/dev/rtw88/pci.c index 6c836be771bc..bad6dd5b5b98 100644 --- a/sys/contrib/dev/rtw88/pci.c +++ b/sys/contrib/dev/rtw88/pci.c @@ -1955,6 +1955,6 @@ MODULE_VERSION(rtw_pci, 1); MODULE_DEPEND(rtw_pci, linuxkpi, 1, 1, 1); MODULE_DEPEND(rtw_pci, linuxkpi_wlan, 1, 1, 1); #ifdef CONFIG_RTW88_DEBUGFS -MODULE_DEPEND(rtw_pci, debugfs, 1, 1, 1); +MODULE_DEPEND(rtw_pci, lindebugfs, 1, 1, 1); #endif #endif diff --git a/sys/contrib/dev/rtw89/pci.c b/sys/contrib/dev/rtw89/pci.c index 046bcdf4dbc9..078d6f0e5866 100644 --- a/sys/contrib/dev/rtw89/pci.c +++ b/sys/contrib/dev/rtw89/pci.c @@ -3937,6 +3937,6 @@ MODULE_VERSION(rtw89_pci, 1); MODULE_DEPEND(rtw89_pci, linuxkpi, 1, 1, 1); MODULE_DEPEND(rtw89_pci, linuxkpi_wlan, 1, 1, 1); #ifdef CONFIG_RTW89_DEBUGFS -MODULE_DEPEND(rtw89_pci, debugfs, 1, 1, 1); +MODULE_DEPEND(rtw89_pci, lindebugfs, 1, 1, 1); #endif #endif From nobody Wed Jan 18 16:24:41 2023 X-Original-To: dev-commits-src-branches@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 4Nxrgt1K7Rz2yJLB; Wed, 18 Jan 2023 16:24:42 +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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Nxrgs727Lz3DXW; Wed, 18 Jan 2023 16:24:41 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1674059082; 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=fZwSvQtyv4Df3AeXowsSwrppgk0zL045WJOTBKSYqpg=; b=pNXzdC46nb/4PjwwYfSgylEworaRkx+su7AitCPk/w8uFtrkPHBhR6ap7IK66/G/kYjfBp oEPeY+BKe1tq/q87avkEjuAQK8UbBFumnUbDBGBH1ifc//mD9jwWf3m30F8ufoNNMse1Lo K6G5IBMvOFIqc6X+bqHFmPiB87Gl9FFyRXF3HGcNdLhLlIlQ8pq1WjAGChDxP6Brh/E1UG KpQOMIAz2FUkhVQT7Y526AB/8v1vuAP9C192AsKdLvdCDtVtdj9/idDFInPLTT4Dodh7UQ Lo2A0OaWwMCOycG3/GUr5Ldb/RU3MSs5z0CVEqK8zol0b8sPtiTzCxiEcNdr0Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1674059082; 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=fZwSvQtyv4Df3AeXowsSwrppgk0zL045WJOTBKSYqpg=; b=BAlGrTcECr7di9i9VFfBK4GvCWAw2o1p+QXe+WhPO+IWtReql/voDkpdsG3dxRVC5bP6rS 3NBRtusJB5HUr+fHmMBvOCc75FnnffhvYvWgTWq+LKJ9vY/yVWI6X1N/O50UyC6AKNQ9sn WZiqNOyKKY1PwqZWpFug0KydMj0izM29KgN5TbnyY8i9gOmyxZhvlMV6CyKDBNaM7DF5B+ c4hB4lnBu67fqZ4o/cVJk9sUWa2GMXS3BhwB3QJsODbsbgzpZq52NXz6oGgJ4Bjb9hEVbN zgXTAk7gF/cCli2rzXVWGL1ky1PR/OrePnQ4ONuTDlRwZ+yqwkhC9OGwkKgRUg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1674059082; a=rsa-sha256; cv=none; b=nvhvhPknBFVcWbVj87nNehG5aRdSfvJrn1wRua52YMr7Fvq4PgJmYvLgTFCuNCJAKOoFHv 37fyl80fmEKgG8R7hmxNuS2NxR20V6L7BmKiDDRg7Du76+YJ981Edh11Iir6H7OoEZV66m Wt5hxvqsIPMQSrjjklN69T39yVUeNzjtxemkXJndTH3jB3jmd5vx3TD7x1XodN7w7h3TAG HjYJ9GCqHgTR8AJ94wlwXXV58oJ4Nn+PWldB0kYgiwKnP3Md4e7Cb18F/iqp+8Rbn6LlM5 8dtZoOiXdZzigovWxKuiYkQnH5hVXnfToFNmVyjDzg8zBkWcaOl4EmnN002q1Q== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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 did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Nxrgs58hkzHp8; Wed, 18 Jan 2023 16:24:41 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 30IGOfW7037757; Wed, 18 Jan 2023 16:24:41 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 30IGOfJc037756; Wed, 18 Jan 2023 16:24:41 GMT (envelope-from git) Date: Wed, 18 Jan 2023 16:24:41 GMT Message-Id: <202301181624.30IGOfJc037756@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: "Bjoern A. Zeeb" Subject: git: 07adc4446abc - stable/13 - LinuxKPI: SKB update List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bz X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: 07adc4446abcd49e678a01fe1e9c6f732e420982 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=07adc4446abcd49e678a01fe1e9c6f732e420982 commit 07adc4446abcd49e678a01fe1e9c6f732e420982 Author: Bjoern A. Zeeb AuthorDate: 2022-11-28 20:54:57 +0000 Commit: Bjoern A. Zeeb CommitDate: 2023-01-18 13:23:37 +0000 LinuxKPI: SKB update - skb_reset_tail_pointer(): we do not do offsets so do a plain reset - skb_add_rx_frag(): adjust data_len to keep track of the frag - based on that implement skb_is_nonlinear() and skb_linearize() - implement build_skb() and adjust linuxkpi_kfree_skb() and ddb macro. Sponsored by: The FreeBSD Foundation (partially) (cherry picked from commit 5504bd59a39ba0bd0014308ff1aa5d4899432a3e) --- sys/compat/linuxkpi/common/include/linux/skbuff.h | 56 +++++++++++++---------- sys/compat/linuxkpi/common/src/linux_skbuff.c | 33 ++++++++++++- 2 files changed, 62 insertions(+), 27 deletions(-) diff --git a/sys/compat/linuxkpi/common/include/linux/skbuff.h b/sys/compat/linuxkpi/common/include/linux/skbuff.h index d3a795344f86..b54f5a91769f 100644 --- a/sys/compat/linuxkpi/common/include/linux/skbuff.h +++ b/sys/compat/linuxkpi/common/include/linux/skbuff.h @@ -143,7 +143,8 @@ struct sk_buff { uint16_t l4hdroff; /* transport header offset from *head */ uint32_t priority; uint16_t qmap; /* queue mapping */ - uint16_t _spareu16_0; + uint16_t _flags; /* Internal flags. */ +#define _SKB_FLAGS_SKBEXTFRAG 0x0001 enum sk_buff_pkt_type pkt_type; /* "Scratch" area for layers to store metadata. */ @@ -174,6 +175,7 @@ struct sk_buff { struct sk_buff *linuxkpi_alloc_skb(size_t, gfp_t); struct sk_buff *linuxkpi_dev_alloc_skb(size_t, gfp_t); +struct sk_buff *linuxkpi_build_skb(void *, size_t); void linuxkpi_kfree_skb(struct sk_buff *); struct sk_buff *linuxkpi_skb_copy(struct sk_buff *, gfp_t); @@ -241,6 +243,16 @@ dev_kfree_skb_irq(struct sk_buff *skb) dev_kfree_skb(skb); } +static inline struct sk_buff * +build_skb(void *data, unsigned int fragsz) +{ + struct sk_buff *skb; + + skb = linuxkpi_build_skb(data, fragsz); + SKB_TRACE(skb); + return (skb); +} + /* -------------------------------------------------------------------------- */ /* XXX BZ review this one for terminal condition as Linux "queues" are special. */ @@ -467,6 +479,7 @@ skb_add_rx_frag(struct sk_buff *skb, int fragno, struct page *page, shinfo->frags[fragno].size = size; shinfo->nr_frags = fragno + 1; skb->len += size; + skb->data_len += size; skb->truesize += truesize; /* XXX TODO EXTEND truesize? */ @@ -736,13 +749,6 @@ skb_frag_size(const skb_frag_t *frag) return (-1); } -static inline bool -skb_is_nonlinear(struct sk_buff *skb) -{ - SKB_TRACE(skb); - return ((skb->data_len > 0) ? true : false); -} - #define skb_walk_frags(_skb, _frag) \ for ((_frag) = (_skb); false; (_frag)++) @@ -847,6 +853,13 @@ skb_network_header(struct sk_buff *skb) return (skb->head + skb->l3hdroff); } +static inline bool +skb_is_nonlinear(struct sk_buff *skb) +{ + SKB_TRACE(skb); + return ((skb->data_len > 0) ? true : false); +} + static inline int __skb_linearize(struct sk_buff *skb) { @@ -855,6 +868,13 @@ __skb_linearize(struct sk_buff *skb) return (ENXIO); } +static inline int +skb_linearize(struct sk_buff *skb) +{ + + return (skb_is_nonlinear(skb) ? __skb_linearize(skb) : 0); +} + static inline int pskb_expand_head(struct sk_buff *skb, int x, int len, gfp_t gfp) { @@ -936,7 +956,10 @@ skb_reset_tail_pointer(struct sk_buff *skb) { SKB_TRACE(skb); +#ifdef SKB_DOING_OFFSETS_US_NOT skb->tail = (uint8_t *)(uintptr_t)(skb->data - skb->head); +#endif + skb->tail = skb->data; SKB_TRACE(skb); } @@ -965,14 +988,6 @@ skb_copy_from_linear_data(const struct sk_buff *skb, void *dst, size_t len) memcpy(dst, skb->data, len); } -static inline struct sk_buff * -build_skb(void *data, unsigned int fragsz) -{ - - SKB_TODO(); - return (NULL); -} - static inline int skb_pad(struct sk_buff *skb, int pad) { @@ -998,15 +1013,6 @@ napi_consume_skb(struct sk_buff *skb, int budget) SKB_TODO(); } -static inline bool -skb_linearize(struct sk_buff *skb) -{ - - SKB_TRACE(skb); - SKB_TODO(); - return (false); -} - #define SKB_WITH_OVERHEAD(_s) \ (_s) - ALIGN(sizeof(struct skb_shared_info), CACHE_LINE_SIZE) diff --git a/sys/compat/linuxkpi/common/src/linux_skbuff.c b/sys/compat/linuxkpi/common/src/linux_skbuff.c index df8e3fda8d56..c23a59b3c536 100644 --- a/sys/compat/linuxkpi/common/src/linux_skbuff.c +++ b/sys/compat/linuxkpi/common/src/linux_skbuff.c @@ -150,6 +150,28 @@ linuxkpi_dev_alloc_skb(size_t size, gfp_t gfp) return (skb); } +struct sk_buff * +linuxkpi_build_skb(void *data, size_t fragsz) +{ + struct sk_buff *skb; + + if (data == NULL || fragsz == 0) + return (NULL); + + /* Just allocate a skb without data area. */ + skb = linuxkpi_alloc_skb(0, GFP_KERNEL); + if (skb == NULL) + return (NULL); + + skb->_flags |= _SKB_FLAGS_SKBEXTFRAG; + skb->truesize = fragsz; + skb->head = skb->data = data; + skb_reset_tail_pointer(skb); /* XXX is that correct? */ + skb->end = (void *)((uintptr_t)skb->head + fragsz); + + return (skb); +} + struct sk_buff * linuxkpi_skb_copy(struct sk_buff *skb, gfp_t gfp) { @@ -233,6 +255,13 @@ linuxkpi_kfree_skb(struct sk_buff *skb) } } + if ((skb->_flags & _SKB_FLAGS_SKBEXTFRAG) != 0) { + void *p; + + p = skb->head; + skb_free_frag(p); + } + #ifdef __LP64__ if (__predict_true(linuxkpi_skb_memlimit == 0)) free(skb, M_LKPISKB); @@ -268,6 +297,7 @@ DB_SHOW_COMMAND(skb, db_show_skb) skb->pkt_type, skb->dev, skb->sk); db_printf("\tcsum_offset %d csum_start %d ip_summed %d protocol %d\n", skb->csum_offset, skb->csum_start, skb->ip_summed, skb->protocol); + db_printf("\t_flags %#06x\n", skb->_flags); /* XXX-BZ print names? */ db_printf("\thead %p data %p tail %p end %p\n", skb->head, skb->data, skb->tail, skb->end); db_printf("\tshinfo %p m %p m_free_func %p\n", @@ -298,7 +328,6 @@ DB_SHOW_COMMAND(skb, db_show_skb) } db_printf("}\n"); - db_printf("\t_spareu16_0 %#06x __scratch[0] %p\n", - skb->_spareu16_0, skb->__scratch); + db_printf("\t__scratch[0] %p\n", skb->__scratch); }; #endif From nobody Wed Jan 18 16:24:42 2023 X-Original-To: dev-commits-src-branches@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 4Nxrgv22Wfz2yJSt; Wed, 18 Jan 2023 16:24:43 +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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Nxrgv0Fhpz3Db2; Wed, 18 Jan 2023 16:24:43 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1674059083; 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=O8uBw/ON4w21frUHyxQiLzX7mqmTkTEkPQANuQbsYeQ=; b=ljz8qa49VMctqv1c9V9taVX6+1Jn2pjB5Qbf0mRLPRRI7Gb2XASvrDqxGu+HI0llG7g6At zDEVHkGImieH+S4RaezLEarIH21WhJC7P+wiptVnbo23an34zw+UfXeAWEDCyOprVpLCr7 7wwAPmrn/8IjANJP5CiVNlvBsdXb9z2DF5CXi05QvTdFV9VKuDyhekJIik3bjPklcSa13D /eqZUKZ8doSzEkrGCY1f7fbBuSGSfRJlYzoRhYLNv2DlEdY/2YlgdQdU4L0snE1wzBRv3E 0AMw8MIJ4uS0+12XRZlyh4OwEs1e2LdOzACb6F0HgyQrzrv899Z61mKotrbNWg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1674059083; 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=O8uBw/ON4w21frUHyxQiLzX7mqmTkTEkPQANuQbsYeQ=; b=M+hSaozz2xQG6Z7yZKJPDWMFTPzAgz25iTI4VDLwLqPN3IKMGJU51j2gsIL6SZq1TOx1CQ yGsohY1wZaZM+fPpWE9SUuoYt38eWVL1pX7H5Zv9fj31Smu2rZM0qZiR40F36iNv16S7ek Ol7rm60tkVZhlJI5W6nurcgjv5w67A8L2VEP01yovY2yem9lSHdpgTZ1+HPGNd2fjL9tCu nm3GKE6BihSKHmAqjEwOGJFByfvcXI6HHKBVpO16iGiuOFYfuBQNrjmK9Fg5Nc149C0CYk rSNbq3/cszQHi5zkHxhxUkOpwFKf4Ui8E0RmstJVfylY/VpjNRbifgrxTFPndw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1674059083; a=rsa-sha256; cv=none; b=YphQ1M3QT/DqaSEPshGDSdI0pB4qjEb+9zQBUBwDEPMS8iBuam16Qz3tBbVHZn8vFjMJeL KmdqepotTAFbwKFMQEcNGqhFT854EbTsdhhAbtu07l4latv8Vjkk0Dd8aPJ+q8fHZliFz7 HnyO1wjIlvGOWOcrTX4v7fbZy7CwobaLE1TFA7/W6nAOf8L7xXGEXk5AtcYeQDiepYJMsz XHnineqTjixeuhsZMer9joab5v5Mie/o0qX5OhbSwj7v4Ry7cG+G3BqMuA1cMzpt2HHLbw sG9pJn+FOELoEsXnIYs8pT3VBav3NTELxh6hd4murD3UH6ZHnfdaIgjAKQBKcA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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 did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Nxrgt670qzHSb; Wed, 18 Jan 2023 16:24:42 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 30IGOgjc037781; Wed, 18 Jan 2023 16:24:42 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 30IGOgNE037780; Wed, 18 Jan 2023 16:24:42 GMT (envelope-from git) Date: Wed, 18 Jan 2023 16:24:42 GMT Message-Id: <202301181624.30IGOgNE037780@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: "Bjoern A. Zeeb" Subject: git: 95df5d822353 - stable/13 - LinuxKPI: iwlwifi: rtw88: rtw89: remove budget argument from netif_napi_add() List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bz X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: 95df5d822353e3fc8f7165df854040a726b8b65e Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=95df5d822353e3fc8f7165df854040a726b8b65e commit 95df5d822353e3fc8f7165df854040a726b8b65e Author: Bjoern A. Zeeb AuthorDate: 2022-11-28 15:12:58 +0000 Commit: Bjoern A. Zeeb CommitDate: 2023-01-18 13:23:43 +0000 LinuxKPI: iwlwifi: rtw88: rtw89: remove budget argument from netif_napi_add() In preparation for future updates remove the budget argument from the netif_napi_add() in drivers and update LinuxKPI to reflect that it is gone and only set it internally. This required changes to the currently committed wireless drivers based on LinuxKPI (iwlwifi, rtw88, rtw89). Sponsored by: The FreeBSD Foundation (cherry picked from commit 23c73dbae7b2f64014b275643efbe92f449feaa2) --- sys/compat/linuxkpi/common/include/linux/netdevice.h | 6 +++--- sys/compat/linuxkpi/common/src/linux_netdev.c | 4 ++-- sys/contrib/dev/iwlwifi/pcie/rx.c | 3 +-- sys/contrib/dev/rtw88/pci.c | 3 +-- sys/contrib/dev/rtw89/core.c | 2 +- 5 files changed, 8 insertions(+), 10 deletions(-) diff --git a/sys/compat/linuxkpi/common/include/linux/netdevice.h b/sys/compat/linuxkpi/common/include/linux/netdevice.h index a904b7e70490..fdfd650a55e5 100644 --- a/sys/compat/linuxkpi/common/include/linux/netdevice.h +++ b/sys/compat/linuxkpi/common/include/linux/netdevice.h @@ -229,7 +229,7 @@ struct napi_struct { void linuxkpi_init_dummy_netdev(struct net_device *); void linuxkpi_netif_napi_add(struct net_device *, struct napi_struct *, - int(*napi_poll)(struct napi_struct *, int), int); + int(*napi_poll)(struct napi_struct *, int)); void linuxkpi_netif_napi_del(struct napi_struct *); bool linuxkpi_napi_schedule_prep(struct napi_struct *); void linuxkpi___napi_schedule(struct napi_struct *); @@ -243,8 +243,8 @@ void linuxkpi_napi_synchronize(struct napi_struct *); #define init_dummy_netdev(_n) \ linuxkpi_init_dummy_netdev(_n) -#define netif_napi_add(_nd, _ns, _p, _b) \ - linuxkpi_netif_napi_add(_nd, _ns, _p, _b) +#define netif_napi_add(_nd, _ns, _p) \ + linuxkpi_netif_napi_add(_nd, _ns, _p) #define netif_napi_del(_n) \ linuxkpi_netif_napi_del(_n) #define napi_schedule_prep(_n) \ diff --git a/sys/compat/linuxkpi/common/src/linux_netdev.c b/sys/compat/linuxkpi/common/src/linux_netdev.c index 3055b9c46767..69adcff67930 100644 --- a/sys/compat/linuxkpi/common/src/linux_netdev.c +++ b/sys/compat/linuxkpi/common/src/linux_netdev.c @@ -326,12 +326,12 @@ lkpi_napi_task(void *ctx, int pending) void linuxkpi_netif_napi_add(struct net_device *ndev, struct napi_struct *napi, - int(*napi_poll)(struct napi_struct *, int), int budget) + int(*napi_poll)(struct napi_struct *, int)) { napi->dev = ndev; napi->poll = napi_poll; - napi->budget = budget; + napi->budget = NAPI_POLL_WEIGHT; INIT_LIST_HEAD(&napi->rx_list); napi->rx_count = 0; diff --git a/sys/contrib/dev/iwlwifi/pcie/rx.c b/sys/contrib/dev/iwlwifi/pcie/rx.c index e91121dda102..480cc9c765d8 100644 --- a/sys/contrib/dev/iwlwifi/pcie/rx.c +++ b/sys/contrib/dev/iwlwifi/pcie/rx.c @@ -1113,8 +1113,7 @@ static int _iwl_pcie_rx_init(struct iwl_trans *trans) if (trans_pcie->msix_enabled) poll = iwl_pcie_napi_poll_msix; - netif_napi_add(&trans_pcie->napi_dev, &rxq->napi, - poll, NAPI_POLL_WEIGHT); + netif_napi_add(&trans_pcie->napi_dev, &rxq->napi, poll); napi_enable(&rxq->napi); } diff --git a/sys/contrib/dev/rtw88/pci.c b/sys/contrib/dev/rtw88/pci.c index bad6dd5b5b98..151400f6f892 100644 --- a/sys/contrib/dev/rtw88/pci.c +++ b/sys/contrib/dev/rtw88/pci.c @@ -1801,8 +1801,7 @@ static void rtw_pci_napi_init(struct rtw_dev *rtwdev) struct rtw_pci *rtwpci = (struct rtw_pci *)rtwdev->priv; init_dummy_netdev(&rtwpci->netdev); - netif_napi_add(&rtwpci->netdev, &rtwpci->napi, rtw_pci_napi_poll, - NAPI_POLL_WEIGHT); + netif_napi_add(&rtwpci->netdev, &rtwpci->napi, rtw_pci_napi_poll); } static void rtw_pci_napi_deinit(struct rtw_dev *rtwdev) diff --git a/sys/contrib/dev/rtw89/core.c b/sys/contrib/dev/rtw89/core.c index 98f47c4daeac..25940c141f84 100644 --- a/sys/contrib/dev/rtw89/core.c +++ b/sys/contrib/dev/rtw89/core.c @@ -1803,7 +1803,7 @@ void rtw89_core_napi_init(struct rtw89_dev *rtwdev) { init_dummy_netdev(&rtwdev->netdev); netif_napi_add(&rtwdev->netdev, &rtwdev->napi, - rtwdev->hci.ops->napi_poll, NAPI_POLL_WEIGHT); + rtwdev->hci.ops->napi_poll); } EXPORT_SYMBOL(rtw89_core_napi_init); From nobody Wed Jan 18 16:24:43 2023 X-Original-To: dev-commits-src-branches@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 4Nxrgw2NZxz2yJNg; Wed, 18 Jan 2023 16:24:44 +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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Nxrgw1Stvz3DSH; Wed, 18 Jan 2023 16:24:44 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1674059084; 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=DewsACwR4XBQWN53ZQF84L6q7Zt6PmeE5spyEPZgE6o=; b=GRxV1eqhO7Re55vhiRi5q1E927ZVABDWb+0Iob7N6Y91rxM8jSGuDrG0fyLZyiz3HK2zbg 3BN8vBsIAbXd2p0/zhiPNRJcsDZbz//MPATLGZlgUH9oojUEqbTyFczAGpSCfKN33r82jR zk+W+heuYm2xaZgO43AUGiN9gwPh5oP65QGYbBEBYo1Sip1mIhF4nsorSmBlSX2szc8pfa NrpvzpkY2/nihvRSpDjgLQudNl5UKUxDyLEVrDF/7FT4gFJxmCbhKRRx4hHmDuKuIOM+O8 TB7pqJT1I1UQXudT457dPukaJGFx3/98SwM4tVuEzyyWJVyNuCZsiCRkklSvZw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1674059084; 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=DewsACwR4XBQWN53ZQF84L6q7Zt6PmeE5spyEPZgE6o=; b=rUawEXQqS+qeRxIOsMUVZvyQvLfenB0xI6Z6j3Lw4EDdd5lAbNYx4LwZEfJjuq1L8yuBsv SiLmsV5e5wPu05+fnPiQszg3NQYc1elSJx/U9e7iMkZ+hH8hamebvVEWHxLQ4PRBF/4GqZ LMWfT/hT6Z2yUFR+253SU1HXKtM6L+qOOLqDXJaJPFWSiH4eI2A0NdMxQKaGnIODHF5J46 1IaCh3j88dofWBsuyliqdiqCLa1tMRKFVroJKP1Ln3519oAor9zJ2MPxSTyCYlgG36bxNA mXcpmXOoaPWWhUgTnGnVzCXNc2wFn0IBvkkFZHR5UPLNWz+G3sm/M4Er7CG4rA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1674059084; a=rsa-sha256; cv=none; b=WM4bDsTOiVbMUFA2WYcVlCZAwxravGV2cDAVY/9PQ/WnrfHPaO5oT+V0RQUwGIILMrReoe CUb1uR6ca48H55XE51G2Me5O9l42IoNM//NZcqppCMpRba4vvdUkvOKFMrOLa+LUR9uFwF RPIWPAgoImXI/12y3b5XRoaoi1FFdBO8AVpLWNHaJcs+466DzX40udTCeRsXZGj/9bKdOG ZdKjiXuPbSSyVtVEOnvOroVhafTAPk10+wqiPUohqkvoAqLm48DUnYr/TH8P3u17Wainpj L0JKIsbob8EuIhH6/2N+6IrTz4vzMu6CW55wty034Fsnsswo+ZBEWNWfXgPpuA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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 did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Nxrgv6qsVzHp9; Wed, 18 Jan 2023 16:24:43 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 30IGOhd2037805; Wed, 18 Jan 2023 16:24:43 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 30IGOhA6037804; Wed, 18 Jan 2023 16:24:43 GMT (envelope-from git) Date: Wed, 18 Jan 2023 16:24:43 GMT Message-Id: <202301181624.30IGOhA6037804@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: "Bjoern A. Zeeb" Subject: git: a6a22afc62de - stable/13 - LinuxKPI: add a no-op generic_file_llseek() List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bz X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: a6a22afc62de3069dc4d99edeebb58d258e8adab Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=a6a22afc62de3069dc4d99edeebb58d258e8adab commit a6a22afc62de3069dc4d99edeebb58d258e8adab Author: Bjoern A. Zeeb AuthorDate: 2022-10-22 20:27:42 +0000 Commit: Bjoern A. Zeeb CommitDate: 2023-01-18 13:23:49 +0000 LinuxKPI: add a no-op generic_file_llseek() This is needed for debugfs implementations in drivers. Sponsored by: The FreeBSD Foundation OKed by: jfree Differential Revision: https://reviews.freebsd.org/D37092 (cherry picked from commit af393426b321e885d1db5f0a0571f34969a59a9f) --- sys/compat/linuxkpi/common/include/linux/fs.h | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/sys/compat/linuxkpi/common/include/linux/fs.h b/sys/compat/linuxkpi/common/include/linux/fs.h index 55c2ee3e00c6..656b81b7be36 100644 --- a/sys/compat/linuxkpi/common/include/linux/fs.h +++ b/sys/compat/linuxkpi/common/include/linux/fs.h @@ -306,6 +306,12 @@ default_llseek(struct file *file, loff_t offset, int whence) return (no_llseek(file, offset, whence)); } +static inline loff_t +generic_file_llseek(struct file *file, loff_t offset, int whence) +{ + return (no_llseek(file, offset, whence)); +} + static inline loff_t noop_llseek(struct linux_file *file, loff_t offset, int whence) { From nobody Wed Jan 18 16:24:45 2023 X-Original-To: dev-commits-src-branches@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 4Nxrgx2w7Hz2yJLP; Wed, 18 Jan 2023 16:24:45 +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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Nxrgx23HPz3Ddr; Wed, 18 Jan 2023 16:24:45 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1674059085; 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=fqKKorZ69JUqLSFxwgRV+2A0f/XNvDDgSsJp+UwgnuI=; b=v6QzCX/ii+YPN+2Po9NyzYWPnxfr6ykRR8wD7hZX+TYjcu8ByW7LjQsS8WMeHExKWh9LV/ lQGxFAGDubJ6Nzu1bgQWJUBhQHHwk7x9Tz2CjTC8ohntll/rspijZuxfgOBcERqI+5TTeg y+h8ybR8PUZPNpROTiHujPbHX613ERNR1X5nU+JQU2cMuVbuIkb/QZpeQ8QMmhKTLtp7dB p8o47Qlh812a6vgk9EUSKSdU54WM4RmUlEQNTDqlxW1GpQcXdp+vbUriOxv067ynOTZZhS 9MLWsHmheCqa80opNeiDl+oi4YKxap1iilZ0yX1in3n2QY57Kx19tiL2XexsfQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1674059085; 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=fqKKorZ69JUqLSFxwgRV+2A0f/XNvDDgSsJp+UwgnuI=; b=gomfYZhUEKEyPwoKwfTAqBAn6+ZmWrbyXJYTtwbH+Hu8AsLtFWoAV739ZnWmjTS0La2w/q mPvqdpgqAeKJdu41iI30h7PseEDxHgE9BeUnwsgM7d9AGceUrRgSqdpK42Lp90UK0B7Udz WaIzSSLnm7C6q3V+H6YH9336DrP2KaXSmpbw1aXur1hXlGKCxV8ovW+kAiH9BBYRAOEm3t CJkvQS2wvL7IKTuvr7TqdQGHzmtXlA16MCzn/Ohybh7k7odxIBK0+kPv0pFrQ1FoAtz4Io pE+MZwCdq7kyxyUgCmOpVDKrE/OML4s646nVdMShizobZWSq/UTg2/Oo4fF1Ng== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1674059085; a=rsa-sha256; cv=none; b=OT+dhvHPx4yTmHIQ+lY/WbKCID8G8Ivr8s+zIMTkZeYvdCWri8e4PN2YEtuXEbW6snSpNz 2f+UzxF4ciajwpUKtYujuUWysznLylZVmM/5gw9KA5+yjH0FV78ebTj7QTsl/xCnbD8S0/ GptM3SoH0J6H6XwmDGms+KLy+BT/2/Cb9qYohTTB2ike+8CHcY/myEHewoj82j6DivZFF5 N3lgbRDhoM8iUlx8vBeeWZ33UjYhBu8v/1FhcRAcrRUJJ6fnTQg3DdDxmtYh8tVuWg2638 tXfb9CKR/n67zQrpI1eJpZeFf7uiNjtsWWYAnK1qHinnhntN46zKsG/frFWXNw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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 did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Nxrgx0v6HzJ3b; Wed, 18 Jan 2023 16:24:45 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 30IGOjTh037835; Wed, 18 Jan 2023 16:24:45 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 30IGOjsu037834; Wed, 18 Jan 2023 16:24:45 GMT (envelope-from git) Date: Wed, 18 Jan 2023 16:24:45 GMT Message-Id: <202301181624.30IGOjsu037834@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: "Bjoern A. Zeeb" Subject: git: 2078d0ea1e9f - stable/13 - LinuxKPI: ethtool.h add more definitions List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bz X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: 2078d0ea1e9f3c18422c30725687e7f861c2e560 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=2078d0ea1e9f3c18422c30725687e7f861c2e560 commit 2078d0ea1e9f3c18422c30725687e7f861c2e560 Author: Bjoern A. Zeeb AuthorDate: 2022-10-30 17:07:49 +0000 Commit: Bjoern A. Zeeb CommitDate: 2023-01-18 13:23:55 +0000 LinuxKPI: ethtool.h add more definitions While we do not currently use ethtool, add the definitions to avoid other longer-term maintenance problems with drivers. Also migrate ETH_GSTRING_LEN into here from if_ether.h as it seems this is where it belongs. Differential Revision: https://reviews.freebsd.org/D37214 (cherry picked from commit 1b91eba37b294fd191a9dc79a80f52495af9418d) --- sys/compat/linuxkpi/common/include/linux/ethtool.h | 20 +++++++++++++++++++- sys/compat/linuxkpi/common/include/linux/if_ether.h | 2 -- 2 files changed, 19 insertions(+), 3 deletions(-) diff --git a/sys/compat/linuxkpi/common/include/linux/ethtool.h b/sys/compat/linuxkpi/common/include/linux/ethtool.h index 9195766f752d..99f5219d0187 100644 --- a/sys/compat/linuxkpi/common/include/linux/ethtool.h +++ b/sys/compat/linuxkpi/common/include/linux/ethtool.h @@ -32,10 +32,28 @@ #include -#define ETHTOOL_FWVERS_LEN 64 +#define ETH_GSTRING_LEN (2 * IF_NAMESIZE) /* Increase if not large enough */ + +#define ETHTOOL_FWVERS_LEN 32 struct ethtool_stats { uint8_t __dummy[0]; }; +enum ethtool_ss { + ETH_SS_STATS, +}; + +struct ethtool_drvinfo { + char driver[32]; + char version[32]; + char fw_version[ETHTOOL_FWVERS_LEN]; + char bus_info[32]; +}; + +struct net_device; +struct ethtool_ops { + void(*get_drvinfo)(struct net_device *, struct ethtool_drvinfo *); +}; + #endif /* _LINUXKPI_LINUX_ETHTOOL_H_ */ diff --git a/sys/compat/linuxkpi/common/include/linux/if_ether.h b/sys/compat/linuxkpi/common/include/linux/if_ether.h index c27583e62ebd..cb3e34a0823f 100644 --- a/sys/compat/linuxkpi/common/include/linux/if_ether.h +++ b/sys/compat/linuxkpi/common/include/linux/if_ether.h @@ -71,6 +71,4 @@ struct ethhdr { uint16_t h_proto; } __packed; -#define ETH_GSTRING_LEN (2 * IF_NAMESIZE) /* Increase if not large enough */ - #endif /* _LINUXKPI_LINUX_IF_ETHER_H_ */ From nobody Wed Jan 18 16:24:46 2023 X-Original-To: dev-commits-src-branches@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 4Nxrgy4zh8z2yJ1C; Wed, 18 Jan 2023 16:24:46 +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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Nxrgy2rQWz3DWg; Wed, 18 Jan 2023 16:24:46 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1674059086; 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=3tORZCknIdq368zNdnZxa+YY6uc0EKI5tH6rVDcyXZE=; b=vmej1lVJ7MFQzVI3/AQuiPqK3aMaVmT5kcJX77Ef2/9/VMvcxlCOZRRyCqiaRWfMd5C1YP Cf24o2uzxMvt+7B1L3YmjTTsDYSwQP1hBNwkAdUzG4I3O61B50eNkBX7WT2rULUg/lk0z8 gnLjY2ZAaiI8SsX7GqHIWjue435yTO5IQ+T1rwi7cDhz6c55AEewJnFMvWl6UaHuhhjZMX 6NQVN/aFa9Vv89DbrWBH/6UZp/Ju4ijum/wtG5d+yT/0J7laChnFkOKO9DPjhTC1YUhUb+ Rowk3Nb37yoPCzjhoOd2QV2UHkLqbtXPsF0lITUErrDTDa67MGeKkgR5A/wKtg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1674059086; 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=3tORZCknIdq368zNdnZxa+YY6uc0EKI5tH6rVDcyXZE=; b=cHaX7tdEU+AspunqeVNXPzktl5yU12+GyadhIu/XyqW+EqSoRowQDuWYteZK9yh/xrkigb +a/IAaqSeumgjNHMlTzEs+Hm5jS3eFEfV58oXeaBT1qglZVYQedMhaolT3JGGtmJ1aaJS/ cGGJkg+/2SpWZvFNY7oBc8ApG3pzg+IHGQ7jLFcqV4rioJgKLrjRvDrLu4b/xFZ4Tq9j/e BpR9euT8vItVhy8eZd5UANoBBEGAgZHbCglhwGNXif9F9ZsRdL1DB+HJARlI4Fiq5rwWxp DPwdFfGojRM+s9aDQV5+HvrILcsal5x0QNhcuFqmTnAXSc54hVSotc3g3R9Zcw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1674059086; a=rsa-sha256; cv=none; b=KSh2bGKPp7DowF9OTKa5Bk+l7zga5q9qLSTXCb0czxix3FbeCDKVFjjN+QOuTbjrhD1gU0 ES9zvGqrk3Spf8ZB3pDd03BgHn40Ook8qDrbADhh8R7MLw7lTcJkv0lI2bl9l6avEwqJHB 6ygny12a4rIRROM9izQ3z18yQnOxwqIf0mzG+PSgne85cYhR17Ij4DBZM+9sO5rkFtBehv YjiiTjH/JC6zBm8HC5G34OljSsepfSXgDnrR4gYTjWV26mEwUs3JiZMmu7MkjzxjBmJo0p N2YYfX6P2kvCYm28rcgWAoH6PBOfqA7W8QQWw3aZoJj3S5WhVuUfmQy+3Cf0Cg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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 did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Nxrgy1rf3zJB1; Wed, 18 Jan 2023 16:24:46 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 30IGOkbL037861; Wed, 18 Jan 2023 16:24:46 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 30IGOkh1037860; Wed, 18 Jan 2023 16:24:46 GMT (envelope-from git) Date: Wed, 18 Jan 2023 16:24:46 GMT Message-Id: <202301181624.30IGOkh1037860@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: "Bjoern A. Zeeb" Subject: git: 4a9e77caec57 - stable/13 - LinuxKPI: 802.11: minor header updates List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bz X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: 4a9e77caec57fa8272c55986a2f0464780c011b2 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=4a9e77caec57fa8272c55986a2f0464780c011b2 commit 4a9e77caec57fa8272c55986a2f0464780c011b2 Author: Bjoern A. Zeeb AuthorDate: 2022-11-28 21:21:06 +0000 Commit: Bjoern A. Zeeb CommitDate: 2023-01-18 13:24:01 +0000 LinuxKPI: 802.11: minor header updates - add comments for enum values constantly looked up, and another one to a net80211 equivalent (should possibly re-define those in the future?) - add another nl80211_sta_info flag - add enum environment_cap used in cfg80211.h in the future. (cherry picked from commit 69cc1630014b7c50f754f5d49cfd4ed2905a5c48) --- sys/compat/linuxkpi/common/include/linux/ieee80211.h | 12 ++++++------ sys/compat/linuxkpi/common/include/linux/nl80211.h | 1 + sys/compat/linuxkpi/common/include/net/regulatory.h | 4 ++++ 3 files changed, 11 insertions(+), 6 deletions(-) diff --git a/sys/compat/linuxkpi/common/include/linux/ieee80211.h b/sys/compat/linuxkpi/common/include/linux/ieee80211.h index c797967f357a..fef68bda4882 100644 --- a/sys/compat/linuxkpi/common/include/linux/ieee80211.h +++ b/sys/compat/linuxkpi/common/include/linux/ieee80211.h @@ -350,11 +350,11 @@ enum ieee80211_smps_mode { /* net80211::IEEE80211_S_* different but represents the state machine. */ /* Note: order here is important! */ enum ieee80211_sta_state { - IEEE80211_STA_NOTEXIST, - IEEE80211_STA_NONE, - IEEE80211_STA_AUTH, - IEEE80211_STA_ASSOC, - IEEE80211_STA_AUTHORIZED, /* 802.1x */ + IEEE80211_STA_NOTEXIST = 0, + IEEE80211_STA_NONE = 1, + IEEE80211_STA_AUTH = 2, + IEEE80211_STA_ASSOC = 3, + IEEE80211_STA_AUTHORIZED = 4, /* 802.1x */ }; enum ieee80211_sta_rx_bw { @@ -553,7 +553,7 @@ enum ieee80211_eid { WLAN_EID_MULTI_BSSID_IDX = 85, WLAN_EID_EXT_CAPABILITY = 127, WLAN_EID_VHT_CAPABILITY = 191, /* IEEE80211_ELEMID_VHT_CAP */ - WLAN_EID_VENDOR_SPECIFIC = 221, + WLAN_EID_VENDOR_SPECIFIC = 221, /* IEEE80211_ELEMID_VENDOR */ }; enum ieee80211_eid_ext { diff --git a/sys/compat/linuxkpi/common/include/linux/nl80211.h b/sys/compat/linuxkpi/common/include/linux/nl80211.h index e4c904ff5cac..76f97b1faaea 100644 --- a/sys/compat/linuxkpi/common/include/linux/nl80211.h +++ b/sys/compat/linuxkpi/common/include/linux/nl80211.h @@ -248,6 +248,7 @@ enum nl80211_sta_info { NL80211_STA_INFO_TX_BITRATE, NL80211_STA_INFO_TX_PACKETS, NL80211_STA_INFO_TX_BYTES, + NL80211_STA_INFO_TX_BYTES64, NL80211_STA_INFO_TX_FAILED, NL80211_STA_INFO_TX_RETRIES, NL80211_STA_INFO_RX_DURATION, diff --git a/sys/compat/linuxkpi/common/include/net/regulatory.h b/sys/compat/linuxkpi/common/include/net/regulatory.h index a7b31812e308..a020323ae7dd 100644 --- a/sys/compat/linuxkpi/common/include/net/regulatory.h +++ b/sys/compat/linuxkpi/common/include/net/regulatory.h @@ -32,6 +32,10 @@ #ifndef _LINUXKPI_NET_REGULATORY_H #define _LINUXKPI_NET_REGULATORY_H +enum environment_cap { + ENVIRON_INDOOR = 1, /* keep != 0 */ +}; + #define REG_RULE(_begin, _end, _bw, _mag, _meirp, _flags) \ { \ .flags = (_flags), \ From nobody Wed Jan 18 16:24:47 2023 X-Original-To: dev-commits-src-branches@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 4Nxrgz5RDFz2yJNp; Wed, 18 Jan 2023 16:24:47 +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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Nxrgz4Syyz3DZC; Wed, 18 Jan 2023 16:24:47 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1674059087; 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=R1RwJQVNwtPpC9E8zdh9OfWqhztjqGYkaEEbXZUoxoU=; b=V5yG2mWgBV0u2z2Ez+wI2/CXDb5Smtb9zqw0NzusNeWC7TVHpkiOugA6d38L4L4GMG6qad gp5lozqvO6+Kv8wpIEkftLinzVrZbGrwk3x3VUhHdtJ+CZaP5StQ7jtROgtZqBxg6zX9i+ 6JCEV1d0KprKnuQaeMyHyKWSCnM8G0RO/YCs1SEmepebbQTvfYukQ8nMUSeUnHfVScY8r+ VWeibZy6eLm0xMyRWoZNMUkycna8tHpu6XtpKVklYBpgE4a/ozl2Ia/YGZYhmGbk9LRulK o2r2jYkC+fkFW9aUrHaclRejYN9hy0zjEj9GVYGJ90mcIaIQlLS9yZyIKfshjA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1674059087; 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=R1RwJQVNwtPpC9E8zdh9OfWqhztjqGYkaEEbXZUoxoU=; b=kgUo76GJRx+DBJt/GCZQWwYL41+Ht7JWyGWbIksOETbD7btl5bBTQ9R4JCuaRajthWOKl3 1erl99dGzZB/PZEBLHvoaipJ1OTRMVLlV85DGKwM5eyA/6HuW23LaC1bPBoQeBy9amZs2C blU1uuIzUr1PvQlnJKVxNajkJ2dVYatp3apVE8uExKpnK0uVUAJgsl6LXJGLJjo3Ncu5Bg 15BhA30RpCdtd8uK+JkxuzMy/j21hSLLdQ5zGXTVbpRyr35GEcWU6zupUe7cY7ry6YJejM ZGS41F0cRHvbYANEcBJf1iQJ3l6YOIz0DTNBdvPDA5zZKNl0Ov2r4Sxcz0p2FQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1674059087; a=rsa-sha256; cv=none; b=FEXMzCQ9RXmxUACp/cheg1GoN26AkQrqVz0Ils/zyKV3i2iSkTJLxaolI1VUtWdCqttjkv zyQ73yLUDbPL8I7RJP1ZIl3bXgbBhLGB2vLOOV9GG5Fcn4KDnO+7QHSAzjjrsIhBOrJjyH H3uKo76ZyGd2GQzD6UcaxBIm545kytNRvIcDQ9tzmEOZlH0/fBJJ0fclqe6Lg/DWPRAjFi 9a0Ah3oMwuYuPdZeS4cktRM/DsDsncjZ9y1WgVQVRuzT1Mmak0qtOjcG0mQ9rsXmYF8WDe XJvYhoVT2PuZdIhwviuNIKwL08O5xRXxG8D76vdtgGHDFke7x+8BSzQwvTumbg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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 did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Nxrgz2qNrzJ5F; Wed, 18 Jan 2023 16:24:47 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 30IGOlDb037885; Wed, 18 Jan 2023 16:24:47 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 30IGOlGS037884; Wed, 18 Jan 2023 16:24:47 GMT (envelope-from git) Date: Wed, 18 Jan 2023 16:24:47 GMT Message-Id: <202301181624.30IGOlGS037884@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: "Bjoern A. Zeeb" Subject: git: c1e13c43f7a6 - stable/13 - rtw88: correct SRCS+= in Makefile List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bz X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: c1e13c43f7a60e43419956df331f17fdfbbf77b4 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=c1e13c43f7a60e43419956df331f17fdfbbf77b4 commit c1e13c43f7a60e43419956df331f17fdfbbf77b4 Author: Bjoern A. Zeeb AuthorDate: 2022-11-28 15:48:44 +0000 Commit: Bjoern A. Zeeb CommitDate: 2023-01-18 13:24:07 +0000 rtw88: correct SRCS+= in Makefile Properly spell a SRCS+= for an optional file (this is why it stayed unnoticed so far). (cherry picked from commit 4495b4eb510d87277ed2dd4d27f7cebc7a76b4a8) --- sys/modules/rtw88/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sys/modules/rtw88/Makefile b/sys/modules/rtw88/Makefile index 396dd91726b2..c27d922d1124 100644 --- a/sys/modules/rtw88/Makefile +++ b/sys/modules/rtw88/Makefile @@ -18,7 +18,7 @@ SRCS+= rtw8822c.c rtw8822c_table.c rtw8822ce.c # 11ac SRCS+= rx.c sar.c sec.c tx.c util.c .if defined(WITH_CONFIG_PM) && ${WITH_CONFIG_PM} > 0 -SRCR+= wow.c +SRCS+= wow.c CFLAGS+= -DCONFIG_PM=${WITH_CONFIG_PM} .endif From nobody Wed Jan 18 16:24:48 2023 X-Original-To: dev-commits-src-branches@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 4Nxrh05Y4Lz2yJWL; Wed, 18 Jan 2023 16:24:48 +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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Nxrh052G0z3Dn9; Wed, 18 Jan 2023 16:24:48 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1674059088; 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=4rwU734/YDibAi2UlCJ+QsOEski/QxX2xvvxFtWbAyE=; b=iTUhb7Q4q6yqnjh9zPT5HqlOQdNRKPqTnuviRp9NaDtDPPFJWFgNHctXOk1MJCf9JH8Zv8 Tg1cMpODIfJVGSvojSOxx1a43c3nu/sOb8FSbFfqoMqJqAoE7LufxbVdBJgVQOhUZzLW40 r4o+Fjxgl1VSzTgSFaducusTigBE3hS6nsC69UzR4dbEtCww5lAoQPrS17CwzxtjZxZJEu MQHv0UyrZ+Shn5JfJz7pIC4O8lcFEUwwMTKkPmLHTm6ZZNqKV3Pm9Uh0Sl2tl8uDN0LM/F 8bxtOtc5uNnYhot8asdzpfUrF2YAvRVCyuxnnaBCYcau2R8OeNUYfmjcVdfjGw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1674059088; 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=4rwU734/YDibAi2UlCJ+QsOEski/QxX2xvvxFtWbAyE=; b=RSRvulGk/nx/rsv2GSojgGvbYjbF1RWYOK6ToECA2hp7tleKo18JAK+WehHFwwahJywr/R Aba93ob/vcsQrrvwbUtzuc/oKtvFZD/xeKZu3H0NakKK6u/CwnJ+ZonRLl5wx1jANNJylj w/LwTw3Fn0RkuAOLBnAvipWamcmNkmnC/H5fPpmBCFrEqaj+LnG3LvzY3zrlgw3CurwRXl kXRVCrl6dR3P8Wp8fA+sTN4Wnr3AcOdlDqpafHwSLMI/Om8V0AbphynaM9pfKLdcGFMfpZ Anu5fe27D+v1UH3qxZyqYUMk1i6KCzEDcgUbpXmehJRpJpQZroV+eByCPfPh1w== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1674059088; a=rsa-sha256; cv=none; b=HEB7UyzmCk7zyM46QyxGProfgSkEKQjUiIFlTl5Mk6/OZQiqPumA6+s8tWl+yWm5jeurq9 J+rC2kEfEzi/E3HAzloh+W+YDcY4qaeYezdW3ytM7V7+0USWvECn8MSi9XAn6GaKcKOcTt 2ZbcSdP7zMoq4ZIshzukdCO/OMwwJZPMFsz8pmAPi69tIKIBFDzmyry2c8ugNTi1ztZJr4 /nPGda1MjOPlacQlDQj318JCsnlw2YYeD7JptsBY1BYNyjKjNS7qDDePSzRKhJq3uAbitv x4MsiRcDZJFBJsXneeUT5QjE0jJcKSFzPO37l92gdi0aKfsD/+vRIb2eyUPv2Q== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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 did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Nxrh03nmpzHbx; Wed, 18 Jan 2023 16:24:48 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 30IGOmob037909; Wed, 18 Jan 2023 16:24:48 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 30IGOm76037908; Wed, 18 Jan 2023 16:24:48 GMT (envelope-from git) Date: Wed, 18 Jan 2023 16:24:48 GMT Message-Id: <202301181624.30IGOm76037908@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: "Bjoern A. Zeeb" Subject: git: e75ba4c620ff - stable/13 - LinuxKPI: SKB: implement skb_peek() List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bz X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: e75ba4c620ff9169c29a89274810cb2c332efecc Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=e75ba4c620ff9169c29a89274810cb2c332efecc commit e75ba4c620ff9169c29a89274810cb2c332efecc Author: Bjoern A. Zeeb AuthorDate: 2022-11-28 18:47:08 +0000 Commit: Bjoern A. Zeeb CommitDate: 2023-01-18 13:24:11 +0000 LinuxKPI: SKB: implement skb_peek() Sponsored by: The FreeBSD Foundation (cherry picked from commit ce9f36610ea9ff29d42a2bcfed44b020c2e56dcb) --- sys/compat/linuxkpi/common/include/linux/skbuff.h | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/sys/compat/linuxkpi/common/include/linux/skbuff.h b/sys/compat/linuxkpi/common/include/linux/skbuff.h index b54f5a91769f..35d5a1fd9b80 100644 --- a/sys/compat/linuxkpi/common/include/linux/skbuff.h +++ b/sys/compat/linuxkpi/common/include/linux/skbuff.h @@ -571,6 +571,18 @@ skb_queue_tail(struct sk_buff_head *q, struct sk_buff *skb) return (__skb_queue_tail(q, skb)); } +static inline struct sk_buff * +skb_peek(struct sk_buff_head *q) +{ + struct sk_buff *skb; + + skb = q->next; + SKB_TRACE2(q, skb); + if (skb == (struct sk_buff *)q) + return (NULL); + return (skb); +} + static inline struct sk_buff * skb_peek_tail(struct sk_buff_head *q) { @@ -930,14 +942,6 @@ skb_reset_mac_header(struct sk_buff *skb) SKB_TODO(); } -static inline struct sk_buff * -skb_peek(struct sk_buff_head *q) -{ - SKB_TRACE(q); - SKB_TODO(); - return (NULL); -} - static inline __sum16 csum_unfold(__sum16 sum) { From nobody Wed Jan 18 16:24:49 2023 X-Original-To: dev-commits-src-branches@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 4Nxrh16RBdz2yJNt; Wed, 18 Jan 2023 16:24:49 +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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Nxrh15HXJz3Djk; Wed, 18 Jan 2023 16:24:49 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1674059089; 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=CBF0X8JxmjJ7Hu459xBrwpaIBvLE2cE7qanoDGACM6w=; b=X7NAG2RNhXMKqKkr/Ssipz/eWbFJPC1BAcgdf2kTbyjISvyFGirc6GWfJouHyde4A3uWq5 Y5PNf008emP8r4UAGtJcJdEyJp1dUW1coH7Kflnz/HLd+60ZYFj+E1Y/+DX9bvC0TD/59W EH+GBkVslyE5R5kKUt4r2jkHqPsem1hi8qWOaoBGiPmK/Olj8iXTkaug231jvMQdw0Voav uijEaMpZzJUvCRts96UkR9BEiiujZm96c5QMusp8v62G//EcOJo0GjG5Sf6p4IE/YjtC7y sXZ+qaq+ho+Ka5BHydM4meGw/XSudd795PJ48iAZ1EeoTasDG879QtJT6PRtkg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1674059089; 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=CBF0X8JxmjJ7Hu459xBrwpaIBvLE2cE7qanoDGACM6w=; b=akvJEPho3FnFHLTLuEwUh1l6nlkRs8O1Eq9S1RQFvSwvhWvVHj0UANNvCJjqM8LMVtYDwS jVQmP6Ba4vBoQepI65I+bi+RiYeySeT9pFbj80SrdCwpsq+uOvrWrugL5E5E5uRMltkNpp dyavtR2TbeecptUOwvL6sPpkVyRugUckpHSqdiZKB/hzONy5BPdcDGpbTI94PmEWfk7FDw oVe21Sk2/yVLdV6Xvgf0S30fnaDE6R8JfGXPvknwATlxlBuAvvK8Doj7W6mVJwtdEekqpX YOBxez1wXYtM/OuOz/t7SJ4pwgLfbXTlw4hJUHbq9NsT/DGqHyuWRdxne+XPgA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1674059089; a=rsa-sha256; cv=none; b=rD/1KcQUzkfOGIyZdysn6grrOBB3AkJzbo6SpZyuRO2+quBWtUsSKXSUdPWQA4yR7lEbFs L+LtyXvTtksxq20D1tFP753GF3eyJGXu7F1tWE+nlzMJEU2vOHSth52p0C5vGYf2wLm8Zp Etp8kjAJ6W25FAki0B8KQoIWmzWpKpCpHiwjDIDppQj3Ig+9mqyVH5aSMuMXeJjIhYvmIu 416t3PGaH67EwjAZzsV0LO4lEbNdftR4PFV9r+K8dYB7cFrWzBCpI7yS+r3byts7l0rRFO EaDPHYHjwQDFHK7Kmup8uDfhDPO22r1n2vNzIdiPH3k28m0nDKyvo9OTuf5jow== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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 did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Nxrh14P2pzJ3c; Wed, 18 Jan 2023 16:24:49 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 30IGOnr6037933; Wed, 18 Jan 2023 16:24:49 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 30IGOnEv037932; Wed, 18 Jan 2023 16:24:49 GMT (envelope-from git) Date: Wed, 18 Jan 2023 16:24:49 GMT Message-Id: <202301181624.30IGOnEv037932@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: "Bjoern A. Zeeb" Subject: git: aa0370996eca - stable/13 - LinuxKPI,lindebugfs: add u8 base type and blob support List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bz X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: aa0370996eca5c8d4a8cd2c09888300bbb253994 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=aa0370996eca5c8d4a8cd2c09888300bbb253994 commit aa0370996eca5c8d4a8cd2c09888300bbb253994 Author: Bjoern A. Zeeb AuthorDate: 2022-10-22 18:12:16 +0000 Commit: Bjoern A. Zeeb CommitDate: 2023-01-18 13:24:15 +0000 LinuxKPI,lindebugfs: add u8 base type and blob support Add debugfs_create_u8() based on other already present implementations. Add a read-only implementation for debugfs_create_blob(). Both are needed for iwlwifi debugfs support. Sponsored by: The FreeBSD Foundation OKed by: jfree (earlier version) Differential Revision: https://reviews.freebsd.org/D37090 (cherry picked from commit 0fce2dc1573019d0732f33fa7c26cc228655d3e8) --- sys/compat/lindebugfs/lindebugfs.c | 66 ++++++++++++++++++++++ sys/compat/linuxkpi/common/include/linux/debugfs.h | 11 +++- 2 files changed, 76 insertions(+), 1 deletion(-) diff --git a/sys/compat/lindebugfs/lindebugfs.c b/sys/compat/lindebugfs/lindebugfs.c index b88caf9c3140..b72ceb5e0be9 100644 --- a/sys/compat/lindebugfs/lindebugfs.c +++ b/sys/compat/lindebugfs/lindebugfs.c @@ -367,6 +367,35 @@ debugfs_create_bool(const char *name, umode_t mode, struct dentry *parent, bool &fops_bool_ro, &fops_bool_wo); } + +static int +debugfs_u8_get(void *data, uint64_t *value) +{ + uint8_t *u8data = data; + *value = *u8data; + return (0); +} + +static int +debugfs_u8_set(void *data, uint64_t value) +{ + uint8_t *u8data = data; + *u8data = (uint8_t)value; + return (0); +} + +DEFINE_DEBUGFS_ATTRIBUTE(fops_u8, debugfs_u8_get, debugfs_u8_set, "%u\n"); +DEFINE_DEBUGFS_ATTRIBUTE(fops_u8_ro, debugfs_u8_get, NULL, "%u\n"); +DEFINE_DEBUGFS_ATTRIBUTE(fops_u8_wo, NULL, debugfs_u8_set, "%u\n"); + +void +debugfs_create_u8(const char *name, umode_t mode, struct dentry *parent, uint8_t *value) +{ + debugfs_create_mode_unsafe(name, mode, parent, value, &fops_u8, + &fops_u8_ro, &fops_u8_wo); +} + + static int debugfs_ulong_get(void *data, uint64_t *value) { @@ -394,6 +423,43 @@ debugfs_create_ulong(const char *name, umode_t mode, struct dentry *parent, unsi &fops_ulong_ro, &fops_ulong_wo); } + +static ssize_t +fops_blob_read(struct file *filp, char __user *ubuf, size_t read_size, loff_t *ppos) +{ + struct debugfs_blob_wrapper *blob; + + blob = filp->private_data; + if (blob == NULL) + return (-EINVAL); + if (blob->size == 0 || blob->data == NULL) + return (-EINVAL); + + return (simple_read_from_buffer(ubuf, read_size, ppos, blob->data, blob->size)); +} + +static int +fops_blob_open(struct inode *inode, struct file *filp) +{ + return (simple_open(inode, filp)); +} + +static const struct file_operations __fops_blob_ro = { + .owner = THIS_MODULE, + .open = fops_blob_open, + .read = fops_blob_read, + .llseek = no_llseek +}; + +struct dentry * +debugfs_create_blob(const char *name, umode_t mode, struct dentry *parent, + struct debugfs_blob_wrapper *value) +{ + /* Blobs are read-only. */ + return (debugfs_create_file(name, mode & 0444, parent, value, &__fops_blob_ro)); +} + + static int lindebugfs_init(PFS_INIT_ARGS) { diff --git a/sys/compat/linuxkpi/common/include/linux/debugfs.h b/sys/compat/linuxkpi/common/include/linux/debugfs.h index ba1fa009dc62..4c9f52a0bc0f 100644 --- a/sys/compat/linuxkpi/common/include/linux/debugfs.h +++ b/sys/compat/linuxkpi/common/include/linux/debugfs.h @@ -47,6 +47,11 @@ struct debugfs_regset32 { int nregs; }; +struct debugfs_blob_wrapper { + void *data; + size_t size; +}; + struct dentry *debugfs_create_file(const char *name, umode_t mode, struct dentry *parent, void *data, const struct file_operations *fops); @@ -75,8 +80,12 @@ void debugfs_remove_recursive(struct dentry *dentry); void debugfs_create_bool(const char *name, umode_t mode, struct dentry *parent, bool *value); - +void debugfs_create_u8(const char *name, umode_t mode, struct dentry *parent, + uint8_t *value); void debugfs_create_ulong(const char *name, umode_t mode, struct dentry *parent, unsigned long *value); +struct dentry *debugfs_create_blob(const char *name, umode_t mode, + struct dentry *parent, struct debugfs_blob_wrapper *value); + #endif /* _LINUXKPI_LINUX_DEBUGFS_H_ */ From nobody Wed Jan 18 16:24:50 2023 X-Original-To: dev-commits-src-branches@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 4Nxrh32nFSz2yJRN; Wed, 18 Jan 2023 16:24:51 +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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Nxrh26M0gz3Dtn; Wed, 18 Jan 2023 16:24:50 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1674059090; 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=yY3nLDIotnDsi6egIHIdlzHTb1sB2hSXExm6LhwT45w=; b=L0UXr7zDFIFKIvf5dmSO7kUr2vP7pVDJXRj433RTlWBpNrLQpF+lRgYlYPo+kkD/5TtkH/ Lzf6nQBlwBqAcPBUuWYKjKBUN0e0mi0l2iKpr+iD/KJdeXOQjslGBq0YSFLa4+eHbVhSod zAHXZGqbHM0QLrs4cn8fnerj0sEPigDBP+4m7Sw/zoJoYKZUV7SyLkZV3L3ABrYzSSv3Xy HeWyVJMzHY9BqnoBOV0pEVH/iMe7XoyByKtehGameKsk+paGu8hkZRGP6EGmO1HXhWJQlW Wg7z38xBjGgTfs/TNbHfNkttPkABL4aFXDiwB4/tCWKliDn+ksNrGSLbZii6Sw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1674059090; 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=yY3nLDIotnDsi6egIHIdlzHTb1sB2hSXExm6LhwT45w=; b=rIXuXPTWidZPZQlNoHBIAZ8//A23JxZKX5w1Zd/lgXE8aHvvDFY3eKF5qKZQXjQVOySTQl 9uzYbwdq4dvVPVObXtZx6WdyOHcDvaet9PyoEIKCBMMKd3WVsmSM8JV6UFEs9z8NW7cY1k Q5QP48ywQJQwcjqifnb5kguJK6Lt217eyt2FE/KFaXwRh95p3Nd03byvYQXuvCofYm5W49 TNOtzsjxc9LCiLhYDE0CyZZH2oHqWvXUAGu21TXUKA6cN5MCoreeTQnuLL/I6OigdAcFnh dMCIxxVk36fvp2DV/gtZET8Xw/B8IdCMI0/oOkX7GSixi1Zz0xhc51ZJ31KmNA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1674059090; a=rsa-sha256; cv=none; b=AwYLyRxWTTHvtN2BfXqI5DkpR/Aqy+Sn0BJlNpptJIbR0Yl21aJujBDgrTchs1VSwk8Pfz 6aUwdWVUKVdsB9BXPXrGFXGM04ofLcnLc6XRu2Wv2kCc4fgqyZvEGfsruRRcQyKxBTkR+N yUiQCTV4RNC8s+xk/4FbNJ8n6U/Wts6h4133eCihh/kroPnJWmNGNi2elRBxDgBMiEI7iL OpmRbxG/OEtngqOzfjbOc8A1wslZiHvLHISy+4in5Faks11Dg9L1v1SF7IKniNJJ+nOQzZ SzZfQvNvWUjDfrZSbVsTulFn1/DHRMn5kKY0TH6a8jTJ+xKkyott/tDVjTEBxA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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 did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Nxrh25Q31zHpB; Wed, 18 Jan 2023 16:24:50 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 30IGOo7D037963; Wed, 18 Jan 2023 16:24:50 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 30IGOogt037962; Wed, 18 Jan 2023 16:24:50 GMT (envelope-from git) Date: Wed, 18 Jan 2023 16:24:50 GMT Message-Id: <202301181624.30IGOogt037962@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: "Bjoern A. Zeeb" Subject: git: 4073b7ddf14a - stable/13 - LinuxKPI: pci.h add more MSI related constanst and pci_is_enabled() List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bz X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: 4073b7ddf14a2ff5adf5f18e3cc37a3fbb7994f3 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=4073b7ddf14a2ff5adf5f18e3cc37a3fbb7994f3 commit 4073b7ddf14a2ff5adf5f18e3cc37a3fbb7994f3 Author: Bjoern A. Zeeb AuthorDate: 2022-10-31 22:14:10 +0000 Commit: Bjoern A. Zeeb CommitDate: 2023-01-18 13:24:22 +0000 LinuxKPI: pci.h add more MSI related constanst and pci_is_enabled() Add more MSI related constansts defined to our native defines and pci_is_enabled(). All are needed for another wireless driver. Differential Revision: https://reviews.freebsd.org/D37225 (cherry picked from commit 5f2f582ccceec8729ee85bf191a2f7373c2994a4) --- sys/compat/linuxkpi/common/include/linux/pci.h | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/sys/compat/linuxkpi/common/include/linux/pci.h b/sys/compat/linuxkpi/common/include/linux/pci.h index 79999c3912f7..f870b039254c 100644 --- a/sys/compat/linuxkpi/common/include/linux/pci.h +++ b/sys/compat/linuxkpi/common/include/linux/pci.h @@ -163,6 +163,11 @@ MODULE_PNP_INFO("U32:vendor;U32:device;V32:subvendor;V32:subdevice", \ #define PCI_EXP_LNKCTL2_ENTER_COMP 0x0010 /* Enter Compliance */ #define PCI_EXP_LNKCTL2_TX_MARGIN 0x0380 /* Transmit Margin */ +#define PCI_MSI_ADDRESS_LO PCIR_MSI_ADDR +#define PCI_MSI_ADDRESS_HI PCIR_MSI_ADDR_HIGH +#define PCI_MSI_FLAGS PCIR_MSI_CTRL +#define PCI_MSI_FLAGS_ENABLE PCIM_MSICTRL_MSI_ENABLE + #define PCI_EXP_LNKCAP_CLKPM 0x00040000 #define PCI_EXP_DEVSTA_TRPND 0x0020 @@ -1611,4 +1616,12 @@ pcie_get_readrq(struct pci_dev *dev) return (128 << ((ctl & PCI_EXP_DEVCTL_READRQ) >> 12)); } +static inline bool +pci_is_enabled(struct pci_dev *pdev) +{ + + return ((pci_read_config(pdev->dev.bsddev, PCIR_COMMAND, 2) & + PCIM_CMD_BUSMASTEREN) != 0); +} + #endif /* _LINUXKPI_LINUX_PCI_H_ */ From nobody Wed Jan 18 16:24:51 2023 X-Original-To: dev-commits-src-branches@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 4Nxrh430CXz2yJNx; Wed, 18 Jan 2023 16:24:52 +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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Nxrh40R72z3Dm9; Wed, 18 Jan 2023 16:24:52 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1674059092; 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=Zo1FVrFZ1dS65A4hnbMRtoZ8btNednOuLaJSwD/ZR0U=; b=qpIlurthlibhLZgp/kf+BMJmecJUoVQM6juZDI8z7IhTFURsmp6C7JfOgziih3Mzbohpg5 fUApfYqd2znlnWpNnDXCspanZ09dNeq3PrLftw7aYnxvWkO9D1PY1L/Tf/shzxOpVaHsQV sTvjjjO1A2jDIxDBHWKJoXWRyWL3box5b/4npRCIbTXHWxut47Mw3zpjFsWVpzrJd/IyZy R7afzRTS9vdJ0eVJtHapXLfV9rqC8Mm+/FGlN+XfhINXJJQgiRg93aSWxZ89VLCkygZAeT e3SjizuLHEVF188z69VhDSEbnjCv/DOnoDeLLJe8WllQqv73XBzTwmLoU0/TeQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1674059092; 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=Zo1FVrFZ1dS65A4hnbMRtoZ8btNednOuLaJSwD/ZR0U=; b=HWP+ZTO5lePKQBXBxSUFmux+SoJcYW4fmU5Qt6VwW6zBjUailJF8pz1C8oggvk4gNBoKzl UAPAaXLGfd/+LIFFf0U+H84Wb0/K+kEf2dxf0DJzo2RurG+EY26HNfAsu7GlB14S/o8Eir Ivn7ulFtNzQq0Z0wSWA3yY0+kVhu/qOUr40jaFE8YlyA5dc59m7T4mSrpAcdRT5mpF5Ivb KkjIGb5yVFEmEVTE5XfCoGt1XSlgNDiW6IFgE2QKZ/IRks17x/24+q8kMHKTrZJ46fuyVx arf1pTYelST/2OEhKHlTyUVxW8KCjEtcgb+YLR65jc3ebZb4FSfbAMlxpxieJA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1674059092; a=rsa-sha256; cv=none; b=snrxYUwIlhnDnP6SzYhM0ydUPyXeDdO8ViqY6rZbgL8xlOVNZ0kxQ/crZ8jR4hw8I4+/l3 /JHVnfT/LC+KvhqUjQgJVx7hjnZ9PVL1qw7fBqpMVsiIsrGzphS2H/cHBFkP+fL43NSPay rM0rtCG8HMdjst4ufhjA8QQVn+uD+upAB7LcslRm19lT3928YHNImIRlzOZ8UHIfhuzJXA Fjr7aw17dsBPff54eDSNivPtL3j7E0uv+iJMn4QKRPOViymXhTVbGV5z3A8pMIyO7uh10U xRByFbOo+I4uf7CDCivXtJqy8eCW5OgsmoD0ZJ+X9OqehTWQia7X8AYtMjiaGg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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 did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Nxrh36QQtzHZZ; Wed, 18 Jan 2023 16:24:51 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 30IGOpe7037987; Wed, 18 Jan 2023 16:24:51 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 30IGOp4M037986; Wed, 18 Jan 2023 16:24:51 GMT (envelope-from git) Date: Wed, 18 Jan 2023 16:24:51 GMT Message-Id: <202301181624.30IGOp4M037986@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: "Bjoern A. Zeeb" Subject: git: aca218556485 - stable/13 - LinuxKPI: pm.h add pm_sleep_ptr and DEFINE_SIMPLE_DEV_PM_OPS List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bz X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: aca2185564859f967943058925ccc71975df911c Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=aca2185564859f967943058925ccc71975df911c commit aca2185564859f967943058925ccc71975df911c Author: Bjoern A. Zeeb AuthorDate: 2022-11-28 22:31:28 +0000 Commit: Bjoern A. Zeeb CommitDate: 2023-01-18 13:24:27 +0000 LinuxKPI: pm.h add pm_sleep_ptr and DEFINE_SIMPLE_DEV_PM_OPS Extend pm.h by pm_sleep_ptr and DEFINE_SIMPLE_DEV_PM_OPS(). For the moment this duplicates some parts (as can be seen in the earlier review I tried to simplify bits but given our implementation this was easier in the end). While here and cleanup the SIMPLE_DEV_PM_OPS() bits (white-space only). Reviewed by: hselasky Differential Revision: https://reviews.freebsd.org/D37527 (cherry picked from commit 4052b0e4b218f916b1f491a5ec9e41d38029215b) --- sys/compat/linuxkpi/common/include/linux/pm.h | 28 +++++++++++++++++++++------ 1 file changed, 22 insertions(+), 6 deletions(-) diff --git a/sys/compat/linuxkpi/common/include/linux/pm.h b/sys/compat/linuxkpi/common/include/linux/pm.h index d67cebb9764a..eb3316088787 100644 --- a/sys/compat/linuxkpi/common/include/linux/pm.h +++ b/sys/compat/linuxkpi/common/include/linux/pm.h @@ -47,20 +47,36 @@ struct dev_pm_domain { #define PM_EVENT_FREEZE 0x0001 #define PM_EVENT_SUSPEND 0x0002 +#define pm_sleep_ptr(_p) \ + IS_ENABLED(CONFIG_PM_SLEEP) ? (_p) : NULL + #ifdef CONFIG_PM_SLEEP #define SIMPLE_DEV_PM_OPS(_name, _suspendfunc, _resumefunc) \ const struct dev_pm_ops _name = { \ - .suspend = _suspendfunc, \ - .resume = _resumefunc, \ - .freeze = _suspendfunc, \ - .thaw = _resumefunc, \ - .poweroff = _suspendfunc, \ - .restore = _resumefunc, \ + .suspend = _suspendfunc, \ + .resume = _resumefunc, \ + .freeze = _suspendfunc, \ + .thaw = _resumefunc, \ + .poweroff = _suspendfunc, \ + .restore = _resumefunc, \ +} + +#define DEFINE_SIMPLE_DEV_PM_OPS(_name, _suspendfunc, _resumefunc) \ +const struct dev_pm_ops _name = { \ + .suspend = _suspendfunc, \ + .resume = _resumefunc, \ + .freeze = _suspendfunc, \ + .thaw = _resumefunc, \ + .poweroff = _suspendfunc, \ + .restore = _resumefunc, \ } #else #define SIMPLE_DEV_PM_OPS(_name, _suspendfunc, _resumefunc) \ const struct dev_pm_ops _name = { \ } +#define DEFINE_SIMPLE_DEV_PM_OPS(_name, _suspendfunc, _resumefunc) \ +const struct dev_pm_ops _name = { \ +} #endif #endif /* _LINUXKPI_LINUX_PM_H */ From nobody Wed Jan 18 16:24:52 2023 X-Original-To: dev-commits-src-branches@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 4Nxrh51YNXz2yJRS; Wed, 18 Jan 2023 16:24:53 +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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Nxrh513QHz3DvS; Wed, 18 Jan 2023 16:24:53 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1674059093; 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=wxvtHQqoLS1JgOGS2D0v3fEWUm5ufwO/iKutEyUIWv4=; b=bfq3VkzmSXJnVnV/XQ/yEOh6uCSnduxMfuLsxiNObXvOjjdzDUxkt66nqodl74ZdnWAvkP lCHKbE/9GiKt8WsExI4EfzGliw6NZAPu1I5LwAS5UDjeUqWgI3mex1N55g9JUZ1+vx1pso FvQHvSsowPk9/aV93kNadIbxJmtIYNVgLzdE1oUNC7pyjJdXf1shqZtLGcz4BordxB4KeT zNtzQqdyDgrksC3n0Lfk9Lo8l2W8aW1nWMhBcOjr+B6QVlxTzGtg34C8Fj8G7/A3+Unt0W LYL9QRYOj78ZZgoJL/QXG+gE5hwQEKgRSZ1HfMAWyhPB2L+8PJM7lEgSbTtwZA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1674059093; 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=wxvtHQqoLS1JgOGS2D0v3fEWUm5ufwO/iKutEyUIWv4=; b=QvlmUMBr0yzjxaWc5ADvpVvXTJfP62NPAFHxSiuLnXSWgz+Ugr5elnd7Rz4BV7BG0/BX5F c8rB6mVZqHQ2bVqy1PZT5UMUk2u7Ha2DtadNzvne7oikZ+PBUfweiS4Ho3OpIJUmYjXXB9 XSl7vu0yY6CCnpx0UnEQEH0XE8guvwI5gVkl8uQ2ybZcbB0sgKl+Q/ZymIfdGO4WwbePeo ArmKfj7rpiGtRUqtOg4khQgCx5fUBqNxvXuXlcjG0TcBmqR2l+hSr0s9zwTVTXuCtxfvfW ZBus+ylZukhfGfaZ0HZ57KL6HjBVJXKvCLZ6ksXNR7kLuogdfcE+9p7aMWWPxw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1674059093; a=rsa-sha256; cv=none; b=FpxNM0r1n+CsZqMlRWk1kYr+SyDoSgP7XrOY6BAifldwtMEKPmCzl5RwPQhGCsUICgNk5L 7aJEYvIjkpmjbTQ/IpOp4LFtXj12+IZvHv1JizI6Yd3EV7JU0lui9V98/vxxtiE4Ig0NZE obnfrdNTXi61quxF7nWRxoVwzb5q+/60i4TI2OK8aaBBTrNaXc1sJ/GJEss96LKTnsgWdX PRUrY2ktBDl0st00FEorvnXZRukMHUZ5enCIoECZ1yhdvH/v2lqTsqkx3p0cQRi6EgCV2q K1ZfdeFHq306950t/vUebarfQpKCTVcrIB/kUJ+x2s5nmXYwNpUMiVZB7DvaLA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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 did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Nxrh506LZzJDD; Wed, 18 Jan 2023 16:24:53 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 30IGOq3Z038011; Wed, 18 Jan 2023 16:24:52 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 30IGOqNO038010; Wed, 18 Jan 2023 16:24:52 GMT (envelope-from git) Date: Wed, 18 Jan 2023 16:24:52 GMT Message-Id: <202301181624.30IGOqNO038010@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: "Bjoern A. Zeeb" Subject: git: 9bf3a5616c51 - stable/13 - LinuxKPI: add simplified version of page_frag_cache List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bz X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: 9bf3a5616c51081b221cbb794f559a5aab07aabc Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=9bf3a5616c51081b221cbb794f559a5aab07aabc commit 9bf3a5616c51081b221cbb794f559a5aab07aabc Author: Bjoern A. Zeeb AuthorDate: 2022-12-03 00:33:34 +0000 Commit: Bjoern A. Zeeb CommitDate: 2023-01-18 13:25:11 +0000 LinuxKPI: add simplified version of page_frag_cache For the moment and the currently only consumer (mt76) add a simplified version of the page_frag_cache. We will only accept fragement sizes up to 1 PAGE_SIZE (KASSERT) and we will always return a full page. Should we add more consumers or small (or large) objects would become a problem we can always add a more elaborate version. Discussed with: markj Reviewed by: markj (,hselasky commented as well) MFC after: 3 days Differential Revision: https://reviews.freebsd.org/D37595 (cherry picked from commit 55038a6306a570c9f2df89f5ad076de0f7d98152) LinuxKPI: fix possible NULL dereference in linuxkpi_page_frag_alloc() Reported by: Coverity via emaste Coverity ID: 1502345 Sponsored by: The FreeBSD Foundation (cherry picked from commit 51e94a4658d23016dd0ae67c189a89f53281cbcd) --- sys/compat/linuxkpi/common/include/linux/gfp.h | 29 ++++++++++++++++ sys/compat/linuxkpi/common/src/linux_page.c | 47 ++++++++++++++++++++++++++ 2 files changed, 76 insertions(+) diff --git a/sys/compat/linuxkpi/common/include/linux/gfp.h b/sys/compat/linuxkpi/common/include/linux/gfp.h index 6273fa969db8..7657e78b0950 100644 --- a/sys/compat/linuxkpi/common/include/linux/gfp.h +++ b/sys/compat/linuxkpi/common/include/linux/gfp.h @@ -80,6 +80,11 @@ CTASSERT((__GFP_DMA32 & GFP_NATIVE_MASK) == 0); CTASSERT((__GFP_BITS_MASK & GFP_NATIVE_MASK) == GFP_NATIVE_MASK); +struct page_frag_cache { + void *va; + int pagecnt_bias; +}; + /* * Resolve a page into a virtual address: * @@ -94,6 +99,9 @@ extern void *linux_page_address(struct page *); */ extern vm_page_t linux_alloc_pages(gfp_t flags, unsigned int order); extern void linux_free_pages(vm_page_t page, unsigned int order); +void *linuxkpi_page_frag_alloc(struct page_frag_cache *, size_t, gfp_t); +void linuxkpi_page_frag_free(void *); +void linuxkpi__page_frag_cache_drain(struct page *, size_t); static inline struct page * alloc_page(gfp_t flags) @@ -175,6 +183,27 @@ free_page(uintptr_t addr) linux_free_kmem(addr, 0); } +static inline void * +page_frag_alloc(struct page_frag_cache *pfc, size_t fragsz, gfp_t gfp) +{ + + return (linuxkpi_page_frag_alloc(pfc, fragsz, gfp)); +} + +static inline void +page_frag_free(void *addr) +{ + + linuxkpi_page_frag_free(addr); +} + +static inline void +__page_frag_cache_drain(struct page *page, size_t count) +{ + + linuxkpi__page_frag_cache_drain(page, count); +} + static inline bool gfpflags_allow_blocking(const gfp_t gfp_flags) { diff --git a/sys/compat/linuxkpi/common/src/linux_page.c b/sys/compat/linuxkpi/common/src/linux_page.c index df4a124cf3e2..5fa370147045 100644 --- a/sys/compat/linuxkpi/common/src/linux_page.c +++ b/sys/compat/linuxkpi/common/src/linux_page.c @@ -429,3 +429,50 @@ lkpi_arch_phys_wc_del(int reg) free(mrdesc, M_LKMTRR); #endif } + +/* + * This is a highly simplified version of the Linux page_frag_cache. + * We only support up-to 1 single page as fragment size and we will + * always return a full page. This may be wasteful on small objects + * but the only known consumer (mt76) is either asking for a half-page + * or a full page. If this was to become a problem we can implement + * a more elaborate version. + */ +void * +linuxkpi_page_frag_alloc(struct page_frag_cache *pfc, + size_t fragsz, gfp_t gfp) +{ + vm_page_t pages; + + if (fragsz == 0) + return (NULL); + + KASSERT(fragsz <= PAGE_SIZE, ("%s: fragsz %zu > PAGE_SIZE not yet " + "supported", __func__, fragsz)); + + pages = alloc_pages(gfp, flsl(howmany(fragsz, PAGE_SIZE) - 1)); + if (pages == NULL) + return (NULL); + pfc->va = linux_page_address(pages); + + /* Passed in as "count" to __page_frag_cache_drain(). Unused by us. */ + pfc->pagecnt_bias = 0; + + return (pfc->va); +} + +void +linuxkpi_page_frag_free(void *addr) +{ + vm_page_t page; + + page = PHYS_TO_VM_PAGE(vtophys(addr)); + linux_free_pages(page, 0); +} + +void +linuxkpi__page_frag_cache_drain(struct page *page, size_t count __unused) +{ + + linux_free_pages(page, 0); +} From nobody Wed Jan 18 16:24:54 2023 X-Original-To: dev-commits-src-branches@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 4Nxrh633T3z2yJM1; Wed, 18 Jan 2023 16:24:54 +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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Nxrh62Bdyz3FDF; Wed, 18 Jan 2023 16:24:54 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1674059094; 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=ZE9dH6vMfl3tFp9N2hc+EEheh4AhlERPP50kwSzLz5s=; b=T4P2M+gXeZrmHxemyAeLEsMeUCh25PbWpggog/AD8WS7LZh00zu97sR/CVl429qxVkClsY g1dq1CrSnR+Gn+2yZlyH0lCLWcqLv4zvzIjsNx83muoz5xp9t4pBP7fb45kOJPRoXKb89r un8XpAz4T3dincCQtEmmPWJabcrV9MTUPqdZwMsr6jZSwXbdS60hTGbX834h1kRJ2hdQCv dn+d1yxSTp84aDD/ZlNdtCZAg0ztZRGQhAdzwQHq1rXQ29oLKL4uQF92LuC3i83NaJvRxY Y0rSh8+39FUemYtIseFl8zj9Nxt0/+jtkKpZiQyeyKMO7CXIfzlqGmKEpN9OfQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1674059094; 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=ZE9dH6vMfl3tFp9N2hc+EEheh4AhlERPP50kwSzLz5s=; b=fNFocOkFdpHyWT+IUJJQFYowm1OSGIOGS/MDUWc2kmQQL1E8Vaq/mADVVPtUtcy+Iu4w9h +FhT7AXEh1Iydq+lZfR25bm5h/GeuQpU46rgX87gKmuw8S9nLLfYYYJCeCK8KbFei9pG0c kgZZTApjyI1USLWqo1QuoFct5Sysg+v4Ej7TBv/HsmJ57YdVLRCH1KYGatleesr7mmzFN8 Uw3q2Osd5J+Il9D4eAVyRmsXJeTgiCu2lZlqhao8eDcWvI1Ugc37zftU5/4zCbK+yXvWB6 GPEZIboX+3QUJXy9RxUhu0d0uEcV4t1r7uryyNNvfNTTuJfXc8Ta/GL3qhSruQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1674059094; a=rsa-sha256; cv=none; b=XLFvgg3RCwybKhN9mHhYW5VN6kkGGLlSZbDOBekAXd3q/z+iBzwso1l4/nZETMyWYePs41 6W9mw13rqTnDRGgXoAl9SOYcudoFPf4RVpgfRf6OCY6+NTYXbv1aXgIgJ7fsOda5I7DyPd YRH7yc816XkvkDtJuJYahBXEVBm60D+Sp60XtSiwuT29qeuNKu2OOi7WKmGv7Qizi2nLYm HkezUierujYqwKOicMUDm7JI0Xskqc+/IbTc7nPu3XOZhJHrmhwOcjFtGNvb1eEisy28CQ GFWoxaNRV9vaMfmHaX7prgpWNUZSqsvTPTWuI6A5whxZ2GISlCKTQq/FKWOi1A== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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 did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Nxrh61BYtzJB3; Wed, 18 Jan 2023 16:24:54 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 30IGOsmF038036; Wed, 18 Jan 2023 16:24:54 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 30IGOsWg038035; Wed, 18 Jan 2023 16:24:54 GMT (envelope-from git) Date: Wed, 18 Jan 2023 16:24:54 GMT Message-Id: <202301181624.30IGOsWg038035@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: "Bjoern A. Zeeb" Subject: git: 44b254d9d329 - stable/13 - LinuxKPI: 802.11: implement cfg80211_get_ies_channel_number() List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bz X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: 44b254d9d32939ef223cb0e3df1ea085a3a5efd2 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=44b254d9d32939ef223cb0e3df1ea085a3a5efd2 commit 44b254d9d32939ef223cb0e3df1ea085a3a5efd2 Author: Bjoern A. Zeeb AuthorDate: 2022-12-31 01:59:20 +0000 Commit: Bjoern A. Zeeb CommitDate: 2023-01-18 13:25:46 +0000 LinuxKPI: 802.11: implement cfg80211_get_ies_channel_number() Using the previous changes implement cfg80211_get_ies_channel_number() either based on DSPARMS (or for the future HTINFO). Sponsored by: The FreeBSD Foundation (cherry picked from commit 13d87d92e401523f8d8e817720d40dc31cdfa444) --- sys/compat/linuxkpi/common/include/net/cfg80211.h | 28 +++++++++++++++++++++-- 1 file changed, 26 insertions(+), 2 deletions(-) diff --git a/sys/compat/linuxkpi/common/include/net/cfg80211.h b/sys/compat/linuxkpi/common/include/net/cfg80211.h index e6f1bd88309d..ee6697bb4d4a 100644 --- a/sys/compat/linuxkpi/common/include/net/cfg80211.h +++ b/sys/compat/linuxkpi/common/include/net/cfg80211.h @@ -1677,12 +1677,36 @@ cfg80211_channel_is_psc(struct linuxkpi_ieee80211_channel *channel) return (false); } -static __inline int +static inline int cfg80211_get_ies_channel_number(const uint8_t *ie, size_t len, enum nl80211_band band, enum cfg80211_bss_frame_type ftype) { + const struct element *elem; - TODO(); + switch (band) { + case NL80211_BAND_6GHZ: + TODO(); + break; + case NL80211_BAND_5GHZ: + case NL80211_BAND_2GHZ: + /* DSPARAMS has the channel number. */ + elem = cfg80211_find_elem(IEEE80211_ELEMID_DSPARMS, ie, len); + if (elem != NULL && elem->datalen == 1) + return (elem->data[0]); + /* HTINFO has the primary center channel. */ + elem = cfg80211_find_elem(IEEE80211_ELEMID_HTINFO, ie, len); + if (elem != NULL && + elem->datalen >= (sizeof(struct ieee80211_ie_htinfo) - 2)) { + const struct ieee80211_ie_htinfo *htinfo; + htinfo = (const struct ieee80211_ie_htinfo *)elem; + return (htinfo->hi_ctrlchannel); + } + /* What else? */ + break; + default: + IMPROVE("Unsupported"); + break; + } return (-1); } From nobody Wed Jan 18 16:24:55 2023 X-Original-To: dev-commits-src-branches@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 4Nxrh75QrMz2yJRT; Wed, 18 Jan 2023 16:24:55 +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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Nxrh72pdtz3F1c; Wed, 18 Jan 2023 16:24:55 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1674059095; 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=2MlkFr8/a1I8O8MjTi/BlUh4vnIaZYtTyld/m2hzYL0=; b=HfGsmE/0nUwnbKjOJkqv1Us3Q4XEI1B3bfkleAg1ZNQY77PPIInhQAl6+5nbSzTTYtnNrp jA5mF6d3JgV72xSWJVd9AQQRCNSaOibzSsZEjGX7bEqSvUqKeRx3M7rH389pc/0NNpUExb qdofax4x8E6DewLlileBLWjZYdG3jj3YJ8tBJr9VcJbeW7zI9fieqp/d7Hb+YEf7AadsAY gJPQw5emI0B4NH040VmEup7IIxuIlpm+xAjDE68VEEq7mLZO+QIylsBLG1zkEiujhAp7w0 O25PQwQuqyBhnDcpKjTOiHSJ+sFl0Wys4K0RShRPAz9JWOj5kKfPm9hAco3eEg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1674059095; 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=2MlkFr8/a1I8O8MjTi/BlUh4vnIaZYtTyld/m2hzYL0=; b=VETlRV0ycVVY6O9fDOjrsGnqqvXT9BCRUvKiNSXV3GEnQRaDHnObSTZJ3Ze+9ERR2JdgxC Eg6x4BABs2RMZYh1x4ht1vuyVQXNPGif8yB6sTkhkSj9XPhKHoofyC9DLlrTfm3YONHCB0 RTFK2jpD7SApOhgVYjnlMsLziplAR1lSJJ+YVVN9JMpjzlxEaVjVpLlBHbLeUC9npyYsHd RRlGceRAyWn3dNZjFwsuhz/4Nmotn78lawvnOu+oe37RbG6Bij3wgTdeUESIlmKNuD1WZ9 wfAEa670aGm4pJnic/gBFPfp/WvtVU8YRJmAlIJnn0XT4ZcQrp1G9Tk21s6lnA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1674059095; a=rsa-sha256; cv=none; b=K78IwPJnXnma9gdXT78v/wS37maXJpUaHArZo2xaLtELnzLiL0x6lr5r2A5dxIUGpeFnI+ IIXH2UauARBUiwvyQReeTPCqm496r3BkxccylZWEOV+Xhh3G7Yb3wkxFkq25H5fAyQxHj6 lVZFqnttUcjEZuuWk36WLx1mTdcnuKOEjoZH/qDV3HazKSayBuQ6C0LzzLMhAAFyUcT6qy UR2vhByjjlkkS66DnWcWV7sUZ2A3PzXDnUghP2Ogg+qPVoNcVEMGZaao3d9ENhIJFjtJ/L 8JuAecb7mQppFgO2gOndmgsg4r76H/+KNXvvHCxZvR0ysqAK4AjHj7JJRjW6Rg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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 did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Nxrh71swYzHc0; Wed, 18 Jan 2023 16:24:55 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 30IGOt2H038060; Wed, 18 Jan 2023 16:24:55 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 30IGOtvU038059; Wed, 18 Jan 2023 16:24:55 GMT (envelope-from git) Date: Wed, 18 Jan 2023 16:24:55 GMT Message-Id: <202301181624.30IGOtvU038059@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: "Bjoern A. Zeeb" Subject: git: ca6485cbf420 - stable/13 - LinuxKPI: 802.11: implement cfg80211_{get,put}_bss List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bz X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: ca6485cbf42038c3575e2acaf17fb7f7b048e477 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=ca6485cbf42038c3575e2acaf17fb7f7b048e477 commit ca6485cbf42038c3575e2acaf17fb7f7b048e477 Author: Bjoern A. Zeeb AuthorDate: 2022-12-31 01:18:16 +0000 Commit: Bjoern A. Zeeb CommitDate: 2023-01-18 13:25:52 +0000 LinuxKPI: 802.11: implement cfg80211_{get,put}_bss Implement cfg80211_{get,put}_bss currently doing malloc/free bits, so hopefully the drivers get the calls right. cfg80211_get_bss() sets up a lookup structure which may also take a result (first hit wins) and calls ieee80211_scan_iterate() comparing the various values in the iterator funcion. Some of the checks are partially pointless (as it seems the drivers are not interested in these parts [ANY] but we keep them for documentation purposes should futher values arise in the future). We currently only iterate over the first VAP which will do for now. Sponsored by: The FreeBSD Foundation (cherry picked from commit 5edde07c2aba02d0f7d30bbb0f203ec3e920e273) --- sys/compat/linuxkpi/common/include/net/cfg80211.h | 51 +++--- sys/compat/linuxkpi/common/src/linux_80211.c | 194 +++++++++++++++++++--- 2 files changed, 199 insertions(+), 46 deletions(-) diff --git a/sys/compat/linuxkpi/common/include/net/cfg80211.h b/sys/compat/linuxkpi/common/include/net/cfg80211.h index ee6697bb4d4a..8d69ff0891d9 100644 --- a/sys/compat/linuxkpi/common/include/net/cfg80211.h +++ b/sys/compat/linuxkpi/common/include/net/cfg80211.h @@ -1118,6 +1118,10 @@ uint32_t linuxkpi_ieee80211_channel_to_frequency(uint32_t, enum nl80211_band); uint32_t linuxkpi_ieee80211_frequency_to_channel(uint32_t, uint32_t); struct linuxkpi_ieee80211_channel * linuxkpi_ieee80211_get_channel(struct wiphy *, uint32_t); +struct cfg80211_bss *linuxkpi_cfg80211_get_bss(struct wiphy *, + struct linuxkpi_ieee80211_channel *, const uint8_t *, + const uint8_t *, size_t, enum ieee80211_bss_type, enum ieee80211_privacy); +void linuxkpi_cfg80211_put_bss(struct wiphy *, struct cfg80211_bss *); void linuxkpi_cfg80211_bss_flush(struct wiphy *); /* -------------------------------------------------------------------------- */ @@ -1189,6 +1193,32 @@ wiphy_rfkill_set_hw_state_reason(struct wiphy *wiphy, bool blocked, /* -------------------------------------------------------------------------- */ +static inline struct cfg80211_bss * +cfg80211_get_bss(struct wiphy *wiphy, struct linuxkpi_ieee80211_channel *chan, + const uint8_t *bssid, const uint8_t *ssid, size_t ssid_len, + enum ieee80211_bss_type bss_type, enum ieee80211_privacy privacy) +{ + + return (linuxkpi_cfg80211_get_bss(wiphy, chan, bssid, ssid, ssid_len, + bss_type, privacy)); +} + +static inline void +cfg80211_put_bss(struct wiphy *wiphy, struct cfg80211_bss *bss) +{ + + linuxkpi_cfg80211_put_bss(wiphy, bss); +} + +static inline void +cfg80211_bss_flush(struct wiphy *wiphy) +{ + + linuxkpi_cfg80211_bss_flush(wiphy); +} + +/* -------------------------------------------------------------------------- */ + static __inline bool rfkill_blocked(int rfkill) /* argument type? */ { @@ -1383,20 +1413,6 @@ freq_reg_info(struct wiphy *wiphy, uint32_t center_freq) return (NULL); } -static __inline struct cfg80211_bss * -cfg80211_get_bss(struct wiphy *wiphy, struct linuxkpi_ieee80211_channel *chan, - const uint8_t *bssid, void *p, int x, uint32_t f1, uint32_t f2) -{ - TODO(); - return (NULL); -} - -static __inline void -cfg80211_put_bss(struct wiphy *wiphy, struct cfg80211_bss *bss) -{ - TODO(); -} - static __inline void wiphy_apply_custom_regulatory(struct wiphy *wiphy, const struct linuxkpi_ieee80211_regdomain *regd) @@ -1658,13 +1674,6 @@ ieee80211_get_hdrlen_from_skb(struct sk_buff *skb) return (-1); } -static __inline void -cfg80211_bss_flush(struct wiphy *wiphy) -{ - - linuxkpi_cfg80211_bss_flush(wiphy); -} - static __inline bool cfg80211_channel_is_psc(struct linuxkpi_ieee80211_channel *channel) { diff --git a/sys/compat/linuxkpi/common/src/linux_80211.c b/sys/compat/linuxkpi/common/src/linux_80211.c index 01263a642abd..947878449db4 100644 --- a/sys/compat/linuxkpi/common/src/linux_80211.c +++ b/sys/compat/linuxkpi/common/src/linux_80211.c @@ -524,31 +524,6 @@ linuxkpi_ieee80211_get_channel(struct wiphy *wiphy, uint32_t freq) return (NULL); } -void -linuxkpi_cfg80211_bss_flush(struct wiphy *wiphy) -{ - struct lkpi_hw *lhw; - struct ieee80211com *ic; - struct ieee80211vap *vap; - - lhw = wiphy_priv(wiphy); - ic = lhw->ic; - - /* - * If we haven't called ieee80211_ifattach() yet - * or there is no VAP, there are no scans to flush. - */ - if (ic == NULL || - (lhw->sc_flags & LKPI_MAC80211_DRV_STARTED) == 0) - return; - - /* Should only happen on the current one? Not seen it late enough. */ - IEEE80211_LOCK(ic); - TAILQ_FOREACH(vap, &ic->ic_vaps, iv_next) - ieee80211_scan_flush(vap); - IEEE80211_UNLOCK(ic); -} - #ifdef LKPI_80211_HW_CRYPTO static int _lkpi_iv_key_set_delete(struct ieee80211vap *vap, const struct ieee80211_key *k, @@ -4566,6 +4541,175 @@ linuxkpi_ieee80211_beacon_loss(struct ieee80211_vif *vif) ieee80211_beacon_miss(vap->iv_ic); } +/* -------------------------------------------------------------------------- */ + +struct lkpi_cfg80211_bss { + u_int refcnt; + struct cfg80211_bss bss; +}; + +struct lkpi_cfg80211_get_bss_iter_lookup { + struct wiphy *wiphy; + struct linuxkpi_ieee80211_channel *chan; + const uint8_t *bssid; + const uint8_t *ssid; + size_t ssid_len; + enum ieee80211_bss_type bss_type; + enum ieee80211_privacy privacy; + + /* + * Something to store a copy of the result as the net80211 scan cache + * is not refoucnted so a scan entry might go away any time. + */ + bool match; + struct cfg80211_bss *bss; +}; + +static void +lkpi_cfg80211_get_bss_iterf(void *arg, const struct ieee80211_scan_entry *se) +{ + struct lkpi_cfg80211_get_bss_iter_lookup *lookup; + size_t ielen; + + lookup = arg; + + /* Do not try to find another match. */ + if (lookup->match) + return; + + /* Nothing to store result. */ + if (lookup->bss == NULL) + return; + + if (lookup->privacy != IEEE80211_PRIVACY_ANY) { + /* if (se->se_capinfo & IEEE80211_CAPINFO_PRIVACY) */ + /* We have no idea what to compare to as the drivers only request ANY */ + return; + } + + if (lookup->bss_type != IEEE80211_BSS_TYPE_ANY) { + /* if (se->se_capinfo & (IEEE80211_CAPINFO_IBSS|IEEE80211_CAPINFO_ESS)) */ + /* We have no idea what to compare to as the drivers only request ANY */ + return; + } + + if (lookup->chan != NULL) { + struct linuxkpi_ieee80211_channel *chan; + + chan = linuxkpi_ieee80211_get_channel(lookup->wiphy, + se->se_chan->ic_freq); + if (chan == NULL || chan != lookup->chan) + return; + } + + if (lookup->bssid && !IEEE80211_ADDR_EQ(lookup->bssid, se->se_bssid)) + return; + + if (lookup->ssid) { + if (lookup->ssid_len != se->se_ssid[1] || + se->se_ssid[1] == 0) + return; + if (memcmp(lookup->ssid, se->se_ssid+2, lookup->ssid_len) != 0) + return; + } + + ielen = se->se_ies.len; + + lookup->bss->ies = malloc(sizeof(*lookup->bss->ies) + ielen, + M_LKPI80211, M_NOWAIT | M_ZERO); + if (lookup->bss->ies == NULL) + return; + + lookup->bss->ies->data = (uint8_t *)lookup->bss->ies + sizeof(*lookup->bss->ies); + lookup->bss->ies->len = ielen; + if (ielen) + memcpy(lookup->bss->ies->data, se->se_ies.data, ielen); + + lookup->match = true; +} + +struct cfg80211_bss * +linuxkpi_cfg80211_get_bss(struct wiphy *wiphy, struct linuxkpi_ieee80211_channel *chan, + const uint8_t *bssid, const uint8_t *ssid, size_t ssid_len, + enum ieee80211_bss_type bss_type, enum ieee80211_privacy privacy) +{ + struct lkpi_cfg80211_bss *lbss; + struct lkpi_cfg80211_get_bss_iter_lookup lookup; + struct lkpi_hw *lhw; + struct ieee80211vap *vap; + + lhw = wiphy_priv(wiphy); + + /* Let's hope we can alloc. */ + lbss = malloc(sizeof(*lbss), M_LKPI80211, M_NOWAIT | M_ZERO); + if (lbss == NULL) { + ic_printf(lhw->ic, "%s: alloc failed.\n", __func__); + return (NULL); + } + + lookup.wiphy = wiphy; + lookup.chan = chan; + lookup.bssid = bssid; + lookup.ssid = ssid; + lookup.ssid_len = ssid_len; + lookup.bss_type = bss_type; + lookup.privacy = privacy; + lookup.match = false; + lookup.bss = &lbss->bss; + + IMPROVE("Iterate over all VAPs comparing perm_addr and addresses?"); + vap = TAILQ_FIRST(&lhw->ic->ic_vaps); + ieee80211_scan_iterate(vap, lkpi_cfg80211_get_bss_iterf, &lookup); + if (!lookup.match) { + free(lbss, M_LKPI80211); + return (NULL); + } + + refcount_init(&lbss->refcnt, 1); + return (&lbss->bss); +} + +void +linuxkpi_cfg80211_put_bss(struct wiphy *wiphy, struct cfg80211_bss *bss) +{ + struct lkpi_cfg80211_bss *lbss; + + lbss = container_of(bss, struct lkpi_cfg80211_bss, bss); + + /* Free everything again on refcount ... */ + if (refcount_release(&lbss->refcnt)) { + free(lbss->bss.ies, M_LKPI80211); + free(lbss, M_LKPI80211); + } +} + +void +linuxkpi_cfg80211_bss_flush(struct wiphy *wiphy) +{ + struct lkpi_hw *lhw; + struct ieee80211com *ic; + struct ieee80211vap *vap; + + lhw = wiphy_priv(wiphy); + ic = lhw->ic; + + /* + * If we haven't called ieee80211_ifattach() yet + * or there is no VAP, there are no scans to flush. + */ + if (ic == NULL || + (lhw->sc_flags & LKPI_MAC80211_DRV_STARTED) == 0) + return; + + /* Should only happen on the current one? Not seen it late enough. */ + IEEE80211_LOCK(ic); + TAILQ_FOREACH(vap, &ic->ic_vaps, iv_next) + ieee80211_scan_flush(vap); + IEEE80211_UNLOCK(ic); +} + +/* -------------------------------------------------------------------------- */ + MODULE_VERSION(linuxkpi_wlan, 1); MODULE_DEPEND(linuxkpi_wlan, linuxkpi, 1, 1, 1); MODULE_DEPEND(linuxkpi_wlan, wlan, 1, 1, 1); From nobody Wed Jan 18 16:24:56 2023 X-Original-To: dev-commits-src-branches@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 4Nxrh850NHz2yJWn; Wed, 18 Jan 2023 16:24:56 +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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Nxrh83v0pz3F6V; Wed, 18 Jan 2023 16:24:56 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1674059096; 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=D5l2HKSo1CIQ0yZztqS7B5WCBCnuydsvqwRZJgr+bVE=; b=b8+UZzjXlHvIoHkBe1YOvrtHzwb7YuzOEe6v7dCIBVnnAqToMiJnYCoMy7HdrVzQOmQMjx hcaupHhLT3B6tvL3jBjRLk8oTof+KU9k6DMx+D2Efd4I1sHZqAp4JWUBzTdHOZRQLI9btZ qO0SVq0JWLha3wgGAKMe0SA0lP+aOKPa4cs6dIACl06i794ta9MmimdafwV7gcOmEYL4CK 6kzW6I011vEjz0uJ54SjvWGr6MFNPeQKqJbblu17Gu8oqgYZiMPBWrtcnGu6QUraCME8i+ WqZ83Hf6D84iDv6jdabvW9iKtVwXSr5e3h0nvuLQkBK4hMGFVQ/ig/zQAy5yIA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1674059096; 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=D5l2HKSo1CIQ0yZztqS7B5WCBCnuydsvqwRZJgr+bVE=; b=BORPOUiK5194V1u+gPkIrWpDQt/w3xNgI36LCf0pGJ8VOZLW1gRfIK332ptvLMKOi937B5 7iO0yYmTRIUSXXJHuVetl+G0CaB/SAgJLSmGxZ9rOJaqBPh7ndZYPlQUmUoUIE9gibR31o WMYZBZ6YzorYIyncJ+PLY+LZu8OKGuwysWNgf1ysLbgkw15wcKB2JzE5Kk7PCaFn5htEuk asyWmFm/GTbcF4Tmap9l6ed8qMZEZE/q4NmaSDZM4lI7IvbyGHObb7Im4HSFg6uWWvffjT nWZkXwmNHqLPVrrH5Z9Syby34ZWRJ/3p53i+kmnA+H6UuFgoL8kPN+Y4NGTxwg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1674059096; a=rsa-sha256; cv=none; b=vVHsFbB46WRQmcUKwy57NRHyWuEoY4Aijy+nU9QFTI2gY+4Iy5QeuL/D20nM58xRW2XXi+ RxDoJGAnZWtqMckRDzKJ1HKkSPcj+gxD1jW75hzMmbAFphy9oFlbJ26rkBvIA3MxZ4QAHc mWvIgNNR0z8zN1gSxG+WymLRwHDer6ObKkRzf6rSFUnAz3j733CYTF5OHBNbviv/otnsm1 9cwN0PgdMNiXUAn4hp3SAzHNuFunWMK4AoXsfIhx0kdv83br8KxmlQDLPLNGd1+7H3YnkT oVt9tofyRWpHpXFwL0KdDihMpIkYJIbcQTzW3I4BWJP5983KJCg2d9PS+U677Q== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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 did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Nxrh82z0VzHSc; Wed, 18 Jan 2023 16:24:56 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 30IGOupX038090; Wed, 18 Jan 2023 16:24:56 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 30IGOuoq038089; Wed, 18 Jan 2023 16:24:56 GMT (envelope-from git) Date: Wed, 18 Jan 2023 16:24:56 GMT Message-Id: <202301181624.30IGOuoq038089@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: "Bjoern A. Zeeb" Subject: git: d42205c0ba27 - stable/13 - LinuxKPI: 802.11: set sta supported legacy rates List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bz X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: d42205c0ba27c2d223d5dbd6bec3d30e1d4e8c45 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=d42205c0ba27c2d223d5dbd6bec3d30e1d4e8c45 commit d42205c0ba27c2d223d5dbd6bec3d30e1d4e8c45 Author: Bjoern A. Zeeb AuthorDate: 2022-12-31 00:33:34 +0000 Commit: Bjoern A. Zeeb CommitDate: 2023-01-18 13:25:57 +0000 LinuxKPI: 802.11: set sta supported legacy rates When initializing the sta set the per-band supported legacy rates as some drivers take the information from there. Sponsored by: The FreeBSD Foundation (cherry picked from commit b6b352e4c7125e7d85ba382f05b1bad8454b6233) --- sys/compat/linuxkpi/common/src/linux_80211.c | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/sys/compat/linuxkpi/common/src/linux_80211.c b/sys/compat/linuxkpi/common/src/linux_80211.c index 947878449db4..170f6162cd6b 100644 --- a/sys/compat/linuxkpi/common/src/linux_80211.c +++ b/sys/compat/linuxkpi/common/src/linux_80211.c @@ -192,7 +192,7 @@ lkpi_lsta_alloc(struct ieee80211vap *vap, const uint8_t mac[IEEE80211_ADDR_LEN], struct lkpi_vif *lvif; struct ieee80211_vif *vif; struct ieee80211_sta *sta; - int tid; + int band, i, tid; lsta = malloc(sizeof(*lsta) + hw->sta_data_size, M_LKPI80211, M_NOWAIT | M_ZERO); @@ -216,6 +216,8 @@ lkpi_lsta_alloc(struct ieee80211vap *vap, const uint8_t mac[IEEE80211_ADDR_LEN], sta = LSTA_TO_STA(lsta); IEEE80211_ADDR_COPY(sta->addr, mac); + + /* TXQ */ for (tid = 0; tid < nitems(sta->txq); tid++) { struct lkpi_txq *ltxq; @@ -243,6 +245,24 @@ lkpi_lsta_alloc(struct ieee80211vap *vap, const uint8_t mac[IEEE80211_ADDR_LEN], sta->txq[tid] = <xq->txq; } + /* Deflink information. */ + for (band = 0; band < NUM_NL80211_BANDS; band++) { + struct ieee80211_supported_band *supband; + + supband = hw->wiphy->bands[band]; + if (supband == NULL) + continue; + + for (i = 0; i < supband->n_bitrates; i++) { + + IMPROVE("Further supband->bitrates[i]* checks?"); + /* or should we get them from the ni? */ + sta->deflink.supp_rates[band] |= BIT(i); + } + } + IMPROVE("ht, vht, he, ... bandwidth, smps_mode, .."); + /* bandwidth = IEEE80211_STA_RX_... */ + /* Deferred TX path. */ mtx_init(&lsta->txq_mtx, "lsta_txq", NULL, MTX_DEF); TASK_INIT(&lsta->txq_task, 0, lkpi_80211_txq_task, lsta); From nobody Wed Jan 18 16:24:57 2023 X-Original-To: dev-commits-src-branches@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 4Nxrh95S0Jz2yJMN; Wed, 18 Jan 2023 16:24:57 +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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Nxrh94zwFz3F6x; Wed, 18 Jan 2023 16:24:57 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1674059097; 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=wOLB1GtlC4l8JJwjJ4k6RGywJD+xqdhm6IkCvfG9kHM=; b=sprdx+7AnUMpWuYuSL2Ykj4s8LVAwwKaqQ43vxg/26AdUAqy8x5Jfqgj4qENxIv0y5GOJd Ip9OZc30fofd6b152xLplz00HcLQ1MNg4iw4mME1/LKwfYHo2KHe4NX/pFxv5DvUqlnXgR o1X/OT7xMQWVOPyNUY4ajXuiZDxwF5jZgPKpajSlOmqagyYdCq+adt9zGUOFCGZx3hZJxj 8OfN9fkN6f9xG7mR+BeXLu9DnHBd27MtMs6TAzxeyoyyx9+N+70++V5NDz7eEde7uGANOK KaK+wRE2kvXYNNSI+gZZKyBRTlj9FqsmTruw/U1vsqbgR1vNL4sZXc4PF1QEtw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1674059097; 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=wOLB1GtlC4l8JJwjJ4k6RGywJD+xqdhm6IkCvfG9kHM=; b=aozowBzm/qdp7wQ7RDN2bcZcibA0QIi3Ky0KUobqsBRL/+LRBEAC87J6btAXblMx4a3nVK /ou9WQZCn+xuETKEa7HVit/w+Kxg2psEaqHSIqrgh3teSGfhM+a2VNYF7SX2KqFq6QfHnj q+RFDNEMpa1KH12yagHB6OIoWU0KlaGiYc6joIpVuolNrzwFfrIcArpvI8/S+mXgd2Au1k B9HosN32IYh0xLos0UTnFnM+ggAQpLiVA9qa9rzFuc7nIft7Xf7RoYew/vUSPrlX9ZGAGR H4x4Pl8FlPdI0hvwBnCDxUoCyCV6DDD01DIFE1oBGb21XaFkj9vGOT4W4F9+6w== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1674059097; a=rsa-sha256; cv=none; b=LAHTh/SyqgT98trwKXr5xyiLDwi/OlsS/b3KB0m7Sj3LHpsYopBZS8Q67ZdxaP3EM8iKDU nngLiqU2LtzWKgjzuKxGNRzYmDDandMJK3vr+Zk+TSuAP8Rhm7B6U5sNFgLPp3oyTEDaId LHABN2aVsOmZH3hD/Ea9pj15GW4EjxCYjHwVFQV5P8Q4WN9ZFnFkCIzCWTn5zpkn2D6LGO VLWraiZuynawY9l21i6HlEfLKs7kXslxOXwpR3UEJ9BXkqH13l3/fOi38ya+MC3jks/yZt 0gBBZHSou6m5rmwWtzYB42qpgP3fm16ikBk0FJJT7mWpl9sR3nLot/95H5/KWg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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 did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Nxrh944wSzHSd; Wed, 18 Jan 2023 16:24:57 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 30IGOveW038114; Wed, 18 Jan 2023 16:24:57 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 30IGOvrR038113; Wed, 18 Jan 2023 16:24:57 GMT (envelope-from git) Date: Wed, 18 Jan 2023 16:24:57 GMT Message-Id: <202301181624.30IGOvrR038113@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: "Bjoern A. Zeeb" Subject: git: 931d322d4082 - stable/13 - LinuxKPI: 802.11: implement ieee80211_get_hdrlen_from_skb() List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bz X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: 931d322d40822180237329cef442278eb078b370 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=931d322d40822180237329cef442278eb078b370 commit 931d322d40822180237329cef442278eb078b370 Author: Bjoern A. Zeeb AuthorDate: 2022-12-31 02:02:01 +0000 Commit: Bjoern A. Zeeb CommitDate: 2023-01-18 13:26:02 +0000 LinuxKPI: 802.11: implement ieee80211_get_hdrlen_from_skb() Implement ieee80211_get_hdrlen_from_skb() doing basic sanity checks on lengths (minimal length or skb data length vs. header length). Sponsored by: The FreeBSD Foundation (cherry picked from commit 339119949660916aa40b1d67dbe002dd7eb0d709) --- sys/compat/linuxkpi/common/include/net/cfg80211.h | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/sys/compat/linuxkpi/common/include/net/cfg80211.h b/sys/compat/linuxkpi/common/include/net/cfg80211.h index 8d69ff0891d9..b5135f34981e 100644 --- a/sys/compat/linuxkpi/common/include/net/cfg80211.h +++ b/sys/compat/linuxkpi/common/include/net/cfg80211.h @@ -1666,12 +1666,23 @@ ieee80211_get_channel(struct wiphy *wiphy, uint32_t freq) return (linuxkpi_ieee80211_get_channel(wiphy, freq)); } -static __inline size_t +static inline size_t ieee80211_get_hdrlen_from_skb(struct sk_buff *skb) { + const struct ieee80211_hdr *hdr; + size_t len; - TODO(); - return (-1); + if (skb->len < 10) /* sizeof(ieee80211_frame_[ack,cts]) */ + return (0); + + hdr = (const struct ieee80211_hdr *)skb->data; + len = ieee80211_hdrlen(hdr->frame_control); + + /* If larger than what is in the skb return. */ + if (len > skb->len) + return (0); + + return (len); } static __inline bool From nobody Wed Jan 18 16:24:58 2023 X-Original-To: dev-commits-src-branches@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 4NxrhB6sTrz2yJPG; Wed, 18 Jan 2023 16:24:58 +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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4NxrhB68fVz3FLY; Wed, 18 Jan 2023 16:24:58 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1674059098; 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=U8hjE1IsKIqAoEJssUUEoityHohTw/bXsOboTKINSiQ=; b=EprzeHlQkk4IH77GHf8MbBFXeFo6vFQlAOlFGrVKgHlzW5bQkDN3st5bQb4JpaTH/woF2X auY2voKxGA3ko8qqfAT9TRGIgUEx9ypoZOoAc/ob8rPNIkIFSBh0AMAEwnkBAYsdBjsscS WjJbCsNxhK+DArQ6W2j1ehOcGcm7B7E8NEZFaGvceEQNcAysIKVZg7h0wXTJUQUktFUYvg qe0iaMJ3sbo4/l7h3gFdgv10kQ/EHwFdeSj0UGQxM33rLDCX/W4FdsEBsvu5zar2NrvL6J o/xfrlrv3Plnx6yuuy97O2F08kzt+j8Q/3rERcV+lXFGn35GKkU6GrEjwTW0Qw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1674059098; 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=U8hjE1IsKIqAoEJssUUEoityHohTw/bXsOboTKINSiQ=; b=DMyuxQ6c4LKswAatDDlzhlL/YFFPbaJUPHswRx2P4AplKXLaJJD7pVzbiScV/uX96BOkwl vH4rfnRB2J1pbcYy4s+EHGVWz6BBbZYU+5jZaqAxLTK+URH1cd9inNF32QO6oFuHlSl5Lo 5juv88KfQZTxSs9KeEkozQ+MdEknRO1q3W/UfQfRZwPUpp4gHBlC7pGoVrpA3rTDfA9+3C nGOGn5r//vIajMGl1ZlNqdisfq5FosNxztFTFP8rSb3Yny8uWFt/4Bv1oyd6Uboq0nWvkH X0kZLwFO+qfoCt0WnJB2fZQmQfEW1UhMNEtrPy3ne5BzBzaEMfd8mcBPzBqsqA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1674059098; a=rsa-sha256; cv=none; b=bHkf82USp9xGNJXxdhGF+GhbJE0VwP+oQLnWcLCzMUPcpmCiQeYfK1ebR9sWcfjfuj+rCh DDHIgE2ummZqmSTY7ejenXQySPbT7kMAKj6g1IFXJG/N5wSp1O385xZobqwvZyhgs2aLCk g1hQodD3v6zKdIzS87IkucooVhiy2Ld19sYU8qNRXJgZn4NENDqpn0epf4GF8DLMwSv5qv T9pFbhnmiyBH/1ek+s+eUQ4hdVY0MNix/H30y0PQya3tpZstwDNNUpPCo2/tAO79FagvCz a4HXUv6Y/Kvu1LTLneVMSjohUFB6E1HUY4QSCdgj/KImd9pz9y+PYgQYc1rrDA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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 did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4NxrhB5GYRzHSf; Wed, 18 Jan 2023 16:24:58 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 30IGOwhJ038142; Wed, 18 Jan 2023 16:24:58 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 30IGOwai038141; Wed, 18 Jan 2023 16:24:58 GMT (envelope-from git) Date: Wed, 18 Jan 2023 16:24:58 GMT Message-Id: <202301181624.30IGOwai038141@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: "Bjoern A. Zeeb" Subject: git: 5ba6ef0ac529 - stable/13 - LinuxKPI; 802.11: update mac80211.h structures and fields List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bz X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: 5ba6ef0ac52986ec9861b9aa0a908ca50011d668 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=5ba6ef0ac52986ec9861b9aa0a908ca50011d668 commit 5ba6ef0ac52986ec9861b9aa0a908ca50011d668 Author: Bjoern A. Zeeb AuthorDate: 2022-12-31 02:15:28 +0000 Commit: Bjoern A. Zeeb CommitDate: 2023-01-18 13:26:07 +0000 LinuxKPI; 802.11: update mac80211.h structures and fields Cleanup some fields and structures and add new ones. Sponsored by: The FreeBSD Foundation (cherry picked from commit c990500bf1028d55cdd370037c78ea808956e0fc) --- sys/compat/linuxkpi/common/include/net/mac80211.h | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/sys/compat/linuxkpi/common/include/net/mac80211.h b/sys/compat/linuxkpi/common/include/net/mac80211.h index 75f2dac02be2..22b00726a727 100644 --- a/sys/compat/linuxkpi/common/include/net/mac80211.h +++ b/sys/compat/linuxkpi/common/include/net/mac80211.h @@ -224,6 +224,10 @@ struct ieee80211_chanctx_conf { uint8_t drv_priv[0] __aligned(CACHE_LINE_SIZE); }; +struct ieee80211_rate_status { + struct rate_info rate_idx; +}; + #define WLAN_MEMBERSHIP_LEN (8) #define WLAN_USER_POSITION_LEN (16) @@ -557,15 +561,12 @@ struct ieee80211_rx_status { uint8_t rate_idx; }; -struct ieee80211_tx_rate_status { -}; - struct ieee80211_tx_status { struct ieee80211_sta *sta; struct ieee80211_tx_info *info; u8 n_rates; - struct ieee80211_tx_rate_status *rates; + struct ieee80211_rate_status *rates; struct sk_buff *skb; struct list_head *free_list; @@ -609,6 +610,11 @@ struct ieee80211_sta_txpwr { short power; }; +struct ieee80211_sta_agg { + /* XXX TODO */ + int max_amsdu_len; +}; + struct ieee80211_link_sta { uint32_t supp_rates[NUM_NL80211_BANDS]; struct ieee80211_sta_ht_cap ht_cap; @@ -617,6 +623,8 @@ struct ieee80211_link_sta { struct ieee80211_sta_he_6ghz_capa he_6ghz_capa; uint8_t rx_nss; enum ieee80211_sta_rx_bw bandwidth; + enum ieee80211_smps_mode smps_mode; + struct ieee80211_sta_agg agg; struct ieee80211_sta_txpwr txpwr; }; @@ -682,6 +690,7 @@ enum ieee80211_vif_driver_flags { struct ieee80211_vif_cfg { uint16_t aid; bool assoc; + bool ps; int arp_addr_cnt; uint32_t arp_addr_list[IEEE80211_BSS_ARP_ADDR_LIST_LEN]; /* big endian */ }; From nobody Wed Jan 18 16:24:59 2023 X-Original-To: dev-commits-src-branches@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 4NxrhD2PsPz2yJ1d; Wed, 18 Jan 2023 16:25:00 +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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4NxrhC6ydrz3FCr; Wed, 18 Jan 2023 16:24:59 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1674059100; 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=dmxB06OSkEEONIFB2KLcDXd8m8rCx3IF6TQiqUvtmZs=; b=VSWrTAb7Sf47YaA1lKbL3GooIYplT8nmd6zmsCdnREtIHAoMXNyXRT1D+TtDxEdRw62D9s oQbd4gvkgqFE48klQznhhJ35u9b/6gXA6QnjSZXJUZqunyGkJJF1ECviI4jiy5UbTZz7oo fFa3MkOQ0qyvrHmshLSqOq1ceDJa1j4N6HJmnkqmA9B60JGdzDJP6fFXxKLaqvjhCQl21j 3ofJOEd0ejcZwvN4pvpAIRuZgUkHB4CGr6sUmAXpU392v/++VgSebpfvnWp7V58Vvxe92a FPq2PEqRaCbWV7V75G+wAhkRUPVO6AxDUUfv9O2TcRZ2D0o6MEPOMJEH2qKaAA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1674059100; 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=dmxB06OSkEEONIFB2KLcDXd8m8rCx3IF6TQiqUvtmZs=; b=t4s6Dwot/2VS8PeYWG5zn5LWZt/ybF/llgpP0eIO7Kba6kjoPOB//Taa81oxB0Tj7eCytv Y7gUVX4Uc09fr16Fx3Ynu9TWDadn+h0pkZxg8eEy0Xs6yeyRVN/GeIbhjSxt7QAEnDzJJ1 UWTeOyJtDFyLg5iqSGz05LoUYFZv2Vkpj1BV+FoAuNit+JMmpKyagrsgPauHC0atFhV8qz Wex3QWJjwyKNEYXQySAz+63At+fYcS6bTcJ5G/6l1QqU/CqlO9e19F5y0WpzJ5QvWzsyvJ GeaJjcEI/ZI13nTRvVrQenNhneR1xO/m/FxFOY0CGd/CUcCiI1dzIftRAZH5ZA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1674059100; a=rsa-sha256; cv=none; b=mGFaWxR2c82t12gp6IIQcEJvwtJUmNuw4T3U1XdRK2I2bIykmnq3QiLgYWhOXF7EPsHLMP 4i6XmG8Ui3oaFJ6At1FQQ6pXE+Cu6ls5OJuRlO4w9+3osyWPeP8M8GE6Na9KAYTIPT6Ktd 9gOhG4y3+fftU07DFdaivW97Yoe8zF2y2UaqihN/8txQLsONML5D9VDS5Gd9Z5MWJZGhpp rn46HwEOZdiGK1IEtTT1zNbZneLzD2voWBZghqoUUG5XsoktJw7/rxjmJCfF6QpGNmZ6Fx C9HmhtpBw7kIkKqXWfoNOFEbEqDxmb4bLd16GEApF6pdQJT6jGAFICMIpmEAIg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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 did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4NxrhC63HvzJ3d; Wed, 18 Jan 2023 16:24:59 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 30IGOxGM038172; Wed, 18 Jan 2023 16:24:59 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 30IGOx7J038171; Wed, 18 Jan 2023 16:24:59 GMT (envelope-from git) Date: Wed, 18 Jan 2023 16:24:59 GMT Message-Id: <202301181624.30IGOx7J038171@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: "Bjoern A. Zeeb" Subject: git: 43f7ed9d85ac - stable/13 - LinuxKPI: 802.11: move ieee80211_{unregister,restart}_hw out of header List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bz X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: 43f7ed9d85ac42a1e9e412694b6baaa64dd966b5 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=43f7ed9d85ac42a1e9e412694b6baaa64dd966b5 commit 43f7ed9d85ac42a1e9e412694b6baaa64dd966b5 Author: Bjoern A. Zeeb AuthorDate: 2022-12-31 02:24:23 +0000 Commit: Bjoern A. Zeeb CommitDate: 2023-01-18 13:26:13 +0000 LinuxKPI: 802.11: move ieee80211_{unregister,restart}_hw out of header Migrate the two functions from the header into the implementation file in order to have access to more facilities and not to run into possible allocation/locking/... problems in the future. Sponsored by: The FreeBSD Foundation (cherry picked from commit 4b0af114370a5cb876012c381d3156c8fbdf7f40) --- sys/compat/linuxkpi/common/include/net/mac80211.h | 22 +++++++++++----------- sys/compat/linuxkpi/common/src/linux_80211.c | 17 +++++++++++++++++ 2 files changed, 28 insertions(+), 11 deletions(-) diff --git a/sys/compat/linuxkpi/common/include/net/mac80211.h b/sys/compat/linuxkpi/common/include/net/mac80211.h index 22b00726a727..230d42947e7b 100644 --- a/sys/compat/linuxkpi/common/include/net/mac80211.h +++ b/sys/compat/linuxkpi/common/include/net/mac80211.h @@ -980,7 +980,9 @@ void linuxkpi_ieee80211_iffree(struct ieee80211_hw *); void linuxkpi_set_ieee80211_dev(struct ieee80211_hw *, char *); int linuxkpi_ieee80211_ifattach(struct ieee80211_hw *); void linuxkpi_ieee80211_ifdetach(struct ieee80211_hw *); +void linuxkpi_ieee80211_unregister_hw(struct ieee80211_hw *); struct ieee80211_hw * linuxkpi_wiphy_to_ieee80211_hw(struct wiphy *); +void linuxkpi_ieee80211_restart_hw(struct ieee80211_hw *); void linuxkpi_ieee80211_iterate_interfaces( struct ieee80211_hw *hw, enum ieee80211_iface_iter flags, void(*iterfunc)(void *, uint8_t *, struct ieee80211_vif *), @@ -1110,14 +1112,11 @@ ieee80211_register_hw(struct ieee80211_hw *hw) return (error); } -static __inline void +static inline void ieee80211_unregister_hw(struct ieee80211_hw *hw) { - wiphy_unregister(hw->wiphy); - linuxkpi_ieee80211_ifdetach(hw); - - IMPROVE(); + linuxkpi_ieee80211_unregister_hw(hw); } static __inline struct ieee80211_hw * @@ -1127,6 +1126,13 @@ wiphy_to_ieee80211_hw(struct wiphy *wiphy) return (linuxkpi_wiphy_to_ieee80211_hw(wiphy)); } +static inline void +ieee80211_restart_hw(struct ieee80211_hw *hw) +{ + linuxkpi_ieee80211_restart_hw(hw); +} + + /* -------------------------------------------------------------------------- */ static __inline bool @@ -1830,12 +1836,6 @@ ieee80211_free_txskb(struct ieee80211_hw *hw, struct sk_buff *skb) linuxkpi_ieee80211_free_txskb(hw, skb, 0x455458); } -static __inline void -ieee80211_restart_hw(struct ieee80211_hw *hw) -{ - TODO(); -} - static __inline void ieee80211_ready_on_channel(struct ieee80211_hw *hw) { diff --git a/sys/compat/linuxkpi/common/src/linux_80211.c b/sys/compat/linuxkpi/common/src/linux_80211.c index 170f6162cd6b..ee4b58e60f4d 100644 --- a/sys/compat/linuxkpi/common/src/linux_80211.c +++ b/sys/compat/linuxkpi/common/src/linux_80211.c @@ -2345,6 +2345,23 @@ lkpi_ic_vap_create(struct ieee80211com *ic, const char name[IFNAMSIZ], return (vap); } +void +linuxkpi_ieee80211_unregister_hw(struct ieee80211_hw *hw) +{ + + wiphy_unregister(hw->wiphy); + linuxkpi_ieee80211_ifdetach(hw); + + IMPROVE(); +} + +void +linuxkpi_ieee80211_restart_hw(struct ieee80211_hw *hw) +{ + + TODO(); +} + static void lkpi_ic_vap_delete(struct ieee80211vap *vap) { From nobody Wed Jan 18 16:25:00 2023 X-Original-To: dev-commits-src-branches@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 4NxrhF2LGZz2yJS2; Wed, 18 Jan 2023 16:25:01 +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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4NxrhF0mcsz3FPX; Wed, 18 Jan 2023 16:25:01 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1674059101; 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=CJXA6E/8vg86uMSDHXiD44gq19n4D3QIAVrUrDrXeCU=; b=oEY5yyPIxRDzTPkPQs3Um05nFOW7KTI2fc7G+gmeR30vo0Erjp01sqWIZv4SjWuLCwPtcf QHoBGKTueQKlKeZKe9X4m/qEqkxWJrr5mxPe6KtjaJ9g7kGEryBbKbPuPSCAR+fgpw5dW+ r2x8e+C0pMwVerJm3F2sMyC3x3tYAiM6V4pbSQJ+1BEFOnHT3Bn9ThZTR7vHYz98z3xMm7 sZI22oQRilQD6twQZJ3A7Bn++qPn2DtLbrvtRj13h4FkFTJJJ1X1IjaImFHqm3gqxvJEhb s1/Rf8S8UMtWD3GgaVXSHI1ZvniSUFE07fN1+6hO7N+TfrkvI6F5lqWtTDC70g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1674059101; 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=CJXA6E/8vg86uMSDHXiD44gq19n4D3QIAVrUrDrXeCU=; b=hDvL70HqWNBuBWNonxQI9ZeQ/Ue/ZNRHqCdh/pR4QMrJm4tc9g2RwuT8/eKd4RlSbac6hr hSlB2TAYC15MuSgHXol569B2syIomolhIn9WgPViOREuSCpP1LspxrWBo3+0wzeYErRChb iJO0Mphd+EhAFktMF/4s888QSAjUrG7BQikqGqaLLlO28VQjTKV5K5RdREF3G1pjBMSIqs KBwPW/+H1cZBELfi2NThmmxgkQzrRu3y5IAhydZ2lh+VW7b0LfejfJBe/cdq43QooaIDZA JS+0tPlOFAjSaO3EX4x2FzF2dAddTv+9ZkvGr3uLU+Nf+gjZc7CpHE24pBQ4lw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1674059101; a=rsa-sha256; cv=none; b=unFepYg+vL1W16vYQMMCtwdgvnJLPXgRlIAHCovyOboRpcfA5nWmcwK0QTffCAa78/9ZbL Sch8hJcvK9j6vtpDB9CzVw6GL7nCP3PayZgN00Ctx6QUWcpBGn5OJLu2UalJaq7uEdM7Fv ZVsxn/8i85hbZTx9C17WyC6RlXMgnSz1vRFy4eJIwTmtfHT5z3WHO9NDIdf00hJiKPF1Qi qCcneA/JjZ+DvtjnOUMjpGoM8CCuxWHQpogjWHa9yJNCwWK2fbQ/QdBfXUbJpDpdXVOOwJ 3OZPO6J5/qNCTHafvytDEXOIMcXtEWH3sGlazYnblkpDyi8vqJ+jpILp+x5Jyw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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 did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4NxrhD70M1zJB4; Wed, 18 Jan 2023 16:25:00 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 30IGP08h038202; Wed, 18 Jan 2023 16:25:00 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 30IGP0Hg038201; Wed, 18 Jan 2023 16:25:00 GMT (envelope-from git) Date: Wed, 18 Jan 2023 16:25:00 GMT Message-Id: <202301181625.30IGP0Hg038201@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: "Bjoern A. Zeeb" Subject: git: ba26206ad9e3 - stable/13 - LinuxKPI: 802.11: implement some *eleme/ie* lookup functions List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bz X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: ba26206ad9e34af730095f5e20f3ecf517dbd89c Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=ba26206ad9e34af730095f5e20f3ecf517dbd89c commit ba26206ad9e34af730095f5e20f3ecf517dbd89c Author: Bjoern A. Zeeb AuthorDate: 2022-12-31 01:33:28 +0000 Commit: Bjoern A. Zeeb CommitDate: 2023-01-18 13:26:21 +0000 LinuxKPI: 802.11: implement some *eleme/ie* lookup functions Implement cfg80211_find_elem(), ieee80211_bss_get_elem(), ieee80211_bss_get_ie(), and cfg80211_find_vendor_ie() with the last one having a short cut always also checking oui_type in the pattern. Sponsored by: The FreeBSD Foundation (cherry picked from commit 5db817d864241232c51d654836996282c69f5e28) --- sys/compat/linuxkpi/common/include/net/cfg80211.h | 76 +++++++++++++++++++---- sys/compat/linuxkpi/common/include/net/mac80211.h | 14 ----- 2 files changed, 65 insertions(+), 25 deletions(-) diff --git a/sys/compat/linuxkpi/common/include/net/cfg80211.h b/sys/compat/linuxkpi/common/include/net/cfg80211.h index b5135f34981e..55a74227a338 100644 --- a/sys/compat/linuxkpi/common/include/net/cfg80211.h +++ b/sys/compat/linuxkpi/common/include/net/cfg80211.h @@ -1321,13 +1321,75 @@ struct element { uint8_t data[0]; } __packed; -static __inline const struct element * -cfg80211_find_elem(enum ieee80211_eid eid, uint8_t *data, size_t len) +static inline const struct element * +lkpi_cfg80211_find_elem_pattern(enum ieee80211_eid eid, + const uint8_t *data, size_t len, uint8_t *pattern, size_t plen) { - TODO(); + const struct element *elem; + const uint8_t *p; + size_t ielen; + + p = data; + elem = (const struct element *)p; + ielen = len; + while (elem != NULL && ielen > 1) { + if ((2 + elem->datalen) > ielen) + /* Element overruns our memory. */ + return (NULL); + if (elem->id == eid) { + if (pattern == NULL) + return (elem); + if (elem->datalen >= plen && + memcmp(elem->data, pattern, plen) == 0) + return (elem); + } + ielen -= 2 + elem->datalen; + p += 2 + elem->datalen; + elem = (const struct element *)p; + } + return (NULL); } +static inline const struct element * +cfg80211_find_elem(enum ieee80211_eid eid, const uint8_t *data, size_t len) +{ + + return (lkpi_cfg80211_find_elem_pattern(eid, data, len, NULL, 0)); +} + +static inline const struct element * +ieee80211_bss_get_elem(struct cfg80211_bss *bss, uint32_t eid) +{ + + if (bss->ies == NULL) + return (NULL); + return (cfg80211_find_elem(eid, bss->ies->data, bss->ies->len)); +} + +static inline const uint8_t * +ieee80211_bss_get_ie(struct cfg80211_bss *bss, uint32_t eid) +{ + + return ((const uint8_t *)ieee80211_bss_get_elem(bss, eid)); +} + +static inline uint8_t * +cfg80211_find_vendor_ie(unsigned int oui, int oui_type, + uint8_t *data, size_t len) +{ + const struct element *elem; + uint8_t pattern[4] = { oui << 16, oui << 8, oui, oui_type }; + uint8_t plen = 4; /* >= 3? oui_type always part of this? */ + IMPROVE("plen currently always incl. oui_type"); + + elem = lkpi_cfg80211_find_elem_pattern(IEEE80211_ELEMID_VENDOR, + data, len, pattern, plen); + if (elem == NULL) + return (NULL); + return (__DECONST(uint8_t *, elem)); +} + static __inline uint32_t cfg80211_calculate_bitrate(struct rate_info *rate) { @@ -1439,14 +1501,6 @@ wiphy_read_of_freq_limits(struct wiphy *wiphy) #endif } -static __inline uint8_t * -cfg80211_find_vendor_ie(unsigned int oui, u8 oui_type, - uint8_t *data, size_t len) -{ - TODO(); - return (NULL); -} - static __inline void wiphy_ext_feature_set(struct wiphy *wiphy, enum nl80211_ext_feature ef) { diff --git a/sys/compat/linuxkpi/common/include/net/mac80211.h b/sys/compat/linuxkpi/common/include/net/mac80211.h index 230d42947e7b..d548b9bb956f 100644 --- a/sys/compat/linuxkpi/common/include/net/mac80211.h +++ b/sys/compat/linuxkpi/common/include/net/mac80211.h @@ -2183,13 +2183,6 @@ SET_IEEE80211_PERM_ADDR (struct ieee80211_hw *hw, uint8_t *addr) ether_addr_copy(hw->wiphy->perm_addr, addr); } -static __inline uint8_t * -ieee80211_bss_get_ie(struct cfg80211_bss *bss, uint32_t eid) -{ - TODO(); - return (NULL); -} - static __inline void ieee80211_report_low_ack(struct ieee80211_sta *sta, int x) { @@ -2368,13 +2361,6 @@ ieee80211_tx_status_ext(struct ieee80211_hw *hw, TODO(); } -static __inline const struct element * -ieee80211_bss_get_elem(struct cfg80211_bss *bss, uint32_t eid) -{ - TODO(); - return (NULL); -} - static __inline void ieee80211_color_change_finish(struct ieee80211_vif *vif) { From nobody Wed Jan 18 16:25:01 2023 X-Original-To: dev-commits-src-branches@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 4NxrhG3w7vz2yJg5; Wed, 18 Jan 2023 16:25:02 +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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4NxrhG1YCYz3FZn; Wed, 18 Jan 2023 16:25:02 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1674059102; 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=TzthT3G7oLash7aCHS22CUvenm7LRboCsmTeWvjpxoI=; b=PTf6mNT+vWJoEKkU2H4UltUqa7BAUMnwjaWZFQh/HBGRSVe/1AEScrSpLsi+W5RD6+eJcv +YzwK6uhr2lbETySLk0D6oQ1GaHn1dIcDFZCMIU1c7qaBuSQpioHBD4XptiHjc9KGQbETf WYESNe17ja8FWSW+9+SXSKceU4/NoxCIgAQnOFEj/3yzjZ8MJXmK34z9vZKU5XDLn2kqkn s5t38eNG6dBMXZNTpwGp1sfQ9xJM5fbMC4DZUuoWaKxNagi/mgUe7pc6XthM4mcXcPzoKz 69Id5lkMTTnouV8fu5/ha9DdhM1ZLY5QdUbMduHSTEOw4fx/2y4bsdlsRATymQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1674059102; 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=TzthT3G7oLash7aCHS22CUvenm7LRboCsmTeWvjpxoI=; b=VIwxiHvS6qIF+hQbehhsVgo4GsW3x+7qh3GxRgRTU0hTcCnH6vcK7s1RSxKYHHQtzcUnfj Frp/nPB/BbfFhT5LC3O2e0ZeWjcF8o2c2Nzv7lCvEVMsWl7Jhso+dIj8h4nGclMFIjI7vo w5J01yl+wzT42zvXAuwXfvGCkPTXiZ7fYNEhUB4FC9VJbNMikJ7xqYHFgugKh65G5+VU+8 Mhe41HDrTHihXmA2FSr3DU4+HQbC8r0SjDhThGcG+3wdGjQvC+aHrhMtM/1htZA2IxEdBV RGLGpYvnVHFWCqDALvR5jpROKg8jcU0EwypRWtgPxaTG9Itp8iF2FQkcrVveUg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1674059102; a=rsa-sha256; cv=none; b=p8rdhbdR4f+fmgjMYpoyKzG5aR/uiuvAC486+K7AgkQ/a6dUMcrtgHtQbVcz75t1cweFHb obBdV5sJKfGA7NL1zfPSftTxv3dMxmeyzzTVzVN/QuhATlqTPagcGPIPAWILYnUap3xVaL bZDpUqCoY+cE3WSaQZ+564xCQP/x2ppzP/y5hhxQUI99IiGitHoI/ZhTz3grPeCaoRk9PH LsMJDZv5moQ1U3owYfe4cuilR/5QLas1pjterdSW9xbxVmc6sBhfW7TWQOk7qzGjAYt0rd Uiwqpw0w178a7gfFtr/Y5Kc5Qq+djjQEijvaF97j6XhdfUYb6zmeV1/5wA5Pbw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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 did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4NxrhG0NvPzJB5; Wed, 18 Jan 2023 16:25:02 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 30IGP1Zf038233; Wed, 18 Jan 2023 16:25:01 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 30IGP1iQ038232; Wed, 18 Jan 2023 16:25:01 GMT (envelope-from git) Date: Wed, 18 Jan 2023 16:25:01 GMT Message-Id: <202301181625.30IGP1iQ038232@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: "Bjoern A. Zeeb" Subject: git: a96d4c86f1d4 - stable/13 - iwlwifi: mark a declaration for a non-existent function List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bz X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: a96d4c86f1d4e22182bc8b5de92ac84a1e1dff22 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=a96d4c86f1d4e22182bc8b5de92ac84a1e1dff22 commit a96d4c86f1d4e22182bc8b5de92ac84a1e1dff22 Author: Bjoern A. Zeeb AuthorDate: 2023-01-13 01:00:00 +0000 Commit: Bjoern A. Zeeb CommitDate: 2023-01-18 13:26:26 +0000 iwlwifi: mark a declaration for a non-existent function iwl_trans_pcie_send_hcmd() does not seem to exist (anymore). Mark it as __linux__ so we can submit the cleanup with the next upstream run. Sponsored by: The FreeBSD Foundation (cherry picked from commit f797d5f37089de8134b4599bb033635ac7d07bef) --- sys/contrib/dev/iwlwifi/pcie/internal.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/sys/contrib/dev/iwlwifi/pcie/internal.h b/sys/contrib/dev/iwlwifi/pcie/internal.h index f7e4f868363d..cd2fb7811e4e 100644 --- a/sys/contrib/dev/iwlwifi/pcie/internal.h +++ b/sys/contrib/dev/iwlwifi/pcie/internal.h @@ -526,7 +526,9 @@ void iwl_trans_pcie_txq_set_shared_mode(struct iwl_trans *trans, u32 txq_id, int iwl_trans_pcie_tx(struct iwl_trans *trans, struct sk_buff *skb, struct iwl_device_tx_cmd *dev_cmd, int txq_id); void iwl_pcie_txq_check_wrptrs(struct iwl_trans *trans); +#if defined(__linux__) int iwl_trans_pcie_send_hcmd(struct iwl_trans *trans, struct iwl_host_cmd *cmd); +#endif void iwl_pcie_hcmd_complete(struct iwl_trans *trans, struct iwl_rx_cmd_buffer *rxb); void iwl_trans_pcie_tx_reset(struct iwl_trans *trans); From nobody Wed Jan 18 16:25:03 2023 X-Original-To: dev-commits-src-branches@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 4NxrhJ4Prwz2yJcw; Wed, 18 Jan 2023 16:25:04 +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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4NxrhH2TXYz3FjH; Wed, 18 Jan 2023 16:25:03 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1674059103; 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=NGoFyAC4YgdRYoXf4J4vthg0MrtKVF0wA+Kg5G640NE=; b=eQlsFIsvXh0ZRwRsnOdl13HyTPP6hC3bQjnGpogVy6apvtJ8wa1NgOz5B4nai+DS6Fq0ZJ ZHnO1ors6ssO9OK/sgBkpIwYIpMOOmwSSmpHzIVYzom6jeGu1fUT9GTuvPZH8F+iDVFvGJ HYNVnQ46ng0js87s9QfYX1ZabIauxSoUcdKR8usC+7Wg+VGByv0S5ugcBZ49c5I1gWMl0D mtzx9YrXlFh+3NsfXs3sR1A1L2GQA4tzwEPx/k7hMuExTs+UWJj3bO+kWq8If5rntGZvTs z1PBFmOPnCg/Od0vRWwe36koVrwSpHtg7aclimUZF/02NF5gNxnLx8BwGyWu5w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1674059103; 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=NGoFyAC4YgdRYoXf4J4vthg0MrtKVF0wA+Kg5G640NE=; b=G9A97lZlRYYSKq27RxHo0PMOFg47wRgJ8HS7nE9TQ7a48jakUMo8gSN/g4wMdEv+FN4q4l FiiGvQAajDqSVg/1DrBvw6ro0q68KlV3Fvs8KOOKzJD5WXWdFmjJsF1DSoM3heJ2yVRojk 9nF3eikL5ODy5V3zqGCTHMW4KW2jmn4LHgaLV4NBVyGyLpkMc+zYhm+Kq5mrjfrGJ5kj9A vI/PfU3rZI9XRWkcyMSmvuTYUp8sWbDpXw+Xhb1dfGeS2aZFJklMWmgmODRj2sQeKTqnqs gRCF5THrJIOWz1x8msccL9o0mDUa/rYmSz0WVT4CEV2UulYK7Ne7J3UVNVddjw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1674059103; a=rsa-sha256; cv=none; b=w4Qo3nxdWaB9w+3smfDYLX0dXVGNfv3cIMpWyej+57vlr3NJ2UQKEwyPEJHrUxZDFtrplx MGVdjYiMXMMSjsfVZq9bQBNQgO6k7vGRmyuZRZ2QjNwEl41d/alP9ewjj4KAfXurD+xetL pFS+hdj1MB0xfD6yIhcV+ICJyHnFEd/jjxDWuoG9X1T7mKl8XhX59ZlaJ+ILfCOLoZsZeR 9yV8EyYEACQjv4TV3yeI9MOkf/lqQmlbadoj/Isk3y2juALrK0N3hJaE+pikxtVux36HZJ wayFWshLzTQeV2pF5qFiIIOrWzACBIhGZmGjOZVE3oNzsYnajr7PfxqyqbRacQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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 did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4NxrhH1KNSzHSg; Wed, 18 Jan 2023 16:25:03 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 30IGP3eM038257; Wed, 18 Jan 2023 16:25:03 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 30IGP3u9038256; Wed, 18 Jan 2023 16:25:03 GMT (envelope-from git) Date: Wed, 18 Jan 2023 16:25:03 GMT Message-Id: <202301181625.30IGP3u9038256@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: "Bjoern A. Zeeb" Subject: git: 4c7aee8a7009 - stable/13 - rtw88: use #define for NL80211_BAND_2GHZ instead of hardcoded number List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bz X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: 4c7aee8a700974218831d5ad1e04a6b4f42c7e2e Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=4c7aee8a700974218831d5ad1e04a6b4f42c7e2e commit 4c7aee8a700974218831d5ad1e04a6b4f42c7e2e Author: Bjoern A. Zeeb AuthorDate: 2023-01-13 01:05:01 +0000 Commit: Bjoern A. Zeeb CommitDate: 2023-01-18 13:26:32 +0000 rtw88: use #define for NL80211_BAND_2GHZ instead of hardcoded number Use NL80211_BAND_2GHZ instead of a hard coded 0 as array index for the band. While LinuxKPI provides a KPI compatibility some of these values may not necessarily be KBI compatible (in this case they shoule be so this is a NOP) and after all it is better style. No functional change. (cherry picked from commit 8aaefd0512daea0f9869cd2fe3cee9443d5fb6aa) --- sys/contrib/dev/rtw88/main.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/sys/contrib/dev/rtw88/main.c b/sys/contrib/dev/rtw88/main.c index 35381a35f5d9..deac3564d847 100644 --- a/sys/contrib/dev/rtw88/main.c +++ b/sys/contrib/dev/rtw88/main.c @@ -1189,7 +1189,11 @@ void rtw_update_sta_info(struct rtw_dev *rtwdev, struct rtw_sta_info *si, RA_MASK_OFDM_IN_HT_2G; wireless_set = WIRELESS_CCK | WIRELESS_OFDM | WIRELESS_HT; +#if defined(__linux__) } else if (sta->deflink.supp_rates[0] <= 0xf) { +#elif defined(__FreeBSD__) + } else if (sta->deflink.supp_rates[NL80211_BAND_2GHZ] <= 0xf) { +#endif wireless_set = WIRELESS_CCK; } else { ra_mask &= RA_MASK_OFDM_RATES | RA_MASK_CCK_IN_BG; From nobody Wed Jan 18 16:25:04 2023 X-Original-To: dev-commits-src-branches@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 4NxrhL2hQYz2yJNS; Wed, 18 Jan 2023 16:25:06 +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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4NxrhJ46sdz3FdL; Wed, 18 Jan 2023 16:25:04 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1674059104; 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=1bOrLOlMwwooxrqFSe4MVbTOeyrHb8AIGtIguwckbEQ=; b=xASR3k5cWG1O6Jtl0OozqaHOI1ZG1REvua5nn9BdDfQWe6q7FSbd6xGRID4PJMQL3ug7ET 70stmKvnb2ReCcWsQmFu1tLa20m5j4lFs5P2FqAmClemQf7Ktt/Suo25smhFXD8qi7qL81 J67376XhRnCVN917YSsUnYCAvP8EhsEfV3EQqWiTTj7CYb4WaGGhBdU3mmunApkDSTzFr1 6fzDnHNK53cWtRQaY8FUfj+YMvs+2c3vKbIZE7CZClC4rksaNbbBWVwUgxdsnc7++W9qFy jd00E5pMdgc806KX6htV9vl2GxH2aMIk9jogzR0vPylah75wzuP0ytDXreLEBQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1674059104; 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=1bOrLOlMwwooxrqFSe4MVbTOeyrHb8AIGtIguwckbEQ=; b=wAoZGx85Q4/9vGZyBzf5SQrqZXn7OQDj5zFkbIlP7ue4CdrMTEDjzZ/vqKJW/aIP9Daep1 cWHzBgHDwnvIeZavQRv04nDutUyik9nclpE+7XVmKb05V4ZnH57X3PnbQ0QiKJAbrGZVhx sGuiAiMSAuiVgHzW+iAESK+SeN7DhHH55NuHQuASPmC2EPieaKFgRPX1IIu/m+nOxuby67 lgJ+Vy2yN8TEwgsbA4NzPFlkSchZbBSbh8O/fRF5+bKDRo9EilbMi8USkK4E03Pf3WE8I2 DR7ssjYl3XNW7U8VY6Y2Ks9+5NrIfRNHdK9CNCwSNMFgnRCcXffd+evRvGy4IA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1674059104; a=rsa-sha256; cv=none; b=hXom7I10HMN9KSulflHJ70bzXKCtn3JEN5e6VVQEGfLvSNx6Um9K2Dui3KqWiIzSY8MeW4 hZSHSGtMF2IuOM8QIEMKy4DtdeoZziaPSNmqIqpUaoChDxSoDJX1NUVtHJNBG9IEq+9eUI RSfElsvZtk+fs1hUYG9wuTqWPHq5NYaq0e4iybfC+u+I0PbvuXwzwO9ebwZ1VGgnbOY2Ix /ptxkW5fLpbuUz+yCfIOwFzX6QVu0amaXtf6xCeHdOmD6Z+6LqxeUHwidVNmuIIYNgj2YS ldr9SeQ69t3BYvi5GUp7M7SxaHt9oJ8QE2CkiSU3UP1NIjoesZbm2NVoiZyX7Q== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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 did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4NxrhJ2nQ3zHc1; Wed, 18 Jan 2023 16:25:04 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 30IGP4xw038282; Wed, 18 Jan 2023 16:25:04 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 30IGP42c038281; Wed, 18 Jan 2023 16:25:04 GMT (envelope-from git) Date: Wed, 18 Jan 2023 16:25:04 GMT Message-Id: <202301181625.30IGP42c038281@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: "Bjoern A. Zeeb" Subject: git: b1479a5409cf - stable/13 - LinuxKPI: add kstrtou32_from_user() and mac_pton() List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bz X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: b1479a5409cfe186b45322dbed034f024bfc6ed0 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=b1479a5409cfe186b45322dbed034f024bfc6ed0 commit b1479a5409cfe186b45322dbed034f024bfc6ed0 Author: Bjoern A. Zeeb AuthorDate: 2022-10-22 18:02:58 +0000 Commit: Bjoern A. Zeeb CommitDate: 2023-01-18 13:26:37 +0000 LinuxKPI: add kstrtou32_from_user() and mac_pton() While here: - fix an argument of kstrtouint_from_user() to correct signedness. - make kstrtou32() call kstrtouint() to avoid duplication (keep inline function) Add kstrtou32_from_user() based on other examples in the file making it a copy of the now fixed kstrtouint_from_user(). Also add a rudimentarily hacked up version of mac_pton() which is leanient accepting non-well-formed input but so far only with ':' separators. It does not seem to obviously belong to any networking header file so add it here. Both new functions are needed for debugfs support for iwlwifi hence coming together in one commit. Sponsored by: The FreeBSD Foundation Commented on by: emaste Differential Revision: https://reviews.freebsd.org/D37088 (cherry picked from commit f82cf28b317b6b3ffd1418ab9c5b230145da8f75) --- sys/compat/linuxkpi/common/include/linux/kernel.h | 65 ++++++++++++++++++----- 1 file changed, 52 insertions(+), 13 deletions(-) diff --git a/sys/compat/linuxkpi/common/include/linux/kernel.h b/sys/compat/linuxkpi/common/include/linux/kernel.h index 2c40b2f33c41..f3078d94b2b5 100644 --- a/sys/compat/linuxkpi/common/include/linux/kernel.h +++ b/sys/compat/linuxkpi/common/include/linux/kernel.h @@ -437,19 +437,8 @@ kstrtou16(const char *cp, unsigned int base, u16 *res) static inline int kstrtou32(const char *cp, unsigned int base, u32 *res) { - char *end; - unsigned long temp; - - *res = temp = strtoul(cp, &end, base); - /* skip newline character, if any */ - if (*end == '\n') - end++; - if (*cp == 0 || *end != 0) - return (-EINVAL); - if (temp != (u32)temp) - return (-ERANGE); - return (0); + return (kstrtouint(cp, base, res)); } static inline int @@ -530,7 +519,7 @@ kstrtoint_from_user(const char __user *s, size_t count, unsigned int base, static inline int kstrtouint_from_user(const char __user *s, size_t count, unsigned int base, - int *p) + unsigned int *p) { char buf[36] = {}; @@ -543,6 +532,14 @@ kstrtouint_from_user(const char __user *s, size_t count, unsigned int base, return (kstrtouint(buf, base, p)); } +static inline int +kstrtou32_from_user(const char __user *s, size_t count, unsigned int base, + unsigned int *p) +{ + + return (kstrtouint_from_user(s, count, base, p)); +} + static inline int kstrtou8_from_user(const char __user *s, size_t count, unsigned int base, u8 *p) @@ -716,6 +713,48 @@ hex2bin(uint8_t *bindst, const char *hexsrc, size_t binlen) return (0); } +static inline bool +mac_pton(const char *macin, uint8_t *macout) +{ + const char *s, *d; + uint8_t mac[6], hx, lx;; + int i; + + if (strlen(macin) < (3 * 6 - 1)) + return (false); + + i = 0; + s = macin; + do { + /* Should we also support '-'-delimiters? */ + d = strchrnul(s, ':'); + hx = lx = 0; + while (s < d) { + /* Fail on abc:123:xxx:... */ + if ((d - s) > 2) + return (false); + /* We do support non-well-formed strings: 3:45:6:... */ + if ((d - s) > 1) { + hx = _h2b(*s); + if (hx < 0) + return (false); + s++; + } + lx = _h2b(*s); + if (lx < 0) + return (false); + s++; + } + mac[i] = (hx << 4) | lx; + i++; + if (i >= 6) + return (false); + } while (d != NULL && *d != '\0'); + + memcpy(macout, mac, 6); + return (true); +} + #define DECLARE_FLEX_ARRAY(_t, _n) \ struct { struct { } __dummy_ ## _n; _t _n[0]; } From nobody Wed Jan 18 16:25:05 2023 X-Original-To: dev-commits-src-branches@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 4NxrhL2QxVz2yJY2; Wed, 18 Jan 2023 16:25:06 +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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4NxrhK3tsFz3FgB; Wed, 18 Jan 2023 16:25:05 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1674059105; 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=IwecL/Mkv/8Y5qiBCQKib1p5lnsULQ3G++GR42qcS9k=; b=OSwv0HVn/2eox+QOKRpRvUalxKS9MBh7NM8wQCSqIv0FEuG/UgQ+zbW5lbHV2pBNCl16NR mGpxYLM3OAhO+feNhd317heSLdK8f3GcY9Sa9zpWzcbuSJhaOk+WvLb7G8FoONO1G2iu9B ru1ZjNMnafBtlxW/NT2DpvHhLfREmgsbPFPsFrmDJ7lhLAkEtqtBjThC+z+0l9AQWKUk2M kzPjtqiq8MJezXKSY1v4zA/RA0y8VvKNj2o+HkMah5tY36mOwv7N/1/euEs+cd4bWA/b8n lrOZ+k6w+I2AEBQZs4gUEBhgS/dUe2XJjKmt5XHjDsqxpW2ai4RmWaQbk5THqQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1674059105; 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=IwecL/Mkv/8Y5qiBCQKib1p5lnsULQ3G++GR42qcS9k=; b=PvJrwRSWOsG5bCatXvK8GFo2jMiRIr6vV45yD7vZNI5hjz+vv26kz1vg04Z3iwmAPr5eyR 2mzBVBFTHRC+1HHujh9Xzygx+jJJMU02wftRYhh/ZzlBhYSghhoiHLzIqya0dFRFQUDmJP pVkrM06r00WadktAf69mVLoIvdMwFZdXB6yfZvfoYJ6dGzbvFRgtyHPhpzmdYK8bFfGT97 80FkUqagg19t5M8xQHOwW8DrPofNfI3wchJCc452vHLi5lf+Se1zo08y2/wjJs5b2vhq+O Syeq3UECS/Cvb4mqTRV5OssPMGryNXe6rMr2oCVDh1oAOm4SqDACHdTEozno4A== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1674059105; a=rsa-sha256; cv=none; b=s/eP4t+ie1ugkLGMOKkbuUa9BxTD1tZDXTpUBBRp9NZ0HQ0p+xFZArYI9mvMZ6t8Rkj8Cm LlFRMMuT4GhiFXwKO7FeSnKsa2pV1k49B2QgXPzgLV3hY9XCL9JCLIghTAL9OV7OvUeJ6R 9TO1Y113Q2CWcERSIcQ+36S+MVWAve6HwgHpJwldzo7OrlQaO0jE7/Xh7qPQnFi/7w3BTM bM3iL9uRCIqGPfI0nocbz+rSGJiu1AUqbg/akvke9oaodRSe9b2Y003KVQ8TXVvZkGHBGU HT89f3trk53lJxUgDRIiwhloUYAaBTf5LBjj3HBusJQkbUwG3OXMO1CNStnIgg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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 did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4NxrhK2yPdzHc2; Wed, 18 Jan 2023 16:25:05 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 30IGP5dZ038306; Wed, 18 Jan 2023 16:25:05 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 30IGP5N5038305; Wed, 18 Jan 2023 16:25:05 GMT (envelope-from git) Date: Wed, 18 Jan 2023 16:25:05 GMT Message-Id: <202301181625.30IGP5N5038305@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: "Bjoern A. Zeeb" Subject: git: 3292a54f1ba9 - stable/13 - LinuxKPI: fix pci_alloc_irq_vectors() for MSI List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bz X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: 3292a54f1ba9ccbc18e15290eb35665dc964b1c3 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=3292a54f1ba9ccbc18e15290eb35665dc964b1c3 commit 3292a54f1ba9ccbc18e15290eb35665dc964b1c3 Author: Bjoern A. Zeeb AuthorDate: 2022-11-28 18:05:48 +0000 Commit: Bjoern A. Zeeb CommitDate: 2023-01-18 13:26:44 +0000 LinuxKPI: fix pci_alloc_irq_vectors() for MSI pci_alloc_irq_vectors() is given a min and max vector value. pci_enable_msi() will always succeed independent of these arguments as it does not know about them. Further it will only ever allocate 1 "vector" not supporting any other amount. So upfront check that (a) the available pci_msi_count() can satisfy the requested minv and (b) given the pci_enable_msi() hard coded limit check that minv is not larger than 1. If we cannot satisfy either requirement return an error. This fixes problems with drivers which check that the returned value of allocated "vectors" will match their requests and only otherwise try to fall back to ask for 1 or deal otherwise. Sponsored by: The FreeBSD Foundation Reviewed by: hselasky (earlier version) Differential Revision: https://reviews.freebsd.org/D37522 (cherry picked from commit e9715b1c4474333ff119aba3a9a74bff91f72372) --- sys/compat/linuxkpi/common/src/linux_pci.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/sys/compat/linuxkpi/common/src/linux_pci.c b/sys/compat/linuxkpi/common/src/linux_pci.c index b0820c9b2c3e..a9c859d29623 100644 --- a/sys/compat/linuxkpi/common/src/linux_pci.c +++ b/sys/compat/linuxkpi/common/src/linux_pci.c @@ -928,6 +928,11 @@ out: return (pdev->dev.irq_end - pdev->dev.irq_start); } if (flags & PCI_IRQ_MSI) { + if (pci_msi_count(pdev->dev.bsddev) < minv) + return (-ENOSPC); + /* We only support 1 vector in pci_enable_msi() */ + if (minv != 1) + return (-ENOSPC); error = pci_enable_msi(pdev); if (error == 0 && pdev->msi_enabled) return (pdev->dev.irq_end - pdev->dev.irq_start); From nobody Wed Jan 18 16:25:06 2023 X-Original-To: dev-commits-src-branches@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 4NxrhM4PFdz2yJYC; Wed, 18 Jan 2023 16:25:07 +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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4NxrhL4zC2z3FXM; Wed, 18 Jan 2023 16:25:06 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1674059106; 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=xxRiSTPY4RhRZIhxKXr34NlhXd8gsEXfXSrVdRABJVY=; b=aagI4HA+EwsSME+/QNEL5R4wXLx7SCze+ljEZeEshcpIqkl7/UDU6mfXJ/+qR34yFkoeTg eLXndN/DTG6EPUan+rGKKSHjEOydRCEARsXU//f4vINhIMJo0qhEtjeSaFM/t0eLurN6z0 W2XExixQVIrh1shSgRxpuh6WmsCG81TiC45NTzQq/HLlFfYQDRxFA5JDz9nloNncfntHCO 8T1tfiUSa/8D2UgYrss0jQ6ieQSzyslTqxKAj+a6qYIazB8T5gAylBcgqm23YXftw+Uo7q jpHjEv48lpy37S5+lv2AAHmrviVGugDLiP8G8S1uI10k20eAVwJIwlKKrOcngg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1674059106; 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=xxRiSTPY4RhRZIhxKXr34NlhXd8gsEXfXSrVdRABJVY=; b=Q/T8zrhRgBmKWY4gNMcG6szIx3GzO6not9acEEUT7cDpK8Tcic9H2zWnnvHCLuLuAdiArh kTqdf5CiEjrKpcA/fY2pv62TrL2U8YK0BWzZWbg0BTfU1i/JU/UpG6JBcZ7d9G0N3iyS+E 5DMJseQIxzAvSZO9ymNqhkWY9xgHi49k8kEaHKXc+F1cAcYR/lwXFh3DPsQgCSO4hkhJcF TDBFmbIkKWjFLCCaYqC7SpyTVXQKfUcR3Yv+IBOTraYgxBKux/LM3ZIGWfI4WGiML2mxj7 YjDPeS6XhF9Glq+AWI7NDWqG4yBi0i+UBGK9uFBrOaEylzA9DHA2L8EYXrSYsg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1674059106; a=rsa-sha256; cv=none; b=StfmCDdKmCMltlv8W+LbkhJO1Wi5pnXQ/u2v2tJZj1TwpsAfUqClDqxi+FzyyhOnBX+YNd fZ4YYB6yBPrmbi8YEbN5a1lq3WxrbTNKkb382MA6g6Y80Bedb0PoigB4tIevhuXhLpeVZL 2tVDqrFbbA3FaL5esCMNe6ml4N2lHe+bLh8j+UvMPWlcsRnqOgJd2g9akxFssSO/3E1hn3 KkPnZF/DPcl3nCvCDpRHGGF5Rt4JNb17AToyO350Vs8tPpxeqFBfBzjNtQPwJku0zQW6TY Cqxb1X31ZKNEzn5c2YYan0DdAAkxxWeKHN5etjAw4yflpUAfh3+DePI4DdMs2w== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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 did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4NxrhL4298zJB6; Wed, 18 Jan 2023 16:25:06 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 30IGP6MM038330; Wed, 18 Jan 2023 16:25:06 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 30IGP6qb038329; Wed, 18 Jan 2023 16:25:06 GMT (envelope-from git) Date: Wed, 18 Jan 2023 16:25:06 GMT Message-Id: <202301181625.30IGP6qb038329@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: "Bjoern A. Zeeb" Subject: git: 0b0eb6b1e6a3 - stable/13 - LinuxKPI: pci: add [linuxkpi_]pci_get_device() List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bz X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: 0b0eb6b1e6a30495e9bc5991e56ca0221a9730c8 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=0b0eb6b1e6a30495e9bc5991e56ca0221a9730c8 commit 0b0eb6b1e6a30495e9bc5991e56ca0221a9730c8 Author: Bjoern A. Zeeb AuthorDate: 2022-12-02 22:14:09 +0000 Commit: Bjoern A. Zeeb CommitDate: 2023-01-18 13:26:51 +0000 LinuxKPI: pci: add [linuxkpi_]pci_get_device() Add a version of pci_get_device() as linuxkpi_pci_get_device() not (yet) supporting the last argument. Due to conflicts we cannot redefine it as we would normally do in LinuxKPI so drivers have to be adjusted. Differential Revision: https://reviews.freebsd.org/D37593 (cherry picked from commit 8f61992d7cc1108cebc1337451a15a0af420984c) --- sys/compat/linuxkpi/common/include/linux/pci.h | 14 ++++++++++++++ sys/compat/linuxkpi/common/src/linux_pci.c | 17 +++++++++++++++++ 2 files changed, 31 insertions(+) diff --git a/sys/compat/linuxkpi/common/include/linux/pci.h b/sys/compat/linuxkpi/common/include/linux/pci.h index f870b039254c..de041fa966ea 100644 --- a/sys/compat/linuxkpi/common/include/linux/pci.h +++ b/sys/compat/linuxkpi/common/include/linux/pci.h @@ -358,6 +358,7 @@ void lkpi_pci_devres_release(struct device *, void *); struct resource *_lkpi_pci_iomap(struct pci_dev *pdev, int bar, int mmio_size); struct pcim_iomap_devres *lkpi_pcim_iomap_devres_find(struct pci_dev *pdev); void lkpi_pcim_iomap_table_release(struct device *, void *); +struct pci_dev *lkpi_pci_get_device(uint16_t, uint16_t, struct pci_dev *); static inline bool dev_is_pci(struct device *dev) @@ -1579,6 +1580,19 @@ err: return (-EINVAL); } +/* + * We cannot simply re-define pci_get_device() as we would normally do + * and then hide it in linux_pci.c as too many semi-native drivers still + * inlucde linux/pci.h and run into the conflict with native PCI. Linux drivers + * using pci_get_device() need to be changed to call linuxkpi_pci_get_device(). + */ +static inline struct pci_dev * +linuxkpi_pci_get_device(uint16_t vendor, uint16_t device, struct pci_dev *odev) +{ + + return (lkpi_pci_get_device(vendor, device, odev)); +} + /* This is a FreeBSD extension so we can use bus_*(). */ static inline void linuxkpi_pcim_want_to_use_bus_functions(struct pci_dev *pdev) diff --git a/sys/compat/linuxkpi/common/src/linux_pci.c b/sys/compat/linuxkpi/common/src/linux_pci.c index a9c859d29623..54780adfda14 100644 --- a/sys/compat/linuxkpi/common/src/linux_pci.c +++ b/sys/compat/linuxkpi/common/src/linux_pci.c @@ -273,6 +273,23 @@ linux_pci_find(device_t dev, const struct pci_device_id **idp) return (NULL); } +struct pci_dev * +lkpi_pci_get_device(uint16_t vendor, uint16_t device, struct pci_dev *odev) +{ + struct pci_dev *pdev; + + KASSERT(odev == NULL, ("%s: odev argument not yet supported\n", __func__)); + + spin_lock(&pci_lock); + list_for_each_entry(pdev, &pci_devices, links) { + if (pdev->vendor == vendor && pdev->device == device) + break; + } + spin_unlock(&pci_lock); + + return (pdev); +} + static void lkpi_pci_dev_release(struct device *dev) { From nobody Wed Jan 18 16:25:07 2023 X-Original-To: dev-commits-src-branches@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 4NxrhN40jwz2yJd7; Wed, 18 Jan 2023 16:25:08 +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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4NxrhN04Yhz3FXh; Wed, 18 Jan 2023 16:25:08 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1674059108; 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=ObEUu1q3zMhOTTP5ZB4vVOK+mi/Wp/PmzrE440y/ZkM=; b=VXoYreCT8STFyFff3arTwUAj3ecEAUEUt4Wa9RkijQYyLJPppDTQIo1a0brYC99Kkxo2zl xS5pHK47rpvI5/LL4Zw9BYZR4FgqIMlF6a2sHj97h7sYB/2ir2R3EEY1bJM3Kb8WpRng/s a3NznXhZ+YgPLWxiKAeJ6Nf546+y1cyDTcnzwXUo6MI1vRvnEf3MBwEx7td3q0BvY+Sr4k HcRc8X4DHkUgWdvl50zw/b6/RYqHjqA38hnXgoJXZnN1B1eO6SUI3rfh1XndHWdXO+6nnP FAVV3/kMWHuGKRcuh8fyYRJDWsuTFL4ju9TUs+vCsn4z5vy5NnDX8wsJ7SXFGg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1674059108; 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=ObEUu1q3zMhOTTP5ZB4vVOK+mi/Wp/PmzrE440y/ZkM=; b=oIvzxuRKXpYs0PiAove+0QpnRE3/lZ8c5rojuagCCiIzqevo1CmjaDgmNo73f1ZJapjL9k QmdLYmBNdgPyMYXU6LNEX61oc88/mRUWr4TmUYfYrbTMSaSvvjPrRYr9LE3wh/xqc9kNwK J2twHq6PbL3U21YskGsLFKTh5Zczzf7BZHwyiZYicssdcLVZ+uuDX7PePl1M2rSh2PO6cv T+QWQ1qbvzKo55iPE6H66heO2Zgs8U8noR5oKao8/XmLoIZ1/nrW2VuYgoNEiZmAyer+uB AuNDaKMQCeQQKLrPV1Xmlg4+d94VVdvS4gAsQYdLwOO6bvjJ6UrsAGCCmXQiLg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1674059108; a=rsa-sha256; cv=none; b=JIE3cdBk+5SVO3/V4Q8GRKU/srWmEqWnucc+WAYYb6wowHCRPRBVEsUPn3CO/UvJhRtH2p cZR7m4az3OMIY+4mWp1ccQ3JlYKcCN9/v29zvSWpvV9eSWSLr0v3vJHXAXV8SGgf2cNSjl mM7/WHaa5f8fQmtbiaYfOeXHgVdOrbB+gUFDVda7sW+mRZjns3nhZZFWC/PXJXU718w9Eg 1peRmD1yVoEjxPih30ofML83dtKHj0c3lQLfW6KycGtnmU0h5vKke/l4jQtXGSY81CKrqf Pty3OTPTtPkR1cauol0p4l/IsYMD17bK7oiDa85mVr08UsofFSocrK8Q3Nkj3Q== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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 did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4NxrhM4jgbzJ3f; Wed, 18 Jan 2023 16:25:07 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 30IGP7D8038362; Wed, 18 Jan 2023 16:25:07 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 30IGP73A038361; Wed, 18 Jan 2023 16:25:07 GMT (envelope-from git) Date: Wed, 18 Jan 2023 16:25:07 GMT Message-Id: <202301181625.30IGP73A038361@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: "Bjoern A. Zeeb" Subject: git: 649f21d4d7a8 - stable/13 - LinuxKPI: add (skeleton) functions to make drivers compile List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bz X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: 649f21d4d7a838acfa36925c717ce99df33c9c9f Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=649f21d4d7a838acfa36925c717ce99df33c9c9f commit 649f21d4d7a838acfa36925c717ce99df33c9c9f Author: Bjoern A. Zeeb AuthorDate: 2022-12-03 23:00:04 +0000 Commit: Bjoern A. Zeeb CommitDate: 2023-01-18 13:26:55 +0000 LinuxKPI: add (skeleton) functions to make drivers compile Add more functions to netdevice.h (netif_napi_add_tx() being the only one implemented) and add platform_device.h and netlink.h in order to make driver code compile. The skeleton functions are used only in very limited scope and not at all in our usage so far but add (invasive) #ifdef if removed. Add pr_debug() calls to each of them in order to log a TODO (if DEBUG compiled in) and someone should hit them in the future. Commented on by: hselasky (earlier version) Differential Revision: https://reviews.freebsd.org/D37599 (cherry picked from commit 75388b9ca5e566fb7cbd62a37cea1f66d8203fc6) --- .../linuxkpi/common/include/linux/netdevice.h | 132 +++++++++++++++++++++ .../common/include/linux/platform_device.h | 79 ++++++++++++ sys/compat/linuxkpi/common/include/net/netlink.h | 53 +++++++++ 3 files changed, 264 insertions(+) diff --git a/sys/compat/linuxkpi/common/include/linux/netdevice.h b/sys/compat/linuxkpi/common/include/linux/netdevice.h index fdfd650a55e5..8653b5df68bd 100644 --- a/sys/compat/linuxkpi/common/include/linux/netdevice.h +++ b/sys/compat/linuxkpi/common/include/linux/netdevice.h @@ -53,6 +53,7 @@ #include #include +#include #include #include #include @@ -134,6 +135,7 @@ struct net_device { /* Not properly typed as-of now. */ int flags, type; int name_assign_type, needed_headroom; + int threaded; void (*priv_destructor)(struct net_device *); @@ -266,6 +268,15 @@ void linuxkpi_napi_synchronize(struct napi_struct *); #define napi_synchronize(_n) \ linuxkpi_napi_synchronize(_n) + +static inline void +netif_napi_add_tx(struct net_device *dev, struct napi_struct *napi, + int(*napi_poll)(struct napi_struct *, int)) +{ + + netif_napi_add(dev, napi, napi_poll); +} + /* -------------------------------------------------------------------------- */ static inline void @@ -308,6 +319,126 @@ synchronize_net(void) synchronize_rcu(); } +static __inline void +netif_receive_skb_list(struct list_head *head) +{ + + pr_debug("%s: TODO\n", __func__); +} + +static __inline int +napi_gro_receive(struct napi_struct *napi, struct sk_buff *skb) +{ + + pr_debug("%s: TODO\n", __func__); + return (-1); +} + +static __inline void +ether_setup(struct net_device *ndev) +{ + + pr_debug("%s: TODO\n", __func__); +} + +static __inline void +dev_net_set(struct net_device *dev, void *p) +{ + + pr_debug("%s: TODO\n", __func__); +} + +/* -------------------------------------------------------------------------- */ + +static __inline bool +netif_carrier_ok(struct net_device *ndev) +{ + pr_debug("%s: TODO\n", __func__); + return (false); +} + +static __inline void +netif_carrier_off(struct net_device *ndev) +{ + pr_debug("%s: TODO\n", __func__); +} + +static __inline void +netif_carrier_on(struct net_device *ndev) +{ + pr_debug("%s: TODO\n", __func__); +} + +/* -------------------------------------------------------------------------- */ + +static __inline bool +netif_queue_stopped(struct net_device *ndev) +{ + pr_debug("%s: TODO\n", __func__); + return (false); +} + +static __inline void +netif_stop_queue(struct net_device *ndev) +{ + pr_debug("%s: TODO\n", __func__); +} + +static __inline void +netif_wake_queue(struct net_device *ndev) +{ + pr_debug("%s: TODO\n", __func__); +} + +/* -------------------------------------------------------------------------- */ + +static __inline int +register_netdevice(struct net_device *ndev) +{ + + /* assert rtnl_locked? */ + pr_debug("%s: TODO\n", __func__); + return (0); +} + +static __inline int +register_netdev(struct net_device *ndev) +{ + int error; + + /* lock */ + error = register_netdevice(ndev); + /* unlock */ + pr_debug("%s: TODO\n", __func__); + return (error); +} + +static __inline void +unregister_netdev(struct net_device *ndev) +{ + pr_debug("%s: TODO\n", __func__); +} + +static __inline void +unregister_netdevice(struct net_device *ndev) +{ + pr_debug("%s: TODO\n", __func__); +} + +/* -------------------------------------------------------------------------- */ + +static __inline void +netif_rx(struct sk_buff *skb) +{ + pr_debug("%s: TODO\n", __func__); +} + +static __inline void +netif_rx_ni(struct sk_buff *skb) +{ + pr_debug("%s: TODO\n", __func__); +} + /* -------------------------------------------------------------------------- */ struct net_device *linuxkpi_alloc_netdev(size_t, const char *, uint32_t, @@ -331,5 +462,6 @@ netdev_priv(const struct net_device *ndev) #define rtnl_lock() do { } while(0) #define rtnl_unlock() do { } while(0) +#define rcu_dereference_rtnl(x) READ_ONCE(x) #endif /* _LINUXKPI_LINUX_NETDEVICE_H */ diff --git a/sys/compat/linuxkpi/common/include/linux/platform_device.h b/sys/compat/linuxkpi/common/include/linux/platform_device.h new file mode 100644 index 000000000000..f07b5aac967b --- /dev/null +++ b/sys/compat/linuxkpi/common/include/linux/platform_device.h @@ -0,0 +1,79 @@ +/*- + * SPDX-License-Identifier: BSD-2-Clause + * + * Copyright (c) 2020-2022 Bjoern A. Zeeb + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * $FreeBSD$ + */ + +#ifndef _LINUXKPI_LINUX_PLATFORM_DEVICE_H +#define _LINUXKPI_LINUX_PLATFORM_DEVICE_H + +#include +#include + +struct platform_device { + struct device dev; +}; + +struct platform_driver { + int (*remove)(struct platform_device *); + struct device_driver driver; +}; + + +static __inline int +platform_driver_register(struct platform_driver *pdrv) +{ + + pr_debug("%s: TODO\n", __func__); + return (-ENXIO); +} + +static __inline void * +dev_get_platdata(struct device *dev) +{ + + pr_debug("%s: TODO\n", __func__); + return (NULL); +} + +static __inline int +platform_driver_probe(struct platform_driver *pdrv, + int(*pd_probe_f)(struct platform_device *)) +{ + + pr_debug("%s: TODO\n", __func__); + return (-ENODEV); +} + +static __inline void +platform_driver_unregister(struct platform_driver *pdrv) +{ + + pr_debug("%s: TODO\n", __func__); + return; +} + +#endif /* _LINUXKPI_LINUX_PLATFORM_DEVICE_H */ diff --git a/sys/compat/linuxkpi/common/include/net/netlink.h b/sys/compat/linuxkpi/common/include/net/netlink.h new file mode 100644 index 000000000000..ae250177d18b --- /dev/null +++ b/sys/compat/linuxkpi/common/include/net/netlink.h @@ -0,0 +1,53 @@ +/*- + * Copyright (c) 2020,2022 Bjoern A. Zeeb + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#ifndef _LINUXKPI_NET_NETLINK_H +#define _LINUXKPI_NET_NETLINK_H + +#include + +struct nla_policy { +}; + +struct netlink_callback { + int args[8]; +}; + +static __inline int +nla_put(struct sk_buff *skb, int attr, size_t len, void *data) +{ + + pr_debug("%s: TODO -- now native?\n", __func__); + return (-ENXIO); +} + +static __inline int +nla_put_u16(struct sk_buff *skb, int attr, uint32_t val) +{ + + return (nla_put(skb, attr, sizeof(uint32_t), &val)); +} + +#endif /* _LINUXKPI_NET_NETLINK_H */ From nobody Wed Jan 18 19:13:26 2023 X-Original-To: dev-commits-src-branches@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 4NxwQZ577Nz2skbC; Wed, 18 Jan 2023 19:13:26 +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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4NxwQZ4Xyfz3rqq; Wed, 18 Jan 2023 19:13:26 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1674069206; 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=LbH2mTk1x9sEqzXbGamBBDcOUiocOXb/C3HYvR9JZtQ=; b=XkdyrAq4P9kR0Kg3mNVJAIbWnQiwykxvbH26QsdeOBXP1D6neL59DAcdKeqhNEUKZrAdBF e3U4ylRaZRv5oJZ2/Jf0qJ0YCsnfQtnZetVBGJ9eWWuwik9saVMTkQ0qF7h+PZ0ThJnYj5 EAKNS9CrLnV0NNt/8OA6150N/YPZ7q49fhYDKYqH3uKpcHtwfhIRdR+xQc5cekx24rLmnN PqzYZsZFM5nvVF6Pjs53tqCzSGZlm++k+m5CSbrQ8e9o7VxogGo6uFs/7Ih9LVvo8DGUQZ S+7lgtBiAWuaITdzL5czpdN38i+jY42CusJ0uDieRGBJnoAweI0FXuwUu1mbRg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1674069206; 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=LbH2mTk1x9sEqzXbGamBBDcOUiocOXb/C3HYvR9JZtQ=; b=cAslxscjqJ8s5XDYqtdS6xpGtleFENwAVGbx2fVjnIbsJIXYv4Wp7AFqF08zyrtyZIkvZP YmriyayL3ufvRL8moZ8JSLr6neyN0KOW3lz246VdfPBZwp+i/eSsGo5EPWZwKzOK8jEnUf Z2EeSw+LMtJodlp0ZiJRvFfgHWcGBCFZMrUNlIoymmepmgabUexcx12vwqWj+FZQZ9Lcfw j57RTQPoetYN19cpGL3SKUsXv2B3+e1lhFqCxj/GbO1IrLHuCERdMF8gi52jSi9pu5Jvbs 1gWWiFrfVhG9T9S2JUrHwFYWTLFenM1sIQEPr+JdTnT+7B+61MJtm41MyT1FVw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1674069206; a=rsa-sha256; cv=none; b=QfGH6Lfdwmgig3e5ZI8XObc+4VMFAYZNws8Sj2rBfY3cfzpSUWVcac0MzsCDCozcnZqm5B t/AhIrbt4cGkYSKB6yEABkMd9vUh91ULaO6aeDzb3gOEl5V1yDjeIzTlzY3ekTeAXHj8VH gj2CO5woMKaAhzYR5xVXf5V09H5Dst0DgFE2qXWFnbWTqCuByZ7rn9bMwRx9Tt29RTgnX6 3S605wvxAwyHcJP5KJheCETzLo1OECY33SL4w0DuiwfUVsTrxASPGH4yuoENftRLGzWirY d5Xw7DvNFj4STHgVn9ex+2O0XaHvzs2mOa58rEXCxs9EOkJleca5uwW/zzM7gA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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 did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4NxwQZ3ZwPzMhm; Wed, 18 Jan 2023 19:13:26 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 30IJDQhW082143; Wed, 18 Jan 2023 19:13:26 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 30IJDQ10082142; Wed, 18 Jan 2023 19:13:26 GMT (envelope-from git) Date: Wed, 18 Jan 2023 19:13:26 GMT Message-Id: <202301181913.30IJDQ10082142@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Brooks Davis Subject: git: 61456545d957 - stable/13 - xdr: store chars consistently List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: brooks X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: 61456545d957be9a41aa83f5178b73509a4c2a1f Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by brooks: URL: https://cgit.FreeBSD.org/src/commit/?id=61456545d957be9a41aa83f5178b73509a4c2a1f commit 61456545d957be9a41aa83f5178b73509a4c2a1f Author: Brooks Davis AuthorDate: 2023-01-18 19:13:15 +0000 Commit: Brooks Davis CommitDate: 2023-01-18 19:13:15 +0000 xdr: store chars consistently Cast char's through unsigned char before storing as an integer in xdr_char(), this ensures that the encoded form is consistently not sign-extended following Open Solaris's example. Prior to this change, platforms with signed chars would sign extend values with the high bit set but ones with unsigned chars would not so 0xff would be stored as 0x000000ff on unsigned char platforms and 0xffffffff on signed char platforms. Decoding has the same result for either form so this is a largely cosmetic change, but it seems best to produce consistent output. For more discussion, see https://github.com/openzfs/zfs/issues/14173 Reviewed by: mav, imp Differential Revision: https://reviews.freebsd.org/D37992 (cherry picked from commit a872c37054172f3f7a03aef263ca5886a749771f) --- lib/libc/xdr/xdr.c | 8 ++++---- sys/xdr/xdr.c | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/lib/libc/xdr/xdr.c b/lib/libc/xdr/xdr.c index fcf4e9029074..48b4cdbecd02 100644 --- a/lib/libc/xdr/xdr.c +++ b/lib/libc/xdr/xdr.c @@ -429,13 +429,13 @@ xdr_uint16_t(XDR *xdrs, uint16_t *u_int16_p) bool_t xdr_char(XDR *xdrs, char *cp) { - int i; + u_int i; - i = (*cp); - if (!xdr_int(xdrs, &i)) { + i = *((unsigned char *)cp); + if (!xdr_u_int(xdrs, &i)) { return (FALSE); } - *cp = i; + *((unsigned char *)cp) = i; return (TRUE); } diff --git a/sys/xdr/xdr.c b/sys/xdr/xdr.c index 0a0bf3f66744..b57eb7d66ef4 100644 --- a/sys/xdr/xdr.c +++ b/sys/xdr/xdr.c @@ -358,13 +358,13 @@ xdr_uint16_t(XDR *xdrs, uint16_t *uint16_p) bool_t xdr_char(XDR *xdrs, char *cp) { - int i; + u_int i; - i = (*cp); - if (!xdr_int(xdrs, &i)) { + i = *((unsigned char *)cp); + if (!xdr_u_int(xdrs, &i)) { return (FALSE); } - *cp = i; + *((unsigned char *)cp) = i; return (TRUE); } From nobody Wed Jan 18 23:48:37 2023 X-Original-To: dev-commits-src-branches@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 4Ny2X61NL8z2v67F; Wed, 18 Jan 2023 23:48:38 +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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Ny2X60sdNz3CCg; Wed, 18 Jan 2023 23:48:38 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1674085718; 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=12/OG0T9hYtcwN6o8Cm65cHVgX+lgirdsCyGvVkbFQ4=; b=xLpXuZE6NNtXtxIKi6N0LAH6xmpeQiPs4X3ztMuYP8Gtil3tZPeoG8k4tuSPhcNGKpykov DufuxBwrAsDMGD4IklH2IRTb+ktHZ7k/wOZiH5MAxdZG/C1rDMcGDKuH97s1ilZ0d4zvQO FbQgrbOW75N5dBkr2QzMXnT1hg4gpJjbjaO/KTSIzyB8iQaBZXgQprHgWDYwmS75UzwUQe 2aB8XVTQiTPx5cxDa1O2/8LlE4gHzVsg5tSihhzByvaleOmktJF5AGSHLUs2P4O8fI68qC 5knP+O18GqjOqsV2x3ktfimHjIQhxWNYju0M1lJM6o/05ZRVFO0t+HulaGDT4A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1674085718; 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=12/OG0T9hYtcwN6o8Cm65cHVgX+lgirdsCyGvVkbFQ4=; b=wgsHf8Poj7EveXoWkRORJ3Dr1r8K2wj2UkNj3cDa5Zk9551rBukWCnw7ZqabjH5CDVfk8o cPQfLuAB1uEVqagdCC/8OE/fzljtjLqBckHMraI9PxsfF/3IOPkO2yplFz9kfoUC2RIy9A 06ZZUMLYmjndNRlgqkOAwKVX3CwqE8lIWUfO4ANNrQMPssFzWcEWuXfWj1KOFVUbTXevMf T6AM7Vmz0+zS97xKo0wEQXcpJ8pqkSEeD2mi0j/NcWu5awLc7m739jOCv0TnNKtXGtx1wI 456wEL9Gx2GqWrs0rUkxrnrbyeaedLMTx7hI9NcLPgRMB/b/cmiYPToDZZqnYg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1674085718; a=rsa-sha256; cv=none; b=IiuaL1yUgCkfNhlcxWe9KOIyUkUn71YP4DR4rYIAqde2JIib3uJrMOPCmx7vRmqaXM9Qt6 oD+cqNBp5TvlY2z+xhY/cKglgqy2sKUwnRKJ9l0P1l3rlW9N4gnt7hAwHAHz5JatG/IjRD QhVG1+bD0vS+bLtK8Pj1FdktyKAVq6+r8sF7awSz9GlNdLWrb4lQJTHkZjYLVScrUTsRsu MNlAVvFWFtmbOgUvMbXa046w+Mv+U8M7T9Qs6igwJFZ8MXRriNJPRPmKoaSjdu+1FC5sig OPDreoBApD6tdC5mC4Y8i0xj6m4EKB8yReB/4ymgn7FxFYPHA6tRPTqU5DBfDw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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 did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Ny2X56nS0zVrQ; Wed, 18 Jan 2023 23:48:37 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 30INmbxn070585; Wed, 18 Jan 2023 23:48:37 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 30INmbAR070584; Wed, 18 Jan 2023 23:48:37 GMT (envelope-from git) Date: Wed, 18 Jan 2023 23:48:37 GMT Message-Id: <202301182348.30INmbAR070584@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Brooks Davis Subject: git: ad23377e244c - stable/12 - xdr: store chars consistently List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: brooks X-Git-Repository: src X-Git-Refname: refs/heads/stable/12 X-Git-Reftype: branch X-Git-Commit: ad23377e244c1f234f922aacfdb32be4e0a9713e Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/12 has been updated by brooks: URL: https://cgit.FreeBSD.org/src/commit/?id=ad23377e244c1f234f922aacfdb32be4e0a9713e commit ad23377e244c1f234f922aacfdb32be4e0a9713e Author: Brooks Davis AuthorDate: 2023-01-18 23:48:18 +0000 Commit: Brooks Davis CommitDate: 2023-01-18 23:48:18 +0000 xdr: store chars consistently Cast char's through unsigned char before storing as an integer in xdr_char(), this ensures that the encoded form is consistently not sign-extended following Open Solaris's example. Prior to this change, platforms with signed chars would sign extend values with the high bit set but ones with unsigned chars would not so 0xff would be stored as 0x000000ff on unsigned char platforms and 0xffffffff on signed char platforms. Decoding has the same result for either form so this is a largely cosmetic change, but it seems best to produce consistent output. For more discussion, see https://github.com/openzfs/zfs/issues/14173 Reviewed by: mav, imp Differential Revision: https://reviews.freebsd.org/D37992 (cherry picked from commit a872c37054172f3f7a03aef263ca5886a749771f) --- lib/libc/xdr/xdr.c | 8 ++++---- sys/xdr/xdr.c | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/lib/libc/xdr/xdr.c b/lib/libc/xdr/xdr.c index fcf4e9029074..48b4cdbecd02 100644 --- a/lib/libc/xdr/xdr.c +++ b/lib/libc/xdr/xdr.c @@ -429,13 +429,13 @@ xdr_uint16_t(XDR *xdrs, uint16_t *u_int16_p) bool_t xdr_char(XDR *xdrs, char *cp) { - int i; + u_int i; - i = (*cp); - if (!xdr_int(xdrs, &i)) { + i = *((unsigned char *)cp); + if (!xdr_u_int(xdrs, &i)) { return (FALSE); } - *cp = i; + *((unsigned char *)cp) = i; return (TRUE); } diff --git a/sys/xdr/xdr.c b/sys/xdr/xdr.c index 349e53d02387..6e66b90453c4 100644 --- a/sys/xdr/xdr.c +++ b/sys/xdr/xdr.c @@ -372,13 +372,13 @@ xdr_uint16_t(XDR *xdrs, uint16_t *uint16_p) bool_t xdr_char(XDR *xdrs, char *cp) { - int i; + u_int i; - i = (*cp); - if (!xdr_int(xdrs, &i)) { + i = *((unsigned char *)cp); + if (!xdr_u_int(xdrs, &i)) { return (FALSE); } - *cp = i; + *((unsigned char *)cp) = i; return (TRUE); } From nobody Thu Jan 19 03:52:07 2023 X-Original-To: dev-commits-src-branches@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 4Ny7x35ZM3z2svbw; Thu, 19 Jan 2023 03:52:07 +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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Ny7x33zZvz3RG3; Thu, 19 Jan 2023 03:52:07 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1674100327; 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=w3QLP9k+V8hHcpfR3iNB8OKlcBJBq0Vgv/WPrr4U1YA=; b=oGGwG4UuBdxua0xPpAZCUEgGlse+NFHKLqGOSTKzVMaxQZQD8G8HUm2nRvsJdWvMvhWp8i PY4leEGx3tb7J92L0+J91ISfSW8OTc8KsW9WalFiqg5/RRC8AM5FgKSkHpnyG8YqpjAf4K VKHfJvbWIsH/bk7xDnYOvpLbZNb580iVj9APz/l+gXWac+bZClQT7Cq+xB594OtWj/Hihk FcQ+/vpsHO512nCHh2Cmp+kO/ABM9qkkYjPcNdr74hcGf2UVVlpgeNfxO/E6RxL6YOIyBv xmXbQutEfxDPN2zW2NBx/BRhaQNXxUpcWaT5IDqiRvKDLIshUPsjr8k2FSgfTA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1674100327; 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=w3QLP9k+V8hHcpfR3iNB8OKlcBJBq0Vgv/WPrr4U1YA=; b=xg9Urvl0vHDhqEGXD6A08G0ooD2+SXtucpStP2aQjPGusMMWwoeq6I1iH3mm1J2zNjw2c7 ttUBeda6h2C5blxvwkmlj5XLg7r2mrKp/xn3rQCThPHyMkBe5JciL9yRenxBq4SqjLmUaj uWDSQuDdIomcOMZJqONFGqoVT42/z2i5VWbCnvRGUAOFk6KFpF2JPu4YVhpxm7AUjKrkJB 3gYEIIYWG9rJML3fiaqL2LBtVcRKe/y5r6VolqZVBcEx/zjySkh+Ib9imkS7niH/hBePZ1 21kEWtBxxxc+uaW34q/Pn+fsPMWeqef3UqD3we5+Fygexige67cEU/z1NULgsA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1674100327; a=rsa-sha256; cv=none; b=uMcCyNJ0YMO6iRcn4tFPK3RxEZJd+T6zBE3yxxHC+eCvJ4I5XRAKFmgbDbYOi+hIIrElbr 1NkF4jXBfZ8ojPhMvYSt0rNbJnkoWCw1eAlv0lnSPIqDWGCXHr0LVY0KEorZbPQqiKKeN7 BUZVWJavlkd3a2TeVxrUjET3H+Mk0nwre5+8qTA1KvnJJ8db7sIoatv3+jdnDU7GacvvlJ tVkx2x81nTNx5C5VFNMaShkOcepZkC3sAGmry6UdrEQcPiqqOBqrZMGEa8jQMM/Wq0PGZM wMUaj8jhKV3cL65vWBTWcB7xADrInqUQB+49GaKw6v3tHV0V32tdBIqYDGODGw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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 did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Ny7x334gMzcQW; Thu, 19 Jan 2023 03:52:07 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 30J3q7Ga021821; Thu, 19 Jan 2023 03:52:07 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 30J3q7fT021820; Thu, 19 Jan 2023 03:52:07 GMT (envelope-from git) Date: Thu, 19 Jan 2023 03:52:07 GMT Message-Id: <202301190352.30J3q7fT021820@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Warner Losh Subject: git: eee5ebb851be - stable/13 - bnxt: Remove dead write to cp_ring_id List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: imp X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: eee5ebb851beb1874b5e9d6f8b329b4ab67990c0 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by imp: URL: https://cgit.FreeBSD.org/src/commit/?id=eee5ebb851beb1874b5e9d6f8b329b4ab67990c0 commit eee5ebb851beb1874b5e9d6f8b329b4ab67990c0 Author: Warner Losh AuthorDate: 2022-02-28 17:13:27 +0000 Commit: Warner Losh CommitDate: 2023-01-19 00:59:42 +0000 bnxt: Remove dead write to cp_ring_id Since this is read from memory, reading it and then ignoring it is dead code... Sponsored by: Netflix (cherry picked from commit 44b4f0370fe90d11306e9d3fdcacdc5b4ccc946e) --- sys/dev/bnxt/bnxt_hwrm.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/sys/dev/bnxt/bnxt_hwrm.c b/sys/dev/bnxt/bnxt_hwrm.c index 60485cd06799..0009ffa25053 100644 --- a/sys/dev/bnxt/bnxt_hwrm.c +++ b/sys/dev/bnxt/bnxt_hwrm.c @@ -119,7 +119,6 @@ _hwrm_send_message(struct bnxt_softc *softc, void *msg, uint32_t msg_len) struct hwrm_err_output *resp = (void *)softc->hwrm_cmd_resp.idi_vaddr; uint32_t *data = msg; int i; - uint16_t cp_ring_id; uint8_t *valid; uint16_t err; uint16_t max_req_len = HWRM_MAX_REQ_LEN; @@ -128,7 +127,6 @@ _hwrm_send_message(struct bnxt_softc *softc, void *msg, uint32_t msg_len) /* TODO: DMASYNC in here. */ req->seq_id = htole16(softc->hwrm_cmd_seq++); memset(resp, 0, PAGE_SIZE); - cp_ring_id = le16toh(req->cmpl_ring); if (softc->flags & BNXT_FLAG_SHORT_CMD) { void *short_cmd_req = softc->hwrm_short_cmd_req_addr.idi_vaddr; From nobody Thu Jan 19 03:52:08 2023 X-Original-To: dev-commits-src-branches@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 4Ny7x51Gckz2svbx; Thu, 19 Jan 2023 03:52:09 +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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Ny7x45Nd0z3h8T; Thu, 19 Jan 2023 03:52:08 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1674100328; 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=ohqBI8tFfTYvn4d5puZPrf6obfR1eq/6bc8jMgtFL3E=; b=Y/Efc00dONWGves+D9ArvepMxGHufZw4R9UvL1y89Qf1vI1xDYJxdaQ9NQNxKkGp4FSQOi kWIndCgCztLO8zMBEQIGjfGLEPXIbXNPIrtW4iaYyRyZy0G5nznho/2dMsRTwdqvqqiDH7 TkG9sP0fENIB0U30KVamVILKpguSTyfYPU3pMFKEna3yuVXlOIEOC59GGRutoDacRVSqm7 g+MK2DM6vLHNGRmZ8m81pF8JxQve2HazyeQ4hWmQ6JrpzfwifzRFFB76H3uJtxnpfUTJK8 zNo6eLWHCSZNe+FpLDoubVx7bwNjE5ysIffj9JS8diIB97gxBKA9MvtMstG9Ww== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1674100328; 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=ohqBI8tFfTYvn4d5puZPrf6obfR1eq/6bc8jMgtFL3E=; b=OiFUJAGRd/VgDT69AITM5wW+SDNE2PqPc8xFZ2owT1g3qSFKmhTt5dqJDB3c1Ofyr9/HQe nszKNkS4RVyMMTgRPMPex2AMahZUUFP3xRYj9PneUybRlBNsk2YJeFqDX7j1OXCmpXTPRn qEvlrAU7FAJZu7+fMY0scMDM8cwytT8SWKc+5hJRGG5JpwlnCwMZQaAUQ6tj77Lz0+eDhF Sc/ayFH+kE6TDp/Fcq0IDiiXjIAJ6yDn6smwRkoHvmIfzOS+bmDdMV3QRJaf8klv2MKOLb JBi5yZ2/sDON92JU3vrMbCAwm+ZjfztGnZInxSq/PH9MjldZmaA9nXAZZl2nZg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1674100328; a=rsa-sha256; cv=none; b=gcC8Vmluwmds02X2rtstR+SlGjLm1VMQY+GxJGtJ0yW7OtVWjhmgxCQbqOlMDLaV/042Cx 3XaCeX0JxvXmex+W11AAKCXWyA7NLnNonZi4pg0iL+rPdHS442msh8TdzwjzyhoeaOLXP3 k4afasS0rorT0kcx0kbZXOGZbRvyucVRW9Ptk2GlR+5flDM4P2O52Evo40ZCVzVkQh47OX TOnUXEiSkGpZKaUDxPosypt3xQsiH0whC4WVGn58xjvxgRC+T8cHnE+qViapLdyE05/V3Z J5AOMjLu+nzT35kHz9irdszNqB4oP06bnLrNvcnlVZnxmD0ZGZERQQe7Y5ueUg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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 did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Ny7x44Cy8zcfY; Thu, 19 Jan 2023 03:52:08 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 30J3q8nc021855; Thu, 19 Jan 2023 03:52:08 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 30J3q8m2021854; Thu, 19 Jan 2023 03:52:08 GMT (envelope-from git) Date: Thu, 19 Jan 2023 03:52:08 GMT Message-Id: <202301190352.30J3q8m2021854@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Warner Losh Subject: git: a815cf3b7221 - stable/13 - bnxt: Remove unused devclass argument to DRIVER_MODULE. List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: imp X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: a815cf3b7221decf5ce4c1fcfc1f9a91e87a958a Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by imp: URL: https://cgit.FreeBSD.org/src/commit/?id=a815cf3b7221decf5ce4c1fcfc1f9a91e87a958a commit a815cf3b7221decf5ce4c1fcfc1f9a91e87a958a Author: John Baldwin AuthorDate: 2022-05-09 19:22:00 +0000 Commit: Warner Losh CommitDate: 2023-01-19 01:00:05 +0000 bnxt: Remove unused devclass argument to DRIVER_MODULE. (cherry picked from commit 64d3221c61122b9a6a73f107c8145e92b47eb4c8) --- sys/dev/bnxt/if_bnxt.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/sys/dev/bnxt/if_bnxt.c b/sys/dev/bnxt/if_bnxt.c index 1805a1f24f93..a2ec25a9ad31 100644 --- a/sys/dev/bnxt/if_bnxt.c +++ b/sys/dev/bnxt/if_bnxt.c @@ -237,8 +237,7 @@ static driver_t bnxt_driver = { "bnxt", bnxt_methods, sizeof(struct bnxt_softc), }; -devclass_t bnxt_devclass; -DRIVER_MODULE(bnxt, pci, bnxt_driver, bnxt_devclass, 0, 0); +DRIVER_MODULE(bnxt, pci, bnxt_driver, 0, 0); MODULE_DEPEND(bnxt, pci, 1, 1, 1); MODULE_DEPEND(bnxt, ether, 1, 1, 1); From nobody Thu Jan 19 03:52:09 2023 X-Original-To: dev-commits-src-branches@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 4Ny7x65v2kz2svBw; Thu, 19 Jan 2023 03:52:10 +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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Ny7x65W8rz3hj6; Thu, 19 Jan 2023 03:52:10 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1674100330; 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=26fdM8//19OiWoUTp2/VzcE9OLSWo1lWEuWrFl+xJLo=; b=twU5qCErvPW3lEDhJHMd4LWPhJQTC2j2bl/uHQJuy6y0I6ABhGnbViuu1BCVNFeilHFkcB WsHaI4gl9fXTwPrPraIQrBEzA26nJ7GAq9krPsQjmEd4WCOEH7OiN/Nnj8rAnHBEsVnnlz oxuKoI7QbZL6VampUVR+vH1ya8O0qImpjSRapcQodWUtzSBEAMkiICipMQGVBB+bdrGOke ieAx4nGX37O7Ym7jrgzO+z00yAnt/kiF1PzLSs7d3c8Vg7ObB3+jccQt9kWejmqZkX66Nn EmIo0KBwT6wyJNLT6Ht7nrqagCkPzdGDq/UuxFhqS5ZsDaYbQwYiXTC4X2CTng== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1674100330; 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=26fdM8//19OiWoUTp2/VzcE9OLSWo1lWEuWrFl+xJLo=; b=GYY2ZdBxmKyi7Ff9fOHisazkx2iqhbldVFE2MM4ExrYpKwd8tpE9LHWcpkpxX7xBXXn21c HbOofDqp45VGO7EUyZwjYiIrnJlI3Xl2ZpDyDndu6e2xx4n0UUMl6gL8Fa40nxymQg8X5r bsC3Q2gc0MdjN+9oWn7U+kI8MaS/mjLGzbq8v+739p4Oyp35srz8ASapooln4lcnHW6fBV TyNADxvb82WqN7c++yzGRtEncY/hUVRi59/yc4gTHyjzyQn+dlxGgXkUpZ/65ZhWYkwWsA irE+yJm6ICbpfvV2HOxj3jMEhUBjBokC+2kVUtzRtgTK99qqWK4Dks4xPX453A== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1674100330; a=rsa-sha256; cv=none; b=xhrqXlRvbMXb292EM3gy1NuFle9n+piQDjaL/nnmvZJ272PakQ4HkE6YEHZZw06gXDhTKb xHP0LE1rXtXvm3Heo+T1idfa9wgJWqdylUqDoK5YSlUcmW0tNZBDIswvfAZ+nBDncINfsx Xfr8BpcKD8uns58zoNbo1qQBgCN4OB//yB/0tEdm+ed/vi6xmX2evmeLEY5c5dsjD/eD76 KTM6taOX1MCkCSeUC1lzwsIe9lERN8zWK7BjC9bEY3cx35N9db9/2VARxQSlXTbJx4Yvvt vM1xE5Bk0X79FOGWB8kPcLttLYK8DcTOesBK7nzRjtC0F+6NVU6i1HYRmGb1fw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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 did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Ny7x64c1MzcWQ; Thu, 19 Jan 2023 03:52:10 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 30J3qACd021898; Thu, 19 Jan 2023 03:52:10 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 30J3q95V021883; Thu, 19 Jan 2023 03:52:09 GMT (envelope-from git) Date: Thu, 19 Jan 2023 03:52:09 GMT Message-Id: <202301190352.30J3q95V021883@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Warner Losh Subject: git: e1741d6fd5af - stable/13 - if_bnxt: update hsi_struct_def.h headers List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: imp X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: e1741d6fd5aff3b7e337e36f648ba4b4eb563302 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by imp: URL: https://cgit.FreeBSD.org/src/commit/?id=e1741d6fd5aff3b7e337e36f648ba4b4eb563302 commit e1741d6fd5aff3b7e337e36f648ba4b4eb563302 Author: Sumit Saxena AuthorDate: 2022-11-04 21:56:50 +0000 Commit: Warner Losh CommitDate: 2023-01-19 01:00:05 +0000 if_bnxt: update hsi_struct_def.h headers Updates the drivers to Broadcom's latest: HWRM Version 1.10.2.34 using HSI definition version 1.8.4 Reviewed by: imp Differential Revision: https://reviews.freebsd.org/D36436 (cherry picked from commit 97315f68fe87ae391d2dd2f8c636beac9754ab73) --- sys/dev/bnxt/bnxt_hwrm.c | 34 +- sys/dev/bnxt/bnxt_sysctl.c | 14 +- sys/dev/bnxt/bnxt_txrx.c | 4 +- sys/dev/bnxt/hsi_struct_def.h | 84290 ++++++++++++++++++++++++++++------------ 4 files changed, 59077 insertions(+), 25265 deletions(-) diff --git a/sys/dev/bnxt/bnxt_hwrm.c b/sys/dev/bnxt/bnxt_hwrm.c index 0009ffa25053..d474e5b81e19 100644 --- a/sys/dev/bnxt/bnxt_hwrm.c +++ b/sys/dev/bnxt/bnxt_hwrm.c @@ -286,31 +286,31 @@ bnxt_hwrm_ver_get(struct bnxt_softc *softc) goto fail; snprintf(softc->ver_info->hwrm_if_ver, BNXT_VERSTR_SIZE, "%d.%d.%d", - resp->hwrm_intf_maj, resp->hwrm_intf_min, resp->hwrm_intf_upd); - softc->ver_info->hwrm_if_major = resp->hwrm_intf_maj; - softc->ver_info->hwrm_if_minor = resp->hwrm_intf_min; - softc->ver_info->hwrm_if_update = resp->hwrm_intf_upd; + resp->hwrm_intf_maj_8b, resp->hwrm_intf_min_8b, resp->hwrm_intf_upd_8b); + softc->ver_info->hwrm_if_major = resp->hwrm_intf_maj_8b; + softc->ver_info->hwrm_if_minor = resp->hwrm_intf_min_8b; + softc->ver_info->hwrm_if_update = resp->hwrm_intf_upd_8b; snprintf(softc->ver_info->hwrm_fw_ver, BNXT_VERSTR_SIZE, "%d.%d.%d", - resp->hwrm_fw_maj, resp->hwrm_fw_min, resp->hwrm_fw_bld); + resp->hwrm_fw_major, resp->hwrm_fw_minor, resp->hwrm_fw_build); strlcpy(softc->ver_info->driver_hwrm_if_ver, HWRM_VERSION_STR, BNXT_VERSTR_SIZE); strlcpy(softc->ver_info->hwrm_fw_name, resp->hwrm_fw_name, BNXT_NAME_SIZE); - if (resp->mgmt_fw_maj == 0 && resp->mgmt_fw_min == 0 && - resp->mgmt_fw_bld == 0) { + if (resp->mgmt_fw_major == 0 && resp->mgmt_fw_minor == 0 && + resp->mgmt_fw_build == 0) { strlcpy(softc->ver_info->mgmt_fw_ver, naver, BNXT_VERSTR_SIZE); strlcpy(softc->ver_info->mgmt_fw_name, nastr, BNXT_NAME_SIZE); } else { snprintf(softc->ver_info->mgmt_fw_ver, BNXT_VERSTR_SIZE, - "%d.%d.%d", resp->mgmt_fw_maj, resp->mgmt_fw_min, - resp->mgmt_fw_bld); + "%d.%d.%d", resp->mgmt_fw_major, resp->mgmt_fw_minor, + resp->mgmt_fw_build); strlcpy(softc->ver_info->mgmt_fw_name, resp->mgmt_fw_name, BNXT_NAME_SIZE); } - if (resp->netctrl_fw_maj == 0 && resp->netctrl_fw_min == 0 && - resp->netctrl_fw_bld == 0) { + if (resp->netctrl_fw_major == 0 && resp->netctrl_fw_minor == 0 && + resp->netctrl_fw_build == 0) { strlcpy(softc->ver_info->netctrl_fw_ver, naver, BNXT_VERSTR_SIZE); strlcpy(softc->ver_info->netctrl_fw_name, nastr, @@ -318,20 +318,20 @@ bnxt_hwrm_ver_get(struct bnxt_softc *softc) } else { snprintf(softc->ver_info->netctrl_fw_ver, BNXT_VERSTR_SIZE, - "%d.%d.%d", resp->netctrl_fw_maj, resp->netctrl_fw_min, - resp->netctrl_fw_bld); + "%d.%d.%d", resp->netctrl_fw_major, resp->netctrl_fw_minor, + resp->netctrl_fw_build); strlcpy(softc->ver_info->netctrl_fw_name, resp->netctrl_fw_name, BNXT_NAME_SIZE); } - if (resp->roce_fw_maj == 0 && resp->roce_fw_min == 0 && - resp->roce_fw_bld == 0) { + if (resp->roce_fw_major == 0 && resp->roce_fw_minor == 0 && + resp->roce_fw_build == 0) { strlcpy(softc->ver_info->roce_fw_ver, naver, BNXT_VERSTR_SIZE); strlcpy(softc->ver_info->roce_fw_name, nastr, BNXT_NAME_SIZE); } else { snprintf(softc->ver_info->roce_fw_ver, BNXT_VERSTR_SIZE, - "%d.%d.%d", resp->roce_fw_maj, resp->roce_fw_min, - resp->roce_fw_bld); + "%d.%d.%d", resp->roce_fw_major, resp->roce_fw_minor, + resp->roce_fw_build); strlcpy(softc->ver_info->roce_fw_name, resp->roce_fw_name, BNXT_NAME_SIZE); } diff --git a/sys/dev/bnxt/bnxt_sysctl.c b/sys/dev/bnxt/bnxt_sysctl.c index ef624d487953..c2518d7e2675 100644 --- a/sys/dev/bnxt/bnxt_sysctl.c +++ b/sys/dev/bnxt/bnxt_sysctl.c @@ -186,8 +186,8 @@ bnxt_create_tx_sysctls(struct bnxt_softc *softc, int txr) "discard_pkts", CTLFLAG_RD, &tx_stats[txr].tx_discard_pkts, "discarded transmit packets"); SYSCTL_ADD_QUAD(&softc->hw_stats, SYSCTL_CHILDREN(oid), OID_AUTO, - "drop_pkts", CTLFLAG_RD, &tx_stats[txr].tx_drop_pkts, - "dropped transmit packets"); + "error_pkts", CTLFLAG_RD, &tx_stats[txr].tx_error_pkts, + "Error transmit packets"); SYSCTL_ADD_QUAD(&softc->hw_stats, SYSCTL_CHILDREN(oid), OID_AUTO, "ucast_bytes", CTLFLAG_RD, &tx_stats[txr].tx_ucast_bytes, "unicast bytes sent"); @@ -237,7 +237,7 @@ bnxt_create_port_stats_sysctls(struct bnxt_softc *softc) "Transmitted 512b 1023b frames"); SYSCTL_ADD_QUAD(&softc->hw_stats, SYSCTL_CHILDREN(oid), OID_AUTO, "tx_1024b_1518_frames", CTLFLAG_RD, - &softc->tx_port_stats->tx_1024b_1518_frames, + &softc->tx_port_stats->tx_1024b_1518b_frames, "Transmitted 1024b 1518 frames"); SYSCTL_ADD_QUAD(&softc->hw_stats, SYSCTL_CHILDREN(oid), OID_AUTO, "tx_good_vlan_frames", CTLFLAG_RD, @@ -245,7 +245,7 @@ bnxt_create_port_stats_sysctls(struct bnxt_softc *softc) "Transmitted good vlan frames"); SYSCTL_ADD_QUAD(&softc->hw_stats, SYSCTL_CHILDREN(oid), OID_AUTO, "tx_1519b_2047_frames", CTLFLAG_RD, - &softc->tx_port_stats->tx_1519b_2047_frames, + &softc->tx_port_stats->tx_1519b_2047b_frames, "Transmitted 1519b 2047 frames"); SYSCTL_ADD_QUAD(&softc->hw_stats, SYSCTL_CHILDREN(oid), OID_AUTO, "tx_2048b_4095b_frames", CTLFLAG_RD, @@ -421,7 +421,7 @@ bnxt_create_port_stats_sysctls(struct bnxt_softc *softc) "Received 512b 1023b frames"); SYSCTL_ADD_QUAD(&softc->hw_stats, SYSCTL_CHILDREN(oid), OID_AUTO, "rx_1024b_1518_frames", CTLFLAG_RD, - &softc->rx_port_stats->rx_1024b_1518_frames, + &softc->rx_port_stats->rx_1024b_1518b_frames, "Received 1024b 1518 frames"); SYSCTL_ADD_QUAD(&softc->hw_stats, SYSCTL_CHILDREN(oid), OID_AUTO, "rx_good_vlan_frames", CTLFLAG_RD, @@ -679,8 +679,8 @@ bnxt_create_rx_sysctls(struct bnxt_softc *softc, int rxr) "discard_pkts", CTLFLAG_RD, &rx_stats[rxr].rx_discard_pkts, "discarded receive packets"); SYSCTL_ADD_QUAD(&softc->hw_stats, SYSCTL_CHILDREN(oid), OID_AUTO, - "drop_pkts", CTLFLAG_RD, &rx_stats[rxr].rx_drop_pkts, - "dropped receive packets"); + "error_pkts", CTLFLAG_RD, &rx_stats->rx_error_pkts, + "Error receive packets"); SYSCTL_ADD_QUAD(&softc->hw_stats, SYSCTL_CHILDREN(oid), OID_AUTO, "ucast_bytes", CTLFLAG_RD, &rx_stats[rxr].rx_ucast_bytes, "unicast bytes received"); diff --git a/sys/dev/bnxt/bnxt_txrx.c b/sys/dev/bnxt/bnxt_txrx.c index a9bc6a4df740..9727230b578f 100644 --- a/sys/dev/bnxt/bnxt_txrx.c +++ b/sys/dev/bnxt/bnxt_txrx.c @@ -128,8 +128,8 @@ bnxt_isc_txd_encap(void *sc, if_pkt_info_t pi) pi->ipi_new_pidx = RING_NEXT(txr, pi->ipi_new_pidx); tbdh = &((struct tx_bd_long_hi *)txr->vaddr)[pi->ipi_new_pidx]; - tbdh->mss = htole16(pi->ipi_tso_segsz); - tbdh->hdr_size = htole16((pi->ipi_ehdrlen + pi->ipi_ip_hlen + + tbdh->kid_or_ts_high_mss = htole16(pi->ipi_tso_segsz); + tbdh->kid_or_ts_low_hdr_size = htole16((pi->ipi_ehdrlen + pi->ipi_ip_hlen + pi->ipi_tcp_hlen) >> 1); tbdh->cfa_action = 0; lflags = 0; diff --git a/sys/dev/bnxt/hsi_struct_def.h b/sys/dev/bnxt/hsi_struct_def.h index 7416545480d0..db3baa8d75c7 100644 --- a/sys/dev/bnxt/hsi_struct_def.h +++ b/sys/dev/bnxt/hsi_struct_def.h @@ -30,25150 +30,52849 @@ #include __FBSDID("$FreeBSD$"); -/**************************************************************************** - * - * Description: Definition of HSI data structures - * - * Date: 08/31/17 17:55:46 +/* + * Copyright(c) 2001-2021, Broadcom. All rights reserved. The + * term Broadcom refers to Broadcom Inc. and/or its subsidiaries. + * Proprietary and Confidential Information. * - * Note: This file is scripted generated by hsi_decode.py. - * DO NOT modify this file manually !!!! + * This source file is the property of Broadcom Corporation, and + * may not be copied or distributed in any isomorphic form without + * the prior written consent of Broadcom Corporation. * - ****************************************************************************/ + * DO NOT MODIFY!!! This file is automatically generated. + */ + #ifndef _HSI_STRUCT_DEF_EXTERNAL_H_ #define _HSI_STRUCT_DEF_EXTERNAL_H_ -/* HSI and HWRM Specification 1.8.1 */ -#define HWRM_VERSION_MAJOR 1 -#define HWRM_VERSION_MINOR 8 -#define HWRM_VERSION_UPDATE 1 - -#define HWRM_VERSION_RSVD 7 -#define HWRM_VERSION_STR "1.8.1.7" -/* - * Following is the signature for HWRM message field that indicates not - * applicable (All F's). Need to cast it the size of the field if needed. - */ -#define HWRM_NA_SIGNATURE ((uint32_t)(-1)) -#define HWRM_MAX_REQ_LEN (128) /* hwrm_func_buf_rgtr */ -#define HWRM_MAX_RESP_LEN (272) /* hwrm_selftest_qlist */ -#define HW_HASH_INDEX_SIZE 0x80 /* 7 bit indirection table index. */ -#define HW_HASH_KEY_SIZE 40 -#define HWRM_RESP_VALID_KEY 1 /* valid key for HWRM response */ -#define ROCE_SP_HSI_VERSION_MAJOR 1 -#define ROCE_SP_HSI_VERSION_MINOR 8 -#define ROCE_SP_HSI_VERSION_UPDATE 1 - -#define ROCE_SP_HSI_VERSION_STR "1.8.1" -/* - * Following is the signature for ROCE_SP_HSI message field that indicates not - * applicable (All F's). Need to cast it the size of the field if needed. - */ -#define ROCE_SP_HSI_NA_SIGNATURE ((uint32_t)(-1)) -/* - * Note: The Host Software Interface (HSI) and Hardware Resource Manager (HWRM) - * specification describes the data structures used in Ethernet packet or RDMA - * message data transfers as well as an abstract interface for managing Ethernet - * NIC hardware resources. - */ -/* Ethernet Data path Host Structures */ -/* - * Description: The following three sections document the host structures used - * between device and software drivers for communicating Ethernet packets. - */ -/* BD Ring Structures */ -/* - * Description: This structure is used to inform the NIC of a location for and - * an aggregation buffer that will be used for packet data that is received. An - * aggregation buffer creates a different kind of completion operation for a - * packet where a variable number of BDs may be used to place the packet in the - * host. RX Rings that have aggregation buffers are known as aggregation rings - * and must contain only aggregation buffers. - */ -/* - * Note: BD Ring structures are written by the driver to TX Rings and RX Rings - * to indicate to the chip there is more buffer space in the host that needs to - * be transmitted or is available for receive data. - */ -/* BD Base (8 bytes) */ +/* This is the HWRM command header. */ +/* hwrm_cmd_hdr (size:128b/16B) */ -struct bd_base { - uint8_t type; - /* This value identifies the type of buffer descriptor. */ - #define BD_BASE_TYPE_MASK UINT32_C(0x3f) - #define BD_BASE_TYPE_SFT 0 +typedef struct hwrm_cmd_hdr { + /* The HWRM command request type. */ + uint16_t req_type; /* - * Indicates that this BD is 16B long and is used for normal L2 - * packet transmission. + * The completion ring to send the completion event on. This should + * be the NQ ID returned from the `nq_alloc` HWRM command. */ - #define BD_BASE_TYPE_TX_BD_SHORT UINT32_C(0x0) + uint16_t cmpl_ring; /* - * Indicates that this BD is 1BB long and is an empty TX BD. Not - * valid for use by the driver. + * The sequence ID is used by the driver for tracking multiple + * commands. This ID is treated as opaque data by the firmware and + * the value is returned in the `hwrm_resp_hdr` upon completion. */ - #define BD_BASE_TYPE_TX_BD_EMPTY UINT32_C(0x1) + uint16_t seq_id; /* - * Indicates that this BD is 16B long and is an RX Producer (ie. - * empty) buffer descriptor. + * The target ID of the command: + * * 0x0-0xFFF8 - The function ID + * * 0xFFF8-0xFFFC, 0xFFFE - Reserved for internal processors + * * 0xFFFD - Reserved for user-space HWRM interface + * * 0xFFFF - HWRM */ - #define BD_BASE_TYPE_RX_PROD_PKT UINT32_C(0x4) + uint16_t target_id; /* - * Indicates that this BD is 16B long and is an RX Producer - * Buffer BD. + * A physical address pointer pointing to a host buffer that the + * command's response data will be written. This can be either a host + * physical address (HPA) or a guest physical address (GPA) and must + * point to a physically contiguous block of memory. */ - #define BD_BASE_TYPE_RX_PROD_BFR UINT32_C(0x5) + uint64_t resp_addr; +} hwrm_cmd_hdr_t, *phwrm_cmd_hdr_t; + +/* This is the HWRM response header. */ +/* hwrm_resp_hdr (size:64b/8B) */ + +typedef struct hwrm_resp_hdr { + /* The specific error status for the command. */ + uint16_t error_code; + /* The HWRM command request type. */ + uint16_t req_type; + /* The sequence ID from the original command. */ + uint16_t seq_id; + /* The length of the response data in number of bytes. */ + uint16_t resp_len; +} hwrm_resp_hdr_t, *phwrm_resp_hdr_t; + +/* + * TLV encapsulated message. Use the TLV type field of the + * TLV to determine the type of message encapsulated. + */ +#define CMD_DISCR_TLV_ENCAP UINT32_C(0x8000) +#define CMD_DISCR_LAST CMD_DISCR_TLV_ENCAP + + +/* HWRM request message */ +#define TLV_TYPE_HWRM_REQUEST UINT32_C(0x1) +/* HWRM response message */ +#define TLV_TYPE_HWRM_RESPONSE UINT32_C(0x2) +/* RoCE slow path command */ +#define TLV_TYPE_ROCE_SP_COMMAND UINT32_C(0x3) +/* RoCE slow path command to query CC Gen1 support. */ +#define TLV_TYPE_QUERY_ROCE_CC_GEN1 UINT32_C(0x4) +/* RoCE slow path command to modify CC Gen1 support. */ +#define TLV_TYPE_MODIFY_ROCE_CC_GEN1 UINT32_C(0x5) +/* Engine CKV - The Alias key EC curve and ECC public key information. */ +#define TLV_TYPE_ENGINE_CKV_ALIAS_ECC_PUBLIC_KEY UINT32_C(0x8001) +/* Engine CKV - Initialization vector. */ +#define TLV_TYPE_ENGINE_CKV_IV UINT32_C(0x8003) +/* Engine CKV - Authentication tag. */ +#define TLV_TYPE_ENGINE_CKV_AUTH_TAG UINT32_C(0x8004) +/* Engine CKV - The encrypted data. */ +#define TLV_TYPE_ENGINE_CKV_CIPHERTEXT UINT32_C(0x8005) +/* Engine CKV - Supported host_algorithms. */ +#define TLV_TYPE_ENGINE_CKV_HOST_ALGORITHMS UINT32_C(0x8006) +/* Engine CKV - The Host EC curve name and ECC public key information. */ +#define TLV_TYPE_ENGINE_CKV_HOST_ECC_PUBLIC_KEY UINT32_C(0x8007) +/* Engine CKV - The ECDSA signature. */ +#define TLV_TYPE_ENGINE_CKV_ECDSA_SIGNATURE UINT32_C(0x8008) +/* Engine CKV - The firmware EC curve name and ECC public key information. */ +#define TLV_TYPE_ENGINE_CKV_FW_ECC_PUBLIC_KEY UINT32_C(0x8009) +/* Engine CKV - Supported firmware algorithms. */ +#define TLV_TYPE_ENGINE_CKV_FW_ALGORITHMS UINT32_C(0x800a) +#define TLV_TYPE_LAST TLV_TYPE_ENGINE_CKV_FW_ALGORITHMS + + +/* tlv (size:64b/8B) */ + +typedef struct tlv { + /* + * The command discriminator is used to differentiate between various + * types of HWRM messages. This includes legacy HWRM and RoCE slowpath + * command messages as well as newer TLV encapsulated HWRM commands. + * + * For TLV encapsulated messages this field must be 0x8000. + */ + uint16_t cmd_discr; + uint8_t reserved_8b; + uint8_t flags; + /* + * Indicates the presence of additional TLV encapsulated data + * follows this TLV. + */ + #define TLV_FLAGS_MORE UINT32_C(0x1) + /* Last TLV in a sequence of TLVs. */ + #define TLV_FLAGS_MORE_LAST UINT32_C(0x0) + /* More TLVs follow this TLV. */ + #define TLV_FLAGS_MORE_NOT_LAST UINT32_C(0x1) + /* + * When an HWRM receiver detects a TLV type that it does not + * support with the TLV required flag set, the receiver must + * reject the HWRM message with an error code indicating an + * unsupported TLV type. + */ + #define TLV_FLAGS_REQUIRED UINT32_C(0x2) + /* No */ + #define TLV_FLAGS_REQUIRED_NO (UINT32_C(0x0) << 1) + /* Yes */ + #define TLV_FLAGS_REQUIRED_YES (UINT32_C(0x1) << 1) + #define TLV_FLAGS_REQUIRED_LAST TLV_FLAGS_REQUIRED_YES + /* + * This field defines the TLV type value which is divided into + * two ranges to differentiate between global and local TLV types. + * Global TLV types must be unique across all defined TLV types. + * Local TLV types are valid only for extensions to a given + * HWRM message and may be repeated across different HWRM message + * types. There is a direct correlation of each HWRM message type + * to a single global TLV type value. + * + * Global TLV range: `0 - (63k-1)` + * + * Local TLV range: `63k - (64k-1)` + */ + uint16_t tlv_type; + /* + * Length of the message data encapsulated by this TLV in bytes. + * This length does not include the size of the TLV header itself + * and it must be an integer multiple of 8B. + */ + uint16_t length; +} tlv_t, *ptlv_t; + +/* Input */ +/* input (size:128b/16B) */ + +typedef struct input { + /* + * This value indicates what type of request this is. The format + * for the rest of the command is determined by this field. + */ + uint16_t req_type; + /* + * This value indicates the what completion ring the request will + * be optionally completed on. If the value is -1, then no + * CR completion will be generated. Any other value must be a + * valid CR ring_id value for this function. + */ + uint16_t cmpl_ring; + /* This value indicates the command sequence number. */ + uint16_t seq_id; /* - * Indicates that this BD is 16B long and is an RX Producer - * Assembly Buffer Descriptor. + * Target ID of this command. + * + * 0x0 - 0xFFF8 - Used for function ids + * 0xFFF8 - 0xFFFE - Reserved for internal processors + * 0xFFFF - HWRM */ - #define BD_BASE_TYPE_RX_PROD_AGG UINT32_C(0x6) + uint16_t target_id; /* - * Indicates that this BD is 32B long and is used for normal L2 - * packet transmission. + * This is the host address where the response will be written + * when the request is complete. This area must be 16B aligned + * and must be cleared to zero before the request is made. */ - #define BD_BASE_TYPE_TX_BD_LONG UINT32_C(0x10) - uint8_t unused_1[7]; -} __attribute__((packed)); + uint64_t resp_addr; +} input_t, *pinput_t; -/* Short TX BD (16 bytes) */ +/* Output */ +/* output (size:64b/8B) */ -struct tx_bd_short { - uint16_t flags_type; +typedef struct output { /* - * All bits in this field must be valid on the first BD of a packet. - * Only the packet_end bit must be valid for the remaining BDs of a - * packet. + * Pass/Fail or error type + * + * Note: receiver to verify the in parameters, and fail the call + * with an error when appropriate */ - /* This value identifies the type of buffer descriptor. */ - #define TX_BD_SHORT_TYPE_MASK UINT32_C(0x3f) - #define TX_BD_SHORT_TYPE_SFT 0 + uint16_t error_code; + /* This field returns the type of original request. */ + uint16_t req_type; + /* This field provides original sequence number of the command. */ + uint16_t seq_id; /* - * Indicates that this BD is 16B long and is used for normal L2 - * packet transmission. + * This field is the length of the response in bytes. The + * last byte of the response is a valid flag that will read + * as '1' when the command has been completely written to + * memory. */ - #define TX_BD_SHORT_TYPE_TX_BD_SHORT UINT32_C(0x0) + uint16_t resp_len; +} output_t, *poutput_t; + +/* Short Command Structure */ +/* hwrm_short_input (size:128b/16B) */ + +typedef struct hwrm_short_input { /* - * If set to 1, the packet ends with the data in the buffer pointed to - * by this descriptor. This flag must be valid on every BD. + * This field indicates the type of request in the request buffer. + * The format for the rest of the command (request) is determined + * by this field. */ - #define TX_BD_SHORT_FLAGS_PACKET_END UINT32_C(0x40) + uint16_t req_type; /* - * If set to 1, the device will not generate a completion for this - * transmit packet unless there is an error in it's processing. If this - * bit is set to 0, then the packet will be completed normally. This bit - * must be valid only on the first BD of a packet. + * This field indicates a signature that is used to identify short + * form of the command listed here. This field shall be set to + * 17185 (0x4321). */ - #define TX_BD_SHORT_FLAGS_NO_CMPL UINT32_C(0x80) + uint16_t signature; + /* Signature indicating this is a short form of HWRM command */ + #define HWRM_SHORT_INPUT_SIGNATURE_SHORT_CMD UINT32_C(0x4321) + #define HWRM_SHORT_INPUT_SIGNATURE_LAST HWRM_SHORT_INPUT_SIGNATURE_SHORT_CMD + /* The target ID of the command */ + uint16_t target_id; + /* Default target_id (0x0) to maintain compatibility with old driver */ + #define HWRM_SHORT_INPUT_TARGET_ID_DEFAULT UINT32_C(0x0) + /* Reserved for user-space HWRM interface */ + #define HWRM_SHORT_INPUT_TARGET_ID_TOOLS UINT32_C(0xfffd) + #define HWRM_SHORT_INPUT_TARGET_ID_LAST HWRM_SHORT_INPUT_TARGET_ID_TOOLS + /* This value indicates the length of the request. */ + uint16_t size; /* - * This value indicates how many 16B BD locations are consumed in the - * ring by this packet. A value of 1 indicates that this BD is the only - * BD (and that the it is a short BD). A value of 3 indicates either 3 - * short BDs or 1 long BD and one short BD in the packet. A value of 0 - * indicates that there are 32 BD locations in the packet (the maximum). - * This field is valid only on the first BD of a packet. + * This is the host address where the request was written. + * This area must be 16B aligned. */ - #define TX_BD_SHORT_FLAGS_BD_CNT_MASK UINT32_C(0x1f00) - #define TX_BD_SHORT_FLAGS_BD_CNT_SFT 8 + uint64_t req_addr; +} hwrm_short_input_t, *phwrm_short_input_t; + +#define GET_HWRM_REQ_TYPE(x) \ + (((x) < 0x80) ? \ + ((x) == 0x0 ? "HWRM_VER_GET": \ + ((x) == 0xb ? "HWRM_FUNC_ECHO_RESPONSE": \ + ((x) == 0xc ? "HWRM_ERROR_RECOVERY_QCFG": \ + ((x) == 0xd ? "HWRM_FUNC_DRV_IF_CHANGE": \ + ((x) == 0xe ? "HWRM_FUNC_BUF_UNRGTR": \ + ((x) == 0xf ? "HWRM_FUNC_VF_CFG": \ + ((x) == 0x10 ? "HWRM_RESERVED1": \ + ((x) == 0x11 ? "HWRM_FUNC_RESET": \ + ((x) == 0x12 ? "HWRM_FUNC_GETFID": \ + ((x) == 0x13 ? "HWRM_FUNC_VF_ALLOC": \ + ((x) == 0x14 ? "HWRM_FUNC_VF_FREE": \ + ((x) == 0x15 ? "HWRM_FUNC_QCAPS": \ + ((x) == 0x16 ? "HWRM_FUNC_QCFG": \ + ((x) == 0x17 ? "HWRM_FUNC_CFG": \ + ((x) == 0x18 ? "HWRM_FUNC_QSTATS": \ + ((x) == 0x19 ? "HWRM_FUNC_CLR_STATS": \ + ((x) == 0x1a ? "HWRM_FUNC_DRV_UNRGTR": \ + ((x) == 0x1b ? "HWRM_FUNC_VF_RESC_FREE": \ + ((x) == 0x1c ? "HWRM_FUNC_VF_VNIC_IDS_QUERY": \ + ((x) == 0x1d ? "HWRM_FUNC_DRV_RGTR": \ + ((x) == 0x1e ? "HWRM_FUNC_DRV_QVER": \ + ((x) == 0x1f ? "HWRM_FUNC_BUF_RGTR": \ + ((x) == 0x20 ? "HWRM_PORT_PHY_CFG": \ + ((x) == 0x21 ? "HWRM_PORT_MAC_CFG": \ + ((x) == 0x22 ? "HWRM_PORT_TS_QUERY": \ + ((x) == 0x23 ? "HWRM_PORT_QSTATS": \ + ((x) == 0x24 ? "HWRM_PORT_LPBK_QSTATS": \ + ((x) == 0x25 ? "HWRM_PORT_CLR_STATS": \ + ((x) == 0x26 ? "HWRM_PORT_LPBK_CLR_STATS": \ + ((x) == 0x27 ? "HWRM_PORT_PHY_QCFG": \ + ((x) == 0x28 ? "HWRM_PORT_MAC_QCFG": \ + ((x) == 0x29 ? "HWRM_PORT_MAC_PTP_QCFG": \ + ((x) == 0x2a ? "HWRM_PORT_PHY_QCAPS": \ + ((x) == 0x2b ? "HWRM_PORT_PHY_I2C_WRITE": \ + ((x) == 0x2c ? "HWRM_PORT_PHY_I2C_READ": \ + ((x) == 0x2d ? "HWRM_PORT_LED_CFG": \ + ((x) == 0x2e ? "HWRM_PORT_LED_QCFG": \ + ((x) == 0x2f ? "HWRM_PORT_LED_QCAPS": \ + ((x) == 0x30 ? "HWRM_QUEUE_QPORTCFG": \ + ((x) == 0x31 ? "HWRM_QUEUE_QCFG": \ + ((x) == 0x32 ? "HWRM_QUEUE_CFG": \ + ((x) == 0x33 ? "HWRM_FUNC_VLAN_CFG": \ + ((x) == 0x34 ? "HWRM_FUNC_VLAN_QCFG": \ + ((x) == 0x35 ? "HWRM_QUEUE_PFCENABLE_QCFG": \ + ((x) == 0x36 ? "HWRM_QUEUE_PFCENABLE_CFG": \ + ((x) == 0x37 ? "HWRM_QUEUE_PRI2COS_QCFG": \ + ((x) == 0x38 ? "HWRM_QUEUE_PRI2COS_CFG": \ + ((x) == 0x39 ? "HWRM_QUEUE_COS2BW_QCFG": \ + ((x) == 0x3a ? "HWRM_QUEUE_COS2BW_CFG": \ + ((x) == 0x3b ? "HWRM_QUEUE_DSCP_QCAPS": \ + ((x) == 0x3c ? "HWRM_QUEUE_DSCP2PRI_QCFG": \ + ((x) == 0x3d ? "HWRM_QUEUE_DSCP2PRI_CFG": \ + ((x) == 0x40 ? "HWRM_VNIC_ALLOC": \ + ((x) == 0x41 ? "HWRM_VNIC_FREE": \ + ((x) == 0x42 ? "HWRM_VNIC_CFG": \ + ((x) == 0x43 ? "HWRM_VNIC_QCFG": \ + ((x) == 0x44 ? "HWRM_VNIC_TPA_CFG": \ + ((x) == 0x45 ? "HWRM_VNIC_TPA_QCFG": \ + ((x) == 0x46 ? "HWRM_VNIC_RSS_CFG": \ + ((x) == 0x47 ? "HWRM_VNIC_RSS_QCFG": \ + ((x) == 0x48 ? "HWRM_VNIC_PLCMODES_CFG": \ + ((x) == 0x49 ? "HWRM_VNIC_PLCMODES_QCFG": \ + ((x) == 0x4a ? "HWRM_VNIC_QCAPS": \ + ((x) == 0x4b ? "HWRM_VNIC_UPDATE": \ + ((x) == 0x50 ? "HWRM_RING_ALLOC": \ + ((x) == 0x51 ? "HWRM_RING_FREE": \ + ((x) == 0x52 ? "HWRM_RING_CMPL_RING_QAGGINT_PARAMS": \ + ((x) == 0x53 ? "HWRM_RING_CMPL_RING_CFG_AGGINT_PARAMS": \ + ((x) == 0x54 ? "HWRM_RING_AGGINT_QCAPS": \ + ((x) == 0x55 ? "HWRM_RING_SCHQ_ALLOC": \ + ((x) == 0x56 ? "HWRM_RING_SCHQ_CFG": \ + ((x) == 0x57 ? "HWRM_RING_SCHQ_FREE": \ + ((x) == 0x5e ? "HWRM_RING_RESET": \ + ((x) == 0x60 ? "HWRM_RING_GRP_ALLOC": \ + ((x) == 0x61 ? "HWRM_RING_GRP_FREE": \ + ((x) == 0x62 ? "HWRM_RING_CFG": \ + ((x) == 0x63 ? "HWRM_RING_QCFG": \ + ((x) == 0x64 ? "HWRM_RESERVED5": \ + ((x) == 0x65 ? "HWRM_RESERVED6": \ + ((x) == 0x70 ? "HWRM_VNIC_RSS_COS_LB_CTX_ALLOC": \ + ((x) == 0x71 ? "HWRM_VNIC_RSS_COS_LB_CTX_FREE": \ + "Unknown decode" ))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) : \ + (((x) < 0x100) ? \ + ((x) == 0x80 ? "HWRM_QUEUE_MPLS_QCAPS": \ + ((x) == 0x81 ? "HWRM_QUEUE_MPLSTC2PRI_QCFG": \ + ((x) == 0x82 ? "HWRM_QUEUE_MPLSTC2PRI_CFG": \ + ((x) == 0x83 ? "HWRM_QUEUE_VLANPRI_QCAPS": \ + ((x) == 0x84 ? "HWRM_QUEUE_VLANPRI2PRI_QCFG": \ + ((x) == 0x85 ? "HWRM_QUEUE_VLANPRI2PRI_CFG": \ + ((x) == 0x86 ? "HWRM_QUEUE_GLOBAL_CFG": \ + ((x) == 0x87 ? "HWRM_QUEUE_GLOBAL_QCFG": \ + ((x) == 0x90 ? "HWRM_CFA_L2_FILTER_ALLOC": \ + ((x) == 0x91 ? "HWRM_CFA_L2_FILTER_FREE": \ + ((x) == 0x92 ? "HWRM_CFA_L2_FILTER_CFG": \ + ((x) == 0x93 ? "HWRM_CFA_L2_SET_RX_MASK": \ + ((x) == 0x94 ? "HWRM_CFA_VLAN_ANTISPOOF_CFG": \ + ((x) == 0x95 ? "HWRM_CFA_TUNNEL_FILTER_ALLOC": \ + ((x) == 0x96 ? "HWRM_CFA_TUNNEL_FILTER_FREE": \ + ((x) == 0x97 ? "HWRM_CFA_ENCAP_RECORD_ALLOC": \ + ((x) == 0x98 ? "HWRM_CFA_ENCAP_RECORD_FREE": \ + ((x) == 0x99 ? "HWRM_CFA_NTUPLE_FILTER_ALLOC": \ + ((x) == 0x9a ? "HWRM_CFA_NTUPLE_FILTER_FREE": \ + ((x) == 0x9b ? "HWRM_CFA_NTUPLE_FILTER_CFG": \ + ((x) == 0x9c ? "HWRM_CFA_EM_FLOW_ALLOC": \ + ((x) == 0x9d ? "HWRM_CFA_EM_FLOW_FREE": \ + ((x) == 0x9e ? "HWRM_CFA_EM_FLOW_CFG": \ + ((x) == 0xa0 ? "HWRM_TUNNEL_DST_PORT_QUERY": \ + ((x) == 0xa1 ? "HWRM_TUNNEL_DST_PORT_ALLOC": \ + ((x) == 0xa2 ? "HWRM_TUNNEL_DST_PORT_FREE": \ + ((x) == 0xaf ? "HWRM_STAT_CTX_ENG_QUERY": \ + ((x) == 0xb0 ? "HWRM_STAT_CTX_ALLOC": \ + ((x) == 0xb1 ? "HWRM_STAT_CTX_FREE": \ + ((x) == 0xb2 ? "HWRM_STAT_CTX_QUERY": \ + ((x) == 0xb3 ? "HWRM_STAT_CTX_CLR_STATS": \ + ((x) == 0xb4 ? "HWRM_PORT_QSTATS_EXT": \ + ((x) == 0xb5 ? "HWRM_PORT_PHY_MDIO_WRITE": \ + ((x) == 0xb6 ? "HWRM_PORT_PHY_MDIO_READ": \ + ((x) == 0xb7 ? "HWRM_PORT_PHY_MDIO_BUS_ACQUIRE": \ + ((x) == 0xb8 ? "HWRM_PORT_PHY_MDIO_BUS_RELEASE": \ + ((x) == 0xb9 ? "HWRM_PORT_QSTATS_EXT_PFC_WD": \ + ((x) == 0xba ? "HWRM_RESERVED7": \ + ((x) == 0xbb ? "HWRM_PORT_TX_FIR_CFG": \ + ((x) == 0xbc ? "HWRM_PORT_TX_FIR_QCFG": \ + ((x) == 0xbd ? "HWRM_PORT_ECN_QSTATS": \ + ((x) == 0xbe ? "HWRM_FW_LIVEPATCH_QUERY": \ + ((x) == 0xbf ? "HWRM_FW_LIVEPATCH": \ + ((x) == 0xc0 ? "HWRM_FW_RESET": \ + ((x) == 0xc1 ? "HWRM_FW_QSTATUS": \ + ((x) == 0xc2 ? "HWRM_FW_HEALTH_CHECK": \ + ((x) == 0xc3 ? "HWRM_FW_SYNC": \ + ((x) == 0xc4 ? "HWRM_FW_STATE_QCAPS": \ + ((x) == 0xc5 ? "HWRM_FW_STATE_QUIESCE": \ + ((x) == 0xc6 ? "HWRM_FW_STATE_BACKUP": \ + ((x) == 0xc7 ? "HWRM_FW_STATE_RESTORE": \ + ((x) == 0xc8 ? "HWRM_FW_SET_TIME": \ + ((x) == 0xc9 ? "HWRM_FW_GET_TIME": \ + ((x) == 0xca ? "HWRM_FW_SET_STRUCTURED_DATA": \ + ((x) == 0xcb ? "HWRM_FW_GET_STRUCTURED_DATA": \ + ((x) == 0xcc ? "HWRM_FW_IPC_MAILBOX": \ + ((x) == 0xcd ? "HWRM_FW_ECN_CFG": \ + ((x) == 0xce ? "HWRM_FW_ECN_QCFG": \ + ((x) == 0xcf ? "HWRM_FW_SECURE_CFG": \ + ((x) == 0xd0 ? "HWRM_EXEC_FWD_RESP": \ + ((x) == 0xd1 ? "HWRM_REJECT_FWD_RESP": \ + ((x) == 0xd2 ? "HWRM_FWD_RESP": \ + ((x) == 0xd3 ? "HWRM_FWD_ASYNC_EVENT_CMPL": \ + ((x) == 0xd4 ? "HWRM_OEM_CMD": \ + ((x) == 0xd5 ? "HWRM_PORT_PRBS_TEST": \ + ((x) == 0xd6 ? "HWRM_PORT_SFP_SIDEBAND_CFG": \ + ((x) == 0xd7 ? "HWRM_PORT_SFP_SIDEBAND_QCFG": \ + ((x) == 0xd8 ? "HWRM_FW_STATE_UNQUIESCE": \ + ((x) == 0xd9 ? "HWRM_PORT_DSC_DUMP": \ + ((x) == 0xe0 ? "HWRM_TEMP_MONITOR_QUERY": \ + ((x) == 0xe1 ? "HWRM_REG_POWER_QUERY": \ + ((x) == 0xe2 ? "HWRM_CORE_FREQUENCY_QUERY": \ + ((x) == 0xe3 ? "HWRM_REG_POWER_HISTOGRAM": \ + ((x) == 0xf0 ? "HWRM_WOL_FILTER_ALLOC": \ + ((x) == 0xf1 ? "HWRM_WOL_FILTER_FREE": \ + ((x) == 0xf2 ? "HWRM_WOL_FILTER_QCFG": \ + ((x) == 0xf3 ? "HWRM_WOL_REASON_QCFG": \ + ((x) == 0xf4 ? "HWRM_CFA_METER_QCAPS": \ + ((x) == 0xf5 ? "HWRM_CFA_METER_PROFILE_ALLOC": \ + ((x) == 0xf6 ? "HWRM_CFA_METER_PROFILE_FREE": \ + ((x) == 0xf7 ? "HWRM_CFA_METER_PROFILE_CFG": \ + ((x) == 0xf8 ? "HWRM_CFA_METER_INSTANCE_ALLOC": \ + ((x) == 0xf9 ? "HWRM_CFA_METER_INSTANCE_FREE": \ + ((x) == 0xfa ? "HWRM_CFA_METER_INSTANCE_CFG": \ + ((x) == 0xfd ? "HWRM_CFA_VFR_ALLOC": \ + ((x) == 0xfe ? "HWRM_CFA_VFR_FREE": \ + "Unknown decode" )))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) : \ + (((x) < 0x180) ? \ + ((x) == 0x100 ? "HWRM_CFA_VF_PAIR_ALLOC": \ + ((x) == 0x101 ? "HWRM_CFA_VF_PAIR_FREE": \ + ((x) == 0x102 ? "HWRM_CFA_VF_PAIR_INFO": \ + ((x) == 0x103 ? "HWRM_CFA_FLOW_ALLOC": \ + ((x) == 0x104 ? "HWRM_CFA_FLOW_FREE": \ + ((x) == 0x105 ? "HWRM_CFA_FLOW_FLUSH": \ + ((x) == 0x106 ? "HWRM_CFA_FLOW_STATS": \ + ((x) == 0x107 ? "HWRM_CFA_FLOW_INFO": \ + ((x) == 0x108 ? "HWRM_CFA_DECAP_FILTER_ALLOC": \ + ((x) == 0x109 ? "HWRM_CFA_DECAP_FILTER_FREE": \ + ((x) == 0x10a ? "HWRM_CFA_VLAN_ANTISPOOF_QCFG": \ + ((x) == 0x10b ? "HWRM_CFA_REDIRECT_TUNNEL_TYPE_ALLOC": \ + ((x) == 0x10c ? "HWRM_CFA_REDIRECT_TUNNEL_TYPE_FREE": \ + ((x) == 0x10d ? "HWRM_CFA_PAIR_ALLOC": \ + ((x) == 0x10e ? "HWRM_CFA_PAIR_FREE": \ + ((x) == 0x10f ? "HWRM_CFA_PAIR_INFO": \ + ((x) == 0x110 ? "HWRM_FW_IPC_MSG": \ + ((x) == 0x111 ? "HWRM_CFA_REDIRECT_TUNNEL_TYPE_INFO": \ + ((x) == 0x112 ? "HWRM_CFA_REDIRECT_QUERY_TUNNEL_TYPE": \ + ((x) == 0x113 ? "HWRM_CFA_FLOW_AGING_TIMER_RESET": \ + ((x) == 0x114 ? "HWRM_CFA_FLOW_AGING_CFG": \ + ((x) == 0x115 ? "HWRM_CFA_FLOW_AGING_QCFG": \ + ((x) == 0x116 ? "HWRM_CFA_FLOW_AGING_QCAPS": \ + ((x) == 0x117 ? "HWRM_CFA_CTX_MEM_RGTR": \ + ((x) == 0x118 ? "HWRM_CFA_CTX_MEM_UNRGTR": \ + ((x) == 0x119 ? "HWRM_CFA_CTX_MEM_QCTX": \ + ((x) == 0x11a ? "HWRM_CFA_CTX_MEM_QCAPS": \ + ((x) == 0x11b ? "HWRM_CFA_COUNTER_QCAPS": \ + ((x) == 0x11c ? "HWRM_CFA_COUNTER_CFG": \ + ((x) == 0x11d ? "HWRM_CFA_COUNTER_QCFG": \ + ((x) == 0x11e ? "HWRM_CFA_COUNTER_QSTATS": \ + ((x) == 0x11f ? "HWRM_CFA_TCP_FLAG_PROCESS_QCFG": \ + ((x) == 0x120 ? "HWRM_CFA_EEM_QCAPS": \ + ((x) == 0x121 ? "HWRM_CFA_EEM_CFG": \ + ((x) == 0x122 ? "HWRM_CFA_EEM_QCFG": \ + ((x) == 0x123 ? "HWRM_CFA_EEM_OP": \ + ((x) == 0x124 ? "HWRM_CFA_ADV_FLOW_MGNT_QCAPS": \ + ((x) == 0x125 ? "HWRM_CFA_TFLIB": \ + ((x) == 0x126 ? "HWRM_CFA_LAG_GROUP_MEMBER_RGTR": \ + ((x) == 0x127 ? "HWRM_CFA_LAG_GROUP_MEMBER_UNRGTR": \ + ((x) == 0x12e ? "HWRM_ENGINE_CKV_STATUS": \ + ((x) == 0x12f ? "HWRM_ENGINE_CKV_CKEK_ADD": \ + ((x) == 0x130 ? "HWRM_ENGINE_CKV_CKEK_DELETE": \ + ((x) == 0x131 ? "HWRM_ENGINE_CKV_KEY_ADD": \ + ((x) == 0x132 ? "HWRM_ENGINE_CKV_KEY_DELETE": \ + ((x) == 0x133 ? "HWRM_ENGINE_CKV_FLUSH": \ + ((x) == 0x134 ? "HWRM_ENGINE_CKV_RNG_GET": \ + ((x) == 0x135 ? "HWRM_ENGINE_CKV_KEY_GEN": \ + ((x) == 0x136 ? "HWRM_ENGINE_CKV_KEY_LABEL_CFG": \ + ((x) == 0x137 ? "HWRM_ENGINE_CKV_KEY_LABEL_QCFG": \ + ((x) == 0x13c ? "HWRM_ENGINE_QG_CONFIG_QUERY": \ + ((x) == 0x13d ? "HWRM_ENGINE_QG_QUERY": \ + ((x) == 0x13e ? "HWRM_ENGINE_QG_METER_PROFILE_CONFIG_QUERY": \ + ((x) == 0x13f ? "HWRM_ENGINE_QG_METER_PROFILE_QUERY": \ + ((x) == 0x140 ? "HWRM_ENGINE_QG_METER_PROFILE_ALLOC": \ + ((x) == 0x141 ? "HWRM_ENGINE_QG_METER_PROFILE_FREE": \ + ((x) == 0x142 ? "HWRM_ENGINE_QG_METER_QUERY": \ + ((x) == 0x143 ? "HWRM_ENGINE_QG_METER_BIND": \ + ((x) == 0x144 ? "HWRM_ENGINE_QG_METER_UNBIND": \ + ((x) == 0x145 ? "HWRM_ENGINE_QG_FUNC_BIND": \ + ((x) == 0x146 ? "HWRM_ENGINE_SG_CONFIG_QUERY": \ + ((x) == 0x147 ? "HWRM_ENGINE_SG_QUERY": \ + ((x) == 0x148 ? "HWRM_ENGINE_SG_METER_QUERY": \ + ((x) == 0x149 ? "HWRM_ENGINE_SG_METER_CONFIG": \ + ((x) == 0x14a ? "HWRM_ENGINE_SG_QG_BIND": \ + ((x) == 0x14b ? "HWRM_ENGINE_QG_SG_UNBIND": \ + ((x) == 0x154 ? "HWRM_ENGINE_CONFIG_QUERY": \ + ((x) == 0x155 ? "HWRM_ENGINE_STATS_CONFIG": \ + ((x) == 0x156 ? "HWRM_ENGINE_STATS_CLEAR": \ + ((x) == 0x157 ? "HWRM_ENGINE_STATS_QUERY": \ + ((x) == 0x158 ? "HWRM_ENGINE_STATS_QUERY_CONTINUOUS_ERROR": \ + ((x) == 0x15e ? "HWRM_ENGINE_RQ_ALLOC": \ + ((x) == 0x15f ? "HWRM_ENGINE_RQ_FREE": \ + ((x) == 0x160 ? "HWRM_ENGINE_CQ_ALLOC": \ + ((x) == 0x161 ? "HWRM_ENGINE_CQ_FREE": \ + ((x) == 0x162 ? "HWRM_ENGINE_NQ_ALLOC": \ + ((x) == 0x163 ? "HWRM_ENGINE_NQ_FREE": \ + ((x) == 0x164 ? "HWRM_ENGINE_ON_DIE_RQE_CREDITS": \ + ((x) == 0x165 ? "HWRM_ENGINE_FUNC_QCFG": \ + "Unknown decode" ))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) : \ + (((x) < 0x200) ? \ + ((x) == 0x190 ? "HWRM_FUNC_RESOURCE_QCAPS": \ + ((x) == 0x191 ? "HWRM_FUNC_VF_RESOURCE_CFG": \ + ((x) == 0x192 ? "HWRM_FUNC_BACKING_STORE_QCAPS": \ + ((x) == 0x193 ? "HWRM_FUNC_BACKING_STORE_CFG": \ + ((x) == 0x194 ? "HWRM_FUNC_BACKING_STORE_QCFG": \ + ((x) == 0x195 ? "HWRM_FUNC_VF_BW_CFG": \ + ((x) == 0x196 ? "HWRM_FUNC_VF_BW_QCFG": \ + ((x) == 0x197 ? "HWRM_FUNC_HOST_PF_IDS_QUERY": \ + ((x) == 0x198 ? "HWRM_FUNC_QSTATS_EXT": \ + ((x) == 0x199 ? "HWRM_STAT_EXT_CTX_QUERY": \ + ((x) == 0x19a ? "HWRM_FUNC_SPD_CFG": \ + ((x) == 0x19b ? "HWRM_FUNC_SPD_QCFG": \ + ((x) == 0x19c ? "HWRM_FUNC_PTP_PIN_QCFG": \ + ((x) == 0x19d ? "HWRM_FUNC_PTP_PIN_CFG": \ + ((x) == 0x19e ? "HWRM_FUNC_PTP_CFG": \ + ((x) == 0x19f ? "HWRM_FUNC_PTP_TS_QUERY": \ + "Unknown decode" )))))))))))))))) : \ + (((x) < 0x280) ? \ + ((x) == 0x200 ? "HWRM_SELFTEST_QLIST": \ + ((x) == 0x201 ? "HWRM_SELFTEST_EXEC": \ + ((x) == 0x202 ? "HWRM_SELFTEST_IRQ": \ + ((x) == 0x203 ? "HWRM_SELFTEST_RETRIEVE_SERDES_DATA": \ + ((x) == 0x204 ? "HWRM_PCIE_QSTATS": \ + ((x) == 0x205 ? "HWRM_MFG_FRU_WRITE_CONTROL": \ + ((x) == 0x206 ? "HWRM_MFG_TIMERS_QUERY": \ + ((x) == 0x207 ? "HWRM_MFG_OTP_CFG": \ + ((x) == 0x208 ? "HWRM_MFG_OTP_QCFG": \ + ((x) == 0x209 ? "HWRM_MFG_HDMA_TEST": \ + ((x) == 0x20a ? "HWRM_MFG_FRU_EEPROM_WRITE": \ + ((x) == 0x20b ? "HWRM_MFG_FRU_EEPROM_READ": \ + ((x) == 0x20c ? "HWRM_MFG_SOC_IMAGE": \ + ((x) == 0x20d ? "HWRM_MFG_SOC_QSTATUS": \ + ((x) == 0x20e ? "HWRM_MFG_PARAM_SEEPROM_SYNC": \ + ((x) == 0x20f ? "HWRM_MFG_PARAM_SEEPROM_READ": \ + ((x) == 0x210 ? "HWRM_MFG_PARAM_SEEPROM_HEALTH": \ + "Unknown decode" ))))))))))))))))) : \ + (((x) < 0x300) ? \ + ((x) == 0x2bc ? "HWRM_TF": \ + ((x) == 0x2bd ? "HWRM_TF_VERSION_GET": \ + ((x) == 0x2c6 ? "HWRM_TF_SESSION_OPEN": \ + ((x) == 0x2c7 ? "HWRM_TF_SESSION_ATTACH": \ + ((x) == 0x2c8 ? "HWRM_TF_SESSION_REGISTER": \ + ((x) == 0x2c9 ? "HWRM_TF_SESSION_UNREGISTER": \ + ((x) == 0x2ca ? "HWRM_TF_SESSION_CLOSE": \ + ((x) == 0x2cb ? "HWRM_TF_SESSION_QCFG": \ + ((x) == 0x2cc ? "HWRM_TF_SESSION_RESC_QCAPS": \ + ((x) == 0x2cd ? "HWRM_TF_SESSION_RESC_ALLOC": \ + ((x) == 0x2ce ? "HWRM_TF_SESSION_RESC_FREE": \ + ((x) == 0x2cf ? "HWRM_TF_SESSION_RESC_FLUSH": \ + ((x) == 0x2d0 ? "HWRM_TF_SESSION_RESC_INFO": \ + ((x) == 0x2da ? "HWRM_TF_TBL_TYPE_GET": \ + ((x) == 0x2db ? "HWRM_TF_TBL_TYPE_SET": \ + ((x) == 0x2dc ? "HWRM_TF_TBL_TYPE_BULK_GET": \ + ((x) == 0x2e2 ? "HWRM_TF_CTXT_MEM_ALLOC": \ + ((x) == 0x2e3 ? "HWRM_TF_CTXT_MEM_FREE": \ + ((x) == 0x2e4 ? "HWRM_TF_CTXT_MEM_RGTR": \ + ((x) == 0x2e5 ? "HWRM_TF_CTXT_MEM_UNRGTR": \ + ((x) == 0x2e6 ? "HWRM_TF_EXT_EM_QCAPS": \ + ((x) == 0x2e7 ? "HWRM_TF_EXT_EM_OP": \ + ((x) == 0x2e8 ? "HWRM_TF_EXT_EM_CFG": \ + ((x) == 0x2e9 ? "HWRM_TF_EXT_EM_QCFG": \ + ((x) == 0x2ea ? "HWRM_TF_EM_INSERT": \ + ((x) == 0x2eb ? "HWRM_TF_EM_DELETE": \ + ((x) == 0x2ec ? "HWRM_TF_EM_HASH_INSERT": \ + ((x) == 0x2ed ? "HWRM_TF_EM_MOVE": \ + ((x) == 0x2f8 ? "HWRM_TF_TCAM_SET": \ + ((x) == 0x2f9 ? "HWRM_TF_TCAM_GET": \ + ((x) == 0x2fa ? "HWRM_TF_TCAM_MOVE": \ + ((x) == 0x2fb ? "HWRM_TF_TCAM_FREE": \ + ((x) == 0x2fc ? "HWRM_TF_GLOBAL_CFG_SET": \ + ((x) == 0x2fd ? "HWRM_TF_GLOBAL_CFG_GET": \ + ((x) == 0x2fe ? "HWRM_TF_IF_TBL_SET": \ + ((x) == 0x2ff ? "HWRM_TF_IF_TBL_GET": \ + "Unknown decode" )))))))))))))))))))))))))))))))))))) : \ + (((x) < 0x480) ? \ + ((x) == 0x400 ? "HWRM_SV": \ + "Unknown decode" ) : \ + (((x) < 0xff80) ? \ + ((x) == 0xff10 ? "HWRM_DBG_READ_DIRECT": \ + ((x) == 0xff11 ? "HWRM_DBG_READ_INDIRECT": \ + ((x) == 0xff12 ? "HWRM_DBG_WRITE_DIRECT": \ + ((x) == 0xff13 ? "HWRM_DBG_WRITE_INDIRECT": \ + ((x) == 0xff14 ? "HWRM_DBG_DUMP": \ + ((x) == 0xff15 ? "HWRM_DBG_ERASE_NVM": \ + ((x) == 0xff16 ? "HWRM_DBG_CFG": \ + ((x) == 0xff17 ? "HWRM_DBG_COREDUMP_LIST": \ + ((x) == 0xff18 ? "HWRM_DBG_COREDUMP_INITIATE": \ + ((x) == 0xff19 ? "HWRM_DBG_COREDUMP_RETRIEVE": \ + ((x) == 0xff1a ? "HWRM_DBG_FW_CLI": \ + ((x) == 0xff1b ? "HWRM_DBG_I2C_CMD": \ + ((x) == 0xff1c ? "HWRM_DBG_RING_INFO_GET": \ + ((x) == 0xff1d ? "HWRM_DBG_CRASHDUMP_HEADER": \ + ((x) == 0xff1e ? "HWRM_DBG_CRASHDUMP_ERASE": \ + ((x) == 0xff1f ? "HWRM_DBG_DRV_TRACE": \ + ((x) == 0xff20 ? "HWRM_DBG_QCAPS": \ + ((x) == 0xff21 ? "HWRM_DBG_QCFG": \ + ((x) == 0xff22 ? "HWRM_DBG_CRASHDUMP_MEDIUM_CFG": \ + ((x) == 0xff23 ? "HWRM_DBG_USEQ_ALLOC": \ + ((x) == 0xff24 ? "HWRM_DBG_USEQ_FREE": \ + ((x) == 0xff25 ? "HWRM_DBG_USEQ_FLUSH": \ + ((x) == 0xff26 ? "HWRM_DBG_USEQ_QCAPS": \ + ((x) == 0xff27 ? "HWRM_DBG_USEQ_CW_CFG": \ + ((x) == 0xff28 ? "HWRM_DBG_USEQ_SCHED_CFG": \ + ((x) == 0xff29 ? "HWRM_DBG_USEQ_RUN": \ + ((x) == 0xff2a ? "HWRM_DBG_USEQ_DELIVERY_REQ": \ + ((x) == 0xff2b ? "HWRM_DBG_USEQ_RESP_HDR": \ + "Unknown decode" )))))))))))))))))))))))))))) : \ + (((x) <= 0xffff) ? \ + ((x) == 0xffed ? "HWRM_NVM_REQ_ARBITRATION": \ + ((x) == 0xffee ? "HWRM_NVM_FACTORY_DEFAULTS": \ + ((x) == 0xffef ? "HWRM_NVM_VALIDATE_OPTION": \ + ((x) == 0xfff0 ? "HWRM_NVM_FLUSH": \ + ((x) == 0xfff1 ? "HWRM_NVM_GET_VARIABLE": \ + ((x) == 0xfff2 ? "HWRM_NVM_SET_VARIABLE": \ + ((x) == 0xfff3 ? "HWRM_NVM_INSTALL_UPDATE": \ + ((x) == 0xfff4 ? "HWRM_NVM_MODIFY": \ + ((x) == 0xfff5 ? "HWRM_NVM_VERIFY_UPDATE": \ + ((x) == 0xfff6 ? "HWRM_NVM_GET_DEV_INFO": \ + ((x) == 0xfff7 ? "HWRM_NVM_ERASE_DIR_ENTRY": \ + ((x) == 0xfff8 ? "HWRM_NVM_MOD_DIR_ENTRY": \ + ((x) == 0xfff9 ? "HWRM_NVM_FIND_DIR_ENTRY": \ + ((x) == 0xfffa ? "HWRM_NVM_GET_DIR_ENTRIES": \ + ((x) == 0xfffb ? "HWRM_NVM_GET_DIR_INFO": \ + ((x) == 0xfffc ? "HWRM_NVM_RAW_DUMP": \ + ((x) == 0xfffd ? "HWRM_NVM_READ": \ + ((x) == 0xfffe ? "HWRM_NVM_WRITE": \ + ((x) == 0xffff ? "HWRM_NVM_RAW_WRITE_BLK": \ + "Unknown decode" ))))))))))))))))))) : \ + "Unknown decode" ))))))))) + + +/* + * Command numbering + * # NOTE - definitions already in hwrm_req_type, in hwrm_types.yaml + * # So only structure definition is provided here. + */ +/* cmd_nums (size:64b/8B) */ + +typedef struct cmd_nums { + /* + * This version of the specification defines the commands listed in + * the table below. The following are general implementation + * requirements for these commands: + * + * # All commands listed below that are marked neither + * reserved nor experimental shall be implemented by the HWRM. + * # A HWRM client compliant to this specification should not use + * commands outside of the list below. + * # A HWRM client compliant to this specification should not use + * command numbers marked reserved below. + * # A command marked experimental below may not be implemented + * by the HWRM. + * # A command marked experimental may change in the + * future version of the HWRM specification. + * # A command not listed below may be implemented by the HWRM. + * The behavior of commands that are not listed below is outside + * the scope of this specification. + */ + uint16_t req_type; + #define HWRM_VER_GET UINT32_C(0x0) + #define HWRM_FUNC_ECHO_RESPONSE UINT32_C(0xb) + #define HWRM_ERROR_RECOVERY_QCFG UINT32_C(0xc) + #define HWRM_FUNC_DRV_IF_CHANGE UINT32_C(0xd) + #define HWRM_FUNC_BUF_UNRGTR UINT32_C(0xe) + #define HWRM_FUNC_VF_CFG UINT32_C(0xf) + /* Reserved for future use. */ + #define HWRM_RESERVED1 UINT32_C(0x10) + #define HWRM_FUNC_RESET UINT32_C(0x11) + #define HWRM_FUNC_GETFID UINT32_C(0x12) + #define HWRM_FUNC_VF_ALLOC UINT32_C(0x13) + #define HWRM_FUNC_VF_FREE UINT32_C(0x14) + #define HWRM_FUNC_QCAPS UINT32_C(0x15) + #define HWRM_FUNC_QCFG UINT32_C(0x16) + #define HWRM_FUNC_CFG UINT32_C(0x17) + #define HWRM_FUNC_QSTATS UINT32_C(0x18) + #define HWRM_FUNC_CLR_STATS UINT32_C(0x19) + #define HWRM_FUNC_DRV_UNRGTR UINT32_C(0x1a) + #define HWRM_FUNC_VF_RESC_FREE UINT32_C(0x1b) + #define HWRM_FUNC_VF_VNIC_IDS_QUERY UINT32_C(0x1c) + #define HWRM_FUNC_DRV_RGTR UINT32_C(0x1d) + #define HWRM_FUNC_DRV_QVER UINT32_C(0x1e) + #define HWRM_FUNC_BUF_RGTR UINT32_C(0x1f) + #define HWRM_PORT_PHY_CFG UINT32_C(0x20) + #define HWRM_PORT_MAC_CFG UINT32_C(0x21) + /* Experimental */ + #define HWRM_PORT_TS_QUERY UINT32_C(0x22) + #define HWRM_PORT_QSTATS UINT32_C(0x23) + #define HWRM_PORT_LPBK_QSTATS UINT32_C(0x24) + /* Experimental */ + #define HWRM_PORT_CLR_STATS UINT32_C(0x25) + /* Experimental */ + #define HWRM_PORT_LPBK_CLR_STATS UINT32_C(0x26) *** 88566 LINES SKIPPED *** From nobody Thu Jan 19 03:52:11 2023 X-Original-To: dev-commits-src-branches@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 4Ny7x809Crz2svc6; Thu, 19 Jan 2023 03:52:12 +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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Ny7x766R8z3hZg; Thu, 19 Jan 2023 03:52:11 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1674100331; 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=cJ/BcBZ7NesP0J2nXVmmH60T+zr2MRcHyaKZPdQgv2Q=; b=UrqPX5gFLqHWVndll5MlnyxYAPYTh9b9Csdy0FPjL/CW1JdMImcwL2T68cW0icLBl/2unO aqpmnHD9Lgj1c3vxAaNvjZEQv1Z6Aj+iRRQbhx0F5i4Q4c45C9EZ6vxWPnCxsOuCdom0K2 p8SFvxODWwgSJL10KRTZEX/MvtoUq5qAeP18UwIKNC5mNc3PTntvZTxI9cm840U8zkoT7/ PcwURr7P2Ec0YR3FvlAKSWP9Z0DhcT45bP3MzdCprs2Azm9QEqDyd53Up+MI0haIVZa9/2 NAyOrcnep46JscGHCLCp3ZFEzIHEVC2mXTCFaBO/WXiEudAGRXEVDmUS9pWsNw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1674100331; 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=cJ/BcBZ7NesP0J2nXVmmH60T+zr2MRcHyaKZPdQgv2Q=; b=FhGzfQDwdvEJ51aDOsJ2zry4p0jV/hREjPvQRlLiG9lj5JFeXtCxbasGTqcoQKMlFIzrII pxZcT1RqBlnVmDUBlOX34PynkRMsFlvte9g1Cv8ZNujgVO9TRazYxm0R3bCw2L2YkICBdE Q2O5rOZn2vCKLRh+9d6fwDO+NI7IVIT1HtUyEPPB65Jnh5tzt2Afr7qvotc5J7npVhuDKi ugBKVT75keBLfNq7X+A6kVTxR929aTmRuoaa4PCEfFQTMAaXXjr7C2KgdvAPmQKyHGksRl m0KLYFwAOuUmWgDZ+GrTPvUD8yGq5EpO7g4ZaBbf+qyEbuTO+VHsqwpukvBexg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1674100331; a=rsa-sha256; cv=none; b=QdXRRZTmWPZeS3vPRB7G/LW5hCymX58Lr2x0luQrSAH/Kg9tW/om5kp8e3zTgDVhmjgj1I JGCedd755mdOExT/YfRIwq+Lj2td2HusYaBR/cvPm/AyWaqo6MOF+NqGxtG/iZnEmwDoeL fAX/8+fKRlzD7VSMze/U0bABHkrxwtKio6+5/GayA2AaiBhA9QNfrndF47phs2ct+NRdZL juJD7quYrL19UTltVwZOFXrEGAuk9UudDnVxIunbU+HY6GzscE7v3+95YjAmZyba4cGkSv Kb52HRfkA/oGNtqetMp9h+hF7DxZBjgHeQBVY7cQHM7VsjNHmxNaZauxjWPFYQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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 did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Ny7x75DPtzcff; Thu, 19 Jan 2023 03:52:11 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 30J3qBsN021922; Thu, 19 Jan 2023 03:52:11 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 30J3qBYu021921; Thu, 19 Jan 2023 03:52:11 GMT (envelope-from git) Date: Thu, 19 Jan 2023 03:52:11 GMT Message-Id: <202301190352.30J3qBYu021921@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Warner Losh Subject: git: 86bf3fd82f1f - stable/13 - if_bnxt: Convert all doorbell writes into function pointers List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: imp X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: 86bf3fd82f1f2c51968df01f483a0524d6168af0 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by imp: URL: https://cgit.FreeBSD.org/src/commit/?id=86bf3fd82f1f2c51968df01f483a0524d6168af0 commit 86bf3fd82f1f2c51968df01f483a0524d6168af0 Author: Sumit Saxena AuthorDate: 2022-11-04 22:01:30 +0000 Commit: Warner Losh CommitDate: 2023-01-19 01:00:05 +0000 if_bnxt: Convert all doorbell writes into function pointers This is preparatory patch for making a base for Broadcom's Thor controller support. It converts all doorbell writes into function pointers. Reviewed by: imp Differential Revision: https://reviews.freebsd.org/D36437 (cherry picked from commit 49a3df78c75f29dfa4991314535c0eac4f5a73fa) --- sys/dev/bnxt/bnxt.h | 95 +++++++----------------------------------------- sys/dev/bnxt/bnxt_txrx.c | 14 ++----- sys/dev/bnxt/if_bnxt.c | 87 ++++++++++++++++++++++++++++++++++---------- 3 files changed, 86 insertions(+), 110 deletions(-) diff --git a/sys/dev/bnxt/bnxt.h b/sys/dev/bnxt/bnxt.h index f371388a411e..8d806c3a4877 100644 --- a/sys/dev/bnxt/bnxt.h +++ b/sys/dev/bnxt/bnxt.h @@ -127,87 +127,6 @@ __FBSDID("$FreeBSD$"); (CACHE_LINE_SIZE / sizeof(struct cmpl_base))) & \ ((cpr)->ring.ring_size - 1)]) -/* - * If we update the index, a write barrier is needed after the write to ensure - * the completion ring has space before the RX/TX ring does. Since we can't - * make the RX and AG doorbells covered by the same barrier without remapping - * MSI-X vectors, we create the barrier over the enture doorbell bar. - * TODO: Remap the MSI-X vectors to allow a barrier to only cover the doorbells - * for a single ring group. - * - * A barrier of just the size of the write is used to ensure the ordering - * remains correct and no writes are lost. - */ -#define BNXT_CP_DISABLE_DB(ring) do { \ - bus_space_barrier((ring)->softc->doorbell_bar.tag, \ - (ring)->softc->doorbell_bar.handle, (ring)->doorbell, 4, \ - BUS_SPACE_BARRIER_WRITE); \ - bus_space_barrier((ring)->softc->doorbell_bar.tag, \ - (ring)->softc->doorbell_bar.handle, 0, \ - (ring)->softc->doorbell_bar.size, BUS_SPACE_BARRIER_WRITE); \ - bus_space_write_4((ring)->softc->doorbell_bar.tag, \ - (ring)->softc->doorbell_bar.handle, (ring)->doorbell, \ - htole32(CMPL_DOORBELL_KEY_CMPL | CMPL_DOORBELL_MASK)); \ -} while (0) - -#define BNXT_CP_ENABLE_DB(ring) do { \ - bus_space_barrier((ring)->softc->doorbell_bar.tag, \ - (ring)->softc->doorbell_bar.handle, (ring)->doorbell, 4, \ - BUS_SPACE_BARRIER_WRITE); \ - bus_space_barrier((ring)->softc->doorbell_bar.tag, \ - (ring)->softc->doorbell_bar.handle, 0, \ - (ring)->softc->doorbell_bar.size, BUS_SPACE_BARRIER_WRITE); \ - bus_space_write_4((ring)->softc->doorbell_bar.tag, \ - (ring)->softc->doorbell_bar.handle, (ring)->doorbell, \ - htole32(CMPL_DOORBELL_KEY_CMPL)); \ -} while (0) - -#define BNXT_CP_IDX_ENABLE_DB(ring, cons) do { \ - bus_space_barrier((ring)->softc->doorbell_bar.tag, \ - (ring)->softc->doorbell_bar.handle, (ring)->doorbell, 4, \ - BUS_SPACE_BARRIER_WRITE); \ - bus_space_write_4((ring)->softc->doorbell_bar.tag, \ - (ring)->softc->doorbell_bar.handle, (ring)->doorbell, \ - htole32(CMPL_DOORBELL_KEY_CMPL | CMPL_DOORBELL_IDX_VALID | \ - (cons))); \ - bus_space_barrier((ring)->softc->doorbell_bar.tag, \ - (ring)->softc->doorbell_bar.handle, 0, \ - (ring)->softc->doorbell_bar.size, BUS_SPACE_BARRIER_WRITE); \ -} while (0) - -#define BNXT_CP_IDX_DISABLE_DB(ring, cons) do { \ - bus_space_barrier((ring)->softc->doorbell_bar.tag, \ - (ring)->softc->doorbell_bar.handle, (ring)->doorbell, 4, \ - BUS_SPACE_BARRIER_WRITE); \ - bus_space_write_4((ring)->softc->doorbell_bar.tag, \ - (ring)->softc->doorbell_bar.handle, (ring)->doorbell, \ - htole32(CMPL_DOORBELL_KEY_CMPL | CMPL_DOORBELL_IDX_VALID | \ - CMPL_DOORBELL_MASK | (cons))); \ - bus_space_barrier((ring)->softc->doorbell_bar.tag, \ - (ring)->softc->doorbell_bar.handle, 0, \ - (ring)->softc->doorbell_bar.size, BUS_SPACE_BARRIER_WRITE); \ -} while (0) - -#define BNXT_TX_DB(ring, idx) do { \ - bus_space_barrier((ring)->softc->doorbell_bar.tag, \ - (ring)->softc->doorbell_bar.handle, (ring)->doorbell, 4, \ - BUS_SPACE_BARRIER_WRITE); \ - bus_space_write_4( \ - (ring)->softc->doorbell_bar.tag, \ - (ring)->softc->doorbell_bar.handle, \ - (ring)->doorbell, htole32(TX_DOORBELL_KEY_TX | (idx))); \ -} while (0) - -#define BNXT_RX_DB(ring, idx) do { \ - bus_space_barrier((ring)->softc->doorbell_bar.tag, \ - (ring)->softc->doorbell_bar.handle, (ring)->doorbell, 4, \ - BUS_SPACE_BARRIER_WRITE); \ - bus_space_write_4( \ - (ring)->softc->doorbell_bar.tag, \ - (ring)->softc->doorbell_bar.handle, \ - (ring)->doorbell, htole32(RX_DOORBELL_KEY_RX | (idx))); \ -} while (0) - /* Lock macros */ #define BNXT_HWRM_LOCK_INIT(_softc, _name) \ mtx_init(&(_softc)->hwrm_lock, _name, "BNXT HWRM Lock", MTX_DEF) @@ -243,6 +162,19 @@ __FBSDID("$FreeBSD$"); #define BNXT_MIN_FRAME_SIZE 52 /* Frames must be padded to this size for some A0 chips */ +typedef void (*bnxt_doorbell_tx)(void *, uint16_t idx); +typedef void (*bnxt_doorbell_rx)(void *, uint16_t idx); +typedef void (*bnxt_doorbell_rx_cq)(void *, bool); +typedef void (*bnxt_doorbell_tx_cq)(void *, bool); +typedef void (*bnxt_doorbell_nq)(void *, bool); + +typedef struct bnxt_doorbell_ops { + bnxt_doorbell_tx bnxt_db_tx; + bnxt_doorbell_rx bnxt_db_rx; + bnxt_doorbell_rx_cq bnxt_db_rx_cq; + bnxt_doorbell_tx_cq bnxt_db_tx_cq; + bnxt_doorbell_nq bnxt_db_nq; +} bnxt_dooorbell_ops_t; /* NVRAM access */ enum bnxt_nvm_directory_type { BNX_DIR_TYPE_UNUSED = 0, @@ -611,6 +543,7 @@ struct bnxt_softc { struct bnxt_cp_ring def_cp_ring; struct iflib_dma_info def_cp_ring_mem; struct grouptask def_cp_task; + struct bnxt_doorbell_ops db_ops; struct sysctl_ctx_list hw_stats; struct sysctl_oid *hw_stats_oid; diff --git a/sys/dev/bnxt/bnxt_txrx.c b/sys/dev/bnxt/bnxt_txrx.c index 9727230b578f..f8b1c7656f2b 100644 --- a/sys/dev/bnxt/bnxt_txrx.c +++ b/sys/dev/bnxt/bnxt_txrx.c @@ -180,9 +180,7 @@ bnxt_isc_txd_flush(void *sc, uint16_t txqid, qidx_t pidx) struct bnxt_ring *tx_ring = &softc->tx_rings[txqid]; /* pidx is what we last set ipi_new_pidx to */ - BNXT_TX_DB(tx_ring, pidx); - /* TODO: Cumulus+ doesn't need the double doorbell */ - BNXT_TX_DB(tx_ring, pidx); + softc->db_ops.bnxt_db_tx(tx_ring, pidx); return; } @@ -244,7 +242,7 @@ done: if (clear && avail) { cpr->cons = last_cons; cpr->v_bit = last_v_bit; - BNXT_CP_IDX_DISABLE_DB(&cpr->ring, cpr->cons); + softc->db_ops.bnxt_db_tx_cq(cpr, 0); } return avail; @@ -313,12 +311,8 @@ bnxt_isc_rxd_flush(void *sc, uint16_t rxqid, uint8_t flid, * or we will overrun the completion ring and the device will wedge for * RX. */ - if (softc->rx_cp_rings[rxqid].cons != UINT32_MAX) - BNXT_CP_IDX_DISABLE_DB(&softc->rx_cp_rings[rxqid].ring, - softc->rx_cp_rings[rxqid].cons); - BNXT_RX_DB(rx_ring, pidx); - /* TODO: Cumulus+ doesn't need the double doorbell */ - BNXT_RX_DB(rx_ring, pidx); + softc->db_ops.bnxt_db_rx_cq(&softc->rx_cp_rings[rxqid], 0); + softc->db_ops.bnxt_db_rx(rx_ring, pidx); return; } diff --git a/sys/dev/bnxt/if_bnxt.c b/sys/dev/bnxt/if_bnxt.c index a2ec25a9ad31..75f01f556e8d 100644 --- a/sys/dev/bnxt/if_bnxt.c +++ b/sys/dev/bnxt/if_bnxt.c @@ -661,6 +661,55 @@ static int bnxt_alloc_hwrm_short_cmd_req(struct bnxt_softc *softc) return rc; } +/* + * If we update the index, a write barrier is needed after the write to ensure + * the completion ring has space before the RX/TX ring does. Since we can't + * make the RX and AG doorbells covered by the same barrier without remapping + * MSI-X vectors, we create the barrier over the enture doorbell bar. + * TODO: Remap the MSI-X vectors to allow a barrier to only cover the doorbells + * for a single ring group. + * + * A barrier of just the size of the write is used to ensure the ordering + * remains correct and no writes are lost. + */ + +static void bnxt_cuw_db_rx(void *db_ptr, uint16_t idx) +{ + struct bnxt_ring *ring = (struct bnxt_ring *) db_ptr; + struct bnxt_bar_info *db_bar = &ring->softc->doorbell_bar; + + bus_space_barrier(db_bar->tag, db_bar->handle, ring->doorbell, 4, + BUS_SPACE_BARRIER_WRITE); + bus_space_write_4(db_bar->tag, db_bar->handle, ring->doorbell, + htole32(RX_DOORBELL_KEY_RX | idx)); +} + +static void bnxt_cuw_db_tx(void *db_ptr, uint16_t idx) +{ + struct bnxt_ring *ring = (struct bnxt_ring *) db_ptr; + struct bnxt_bar_info *db_bar = &ring->softc->doorbell_bar; + + bus_space_barrier(db_bar->tag, db_bar->handle, ring->doorbell, 4, + BUS_SPACE_BARRIER_WRITE); + bus_space_write_4(db_bar->tag, db_bar->handle, ring->doorbell, + htole32(TX_DOORBELL_KEY_TX | idx)); +} + +static void bnxt_cuw_db_cq(void *db_ptr, bool enable_irq) +{ + struct bnxt_cp_ring *cpr = (struct bnxt_cp_ring *) db_ptr; + struct bnxt_bar_info *db_bar = &cpr->ring.softc->doorbell_bar; + + bus_space_barrier(db_bar->tag, db_bar->handle, cpr->ring.doorbell, 4, + BUS_SPACE_BARRIER_WRITE); + bus_space_write_4(db_bar->tag, db_bar->handle, cpr->ring.doorbell, + htole32(CMPL_DOORBELL_KEY_CMPL | + ((cpr->cons == UINT32_MAX) ? 0 : + (cpr->cons | CMPL_DOORBELL_IDX_VALID)) | + ((enable_irq) ? 0 : CMPL_DOORBELL_MASK))); + bus_space_barrier(db_bar->tag, db_bar->handle, 0, db_bar->size, + BUS_SPACE_BARRIER_WRITE); +} /* Device setup and teardown */ static int bnxt_attach_pre(if_ctx_t ctx) @@ -754,6 +803,11 @@ bnxt_attach_pre(if_ctx_t ctx) &softc->nvm_info->available_size); } + softc->db_ops.bnxt_db_tx = bnxt_cuw_db_tx; + softc->db_ops.bnxt_db_rx = bnxt_cuw_db_rx; + softc->db_ops.bnxt_db_rx_cq = bnxt_cuw_db_cq; + softc->db_ops.bnxt_db_tx_cq = bnxt_cuw_db_cq; + /* Register the driver with the FW */ rc = bnxt_hwrm_func_drv_rgtr(softc); if (rc) { @@ -1067,9 +1121,7 @@ bnxt_init(if_ctx_t ctx) HWRM_NA_SIGNATURE, false); if (rc) goto fail; - BNXT_RX_DB(&softc->rx_rings[i], 0); - /* TODO: Cumulus+ doesn't need the double doorbell */ - BNXT_RX_DB(&softc->rx_rings[i], 0); + softc->db_ops.bnxt_db_rx(&softc->rx_rings[i], 0); /* Allocate the AG ring */ rc = bnxt_hwrm_ring_alloc(softc, @@ -1078,9 +1130,7 @@ bnxt_init(if_ctx_t ctx) HWRM_NA_SIGNATURE, false); if (rc) goto fail; - BNXT_RX_DB(&softc->rx_rings[i], 0); - /* TODO: Cumulus+ doesn't need the double doorbell */ - BNXT_RX_DB(&softc->ag_rings[i], 0); + softc->db_ops.bnxt_db_rx(&softc->ag_rings[i], 0); /* Allocate the ring group */ softc->grp_info[i].stats_ctx = @@ -1156,9 +1206,7 @@ bnxt_init(if_ctx_t ctx) softc->tx_cp_rings[i].stats_ctx_id, false); if (rc) goto fail; - BNXT_TX_DB(&softc->tx_rings[i], 0); - /* TODO: Cumulus+ doesn't need the double doorbell */ - BNXT_TX_DB(&softc->tx_rings[i], 0); + softc->db_ops.bnxt_db_tx(&softc->tx_rings[i], 0); } bnxt_do_enable_intr(&softc->def_cp_ring); @@ -1444,20 +1492,20 @@ bnxt_if_timer(if_ctx_t ctx, uint16_t qid) static void inline bnxt_do_enable_intr(struct bnxt_cp_ring *cpr) { + struct bnxt_softc *softc = cpr->ring.softc; + if (cpr->ring.phys_id != (uint16_t)HWRM_NA_SIGNATURE) { - /* First time enabling, do not set index */ - if (cpr->cons == UINT32_MAX) - BNXT_CP_ENABLE_DB(&cpr->ring); - else - BNXT_CP_IDX_ENABLE_DB(&cpr->ring, cpr->cons); + softc->db_ops.bnxt_db_rx_cq(cpr, 1); } } static void inline bnxt_do_disable_intr(struct bnxt_cp_ring *cpr) { + struct bnxt_softc *softc = cpr->ring.softc; + if (cpr->ring.phys_id != (uint16_t)HWRM_NA_SIGNATURE) - BNXT_CP_DISABLE_DB(&cpr->ring); + softc->db_ops.bnxt_db_rx_cq(cpr, 0); } /* Enable all interrupts */ @@ -1469,7 +1517,7 @@ bnxt_intr_enable(if_ctx_t ctx) bnxt_do_enable_intr(&softc->def_cp_ring); for (i = 0; i < softc->nrxqsets; i++) - bnxt_do_enable_intr(&softc->rx_cp_rings[i]); + softc->db_ops.bnxt_db_rx_cq(&softc->rx_cp_rings[i], 1); return; } @@ -2246,9 +2294,10 @@ static int bnxt_handle_rx_cp(void *arg) { struct bnxt_cp_ring *cpr = arg; + struct bnxt_softc *softc = cpr->ring.softc; /* Disable further interrupts for this queue */ - BNXT_CP_DISABLE_DB(&cpr->ring); + softc->db_ops.bnxt_db_rx_cq(cpr, 0); return FILTER_SCHEDULE_THREAD; } @@ -2257,7 +2306,7 @@ bnxt_handle_def_cp(void *arg) { struct bnxt_softc *softc = arg; - BNXT_CP_DISABLE_DB(&softc->def_cp_ring.ring); + softc->db_ops.bnxt_db_rx_cq(&softc->def_cp_ring, 0); GROUPTASK_ENQUEUE(&softc->def_cp_task); return FILTER_HANDLED; } @@ -2391,7 +2440,7 @@ bnxt_def_cp_task(void *context) cpr->cons = last_cons; cpr->v_bit = last_v_bit; - BNXT_CP_IDX_ENABLE_DB(&cpr->ring, cpr->cons); + softc->db_ops.bnxt_db_rx_cq(cpr, 1); } static uint8_t From nobody Thu Jan 19 03:52:12 2023 X-Original-To: dev-commits-src-branches@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 4Ny7x90GBZz2svSg; Thu, 19 Jan 2023 03:52:13 +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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Ny7x8733xz3hmC; Thu, 19 Jan 2023 03:52:12 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1674100333; 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=pwnoApNYNlrP5DuEb+xpAQVT6rmCizwKHfLZzv2LQ5U=; b=E7tcD+wmBozOkB9WUIcHsvHfjoXHt+8Oxu+xZbY6pX+ofKI5nKumGO/bUx52kFKlWSwLRV f9OjCZZw8g14QpnIpVcEFC2vZuV0DgDunGctIpqp+daeG5gohQ3p3tRFGyFUd9stDyBQCX K49BvJxpitfptll8x4tTxGfdPXqVYFAgJdSKLarub9jpJrEPxE21c79z87DlUkR8x/PsDK IaL/kzCioUmvpRy7vWiFqdTGUuQNlqwuFMUYz0+wrei+M55aCxO4n1VGKYjrCFDfhAv8vm 6CgxpJUX/ftHVdW/MarHr4QU37MKUbfyNTeJ4CSRjuQxV948LE1IkLTYgzY1cQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1674100333; 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=pwnoApNYNlrP5DuEb+xpAQVT6rmCizwKHfLZzv2LQ5U=; b=PIFZiYAOP/9YORnC6wzXJSjsBL/f1659SM4tdoh4u/yjt1Ur7fFg1KgTBnLnk6A/FVDMAI HWakqjaKMI3Z5QFkUlqi8uWRj4mgPt6eLDqcpn69N8GhUydYUFzSMvdaLAZXegWOaPmBw6 Bn+zzfWb1emYm4ZB8YziVY1B0gsbc36nxzC/ibNRKMQbfMq6AqYj29YbJn0M5tlNhWWyPT sK//J6+9QKRbEBrAA6mJnFyetPDNdE9+VYDmDm+MiMVxfdaHSZzFOQocjV/yPWQ8zH9O+O VRtq13O2NHedLT/EIZ7QzXZgS0abgqXJwKEOWgbAIqrHBXwc0iRTVHnhA7BKFA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1674100333; a=rsa-sha256; cv=none; b=f1uDud4Q8mGxKknloTnSZCRd0BttnkmWpkGZwxbor7N7O6tL/MxqkiGncWjb+9R1qUN7mq PyZ6ZD1hkbscDDiQWs+5rpwYaSfmCT8RyfSuKfGKynkuJomke6H7YfzfpFls+ZsCbJbig5 2jbOK2xXt2caIcqIObVowwLO+LiCu7f9onnkNjLD7QlYFYdrc4q6gjlw+hrH3OW324Vup3 zU4X9ojXe3KsHltMFS+ezFI9XftDZuLogwOVePi2ZWTZJCSrq+LmC9ka5cHaZOD9JZAjhY jM9f5QMU8G1+eCYJ12AC/8IXYO+BS+3wiOyBdVTRoxUDfOGCDsC9IRUGQeP/2w== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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 did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Ny7x865bjzcT1; Thu, 19 Jan 2023 03:52:12 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 30J3qC36021946; Thu, 19 Jan 2023 03:52:12 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 30J3qCiS021945; Thu, 19 Jan 2023 03:52:12 GMT (envelope-from git) Date: Thu, 19 Jan 2023 03:52:12 GMT Message-Id: <202301190352.30J3qCiS021945@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Warner Losh Subject: git: de0aaf9eca0a - stable/13 - if_bnxt: add support for Thor controller List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: imp X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: de0aaf9eca0ae7d7f44042c24fba92a6db491b98 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by imp: URL: https://cgit.FreeBSD.org/src/commit/?id=de0aaf9eca0ae7d7f44042c24fba92a6db491b98 commit de0aaf9eca0ae7d7f44042c24fba92a6db491b98 Author: Sumit Saxena AuthorDate: 2022-11-04 22:05:57 +0000 Commit: Warner Losh CommitDate: 2023-01-19 01:00:05 +0000 if_bnxt: add support for Thor controller Added support for Thor controller. Below are the supported operations: 1. IPv4 ping (ICMP) 2. iperf / netperf (IPv4 TCP) 3. Promiscuous (tcpdump) 4. Can achieve 20 Gbps on a 25 G link (Uni-Di) 5. Can achieve 60 Gbps on a 100 G link (Uni-Di) 6. Port level and queue level driver stats. Reviewed by: imp Differential Revision: https://reviews.freebsd.org/D36438 (cherry picked from commit 8945584f93ee3689c90fd6b6ee6d824381813ef2) --- sys/dev/bnxt/bnxt.h | 187 +++++++++- sys/dev/bnxt/bnxt_hwrm.c | 520 +++++++++++++++++++++++++--- sys/dev/bnxt/bnxt_hwrm.h | 11 +- sys/dev/bnxt/bnxt_sysctl.c | 285 +++++++-------- sys/dev/bnxt/bnxt_txrx.c | 5 +- sys/dev/bnxt/if_bnxt.c | 840 +++++++++++++++++++++++++++++++++++++++------ 6 files changed, 1547 insertions(+), 301 deletions(-) diff --git a/sys/dev/bnxt/bnxt.h b/sys/dev/bnxt/bnxt.h index 8d806c3a4877..5a68b24e44f5 100644 --- a/sys/dev/bnxt/bnxt.h +++ b/sys/dev/bnxt/bnxt.h @@ -80,6 +80,9 @@ __FBSDID("$FreeBSD$"); #define BCM57417_SFP 0x16e2 #define BCM57454 0x1614 #define BCM58700 0x16cd +#define BCM57508 0x1750 +#define BCM57504 0x1751 +#define BCM57502 0x1752 #define NETXTREME_C_VF1 0x16cb #define NETXTREME_C_VF2 0x16e1 #define NETXTREME_C_VF3 0x16e5 @@ -110,10 +113,52 @@ __FBSDID("$FreeBSD$"); #define bnxt_wol_supported(softc) (!((softc)->flags & BNXT_FLAG_VF) && \ ((softc)->flags & BNXT_FLAG_WOL_CAP )) +/* 64-bit doorbell */ +#define DBR_INDEX_MASK 0x0000000000ffffffULL +#define DBR_PI_LO_MASK 0xff000000UL +#define DBR_PI_LO_SFT 24 +#define DBR_XID_MASK 0x000fffff00000000ULL +#define DBR_XID_SFT 32 +#define DBR_PI_HI_MASK 0xf0000000000000ULL +#define DBR_PI_HI_SFT 52 +#define DBR_PATH_L2 (0x1ULL << 56) +#define DBR_VALID (0x1ULL << 58) +#define DBR_TYPE_SQ (0x0ULL << 60) +#define DBR_TYPE_RQ (0x1ULL << 60) +#define DBR_TYPE_SRQ (0x2ULL << 60) +#define DBR_TYPE_SRQ_ARM (0x3ULL << 60) +#define DBR_TYPE_CQ (0x4ULL << 60) +#define DBR_TYPE_CQ_ARMSE (0x5ULL << 60) +#define DBR_TYPE_CQ_ARMALL (0x6ULL << 60) +#define DBR_TYPE_CQ_ARMENA (0x7ULL << 60) +#define DBR_TYPE_SRQ_ARMENA (0x8ULL << 60) +#define DBR_TYPE_CQ_CUTOFF_ACK (0x9ULL << 60) +#define DBR_TYPE_NQ (0xaULL << 60) +#define DBR_TYPE_NQ_ARM (0xbULL << 60) +#define DBR_TYPE_PUSH_START (0xcULL << 60) +#define DBR_TYPE_PUSH_END (0xdULL << 60) +#define DBR_TYPE_NULL (0xfULL << 60) + +#define BNXT_MAX_NUM_QUEUES 32 + /* Completion related defines */ #define CMP_VALID(cmp, v_bit) \ ((!!(((struct cmpl_base *)(cmp))->info3_v & htole32(CMPL_BASE_V))) == !!(v_bit) ) +/* Chip class phase 5 */ +#define BNXT_CHIP_P5(sc) ((softc->flags & BNXT_FLAG_CHIP_P5)) + +#define DB_PF_OFFSET_P5 0x10000 +#define NQ_VALID(cmp, v_bit) \ + ((!!(((nq_cn_t *)(cmp))->v & htole32(NQ_CN_V))) == !!(v_bit) ) + +#ifndef DIV_ROUND_UP +#define DIV_ROUND_UP(n, d) (((n) + (d) - 1) / (d)) +#endif +#ifndef roundup +#define roundup(x, y) ((((x) + ((y) - 1)) / (y)) * (y)) +#endif + #define NEXT_CP_CONS_V(ring, cons, v_bit) do { \ if (__predict_false(++(cons) == (ring)->ring_size)) \ ((cons) = 0, (v_bit) = !v_bit); \ @@ -400,6 +445,7 @@ struct bnxt_ring { uint32_t ring_size; /* Must be a power of two */ uint16_t id; /* Logical ID */ uint16_t phys_id; + uint16_t idx; struct bnxt_full_tpa_start *tpa_start; }; @@ -413,6 +459,7 @@ struct bnxt_cp_ring { uint32_t last_idx; /* Used by RX rings only * set to the last read pidx */ + uint64_t int_count; }; struct bnxt_full_tpa_start { @@ -484,12 +531,129 @@ struct bnxt_hw_lro { uint32_t min_agg_len; }; +/* The hardware supports certain page sizes. Use the supported page sizes + * to allocate the rings. + */ +#if (PAGE_SHIFT < 12) +#define BNXT_PAGE_SHIFT 12 +#elif (PAGE_SHIFT <= 13) +#define BNXT_PAGE_SHIFT PAGE_SHIFT +#elif (PAGE_SHIFT < 16) +#define BNXT_PAGE_SHIFT 13 +#else +#define BNXT_PAGE_SHIFT 16 +#endif + +#define BNXT_PAGE_SIZE (1 << BNXT_PAGE_SHIFT) + +#define MAX_CTX_PAGES (BNXT_PAGE_SIZE / 8) +#define MAX_CTX_TOTAL_PAGES (MAX_CTX_PAGES * MAX_CTX_PAGES) +struct bnxt_ring_mem_info { + int nr_pages; + int page_size; + uint16_t flags; +#define BNXT_RMEM_VALID_PTE_FLAG 1 +#define BNXT_RMEM_RING_PTE_FLAG 2 +#define BNXT_RMEM_USE_FULL_PAGE_FLAG 4 + uint16_t depth; + uint8_t init_val; + struct iflib_dma_info *pg_arr; + struct iflib_dma_info pg_tbl; + int vmem_size; + void **vmem; +}; + +struct bnxt_ctx_pg_info { + uint32_t entries; + uint32_t nr_pages; + struct iflib_dma_info ctx_arr[MAX_CTX_PAGES]; + struct bnxt_ring_mem_info ring_mem; + struct bnxt_ctx_pg_info **ctx_pg_tbl; +}; + +struct bnxt_ctx_mem_info { + uint32_t qp_max_entries; + uint16_t qp_min_qp1_entries; + uint16_t qp_max_l2_entries; + uint16_t qp_entry_size; + uint16_t srq_max_l2_entries; + uint32_t srq_max_entries; + uint16_t srq_entry_size; + uint16_t cq_max_l2_entries; + uint32_t cq_max_entries; + uint16_t cq_entry_size; + uint16_t vnic_max_vnic_entries; + uint16_t vnic_max_ring_table_entries; + uint16_t vnic_entry_size; + uint32_t stat_max_entries; + uint16_t stat_entry_size; + uint16_t tqm_entry_size; + uint32_t tqm_min_entries_per_ring; + uint32_t tqm_max_entries_per_ring; + uint32_t mrav_max_entries; + uint16_t mrav_entry_size; + uint16_t tim_entry_size; + uint32_t tim_max_entries; + uint8_t tqm_entries_multiple; + uint8_t ctx_kind_initializer; + + uint32_t flags; + #define BNXT_CTX_FLAG_INITED 0x01 + + struct bnxt_ctx_pg_info qp_mem; + struct bnxt_ctx_pg_info srq_mem; + struct bnxt_ctx_pg_info cq_mem; + struct bnxt_ctx_pg_info vnic_mem; + struct bnxt_ctx_pg_info stat_mem; + struct bnxt_ctx_pg_info mrav_mem; + struct bnxt_ctx_pg_info tim_mem; + struct bnxt_ctx_pg_info *tqm_mem[9]; +}; + +struct bnxt_hw_resc { + uint16_t min_rsscos_ctxs; + uint16_t max_rsscos_ctxs; + uint16_t min_cp_rings; + uint16_t max_cp_rings; + uint16_t resv_cp_rings; + uint16_t min_tx_rings; + uint16_t max_tx_rings; + uint16_t resv_tx_rings; + uint16_t max_tx_sch_inputs; + uint16_t min_rx_rings; + uint16_t max_rx_rings; + uint16_t resv_rx_rings; + uint16_t min_hw_ring_grps; + uint16_t max_hw_ring_grps; + uint16_t resv_hw_ring_grps; + uint16_t min_l2_ctxs; + uint16_t max_l2_ctxs; + uint16_t min_vnics; + uint16_t max_vnics; + uint16_t resv_vnics; + uint16_t min_stat_ctxs; + uint16_t max_stat_ctxs; + uint16_t resv_stat_ctxs; + uint16_t max_nqs; + uint16_t max_irqs; + uint16_t resv_irqs; +}; + +#define BNXT_LLQ(q_profile) \ + ((q_profile) == HWRM_QUEUE_QPORTCFG_OUTPUT_QUEUE_ID0_SERVICE_PROFILE_LOSSLESS_ROCE) +#define BNXT_CNPQ(q_profile) \ + ((q_profile) == HWRM_QUEUE_QPORTCFG_OUTPUT_QUEUE_ID0_SERVICE_PROFILE_LOSSY_ROCE_CNP) + +#define BNXT_HWRM_MAX_REQ_LEN (softc->hwrm_max_req_len) + struct bnxt_softc { device_t dev; if_ctx_t ctx; if_softc_ctx_t scctx; if_shared_ctx_t sctx; struct ifmedia *media; + struct bnxt_ctx_mem_info *ctx_mem; + struct bnxt_hw_resc hw_resc; struct bnxt_bar_info hwrm_bar; struct bnxt_bar_info doorbell_bar; @@ -497,7 +661,10 @@ struct bnxt_softc { #define BNXT_FLAG_VF 0x0001 #define BNXT_FLAG_NPAR 0x0002 #define BNXT_FLAG_WOL_CAP 0x0004 -#define BNXT_FLAG_SHORT_CMD 0x0008 +#define BNXT_FLAG_SHORT_CMD 0x0008 +#define BNXT_FLAG_FW_CAP_NEW_RM 0x0010 +#define BNXT_FLAG_CHIP_P5 0x0020 +#define BNXT_FLAG_TPA 0x0040 uint32_t flags; uint32_t total_msix; @@ -514,10 +681,16 @@ struct bnxt_softc { struct if_irq irq; struct mtx hwrm_lock; uint16_t hwrm_max_req_len; + uint16_t hwrm_max_ext_req_len; + uint32_t hwrm_spec_code; -#define BNXT_MAX_QUEUE 8 +#define BNXT_MAX_COS_QUEUE 8 uint8_t max_tc; - struct bnxt_cos_queue q_info[BNXT_MAX_QUEUE]; + uint8_t max_lltc; /* lossless TCs */ + struct bnxt_cos_queue q_info[BNXT_MAX_COS_QUEUE]; + uint8_t tc_to_qidx[BNXT_MAX_COS_QUEUE]; + uint8_t q_ids[BNXT_MAX_COS_QUEUE]; + uint8_t max_q; uint64_t admin_ticks; struct iflib_dma_info hw_rx_port_stats; @@ -527,9 +700,11 @@ struct bnxt_softc { int num_cp_rings; + struct bnxt_cp_ring *nq_rings; + struct bnxt_ring *tx_rings; struct bnxt_cp_ring *tx_cp_rings; - struct iflib_dma_info tx_stats; + struct iflib_dma_info tx_stats[BNXT_MAX_NUM_QUEUES]; int ntxqsets; struct bnxt_vnic_info vnic_info; @@ -537,11 +712,13 @@ struct bnxt_softc { struct bnxt_ring *rx_rings; struct bnxt_cp_ring *rx_cp_rings; struct bnxt_grp_info *grp_info; - struct iflib_dma_info rx_stats; + struct iflib_dma_info rx_stats[BNXT_MAX_NUM_QUEUES]; int nrxqsets; struct bnxt_cp_ring def_cp_ring; + struct bnxt_cp_ring def_nq_ring; struct iflib_dma_info def_cp_ring_mem; + struct iflib_dma_info def_nq_ring_mem; struct grouptask def_cp_task; struct bnxt_doorbell_ops db_ops; diff --git a/sys/dev/bnxt/bnxt_hwrm.c b/sys/dev/bnxt/bnxt_hwrm.c index d474e5b81e19..981bab37c181 100644 --- a/sys/dev/bnxt/bnxt_hwrm.c +++ b/sys/dev/bnxt/bnxt_hwrm.c @@ -121,19 +121,30 @@ _hwrm_send_message(struct bnxt_softc *softc, void *msg, uint32_t msg_len) int i; uint8_t *valid; uint16_t err; - uint16_t max_req_len = HWRM_MAX_REQ_LEN; + uint16_t max_req_len = BNXT_HWRM_MAX_REQ_LEN; struct hwrm_short_input short_input = {0}; /* TODO: DMASYNC in here. */ req->seq_id = htole16(softc->hwrm_cmd_seq++); memset(resp, 0, PAGE_SIZE); - if (softc->flags & BNXT_FLAG_SHORT_CMD) { + if ((softc->flags & BNXT_FLAG_SHORT_CMD) || + msg_len > BNXT_HWRM_MAX_REQ_LEN) { void *short_cmd_req = softc->hwrm_short_cmd_req_addr.idi_vaddr; + uint16_t max_msg_len; + + /* Set boundary for maximum extended request length for short + * cmd format. If passed up from device use the max supported + * internal req length. + */ + + max_msg_len = softc->hwrm_max_ext_req_len; + memcpy(short_cmd_req, req, msg_len); - memset((uint8_t *) short_cmd_req + msg_len, 0, softc->hwrm_max_req_len- - msg_len); + if (msg_len < max_msg_len) + memset((uint8_t *) short_cmd_req + msg_len, 0, + max_msg_len - msg_len); short_input.req_type = req->req_type; short_input.signature = @@ -228,12 +239,12 @@ hwrm_send_message(struct bnxt_softc *softc, void *msg, uint32_t msg_len) int bnxt_hwrm_queue_qportcfg(struct bnxt_softc *softc) { + int rc = 0; struct hwrm_queue_qportcfg_input req = {0}; struct hwrm_queue_qportcfg_output *resp = (void *)softc->hwrm_cmd_resp.idi_vaddr; - - int rc = 0; - uint8_t *qptr; + uint8_t i, j, *qptr; + bool no_rdma; bnxt_hwrm_cmd_hdr_init(softc, &req, HWRM_QUEUE_QPORTCFG); @@ -247,18 +258,283 @@ bnxt_hwrm_queue_qportcfg(struct bnxt_softc *softc) goto qportcfg_exit; } softc->max_tc = resp->max_configurable_queues; - if (softc->max_tc > BNXT_MAX_QUEUE) - softc->max_tc = BNXT_MAX_QUEUE; + softc->max_lltc = resp->max_configurable_lossless_queues; + if (softc->max_tc > BNXT_MAX_COS_QUEUE) + softc->max_tc = BNXT_MAX_COS_QUEUE; + + /* Currently no RDMA support */ + no_rdma = true; qptr = &resp->queue_id0; - for (int i = 0; i < softc->max_tc; i++) { - softc->q_info[i].id = *qptr++; - softc->q_info[i].profile = *qptr++; + for (i = 0, j = 0; i < softc->max_tc; i++) { + softc->q_info[j].id = *qptr; + softc->q_ids[i] = *qptr++; + softc->q_info[j].profile = *qptr++; + softc->tc_to_qidx[j] = j; + if (!BNXT_CNPQ(softc->q_info[j].profile) || + (no_rdma && BNXT_PF(softc))) + j++; } + softc->max_q = softc->max_tc; + softc->max_tc = max_t(uint32_t, j, 1); + + if (resp->queue_cfg_info & HWRM_QUEUE_QPORTCFG_OUTPUT_QUEUE_CFG_INFO_ASYM_CFG) + softc->max_tc = 1; + + if (softc->max_lltc > softc->max_tc) + softc->max_lltc = softc->max_tc; qportcfg_exit: BNXT_HWRM_UNLOCK(softc); - return (rc); + return rc; +} + +int bnxt_hwrm_func_backing_store_qcaps(struct bnxt_softc *softc) +{ + struct hwrm_func_backing_store_qcaps_input req = {0}; + struct hwrm_func_backing_store_qcaps_output *resp = + (void *)softc->hwrm_cmd_resp.idi_vaddr; + int rc; + + if (softc->hwrm_spec_code < 0x10902 || BNXT_VF(softc) || softc->ctx_mem) + return 0; + + bnxt_hwrm_cmd_hdr_init(softc, &req, HWRM_FUNC_BACKING_STORE_QCAPS); + BNXT_HWRM_LOCK(softc); + rc = _hwrm_send_message(softc, &req, sizeof(req)); + if (!rc) { + struct bnxt_ctx_pg_info *ctx_pg; + struct bnxt_ctx_mem_info *ctx; + int i; + + ctx = malloc(sizeof(*ctx), M_DEVBUF, M_NOWAIT | M_ZERO); + if (!ctx) { + rc = -ENOMEM; + goto ctx_err; + } + ctx_pg = malloc(sizeof(*ctx_pg) * (softc->max_q + 1), + M_DEVBUF, M_NOWAIT | M_ZERO); + if (!ctx_pg) { + free(ctx, M_DEVBUF); + rc = -ENOMEM; + goto ctx_err; + } + for (i = 0; i < softc->max_q + 1; i++, ctx_pg++) + ctx->tqm_mem[i] = ctx_pg; + + softc->ctx_mem = ctx; + ctx->qp_max_entries = le32toh(resp->qp_max_entries); + ctx->qp_min_qp1_entries = le16toh(resp->qp_min_qp1_entries); + ctx->qp_max_l2_entries = le16toh(resp->qp_max_l2_entries); + ctx->qp_entry_size = le16toh(resp->qp_entry_size); + ctx->srq_max_l2_entries = le16toh(resp->srq_max_l2_entries); + ctx->srq_max_entries = le32toh(resp->srq_max_entries); + ctx->srq_entry_size = le16toh(resp->srq_entry_size); + ctx->cq_max_l2_entries = le16toh(resp->cq_max_l2_entries); + ctx->cq_max_entries = le32toh(resp->cq_max_entries); + ctx->cq_entry_size = le16toh(resp->cq_entry_size); + ctx->vnic_max_vnic_entries = + le16toh(resp->vnic_max_vnic_entries); + ctx->vnic_max_ring_table_entries = + le16toh(resp->vnic_max_ring_table_entries); + ctx->vnic_entry_size = le16toh(resp->vnic_entry_size); + ctx->stat_max_entries = le32toh(resp->stat_max_entries); + ctx->stat_entry_size = le16toh(resp->stat_entry_size); + ctx->tqm_entry_size = le16toh(resp->tqm_entry_size); + ctx->tqm_min_entries_per_ring = + le32toh(resp->tqm_min_entries_per_ring); + ctx->tqm_max_entries_per_ring = + le32toh(resp->tqm_max_entries_per_ring); + ctx->tqm_entries_multiple = resp->tqm_entries_multiple; + if (!ctx->tqm_entries_multiple) + ctx->tqm_entries_multiple = 1; + ctx->mrav_max_entries = le32toh(resp->mrav_max_entries); + ctx->mrav_entry_size = le16toh(resp->mrav_entry_size); + ctx->tim_entry_size = le16toh(resp->tim_entry_size); + ctx->tim_max_entries = le32toh(resp->tim_max_entries); + ctx->ctx_kind_initializer = resp->ctx_kind_initializer; + } else { + rc = 0; + } +ctx_err: + BNXT_HWRM_UNLOCK(softc); + return rc; +} + +#define HWRM_FUNC_BACKING_STORE_CFG_INPUT_DFLT_ENABLES \ + (HWRM_FUNC_BACKING_STORE_CFG_INPUT_ENABLES_QP | \ + HWRM_FUNC_BACKING_STORE_CFG_INPUT_ENABLES_SRQ | \ + HWRM_FUNC_BACKING_STORE_CFG_INPUT_ENABLES_CQ | \ + HWRM_FUNC_BACKING_STORE_CFG_INPUT_ENABLES_VNIC | \ + HWRM_FUNC_BACKING_STORE_CFG_INPUT_ENABLES_STAT) + +static void bnxt_hwrm_set_pg_attr(struct bnxt_ring_mem_info *rmem, uint8_t *pg_attr, + uint64_t *pg_dir) +{ + uint8_t pg_size = 0; + + if (BNXT_PAGE_SHIFT == 13) + pg_size = 1 << 4; + else if (BNXT_PAGE_SIZE == 16) + pg_size = 2 << 4; + + *pg_attr = pg_size; + if (rmem->depth >= 1) { + if (rmem->depth == 2) + *pg_attr |= HWRM_FUNC_BACKING_STORE_CFG_INPUT_QPC_LVL_LVL_2; + else + *pg_attr |= HWRM_FUNC_BACKING_STORE_CFG_INPUT_QPC_LVL_LVL_1; + *pg_dir = htole64(rmem->pg_tbl.idi_paddr); + } else { + *pg_dir = htole64(rmem->pg_arr[0].idi_paddr); + } +} + +int bnxt_hwrm_func_backing_store_cfg(struct bnxt_softc *softc, uint32_t enables) +{ + struct hwrm_func_backing_store_cfg_input req = {0}; + struct bnxt_ctx_mem_info *ctx = softc->ctx_mem; + struct bnxt_ctx_pg_info *ctx_pg; + uint32_t *num_entries; + uint64_t *pg_dir; + uint8_t *pg_attr; + int i, rc; + uint32_t ena; + + if (!ctx) + return 0; + + bnxt_hwrm_cmd_hdr_init(softc, &req, HWRM_FUNC_BACKING_STORE_CFG); + req.enables = htole32(enables); + + if (enables & HWRM_FUNC_BACKING_STORE_CFG_INPUT_ENABLES_QP) { + ctx_pg = &ctx->qp_mem; + req.qp_num_entries = htole32(ctx_pg->entries); + req.qp_num_qp1_entries = htole16(ctx->qp_min_qp1_entries); + req.qp_num_l2_entries = htole16(ctx->qp_max_l2_entries); + req.qp_entry_size = htole16(ctx->qp_entry_size); + bnxt_hwrm_set_pg_attr(&ctx_pg->ring_mem, + &req.qpc_pg_size_qpc_lvl, + &req.qpc_page_dir); + } + if (enables & HWRM_FUNC_BACKING_STORE_CFG_INPUT_ENABLES_SRQ) { + ctx_pg = &ctx->srq_mem; + req.srq_num_entries = htole32(ctx_pg->entries); + req.srq_num_l2_entries = htole16(ctx->srq_max_l2_entries); + req.srq_entry_size = htole16(ctx->srq_entry_size); + bnxt_hwrm_set_pg_attr(&ctx_pg->ring_mem, + &req.srq_pg_size_srq_lvl, + &req.srq_page_dir); + } + if (enables & HWRM_FUNC_BACKING_STORE_CFG_INPUT_ENABLES_CQ) { + ctx_pg = &ctx->cq_mem; + req.cq_num_entries = htole32(ctx_pg->entries); + req.cq_num_l2_entries = htole16(ctx->cq_max_l2_entries); + req.cq_entry_size = htole16(ctx->cq_entry_size); + bnxt_hwrm_set_pg_attr(&ctx_pg->ring_mem, &req.cq_pg_size_cq_lvl, + &req.cq_page_dir); + } + if (enables & HWRM_FUNC_BACKING_STORE_CFG_INPUT_ENABLES_MRAV) { + ctx_pg = &ctx->mrav_mem; + req.mrav_num_entries = htole32(ctx_pg->entries); + req.mrav_entry_size = htole16(ctx->mrav_entry_size); + bnxt_hwrm_set_pg_attr(&ctx_pg->ring_mem, + &req.mrav_pg_size_mrav_lvl, + &req.mrav_page_dir); + } + if (enables & HWRM_FUNC_BACKING_STORE_CFG_INPUT_ENABLES_TIM) { + ctx_pg = &ctx->tim_mem; + req.tim_num_entries = htole32(ctx_pg->entries); + req.tim_entry_size = htole16(ctx->tim_entry_size); + bnxt_hwrm_set_pg_attr(&ctx_pg->ring_mem, + &req.tim_pg_size_tim_lvl, + &req.tim_page_dir); + } + if (enables & HWRM_FUNC_BACKING_STORE_CFG_INPUT_ENABLES_VNIC) { + ctx_pg = &ctx->vnic_mem; + req.vnic_num_vnic_entries = + htole16(ctx->vnic_max_vnic_entries); + req.vnic_num_ring_table_entries = + htole16(ctx->vnic_max_ring_table_entries); + req.vnic_entry_size = htole16(ctx->vnic_entry_size); + bnxt_hwrm_set_pg_attr(&ctx_pg->ring_mem, + &req.vnic_pg_size_vnic_lvl, + &req.vnic_page_dir); + } + if (enables & HWRM_FUNC_BACKING_STORE_CFG_INPUT_ENABLES_STAT) { + ctx_pg = &ctx->stat_mem; + req.stat_num_entries = htole32(ctx->stat_max_entries); + req.stat_entry_size = htole16(ctx->stat_entry_size); + bnxt_hwrm_set_pg_attr(&ctx_pg->ring_mem, + &req.stat_pg_size_stat_lvl, + &req.stat_page_dir); + } + for (i = 0, num_entries = &req.tqm_sp_num_entries, + pg_attr = &req.tqm_sp_pg_size_tqm_sp_lvl, + pg_dir = &req.tqm_sp_page_dir, + ena = HWRM_FUNC_BACKING_STORE_CFG_INPUT_ENABLES_TQM_SP; + i < 9; i++, num_entries++, pg_attr++, pg_dir++, ena <<= 1) { + if (!(enables & ena)) + continue; + + req.tqm_entry_size = htole16(ctx->tqm_entry_size); + ctx_pg = ctx->tqm_mem[i]; + *num_entries = htole32(ctx_pg->entries); + bnxt_hwrm_set_pg_attr(&ctx_pg->ring_mem, pg_attr, pg_dir); + } + rc = hwrm_send_message(softc, &req, sizeof(req)); + if (rc) + rc = -EIO; + return rc; +} + +int bnxt_hwrm_func_resc_qcaps(struct bnxt_softc *softc, bool all) +{ + struct hwrm_func_resource_qcaps_output *resp = + (void *)softc->hwrm_cmd_resp.idi_vaddr; + struct hwrm_func_resource_qcaps_input req = {0}; + struct bnxt_hw_resc *hw_resc = &softc->hw_resc; + int rc; + + bnxt_hwrm_cmd_hdr_init(softc, &req, HWRM_FUNC_RESOURCE_QCAPS); + req.fid = htole16(0xffff); + + BNXT_HWRM_LOCK(softc); + rc = _hwrm_send_message(softc, &req, sizeof(req)); + if (rc) { + rc = -EIO; + goto hwrm_func_resc_qcaps_exit; + } + + hw_resc->max_tx_sch_inputs = le16toh(resp->max_tx_scheduler_inputs); + if (!all) + goto hwrm_func_resc_qcaps_exit; + + hw_resc->min_rsscos_ctxs = le16toh(resp->min_rsscos_ctx); + hw_resc->max_rsscos_ctxs = le16toh(resp->max_rsscos_ctx); + hw_resc->min_cp_rings = le16toh(resp->min_cmpl_rings); + hw_resc->max_cp_rings = le16toh(resp->max_cmpl_rings); + hw_resc->min_tx_rings = le16toh(resp->min_tx_rings); + hw_resc->max_tx_rings = le16toh(resp->max_tx_rings); + hw_resc->min_rx_rings = le16toh(resp->min_rx_rings); + hw_resc->max_rx_rings = le16toh(resp->max_rx_rings); + hw_resc->min_hw_ring_grps = le16toh(resp->min_hw_ring_grps); + hw_resc->max_hw_ring_grps = le16toh(resp->max_hw_ring_grps); + hw_resc->min_l2_ctxs = le16toh(resp->min_l2_ctxs); + hw_resc->max_l2_ctxs = le16toh(resp->max_l2_ctxs); + hw_resc->min_vnics = le16toh(resp->min_vnics); + hw_resc->max_vnics = le16toh(resp->max_vnics); + hw_resc->min_stat_ctxs = le16toh(resp->min_stat_ctx); + hw_resc->max_stat_ctxs = le16toh(resp->max_stat_ctx); + + if (BNXT_CHIP_P5(softc)) { + hw_resc->max_nqs = le16toh(resp->max_msix); + hw_resc->max_hw_ring_grps = hw_resc->max_rx_rings; + } + +hwrm_func_resc_qcaps_exit: + BNXT_HWRM_UNLOCK(softc); + return rc; } int @@ -297,6 +573,16 @@ bnxt_hwrm_ver_get(struct bnxt_softc *softc) strlcpy(softc->ver_info->hwrm_fw_name, resp->hwrm_fw_name, BNXT_NAME_SIZE); + softc->hwrm_spec_code = resp->hwrm_intf_maj_8b << 16 | + resp->hwrm_intf_min_8b << 8 | + resp->hwrm_intf_upd_8b; + if (resp->hwrm_intf_maj_8b < 1) { + device_printf(softc->dev, "HWRM interface %d.%d.%d is older " + "than 1.0.0.\n", resp->hwrm_intf_maj_8b, + resp->hwrm_intf_min_8b, resp->hwrm_intf_upd_8b); + device_printf(softc->dev, "Please update firmware with HWRM " + "interface 1.0.0 or newer.\n"); + } if (resp->mgmt_fw_major == 0 && resp->mgmt_fw_minor == 0 && resp->mgmt_fw_build == 0) { strlcpy(softc->ver_info->mgmt_fw_ver, naver, BNXT_VERSTR_SIZE); @@ -341,10 +627,16 @@ bnxt_hwrm_ver_get(struct bnxt_softc *softc) softc->ver_info->chip_bond_id = resp->chip_bond_id; softc->ver_info->chip_type = resp->chip_platform_type; - if (resp->max_req_win_len) + + if (resp->hwrm_intf_maj_8b >= 1) { softc->hwrm_max_req_len = le16toh(resp->max_req_win_len); - if (resp->def_req_timeout) - softc->hwrm_cmd_timeo = le16toh(resp->def_req_timeout); + softc->hwrm_max_ext_req_len = le16toh(resp->max_ext_req_len); + } +#define DFLT_HWRM_CMD_TIMEOUT 500 + softc->hwrm_cmd_timeo = le16toh(resp->def_req_timeout); + if (!softc->hwrm_cmd_timeo) + softc->hwrm_cmd_timeo = DFLT_HWRM_CMD_TIMEOUT; + dev_caps_cfg = le32toh(resp->dev_caps_cfg); if ((dev_caps_cfg & HWRM_VER_GET_OUTPUT_DEV_CAPS_CFG_SHORT_CMD_SUPPORTED) && @@ -464,7 +756,7 @@ fail: return rc; } -int +int bnxt_hwrm_func_qcfg(struct bnxt_softc *softc) { struct hwrm_func_qcfg_input req = {0}; @@ -609,11 +901,11 @@ bnxt_hwrm_set_link_setting(struct bnxt_softc *softc, bool set_pause, if (!rc) { if (set_pause) { - /* since changing of 'force pause' setting doesn't + /* since changing of 'force pause' setting doesn't * trigger any link change event, the driver needs to * update the current pause result upon successfully i * return of the phy_cfg command */ - if (!softc->link_info.flow_ctrl.autoneg) + if (!softc->link_info.flow_ctrl.autoneg) bnxt_report_link(softc); } } @@ -634,14 +926,25 @@ bnxt_hwrm_vnic_cfg(struct bnxt_softc *softc, struct bnxt_vnic_info *vnic) req.flags |= htole32(HWRM_VNIC_CFG_INPUT_FLAGS_BD_STALL_MODE); if (vnic->flags & BNXT_VNIC_FLAG_VLAN_STRIP) req.flags |= htole32(HWRM_VNIC_CFG_INPUT_FLAGS_VLAN_STRIP_MODE); - req.enables = htole32(HWRM_VNIC_CFG_INPUT_ENABLES_DFLT_RING_GRP | - HWRM_VNIC_CFG_INPUT_ENABLES_RSS_RULE | - HWRM_VNIC_CFG_INPUT_ENABLES_MRU); - req.vnic_id = htole16(vnic->id); - req.dflt_ring_grp = htole16(vnic->def_ring_grp); + if (BNXT_CHIP_P5 (softc)) { + req.default_rx_ring_id = + htole16(softc->rx_rings[0].phys_id); + req.default_cmpl_ring_id = + htole16(softc->rx_cp_rings[0].ring.phys_id); + req.enables |= + htole32(HWRM_VNIC_CFG_INPUT_ENABLES_DEFAULT_RX_RING_ID | + HWRM_VNIC_CFG_INPUT_ENABLES_DEFAULT_CMPL_RING_ID); + req.vnic_id = htole16(vnic->id); + } else { + req.enables = htole32(HWRM_VNIC_CFG_INPUT_ENABLES_DFLT_RING_GRP | + HWRM_VNIC_CFG_INPUT_ENABLES_RSS_RULE); + req.vnic_id = htole16(vnic->id); + req.dflt_ring_grp = htole16(vnic->def_ring_grp); + } req.rss_rule = htole16(vnic->rss_id); req.cos_rule = htole16(vnic->cos_rule); req.lb_rule = htole16(vnic->lb_rule); + req.enables |= htole32(HWRM_VNIC_CFG_INPUT_ENABLES_MRU); req.mru = htole16(vnic->mru); return hwrm_send_message(softc, &req, sizeof(req)); @@ -719,6 +1022,9 @@ bnxt_hwrm_ring_grp_alloc(struct bnxt_softc *softc, struct bnxt_grp_info *grp) return EDOOFUS; } + if (BNXT_CHIP_P5 (softc)) + return 0; + resp = (void *)softc->hwrm_cmd_resp.idi_vaddr; bnxt_hwrm_cmd_hdr_init(softc, &req, HWRM_RING_GRP_ALLOC); req.cr = htole16(grp->cp_ring_id); @@ -743,11 +1049,12 @@ fail: */ int bnxt_hwrm_ring_alloc(struct bnxt_softc *softc, uint8_t type, - struct bnxt_ring *ring, uint16_t cmpl_ring_id, uint32_t stat_ctx_id, - bool irq) + struct bnxt_ring *ring) { struct hwrm_ring_alloc_input req = {0}; struct hwrm_ring_alloc_output *resp; + uint16_t idx = ring->idx; + struct bnxt_cp_ring *cp_ring; int rc; if (ring->phys_id != (uint16_t)HWRM_NA_SIGNATURE) { @@ -760,27 +1067,72 @@ bnxt_hwrm_ring_alloc(struct bnxt_softc *softc, uint8_t type, bnxt_hwrm_cmd_hdr_init(softc, &req, HWRM_RING_ALLOC); req.enables = htole32(0); req.fbo = htole32(0); - - if (stat_ctx_id != HWRM_NA_SIGNATURE) { - req.enables |= htole32( - HWRM_RING_ALLOC_INPUT_ENABLES_STAT_CTX_ID_VALID); - req.stat_ctx_id = htole32(stat_ctx_id); - } req.ring_type = type; req.page_tbl_addr = htole64(ring->paddr); - req.length = htole32(ring->ring_size); req.logical_id = htole16(ring->id); - req.cmpl_ring_id = htole16(cmpl_ring_id); - req.queue_id = htole16(softc->q_info[0].id); -#if 0 - /* MODE_POLL appears to crash the firmware */ - if (irq) - req.int_mode = HWRM_RING_ALLOC_INPUT_INT_MODE_MSIX; - else - req.int_mode = HWRM_RING_ALLOC_INPUT_INT_MODE_POLL; -#else - req.int_mode = HWRM_RING_ALLOC_INPUT_INT_MODE_MSIX; -#endif + req.length = htole32(ring->ring_size); + + switch (type) { + case HWRM_RING_ALLOC_INPUT_RING_TYPE_TX: + cp_ring = &softc->tx_cp_rings[idx]; + + req.cmpl_ring_id = htole16(cp_ring->ring.phys_id); + /* queue_id - what CoS queue the TX ring is associated with */ + req.queue_id = htole16(softc->q_info[0].id); + + req.stat_ctx_id = htole32(cp_ring->stats_ctx_id); + req.enables |= htole32( + HWRM_RING_ALLOC_INPUT_ENABLES_STAT_CTX_ID_VALID); + break; + case HWRM_RING_ALLOC_INPUT_RING_TYPE_RX: + if (!BNXT_CHIP_P5(softc)) + break; + + cp_ring = &softc->rx_cp_rings[idx]; + + req.stat_ctx_id = htole32(cp_ring->stats_ctx_id); + req.rx_buf_size = htole16( + softc->scctx->isc_max_frame_size); + req.enables |= htole32( + HWRM_RING_ALLOC_INPUT_ENABLES_RX_BUF_SIZE_VALID | + HWRM_RING_ALLOC_INPUT_ENABLES_STAT_CTX_ID_VALID); + break; + case HWRM_RING_ALLOC_INPUT_RING_TYPE_RX_AGG: + if (!BNXT_CHIP_P5(softc)) { + req.ring_type = HWRM_RING_ALLOC_INPUT_RING_TYPE_RX; + break; + } + + cp_ring = &softc->rx_cp_rings[idx]; + + req.rx_ring_id = htole16(softc->rx_rings[idx].phys_id); + req.stat_ctx_id = htole32(cp_ring->stats_ctx_id); + req.rx_buf_size = htole16( + softc->scctx->isc_max_frame_size); + req.enables |= htole32( + HWRM_RING_ALLOC_INPUT_ENABLES_RX_RING_ID_VALID | + HWRM_RING_ALLOC_INPUT_ENABLES_RX_BUF_SIZE_VALID | + HWRM_RING_ALLOC_INPUT_ENABLES_STAT_CTX_ID_VALID); + break; + case HWRM_RING_ALLOC_INPUT_RING_TYPE_L2_CMPL: + if (!BNXT_CHIP_P5(softc)) { + req.int_mode = HWRM_RING_ALLOC_INPUT_INT_MODE_MSIX; + break; + } + + req.cq_handle = htole64(ring->id); + req.nq_ring_id = htole16(softc->nq_rings[idx].ring.phys_id); + req.enables |= htole32( + HWRM_RING_ALLOC_INPUT_ENABLES_NQ_RING_ID_VALID); + break; + case HWRM_RING_ALLOC_INPUT_RING_TYPE_NQ: + req.int_mode = HWRM_RING_ALLOC_INPUT_INT_MODE_MSIX; + break; + default: + printf("hwrm alloc invalid ring type %d\n", type); + return -1; + } + BNXT_HWRM_LOCK(softc); rc = _hwrm_send_message(softc, &req, sizeof(req)); if (rc) @@ -813,6 +1165,10 @@ bnxt_hwrm_stat_ctx_alloc(struct bnxt_softc *softc, struct bnxt_cp_ring *cpr, req.update_period_ms = htole32(1000); req.stats_dma_addr = htole64(paddr); + if (BNXT_CHIP_P5(softc)) + req.stats_dma_length = htole16(sizeof(struct ctx_hw_stats_ext) - 8); + else + req.stats_dma_length = htole16(sizeof(struct ctx_hw_stats)); BNXT_HWRM_LOCK(softc); rc = _hwrm_send_message(softc, &req, sizeof(req)); @@ -943,6 +1299,9 @@ bnxt_hwrm_rss_cfg(struct bnxt_softc *softc, struct bnxt_vnic_info *vnic, { struct hwrm_vnic_rss_cfg_input req = {0}; + /* TBD */ + if (BNXT_CHIP_P5(softc)) + return 0; bnxt_hwrm_cmd_hdr_init(softc, &req, HWRM_VNIC_RSS_CFG); req.hash_type = htole32(hash_type); @@ -953,6 +1312,32 @@ bnxt_hwrm_rss_cfg(struct bnxt_softc *softc, struct bnxt_vnic_info *vnic, return hwrm_send_message(softc, &req, sizeof(req)); } +int +bnxt_hwrm_reserve_pf_rings(struct bnxt_softc *softc) +{ + struct hwrm_func_cfg_input req = {0}; + + bnxt_hwrm_cmd_hdr_init(softc, &req, HWRM_FUNC_CFG); + + req.fid = htole16(0xffff); + req.enables |= htole32(HWRM_FUNC_CFG_INPUT_ENABLES_NUM_RSSCOS_CTXS); + req.enables |= htole32(HWRM_FUNC_CFG_INPUT_ENABLES_NUM_CMPL_RINGS); + req.enables |= htole32(HWRM_FUNC_CFG_INPUT_ENABLES_NUM_TX_RINGS); + req.enables |= htole32(HWRM_FUNC_CFG_INPUT_ENABLES_NUM_RX_RINGS); + req.enables |= htole32(HWRM_FUNC_CFG_INPUT_ENABLES_NUM_VNICS); + req.enables |= htole32(HWRM_FUNC_CFG_INPUT_ENABLES_NUM_MSIX); + req.enables |= htole32(HWRM_FUNC_CFG_INPUT_ENABLES_NUM_STAT_CTXS); + req.num_msix = htole16(BNXT_MAX_NUM_QUEUES); + req.num_rsscos_ctxs = htole16(0x8); + req.num_cmpl_rings = htole16(BNXT_MAX_NUM_QUEUES * 2); + req.num_tx_rings = htole16(BNXT_MAX_NUM_QUEUES); + req.num_rx_rings = htole16(BNXT_MAX_NUM_QUEUES); + req.num_vnics = htole16(BNXT_MAX_NUM_QUEUES); + req.num_stat_ctxs = htole16(BNXT_MAX_NUM_QUEUES * 2); + + return hwrm_send_message(softc, &req, sizeof(req)); +} + int bnxt_cfg_async_cr(struct bnxt_softc *softc) { @@ -1008,6 +1393,9 @@ bnxt_hwrm_vnic_tpa_cfg(struct bnxt_softc *softc) return 0; } + if (!(softc->flags & BNXT_FLAG_TPA)) + return 0; + bnxt_hwrm_cmd_hdr_init(softc, &req, HWRM_VNIC_TPA_CFG); if (softc->hw_lro.enable) { @@ -1548,14 +1936,14 @@ bnxt_hwrm_port_phy_qcfg(struct bnxt_softc *softc) link_info->auto_mode = resp->auto_mode; /* - * When AUTO_PAUSE_AUTONEG_PAUSE bit is set to 1, + * When AUTO_PAUSE_AUTONEG_PAUSE bit is set to 1, * the advertisement of pause is enabled. * 1. When the auto_mode is not set to none and this flag is set to 1, * then the auto_pause bits on this port are being advertised and * autoneg pause results are being interpreted. * 2. When the auto_mode is not set to none and this flag is set to 0, - * the pause is forced as indicated in force_pause, and also - * advertised as auto_pause bits, but the autoneg results are not + * the pause is forced as indicated in force_pause, and also + * advertised as auto_pause bits, but the autoneg results are not * interpreted since the pause configuration is being forced. * 3. When the auto_mode is set to none and this flag is set to 1, * auto_pause bits should be ignored and should be set to 0. @@ -1565,7 +1953,7 @@ bnxt_hwrm_port_phy_qcfg(struct bnxt_softc *softc) link_info->flow_ctrl.tx = false; link_info->flow_ctrl.rx = false; - if ((resp->auto_mode) && + if ((resp->auto_mode) && (resp->auto_pause & BNXT_AUTO_PAUSE_AUTONEG_PAUSE)) { link_info->flow_ctrl.autoneg = true; } @@ -1739,7 +2127,7 @@ int bnxt_hwrm_set_coal(struct bnxt_softc *softc) buf_tmr_irq << 16 | buf_tmr, flags, &req_tx); for (i = 0; i < softc->nrxqsets; i++) { - + req = &req_rx; /* * TBD: @@ -1765,14 +2153,18 @@ int bnxt_hwrm_func_rgtr_async_events(struct bnxt_softc *softc, unsigned long *bm uint32_t *events; int i; -#define AE_BMAP_SZ_BITS 256 - async_events_bmap = bit_alloc(AE_BMAP_SZ_BITS, M_DEVBUF, M_WAITOK); +#define BNXT_MAX_NUM_ASYNC_EVENTS 256 + async_events_bmap = bit_alloc(BNXT_MAX_NUM_ASYNC_EVENTS, M_DEVBUF, + M_WAITOK|M_ZERO); + events = (uint32_t *)async_events_bmap; bnxt_hwrm_cmd_hdr_init(softc, &req, HWRM_FUNC_DRV_RGTR); req.enables = htole32(HWRM_FUNC_DRV_RGTR_INPUT_ENABLES_ASYNC_EVENT_FWD); + memset(async_events_bmap, 0, sizeof(BNXT_MAX_NUM_ASYNC_EVENTS / 8)); + bit_set(async_events_bmap, HWRM_ASYNC_EVENT_CMPL_EVENT_ID_LINK_STATUS_CHANGE); bit_set(async_events_bmap, HWRM_ASYNC_EVENT_CMPL_EVENT_ID_PF_DRVR_UNLOAD); bit_set(async_events_bmap, HWRM_ASYNC_EVENT_CMPL_EVENT_ID_PORT_CONN_NOT_ALLOWED); @@ -1786,14 +2178,30 @@ int bnxt_hwrm_func_rgtr_async_events(struct bnxt_softc *softc, unsigned long *bm } } -#define AE_BMAP_SZ_WORDS (AE_BMAP_SZ_BITS / 8 / sizeof(uint32_t)) - events = (uint32_t *)async_events_bmap; - for (i = 0; i < AE_BMAP_SZ_WORDS; i++) *** 2072 LINES SKIPPED *** From nobody Thu Jan 19 03:52:13 2023 X-Original-To: dev-commits-src-branches@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 4Ny7xB0qk6z2svWh; Thu, 19 Jan 2023 03:52:14 +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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Ny7xB0cc4z3hpX; Thu, 19 Jan 2023 03:52:14 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1674100334; 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=pb1ydH9QxqO70ye0FgyP7MsvDYDDA4sPQ408VUD48ng=; b=egdd2ZfRTLPhXtZeGf3zFtBKRzuKrFDtdZQiPwxGNDItYOmJsfzLIwffgjvnJ46YCh4N4s BERLe1/7le+pl4ObmNO4CHjkQSOxbIF+8Byv7lNLs/NoS2AKiaiOKt/bv27zb+InKHgdCu n+6lAtC3nx8TAj3uDHV5v/UU+qr0vvgldA2IYYshqmA+6pnG5kMPfBj317yhVhDFTwLx/P nBdIfMxHrEOzonu97BnXaL3pLVOTz0FXLG1+2I/1m+HMqQNMeQWJ66vsIV4IOkY1YT4Ufg pJ3vxPgGR26kQ0K+mhnDa52z0PqtRR4bv6LCKQS0vLUZkevkptkq5OwRQGP90g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1674100334; 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=pb1ydH9QxqO70ye0FgyP7MsvDYDDA4sPQ408VUD48ng=; b=ZAOSuDpNkKZ025eP9623taim6ldoxGbutC+x1uglzNYOnumLCktiUq76d1/6BW7IdFZxfN jCFPRYaZ+TuxRymDt1xBcCosTpSkw+oyrwK2Jug/gQoUMlXoFYFH1O1ZouUVhvhwIZZdTg HP7rOuD8Lpsbh6tyfGhT3+2FxkaupuJUSDmR45p56M7cULSumbvayZSiU9/vSOrDd3x9Do bnhHbPR8rSDR4sGxGQwBhPO66Me89h/DehkOcQZJlnIuWnlPcl7jJqg8UrXTOwW5RTBGhl Xp+RifpKwh8iYCZhXUb2uWWpeQwD47+hdIsVTyrxOaNgijrYnKN6WqQfveFOFA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1674100334; a=rsa-sha256; cv=none; b=q+D2kxY81NNTW+S5zTBqh10Ou775zHaIJ05bPxVWdLw29L2uYLNKywUnewvDCg5OV7agpC H2hID0MP1KeNM9BEEkCjLvjTZKj8eSH2mGtE3yiqSdEotQFf/dZuI2BLghIaFfFYHYu/PQ bwhLt72F9WUbxH4/Wgm9jcyXYAMPjLSESbnkfTM3mGoRAZNkl9kQ8AjcLeXw8DuHXY0cjq Djf8Eqp46O4LeXIknN2OoAX7uj5lANYPasG3qz6NMY+uQevPMyMLumxRWn0DMRiz5qAuza 9RRB0asTSw8kLBgxhURgRUoZT2oBSNyC/n8ufEtiRovEd9riRX1ctEA5FJJFfQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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 did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Ny7x96qRfzcPZ; Thu, 19 Jan 2023 03:52:13 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 30J3qDIQ021971; Thu, 19 Jan 2023 03:52:13 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 30J3qDUP021970; Thu, 19 Jan 2023 03:52:13 GMT (envelope-from git) Date: Thu, 19 Jan 2023 03:52:13 GMT Message-Id: <202301190352.30J3qDUP021970@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Warner Losh Subject: git: c4cad5c10820 - stable/13 - if_bnxt: Add support for admin down/up and jumbo List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: imp X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: c4cad5c10820b2196f123467ce39a182784533b8 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by imp: URL: https://cgit.FreeBSD.org/src/commit/?id=c4cad5c10820b2196f123467ce39a182784533b8 commit c4cad5c10820b2196f123467ce39a182784533b8 Author: Sumit Saxena AuthorDate: 2022-11-04 22:11:10 +0000 Commit: Warner Losh CommitDate: 2023-01-19 01:00:06 +0000 if_bnxt: Add support for admin down/up and jumbo Make ifconfig up/down work, as well as adding support for jumbo frames. Reviewed by: imp Differential Revision: https://reviews.freebsd.org/D36439 (cherry picked from commit 055196a7d777509bebab0e718a0d333cf2660178) --- sys/dev/bnxt/bnxt.h | 1 + sys/dev/bnxt/bnxt_hwrm.c | 181 +++++++++++++++++++++++++++++++++++++++++++++-- sys/dev/bnxt/bnxt_hwrm.h | 10 ++- sys/dev/bnxt/bnxt_txrx.c | 2 +- sys/dev/bnxt/if_bnxt.c | 116 ++++++++++++++++++++++++++++-- 5 files changed, 296 insertions(+), 14 deletions(-) diff --git a/sys/dev/bnxt/bnxt.h b/sys/dev/bnxt/bnxt.h index 5a68b24e44f5..61c0a0f8bd36 100644 --- a/sys/dev/bnxt/bnxt.h +++ b/sys/dev/bnxt/bnxt.h @@ -714,6 +714,7 @@ struct bnxt_softc { struct bnxt_grp_info *grp_info; struct iflib_dma_info rx_stats[BNXT_MAX_NUM_QUEUES]; int nrxqsets; + uint16_t rx_buf_size; struct bnxt_cp_ring def_cp_ring; struct bnxt_cp_ring def_nq_ring; diff --git a/sys/dev/bnxt/bnxt_hwrm.c b/sys/dev/bnxt/bnxt_hwrm.c index 981bab37c181..761b08f6925d 100644 --- a/sys/dev/bnxt/bnxt_hwrm.c +++ b/sys/dev/bnxt/bnxt_hwrm.c @@ -913,6 +913,29 @@ bnxt_hwrm_set_link_setting(struct bnxt_softc *softc, bool set_pause, return rc; } +int +bnxt_hwrm_vnic_set_hds(struct bnxt_softc *softc, struct bnxt_vnic_info *vnic) +{ + struct hwrm_vnic_plcmodes_cfg_input req = {0}; + + if (!BNXT_CHIP_P5(softc)) + return 0; + + bnxt_hwrm_cmd_hdr_init(softc, &req, HWRM_VNIC_PLCMODES_CFG); + + /* + * TBD -- Explore these flags + * 1. VNIC_PLCMODES_CFG_REQ_FLAGS_HDS_IPV4 + * 2. VNIC_PLCMODES_CFG_REQ_FLAGS_HDS_IPV6 + * 3. req.jumbo_thresh + * 4. req.hds_threshold + */ + req.flags = htole32(HWRM_VNIC_PLCMODES_CFG_INPUT_FLAGS_JUMBO_PLACEMENT); + req.vnic_id = htole16(vnic->id); + + return hwrm_send_message(softc, &req, sizeof(req)); +} + int bnxt_hwrm_vnic_cfg(struct bnxt_softc *softc, struct bnxt_vnic_info *vnic) { @@ -950,6 +973,29 @@ bnxt_hwrm_vnic_cfg(struct bnxt_softc *softc, struct bnxt_vnic_info *vnic) return hwrm_send_message(softc, &req, sizeof(req)); } +int +bnxt_hwrm_vnic_free(struct bnxt_softc *softc, struct bnxt_vnic_info *vnic) +{ + struct hwrm_vnic_free_input req = {0}; + int rc = 0; + + if (vnic->id == (uint16_t)HWRM_NA_SIGNATURE) + return rc; + + bnxt_hwrm_cmd_hdr_init(softc, &req, HWRM_VNIC_FREE); + + req.vnic_id = htole32(vnic->id); + + BNXT_HWRM_LOCK(softc); + rc = _hwrm_send_message(softc, &req, sizeof(req)); + if (rc) + goto fail; + +fail: + BNXT_HWRM_UNLOCK(softc); + return (rc); +} + int bnxt_hwrm_vnic_alloc(struct bnxt_softc *softc, struct bnxt_vnic_info *vnic) { @@ -981,6 +1027,27 @@ fail: return (rc); } +int +bnxt_hwrm_vnic_ctx_free(struct bnxt_softc *softc, uint16_t ctx_id) +{ + struct hwrm_vnic_rss_cos_lb_ctx_free_input req = {0}; + int rc = 0; + + if (ctx_id == (uint16_t)HWRM_NA_SIGNATURE) + return rc; + + bnxt_hwrm_cmd_hdr_init(softc, &req, HWRM_VNIC_RSS_COS_LB_CTX_FREE); + req.rss_cos_lb_ctx_id = htole16(ctx_id); + BNXT_HWRM_LOCK(softc); + rc = _hwrm_send_message(softc, &req, sizeof(req)); + if (rc) + goto fail; + +fail: + BNXT_HWRM_UNLOCK(softc); + return rc; +} + int bnxt_hwrm_vnic_ctx_alloc(struct bnxt_softc *softc, uint16_t *ctx_id) { @@ -1044,6 +1111,64 @@ fail: return rc; } +int +bnxt_hwrm_ring_grp_free(struct bnxt_softc *softc, struct bnxt_grp_info *grp) +{ + struct hwrm_ring_grp_free_input req = {0}; + int rc = 0; + + if (grp->grp_id == (uint16_t)HWRM_NA_SIGNATURE) + return 0; + + if (BNXT_CHIP_P5 (softc)) + return 0; + + bnxt_hwrm_cmd_hdr_init(softc, &req, HWRM_RING_GRP_FREE); + + req.ring_group_id = htole32(grp->grp_id); + + BNXT_HWRM_LOCK(softc); + rc = _hwrm_send_message(softc, &req, sizeof(req)); + if (rc) + goto fail; + +fail: + BNXT_HWRM_UNLOCK(softc); + return rc; +} + +int bnxt_hwrm_ring_free(struct bnxt_softc *softc, uint32_t ring_type, + struct bnxt_ring *ring, int cmpl_ring_id) +{ + struct hwrm_ring_free_input req = {0}; + struct hwrm_ring_free_output *resp; + int rc = 0; + uint16_t error_code; + + if (ring->phys_id == (uint16_t)HWRM_NA_SIGNATURE) + return 0; + + resp = (void *)softc->hwrm_cmd_resp.idi_vaddr; + bnxt_hwrm_cmd_hdr_init(softc, &req, HWRM_RING_FREE); + req.cmpl_ring = htole16(cmpl_ring_id); + req.ring_type = ring_type; + req.ring_id = htole16(ring->phys_id); + + BNXT_HWRM_LOCK(softc); + rc = _hwrm_send_message(softc, &req, sizeof(req)); + error_code = le16toh(resp->error_code); + + if (rc || error_code) { + device_printf(softc->dev, "hwrm_ring_free type %d failed. " + "rc:%x err:%x\n", ring_type, rc, error_code); + if (!rc) + rc = -EIO; + } + + BNXT_HWRM_UNLOCK(softc); + return rc; +} + /* * Ring allocation message to the firmware */ @@ -1091,8 +1216,7 @@ bnxt_hwrm_ring_alloc(struct bnxt_softc *softc, uint8_t type, cp_ring = &softc->rx_cp_rings[idx]; req.stat_ctx_id = htole32(cp_ring->stats_ctx_id); - req.rx_buf_size = htole16( - softc->scctx->isc_max_frame_size); + req.rx_buf_size = htole16(softc->rx_buf_size); req.enables |= htole32( HWRM_RING_ALLOC_INPUT_ENABLES_RX_BUF_SIZE_VALID | HWRM_RING_ALLOC_INPUT_ENABLES_STAT_CTX_ID_VALID); @@ -1107,8 +1231,7 @@ bnxt_hwrm_ring_alloc(struct bnxt_softc *softc, uint8_t type, req.rx_ring_id = htole16(softc->rx_rings[idx].phys_id); req.stat_ctx_id = htole32(cp_ring->stats_ctx_id); - req.rx_buf_size = htole16( - softc->scctx->isc_max_frame_size); + req.rx_buf_size = htole16(softc->rx_buf_size); req.enables |= htole32( HWRM_RING_ALLOC_INPUT_ENABLES_RX_RING_ID_VALID | HWRM_RING_ALLOC_INPUT_ENABLES_RX_BUF_SIZE_VALID | @@ -1145,6 +1268,29 @@ fail: return rc; } +int +bnxt_hwrm_stat_ctx_free(struct bnxt_softc *softc, struct bnxt_cp_ring *cpr) +{ + struct hwrm_stat_ctx_free_input req = {0}; + int rc = 0; + + if (cpr->stats_ctx_id == HWRM_NA_SIGNATURE) + return rc; + + bnxt_hwrm_cmd_hdr_init(softc, &req, HWRM_STAT_CTX_FREE); + + req.stat_ctx_id = htole16(cpr->stats_ctx_id); + BNXT_HWRM_LOCK(softc); + rc = _hwrm_send_message(softc, &req, sizeof(req)); + if (rc) + goto fail; + +fail: + BNXT_HWRM_UNLOCK(softc); + + return rc; +} + int bnxt_hwrm_stat_ctx_alloc(struct bnxt_softc *softc, struct bnxt_cp_ring *cpr, uint64_t paddr) @@ -1253,6 +1399,29 @@ bnxt_hwrm_cfa_l2_set_rx_mask(struct bnxt_softc *softc, return hwrm_send_message(softc, &req, sizeof(req)); } +int +bnxt_hwrm_free_filter(struct bnxt_softc *softc, struct bnxt_vnic_info *vnic) +{ + struct hwrm_cfa_l2_filter_free_input req = {0}; + int rc = 0; + + if (vnic->filter_id == -1) + return rc; + + bnxt_hwrm_cmd_hdr_init(softc, &req, HWRM_CFA_L2_FILTER_FREE); + + req.l2_filter_id = htole64(vnic->filter_id); + + BNXT_HWRM_LOCK(softc); + rc = _hwrm_send_message(softc, &req, sizeof(req)); + if (rc) + goto fail; + +fail: + BNXT_HWRM_UNLOCK(softc); + return (rc); +} + int bnxt_hwrm_set_filter(struct bnxt_softc *softc, struct bnxt_vnic_info *vnic) { @@ -1403,12 +1572,12 @@ bnxt_hwrm_vnic_tpa_cfg(struct bnxt_softc *softc) HWRM_VNIC_TPA_CFG_INPUT_FLAGS_ENCAP_TPA | HWRM_VNIC_TPA_CFG_INPUT_FLAGS_AGG_WITH_ECN | HWRM_VNIC_TPA_CFG_INPUT_FLAGS_AGG_WITH_SAME_GRE_SEQ; - + if (softc->hw_lro.is_mode_gro) flags |= HWRM_VNIC_TPA_CFG_INPUT_FLAGS_GRO; else flags |= HWRM_VNIC_TPA_CFG_INPUT_FLAGS_RSC_WND_UPDATE; - + req.flags = htole32(flags); req.enables = htole32(HWRM_VNIC_TPA_CFG_INPUT_ENABLES_MAX_AGG_SEGS | diff --git a/sys/dev/bnxt/bnxt_hwrm.h b/sys/dev/bnxt/bnxt_hwrm.h index ef1071e0aad6..ad308f0bbbdd 100644 --- a/sys/dev/bnxt/bnxt_hwrm.h +++ b/sys/dev/bnxt/bnxt_hwrm.h @@ -43,6 +43,8 @@ int bnxt_alloc_hwrm_dma_mem(struct bnxt_softc *softc); void bnxt_free_hwrm_dma_mem(struct bnxt_softc *softc); int bnxt_hwrm_ring_alloc(struct bnxt_softc *softc, uint8_t type, struct bnxt_ring *ring); +int bnxt_hwrm_ring_free(struct bnxt_softc *softc, uint32_t type, + struct bnxt_ring *ring, int cmpl_ring_id); int bnxt_hwrm_ver_get(struct bnxt_softc *softc); int bnxt_hwrm_queue_qportcfg(struct bnxt_softc *softc); int bnxt_hwrm_func_drv_rgtr(struct bnxt_softc *softc); @@ -54,16 +56,22 @@ int bnxt_hwrm_set_link_setting(struct bnxt_softc *softc, bool set_pause, bool set_eee, bool set_link); int bnxt_hwrm_set_pause(struct bnxt_softc *softc); int bnxt_hwrm_vnic_ctx_alloc(struct bnxt_softc *softc, uint16_t *ctx_id); +int bnxt_hwrm_vnic_ctx_free(struct bnxt_softc *softc, uint16_t ctx_id); +int bnxt_hwrm_vnic_set_hds(struct bnxt_softc *sc, struct bnxt_vnic_info *vnic); int bnxt_hwrm_vnic_cfg(struct bnxt_softc *softc, struct bnxt_vnic_info *vnic); +int bnxt_hwrm_vnic_alloc(struct bnxt_softc *softc, struct bnxt_vnic_info *vnic); +int bnxt_hwrm_vnic_free(struct bnxt_softc *softc, struct bnxt_vnic_info *vnic); int bnxt_hwrm_stat_ctx_alloc(struct bnxt_softc *softc, struct bnxt_cp_ring *cpr, uint64_t paddr); +int bnxt_hwrm_stat_ctx_free(struct bnxt_softc *softc, struct bnxt_cp_ring *cpr); int bnxt_hwrm_port_qstats(struct bnxt_softc *softc); int bnxt_hwrm_ring_grp_alloc(struct bnxt_softc *softc, struct bnxt_grp_info *grp); -int bnxt_hwrm_vnic_alloc(struct bnxt_softc *softc, struct bnxt_vnic_info *vnic); +int bnxt_hwrm_ring_grp_free(struct bnxt_softc *softc, struct bnxt_grp_info *gr); int bnxt_hwrm_cfa_l2_set_rx_mask(struct bnxt_softc *softc, struct bnxt_vnic_info *vnic); int bnxt_hwrm_set_filter(struct bnxt_softc *softc, struct bnxt_vnic_info *vnic); +int bnxt_hwrm_free_filter(struct bnxt_softc *softc, struct bnxt_vnic_info *vnc); int bnxt_hwrm_rss_cfg(struct bnxt_softc *softc, struct bnxt_vnic_info *vnic, uint32_t hash_type); int bnxt_cfg_async_cr(struct bnxt_softc *softc); diff --git a/sys/dev/bnxt/bnxt_txrx.c b/sys/dev/bnxt/bnxt_txrx.c index 7ea5beab3180..c6e05be29e0e 100644 --- a/sys/dev/bnxt/bnxt_txrx.c +++ b/sys/dev/bnxt/bnxt_txrx.c @@ -282,7 +282,7 @@ bnxt_isc_rxd_refill(void *sc, if_rxd_update_t iru) for (i=0; iscctx->isc_max_frame_size); + rxbd[pidx].len = htole16(softc->rx_buf_size); /* No need to byte-swap the opaque value */ rxbd[pidx].opaque = (((rxqid & 0xff) << 24) | (flid << 16) | (frag_idxs[i])); diff --git a/sys/dev/bnxt/if_bnxt.c b/sys/dev/bnxt/if_bnxt.c index 2bdae7f452d3..06b5bbfb907e 100644 --- a/sys/dev/bnxt/if_bnxt.c +++ b/sys/dev/bnxt/if_bnxt.c @@ -1560,6 +1560,8 @@ bnxt_attach_post(if_ctx_t ctx) softc->scctx->isc_max_frame_size = ifp->if_mtu + ETHER_HDR_LEN + ETHER_CRC_LEN; + softc->rx_buf_size = min(softc->scctx->isc_max_frame_size, BNXT_PAGE_SIZE); + failed: return rc; } @@ -1613,6 +1615,108 @@ bnxt_detach(if_ctx_t ctx) return 0; } +static void +bnxt_hwrm_resource_free(struct bnxt_softc *softc) +{ + int i, rc = 0; + + rc = bnxt_hwrm_ring_free(softc, + HWRM_RING_ALLOC_INPUT_RING_TYPE_L2_CMPL, + &softc->def_cp_ring.ring, + (uint16_t)HWRM_NA_SIGNATURE); + if (rc) + goto fail; + + for (i = 0; i < softc->ntxqsets; i++) { + rc = bnxt_hwrm_ring_free(softc, + HWRM_RING_ALLOC_INPUT_RING_TYPE_TX, + &softc->tx_rings[i], + softc->tx_cp_rings[i].ring.phys_id); + if (rc) + goto fail; + + rc = bnxt_hwrm_ring_free(softc, + HWRM_RING_ALLOC_INPUT_RING_TYPE_L2_CMPL, + &softc->tx_cp_rings[i].ring, + (uint16_t)HWRM_NA_SIGNATURE); + if (rc) + goto fail; + + rc = bnxt_hwrm_stat_ctx_free(softc, &softc->tx_cp_rings[i]); + if (rc) + goto fail; + } + rc = bnxt_hwrm_free_filter(softc, &softc->vnic_info); + if (rc) + goto fail; + + rc = bnxt_hwrm_vnic_free(softc, &softc->vnic_info); + if (rc) + goto fail; + + rc = bnxt_hwrm_vnic_ctx_free(softc, softc->vnic_info.rss_id); + if (rc) + goto fail; + + for (i = 0; i < softc->nrxqsets; i++) { + rc = bnxt_hwrm_ring_grp_free(softc, &softc->grp_info[i]); + if (rc) + goto fail; + + rc = bnxt_hwrm_ring_free(softc, + HWRM_RING_ALLOC_INPUT_RING_TYPE_RX_AGG, + &softc->ag_rings[i], + (uint16_t)HWRM_NA_SIGNATURE); + if (rc) + goto fail; + + rc = bnxt_hwrm_ring_free(softc, + HWRM_RING_ALLOC_INPUT_RING_TYPE_RX, + &softc->rx_rings[i], + softc->rx_cp_rings[i].ring.phys_id); + if (rc) + goto fail; + + rc = bnxt_hwrm_ring_free(softc, + HWRM_RING_ALLOC_INPUT_RING_TYPE_L2_CMPL, + &softc->rx_cp_rings[i].ring, + (uint16_t)HWRM_NA_SIGNATURE); + if (rc) + goto fail; + + if (BNXT_CHIP_P5(softc)) { + rc = bnxt_hwrm_ring_free(softc, + HWRM_RING_ALLOC_INPUT_RING_TYPE_NQ, + &softc->nq_rings[i].ring, + (uint16_t)HWRM_NA_SIGNATURE); + if (rc) + goto fail; + } + + rc = bnxt_hwrm_stat_ctx_free(softc, &softc->rx_cp_rings[i]); + if (rc) + goto fail; + } + +fail: + return; +} + + +static void +bnxt_func_reset(struct bnxt_softc *softc) +{ + + if (!BNXT_CHIP_P5(softc)) { + bnxt_hwrm_func_reset(softc); + return; + } + + bnxt_hwrm_resource_free(softc); + return; +} + + /* Device configuration */ static void bnxt_init(if_ctx_t ctx) @@ -1689,8 +1793,6 @@ skip_def_cp_ring: goto fail; softc->db_ops.bnxt_db_rx(&softc->rx_rings[i], 0); - if (!(softc->flags & BNXT_FLAG_TPA)) - goto skip_agg_rings; /* Allocate the AG ring */ rc = bnxt_hwrm_ring_alloc(softc, HWRM_RING_ALLOC_INPUT_RING_TYPE_RX_AGG, @@ -1698,7 +1800,6 @@ skip_def_cp_ring: if (rc) goto fail; softc->db_ops.bnxt_db_rx(&softc->ag_rings[i], 0); -skip_agg_rings: /* Allocate the ring group */ softc->grp_info[i].stats_ctx = @@ -1724,6 +1825,9 @@ skip_agg_rings: if (rc) goto fail; rc = bnxt_hwrm_vnic_cfg(softc, &softc->vnic_info); + if (rc) + goto fail; + rc = bnxt_hwrm_vnic_set_hds(softc, &softc->vnic_info); if (rc) goto fail; rc = bnxt_hwrm_set_filter(softc, &softc->vnic_info); @@ -1783,7 +1887,7 @@ skip_agg_rings: return; fail: - bnxt_hwrm_func_reset(softc); + bnxt_func_reset(softc); bnxt_clear_ids(softc); return; } @@ -1795,8 +1899,7 @@ bnxt_stop(if_ctx_t ctx) bnxt_do_disable_intr(&softc->def_cp_ring); bnxt_hwrm_func_reset(softc); - if (!BNXT_CHIP_P5(softc)) - bnxt_hwrm_func_reset(softc); + bnxt_func_reset(softc); bnxt_clear_ids(softc); return; } @@ -1853,6 +1956,7 @@ bnxt_mtu_set(if_ctx_t ctx, uint32_t mtu) return EINVAL; softc->scctx->isc_max_frame_size = mtu + ETHER_HDR_LEN + ETHER_CRC_LEN; + softc->rx_buf_size = min(softc->scctx->isc_max_frame_size, BNXT_PAGE_SIZE); return 0; } From nobody Thu Jan 19 03:52:14 2023 X-Original-To: dev-commits-src-branches@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 4Ny7xC1mmwz2sv8P; Thu, 19 Jan 2023 03:52:15 +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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Ny7xC1Kz1z3hqT; Thu, 19 Jan 2023 03:52:15 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1674100335; 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=9CpEXYa5UIl8qwZLLT6irWPGCRZEcVgHdYML725MSBY=; b=hAeWh2L9gMQP/vUmD5MUtgo9Fr084hMhDAssYVwb7Iy6ROe4555CopxcouNQu8WpQSdPcz OHF++u3N1MbG6ne+hkZTtSoXOI6LF7pHVtqn5nLrG/fcn7VFV1q3TJYUxzERi4Z4xzSLLG imkDWhBucK3VIzeio7007FbQZ2CgLoB8M57yTfLCNmKkU+t8JB9COvM77CK5LZADtxBizD ThbzKBy50DXdo0NPPoL/N3O+6K2uPIpb+TZWScPyWn+kEZDGld95AaVWhmAbiZxeBfHXEg 4nM0mYcPSp+gnDznf++ElyxhNrTPoegLttPed6yAWCpiP0lRf5v0K4lx1ueBIg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1674100335; 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=9CpEXYa5UIl8qwZLLT6irWPGCRZEcVgHdYML725MSBY=; b=QLtoUl7ki+7htQuaYfYo9hKTLwVDe1k6DLLFceJS9dN2LUlSaM6pLjD5s6wyfuNLC0cAiT JdXweKj9YU6+iQ6otbUsVd/GBd/Z/IJsgmS4Ekmb5Ro8965Xi7KcJKKd8BxtKk5DhoZUmY fQpXav/VCai8JHMO2JVLJLRFc1Zzhz+WbOfyHzv02A4d/sDJLOAk6D4S4Kf8J0Xcc5K+b5 I2P8a6Fy9zqNaLceGj+GbtpyxZTOk6ENCITHqlOhwjEzEzOpZRl1ORztf+psXlZskhty+h BxMY9RGTozOE3PmimZbrfMqd2KcEyPJJRO56wmGcZDplAUBB0dc2jJ3mxMQKzA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1674100335; a=rsa-sha256; cv=none; b=gxXfoRcePnAKWA6GkpfSQeAdiLnhbGzqnOFMDwOpgoz1zJ36eJ5A0AR1XKz7DXchQPQQrQ kGfYFekoisP1xlt2WdIqPpqtHAXlIGyCtbLAkGBb0e+DPe+0Ozqh9Y9pa3Mb5gPahxjANM B35OerXRiE+6Ac0Kl2yYiauvph8VP3JuEiMBuZtUVaGMtUdHfF3uKAKhkDZJs7cHafYB2c Y65i1vb0gGAFGZLIO8xc6sEuZ52YQib16WQwnDKINIWVhENzTjfTV2nimIXHBMOolSZMO6 iZWDvQe9vUxPeGSHXtnbwlv5zqnF6yOBhx3C50FWMbJ983Aw5tZSuh4IreOLgw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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 did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Ny7xC0RKpzcZL; Thu, 19 Jan 2023 03:52:15 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 30J3qEQg022001; Thu, 19 Jan 2023 03:52:14 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 30J3qEvB022000; Thu, 19 Jan 2023 03:52:14 GMT (envelope-from git) Date: Thu, 19 Jan 2023 03:52:14 GMT Message-Id: <202301190352.30J3qEvB022000@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Warner Losh Subject: git: 2f1d2b99e734 - stable/13 - if_bnxt: Add support for async link status update List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: imp X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: 2f1d2b99e73442a143da20d91971f0dd89209881 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by imp: URL: https://cgit.FreeBSD.org/src/commit/?id=2f1d2b99e73442a143da20d91971f0dd89209881 commit 2f1d2b99e73442a143da20d91971f0dd89209881 Author: Sumit Saxena AuthorDate: 2022-11-04 22:14:49 +0000 Commit: Warner Losh CommitDate: 2023-01-19 01:00:06 +0000 if_bnxt: Add support for async link status update Reivewed by: imp Differential Revision: https://reviews.freebsd.org/D36440 (cherry picked from commit fb4b7e02d236c2c06a87fc3dacd8af6bcfbfb5c1) --- sys/dev/bnxt/bnxt.h | 4 +++ sys/dev/bnxt/bnxt_hwrm.c | 27 +++++++---------- sys/dev/bnxt/if_bnxt.c | 75 +++++++++++++++++++++++++++++++++++++----------- 3 files changed, 73 insertions(+), 33 deletions(-) diff --git a/sys/dev/bnxt/bnxt.h b/sys/dev/bnxt/bnxt.h index 61c0a0f8bd36..753d1aac92de 100644 --- a/sys/dev/bnxt/bnxt.h +++ b/sys/dev/bnxt/bnxt.h @@ -36,6 +36,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include @@ -666,6 +667,9 @@ struct bnxt_softc { #define BNXT_FLAG_CHIP_P5 0x0020 #define BNXT_FLAG_TPA 0x0040 uint32_t flags; +#define BNXT_STATE_LINK_CHANGE (0) +#define BNXT_STATE_MAX (BNXT_STATE_LINK_CHANGE + 1) + bitstr_t *state_bv; uint32_t total_msix; struct bnxt_func_info func; diff --git a/sys/dev/bnxt/bnxt_hwrm.c b/sys/dev/bnxt/bnxt_hwrm.c index 761b08f6925d..eb1c60ac35d6 100644 --- a/sys/dev/bnxt/bnxt_hwrm.c +++ b/sys/dev/bnxt/bnxt_hwrm.c @@ -30,7 +30,6 @@ __FBSDID("$FreeBSD$"); #include -#include #include "bnxt.h" #include "bnxt_hwrm.h" @@ -1511,28 +1510,22 @@ int bnxt_cfg_async_cr(struct bnxt_softc *softc) { int rc = 0; + struct hwrm_func_cfg_input req = {0}; - if (BNXT_PF(softc)) { - struct hwrm_func_cfg_input req = {0}; + if (!BNXT_PF(softc)) + return 0; - bnxt_hwrm_cmd_hdr_init(softc, &req, HWRM_FUNC_CFG); + bnxt_hwrm_cmd_hdr_init(softc, &req, HWRM_FUNC_CFG); - req.fid = htole16(0xffff); - req.enables = htole32(HWRM_FUNC_CFG_INPUT_ENABLES_ASYNC_EVENT_CR); + req.fid = htole16(0xffff); + req.enables = htole32(HWRM_FUNC_CFG_INPUT_ENABLES_ASYNC_EVENT_CR); + if (BNXT_CHIP_P5(softc)) + req.async_event_cr = htole16(softc->nq_rings[0].ring.phys_id); + else req.async_event_cr = htole16(softc->def_cp_ring.ring.phys_id); - rc = hwrm_send_message(softc, &req, sizeof(req)); - } - else { - struct hwrm_func_vf_cfg_input req = {0}; - - bnxt_hwrm_cmd_hdr_init(softc, &req, HWRM_FUNC_VF_CFG); - - req.enables = htole32(HWRM_FUNC_VF_CFG_INPUT_ENABLES_ASYNC_EVENT_CR); - req.async_event_cr = htole16(softc->def_cp_ring.ring.phys_id); + rc = hwrm_send_message(softc, &req, sizeof(req)); - rc = hwrm_send_message(softc, &req, sizeof(req)); - } return rc; } diff --git a/sys/dev/bnxt/if_bnxt.c b/sys/dev/bnxt/if_bnxt.c index 06b5bbfb907e..6b4e7b516b67 100644 --- a/sys/dev/bnxt/if_bnxt.c +++ b/sys/dev/bnxt/if_bnxt.c @@ -1514,6 +1514,8 @@ bnxt_attach_pre(if_ctx_t ctx) /* Initialize the vlan list */ SLIST_INIT(&softc->vnic_info.vlan_tags); softc->vnic_info.vlan_tag_list.idi_vaddr = NULL; + softc->state_bv = bit_alloc(BNXT_STATE_MAX, M_DEVBUF, + M_WAITOK|M_ZERO); return (rc); @@ -1609,6 +1611,7 @@ bnxt_detach(if_ctx_t ctx) bnxt_free_hwrm_short_cmd_req(softc); BNXT_HWRM_LOCK_DESTROY(softc); + free(softc->state_bv, M_DEVBUF); pci_disable_busmaster(softc->dev); bnxt_pci_mapping_free(softc); @@ -1746,11 +1749,6 @@ bnxt_init(if_ctx_t ctx) if (rc) goto fail; skip_def_cp_ring: - /* And now set the default CP ring as the async CP ring */ - rc = bnxt_cfg_async_cr(softc); - if (rc) - goto fail; - for (i = 0; i < softc->nrxqsets; i++) { /* Allocate the statistics context */ rc = bnxt_hwrm_stat_ctx_alloc(softc, &softc->rx_cp_rings[i], @@ -1813,6 +1811,11 @@ skip_def_cp_ring: goto fail; } + /* And now set the default CP / NQ ring for the async */ + rc = bnxt_cfg_async_cr(softc); + if (rc) + goto fail; + /* Allocate the VNIC RSS context */ rc = bnxt_hwrm_vnic_ctx_alloc(softc, &softc->vnic_info.rss_id); if (rc) @@ -2138,10 +2141,20 @@ bnxt_update_admin_status(if_ctx_t ctx) /* * When SR-IOV is enabled, avoid each VF sending this HWRM - * request every sec with which firmware timeouts can happen - */ - if (BNXT_PF(softc)) { - bnxt_hwrm_port_qstats(softc); + * request every sec with which firmware timeouts can happen + */ + if (!BNXT_PF(softc)) + return; + + bnxt_hwrm_port_qstats(softc); + + if (BNXT_CHIP_P5(softc)) { + struct ifmediareq ifmr; + + if (bit_test(softc->state_bv, BNXT_STATE_LINK_CHANGE)) { + bit_clear(softc->state_bv, BNXT_STATE_LINK_CHANGE); + bnxt_media_status(softc->ctx, &ifmr); + } } return; @@ -2155,7 +2168,7 @@ bnxt_if_timer(if_ctx_t ctx, uint16_t qid) uint64_t ticks_now = ticks; /* Schedule bnxt_update_admin_status() once per sec */ - if (ticks_now - softc->admin_ticks >= hz) { + if (ticks_now - softc->admin_ticks >= hz) { softc->admin_ticks = ticks_now; iflib_admin_intr_deferred(ctx); } @@ -2222,6 +2235,34 @@ bnxt_tx_queue_intr_enable(if_ctx_t ctx, uint16_t qid) return 0; } +static void +bnxt_process_cmd_cmpl(struct bnxt_softc *softc, hwrm_cmpl_t *cmd_cmpl) +{ + device_printf(softc->dev, "cmd sequence number %d\n", + cmd_cmpl->sequence_id); + return; +} + +static void +bnxt_process_async_msg(struct bnxt_cp_ring *cpr, tx_cmpl_t *cmpl) +{ + struct bnxt_softc *softc = cpr->ring.softc; + uint16_t type = cmpl->flags_type & TX_CMPL_TYPE_MASK; + + switch (type) { + case HWRM_CMPL_TYPE_HWRM_DONE: + bnxt_process_cmd_cmpl(softc, (hwrm_cmpl_t *)cmpl); + break; + case HWRM_ASYNC_EVENT_CMPL_TYPE_HWRM_ASYNC_EVENT: + bnxt_handle_async_event(softc, (cmpl_base_t *) cmpl); + break; + default: + device_printf(softc->dev, "%s:%d Unhandled async message %x\n", + __FUNCTION__, __LINE__, type); + break; + } +} + static void process_nq(struct bnxt_softc *softc, uint16_t nqid) { @@ -2235,14 +2276,13 @@ process_nq(struct bnxt_softc *softc, uint16_t nqid) if (!NQ_VALID(&cmp[cons], v_bit)) goto done; - NEXT_CP_CONS_V(&cpr->ring, cons, v_bit); - nqe_cnt++; - nq_type = NQ_CN_TYPE_MASK & cmp[cons].type; - /* TBD - Handle Async events */ if (nq_type != NQ_CN_TYPE_CQ_NOTIFICATION) - device_printf(softc->dev, "%s: %d nq_type 0x%x\n", __FUNCTION__, __LINE__, nq_type); + bnxt_process_async_msg(cpr, (tx_cmpl_t *)&cmp[cons]); + + NEXT_CP_CONS_V(&cpr->ring, cons, v_bit); + nqe_cnt++; } done: if (nqe_cnt) { @@ -3110,7 +3150,10 @@ bnxt_handle_async_event(struct bnxt_softc *softc, struct cmpl_base *cmpl) case HWRM_ASYNC_EVENT_CMPL_EVENT_ID_LINK_STATUS_CHANGE: case HWRM_ASYNC_EVENT_CMPL_EVENT_ID_LINK_SPEED_CHANGE: case HWRM_ASYNC_EVENT_CMPL_EVENT_ID_LINK_SPEED_CFG_CHANGE: - bnxt_media_status(softc->ctx, &ifmr); + if (BNXT_CHIP_P5(softc)) + bit_set(softc->state_bv, BNXT_STATE_LINK_CHANGE); + else + bnxt_media_status(softc->ctx, &ifmr); break; case HWRM_ASYNC_EVENT_CMPL_EVENT_ID_LINK_MTU_CHANGE: case HWRM_ASYNC_EVENT_CMPL_EVENT_ID_DCB_CONFIG_CHANGE: From nobody Thu Jan 19 03:52:16 2023 X-Original-To: dev-commits-src-branches@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 4Ny7xD3sWRz2sv67; Thu, 19 Jan 2023 03:52:16 +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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Ny7xD2SMXz3hvg; Thu, 19 Jan 2023 03:52:16 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1674100336; 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=4rmRH9QaB4M7o94MDp2okezDiG6hEoqwFdbEy3vDRW4=; b=PHQKe3a2mzvdwuefa03Bsjc+OO9rrY5q6928gDX85brJg6ik8tVDSPTTX6qVYMgtsm7uJ4 IHsHJXnutF8TSo2Fp52Yq+vpgVtgYCtSB9g6kVXLM7nwCeg8dtpVZDfg0xBTdlgGh/mGIs OSiHnOzWaLUQZn9k2V1nfkK/J59IXYvnqNRH/oMUnV8PdhNG6mOPfnbanA5KdUzboqaGe8 /j105/iVmf9wtBev50cl2IFmv8jnAuxY2VJ0wcnZApX7TR3tqkBvJMJ+D9YAKWu+HdJJLM soyFrKUTCaTpZfdxepea4/e1sxP9DOspB7hgIzNY6DzDpFLinbMm24OE5AiF3g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1674100336; 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=4rmRH9QaB4M7o94MDp2okezDiG6hEoqwFdbEy3vDRW4=; b=hyp5tcyM2N6NZPDFvJdH4frrZjJkxJC9WTM89bGZvj5zjCrm6ew0/gLx1fw/4Jy0pGfYnm m5juyfq65Yr7humc9MYU6jG17G4NM6Iw+EcNoPBU2AhL8YpKUQFAi1Y+hybzO6uJjwyC4i nFF0goRL8hXk4zZSKWcbklLhIjyfhfsyROdzdcP1dWCejbqPn5T6/AtpBMa744Zy5rW97s WjvWXlCrdrXBDLraN5pk4tPJg5m7FN6KI9nDY1o/T3MJHiAE7HO5JM45G8HoL0iYAh0eg6 6VhyWrOPOnBo+LncG3bnT8+HgUtOVeieS4vvzMmDpRN9W5dfMv7rXF/GS/3gag== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1674100336; a=rsa-sha256; cv=none; b=ayo6bRjEmjGSkC1ZCZSD+/YBNCyAojBiQQ78j/ZEpCkYk32eePGQ6oNVrUhj+JR1NK5FKm MvRMJG0952NhK4XinUq/9bK7BBtqxKjXi6s45GQkfjCvMZdpA85Wof7q2hn0L6EaugXAY5 JIUykUTF/QtFEnZun13rj7WA/f5xd5AFVXJ344ASqBnq48HH/V7DE+mE3n//pwyVD8s4g+ maMQtU2om7qxY7FJl7WaE9H8K3YCHxyIKyAsMXsdVQ1uguorDFlzdW4c6TtM9g5zTKVOeI j4ZrMUDoJgEHjB1Tn4RguiPl3PGdEsvP39iL3QogY9Q/1Wm5pqEJv4Fzbeckaw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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 did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Ny7xD1YbdzcT3; Thu, 19 Jan 2023 03:52:16 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 30J3qGUp022026; Thu, 19 Jan 2023 03:52:16 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 30J3qGu8022025; Thu, 19 Jan 2023 03:52:16 GMT (envelope-from git) Date: Thu, 19 Jan 2023 03:52:16 GMT Message-Id: <202301190352.30J3qGu8022025@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Warner Losh Subject: git: 9142a68da29f - stable/13 - if_bnxt: Display firmware version along with SIT package version List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: imp X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: 9142a68da29fdfe28f9b1f3eeee34e661c5eed4f Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by imp: URL: https://cgit.FreeBSD.org/src/commit/?id=9142a68da29fdfe28f9b1f3eeee34e661c5eed4f commit 9142a68da29fdfe28f9b1f3eeee34e661c5eed4f Author: Sumit Saxena AuthorDate: 2022-11-04 22:18:38 +0000 Commit: Warner Losh CommitDate: 2023-01-19 01:00:06 +0000 if_bnxt: Display firmware version along with SIT package version Reviewed by: imp Differential Revision: https://reviews.freebsd.org/D36441 (cherry picked from commit 6033382aab2e6108e6faa273fd945274e161cd5b) --- sys/dev/bnxt/bnxt.h | 3 +++ sys/dev/bnxt/bnxt_hwrm.c | 28 ++++++++++++++++++++++++++++ sys/dev/bnxt/bnxt_sysctl.c | 3 +++ 3 files changed, 34 insertions(+) diff --git a/sys/dev/bnxt/bnxt.h b/sys/dev/bnxt/bnxt.h index 753d1aac92de..9638ad78fb6d 100644 --- a/sys/dev/bnxt/bnxt.h +++ b/sys/dev/bnxt/bnxt.h @@ -471,6 +471,8 @@ struct bnxt_full_tpa_start { /* All the version information for the part */ #define BNXT_VERSTR_SIZE (3*3+2+1) /* ie: "255.255.255\0" */ #define BNXT_NAME_SIZE 17 +#define FW_VER_STR_LEN 32 +#define BC_HWRM_STR_LEN 21 struct bnxt_ver_info { uint8_t hwrm_if_major; uint8_t hwrm_if_minor; @@ -481,6 +483,7 @@ struct bnxt_ver_info { char mgmt_fw_ver[BNXT_VERSTR_SIZE]; char netctrl_fw_ver[BNXT_VERSTR_SIZE]; char roce_fw_ver[BNXT_VERSTR_SIZE]; + char fw_ver_str[FW_VER_STR_LEN]; char phy_ver[BNXT_VERSTR_SIZE]; char pkg_ver[64]; diff --git a/sys/dev/bnxt/bnxt_hwrm.c b/sys/dev/bnxt/bnxt_hwrm.c index eb1c60ac35d6..91e6865449ac 100644 --- a/sys/dev/bnxt/bnxt_hwrm.c +++ b/sys/dev/bnxt/bnxt_hwrm.c @@ -546,6 +546,7 @@ bnxt_hwrm_ver_get(struct bnxt_softc *softc) const char nastr[] = ""; const char naver[] = ""; uint32_t dev_caps_cfg; + uint16_t fw_maj, fw_min, fw_bld, fw_rsv, len; softc->hwrm_max_req_len = HWRM_MAX_REQ_LEN; softc->hwrm_cmd_timeo = 1000; @@ -620,6 +621,32 @@ bnxt_hwrm_ver_get(struct bnxt_softc *softc) strlcpy(softc->ver_info->roce_fw_name, resp->roce_fw_name, BNXT_NAME_SIZE); } + + fw_maj = le32toh(resp->hwrm_fw_major); + if (softc->hwrm_spec_code > 0x10803 && fw_maj) { + fw_min = le16toh(resp->hwrm_fw_minor); + fw_bld = le16toh(resp->hwrm_fw_build); + fw_rsv = le16toh(resp->hwrm_fw_patch); + len = FW_VER_STR_LEN; + } else { + fw_maj = resp->hwrm_fw_maj_8b; + fw_min = resp->hwrm_fw_min_8b; + fw_bld = resp->hwrm_fw_bld_8b; + fw_rsv = resp->hwrm_fw_rsvd_8b; + len = BC_HWRM_STR_LEN; + } + + snprintf (softc->ver_info->fw_ver_str, len, "%d.%d.%d.%d", + fw_maj, fw_min, fw_bld, fw_rsv); + + if (strlen(resp->active_pkg_name)) { + int fw_ver_len = strlen (softc->ver_info->fw_ver_str); + + snprintf(softc->ver_info->fw_ver_str + fw_ver_len, + FW_VER_STR_LEN - fw_ver_len - 1, "/pkg %s", + resp->active_pkg_name); + } + softc->ver_info->chip_num = le16toh(resp->chip_num); softc->ver_info->chip_rev = resp->chip_rev; softc->ver_info->chip_metal = resp->chip_metal; @@ -1470,6 +1497,7 @@ bnxt_hwrm_rss_cfg(struct bnxt_softc *softc, struct bnxt_vnic_info *vnic, /* TBD */ if (BNXT_CHIP_P5(softc)) return 0; + bnxt_hwrm_cmd_hdr_init(softc, &req, HWRM_VNIC_RSS_CFG); req.hash_type = htole32(hash_type); diff --git a/sys/dev/bnxt/bnxt_sysctl.c b/sys/dev/bnxt/bnxt_sysctl.c index e8b3edc27e4d..36afed71a726 100644 --- a/sys/dev/bnxt/bnxt_sysctl.c +++ b/sys/dev/bnxt/bnxt_sysctl.c @@ -834,6 +834,9 @@ bnxt_create_ver_sysctls(struct bnxt_softc *softc) SYSCTL_ADD_STRING(&vi->ver_ctx, SYSCTL_CHILDREN(oid), OID_AUTO, "roce_fw", CTLFLAG_RD, vi->roce_fw_ver, 0, "RoCE firmware version"); + SYSCTL_ADD_STRING(&vi->ver_ctx, SYSCTL_CHILDREN(oid), OID_AUTO, + "fw_ver", CTLFLAG_RD, vi->fw_ver_str, 0, + "Firmware version"); SYSCTL_ADD_STRING(&vi->ver_ctx, SYSCTL_CHILDREN(oid), OID_AUTO, "phy", CTLFLAG_RD, vi->phy_ver, 0, "PHY version"); From nobody Thu Jan 19 03:52:17 2023 X-Original-To: dev-commits-src-branches@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 4Ny7xF5Mqzz2svWq; Thu, 19 Jan 2023 03:52:17 +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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Ny7xF4D3fz3j2J; Thu, 19 Jan 2023 03:52:17 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1674100337; 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=9Cm5H3/wm7glkrMHHL7WjSFYHwUwUCgG6NKkpl23aIM=; b=tnrDvto1tt4dp7fBugapflU5he6VDHV9zTuNrO+9gRADUklDH+C94bJDZV2BIlYSRievpU fg2Ln2TwI9psrNCphPhkzFCG1aa/TFo10h2QmLFcidAtgKnI7EBVaV2g2L0PqFEGdBpZ6p 0CB3GGov7nUBRyoAt9gG42klcLRKkEQelSLEA2hJCYQqXyRh5jbGJCd9BRFZfmAJ04XWlr TYsSKpMBTaKkIf8GtAHhuJPyv7bEKNHfNEna3Sph9zhNwAo/RzXXKkxJOdm8KshgW0B0uL 1QnJdnCrulyJ6Bu5H1PELwZBCMPfeE7Pekwu0TnAQyICnz5zu632P5XcZUwxhQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1674100337; 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=9Cm5H3/wm7glkrMHHL7WjSFYHwUwUCgG6NKkpl23aIM=; b=QDytTLXxvbIlTr20serJAUacbXViH4V9qH8fmQdIUQtimEPmvZ9FZo5Wk4qN0PHco3bBR6 NaSc84xvxFOlWL/OjIgfPBXdRxKpqtlDkfZMEh1vZDajg14r5yDgguvsYcYoXAR/ajjbKh bzmQoE13odvV7g5iOOpMaECAWMNQmphbVTJJ6gbgGb2KswGrWthO76mifYdcf/d5aIJGED XFZa+0xm/8tC5tVi//kg+d5BHqm3ceu2M4OYRaVgnjFhcqOdEcJ6r4OoM/g6SpEIYEf8z4 KbIRirTeOeBzGEWI6C8a4XhZrFyH27MHcyaDinxtXPThac0maCRNoMdsAI0jaw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1674100337; a=rsa-sha256; cv=none; b=Fg2TRvENYjEfLUdnGtyLdLUuxUjELXwJGkSYtjRjAGQt8c0HmOSWnRjKxBx4Lp5vtBLDBy 9PGZk1UsDs8CSPMCv9uJIDfzc3LTd473YpZTGa5MQxfV2EoaTXkc9fN76SopZCCnIxEwot WrrWxgtEG6E8XhyYkSuVFTqtC7FWUIGtNao1tq/Siihd25LUB2Bzr1CWqOfeKUrlP9sgdH CNOq26dwkRaVDpMS6UaNyb4UpxEsI3QMbA9FlTswCoXM7c0rkkEmJEEolHHv/AR/fkKpnh jLRWCo1WJZn2lumQfV7614r3kMdtTG4AUed7YVBG8InyalByb0NJCgb8Xa0fXg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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 did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Ny7xF2Rw8zcfh; Thu, 19 Jan 2023 03:52:17 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 30J3qHnL022727; Thu, 19 Jan 2023 03:52:17 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 30J3qHtt022726; Thu, 19 Jan 2023 03:52:17 GMT (envelope-from git) Date: Thu, 19 Jan 2023 03:52:17 GMT Message-Id: <202301190352.30J3qHtt022726@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Warner Losh Subject: git: 2bab173f73dc - stable/13 - if_bnxt: Add support for RSS on Thor List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: imp X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: 2bab173f73dc9b849da18bf4884e9ed6711e678c Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by imp: URL: https://cgit.FreeBSD.org/src/commit/?id=2bab173f73dc9b849da18bf4884e9ed6711e678c commit 2bab173f73dc9b849da18bf4884e9ed6711e678c Author: Sumit Saxena AuthorDate: 2022-11-04 22:21:20 +0000 Commit: Warner Losh CommitDate: 2023-01-19 01:00:06 +0000 if_bnxt: Add support for RSS on Thor Reviewed by: imp Differential Revision: https://reviews.freebsd.org/D36442 (cherry picked from commit cfdca95f7834d2c10749fb14e12495d8aa7d1be0) --- sys/dev/bnxt/bnxt_hwrm.c | 9 +++++---- sys/dev/bnxt/if_bnxt.c | 28 +++++++++++++++++++--------- 2 files changed, 24 insertions(+), 13 deletions(-) diff --git a/sys/dev/bnxt/bnxt_hwrm.c b/sys/dev/bnxt/bnxt_hwrm.c index 91e6865449ac..ebcfc5ef03ff 100644 --- a/sys/dev/bnxt/bnxt_hwrm.c +++ b/sys/dev/bnxt/bnxt_hwrm.c @@ -1494,16 +1494,17 @@ bnxt_hwrm_rss_cfg(struct bnxt_softc *softc, struct bnxt_vnic_info *vnic, { struct hwrm_vnic_rss_cfg_input req = {0}; - /* TBD */ - if (BNXT_CHIP_P5(softc)) - return 0; - bnxt_hwrm_cmd_hdr_init(softc, &req, HWRM_VNIC_RSS_CFG); req.hash_type = htole32(hash_type); req.ring_grp_tbl_addr = htole64(vnic->rss_grp_tbl.idi_paddr); req.hash_key_tbl_addr = htole64(vnic->rss_hash_key_tbl.idi_paddr); req.rss_ctx_idx = htole16(vnic->rss_id); + req.hash_mode_flags = HWRM_FUNC_SPD_CFG_INPUT_HASH_MODE_FLAGS_DEFAULT; + if (BNXT_CHIP_P5(softc)) { + req.vnic_id = htole16(vnic->id); + req.ring_table_pair_index = 0x0; + } return hwrm_send_message(softc, &req, sizeof(req)); } diff --git a/sys/dev/bnxt/if_bnxt.c b/sys/dev/bnxt/if_bnxt.c index 6b4e7b516b67..c63b47da4a89 100644 --- a/sys/dev/bnxt/if_bnxt.c +++ b/sys/dev/bnxt/if_bnxt.c @@ -1719,6 +1719,23 @@ bnxt_func_reset(struct bnxt_softc *softc) return; } +static void +bnxt_rss_grp_tbl_init(struct bnxt_softc *softc) +{ + uint16_t *rgt = (uint16_t *) softc->vnic_info.rss_grp_tbl.idi_vaddr; + int i, j; + + for (i = 0, j = 0; i < HW_HASH_INDEX_SIZE; i++) { + if (BNXT_CHIP_P5(softc)) { + rgt[i++] = htole16(softc->rx_rings[j].phys_id); + rgt[i] = htole16(softc->rx_cp_rings[j].ring.phys_id); + } else { + rgt[i] = htole16(softc->grp_info[j].grp_id); + } + if (++j == softc->nrxqsets) + j = 0; + } +} /* Device configuration */ static void @@ -1726,7 +1743,7 @@ bnxt_init(if_ctx_t ctx) { struct bnxt_softc *softc = iflib_get_softc(ctx); struct ifmediareq ifmr; - int i, j; + int i; int rc; if (!BNXT_CHIP_P5(softc)) { @@ -1837,14 +1854,7 @@ skip_def_cp_ring: if (rc) goto fail; - /* Enable RSS on the VNICs */ - for (i = 0, j = 0; i < HW_HASH_INDEX_SIZE; i++) { - ((uint16_t *) - softc->vnic_info.rss_grp_tbl.idi_vaddr)[i] = - htole16(softc->grp_info[j].grp_id); - if (++j == softc->nrxqsets) - j = 0; - } + bnxt_rss_grp_tbl_init(softc); rc = bnxt_hwrm_rss_cfg(softc, &softc->vnic_info, softc->vnic_info.rss_hash_type); From nobody Thu Jan 19 03:52:18 2023 X-Original-To: dev-commits-src-branches@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 4Ny7xG5Z70z2svJ9; Thu, 19 Jan 2023 03:52:18 +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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Ny7xG4XLSz3hsg; Thu, 19 Jan 2023 03:52:18 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1674100338; 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=GLkIbd7NaXQyXqwLTbDjZqWlXlEPyhKiLNY0LVcUScU=; b=UurUy9nZzWSQ542yzdyBx25QQ13qS4HopAIUK9spMhL/h9+0eBQ6LmKP2bbkEiDYQ10ALw U8ddP5Jty3PT1A5z8uo7VqZVRnYtmyE5uE7jEmmyYBVADtOcWEeJO5Uh3LLGRTuu3cz4E7 V0Ij3WbXOHJhQ8yz6CWKDeuOVwFahVxTBLuPlAOkzH+Mt2MHycGdl5WMo2Hb+5Ss/56dpG WpMzvgWe4117rarx4GiGVIhYL8KLw/hkAcUX9piUbRASUZb4oEW7GGVJmGhO74t7hbd4z6 0Z70/+obEmGcp1L7lt4p6trj7yWjyO6qVD9qzU/Waonx1cqujtDBjgJjcYDyYw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1674100338; 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=GLkIbd7NaXQyXqwLTbDjZqWlXlEPyhKiLNY0LVcUScU=; b=RfW3/GO6OI1ZX8IYVcKoWVumAl5XsPu+rhkUPgYF2WVUMfr0vYvb9s/eXVZvqJODReQ/Js 5IO1izUALTvxLd8dD3/7OJa7uFwdDZVyhskXBg3SjraXnLsOX6voD6DKOBEQ4alQpHsX+4 Z6FNfuH4nvXURfxhHX8rYBwqCukM+pCTgOaC462kJwGe+1pdX4otcg83pEGby/3Zl6dtf1 2M1cd6XXlntFvjrb9RWPplmNABt3RMUurHEPnHZWqkkYDM5rD5st6gzyttHr0bDzB3UkHY tOXjLQ6e5dsu70ikxLk0uWH5JdDwLXL+Z+BxEuxtz1td6GbRFFAWfsLjcsUtrw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1674100338; a=rsa-sha256; cv=none; b=MjaELr1swdFMfwS/tQa5IoANMmu5OhlCRBDhpqp8IxShBbxpVOF2jsDxZhjg9fw+5ePmvY m5E/9dOyXg0TdbiOVX3DeVVbqqLnP7YBBtxyjBgmB05YajEFb0aVWYafBmErnjn+gVWXmj zgz0YyuWjzEFB34GxzbtX206UFtPYCah7b6l18L8YMWhDMdTSCyOJ6odBwOaxDGQn7pq8b WbihcZUN4GwiuL9U5yWqVITmp11FPvvVGlUnB7R7ChKrdcynqFr/eiI4MgoGaNlith4R2U sEsOfwxnno8tGJpr3Ohl7dBgOPs6ebD+ajFNkzC9OvzNLaOOK4OEVJBKEPUrsA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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 did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Ny7xG3Nv9zc4L; Thu, 19 Jan 2023 03:52:18 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 30J3qICU023177; Thu, 19 Jan 2023 03:52:18 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 30J3qIO3023176; Thu, 19 Jan 2023 03:52:18 GMT (envelope-from git) Date: Thu, 19 Jan 2023 03:52:18 GMT Message-Id: <202301190352.30J3qIO3023176@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Warner Losh Subject: git: 2db35273502b - stable/13 - if_bnxt: Add support for VLAN on Thor List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: imp X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: 2db35273502b3c35aa653effc5c97618567367ab Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by imp: URL: https://cgit.FreeBSD.org/src/commit/?id=2db35273502b3c35aa653effc5c97618567367ab commit 2db35273502b3c35aa653effc5c97618567367ab Author: Sumit Saxena AuthorDate: 2022-11-04 22:24:32 +0000 Commit: Warner Losh CommitDate: 2023-01-19 01:00:06 +0000 if_bnxt: Add support for VLAN on Thor Reviewed by: imp Differential Revision: https://reviews.freebsd.org/D36443 (cherry picked from commit 91fcacc355971f74aa26fc7861020dc3a2a2d717) --- sys/dev/bnxt/bnxt.h | 3 +- sys/dev/bnxt/bnxt_hwrm.c | 110 ++++++++++++++++++++++++++++------------------- sys/dev/bnxt/bnxt_hwrm.h | 7 ++- sys/dev/bnxt/if_bnxt.c | 7 ++- 4 files changed, 74 insertions(+), 53 deletions(-) diff --git a/sys/dev/bnxt/bnxt.h b/sys/dev/bnxt/bnxt.h index 9638ad78fb6d..4cf93f1c7eeb 100644 --- a/sys/dev/bnxt/bnxt.h +++ b/sys/dev/bnxt/bnxt.h @@ -396,7 +396,7 @@ struct bnxt_vf_info { struct bnxt_vlan_tag { SLIST_ENTRY(bnxt_vlan_tag) next; - uint16_t tpid; + uint64_t filter_id; uint16_t tag; }; @@ -419,7 +419,6 @@ struct bnxt_vnic_info { #define BNXT_VNIC_FLAG_VLAN_STRIP 0x04 uint64_t filter_id; - uint32_t flow_id; uint16_t rss_id; uint32_t rss_hash_type; diff --git a/sys/dev/bnxt/bnxt_hwrm.c b/sys/dev/bnxt/bnxt_hwrm.c index ebcfc5ef03ff..40c47ffe372c 100644 --- a/sys/dev/bnxt/bnxt_hwrm.c +++ b/sys/dev/bnxt/bnxt_hwrm.c @@ -1379,64 +1379,29 @@ bnxt_hwrm_cfa_l2_set_rx_mask(struct bnxt_softc *softc, struct bnxt_vnic_info *vnic) { struct hwrm_cfa_l2_set_rx_mask_input req = {0}; - struct bnxt_vlan_tag *tag; - uint32_t *tags; - uint32_t num_vlan_tags = 0; - uint32_t i; uint32_t mask = vnic->rx_mask; - int rc; - - SLIST_FOREACH(tag, &vnic->vlan_tags, next) - num_vlan_tags++; - - if (num_vlan_tags) { - if (!(mask & - HWRM_CFA_L2_SET_RX_MASK_INPUT_MASK_ANYVLAN_NONVLAN)) { - if (!vnic->vlan_only) - mask |= HWRM_CFA_L2_SET_RX_MASK_INPUT_MASK_VLAN_NONVLAN; - else - mask |= - HWRM_CFA_L2_SET_RX_MASK_INPUT_MASK_VLANONLY; - } - if (vnic->vlan_tag_list.idi_vaddr) { - iflib_dma_free(&vnic->vlan_tag_list); - vnic->vlan_tag_list.idi_vaddr = NULL; - } - rc = iflib_dma_alloc(softc->ctx, 4 * num_vlan_tags, - &vnic->vlan_tag_list, BUS_DMA_NOWAIT); - if (rc) - return rc; - tags = (uint32_t *)vnic->vlan_tag_list.idi_vaddr; - i = 0; - SLIST_FOREACH(tag, &vnic->vlan_tags, next) { - tags[i] = htole32((tag->tpid << 16) | tag->tag); - i++; - } - } bnxt_hwrm_cmd_hdr_init(softc, &req, HWRM_CFA_L2_SET_RX_MASK); req.vnic_id = htole32(vnic->id); req.mask = htole32(mask); req.mc_tbl_addr = htole64(vnic->mc_list.idi_paddr); req.num_mc_entries = htole32(vnic->mc_list_count); - req.vlan_tag_tbl_addr = htole64(vnic->vlan_tag_list.idi_paddr); - req.num_vlan_tags = htole32(num_vlan_tags); return hwrm_send_message(softc, &req, sizeof(req)); } int -bnxt_hwrm_free_filter(struct bnxt_softc *softc, struct bnxt_vnic_info *vnic) +bnxt_hwrm_l2_filter_free(struct bnxt_softc *softc, uint64_t filter_id) { struct hwrm_cfa_l2_filter_free_input req = {0}; int rc = 0; - if (vnic->filter_id == -1) + if (filter_id == -1) return rc; bnxt_hwrm_cmd_hdr_init(softc, &req, HWRM_CFA_L2_FILTER_FREE); - req.l2_filter_id = htole64(vnic->filter_id); + req.l2_filter_id = htole64(filter_id); BNXT_HWRM_LOCK(softc); rc = _hwrm_send_message(softc, &req, sizeof(req)); @@ -1449,16 +1414,40 @@ fail: } int -bnxt_hwrm_set_filter(struct bnxt_softc *softc, struct bnxt_vnic_info *vnic) +bnxt_hwrm_free_filter(struct bnxt_softc *softc) +{ + struct bnxt_vnic_info *vnic = &softc->vnic_info; + struct bnxt_vlan_tag *tag; + int rc = 0; + + rc = bnxt_hwrm_l2_filter_free(softc, softc->vnic_info.filter_id); + if (rc) + goto end; + + SLIST_FOREACH(tag, &vnic->vlan_tags, next) { + rc = bnxt_hwrm_l2_filter_free(softc, tag->filter_id); + if (rc) + goto end; + tag->filter_id = -1; + } + +end: + return rc; +} + +int +bnxt_hwrm_l2_filter_alloc(struct bnxt_softc *softc, uint16_t vlan_tag, + uint64_t *filter_id) { struct hwrm_cfa_l2_filter_alloc_input req = {0}; struct hwrm_cfa_l2_filter_alloc_output *resp; + struct bnxt_vnic_info *vnic = &softc->vnic_info; uint32_t enables = 0; int rc = 0; - if (vnic->filter_id != -1) { - device_printf(softc->dev, - "Attempt to re-allocate l2 ctx filter\n"); + if (*filter_id != -1) { + device_printf(softc->dev, "Attempt to re-allocate l2 ctx " + "filter (fid: 0x%lx)\n", *filter_id); return EDOOFUS; } @@ -1469,6 +1458,17 @@ bnxt_hwrm_set_filter(struct bnxt_softc *softc, struct bnxt_vnic_info *vnic) enables = HWRM_CFA_L2_FILTER_ALLOC_INPUT_ENABLES_L2_ADDR | HWRM_CFA_L2_FILTER_ALLOC_INPUT_ENABLES_L2_ADDR_MASK | HWRM_CFA_L2_FILTER_ALLOC_INPUT_ENABLES_DST_ID; + + if (vlan_tag != 0xffff) { + enables |= + HWRM_CFA_L2_FILTER_ALLOC_INPUT_ENABLES_L2_IVLAN | + HWRM_CFA_L2_FILTER_ALLOC_INPUT_ENABLES_L2_IVLAN_MASK | + HWRM_CFA_L2_FILTER_ALLOC_INPUT_ENABLES_NUM_VLANS; + req.l2_ivlan_mask = 0xffff; + req.l2_ivlan = vlan_tag; + req.num_vlans = 1; + } + req.enables = htole32(enables); req.dst_id = htole16(vnic->id); memcpy(req.l2_addr, if_getlladdr(iflib_get_ifp(softc->ctx)), @@ -1480,14 +1480,34 @@ bnxt_hwrm_set_filter(struct bnxt_softc *softc, struct bnxt_vnic_info *vnic) if (rc) goto fail; - vnic->filter_id = le64toh(resp->l2_filter_id); - vnic->flow_id = le64toh(resp->flow_id); - + *filter_id = le64toh(resp->l2_filter_id); fail: BNXT_HWRM_UNLOCK(softc); return (rc); } +int +bnxt_hwrm_set_filter(struct bnxt_softc *softc) +{ + struct bnxt_vnic_info *vnic = &softc->vnic_info; + struct bnxt_vlan_tag *tag; + int rc = 0; + + rc = bnxt_hwrm_l2_filter_alloc(softc, 0xffff, &vnic->filter_id); + if (rc) + goto end; + + SLIST_FOREACH(tag, &vnic->vlan_tags, next) { + rc = bnxt_hwrm_l2_filter_alloc(softc, tag->tag, + &tag->filter_id); + if (rc) + goto end; + } + +end: + return rc; +} + int bnxt_hwrm_rss_cfg(struct bnxt_softc *softc, struct bnxt_vnic_info *vnic, uint32_t hash_type) diff --git a/sys/dev/bnxt/bnxt_hwrm.h b/sys/dev/bnxt/bnxt_hwrm.h index ad308f0bbbdd..8033ddb50136 100644 --- a/sys/dev/bnxt/bnxt_hwrm.h +++ b/sys/dev/bnxt/bnxt_hwrm.h @@ -70,8 +70,11 @@ int bnxt_hwrm_ring_grp_alloc(struct bnxt_softc *softc, int bnxt_hwrm_ring_grp_free(struct bnxt_softc *softc, struct bnxt_grp_info *gr); int bnxt_hwrm_cfa_l2_set_rx_mask(struct bnxt_softc *softc, struct bnxt_vnic_info *vnic); -int bnxt_hwrm_set_filter(struct bnxt_softc *softc, struct bnxt_vnic_info *vnic); -int bnxt_hwrm_free_filter(struct bnxt_softc *softc, struct bnxt_vnic_info *vnc); +int bnxt_hwrm_set_filter(struct bnxt_softc *softc); +int bnxt_hwrm_free_filter(struct bnxt_softc *softc); +int bnxt_hwrm_l2_filter_alloc(struct bnxt_softc *softc, uint16_t vlan_tag, + uint64_t *filter_id); +int bnxt_hwrm_l2_filter_free(struct bnxt_softc *softc, uint64_t filter_id); int bnxt_hwrm_rss_cfg(struct bnxt_softc *softc, struct bnxt_vnic_info *vnic, uint32_t hash_type); int bnxt_cfg_async_cr(struct bnxt_softc *softc); diff --git a/sys/dev/bnxt/if_bnxt.c b/sys/dev/bnxt/if_bnxt.c index c63b47da4a89..bc6dd1c2b1c5 100644 --- a/sys/dev/bnxt/if_bnxt.c +++ b/sys/dev/bnxt/if_bnxt.c @@ -653,7 +653,6 @@ bnxt_rx_queues_alloc(if_ctx_t ctx, caddr_t *vaddrs, /* And finally, the VNIC */ softc->vnic_info.id = (uint16_t)HWRM_NA_SIGNATURE; - softc->vnic_info.flow_id = (uint16_t)HWRM_NA_SIGNATURE; softc->vnic_info.filter_id = -1; softc->vnic_info.def_ring_grp = (uint16_t)HWRM_NA_SIGNATURE; softc->vnic_info.cos_rule = (uint16_t)HWRM_NA_SIGNATURE; @@ -1649,7 +1648,7 @@ bnxt_hwrm_resource_free(struct bnxt_softc *softc) if (rc) goto fail; } - rc = bnxt_hwrm_free_filter(softc, &softc->vnic_info); + rc = bnxt_hwrm_free_filter(softc); if (rc) goto fail; @@ -1850,7 +1849,7 @@ skip_def_cp_ring: rc = bnxt_hwrm_vnic_set_hds(softc, &softc->vnic_info); if (rc) goto fail; - rc = bnxt_hwrm_set_filter(softc, &softc->vnic_info); + rc = bnxt_hwrm_set_filter(softc); if (rc) goto fail; @@ -2406,7 +2405,7 @@ bnxt_vlan_register(if_ctx_t ctx, uint16_t vtag) if (new_tag == NULL) return; new_tag->tag = vtag; - new_tag->tpid = 8100; + new_tag->filter_id = -1; SLIST_INSERT_HEAD(&softc->vnic_info.vlan_tags, new_tag, next); }; From nobody Thu Jan 19 03:52:19 2023 X-Original-To: dev-commits-src-branches@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 4Ny7xH74QSz2svCM; Thu, 19 Jan 2023 03:52:19 +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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Ny7xH5tMTz3j71; Thu, 19 Jan 2023 03:52:19 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1674100339; 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=3NqrGG3fEB3GbUdaSa+A4wck2zFBfoCxQ+WsqUtGFh8=; b=Iv+B7+Tkf57Kdu+BnaSi3iKV12JIlMkX+CpcZky6auWHP0qUvZlsfg3uAHa+60dmiOAIRw YFfE4j02/W1HNnxCgpVWkFR3eet1lTSlenJp05KET+C9IqWIlFwknV4s8cnJXLaFvtAwrA 1w7AipRhJRsPUJLW9NrGN8lRe3/yqb/MifGT6rN9mCBNSup4wsJV9W7iIUDiT/AbKDVNLV +ercRxpL8ECiEDyX8ufoLbOwo+4rSRYW26F1qvQQtFz7oqRJ2ThVxyeWDWdKr99Z9h/JPf iQhSxPzgmnuJUQus9GHSkG7B/FQuDuf/wt71a5R+paadS88QQuA3QTmexb6V3A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1674100339; 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=3NqrGG3fEB3GbUdaSa+A4wck2zFBfoCxQ+WsqUtGFh8=; b=Va4NJf4+i9i8fVKiTTjwrkN4gpJTsGF2iBucmA/Xc+PLe0BAEeC5XcFlJk59zkVGMNfikh 2D8gcDLub5inmoHBCTmT1oqf50gUhGBLRhKwmOXhijUfmansUyJMHQWcz3nOab+cfj6QyF kanTQ5nivYkjA13QicrfpGNZ84wZk5G/0RTtiCJEkflzWb4P93fWK3RKoDAIdbxytGBFfE bB480rDbDtDW+1aptn3mqI9yIE6Pd8qn78+hNxBkSZn6Zx/+UNkGX1V2Mr9Ic7XJ4PVtfl ibKuAjHMiC5IhsoJ2ZGyxW2Y8ZtzQaY1aIdJbV3In9JkA1wt1igLCFlirzQQNg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1674100339; a=rsa-sha256; cv=none; b=k+PLEkrEyKGB1GPuOvjmvRxhma+sH3ADSzyYdn9ZLy9Oo3LpijGwLwn5khmxdbK5KgnECd lFr/ewxIcfbOAS0o0qgcO9qACKAC+TNSp1qgHI550a/trA6fwvmpsHT/x4G/mQcuYhwGK7 1c52Fi306TSLGGI0HLI9TBUPcoP62NNtUmWR8smDHTrtz7EeRySc2Rt7xFjojYb2qrV5yP BftmS9Sed6v78QsfXHEP71HBT99ggnci2SDh3MxfNmSmHxcBQS2Vv9Dj6aPY962XhpIOAW TigdS21M9hTeZuTMtowbTBgVPYvtiydu6MU9Co7U3fwYgt3dGmM0ZN12wmqDlA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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 did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Ny7xH3zT1zcZN; Thu, 19 Jan 2023 03:52:19 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 30J3qJOC023222; Thu, 19 Jan 2023 03:52:19 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 30J3qJPf023211; Thu, 19 Jan 2023 03:52:19 GMT (envelope-from git) Date: Thu, 19 Jan 2023 03:52:19 GMT Message-Id: <202301190352.30J3qJPf023211@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Warner Losh Subject: git: 5fe5b1576347 - stable/13 - if_bnxt: Remove sysctl node vlan_only which is not being used List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: imp X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: 5fe5b15763471ce0473abb8ea144a7b9795a8c75 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by imp: URL: https://cgit.FreeBSD.org/src/commit/?id=5fe5b15763471ce0473abb8ea144a7b9795a8c75 commit 5fe5b15763471ce0473abb8ea144a7b9795a8c75 Author: Sumit Saxena AuthorDate: 2022-11-04 22:26:03 +0000 Commit: Warner Losh CommitDate: 2023-01-19 01:00:06 +0000 if_bnxt: Remove sysctl node vlan_only which is not being used Removed sysctl node vlan_only which is not being used after migrating from l2_set_rx_mask to l2_filter_alloc. Reviewed by: imp Differential Revsion: https://reviews.freebsd.org/D36444 (cherry picked from commit 72e9dbb58cad5262190cf2eae47f764021072128) --- sys/dev/bnxt/bnxt.h | 1 - sys/dev/bnxt/bnxt_sysctl.c | 38 +------------------------------------- 2 files changed, 1 insertion(+), 38 deletions(-) diff --git a/sys/dev/bnxt/bnxt.h b/sys/dev/bnxt/bnxt.h index 4cf93f1c7eeb..f8f3f4ccc2f5 100644 --- a/sys/dev/bnxt/bnxt.h +++ b/sys/dev/bnxt/bnxt.h @@ -408,7 +408,6 @@ struct bnxt_vnic_info { uint16_t mru; uint32_t rx_mask; - bool vlan_only; struct iflib_dma_info mc_list; int mc_list_count; #define BNXT_MAX_MC_ADDRS 16 diff --git a/sys/dev/bnxt/bnxt_sysctl.c b/sys/dev/bnxt/bnxt_sysctl.c index 36afed71a726..677dc2c1c0c1 100644 --- a/sys/dev/bnxt/bnxt_sysctl.c +++ b/sys/dev/bnxt/bnxt_sysctl.c @@ -36,7 +36,6 @@ __FBSDID("$FreeBSD$"); #include "bnxt_hwrm.h" #include "bnxt_sysctl.h" -static int bnxt_vlan_only_sysctl(SYSCTL_HANDLER_ARGS); /* * We want to create: * dev.bnxt.0.hwstats.txq0 @@ -1388,45 +1387,10 @@ bnxt_create_hw_lro_sysctls(struct bnxt_softc *softc) return 0; } -static int -bnxt_vlan_only_sysctl(SYSCTL_HANDLER_ARGS) { - struct bnxt_softc *softc = arg1; - int rc; - int val; - - if (softc == NULL) - return EBUSY; - - val = softc->vnic_info.vlan_only; - rc = sysctl_handle_int(oidp, &val, 0, req); - if (rc || !req->newptr) - return rc; - - if (val) - val = 1; - - if (val != softc->vnic_info.vlan_only) { - softc->vnic_info.vlan_only = val; - if (if_getdrvflags(iflib_get_ifp(softc->ctx)) & IFF_DRV_RUNNING) - rc = bnxt_hwrm_cfa_l2_set_rx_mask(softc, - &softc->vnic_info); - } - - return rc; -} int bnxt_create_config_sysctls_post(struct bnxt_softc *softc) { - struct sysctl_ctx_list *ctx = device_get_sysctl_ctx(softc->dev); - struct sysctl_oid_list *children; - - children = SYSCTL_CHILDREN(device_get_sysctl_tree(softc->dev)); - - SYSCTL_ADD_PROC(ctx, children, OID_AUTO, "vlan_only", - CTLTYPE_INT | CTLFLAG_RWTUN | CTLFLAG_MPSAFE, softc, 0, - bnxt_vlan_only_sysctl, "I", - "require vlan tag on received packets when vlan is enabled"); - + /* Nothing for now, meant for future expansion */ return 0; } From nobody Thu Jan 19 03:52:20 2023 X-Original-To: dev-commits-src-branches@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 4Ny7xK2Pj0z2svYg; Thu, 19 Jan 2023 03:52:21 +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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Ny7xK1Pfrz3j7K; Thu, 19 Jan 2023 03:52:21 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1674100341; 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=SEKL27m47ZJNOzhYTYffYUVeKvzr4xUPsmEvI+MWTPE=; b=Mlyuj4eXBiWxgG3mguHZiJsXWqaNdI9fng0VISU5EY46CtMy1IYxNa0lDBHt9QcZd+5Ddl a2d61aUh0Z6vTeomnzMaDFwLmQrPhd61IQ/jdZgP0rS4Rxm8eLcy/nc1cQKT5KH6Pu6Ejs ruq82xRgqdnIozDKKRMZ97Bnl/gRleXwTdmSFcgGXO18MsBc/0c+4hUxkonW9KNSSyo8px l8+EUJmr+9SvQj5gp6LvDuXtQMlf+gyNJAnyC5Je+O78uUxmG8831U1G4YqgqlhbM4XaTp SB8xjWhRIDkg735EuHfoJ/zPdNBjt1Bg0x3Xg/2A+kGEoFIhH3B3xOCTsJ+Rdg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1674100341; 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=SEKL27m47ZJNOzhYTYffYUVeKvzr4xUPsmEvI+MWTPE=; b=Y7p2N1J0RrJeQmxXISoC+P92PChq4KIEW0Qf7uiNnmGhCyGWBeeO1IW9LdEu3xNbepyLtm F+PC6/aro+iacNnWXi6QA5mFzFW/syvGT8VGM9G1AZ5xHC4TL7j+hvaUe8qfCONTFbE0OF zayXiL969uPtVF0KnfrjQyTkCgKXYTXUS9u3ez5GXHo9ijyAaqqUVh0eBn6xGcBvGMQEE+ KJne/jZsJQug2LACSzB2CoTlt+FoHVsC6A/4MOXfmtjAp7svbH+qZ1S1mBSlhA76lSR9RT T0H6KEJtSskrDp4vjMTgL8ORBxf3wonrNATowLr0gjUhXFPtp4lAG+uGtGxAjg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1674100341; a=rsa-sha256; cv=none; b=K//Bq1ik8qauLBq1hjTM0z04LCDyKLZA+vNtJTLtqAyCE/JM+o0Y1wSti3zYWqlmpXKbw5 g6amOKkJnMa5GKiX2CAdP/Mp9XwWTFkzUgPLOtdOOyKmtdAPwnUmfp8qIn857OucTMXTDI zgoAbt8SRupBiIAbHzAVy6gBizm4HDrxxyqbD3c891ooo6VKLqw5CrhbI8nngfCV8ojv9q Qn83sDLCiYr1SauBXsi2l4Fq07F0tYZ4G98qEPNIY+j8N/we/VdfG6jR08NtTYnEnHMnQd gB+RDqOMdN7tU/ksuMvdcCywKxFw5KgydQ3I79bgpjVvIVUlxmQtT0lAHxrXpw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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 did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Ny7xJ4T7jzcfm; Thu, 19 Jan 2023 03:52:20 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 30J3qKhY024675; Thu, 19 Jan 2023 03:52:20 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 30J3qKf0024662; Thu, 19 Jan 2023 03:52:20 GMT (envelope-from git) Date: Thu, 19 Jan 2023 03:52:20 GMT Message-Id: <202301190352.30J3qKf0024662@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Warner Losh Subject: git: eed0ac16edb5 - stable/13 - if_bnxt: Fix the issue when kernel invokes _init() again without _stop() List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: imp X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: eed0ac16edb5aa0bb60780e2c11db40661716ab2 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by imp: URL: https://cgit.FreeBSD.org/src/commit/?id=eed0ac16edb5aa0bb60780e2c11db40661716ab2 commit eed0ac16edb5aa0bb60780e2c11db40661716ab2 Author: Sumit Saxena AuthorDate: 2022-11-04 22:28:51 +0000 Commit: Warner Losh CommitDate: 2023-01-19 01:00:06 +0000 if_bnxt: Fix the issue when kernel invokes _init() again without _stop() Fixed the issue when kernel invokes _init() when it is already in _init() state by invoking _stop() in such case. Reviewed by: imp Differential Revsion: https://reviews.freebsd.org/D36445 (cherry picked from commit baef1301a2bc60be3908f44dff1f83dbbd8f812a) --- sys/dev/bnxt/bnxt.h | 1 + sys/dev/bnxt/if_bnxt.c | 6 +++++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/sys/dev/bnxt/bnxt.h b/sys/dev/bnxt/bnxt.h index f8f3f4ccc2f5..0d5824722b41 100644 --- a/sys/dev/bnxt/bnxt.h +++ b/sys/dev/bnxt/bnxt.h @@ -738,6 +738,7 @@ struct bnxt_softc { struct bnxt_ver_info *ver_info; struct bnxt_nvram_info *nvm_info; bool wol; + bool is_dev_init; struct bnxt_hw_lro hw_lro; uint8_t wol_filter_id; uint16_t rx_coal_usecs; diff --git a/sys/dev/bnxt/if_bnxt.c b/sys/dev/bnxt/if_bnxt.c index bc6dd1c2b1c5..8b26b4d64436 100644 --- a/sys/dev/bnxt/if_bnxt.c +++ b/sys/dev/bnxt/if_bnxt.c @@ -1749,7 +1749,11 @@ bnxt_init(if_ctx_t ctx) rc = bnxt_hwrm_func_reset(softc); if (rc) return; + } else if (softc->is_dev_init) { + bnxt_stop(ctx); } + + softc->is_dev_init = true; bnxt_clear_ids(softc); // TBD -- Check if it is needed for Thor as well @@ -1909,8 +1913,8 @@ bnxt_stop(if_ctx_t ctx) { struct bnxt_softc *softc = iflib_get_softc(ctx); + softc->is_dev_init = false; bnxt_do_disable_intr(&softc->def_cp_ring); - bnxt_hwrm_func_reset(softc); bnxt_func_reset(softc); bnxt_clear_ids(softc); return; From nobody Thu Jan 19 03:52:21 2023 X-Original-To: dev-commits-src-branches@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 4Ny7xL184Vz2svhX; Thu, 19 Jan 2023 03:52:22 +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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Ny7xK6Ztxz3jHg; Thu, 19 Jan 2023 03:52:21 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1674100342; 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=9LizdutOXY5+vShZmHavEvTd2Bnq9b5gBeHGixtXgg4=; b=Y3OjwdgCRsKr2LCyEhy+s3g143lI+Vmmfe+lDP4BjBo2zbSA7c3tEukEyFkv5b6O8tOSO5 g9b1gt/NmwdSsd891gUrE/npJhQxajZNer9AAA90+XZGfLa3rXw7kOFsn6qlWLB9VJiwuC erLlvC+YBdFfU2scHSQrzLQ1vT3A31es1Gx0ZolrLItc75P3InVCR1fGQP4kYAIJw7tN9t AgxACTAqT/2OTlcabEcnfmQDiqRzuRgRHpiJUkdbobxA8xmeCuSemoDsPrgFTH5RLPy1ef 3iWu9jxFCZLGEMg1jo+fhqB9junFOrGzzmAl61LESbW0s6lDUOJToBvT9EM6hg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1674100342; 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=9LizdutOXY5+vShZmHavEvTd2Bnq9b5gBeHGixtXgg4=; b=srXePdez8FA/EivJs98NSHQ6MpRr3S2wmgx7ViC8Qw9Qa8g292IG2qgOesd0blkmqU//Me W8q4WH2u1vaiG2a6YaaY55On+fyjzskMWxjzcvNy+jSyWb+sz5DKbdz3tZDzDd9YvRLpz/ yPllD9vrzgwOzuiP0Ialq8vg6PHnJ8j0R7HeP5GfgWDUuheo3f5thbFDGN3o3YP2CLLLjM q7OWpXG41d/0fEi1nZH00ZLFTJGsekKNNP0gheFhSb5kn44gFO8wZjAHCYdDmj7JuDnG0E 5l9J3Ee7//sJsII00p1GJk1+ZbsguJ9rqwUW2FhivjqsJQ4x9pZA2kpYB0RKig== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1674100342; a=rsa-sha256; cv=none; b=V3ZPg96hkypKvFgeH2/WlQpAV+W+NoWjgui/U2ksKbjS1OBF3fdFasaL3LT/06kDzJ0179 sqf9Ak0wnmTX49Nq83QiXFSUS9Uj2DKwvv8gS6B6TslWYw3Z30JnjOgQRiAekeKUuPGejv 5P7ThvPwkklMu90MjC/So0vMV+meLz86EGMJWbJEVWLw5ROMmWcSaW98+sIW/CNu2s2peC Slsx+m6yf8BrVPDNQy8Q0kT86kZHRTt9XnlhyLwizmnNxTc/jfBtgJSaVz5Hz+3fEsW1EN gWDnHLDcCJWy1eufpEw766XVx1SA+dfcVRHJANhG1IXLbCvABxxcD9/8fiT/sQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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 did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Ny7xK5Pb9zcZR; Thu, 19 Jan 2023 03:52:21 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 30J3qLAH025734; Thu, 19 Jan 2023 03:52:21 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 30J3qLrr025733; Thu, 19 Jan 2023 03:52:21 GMT (envelope-from git) Date: Thu, 19 Jan 2023 03:52:21 GMT Message-Id: <202301190352.30J3qLrr025733@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Warner Losh Subject: git: ef55d4aaceff - stable/13 - if_bnxt: Fix the PORT_PHY_CFG HWRM requests while setting Pause List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: imp X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: ef55d4aaceff3ea2283373c36b181839b7a36487 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by imp: URL: https://cgit.FreeBSD.org/src/commit/?id=ef55d4aaceff3ea2283373c36b181839b7a36487 commit ef55d4aaceff3ea2283373c36b181839b7a36487 Author: Sumit Saxena AuthorDate: 2022-11-04 22:31:24 +0000 Commit: Warner Losh CommitDate: 2023-01-19 01:00:06 +0000 if_bnxt: Fix the PORT_PHY_CFG HWRM requests while setting Pause Reviewed by: imp Differential Revision: https://reviews.freebsd.org/D36446 (cherry picked from commit 19a57f85baac915a3642733c8a856517f4e95cb3) --- sys/dev/bnxt/bnxt_hwrm.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/sys/dev/bnxt/bnxt_hwrm.c b/sys/dev/bnxt/bnxt_hwrm.c index 40c47ffe372c..9d74b1ebf65b 100644 --- a/sys/dev/bnxt/bnxt_hwrm.c +++ b/sys/dev/bnxt/bnxt_hwrm.c @@ -868,6 +868,9 @@ bnxt_hwrm_set_pause_common(struct bnxt_softc *softc, HWRM_PORT_PHY_CFG_INPUT_FORCE_PAUSE_TX; req->enables |= htole32(HWRM_PORT_PHY_CFG_INPUT_ENABLES_FORCE_PAUSE); + req->auto_pause = req->force_pause; + req->enables |= + htole32(HWRM_PORT_PHY_CFG_INPUT_ENABLES_AUTO_PAUSE); } } From nobody Thu Jan 19 03:52:22 2023 X-Original-To: dev-commits-src-branches@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 4Ny7xM1grMz2svWy; Thu, 19 Jan 2023 03:52:23 +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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Ny7xM0Twtz3jHs; Thu, 19 Jan 2023 03:52:23 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1674100343; 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=mu/uxZaxW9+85hS7juDhnAqWCGdbpsQoK55URrzr0Sg=; b=B8e5RdZqrbeabDKufAdjNUbJJwYLnLM557OFbAO7sUqH1iaKx2wXfIm0Mj1di+CT9N6eID fhCxi+v/H5Lo8WJktMpslwhGRHublWTnssbL46qvkivi7y9ddjZe3CDfIncUri47mlbAX4 8mJNUYvvix6ltdvvVQ4oQhRVAbGSaH5uf9+mey/W+Gj9f0DLlFm+Kvpo3vmKkjmIZzwLRk OQnJK1iR5CmfK6tEsiIOP/v5cjqRCuXMSGhyFKPNI/AtxF2yQZRpcRUlaNGX+ujvQcquBP JWdLi8ifQI+Y0bUZZgGuN7NYME0U00JG0RwdOPuBQk5Zr1brf9h02Dl4ywZcgw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1674100343; 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=mu/uxZaxW9+85hS7juDhnAqWCGdbpsQoK55URrzr0Sg=; b=BflZTWwuvI/wNYIE/TCXF8IsaKJpj5AVfZXNigFPRC3t8+2JGngl3mS3GvsBFEYb5pfvTv wNcvKum1w8vYgACcDm8zVRXOBRcoNcEyJs7dCWwqFNRl3OhDj6lqSJYwvqk7KFZg8FgtEX diNbkX57xMmjJKJrO49LEhz9ZHjsZlqMeuhUysAV+hdfAA9HT7t8nqa1PH//4OpDsVYjs7 Dg8zdPT00A3hmNrimaJ47vC/0dKAB358LY/M5t4tJibvVTKAcKdEf5HkKZnSU3LwifvdUZ u0NQfvnd1vZLRNHICya5uQHjcQf6brYXdi6m53Ckhms2PSSCPQL2QKsf3usGjQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1674100343; a=rsa-sha256; cv=none; b=eKQimm+sYDGNGoW9nnelKy2O4FfGOMONBBN4/nbFSWgwINdiZpnpAKi4BzF4Urd9bKNwRj 5BSSAchpH8nJRgyt//QDPh8J63mdbSj51qbOaKN4/cACY9anpicNCuNKlKcrD3OnN6y55C DVvK2YPWdoQVgb8HPdpCKOrXzz/Ko6og49uPdCm084CneVl2izppWt5GaLaBPOCt/4hk3D Di0U+9e/bhTlUTWScjjYWDxRizXRllEo7GR5LrPQD5fKxcdMspuyduAK5TJHWbqDvzsgzA i+TQdvu3dkpqOfEDCHJ+iawBu78TVxaxos/LyaYO1PjA9yQJlJ67NP/Vw7g0DA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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 did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Ny7xL65Qrzcdv; Thu, 19 Jan 2023 03:52:22 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 30J3qMH7025758; Thu, 19 Jan 2023 03:52:22 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 30J3qMtj025757; Thu, 19 Jan 2023 03:52:22 GMT (envelope-from git) Date: Thu, 19 Jan 2023 03:52:22 GMT Message-Id: <202301190352.30J3qMtj025757@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Warner Losh Subject: git: 74eacab8dc47 - stable/13 - if_bnxt: Add support for smaller backing_store_cfg message size List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: imp X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: 74eacab8dc479a343e93c13aa9cff466706b26bc Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by imp: URL: https://cgit.FreeBSD.org/src/commit/?id=74eacab8dc479a343e93c13aa9cff466706b26bc commit 74eacab8dc479a343e93c13aa9cff466706b26bc Author: Sumit Saxena AuthorDate: 2022-11-04 22:33:21 +0000 Commit: Warner Losh CommitDate: 2023-01-19 01:00:06 +0000 if_bnxt: Add support for smaller backing_store_cfg message size Add compat logic to fallback to the older/smaller backing_store_cfg message size. Reviewed by: imp Differentil Revision: https://reviews.freebsd.org/D36447 (cherry picked from commit 2ed061f08d9e2fe35bb8ff925cc19768d2430e77) --- sys/dev/bnxt/bnxt_hwrm.c | 8 ++++++-- sys/dev/bnxt/bnxt_hwrm.h | 1 + 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/sys/dev/bnxt/bnxt_hwrm.c b/sys/dev/bnxt/bnxt_hwrm.c index 9d74b1ebf65b..46dd8f34a6c5 100644 --- a/sys/dev/bnxt/bnxt_hwrm.c +++ b/sys/dev/bnxt/bnxt_hwrm.c @@ -394,7 +394,7 @@ int bnxt_hwrm_func_backing_store_cfg(struct bnxt_softc *softc, uint32_t enables) struct hwrm_func_backing_store_cfg_input req = {0}; struct bnxt_ctx_mem_info *ctx = softc->ctx_mem; struct bnxt_ctx_pg_info *ctx_pg; - uint32_t *num_entries; + uint32_t *num_entries, req_len = sizeof(req); uint64_t *pg_dir; uint8_t *pg_attr; int i, rc; @@ -481,7 +481,11 @@ int bnxt_hwrm_func_backing_store_cfg(struct bnxt_softc *softc, uint32_t enables) *num_entries = htole32(ctx_pg->entries); bnxt_hwrm_set_pg_attr(&ctx_pg->ring_mem, pg_attr, pg_dir); } - rc = hwrm_send_message(softc, &req, sizeof(req)); + + if (req_len > softc->hwrm_max_ext_req_len) + req_len = BNXT_BACKING_STORE_CFG_LEGACY_LEN; + + rc = hwrm_send_message(softc, &req, req_len); if (rc) rc = -EIO; return rc; diff --git a/sys/dev/bnxt/bnxt_hwrm.h b/sys/dev/bnxt/bnxt_hwrm.h index 8033ddb50136..dde82c0aaff8 100644 --- a/sys/dev/bnxt/bnxt_hwrm.h +++ b/sys/dev/bnxt/bnxt_hwrm.h @@ -37,6 +37,7 @@ __FBSDID("$FreeBSD$"); #define BNXT_AUTO_PAUSE_AUTONEG_PAUSE \ (HWRM_PORT_PHY_QCFG_OUTPUT_AUTO_PAUSE_AUTONEG_PAUSE) #define BNXT_HWRM_SHORT_REQ_LEN sizeof(struct hwrm_short_input) +#define BNXT_BACKING_STORE_CFG_LEGACY_LEN 256 /* HWRM Function Prototypes */ int bnxt_alloc_hwrm_dma_mem(struct bnxt_softc *softc); From nobody Thu Jan 19 03:52:23 2023 X-Original-To: dev-commits-src-branches@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 4Ny7xN2Q1Cz2svcV; Thu, 19 Jan 2023 03:52:24 +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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Ny7xN23frz3jNq; Thu, 19 Jan 2023 03:52:24 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1674100344; 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=CqWBDbT0hzkAvR/KNq5K2KO8btMcdgbeeOjbFBKmLQo=; b=HNbAg1MgKCVaBMngmH9cRFV0OmGeGUQpEd/XiQHHWmJ/L/DvHmNoAPQhbvsEMCKEcv9k3C 0LRy8SqHevyrCioLQr6H2MS1WMB8zRysSgRJgDBprl7oChXqpZOI86ky9UGx07C9LYz3MS JGsVvDQfBQ+HRuOQo+o8/xKM+lEewUNS92tRgX7wkRWaDGLQHB7TSkIQLRAt7CfaL6Nwe1 HudfmDl5GmbuTnFseeVL/Y6HDzRtS7xJFXLQnt7VhJM1PJmWlDhbwPnDzXn4z7Ta1aAgCy noScnp/tbaRMUUWLcTF6aUT0MmcfN5gViDAGSfyKDFvEU3sSD08cEyLeihMYUw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1674100344; 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=CqWBDbT0hzkAvR/KNq5K2KO8btMcdgbeeOjbFBKmLQo=; b=mgqnpMiZpqQcgqb2QhqhtfgUP0xOot6zQqwmKvlDdyQ9P5PAXdMfy/1c0zYWM0PYer7vs5 68lhceCJVaUJDeh9GNRYbOfS0mELzNYsV5AJ6Uu8JQSenRDWxeq/tAZKssSKMmVh46FRA3 /+hzphc9NS1e0NFZXEkp6UxFZFosfpluE6ErDoIK0+dvsyZLDHAXOUgI+m1pISjcJwo0oL PnTDCiOyyCmPp+6KV7Mj/7XtRKL5qcW4pD14IyMXUMtH0BPg8UW6XZp/iVM+JKu8vlbEJL yxiPs//MD00KhD9Nt/J+U4xQjmNdkdalooAzjJJhGbmHpYvht+XjsPSgoGOP3w== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1674100344; a=rsa-sha256; cv=none; b=tORHqaI3wPBkaoJscz+P4LOMx7DDAbL2J8gv77QyJvkCtHI1MWgMWzl2/Kd313Pipyx0D3 XZySxkkT4y8Xh9UQyu5ORcsJmIPoK0bqYM+8qQnqDBGs2RoDRErbfCElEHjcsvavhwWj7O hiZupHs4WMQ58snlR8xWrUSQrtEHB+TAN2AiULUs4tEc4zdos6a3VPlLNPevSq8MdxBLYo RhP0qe03aCpCLQXtupRQWbQI4jWizDUg0RJgdZ2mqKtEEFGTpvTHfOc+X514WQMcuY8OBZ O3fhPxnTXAlFaldJXE969zR2Tmiw0wyB/7ybB7yhv2I5sAQokX7FJvsZAJt1Zw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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 did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Ny7xM71xrzcfq; Thu, 19 Jan 2023 03:52:23 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 30J3qN8H025782; Thu, 19 Jan 2023 03:52:23 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 30J3qNQx025781; Thu, 19 Jan 2023 03:52:23 GMT (envelope-from git) Date: Thu, 19 Jan 2023 03:52:23 GMT Message-Id: <202301190352.30J3qNQx025781@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Warner Losh Subject: git: 28497d1445db - stable/13 - if_bnxt: Added support for mgmt interface for passthrough hwrms List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: imp X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: 28497d1445dbf7b5e7a858ada1623920a5a76dd1 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by imp: URL: https://cgit.FreeBSD.org/src/commit/?id=28497d1445dbf7b5e7a858ada1623920a5a76dd1 commit 28497d1445dbf7b5e7a858ada1623920a5a76dd1 Author: Sumit Saxena AuthorDate: 2022-11-04 22:40:29 +0000 Commit: Warner Losh CommitDate: 2023-01-19 01:00:07 +0000 if_bnxt: Added support for mgmt interface for passthrough hwrms Added support for application management interface. There are two types of commands supported: 1. Firmware IOCTLs: These ioctls are meant for firmware consumption. Driver acts as a transport for these. 2. Driver only IOCTLs: These ioctls are meant for driver consumption. Driver will serve these ioctls without sending them down to firmware. Reviewed by: imp Differential Revision: https://reviews.freebsd.org/D36448 (cherry picked from commit 58d84ef87094691bf1ad9608964ec85f120cd34a) --- sys/conf/files | 1 + sys/dev/bnxt/bnxt.h | 13 ++ sys/dev/bnxt/bnxt_hwrm.c | 35 ++++- sys/dev/bnxt/bnxt_hwrm.h | 2 + sys/dev/bnxt/bnxt_mgmt.c | 373 ++++++++++++++++++++++++++++++++++++++++++++++ sys/dev/bnxt/bnxt_mgmt.h | 126 ++++++++++++++++ sys/dev/bnxt/if_bnxt.c | 43 +++++- sys/modules/bnxt/Makefile | 5 +- 8 files changed, 592 insertions(+), 6 deletions(-) diff --git a/sys/conf/files b/sys/conf/files index be8449a92048..d97ad247a7bd 100644 --- a/sys/conf/files +++ b/sys/conf/files @@ -1397,6 +1397,7 @@ dev/bhnd/siba/siba_erom.c optional siba bhnd dev/bhnd/siba/siba_subr.c optional siba bhnd # dev/bnxt/bnxt_hwrm.c optional bnxt iflib pci +dev/bnxt/bnxt_mgmt.c optional bnxt iflib pci dev/bnxt/bnxt_sysctl.c optional bnxt iflib pci dev/bnxt/bnxt_txrx.c optional bnxt iflib pci dev/bnxt/if_bnxt.c optional bnxt iflib pci diff --git a/sys/dev/bnxt/bnxt.h b/sys/dev/bnxt/bnxt.h index 0d5824722b41..27abccc6b324 100644 --- a/sys/dev/bnxt/bnxt.h +++ b/sys/dev/bnxt/bnxt.h @@ -208,6 +208,7 @@ __FBSDID("$FreeBSD$"); #define BNXT_MIN_FRAME_SIZE 52 /* Frames must be padded to this size for some A0 chips */ +extern char bnxt_driver_version[]; typedef void (*bnxt_doorbell_tx)(void *, uint16_t idx); typedef void (*bnxt_doorbell_rx)(void *, uint16_t idx); typedef void (*bnxt_doorbell_rx_cq)(void *, bool); @@ -648,14 +649,25 @@ struct bnxt_hw_resc { #define BNXT_HWRM_MAX_REQ_LEN (softc->hwrm_max_req_len) +struct bnxt_softc_list { + SLIST_ENTRY(bnxt_softc_list) next; + struct bnxt_softc *softc; +}; + struct bnxt_softc { device_t dev; if_ctx_t ctx; if_softc_ctx_t scctx; if_shared_ctx_t sctx; + uint32_t domain; + uint32_t bus; + uint32_t slot; + uint32_t function; + uint32_t dev_fn; struct ifmedia *media; struct bnxt_ctx_mem_info *ctx_mem; struct bnxt_hw_resc hw_resc; + struct bnxt_softc_list list; struct bnxt_bar_info hwrm_bar; struct bnxt_bar_info doorbell_bar; @@ -788,5 +800,6 @@ struct bnxt_filter_info { /* Function declarations */ void bnxt_report_link(struct bnxt_softc *softc); bool bnxt_check_hwrm_version(struct bnxt_softc *softc); +struct bnxt_softc *bnxt_find_dev(uint32_t domain, uint32_t bus, uint32_t dev_fn, char *name); #endif /* _BNXT_H */ diff --git a/sys/dev/bnxt/bnxt_hwrm.c b/sys/dev/bnxt/bnxt_hwrm.c index 46dd8f34a6c5..c362e01a1f8b 100644 --- a/sys/dev/bnxt/bnxt_hwrm.c +++ b/sys/dev/bnxt/bnxt_hwrm.c @@ -540,6 +540,37 @@ hwrm_func_resc_qcaps_exit: return rc; } +int +bnxt_hwrm_passthrough(struct bnxt_softc *softc, void *req, uint32_t req_len, + void *resp, uint32_t resp_len, uint32_t app_timeout) +{ + int rc = 0; + void *output = (void *)softc->hwrm_cmd_resp.idi_vaddr; + struct input *input = req; + uint32_t old_timeo; + + input->resp_addr = htole64(softc->hwrm_cmd_resp.idi_paddr); + BNXT_HWRM_LOCK(softc); + old_timeo = softc->hwrm_cmd_timeo; + if (input->req_type == HWRM_NVM_INSTALL_UPDATE) + softc->hwrm_cmd_timeo = BNXT_NVM_TIMEO; + else + softc->hwrm_cmd_timeo = max(app_timeout, softc->hwrm_cmd_timeo); + rc = _hwrm_send_message(softc, req, req_len); + softc->hwrm_cmd_timeo = old_timeo; + if (rc) { + device_printf(softc->dev, "%s: %s command failed with rc: 0x%x\n", + __FUNCTION__, GET_HWRM_REQ_TYPE(input->req_type), rc); + goto fail; + } + + memcpy(resp, output, resp_len); +fail: + BNXT_HWRM_UNLOCK(softc); + return rc; +} + + int bnxt_hwrm_ver_get(struct bnxt_softc *softc) { @@ -657,7 +688,6 @@ bnxt_hwrm_ver_get(struct bnxt_softc *softc) softc->ver_info->chip_bond_id = resp->chip_bond_id; softc->ver_info->chip_type = resp->chip_platform_type; - if (resp->hwrm_intf_maj_8b >= 1) { softc->hwrm_max_req_len = le16toh(resp->max_req_win_len); softc->hwrm_max_ext_req_len = le16toh(resp->max_ext_req_len); @@ -666,8 +696,7 @@ bnxt_hwrm_ver_get(struct bnxt_softc *softc) softc->hwrm_cmd_timeo = le16toh(resp->def_req_timeout); if (!softc->hwrm_cmd_timeo) softc->hwrm_cmd_timeo = DFLT_HWRM_CMD_TIMEOUT; - - + dev_caps_cfg = le32toh(resp->dev_caps_cfg); if ((dev_caps_cfg & HWRM_VER_GET_OUTPUT_DEV_CAPS_CFG_SHORT_CMD_SUPPORTED) && (dev_caps_cfg & HWRM_VER_GET_OUTPUT_DEV_CAPS_CFG_SHORT_CMD_REQUIRED)) diff --git a/sys/dev/bnxt/bnxt_hwrm.h b/sys/dev/bnxt/bnxt_hwrm.h index dde82c0aaff8..5e2be49b643d 100644 --- a/sys/dev/bnxt/bnxt_hwrm.h +++ b/sys/dev/bnxt/bnxt_hwrm.h @@ -129,4 +129,6 @@ int bnxt_hwrm_func_resc_qcaps(struct bnxt_softc *softc, bool all); int bnxt_hwrm_reserve_pf_rings (struct bnxt_softc *softc); void bnxt_hwrm_ring_info_get(struct bnxt_softc *softc, uint8_t ring_type, uint32_t ring_id, uint32_t *prod, uint32_t *); +int bnxt_hwrm_passthrough(struct bnxt_softc *softc, void *req, uint32_t req_len, + void *resp, uint32_t resp_len, uint32_t timeout); #endif diff --git a/sys/dev/bnxt/bnxt_mgmt.c b/sys/dev/bnxt/bnxt_mgmt.c new file mode 100644 index 000000000000..d54d7a2a2fe1 --- /dev/null +++ b/sys/dev/bnxt/bnxt_mgmt.c @@ -0,0 +1,373 @@ +/* + * Broadcom NetXtreme-C/E network driver. + * + * Copyright (c) 2022 Broadcom, All Rights Reserved. + * The term Broadcom refers to Broadcom Limited and/or its subsidiaries + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS' + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS + * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF + * THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include "bnxt_mgmt.h" +#include "bnxt.h" +#include "bnxt_hwrm.h" +#include +#include +#include +#include + +/* Function prototypes */ +static d_open_t bnxt_mgmt_open; +static d_close_t bnxt_mgmt_close; +static d_ioctl_t bnxt_mgmt_ioctl; + +/* Character device entry points */ +static struct cdevsw bnxt_mgmt_cdevsw = { + .d_version = D_VERSION, + .d_open = bnxt_mgmt_open, + .d_close = bnxt_mgmt_close, + .d_ioctl = bnxt_mgmt_ioctl, + .d_name = "bnxt_mgmt", +}; + +/* Global vars */ +static struct cdev *bnxt_mgmt_dev; +struct mtx mgmt_lock; + +MALLOC_DEFINE(M_BNXT, "bnxt_mgmt_buffer", "buffer for bnxt_mgmt module"); + +/* + * This function is called by the kld[un]load(2) system calls to + * determine what actions to take when a module is loaded or unloaded. + */ +static int +bnxt_mgmt_loader(struct module *m, int what, void *arg) +{ + int error = 0; + + switch (what) { + case MOD_LOAD: + error = make_dev_p(MAKEDEV_CHECKNAME | MAKEDEV_WAITOK, + &bnxt_mgmt_dev, + &bnxt_mgmt_cdevsw, + 0, + UID_ROOT, + GID_WHEEL, + 0600, + "bnxt_mgmt"); + if (error != 0) { + printf("%s: %s:%s:%d Failed to create the" + "bnxt_mgmt device node\n", DRIVER_NAME, + __FILE__, __FUNCTION__, __LINE__); + return (error); + } + + mtx_init(&mgmt_lock, "BNXT MGMT Lock", NULL, MTX_DEF); + + break; + case MOD_UNLOAD: + mtx_destroy(&mgmt_lock); + destroy_dev(bnxt_mgmt_dev); + break; + default: + error = EOPNOTSUPP; + break; + } + + return (error); +} + +static int +bnxt_mgmt_process_hwrm(struct cdev *dev, u_long cmd, caddr_t data, + int flag, struct thread *td) +{ + struct bnxt_softc *softc = NULL; + struct bnxt_mgmt_req mgmt_req = {}; + struct bnxt_mgmt_fw_msg msg_temp, *msg, *msg2 = NULL; + struct iflib_dma_info dma_data = {}; + void *user_ptr, *req, *resp; + int ret = 0; + uint16_t num_ind = 0; + + memcpy(&user_ptr, data, sizeof(user_ptr)); + if (copyin(user_ptr, &mgmt_req, sizeof(struct bnxt_mgmt_req))) { + printf("%s: %s:%d Failed to copy data from user\n", + DRIVER_NAME, __FUNCTION__, __LINE__); + return -EFAULT; + } + softc = bnxt_find_dev(mgmt_req.hdr.domain, mgmt_req.hdr.bus, + mgmt_req.hdr.devfn, NULL); + if (!softc) { + printf("%s: %s:%d unable to find softc reference\n", + DRIVER_NAME, __FUNCTION__, __LINE__); + return -ENODEV; + } + + if (copyin((void*)mgmt_req.req.hreq, &msg_temp, sizeof(msg_temp))) { + device_printf(softc->dev, "%s:%d Failed to copy data from user\n", + __FUNCTION__, __LINE__); + return -EFAULT; + } + + if (msg_temp.len_req > BNXT_MGMT_MAX_HWRM_REQ_LENGTH || + msg_temp.len_resp > BNXT_MGMT_MAX_HWRM_RESP_LENGTH) { + device_printf(softc->dev, "%s:%d Invalid length\n", + __FUNCTION__, __LINE__); + return -EINVAL; + } + + if (msg_temp.num_dma_indications > 1) { + device_printf(softc->dev, "%s:%d Max num_dma_indications " + "supported is 1 \n", __FUNCTION__, __LINE__); + return -EINVAL; + } + + req = malloc(msg_temp.len_req, M_BNXT, M_WAITOK | M_ZERO); + if(!req) { + device_printf(softc->dev, "%s:%d Memory allocation failed", + __FUNCTION__, __LINE__); + return -ENOMEM; + } + + resp = malloc(msg_temp.len_resp, M_BNXT, M_WAITOK | M_ZERO); + if(!resp) { + device_printf(softc->dev, "%s:%d Memory allocation failed", + __FUNCTION__, __LINE__); + ret = -ENOMEM; + goto end; + } + + if (copyin((void *)msg_temp.usr_req, req, msg_temp.len_req)) { + device_printf(softc->dev, "%s:%d Failed to copy data from user\n", + __FUNCTION__, __LINE__); + ret = -EFAULT; + goto end; + } + + msg = &msg_temp; + num_ind = msg_temp.num_dma_indications; + if (num_ind) { + int size; + void *dma_ptr; + uint64_t *dmap; + + size = sizeof(struct bnxt_mgmt_fw_msg) + + (num_ind * sizeof(struct dma_info)); + + msg2 = malloc(size, M_BNXT, M_WAITOK | M_ZERO); + if(!msg2) { + device_printf(softc->dev, "%s:%d Memory allocation failed", + __FUNCTION__, __LINE__); + ret = -ENOMEM; + goto end; + } + + if (copyin((void *)mgmt_req.req.hreq, msg2, size)) { + device_printf(softc->dev, "%s:%d Failed to copy" + "data from user\n", __FUNCTION__, __LINE__); + ret = -EFAULT; + goto end; + } + msg = msg2; + + ret = iflib_dma_alloc(softc->ctx, msg->dma[0].length, &dma_data, + BUS_DMA_NOWAIT); + if (ret) { + device_printf(softc->dev, "%s:%d iflib_dma_alloc" + "failed with ret = 0x%x\n", __FUNCTION__, + __LINE__, ret); + ret = -ENOMEM; + goto end; + } + + if (!(msg->dma[0].read_or_write)) { + if (copyin((void *)msg->dma[0].data, + dma_data.idi_vaddr, + msg->dma[0].length)) { + device_printf(softc->dev, "%s:%d Failed to copy" + "data from user\n", __FUNCTION__, + __LINE__); + ret = -EFAULT; + goto end; + } + } + dma_ptr = (void *) ((uint64_t) req + msg->dma[0].offset); + dmap = dma_ptr; + *dmap = htole64(dma_data.idi_paddr); + } + + ret = bnxt_hwrm_passthrough(softc, req, msg->len_req, resp, msg->len_resp, msg->timeout); + if(ret) + goto end; + + if (num_ind) { + if ((msg->dma[0].read_or_write)) { + if (copyout(dma_data.idi_vaddr, + (void *)msg->dma[0].data, + msg->dma[0].length)) { + device_printf(softc->dev, "%s:%d Failed to copy data" + "to user\n", __FUNCTION__, __LINE__); + ret = -EFAULT; + goto end; + } + } + } + + if (copyout(resp, (void *) msg->usr_resp, msg->len_resp)) { + device_printf(softc->dev, "%s:%d Failed to copy response to user\n", + __FUNCTION__, __LINE__); + ret = -EFAULT; + goto end; + } + +end: + if (req) + free(req, M_BNXT); + if (resp) + free(resp, M_BNXT); + if (msg2) + free(msg2, M_BNXT); + if (dma_data.idi_paddr) + iflib_dma_free(&dma_data); + return ret; +} + +static int +bnxt_mgmt_get_dev_info(struct cdev *dev, u_long cmd, caddr_t data, + int flag, struct thread *td) +{ + struct bnxt_softc *softc = NULL; + struct bnxt_dev_info dev_info; + void *user_ptr; + uint32_t dev_sn_lo, dev_sn_hi; + int dev_sn_offset = 0; + char dsn[16]; + uint16_t lnk; + int capreg; + + memcpy(&user_ptr, data, sizeof(user_ptr)); + if (copyin(user_ptr, &dev_info, sizeof(dev_info))) { + printf("%s: %s:%d Failed to copy data from user\n", + DRIVER_NAME, __FUNCTION__, __LINE__); + return -EFAULT; + } + + softc = bnxt_find_dev(0, 0, 0, dev_info.nic_info.dev_name); + if (!softc) { + printf("%s: %s:%d unable to find softc reference\n", + DRIVER_NAME, __FUNCTION__, __LINE__); + return -ENODEV; + } + + strncpy(dev_info.nic_info.driver_version, bnxt_driver_version, 64); + strncpy(dev_info.nic_info.driver_name, device_get_name(softc->dev), 64); + dev_info.pci_info.domain_no = softc->domain; + dev_info.pci_info.bus_no = softc->bus; + dev_info.pci_info.device_no = softc->slot; + dev_info.pci_info.function_no = softc->function; + dev_info.pci_info.vendor_id = pci_get_vendor(softc->dev); + dev_info.pci_info.device_id = pci_get_device(softc->dev); + dev_info.pci_info.sub_system_vendor_id = pci_get_subvendor(softc->dev); + dev_info.pci_info.sub_system_device_id = pci_get_subdevice(softc->dev); + dev_info.pci_info.revision = pci_read_config(softc->dev, PCIR_REVID, 1); + dev_info.pci_info.chip_rev_id = (dev_info.pci_info.device_id << 16); + dev_info.pci_info.chip_rev_id |= dev_info.pci_info.revision; + if (pci_find_extcap(softc->dev, PCIZ_SERNUM, &dev_sn_offset)) { + device_printf(softc->dev, "%s:%d device serial number is not found" + "or not supported\n", __FUNCTION__, __LINE__); + } else { + dev_sn_lo = pci_read_config(softc->dev, dev_sn_offset + 4, 4); + dev_sn_hi = pci_read_config(softc->dev, dev_sn_offset + 8, 4); + snprintf(dsn, sizeof(dsn), "%02x%02x%02x%02x%02x%02x%02x%02x", + (dev_sn_lo & 0x000000FF), + (dev_sn_lo >> 8) & 0x0000FF, + (dev_sn_lo >> 16) & 0x00FF, + (dev_sn_lo >> 24 ) & 0xFF, + (dev_sn_hi & 0x000000FF), + (dev_sn_hi >> 8) & 0x0000FF, + (dev_sn_hi >> 16) & 0x00FF, + (dev_sn_hi >> 24 ) & 0xFF); + strncpy(dev_info.nic_info.device_serial_number, dsn, sizeof(dsn)); + } + + if_t ifp = iflib_get_ifp(softc->ctx); + dev_info.nic_info.mtu = ifp->if_mtu; + memcpy(dev_info.nic_info.mac, softc->func.mac_addr, ETHER_ADDR_LEN); + + if (pci_find_cap(softc->dev, PCIY_EXPRESS, &capreg)) { + device_printf(softc->dev, "%s:%d pci link capability is not found" + "or not supported\n", __FUNCTION__, __LINE__); + } else { + lnk = pci_read_config(softc->dev, capreg + PCIER_LINK_STA, 2); + dev_info.nic_info.pci_link_speed = (lnk & PCIEM_LINK_STA_SPEED); + dev_info.nic_info.pci_link_width = (lnk & PCIEM_LINK_STA_WIDTH) >> 4; + } + + if (copyout(&dev_info, user_ptr, sizeof(dev_info))) { + device_printf(softc->dev, "%s:%d Failed to copy data to user\n", + __FUNCTION__, __LINE__); + return -EFAULT; + } + + return 0; +} + +/* + * IOCTL entry point. + */ +static int +bnxt_mgmt_ioctl(struct cdev *dev, u_long cmd, caddr_t data, int flag, + struct thread *td) +{ + int ret = 0; + + switch(cmd) { + case BNXT_MGMT_OPCODE_GET_DEV_INFO: + ret = bnxt_mgmt_get_dev_info(dev, cmd, data, flag, td); + break; + case BNXT_MGMT_OPCODE_PASSTHROUGH_HWRM: + mtx_lock(&mgmt_lock); + ret = bnxt_mgmt_process_hwrm(dev, cmd, data, flag, td); + mtx_unlock(&mgmt_lock); + break; + default: + printf("%s: Unknown command 0x%lx\n", DRIVER_NAME, cmd); + ret = -EINVAL; + break; + } + + return ret; +} + +static int +bnxt_mgmt_close(struct cdev *dev, int flags, int devtype, struct thread *td) +{ + return (0); +} + +static int +bnxt_mgmt_open(struct cdev *dev, int flags, int devtype, struct thread *td) +{ + return (0); +} + +DEV_MODULE(bnxt_mgmt, bnxt_mgmt_loader, NULL); + diff --git a/sys/dev/bnxt/bnxt_mgmt.h b/sys/dev/bnxt/bnxt_mgmt.h new file mode 100644 index 000000000000..f130ad386809 --- /dev/null +++ b/sys/dev/bnxt/bnxt_mgmt.h @@ -0,0 +1,126 @@ +/* + * Broadcom NetXtreme-C/E network driver. + * + * Copyright (c) 2022 Broadcom, All Rights Reserved. + * The term Broadcom refers to Broadcom Limited and/or its subsidiaries + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS' + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS + * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF + * THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include "bnxt.h" +#include +#include +#include +#include +#include +#include +#include +#include + + +#define DRIVER_NAME "if_bnxt" + +#define BNXT_MGMT_OPCODE_GET_DEV_INFO 0x80000000 +#define BNXT_MGMT_OPCODE_PASSTHROUGH_HWRM 0x80000001 + +#define BNXT_MGMT_MAX_HWRM_REQ_LENGTH HWRM_MAX_REQ_LEN +#define BNXT_MGMT_MAX_HWRM_RESP_LENGTH (512) + +struct bnxt_nic_info { +#define BNXT_MAX_STR 64 + char dev_name[BNXT_MAX_STR]; + char driver_version[BNXT_MAX_STR]; + char driver_name[BNXT_MAX_STR]; + char device_serial_number[64]; + uint32_t mtu; + uint8_t mac[ETHER_ADDR_LEN]; + uint32_t pci_link_speed; + uint32_t pci_link_width; + uint32_t rsvd[4]; +} __packed; + +struct bnxt_pci_info { + uint16_t domain_no; + uint16_t bus_no; + uint16_t device_no; + uint16_t function_no; + uint16_t vendor_id; + uint16_t device_id; + uint16_t sub_system_vendor_id; + uint16_t sub_system_device_id; + uint16_t revision; + uint32_t chip_rev_id; + uint32_t rsvd[2]; +} __packed; + +struct bnxt_dev_info { + struct bnxt_nic_info nic_info; + struct bnxt_pci_info pci_info; +} __packed; + +struct dma_info { + uint64_t data; + uint32_t length; + uint16_t offset; + uint8_t read_or_write; + uint8_t unused; +}; + +struct bnxt_mgmt_fw_msg { + uint64_t usr_req; + uint64_t usr_resp; + uint32_t len_req; + uint32_t len_resp; + uint32_t timeout; + uint32_t num_dma_indications; + struct dma_info dma[0]; +}; + +struct bnxt_mgmt_generic_msg { + uint8_t key; +#define BNXT_LFC_KEY_DOMAIN_NO 1 + uint8_t reserved[3]; + uint32_t value; +}; + +enum bnxt_mgmt_req_type { + BNXT_MGMT_NVM_GET_VAR_REQ = 1, + BNXT_MGMT_NVM_SET_VAR_REQ, + BNXT_MGMT_NVM_FLUSH_REQ, + BNXT_MGMT_GENERIC_HWRM_REQ, +}; + +struct bnxt_mgmt_req_hdr { + uint32_t ver; + uint32_t domain; + uint32_t bus; + uint32_t devfn; + enum bnxt_mgmt_req_type req_type; +}; + +struct bnxt_mgmt_req { + struct bnxt_mgmt_req_hdr hdr; + union { + uint64_t hreq; + } req; +}; + diff --git a/sys/dev/bnxt/if_bnxt.c b/sys/dev/bnxt/if_bnxt.c index 8b26b4d64436..d6cb4d613c96 100644 --- a/sys/dev/bnxt/if_bnxt.c +++ b/sys/dev/bnxt/if_bnxt.c @@ -63,6 +63,7 @@ __FBSDID("$FreeBSD$"); #include "bnxt_ioctl.h" #include "bnxt_sysctl.h" #include "hsi_struct_def.h" +#include "bnxt_mgmt.h" /* * PCI Device ID Table @@ -159,6 +160,9 @@ static pci_vendor_info_t bnxt_vendor_info_array[] = * Function prototypes */ +SLIST_HEAD(softc_list, bnxt_softc_list) pf_list; +int bnxt_num_pfs = 0; + static void *bnxt_register(device_t dev); /* Soft queue setup and teardown */ @@ -297,7 +301,7 @@ static driver_t bnxt_iflib_driver = { * iflib shared context */ -#define BNXT_DRIVER_VERSION "1.0.0.2" +#define BNXT_DRIVER_VERSION "2.20.0.1" char bnxt_driver_version[] = BNXT_DRIVER_VERSION; extern struct if_txrx bnxt_txrx; static struct if_shared_ctx bnxt_sctx_init = { @@ -1203,6 +1207,28 @@ static void bnxt_thor_db_nq(void *db_ptr, bool enable_irq) BUS_SPACE_BARRIER_WRITE); } +struct bnxt_softc *bnxt_find_dev(uint32_t domain, uint32_t bus, uint32_t dev_fn, char *dev_name) +{ + struct bnxt_softc_list *sc = NULL; + + SLIST_FOREACH(sc, &pf_list, next) { + /* get the softc reference based on device name */ + if (dev_name && !strncmp(dev_name, iflib_get_ifp(sc->softc->ctx)->if_xname, BNXT_MAX_STR)) { + return sc->softc; + } + /* get the softc reference based on domain,bus,device,function */ + if (!dev_name && + (domain == sc->softc->domain) && + (bus == sc->softc->bus) && + (dev_fn == sc->softc->dev_fn)) { + return sc->softc; + + } + } + + return NULL; +} + /* Device setup and teardown */ static int bnxt_attach_pre(if_ctx_t ctx) @@ -1242,6 +1268,19 @@ bnxt_attach_pre(if_ctx_t ctx) break; } +#define PCI_DEVFN(device, func) ((((device) & 0x1f) << 3) | ((func) & 0x07)) + softc->domain = pci_get_domain(softc->dev); + softc->bus = pci_get_bus(softc->dev); + softc->slot = pci_get_slot(softc->dev); + softc->function = pci_get_function(softc->dev); + softc->dev_fn = PCI_DEVFN(softc->slot, softc->function); + + if (bnxt_num_pfs == 0) + SLIST_INIT(&pf_list); + bnxt_num_pfs++; + softc->list.softc = softc; + SLIST_INSERT_HEAD(&pf_list, &softc->list, next); + pci_enable_busmaster(softc->dev); if (bnxt_pci_mapping(softc)) @@ -1575,6 +1614,8 @@ bnxt_detach(if_ctx_t ctx) struct bnxt_vlan_tag *tmp; int i; + SLIST_REMOVE(&pf_list, &softc->list, bnxt_softc_list, next); + bnxt_num_pfs--; bnxt_wol_config(ctx); bnxt_do_disable_intr(&softc->def_cp_ring); bnxt_free_sysctl_ctx(softc); diff --git a/sys/modules/bnxt/Makefile b/sys/modules/bnxt/Makefile index 861a0b4c4d4a..f27e9934034e 100644 --- a/sys/modules/bnxt/Makefile +++ b/sys/modules/bnxt/Makefile @@ -6,8 +6,9 @@ KMOD = if_bnxt SRCS = device_if.h bus_if.h pci_if.h pci_iov_if.h ifdi_if.h SRCS += opt_inet.h opt_inet6.h opt_rss.h SRCS += bnxt_txrx.c if_bnxt.c -SRCS += bnxt_hwrm.c bnxt_hwrm.h -SRCS += bnxt_sysctl.c bnxt_sysctl.h +SRCS += bnxt_hwrm.c +SRCS += bnxt_sysctl.c +SRCS += bnxt_mgmt.c CFLAGS+= -DIFLIB From nobody Thu Jan 19 03:52:24 2023 X-Original-To: dev-commits-src-branches@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 4Ny7xP272Rz2svhc; Thu, 19 Jan 2023 03:52:25 +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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Ny7xP1f9lz3jDT; Thu, 19 Jan 2023 03:52:25 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1674100345; 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=61J0aNzy4EelEy5svob1BOrO/FtoqWlfR6pkAcNWGww=; b=FRByYHMQYmCGGyOS2zJABPZzHCgpUaPbuR7P6bnlOfjsKHZfEYPQSYcS8GeIOW5KdSp4Sa +DBeogUvaQVd5Skp97WvqgeoxVLFEmX7/VQeeMJIEQSFYPv7jLcGTjHsPufADaqNYn4Nq+ 5/woZzRyX9gExYsXqLtaHIDbSCmelyLfrKITYsdM0DqSrG1fi+qN8v1HWpIg0wxkLrshwH 86o0d0ndlNe7DB6zvZUV/R8M70juAXrSQIj5gc6ir2CImdrCxUjDSB/FMgF4hOeJzumO8d RbATMQox3UaUa9mEUxHM1xlVCRl0k8PtJs7ECXvzjZaDESq9rLR+cWkYzKmIOw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1674100345; 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=61J0aNzy4EelEy5svob1BOrO/FtoqWlfR6pkAcNWGww=; b=TaEHVwww9alNTTiEQeWlZVd1os7TNsGIzUfqAbMYoH158dN4x8IbT9BZs7EwxmuFTJwoP5 go7uQzTLMPGFBnuOiUoa5NImM7TnPYhJ5lvANh8PYxA4X0vXHIiljm2V9tczSxCtVgvm51 Hu28mBxqxCrFhmIocFt+GLUTaDBrAqFc1SBBjx3qn2KCynrt1Bc9P/RapFDpIjTA+z3m6O mnaYxTVX/yspeiBRVb3mpaiQEVsRGmay5Ge5oLKzgcQe7QTvtbQG3NZsn1gBzoEl4HbQkv SfrMGnRUMqbJILv/fVZA2gcHx3+C6eFabI4VrtfNY+4RY8Rb7iRHNYZFdILktA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1674100345; a=rsa-sha256; cv=none; b=i1lvke2hEmpASJzI3bJgkQMh1VCg5xxJXoCXfs2FxnLfNkuWKeK5qjGoX5atXCjTb52mJ9 uHBjoEgQBkdq9IN1v25nkGsmVCj4ZetX13I8Uavv5vZoscVEbXIu/fJTYiRIChI3MFdH4b OcIhCt/tp4y3GQFswvPop8JL0577iI3hid5eWlf27BBBfOxD+TrLGOQxyVdKZviEeWzXn/ YCZp4BCc3WkAtY2a+M088AO+6HtB5CdfpbHv7HmoYYEr1tTGLBYU/nxXa1IWdCg7eznG8P L/fm8kPZq4nuBNKxWxWa+k6si9KjHOBkB4C/sZxBNrsOkfYW3a31yF3neWwprQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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 did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Ny7xP0YFTzcPc; Thu, 19 Jan 2023 03:52:25 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 30J3qOiE025807; Thu, 19 Jan 2023 03:52:24 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 30J3qOSc025806; Thu, 19 Jan 2023 03:52:24 GMT (envelope-from git) Date: Thu, 19 Jan 2023 03:52:24 GMT Message-Id: <202301190352.30J3qOSc025806@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Warner Losh Subject: git: 05410bd672c7 - stable/13 - bnxt: Only filter out i386 List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: imp X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: 05410bd672c74eaa348ffd481ac5ad2a995ce184 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by imp: URL: https://cgit.FreeBSD.org/src/commit/?id=05410bd672c74eaa348ffd481ac5ad2a995ce184 commit 05410bd672c74eaa348ffd481ac5ad2a995ce184 Author: Warner Losh AuthorDate: 2022-11-05 04:35:37 +0000 Commit: Warner Losh CommitDate: 2023-01-19 01:02:26 +0000 bnxt: Only filter out i386 Only i386 is missing bus_read_8. The other 32-bit platforms can be fixed with a cast to a printf. Suggested by: kevans Sponsored by: Netflix (cherry picked from commit eb40e3e757a7eb80c2b5c38ce05fc4b411b369f9) --- sys/dev/bnxt/bnxt_hwrm.c | 2 +- sys/modules/Makefile | 7 ++++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/sys/dev/bnxt/bnxt_hwrm.c b/sys/dev/bnxt/bnxt_hwrm.c index c362e01a1f8b..efea33327dc7 100644 --- a/sys/dev/bnxt/bnxt_hwrm.c +++ b/sys/dev/bnxt/bnxt_hwrm.c @@ -1483,7 +1483,7 @@ bnxt_hwrm_l2_filter_alloc(struct bnxt_softc *softc, uint16_t vlan_tag, if (*filter_id != -1) { device_printf(softc->dev, "Attempt to re-allocate l2 ctx " - "filter (fid: 0x%lx)\n", *filter_id); + "filter (fid: 0x%jx)\n", (uintmax_t)*filter_id); return EDOOFUS; } diff --git a/sys/modules/Makefile b/sys/modules/Makefile index a1521c48a1f7..53936d77d6ff 100644 --- a/sys/modules/Makefile +++ b/sys/modules/Makefile @@ -69,7 +69,7 @@ SUBDIR= \ ${_bxe} \ ${_bios} \ ${_blake2} \ - bnxt \ + ${_bnxt} \ bridgestp \ bwi \ bwn \ @@ -428,6 +428,11 @@ SUBDIR+= dtrace SUBDIR+= opensolaris .endif +# Requires bus_space_read_8 +.if ${MACHINE_ARCH} != "i386" +_bnxt= bnxt +.endif + .if ${MK_CRYPT} != "no" || defined(ALL_MODULES) .if exists(${SRCTOP}/sys/opencrypto) _crypto= crypto From nobody Thu Jan 19 06:42:54 2023 X-Original-To: dev-commits-src-branches@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 4NyCk63vjfz2v1lZ; Thu, 19 Jan 2023 06:42:54 +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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4NyCk63Rp3z3xsP; Thu, 19 Jan 2023 06:42:54 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1674110574; 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=2E6qvyfAOfOlKNEqRZw74w1QBGAqpXAdl64Med+tWoY=; b=HgrBFx4axtwwRe8ZZnR6oFJl5ALF1cozZO4KkA27hvK3MESKMpjW2q/HUdKEvQHwsHWUWu hIZt22I8RUoMB/dXNlzh4WFspciN9fv7WE4YOmXuI/A068k/o2lOxXti/TUsiZx8XmbE2A 8if39ZQvz6T1kW+I70dBxDmdH2zPzuQyNx7+bhoI8TKaz9RYa800Nb4z4d0CuxD677viqG mArVqCNI5CYb8QQ1atIldas6PS0C6kiI0AdzNLc9ibZsBHiV2+Pqi7xTbSPUGXtfEVDfBz hSh06Jn2trLii4X1DBz4mCdVqBtiGSk/yrxB5l6VPExzsx7o1C33bMZiCMeDpg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1674110574; 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=2E6qvyfAOfOlKNEqRZw74w1QBGAqpXAdl64Med+tWoY=; b=LAH8yuRGMsizsDCt22IqyRiOFLecB6fiTfs7D1+rUOWSAiwdRCxnfhVM5DGg33qRV3EIET XKRSuj8hvI99BQDaQi2Wbk50FUewa6SSDhyUD9i5qmdqdUaxXsD9K+biNmITu9t5HAGAa/ IrG+bcL906E91d5Kal1bIwaQ0vVy30hjJeDAPjwdOIWlPHSJ5K+UuAA5WPHsWocmNlkpjD m3v40o7HWt/eKxS/w4r0NlhriZzyqTqyxmNNh3HCBvlXMOkqkQN+IHRxAQu5P5nWRZ0W6Q PZ1xLcjYpsN49q8eUS92pVcsdlU9tnPC0c+T6EeY1hbJmzCLLeABL/K20Mk70g== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1674110574; a=rsa-sha256; cv=none; b=iF3ELheRBO5P/LU+PDFGH4oshnZtvFvds5SyBmep/RirqAkD5vrQ6Vsi7AiZd/xRH1dBAj jH3gjudyucndgneBIz+II6IiRcABpXn8r9eiqVdLMhT4kNCP21/28FeluPGzTTWYD4ovjl b5H5eNrgts3Oq5wzKdXVucODJPvWudSWhz6I0ARweG1xasDLSm1tfD1AtomNu8nWHbiwst iSMNg3Ws2wyxjQzBPcISuZHuxkARt3bt6FH8cGD8FuafrKhhKDLcYtF9Wv0IdLhsqZxvgm nL+SJQiDFhetTAsqkRBhhZUNxsdcvbbJO2uHTjsX2Fi9URxFXpOVgYDfX4WxLw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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 did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4NyCk62WHHzh87; Thu, 19 Jan 2023 06:42:54 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 30J6gsxU069150; Thu, 19 Jan 2023 06:42:54 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 30J6gsq3069149; Thu, 19 Jan 2023 06:42:54 GMT (envelope-from git) Date: Thu, 19 Jan 2023 06:42:54 GMT Message-Id: <202301190642.30J6gsq3069149@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: =?utf-8?Q?Corvin=20K=C3=B6hne?= Subject: git: 5648f730c0cc - stable/13 - x86: ignore stepping for APL30 errata List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: corvink X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: 5648f730c0cc4c4836e265087199971bac256d7f Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by corvink: URL: https://cgit.FreeBSD.org/src/commit/?id=5648f730c0cc4c4836e265087199971bac256d7f commit 5648f730c0cc4c4836e265087199971bac256d7f Author: Corvin Köhne AuthorDate: 2022-08-09 07:07:59 +0000 Commit: Corvin Köhne CommitDate: 2023-01-19 06:42:41 +0000 x86: ignore stepping for APL30 errata The issue is present in all apollolake cpus and it doesn't look like there'll be a fix in the future. See https://www.intel.com/content/dam/www/public/us/en/documents/specification-updates/pentium-celeron-n-series-j-series-datasheet-spec-update.pdf MFC after: 1 week Sponsored by: Beckhoff Automation GmbH & Co. KG Differential Revision: https://reviews.freebsd.org/D37621 (cherry picked from commit 122405c9034b624dd6771d578ef2467aa96cc145) x86: Remove redundant parentheses Reported by: avg Sponsored by: Beckhoff Automation GmbH & Co. KG MFC after: 1 week MFC-With: b223c1f1a0ac ("x86: Add another cpuid for Apollo Lake errata APL30") (cherry picked from commit 821b850a3bb73a78eef97ea22d1dc6ea82195b65) x86: Add another cpuid for Apollo Lake errata APL30 Sponsored by: Beckhoff Automation GmbH & Co. KG MFC after: 1 week (cherry picked from commit b223c1f1a0ac83a3bd1475add9b794bad1749b2f) --- sys/x86/x86/cpu_machdep.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/sys/x86/x86/cpu_machdep.c b/sys/x86/x86/cpu_machdep.c index 1ec3fb669d01..37db1e85a374 100644 --- a/sys/x86/x86/cpu_machdep.c +++ b/sys/x86/x86/cpu_machdep.c @@ -827,7 +827,8 @@ cpu_idle_tun(void *unused __unused) mwait_cpustop_broken = true; } - if (cpu_vendor_id == CPU_VENDOR_INTEL && cpu_id == 0x506c9) { + if (cpu_vendor_id == CPU_VENDOR_INTEL && + CPUID_TO_FAMILY(cpu_id) == 0x6 && CPUID_TO_MODEL(cpu_id) == 0x5c) { /* * Apollo Lake errata APL31 (public errata APL30). * Stores to the armed address range may not trigger From nobody Thu Jan 19 15:06:50 2023 X-Original-To: dev-commits-src-branches@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 4NyQvZ6K4zz2t8fp; Thu, 19 Jan 2023 15:06:50 +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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4NyQvZ5nztz3gyy; Thu, 19 Jan 2023 15:06:50 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1674140810; 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=s7NyP5VEm4y6jx17KCSAGQzDd2q6EE008z/i9gODJKg=; b=W4Sy5H0g9AXMMveA7Boy1R3sct0vluPodCulp91pSk5eJZetvdH8p3a1b5JkTa0XIyJz2s r74fesYN6KH4Yd3pwtmL+vbBMadu6XwhBDGxRo7w7soXPgLnP3hLsOCWuAJfCMxQPtU3Hg bn3R40jndDst/iP89hiP1K5XrsGvgdsr4Z2s10FLrtL6Y/Ob7plDLLMMIcj7vwvE7JfdlQ w+ZJ2y9wgOsBX4mo0VAAg/LxG8OepRK5ks5wIdiCnfSNj8kjlVI62BziA2DI+WbOHb1sBp auu3k/rD/KqoNPkbqKcT0wwLAfG/iABMa66qEHnC+usUUpHFYPy1Wxro61QkXA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1674140810; 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=s7NyP5VEm4y6jx17KCSAGQzDd2q6EE008z/i9gODJKg=; b=U+i/YdrfBySCbSSzZV9U+dZ8j6LVZzuaWVq9JDCFVOiGD9hXVrxNwCsoJ2I/B3tBxwrze0 w+WzG60PUPzwOkTwOkrisIGldISSHjzoQIPj7hLE+TWalDhT81B1igp5TranFcOILodHod jN1RqnIsWpOWT2q7ELfGERLtel/ZWty2RRjlkHHQ4eHtcLn/CGJjwrHsQ98i7Wp1Vfvyje EhSDTgu0X6Uu/yNHV4pS0uApRuB3my/vXl1zuYa0TKTN+eEYsbBjVIOA42VO5kLZ8b57Ms F+2/rFbvcf0C7RtRxgEDTI3gNX0mbEM9yIIqG5A9yrncnXsWPflzFiC4ZZuH+Q== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1674140810; a=rsa-sha256; cv=none; b=li0gRVsJPRb2LFMZVwvqcmdZxwQHGB01gwr4j/GxGmUN2y9p/hF7K/l7W6Wz7HrRDFnvBh LBI6R/OrmUw+F3tzbygAZjZsDxr/oyd22sk1nqixdJ49jE6HWWYvh0YNKotw8QBgbJTWhg FjhpENw1yVz+ZXDOUzN/D+H3W0KgXoEq5LXBmXUOdtAsxlzha1E97QqRbp92fcbktyqo6h +r8pO9BrGMyKTCmzmSrQVCvamBnGWItmqh9X7xKp6F4UNl21bi/isGTzuViqNoC7vtp0+N 8qy92V8bC3J04RSr0nzZhtlVjPwAbFz87QAkux1mhfc5DYRDCUSJT1Ib+eE/2Q== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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 did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4NyQvZ4rPJzvLr; Thu, 19 Jan 2023 15:06:50 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 30JF6oci082829; Thu, 19 Jan 2023 15:06:50 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 30JF6oNM082828; Thu, 19 Jan 2023 15:06:50 GMT (envelope-from git) Date: Thu, 19 Jan 2023 15:06:50 GMT Message-Id: <202301191506.30JF6oNM082828@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Zhenlei Huang Subject: git: 4d8dd8c29480 - stable/12 - devfs.rules: Do not expose "log" in the default devfs rules List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: zlei X-Git-Repository: src X-Git-Refname: refs/heads/stable/12 X-Git-Reftype: branch X-Git-Commit: 4d8dd8c29480c4cb8985d65e10689ab83dae4512 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/12 has been updated by zlei: URL: https://cgit.FreeBSD.org/src/commit/?id=4d8dd8c29480c4cb8985d65e10689ab83dae4512 commit 4d8dd8c29480c4cb8985d65e10689ab83dae4512 Author: Zhenlei Huang AuthorDate: 2022-05-24 13:54:38 +0000 Commit: Zhenlei Huang CommitDate: 2023-01-19 15:01:00 +0000 devfs.rules: Do not expose "log" in the default devfs rules /etc/rc.d/jail no longer creates /dev/log as a symbolic link since commit 84b354cb9ab61224713c159b1484e8f070fd37be. PR: 228351 Reviewed by: jamie, markj Differential Revision: https://reviews.freebsd.org/D34563 (cherry picked from commit 2670ea8a075ea29a0eee9d227c4cdf585a7b3b55) (cherry picked from commit 02fe4484379c1e67c22ad6abbeea10c8a20d10eb) --- sbin/devfs/devfs.rules | 1 - 1 file changed, 1 deletion(-) diff --git a/sbin/devfs/devfs.rules b/sbin/devfs/devfs.rules index 4f5373d1c4c3..6c82e497f5ec 100644 --- a/sbin/devfs/devfs.rules +++ b/sbin/devfs/devfs.rules @@ -26,7 +26,6 @@ add hide # Requires: devfsrules_hide_all # [devfsrules_unhide_basic=2] -add path log unhide add path null unhide add path zero unhide add path crypto unhide From nobody Thu Jan 19 15:34:14 2023 X-Original-To: dev-commits-src-branches@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 4NyRWB2hPGz2txcV; Thu, 19 Jan 2023 15:34:14 +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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4NyRWB28KTz3knm; Thu, 19 Jan 2023 15:34:14 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1674142454; 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=y+metXuqyD9On8IxMYre85zUD1cTOTbz5jRMe3V8fzc=; b=MjO+C+mlwcLUlEd2b3q1oJPI6z/8fbkU9f8oMa7zH9NLaIGRaSOJNQdfeZUKH6eJ8+V5Zy NlOdzyfdNgUuhmeczw1rNNd/ZzA324kbKP52kxVg3UbV3WvUPNv5jGr4Uy+bd4vlIPYSvi DtYFH4m29AeiHxOXh/h3llGUNJwCxNMq47KVga8kODXqlW1uFZQYNqQmz3l+CaM9cdnWfk YHuwmwAN0cszr8h7dAWxXG5xaxQjSmvVHFynsg5smjIMjIFTYcXHDhCsEDjhqxIufnPaEU AE0QaXAC7Lw3lAXH0l6gEq+5FbM+XzlIrSG8TKRZQqnK3c6wt9Snm/Is5a4J+w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1674142454; 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=y+metXuqyD9On8IxMYre85zUD1cTOTbz5jRMe3V8fzc=; b=v3rYjWiNocD79Go4/6rkZkwNKt2G6NUgxoHba6HokZlioiSK6GEpblLV/sLTybhQuMfDLZ Me+5VQSLjvnKrBrrRO1ABBuBIBE++7C2N7sYBKqVeNAMdhVxqDp48rmTtVKg/qX1i3F5qu ktoLPQ9EuUgBQrLNyEWqCSNHTWQuovQwN2BILugvqXZ5uxXJ6q2hiFLD2M8Jo4z3vVAOSX UozIj1WAyAF1/2xDjPO+i9rGaP7Te4r3udjy+s8QvRlqyzyFcCREL054Kk2c21BLtU207l SYgqGba50V22BsZ0UTjhgn59fij1DHknLVapLaGg/Ght7ZA1OGjmhvi9uz7H2A== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1674142454; a=rsa-sha256; cv=none; b=hVs1iv0NCKKgXHKqD6qmcNYE0H0tW8yvy6GYsjOUmQZQVk3Sj1MrsDTzsLglRFHDCHQ5xX /ZYxy37CRBDWOhGD9rz2s7l+fxcTiUI3q3cQz1ShiUTvYs5SVpk9Kx+yVCCLPAD5XIOptt CKskoGr7vFZ3LiNWDQ95ZTgirEDFfYNOx+MbDdLgLZJiG829/as80RkFe0OAdBxQ7C0T1S 77P9SGQPmd8wAAbHQj5UyV1Nqmg6eOelgnYHotsVWPYAoj5wcHH8S91GGqBcnytwmBOoHw yc9hVALhOU8I4qzXy7a9b3eqkGufrl/qqUppZLPD31Bmb9wBLFHBSVEyxKAsGg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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 did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4NyRWB19ffzw5g; Thu, 19 Jan 2023 15:34:14 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 30JFYEAb024526; Thu, 19 Jan 2023 15:34:14 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 30JFYE3d024525; Thu, 19 Jan 2023 15:34:14 GMT (envelope-from git) Date: Thu, 19 Jan 2023 15:34:14 GMT Message-Id: <202301191534.30JFYE3d024525@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Warner Losh Subject: git: 43ca2ae44949 - stable/13 - LINT: Omit bnxt on i386 List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: imp X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: 43ca2ae44949cbb8dd43601cfda902ab8d098fb5 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by imp: URL: https://cgit.FreeBSD.org/src/commit/?id=43ca2ae44949cbb8dd43601cfda902ab8d098fb5 commit 43ca2ae44949cbb8dd43601cfda902ab8d098fb5 Author: Warner Losh AuthorDate: 2023-01-19 15:31:51 +0000 Commit: Warner Losh CommitDate: 2023-01-19 15:32:47 +0000 LINT: Omit bnxt on i386 bnxt is broken on i386, so omit it from all the LINT builds. Sponsored by: Netflix --- sys/i386/conf/NOTES | 2 ++ 1 file changed, 2 insertions(+) diff --git a/sys/i386/conf/NOTES b/sys/i386/conf/NOTES index 3144adf12c90..763ba321380a 100644 --- a/sys/i386/conf/NOTES +++ b/sys/i386/conf/NOTES @@ -916,3 +916,5 @@ options VM_KMEM_SIZE_MAX options VM_KMEM_SIZE_SCALE +# This is broken on i386 +nodevice bnxt From nobody Thu Jan 19 15:46:01 2023 X-Original-To: dev-commits-src-branches@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 4NyRmp1KNMz2tyn2; Thu, 19 Jan 2023 15:46:02 +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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4NyRmp0gjLz3lyF; Thu, 19 Jan 2023 15:46:02 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1674143162; 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=Tpb2DphgUW+djgSrfpKX87IDl02bScSO/9NVPzIeB4c=; b=sbMQG2YxeYIDD6CoZXG4L5+Dp4IDnydW3R8jK/Nz7Al61H69ZxH9SgYb3ww21VMMvgrTKm pCpPbI63qHcAcgC5mpu0H9Oh4WjlQ2hON0wpLSS7NIt4oO2C+wYkrVVq5swaGigrXoPJHD t39hD67rDu5qplKr+PFw8UrdJrWkHRtEh+8m5FRCgKiFKPoNaiNDg7DATcvYGtDihDL5qr y17iO1BNiT2GB9sS2xlEk3z7VzedXbTskPiNFdenzVZ4T4TZq9SSFlMx5veKELPfelCaEW 6fVkUhQ9fvsy2Ic+zVH0SLhYwuabtzN13tkPMMjMW+FCiDiJg2hlvwD2banyOA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1674143162; 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=Tpb2DphgUW+djgSrfpKX87IDl02bScSO/9NVPzIeB4c=; b=ydCnIqu23EgxvLN9pyMcFhcqI7VRUM6c1S6ZVHyxXYtAifWgCd4P+cDWI64ErLiTPTV2kC qDhU9QA2UfkNUmZwjgUHvXbMBpNHgK9Xo7ZJahBRRpA35B/mciRa5iwmN59+2Mja7Z6b6K MzVEcRt7sdozQ7r6WGeI6Wp7XK5aUkWDX+Z+zYsRKbqGpZfd7aIv9mAv+63RKYe+npuXiY zCuNTtY2FLjC9buZB0Ish0osJ2CcWpcPncVH9g0oyiC1ZYJ0Dc+hUmqCDeyO9MAi/78um6 bsNiZ61DUCBVMBPzKFXQeu3AWUyf3QGzfq9IYhUmOe6dmnzBC+MvUNfvCVqoIQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1674143162; a=rsa-sha256; cv=none; b=Ww7tw+lsV8uHW0QdikqsME4AYBMZ3oB0UV67cZ2syZEoaqQ7UQvVEQV+fF6K8mtryNXR2t LilklDS95MMBMaxlMTWTXhZ8lA2aLgWfeA6MY8ygZBx148SynnUAmr72rDCqJC/cwXbOEV Ab9Yubp2mTAxGGO0Y0VpKD5xUwyDdw7DHGrJEPQOdROhOp6LJG6T4Cq1ybJ8UyYeCsuK1O c/fgQaM9tl3oyNLtKfeZJh9DK2s6hxlIBwcqvWhm3/n18fy6tdhZSHv6DVWaHFkgLzcFXE J0cxb/2wafMXwJzGC9FquuX0I+0V9rlOEIqbeCfSExq9862yUwzNndGyZrPnzQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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 did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4NyRmn6mvJzwSR; Thu, 19 Jan 2023 15:46:01 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 30JFk1GP039316; Thu, 19 Jan 2023 15:46:01 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 30JFk1Ov039315; Thu, 19 Jan 2023 15:46:01 GMT (envelope-from git) Date: Thu, 19 Jan 2023 15:46:01 GMT Message-Id: <202301191546.30JFk1Ov039315@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Zhenlei Huang Subject: git: 0d44c5ae3735 - stable/13 - lio: Remove unneeded include List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: zlei X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: 0d44c5ae3735fb8285fce7662adc86a21ce05768 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by zlei: URL: https://cgit.FreeBSD.org/src/commit/?id=0d44c5ae3735fb8285fce7662adc86a21ce05768 commit 0d44c5ae3735fb8285fce7662adc86a21ce05768 Author: Zhenlei Huang AuthorDate: 2022-09-21 20:52:00 +0000 Commit: Zhenlei Huang CommitDate: 2023-01-19 15:44:05 +0000 lio: Remove unneeded include Reviewed by: adiran, imp Differential Revision: https://reviews.freebsd.org/D36501 (cherry picked from commit d819ddba9aa458f6e91df059426d9a2f1ac0b92d) --- sys/dev/liquidio/lio_bsd.h | 1 - 1 file changed, 1 deletion(-) diff --git a/sys/dev/liquidio/lio_bsd.h b/sys/dev/liquidio/lio_bsd.h index fd6402ea2297..1c8e8e50b189 100644 --- a/sys/dev/liquidio/lio_bsd.h +++ b/sys/dev/liquidio/lio_bsd.h @@ -52,7 +52,6 @@ #include #include -#include #include #include From nobody Thu Jan 19 15:50:06 2023 X-Original-To: dev-commits-src-branches@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 4NyRsV4gnTz2tysN; Thu, 19 Jan 2023 15:50:06 +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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4NyRsV46bNz3mGS; Thu, 19 Jan 2023 15:50:06 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1674143406; 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=ifMyU3CHMK5R9Si+VK4HWiGyaMFghcgpFl+GfhV2WPE=; b=Qm9LPYBNPiaiHa2LZ7K4tVn4vzLYqDcfzUuLxdtEzDVm2Bz/fMO7BXXkZK9BNd8hx0vhJH roKe2ezDUlAGr/skY/nFzU0mmVWAwPxGwS0nctxEDg5FEvOwsFegysM03KIfjI7az4Y2+D NxC/JZUlIHjfEq4YMjCBoaV2MokD56d0JN1m/gctZDfRflZeM0i3oyV9XjKl7SAAVfw1KX ff0AOxeYR32NtFHmvEyDXNANipcXjzc5BzNoNDzhao06zu5xxuKF9/e18FZxESN2E6mDO9 WKJCkmLxbDeJq6jgs1zWP34rS2/NeyZQcRR4HOiuc6GQ008jNRhmLmFc7fYeZg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1674143406; 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=ifMyU3CHMK5R9Si+VK4HWiGyaMFghcgpFl+GfhV2WPE=; b=B/MSkTctB58VnkMCMkL1AvcRsIudaAerGZTRXRqeR7ufgk4x2Uod9lN4zNDGmp5rKxIQcx /4Xp9CltwS5+x2SqqAOoRusjBbgM3lA08PyNsoSqI2viOkL2IHY2Ci8qf21VvNCDBNYH6V 9ql8+MEGhSudRqa/fCVP0eIRj7Pc2DVhgr4RMw9pJkzy9FhruTA77HZmbN4XXxzVr25NcO V6Csf6wyDiv/M7GNz1FlWjBS2EC4iEBdTKfoSCJSriWcRWXyICpK//NhW3fGUpYL+D3X9X SBcnmm+d/h8Ip3eOHpUq4XBRCbSKMAk5lGTMZkF3TtD9JvQeemjJCNegeIzWVQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1674143406; a=rsa-sha256; cv=none; b=uJpglOlOrpbDvzSRTb32fZswULa+dcG4dSRXIgJM0Mj3pn0mIryF4LVJ/cAuTyViNCIRZc yrXNrsS3Ca8bh02Oa4QvxHT+ShZyNdN7jLH6/R/SrUifWUF6vGTx5YXpkIjVy9fB5qQQ0r ATzd1QXk+yPBAld5+bQVY3+9DZaEnrBnyxMojySz7S8ydBmUqV4y2AyWwSM4wmUUhJy0uz TsOazsI7uvPSsS1dUgIxmigTR6D75QNADwJhbJhHsbjPRQC7Z2R5/ybKc3G3kdRTGFueju y1msyuz4sklPB6QqN6FbdNdVWngz1kwC7nRkp37WJ5OXIJr6QyMzVOQdgkaqaQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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 did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4NyRsV3CfXzw3d; Thu, 19 Jan 2023 15:50:06 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 30JFo6B3042773; Thu, 19 Jan 2023 15:50:06 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 30JFo6dl042770; Thu, 19 Jan 2023 15:50:06 GMT (envelope-from git) Date: Thu, 19 Jan 2023 15:50:06 GMT Message-Id: <202301191550.30JFo6dl042770@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Zhenlei Huang Subject: git: d89fd4115ecd - stable/12 - lio: Remove unneeded include List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: zlei X-Git-Repository: src X-Git-Refname: refs/heads/stable/12 X-Git-Reftype: branch X-Git-Commit: d89fd4115ecd322dd03f8c4dbff1879db393ab42 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/12 has been updated by zlei: URL: https://cgit.FreeBSD.org/src/commit/?id=d89fd4115ecd322dd03f8c4dbff1879db393ab42 commit d89fd4115ecd322dd03f8c4dbff1879db393ab42 Author: Zhenlei Huang AuthorDate: 2022-09-21 20:52:00 +0000 Commit: Zhenlei Huang CommitDate: 2023-01-19 15:47:14 +0000 lio: Remove unneeded include Reviewed by: adiran, imp Differential Revision: https://reviews.freebsd.org/D36501 (cherry picked from commit d819ddba9aa458f6e91df059426d9a2f1ac0b92d) (cherry picked from commit 0d44c5ae3735fb8285fce7662adc86a21ce05768) --- sys/dev/liquidio/lio_bsd.h | 1 - 1 file changed, 1 deletion(-) diff --git a/sys/dev/liquidio/lio_bsd.h b/sys/dev/liquidio/lio_bsd.h index c14ffed79472..d70c9395dd8b 100644 --- a/sys/dev/liquidio/lio_bsd.h +++ b/sys/dev/liquidio/lio_bsd.h @@ -51,7 +51,6 @@ #include #include -#include #include #include From nobody Thu Jan 19 16:21:21 2023 X-Original-To: dev-commits-src-branches@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 4NySYZ09Wjz2v3Dy; Thu, 19 Jan 2023 16:21:22 +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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4NySYY6jCrz3q1Y; Thu, 19 Jan 2023 16:21:21 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1674145281; 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=1/z8ZHBKa3bfUxPLdy8gdzb7073g+8vR19cL79pQhTM=; b=I4Ytos6xitZclGkwChYTLxQt0ccE2y6lgQJGpKP6eSSaHeLiKgIH2d/Vl7SY2+AQqrlzqE SfdFh9VD0rlDnWvBFnSJrNStcuM7Ax42jUlFFigblX8PepVE38oEt/xQcQYA2ozlqe7+HR rAyhuQ16+wsWo6HC3Zq3fEiAOsgRrTyiOg9883W+Vpg/nY/0H7dorL4JYv1gL0hArB8aJY 5NYff/zf8hRbAItkBMi3SbrnVqwWwhn1XU8YD4E+ZDd8E98oNxz4cL/Qxn1jJ1Ty298xtp rxMRn1guPFNzQGoWDGunCGfW+boCvNNrkCNEi6XtDNPJUQDgNFHSWmm1QsV7GA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1674145281; 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=1/z8ZHBKa3bfUxPLdy8gdzb7073g+8vR19cL79pQhTM=; b=O0tvsqWKKsQi93QMOx+QQxuJldmqMjeVb2erkWGVpSzKKDzQe5ID9GmsXS/Bz/PwYPRH6+ SXjOiskx/e6L2+r6Dby3b3k7LX8F7xochloWa2hoLfpXRPTRSzxuf4wz8+MmTSD/5aXA/y Cy4vSo0Hta9dM/dOGJhThf56+E4U9uwvByIp3yUbBfZnkQwNBymQcALlnBNw92fO7TpI62 Bl58Izxov5hBjr/QYgN+SKLa1PLfH/kfi7A9Sc7/5bJKMAtqiioKpDNlNBNgq0VWLxd0np thZ1Vx1326oVYm6rYcYl3oQV0rKPr1axtKUWFxY/og2NKZHBcQJ0/b2UxB28DQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1674145281; a=rsa-sha256; cv=none; b=QkwAEX4nRKQzkgOaDE2d+f6JDOyfaJj/JuwvaRTiOt91wBofgG0bg+3pEFU1NQbxMxkaZq g8vDMFkbyXbTZIsawR0+2A5j0oLM+bfflzMqhpVimtFXovB1tFJEJGba4CIotwPmq13r2A fF0p28qXA5nppIj0ZCDBxKT2hVA1pKm6ZPALbF8BQBuKyCkuXJclEaMu4MQj6q80O3c1Zk 0HnsdgS7icWsdH6d/JcfT4hwGz3eh1GNsutVPx8UPvVIRDyGGWCk5N8PrOFqPCEgSo+GQs jc9Wsp/Q3z5JvANYZkN7Qv2+14HgHJGdtGr0+BvqDcA3C+0vUPcl61gKQi/wwQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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 did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4NySYY5ntYzxJL; Thu, 19 Jan 2023 16:21:21 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 30JGLLQB094999; Thu, 19 Jan 2023 16:21:21 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 30JGLLBA094998; Thu, 19 Jan 2023 16:21:21 GMT (envelope-from git) Date: Thu, 19 Jan 2023 16:21:21 GMT Message-Id: <202301191621.30JGLLBA094998@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Zhenlei Huang Subject: git: 4a8af507ebe5 - stable/13 - routing: Use NET_EPOCH_[CALL|WAIT] macros List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: zlei X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: 4a8af507ebe5cabe87928e36d6f203756903df90 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by zlei: URL: https://cgit.FreeBSD.org/src/commit/?id=4a8af507ebe5cabe87928e36d6f203756903df90 commit 4a8af507ebe5cabe87928e36d6f203756903df90 Author: Zhenlei Huang AuthorDate: 2022-12-21 01:33:31 +0000 Commit: Zhenlei Huang CommitDate: 2023-01-19 16:18:11 +0000 routing: Use NET_EPOCH_[CALL|WAIT] macros Reviewed by: melifaro, kp Differential Revision: https://reviews.freebsd.org/D37729 (cherry picked from commit 73336a6fd85b0267cebdbe1c91dc009a5ef8059e) --- sys/net/route/fib_algo.c | 2 +- sys/net/route/nhgrp_ctl.c | 3 +-- sys/net/route/nhop.c | 3 +-- sys/net/route/nhop_ctl.c | 3 +-- sys/net/route/route_rtentry.c | 3 +-- sys/net/route/route_subscription.c | 9 +++------ sys/net/route/route_tables.c | 2 +- 7 files changed, 9 insertions(+), 16 deletions(-) diff --git a/sys/net/route/fib_algo.c b/sys/net/route/fib_algo.c index 1274e5e90bd4..3c2ffa45afbb 100644 --- a/sys/net/route/fib_algo.c +++ b/sys/net/route/fib_algo.c @@ -1738,7 +1738,7 @@ fib_set_algo_ptr(struct fib_data *fd, void *algo_data) void fib_epoch_call(epoch_callback_t callback, epoch_context_t ctx) { - epoch_call(net_epoch_preempt, callback, ctx); + NET_EPOCH_CALL(callback, ctx); } /* diff --git a/sys/net/route/nhgrp_ctl.c b/sys/net/route/nhgrp_ctl.c index 5d6fb219f877..b829b1125597 100644 --- a/sys/net/route/nhgrp_ctl.c +++ b/sys/net/route/nhgrp_ctl.c @@ -385,8 +385,7 @@ nhgrp_free(struct nhgrp_object *nhg) NET_EPOCH_EXIT(et); KASSERT((nhg_priv->nhg_idx == 0), ("gr_idx != 0")); - epoch_call(net_epoch_preempt, destroy_nhgrp_epoch, - &nhg_priv->nhg_epoch_ctx); + NET_EPOCH_CALL(destroy_nhgrp_epoch, &nhg_priv->nhg_epoch_ctx); } /* diff --git a/sys/net/route/nhop.c b/sys/net/route/nhop.c index e087ee1fb6c0..782bdd037d3e 100644 --- a/sys/net/route/nhop.c +++ b/sys/net/route/nhop.c @@ -170,8 +170,7 @@ nhops_destroy_rib(struct rib_head *rh) * Postpone destruction till the end of current epoch * so nhop_free() can safely use nh_control pointer. */ - epoch_call(net_epoch_preempt, destroy_ctl_epoch, - &ctl->ctl_epoch_ctx); + NET_EPOCH_CALL(destroy_ctl_epoch, &ctl->ctl_epoch_ctx); } /* diff --git a/sys/net/route/nhop_ctl.c b/sys/net/route/nhop_ctl.c index d5d921dd66c7..9359a0b5126e 100644 --- a/sys/net/route/nhop_ctl.c +++ b/sys/net/route/nhop_ctl.c @@ -638,8 +638,7 @@ nhop_free(struct nhop_object *nh) } NET_EPOCH_EXIT(et); - epoch_call(net_epoch_preempt, destroy_nhop_epoch, - &nh_priv->nh_epoch_ctx); + NET_EPOCH_CALL(destroy_nhop_epoch, &nh_priv->nh_epoch_ctx); } void diff --git a/sys/net/route/route_rtentry.c b/sys/net/route/route_rtentry.c index 41e4ff8ac49f..64900ae3ae39 100644 --- a/sys/net/route/route_rtentry.c +++ b/sys/net/route/route_rtentry.c @@ -154,8 +154,7 @@ rt_free(struct rtentry *rt) KASSERT(rt != NULL, ("%s: NULL rt", __func__)); - epoch_call(net_epoch_preempt, destroy_rtentry_epoch, - &rt->rt_epoch_ctx); + NET_EPOCH_CALL(destroy_rtentry_epoch, &rt->rt_epoch_ctx); } void diff --git a/sys/net/route/route_subscription.c b/sys/net/route/route_subscription.c index 65b1bdae9900..2c2b3e94e6b4 100644 --- a/sys/net/route/route_subscription.c +++ b/sys/net/route/route_subscription.c @@ -157,8 +157,7 @@ rib_unsubscribe(struct rib_subscription *rs) CK_STAILQ_REMOVE(&rnh->rnh_subscribers, rs, rib_subscription, next); RIB_WUNLOCK(rnh); - epoch_call(net_epoch_preempt, destroy_subscription_epoch, - &rs->epoch_ctx); + NET_EPOCH_CALL(destroy_subscription_epoch, &rs->epoch_ctx); } void @@ -171,8 +170,7 @@ rib_unsubscribe_locked(struct rib_subscription *rs) CK_STAILQ_REMOVE(&rnh->rnh_subscribers, rs, rib_subscription, next); - epoch_call(net_epoch_preempt, destroy_subscription_epoch, - &rs->epoch_ctx); + NET_EPOCH_CALL(destroy_subscription_epoch, &rs->epoch_ctx); } /* @@ -205,8 +203,7 @@ rib_destroy_subscriptions(struct rib_head *rnh) RIB_WLOCK(rnh); while ((rs = CK_STAILQ_FIRST(&rnh->rnh_subscribers)) != NULL) { CK_STAILQ_REMOVE_HEAD(&rnh->rnh_subscribers, next); - epoch_call(net_epoch_preempt, destroy_subscription_epoch, - &rs->epoch_ctx); + NET_EPOCH_CALL(destroy_subscription_epoch, &rs->epoch_ctx); } RIB_WUNLOCK(rnh); NET_EPOCH_EXIT(et); diff --git a/sys/net/route/route_tables.c b/sys/net/route/route_tables.c index f5fe4b5d2a81..65829676d76f 100644 --- a/sys/net/route/route_tables.c +++ b/sys/net/route/route_tables.c @@ -245,7 +245,7 @@ grow_rtables(uint32_t num_tables) /* Wait till all cpus see new pointers */ atomic_thread_fence_rel(); - epoch_wait_preempt(net_epoch_preempt); + NET_EPOCH_WAIT(); /* Set number of fibs to a new value */ V_rt_numfibs = num_tables; From nobody Fri Jan 20 03:23:22 2023 X-Original-To: dev-commits-src-branches@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 4NylFQ6z4rz30vfD; Fri, 20 Jan 2023 03:23:22 +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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4NylFQ4G0Zz3mmX; Fri, 20 Jan 2023 03:23:22 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1674185002; 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=G0DazLaKvHUWR0lyHnk5N9+KcwbbL5p112IPAmweEDk=; b=bVY9Wa3sHtAiUQZhIJ/9fjvgm5G39n/1G7iykoY8QzfN1yIpPbMT35P1a4J+eX9hp/911W +VuRoSiBp3hKLQv1cyGDAdX+zoc6K1CsSAegW17yMDsqEu9/jTykm39pbWA2cLN1+sYpXD YIVAQPHHn3KyQ3NKza3uxcYHKfdQq+2GguXRBvBRY7KibNBTZFj5HVVhJPSKDy0SyB7HMf aLkwXgiQHXXXgZfTk+Xyi1afYbcXNVCiMRRqtUoVA2NTzR2rzrwudl1Qth7TTQs4xfngZa SEyZLnOmAgwAt8C51o2eDKDG3stcLgNOncHHedgesti8SfApF/TUFopSN7FMbg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1674185002; 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=G0DazLaKvHUWR0lyHnk5N9+KcwbbL5p112IPAmweEDk=; b=dPu7pBNqAZidV5sx9Up15SLNjez7AFQ/2VvLNkERI8ct/A9KUwowC/glW0KM48neHINbW1 LLfoKUiIUQ74AJjrxBYpzjkiJK1lcRhM5LEHVNJUf10Xybbx0TiBs/AbrIAHPEoYPVSzv4 oVM5QO4SeDKmmWxpZxGLPBVFib2Ik5koZttBByz7cGt0SIcLPAup6qJbOk5BHxXlO37Qhi grqlU3LwMMmfX9bljtTDp0nh0KORb//s4bKdp5zEExR9f5B5ta2mOsbMZL6O7dBhSmJV5V HHBpVm2SbgDu9SK/x6/r99zKBYl+KcR8vSRGgS0LqrDhxiF+sqtRzjaOEeT4Ug== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1674185002; a=rsa-sha256; cv=none; b=XgNKmZcTUIyv/i/lzbtCjKskdcGDx2LgQr2QgeS0wL16SrO17HC8ZGiTQKK9V+iwWXooRf +qnYDDtwvo4/gqGuabYskemGj+uxXzXfPKA29VpoZQ59i7zOBY1un3iFPjzr7To7MewYVC fSk4AUjlHFHnl+nbl3X/MHfvfdPxMFFuSLB6Mg0UZeT2mzvK6N3dtHxBhtu0yQAsYL4CJ1 7smstNLQSibdSSLPg+mya6idlhDtDGZ9mLVMX4rAun0prnrTVGI6fEqTR0mx6L9d2Ii/Qf tfXKGgbZyllF62tPJU+YBes0cCsT8RB2N/9d5v9ODcAVcQk2pbzdUuGIOi5Jrg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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 did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4NylFQ3KH3zGDJ; Fri, 20 Jan 2023 03:23:22 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 30K3NMSj042061; Fri, 20 Jan 2023 03:23:22 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 30K3NMt6042060; Fri, 20 Jan 2023 03:23:22 GMT (envelope-from git) Date: Fri, 20 Jan 2023 03:23:22 GMT Message-Id: <202301200323.30K3NMt6042060@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Konstantin Belousov Subject: git: 8fa2644171ce - stable/13 - uiomove_object: hide diagnostic under bootverbose List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@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/13 X-Git-Reftype: branch X-Git-Commit: 8fa2644171cea455dbe8e24e7a0902066c3cf1b7 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=8fa2644171cea455dbe8e24e7a0902066c3cf1b7 commit 8fa2644171cea455dbe8e24e7a0902066c3cf1b7 Author: Konstantin Belousov AuthorDate: 2022-10-23 11:36:17 +0000 Commit: Konstantin Belousov CommitDate: 2023-01-20 03:18:49 +0000 uiomove_object: hide diagnostic under bootverbose Tested by: pho (cherry picked from commit 7ec4b29b086b67b8c778d2bc50c90e9e0655c03e) --- sys/kern/uipc_shm.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/sys/kern/uipc_shm.c b/sys/kern/uipc_shm.c index 2bd7c3a038df..4f06d9bea40e 100644 --- a/sys/kern/uipc_shm.c +++ b/sys/kern/uipc_shm.c @@ -221,8 +221,10 @@ uiomove_object_page(vm_object_t obj, size_t len, struct uio *uio) VM_ALLOC_NORMAL | VM_ALLOC_SBUSY | VM_ALLOC_IGN_SBUSY); if (rv != VM_PAGER_OK) { VM_OBJECT_WUNLOCK(obj); - printf("uiomove_object: vm_obj %p idx %jd pager error %d\n", - obj, idx, rv); + if (bootverbose) { + printf("uiomove_object: vm_obj %p idx %jd " + "pager error %d\n", obj, idx, rv); + } return (EIO); } VM_OBJECT_WUNLOCK(obj); From nobody Fri Jan 20 03:23:23 2023 X-Original-To: dev-commits-src-branches@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 4NylFS3kbYz30vRD; Fri, 20 Jan 2023 03:23:24 +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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4NylFR5qydz3n9k; Fri, 20 Jan 2023 03:23:23 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1674185003; 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=Q0GXGPGai++zQrXtD5oIaiPfMf7IZF6AuKoSqy8fHv8=; b=IGEqgRHQH/1udzJlnibYkhhwinD5zb0qqloutUXoZmmKdnzpaTzKHJw4Tz3a+UHPFR59wI qdDCZp8ToABhBhAtdkF6KGu+sQp3034cIZg6VvwwVxiZsSHB92SrcdkEJXLahoUzHuIGt2 FyC7MFlm8UuT63IjwyfbiEr+XDoSB4OM4SR4iK9cxYV9X8rucneRgpx0mkwqRwNyvty9jq dT/zD84LPc/qwKM0bcFULYCiv1U8mmA5bM3EP/K/ZCn39QMdVT6LISfaPvn+DRGO2FocZb /RkCvBjCVZQTvnJIMuV9sJMrkf/R1ZLy8q9KNrA1wztLeSOamuMnDn61//4Kfw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1674185003; 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=Q0GXGPGai++zQrXtD5oIaiPfMf7IZF6AuKoSqy8fHv8=; b=LEc3i7u0v6+1h/XJtqqdJvGISgbMOahfXPUE0QehcBdZShuhswLv6kYe+A/buMx9bM5WGg MDR68DvOlwX6+suw5IGY29XJ6QPXkbclFBVTgOUY1RGaHRmFZO54vL8jxuattvfeEdeTAa WLEAZpnc9egIefdSQuZQiLpwtHv9yF1klOg00S5P019KrCFhBA0bsRd/JHxw4Yy2MV5wg0 T5I7ELFV3U5NeNQJj4ruHWBoUrdBnnmrhwzPxHRV/pcBhtfUd+XxlHI0PDo8jQLIM8UVar +SuKJcHaez3btlYv6lKIrN+A/mYEmf+ckoQpSPd06RU8V+pesb1kGBT79hMy9Q== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1674185003; a=rsa-sha256; cv=none; b=vjv1YKbNqGzf3hUDXVTiN53lPPrnMhIsGu8t9KtzPR4G28RTvHGr7lLpyGtgSBqpILeu2s r8GgbjUXQyufJEiLeZpMHiDBMkJgCs+6BfKLg0bvEaloG+Cd2I9vttcF+GY0BPwru9UYwV N3OVe88WpULGWwKvJPqr4YNPtsw+Jn5Y57DvwwjCQu6Cx1hjq9marqZkkTkj/qIVSjBCSv D4AgzE3odW1mp2xI6CoNwGuUJD23o4g2RtHzPnreEHg6PB1HUNj5SwCPAS8d77kXQHF8de na9zNC6vhdj2ijQsjIuHQW9NCBE5AJfpGuqU2hXH+x6MgEjgGHJ6dE8FEJM1bQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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 did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4NylFR4VsbzG9J; Fri, 20 Jan 2023 03:23:23 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 30K3NNgv042085; Fri, 20 Jan 2023 03:23:23 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 30K3NN6m042084; Fri, 20 Jan 2023 03:23:23 GMT (envelope-from git) Date: Fri, 20 Jan 2023 03:23:23 GMT Message-Id: <202301200323.30K3NN6m042084@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Konstantin Belousov Subject: git: 1797e69477cd - stable/13 - tmpfs: minor style List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@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/13 X-Git-Reftype: branch X-Git-Commit: 1797e69477cdfbd3f0e59c52fda8a9877f5a6544 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=1797e69477cdfbd3f0e59c52fda8a9877f5a6544 commit 1797e69477cdfbd3f0e59c52fda8a9877f5a6544 Author: Konstantin Belousov AuthorDate: 2022-10-24 13:30:38 +0000 Commit: Konstantin Belousov CommitDate: 2023-01-20 03:18:56 +0000 tmpfs: minor style Tested by: pho (cherry picked from commit e77f2f9dc683bb5ac725c5844fc36c831138e841) --- sys/fs/tmpfs/tmpfs_vnops.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/sys/fs/tmpfs/tmpfs_vnops.c b/sys/fs/tmpfs/tmpfs_vnops.c index f46c0ef9490f..788e966fedb7 100644 --- a/sys/fs/tmpfs/tmpfs_vnops.c +++ b/sys/fs/tmpfs/tmpfs_vnops.c @@ -479,8 +479,9 @@ tmpfs_stat(struct vop_stat_args *v) if (vp->v_type == VREG) { obj = node->tn_reg.tn_aobj; sb->st_blocks = (u_quad_t)obj->resident_page_count * PAGE_SIZE; - } else + } else { sb->st_blocks = node->tn_size; + } sb->st_blocks /= S_BLKSIZE; return (vop_stat_helper_post(v, error)); } @@ -513,12 +514,13 @@ tmpfs_getattr(struct vop_getattr_args *v) vap->va_gen = node->tn_gen; vap->va_flags = node->tn_flags; vap->va_rdev = (vp->v_type == VBLK || vp->v_type == VCHR) ? - node->tn_rdev : NODEV; + node->tn_rdev : NODEV; if (vp->v_type == VREG) { obj = node->tn_reg.tn_aobj; vap->va_bytes = (u_quad_t)obj->resident_page_count * PAGE_SIZE; - } else + } else { vap->va_bytes = node->tn_size; + } vap->va_filerev = 0; return (0); From nobody Fri Jan 20 03:23:24 2023 X-Original-To: dev-commits-src-branches@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 4NylFT2Bl1z30vCK; Fri, 20 Jan 2023 03:23:25 +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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4NylFT0mtWz3nB4; Fri, 20 Jan 2023 03:23:25 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1674185005; 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=HAVfhn2R+opd/9oOmRP1cX0ThFZ1o8vo2pZMYOAjkQY=; b=g+Lnoy1G9M3OWzz7mSo+i9t6jaavg09WAdak2DLCXuV02O/cR0uv9DjjrZa53ZD0GrbyYq QG5xWZwHIzG6kW4TbIDQlsrAr37lnUwq02uSiWXhvqnx0tdS88BYJPJhN3VSk1KvG8PKzs oEqwcRsAPkFc9an6WLFkb7txo8viu+W1j8qs95aRSYcBChBoPxw/kK2g1nnVgaY855RsVD XR1KYq/EeF95vk7jxlXOO4v2sXBhDoARDROeEvTquZxyS7SiNrp1NbGMELaEnFe4jgmrTG ysAb/FqEVkXgX3A2IgWXJENmRgrSJ9kFvldDpv3i+O+LY5Hf1f0g7oJKt7hIeQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1674185005; 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=HAVfhn2R+opd/9oOmRP1cX0ThFZ1o8vo2pZMYOAjkQY=; b=BhYtwJpdznL9cU7G7osmBMlFs5jPItC9od1Y1lL8bm1IA20QTXbBbCOsMETXNP8TSkUntL CBOM3cEj4sXeouWnv/8BSyQpZQRR98B2cHuT21YYFWobJ7/lvhA7+8aCdweliu1tw1Uj6q jn4aUxmxArIFdrkPHaZH9UluU8HZDBY8F8IGPpdU/hWTitCq+c6hHpHvvro8Y8nhmPzR0G epboHbHV9uaJzQjZC+Mg+06kjddA1+t77d9WH3Nzj5Zicds5w4vehbDtch9+5FMvJindUt 0T50HPpaKQt7puDo+KiQPPRqtxjTEJboMdPRggoOBtxmgtg+4g67Hma1sISPLg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1674185005; a=rsa-sha256; cv=none; b=Kziqm214CQpJqLj+P3gynI3qUzG7Zc0AiSBiIzqg1ruQdXjXjr4OpGqcd+vSqrHJurkxwa j0vCnpuP2kjjdI2JSczvDtAihR9V94RP28UnHL2QuIBmJENeZLzZKcTRRPRBzdMyypfO8q ZX/izjyFaVISQqjPoFzekX3pPEXt0+r1hZtjOXo8YxnLH/gWx0MJ248Psk9SghraS689l6 rYJdo8F8QewKkBwoZjAOpdDQTdeDUBOdrwh5G5OuivnExFEsaTLpOlWKVhWw610F/HKzxA 5drrOECD7qMMQrBSBO4KWoFCmQO2csFlU40VsPVMFu5Zcvl6xlYAeP/2VsfGww== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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 did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4NylFS5X15zFdy; Fri, 20 Jan 2023 03:23:24 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 30K3NOgv042116; Fri, 20 Jan 2023 03:23:24 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 30K3NOpG042115; Fri, 20 Jan 2023 03:23:24 GMT (envelope-from git) Date: Fri, 20 Jan 2023 03:23:24 GMT Message-Id: <202301200323.30K3NOpG042115@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Konstantin Belousov Subject: git: 9b2f554dca7d - stable/13 - Add 'show tmpfs' ddb command List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@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/13 X-Git-Reftype: branch X-Git-Commit: 9b2f554dca7d3a8104a760df69e011acec592df9 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=9b2f554dca7d3a8104a760df69e011acec592df9 commit 9b2f554dca7d3a8104a760df69e011acec592df9 Author: Konstantin Belousov AuthorDate: 2022-10-20 14:30:00 +0000 Commit: Konstantin Belousov CommitDate: 2023-01-20 03:19:01 +0000 Add 'show tmpfs' ddb command Tested by: pho (cherry picked from commit 83aff0f08c525ea3c394f3dd6598665cd369d53c) --- sys/fs/tmpfs/tmpfs_vfsops.c | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) diff --git a/sys/fs/tmpfs/tmpfs_vfsops.c b/sys/fs/tmpfs/tmpfs_vfsops.c index b8ecedbb0348..c80042286948 100644 --- a/sys/fs/tmpfs/tmpfs_vfsops.c +++ b/sys/fs/tmpfs/tmpfs_vfsops.c @@ -43,6 +43,7 @@ * allocate and release resources. */ +#include "opt_ddb.h" #include "opt_tmpfs.h" #include @@ -696,3 +697,44 @@ struct vfsops tmpfs_vfsops = { .vfs_uninit = tmpfs_uninit, }; VFS_SET(tmpfs_vfsops, tmpfs, VFCF_JAIL); + +#ifdef DDB +#include + +static void +db_print_tmpfs(struct mount *mp, struct tmpfs_mount *tmp) +{ + db_printf("mp %p (%s) tmp %p\n", mp, + mp->mnt_stat.f_mntonname, tmp); + db_printf( + "\tsize max %ju pages max %lu pages used %lu\n" + "\tinodes max %ju inodes inuse %ju refcount %ju\n" + "\tmaxfilesize %ju r%c %snamecache %smtime\n", + (uintmax_t)tmp->tm_size_max, tmp->tm_pages_max, tmp->tm_pages_used, + (uintmax_t)tmp->tm_nodes_max, (uintmax_t)tmp->tm_nodes_inuse, + (uintmax_t)tmp->tm_refcount, (uintmax_t)tmp->tm_maxfilesize, + tmp->tm_ronly ? 'o' : 'w', tmp->tm_nonc ? "no" : "", + tmp->tm_nomtime ? "no" : ""); +} + +DB_SHOW_COMMAND(tmpfs, db_show_tmpfs) +{ + struct mount *mp; + struct tmpfs_mount *tmp; + + if (have_addr) { + mp = (struct mount *)addr; + tmp = VFS_TO_TMPFS(mp); + db_print_tmpfs(mp, tmp); + return; + } + + TAILQ_FOREACH(mp, &mountlist, mnt_list) { + if (strcmp(mp->mnt_stat.f_fstypename, tmpfs_vfsconf.vfc_name) == + 0) { + tmp = VFS_TO_TMPFS(mp); + db_print_tmpfs(mp, tmp); + } + } +} +#endif /* DDB */ From nobody Fri Jan 20 03:23:25 2023 X-Original-To: dev-commits-src-branches@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 4NylFV1xwNz30vSq; Fri, 20 Jan 2023 03:23:26 +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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4NylFV0WSYz3mps; Fri, 20 Jan 2023 03:23:26 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1674185006; 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=T0ozILaBICe3043rcVvyYomSAJngI/O2KdscrmWGi5s=; b=gkl0jAlmqHrgEs0T2Lhu5uAyqC9Tcw3dRrnr/PJTwzKIXE6e+VUsRsM8IDZBnSqlmsdeZY 0XhPt0FUZ8YHwBVMNPsLRYZn21YpI6aHDoc4z8NfpPl0YbgSZjVxgxl75FSvz3BawHrcub b20Vw3d6mafRYDdZyGxprTTfEtdd++INHcvx/GyOmwdcPWr1/CHJDLJOgNs3pU6tiPVT36 fxpOqcfF2wCVlRLlG9ci8r1yWKzw+ff74gaTUUwwYGsZiv9yc1a6ryB5rSs4FSdsFux5Ar fYZoW2OT9SgVmmWXTlKEqWhqskjgHIQlvokfeeXaM03ncgSTROC+G3vGmxygIQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1674185006; 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=T0ozILaBICe3043rcVvyYomSAJngI/O2KdscrmWGi5s=; b=IwL3WcFVN9k5KPKbkCDV+UDgs2mhhn1H/rz138v3BoQC8IRZit0cPvgrOL40/+6jrGjm3B 0kMp8WGjtw6NhAt93HvDMfmEDuLOWAcWc9ejoHRk/OOXFku8uSQKvuUZa9gMiLvYSxvWPs k1Yt5kS5hKtoOzN7nOlturb7d9LP14fLM5BTX0rtayWXPLkBX+c5/sZd3lqQ8+ew9B39Ho Db6lGHgRSLLZXAVjoFwMLqU7DNQSf9YknFNQuHvCwO5YT9mzRz++FIjqA+PNqUoFYKyd2g 3cuYtrjgmfmAnnfN+NND59SAFbuwu5GdkoLebhR8J56IVxxAQuKbDiaK3ruPRw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1674185006; a=rsa-sha256; cv=none; b=Z84t0hdQ6jqSpfU4tAEqUcmZmO86vbxdZgAV3zMOWc9TdIxgZO1SID0LBHHw+M+Uz/7zMa RoMtFS2jk/djbaQqIpTsMwAvS5v4cvLUI7J+hce4GOqUVBig+biHsyWzb1O5JKHglAxmB6 /btG8mgiYVyxLjXlyI/+Pu5Y2fwVuDcocvv8NR4zw8i6x7yipYEPai40Lp5DROhoq3ba3W 7pcaUT8YIjcxdQE8bk/iUCT6sNh7R6oB9U76FZnjF1OXevkmx/jXZiFXMu8ykXQCiO+DTZ a7F1y+TA/oe3A2Lr/gWtzSBTG1jgAjQ22hLgak0QPtdCQnf7fAM4VV1yESO0Mg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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 did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4NylFT6NX9zFyp; Fri, 20 Jan 2023 03:23:25 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 30K3NPga042140; Fri, 20 Jan 2023 03:23:25 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 30K3NP1m042139; Fri, 20 Jan 2023 03:23:25 GMT (envelope-from git) Date: Fri, 20 Jan 2023 03:23:25 GMT Message-Id: <202301200323.30K3NP1m042139@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Konstantin Belousov Subject: git: 86ea175ec2ed - stable/13 - Make swap_pager_freespace() global List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@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/13 X-Git-Reftype: branch X-Git-Commit: 86ea175ec2ed58e43020c64d82b35605ab425ec2 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=86ea175ec2ed58e43020c64d82b35605ab425ec2 commit 86ea175ec2ed58e43020c64d82b35605ab425ec2 Author: Konstantin Belousov AuthorDate: 2022-10-26 22:13:27 +0000 Commit: Konstantin Belousov CommitDate: 2023-01-20 03:19:07 +0000 Make swap_pager_freespace() global Tested by: pho (cherry picked from commit baa1ccceefdf4954a88e54ca18c6ab1762faa326) --- sys/vm/swap_pager.c | 54 +++++++++++++++++++++++++++++++++++++++++------------ sys/vm/swap_pager.h | 2 ++ 2 files changed, 44 insertions(+), 12 deletions(-) diff --git a/sys/vm/swap_pager.c b/sys/vm/swap_pager.c index 0cd8b498dc4f..407ef1473760 100644 --- a/sys/vm/swap_pager.c +++ b/sys/vm/swap_pager.c @@ -436,7 +436,7 @@ static void swap_pager_update_writecount(vm_object_t object, vm_offset_t start, vm_offset_t end); static void swap_pager_release_writecount(vm_object_t object, vm_offset_t start, vm_offset_t end); -static void swap_pager_freespace(vm_object_t object, vm_pindex_t start, +static void swap_pager_freespace_pgo(vm_object_t object, vm_pindex_t start, vm_size_t size); const struct pagerops swappagerops = { @@ -451,7 +451,7 @@ const struct pagerops swappagerops = { .pgo_pageunswapped = swap_pager_unswapped, /* remove swap related to page */ .pgo_update_writecount = swap_pager_update_writecount, .pgo_release_writecount = swap_pager_release_writecount, - .pgo_freespace = swap_pager_freespace, + .pgo_freespace = swap_pager_freespace_pgo, }; /* @@ -483,9 +483,10 @@ static daddr_t swp_pager_getswapspace(int *npages); * Metadata functions */ static daddr_t swp_pager_meta_build(vm_object_t, vm_pindex_t, daddr_t); -static void swp_pager_meta_free(vm_object_t, vm_pindex_t, vm_pindex_t); +static void swp_pager_meta_free(vm_object_t, vm_pindex_t, vm_size_t, + vm_size_t *); static void swp_pager_meta_transfer(vm_object_t src, vm_object_t dst, - vm_pindex_t pindex, vm_pindex_t count); + vm_pindex_t pindex, vm_pindex_t count, vm_size_t *freed); static void swp_pager_meta_free_all(vm_object_t); static daddr_t swp_pager_meta_lookup(vm_object_t, vm_pindex_t); @@ -960,11 +961,21 @@ sysctl_swap_fragmentation(SYSCTL_HANDLER_ARGS) * * The object must be locked. */ +void +swap_pager_freespace(vm_object_t object, vm_pindex_t start, vm_size_t size, + vm_size_t *freed) +{ + MPASS((object->flags & OBJ_SWAP) != 0); + + swp_pager_meta_free(object, start, size, freed); +} + static void -swap_pager_freespace(vm_object_t object, vm_pindex_t start, vm_size_t size) +swap_pager_freespace_pgo(vm_object_t object, vm_pindex_t start, vm_size_t size) { + MPASS((object->flags & OBJ_SWAP) != 0); - swp_pager_meta_free(object, start, size); + swp_pager_meta_free(object, start, size, NULL); } /* @@ -988,7 +999,7 @@ swap_pager_reserve(vm_object_t object, vm_pindex_t start, vm_pindex_t size) n = MIN(size - i, INT_MAX); blk = swp_pager_getswapspace(&n); if (blk == SWAPBLK_NONE) { - swp_pager_meta_free(object, start, i); + swp_pager_meta_free(object, start, i, NULL); VM_OBJECT_WUNLOCK(object); return (-1); } @@ -1077,7 +1088,8 @@ swap_pager_copy(vm_object_t srcobject, vm_object_t dstobject, /* * Transfer source to destination. */ - swp_pager_meta_transfer(srcobject, dstobject, offset, dstobject->size); + swp_pager_meta_transfer(srcobject, dstobject, offset, dstobject->size, + NULL); /* * Free left over swap blocks in source. @@ -2150,16 +2162,22 @@ allocated: */ static void swp_pager_meta_transfer(vm_object_t srcobject, vm_object_t dstobject, - vm_pindex_t pindex, vm_pindex_t count) + vm_pindex_t pindex, vm_pindex_t count, vm_size_t *moved) { struct swblk *sb; + vm_page_t m; daddr_t n_free, s_free; vm_pindex_t offset, last; + vm_size_t mc; int i, limit, start; VM_OBJECT_ASSERT_WLOCKED(srcobject); + MPASS(moved == NULL || dstobject == NULL); + + mc = 0; + m = NULL; if ((srcobject->flags & OBJ_SWAP) == 0 || count == 0) - return; + goto out; swp_pager_init_freerange(&s_free, &n_free); offset = pindex; @@ -2181,6 +2199,14 @@ swp_pager_meta_transfer(vm_object_t srcobject, vm_object_t dstobject, swp_pager_update_freerange(&s_free, &n_free, sb->d[i]); } + if (moved != NULL) { + if (m != NULL && m->pindex != pindex + i - 1) + m = NULL; + m = m != NULL ? vm_page_next(m) : + vm_page_lookup(srcobject, pindex + i); + if (m == NULL || vm_page_none_valid(m)) + mc++; + } sb->d[i] = SWAPBLK_NONE; } pindex = sb->p + SWAP_META_PAGES; @@ -2192,6 +2218,9 @@ swp_pager_meta_transfer(vm_object_t srcobject, vm_object_t dstobject, } } swp_pager_freeswapspace(s_free, n_free); +out: + if (moved != NULL) + *moved = mc; } /* @@ -2205,9 +2234,10 @@ swp_pager_meta_transfer(vm_object_t srcobject, vm_object_t dstobject, * with resident pages. */ static void -swp_pager_meta_free(vm_object_t object, vm_pindex_t pindex, vm_pindex_t count) +swp_pager_meta_free(vm_object_t object, vm_pindex_t pindex, vm_pindex_t count, + vm_size_t *freed) { - swp_pager_meta_transfer(object, NULL, pindex, count); + swp_pager_meta_transfer(object, NULL, pindex, count, freed); } /* diff --git a/sys/vm/swap_pager.h b/sys/vm/swap_pager.h index 6761d4f99ee4..616f6c46164a 100644 --- a/sys/vm/swap_pager.h +++ b/sys/vm/swap_pager.h @@ -76,6 +76,8 @@ struct xswdev; int swap_dev_info(int name, struct xswdev *xs, char *devname, size_t len); void swap_pager_copy(vm_object_t, vm_object_t, vm_pindex_t, int); vm_pindex_t swap_pager_find_least(vm_object_t object, vm_pindex_t pindex); +void swap_pager_freespace(vm_object_t object, vm_pindex_t start, + vm_size_t size, vm_size_t *freed); void swap_pager_swap_init(void); int swap_pager_nswapdev(void); int swap_pager_reserve(vm_object_t, vm_pindex_t, vm_pindex_t); From nobody Fri Jan 20 03:23:26 2023 X-Original-To: dev-commits-src-branches@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 4NylFW3HnLz30vb1; Fri, 20 Jan 2023 03:23:27 +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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4NylFW0jm9z3n66; Fri, 20 Jan 2023 03:23:27 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1674185007; 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=ldHR0/RBGzzMUcjCX/XzQjAmAYkDBwGiyr28KMe0ToU=; b=hIJ9HcLJekvT4Ip04y4kVpAoch8LcqERyzMM6j1zSjzXA+oz+6UlG4XBKIX0WiVoPtkEhu zVicPg3IbP+Lo+HJlTqxE4M6Klml5oW0mRAM/ObMAo5Z9iV5z8nVW9c7F+TsjeznnBVkTj iG0EFxALRRjYVOa/ACZWyFSMnzNrvibOZnaZGClq/bpd+oxagQbyMRVIMEwmcn62csVSQ5 4SMFTAmouqXSDItypUaYqsIIs/2pSvPCnvMFJ5mhMGMD8vikwyWyO6kiTImGLefXs7lB0f FidZdBa6x5jEJMAmUU3bwdCCYn91s9FRKPTLFuaUnsJuG8eKUcKlDAjdzKdZ4w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1674185007; 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=ldHR0/RBGzzMUcjCX/XzQjAmAYkDBwGiyr28KMe0ToU=; b=DdW9bfZnGlw51eBoh70GGoCIxEun6CMtytFjw2FEwwvs0+gcdNcn7Nybz+FTkJeA4GAqDj /RHSliViRDgnLT0T21YyyrYnad+tlP0AQTDPb3fCQKBlppj+1XV5fG3KwLJ4TPPBAjt6Tj mTAoUPwVijzwWrb12D23VbNFJaX+S18l2Wa+QZcfvM/LuAjqAWU/foZeJa4KSIK8Cc0hSr OnpxyEAQsBxtKkVHSRbX34SzcJzU/3odKvq66DvC1ccI1OX7CBPiRp51o2VzuZWAbYwLv3 aGmY5dmIkInr1MTGT+kZ0yAczGVzaRGeN1hR6s+OjK4A8flLUTzBh2Iaxc9MCg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1674185007; a=rsa-sha256; cv=none; b=wAR6ArzskRysMOW1HtOd0PEZmfIjjFdySv9ZjGU6JjHyZ3cDCTqlT0xM5dK7ABet6o/qum Skz1GicfzlbkyOEWauUJ96HwO2EhnLli3TZFmX5aT2KdtkDGeFW1A7poyIygtzbnJDQYYP h7WgYd4HLTkETJ0vXjtXnpOJFLMECX5qT7vu8C56oxSiK5GoWZGPaACKjNCTapSeD86Jx0 qaPssVqWsaosH+JIsRElRyRm8Kq0NGqxgfWNfppF/I/EtQ7sTHuxNiVH/8WoZLv13AG66a ffB4kF5HAuA375UZDgsfNUsve0KBGwXoI7sx2d/KbTpccOzCH5+zAnhX1o5ZjA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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 did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4NylFV6xd1zGDK; Fri, 20 Jan 2023 03:23:26 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 30K3NQIp042165; Fri, 20 Jan 2023 03:23:26 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 30K3NQ5M042164; Fri, 20 Jan 2023 03:23:26 GMT (envelope-from git) Date: Fri, 20 Jan 2023 03:23:26 GMT Message-Id: <202301200323.30K3NQ5M042164@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Konstantin Belousov Subject: git: d81d67edb1cb - stable/13 - Provide consistent prototype for swp_pager_meta_free() List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@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/13 X-Git-Reftype: branch X-Git-Commit: d81d67edb1cb372fb2833ecda05f8f35ac815a03 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=d81d67edb1cb372fb2833ecda05f8f35ac815a03 commit d81d67edb1cb372fb2833ecda05f8f35ac815a03 Author: Konstantin Belousov AuthorDate: 2022-12-09 15:21:16 +0000 Commit: Konstantin Belousov CommitDate: 2023-01-20 03:19:12 +0000 Provide consistent prototype for swp_pager_meta_free() Tested by: pho (cherry picked from commit 645510e62e34d9af4c2d57c7a6443a494511918d) --- sys/vm/swap_pager.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sys/vm/swap_pager.c b/sys/vm/swap_pager.c index 407ef1473760..372019affa46 100644 --- a/sys/vm/swap_pager.c +++ b/sys/vm/swap_pager.c @@ -483,7 +483,7 @@ static daddr_t swp_pager_getswapspace(int *npages); * Metadata functions */ static daddr_t swp_pager_meta_build(vm_object_t, vm_pindex_t, daddr_t); -static void swp_pager_meta_free(vm_object_t, vm_pindex_t, vm_size_t, +static void swp_pager_meta_free(vm_object_t, vm_pindex_t, vm_pindex_t, vm_size_t *); static void swp_pager_meta_transfer(vm_object_t src, vm_object_t dst, vm_pindex_t pindex, vm_pindex_t count, vm_size_t *freed); From nobody Fri Jan 20 03:23:27 2023 X-Original-To: dev-commits-src-branches@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 4NylFX3wxwz30vb3; Fri, 20 Jan 2023 03:23:28 +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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4NylFX1vPjz3n6N; Fri, 20 Jan 2023 03:23:28 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1674185008; 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=ekn/hMCwR0/1eLi47UHSs51RRzc0TFs0bfz7eiJyKjc=; b=ODgSG0uyetexr6NPIZF+Mz6qks1XTRbitQmg8DBKEs8TVvAK7THW1APxbQdA/ybVXeqacR E7L99YCAvRVyVS75JhCKIMDzf8s/sM8Y7SYfl7qOY5loGKtc32Hum5ahnZJsoiKp5pVKLj T8m0cLZ4YzmY4nHu/6YvpWtxlnEFvZtH5O2kTtK2QfDkIyt9m7G29MnQk/CyhKYYumZKmX XHBDMvNzPIF6tXDa73LtyZvuDi7SkWDzcGmbViZRuz9xF/zIZZxzvfCVmVaOv5aq57iyfT nlNw9oR1QqANA/Yv9p1uwwLV8mlndOe9GWSKMBncpT0UNcnfaBQteQaHMUJ7Rg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1674185008; 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=ekn/hMCwR0/1eLi47UHSs51RRzc0TFs0bfz7eiJyKjc=; b=ZMHva+WdaFTd4ZiVC8bK3J/qAsV10nYiQFb17rVNW1vGJ4dPMoEbUsNjG1T0kQF7X8n5Yr 08XGpUZF8+udE+l78NrxOcA1rdmS3NomyYcEN49g0yU7thzmgWN9gS8N7ln3ANjvacm5A1 X64NZLWnuKKmTl8zkreflGRXFrzoqleCtp8yV6h3Zdg7DpPYe1izWvXYxDHyVshFvjQNFf WTM4Fima+StNDEqLIAj4zHKK2pIReC8B4pnXgOJagFZuE8eImfaew+CYfoHmudX5kJQzCW R9oQiDthEiBDRVM22oqh6nW726uQxU8l85Gln8rjn1wz8tVu/pfrzreZbn3x7A== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1674185008; a=rsa-sha256; cv=none; b=tF3fKf+1UPzabLtLmyi2gQ8YCKoYu0mrvLNT+H6hXw2G4NhmO87pM5cl2Um1EGBc2lAnYW T24WBjTYcdJIOYQhdYcbPYdVObSWO1hu90EEBzXvDlwVHxs/lHeMd3jDmTbIX2LGZ1s5j6 Odlb0fDrOPNlsgxDaIDK6eBziUA5iDJTC7tUwmmmNijcV+boVEIUFf+bR5vMxgvN4CYCUu Pd51BfxYI82r6V8SUjOUJYGnE5HTkjJd5Wa7Xo4VpnHjeV0PcZFhVT4g0+sBsXlvhwvBX5 St1H3ftJtGxlvVFMaDH500TGK9Iq2BGuoCpM1K/fo9O32TpHfG5wLb42nAYJsg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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 did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4NylFX0CpszFf0; Fri, 20 Jan 2023 03:23:28 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 30K3NRqr042190; Fri, 20 Jan 2023 03:23:27 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 30K3NRca042189; Fri, 20 Jan 2023 03:23:27 GMT (envelope-from git) Date: Fri, 20 Jan 2023 03:23:27 GMT Message-Id: <202301200323.30K3NRca042189@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Konstantin Belousov Subject: git: e2d3dbe4ced6 - stable/13 - tmpfs: make vm_object point to the tmpfs node instead of vnode List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@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/13 X-Git-Reftype: branch X-Git-Commit: e2d3dbe4ced68454afe0be0cb426bb2036c37454 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=e2d3dbe4ced68454afe0be0cb426bb2036c37454 commit e2d3dbe4ced68454afe0be0cb426bb2036c37454 Author: Konstantin Belousov AuthorDate: 2022-10-20 12:00:21 +0000 Commit: Konstantin Belousov CommitDate: 2023-01-20 03:19:17 +0000 tmpfs: make vm_object point to the tmpfs node instead of vnode Tested by: pho (cherry picked from commit d9dc64f1589360f2062ad92d63f69e13121e472a) --- sys/fs/tmpfs/tmpfs.h | 17 +++++++++++++++++ sys/fs/tmpfs/tmpfs_subr.c | 25 ++++++++----------------- sys/fs/tmpfs/tmpfs_vfsops.c | 2 +- sys/vm/vm_object.h | 15 ++++----------- 4 files changed, 30 insertions(+), 29 deletions(-) diff --git a/sys/fs/tmpfs/tmpfs.h b/sys/fs/tmpfs/tmpfs.h index 99368d67aaaa..40f32ed62a7b 100644 --- a/sys/fs/tmpfs/tmpfs.h +++ b/sys/fs/tmpfs/tmpfs.h @@ -527,6 +527,23 @@ extern int tmpfs_pager_type; * specific ones. */ +static inline struct vnode * +VM_TO_TMPFS_VP(vm_object_t obj) +{ + struct tmpfs_node *node; + + MPASS((obj->flags & OBJ_TMPFS) != 0); + + /* + * swp_priv is the back-pointer to the tmpfs node, if any, + * which uses the vm object as backing store. The object + * handle is not used to avoid locking sw_alloc_sx on tmpfs + * node instantiation/destroy. + */ + node = obj->un_pager.swp.swp_priv; + return (node->tn_vnode); +} + static inline struct tmpfs_mount * VFS_TO_TMPFS(struct mount *mp) { diff --git a/sys/fs/tmpfs/tmpfs_subr.c b/sys/fs/tmpfs/tmpfs_subr.c index f0ed8ee404fa..7125b16dea33 100644 --- a/sys/fs/tmpfs/tmpfs_subr.c +++ b/sys/fs/tmpfs/tmpfs_subr.c @@ -113,7 +113,7 @@ tmpfs_pager_writecount_recalc(vm_object_t object, vm_offset_t old, VM_OBJECT_ASSERT_WLOCKED(object); - vp = object->un_pager.swp.swp_tmpfs; + vp = VM_TO_TMPFS_VP(object); /* * Forced unmount? @@ -194,15 +194,14 @@ tmpfs_pager_getvp(vm_object_t object, struct vnode **vpp, bool *vp_heldp) /* * Tmpfs VREG node, which was reclaimed, has tmpfs_pager_type - * type, but not OBJ_TMPFS flag. In this case there is no - * v_writecount to adjust. + * type. In this case there is no v_writecount to adjust. */ if (vp_heldp != NULL) VM_OBJECT_RLOCK(object); else VM_OBJECT_ASSERT_LOCKED(object); if ((object->flags & OBJ_TMPFS) != 0) { - vp = object->un_pager.swp.swp_tmpfs; + vp = VM_TO_TMPFS_VP(object); if (vp != NULL) { *vpp = vp; if (vp_heldp != NULL) { @@ -572,9 +571,10 @@ tmpfs_alloc_node(struct mount *mp, struct tmpfs_mount *tmp, enum vtype type, case VREG: nnode->tn_reg.tn_aobj = vm_pager_allocate(tmpfs_pager_type, NULL, 0, - VM_PROT_DEFAULT, 0, - NULL /* XXXKIB - tmpfs needs swap reservation */); - /* OBJ_TMPFS is set together with the setting of vp->v_object */ + VM_PROT_DEFAULT, 0, + NULL /* XXXKIB - tmpfs needs swap reservation */); + nnode->tn_reg.tn_aobj->un_pager.swp.swp_priv = nnode; + vm_object_set_flag(nnode->tn_reg.tn_aobj, OBJ_TMPFS); nnode->tn_reg.tn_tmp = tmp; break; @@ -667,14 +667,9 @@ tmpfs_free_node_locked(struct tmpfs_mount *tmp, struct tmpfs_node *node, uobj = node->tn_reg.tn_aobj; if (uobj != NULL && uobj->size != 0) atomic_subtract_long(&tmp->tm_pages_used, uobj->size); - tmpfs_free_tmp(tmp); - - if (uobj != NULL) { - KASSERT((uobj->flags & OBJ_TMPFS) == 0, - ("leaked OBJ_TMPFS node %p vm_obj %p", node, uobj)); + if (uobj != NULL) vm_object_deallocate(uobj); - } break; case VLNK: tmpfs_free_tmp(tmp); @@ -816,8 +811,6 @@ tmpfs_destroy_vobject(struct vnode *vp, vm_object_t obj) want_vrele = true; } - vm_object_clear_flag(obj, OBJ_TMPFS); - obj->un_pager.swp.swp_tmpfs = NULL; if (vp->v_writecount < 0) vp->v_writecount = 0; VI_UNLOCK(vp); @@ -970,8 +963,6 @@ loop: VI_LOCK(vp); KASSERT(vp->v_object == NULL, ("Not NULL v_object in tmpfs")); vp->v_object = object; - object->un_pager.swp.swp_tmpfs = vp; - vm_object_set_flag(object, OBJ_TMPFS); vn_irflag_set_locked(vp, VIRF_PGREAD); VI_UNLOCK(vp); VM_OBJECT_WUNLOCK(object); diff --git a/sys/fs/tmpfs/tmpfs_vfsops.c b/sys/fs/tmpfs/tmpfs_vfsops.c index c80042286948..7cba983a1847 100644 --- a/sys/fs/tmpfs/tmpfs_vfsops.c +++ b/sys/fs/tmpfs/tmpfs_vfsops.c @@ -246,7 +246,7 @@ again: VM_OBJECT_RUNLOCK(object); continue; } - vp = object->un_pager.swp.swp_tmpfs; + vp = VM_TO_TMPFS_VP(object); if (vp->v_mount != mp) { VM_OBJECT_RUNLOCK(object); continue; diff --git a/sys/vm/vm_object.h b/sys/vm/vm_object.h index 4a3c27514eb6..f221f1b0759b 100644 --- a/sys/vm/vm_object.h +++ b/sys/vm/vm_object.h @@ -156,20 +156,13 @@ struct vm_object { /* * Swap pager * - * swp_tmpfs - back-pointer to the tmpfs vnode, - * if any, which uses the vm object - * as backing store. The handle - * cannot be reused for linking, - * because the vnode can be - * reclaimed and recreated, making - * the handle changed and hash-chain - * invalid. - * - * swp_blks - pc-trie of the allocated swap blocks. + * swp_priv - pager-private. + * swp_blks - pc-trie of the allocated swap blocks. + * writemappings - count of bytes mapped for write * */ struct { - void *swp_tmpfs; + void *swp_priv; struct pctrie swp_blks; vm_ooffset_t writemappings; } swp; From nobody Fri Jan 20 03:23:29 2023 X-Original-To: dev-commits-src-branches@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 4NylFY3PkLz30vc2; Fri, 20 Jan 2023 03:23:29 +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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4NylFY2FJ8z3nHb; Fri, 20 Jan 2023 03:23:29 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1674185009; 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=DaD1tEOtcb8e+gw5AwI/aG5xU4dLkGXliOkCq6vMJA4=; b=uCeOo5gkeDVEI5ZM23jThVGZphzJpnxKXT7L16h2ZxxEAKejo7RM+JHNudvgU0MBlgSz8G s1JOXN/Ia5Wwkbebq0FVKH+HLUpQ8acdp0WeFWBDH8VIhxIdAOw2o2lrjxn2YRHYRfl2N0 Nk6Xs6fl3lYQST8L0Qfee3NRLEYlVrNcUa+bMTl5bp41tGnS9IKSo8aiLgUsrujptZe1yF yQDx2p0Sk1Z6HzmuM431SlMWS+k3KerFfzG5P48zjfTQR07ODf4HYtXyMdYy+a6XQ8mfKZ jT6sN02iZ5Fzzgictb+CWf8/iwdmG3P1QqTGuqtpV1Qy7zUxI2EU3T4B2dn9qA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1674185009; 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=DaD1tEOtcb8e+gw5AwI/aG5xU4dLkGXliOkCq6vMJA4=; b=fRU3AyEq+BZfllHKeQopMtzofQqv4z1K7GQRxuDhusECsYWikIR15Zymb7Gz0RbU+kNJuj T9i3ydwtkvQZzeQ9QnuoI6THMP6X8O1v7FHxOXBza5jLz/rTliiXnE561Aej9PYnmo41ka 56gPlSFMt+ymCgz1r1H3EtUfWyXPxkcBNrA1sCr/2nXH7mrggj5xuNvqknX+h22eYJWKXb Td6v8evdM5PngdId1ePfLixFrK3Q5h/imunQFmIJLJ3+78LMwQUJwdaXOMxHNer9YXUe3c hGsToL90mr1t2F0GMewoBaQJfwPAqcQNQpXdEx3OavABBDNouwfE2pEC3mJuvA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1674185009; a=rsa-sha256; cv=none; b=r3TMavoMimZwEFsahNjjFXfeKCMXxF1vqEbNw4ZRZmKTU3P0kY3ae+csrR7IyJYJ9QL0AI 5e10Nfcl5klV/Xwuc55z5Y4bUVgFrX9dpcJvMzF0IT2N3Yf4o/k0/+lSzAOAPCMdY/a7Qc NV4KPjK+NsymItzRnJhV8afJATWpFFnBD0VwQKxR89cihamPGt3pGCy/Nw7JXVBza+53Go +cUJ3ADQ6cFzWVFhP+50JmfWj+kjNtjNnGyNfrSAgW10afcHlAzpmGXclvFDb+GeIL54iV qD2pwMHe+5pIbmAY4LPLGVoDnDly9Rko4L3bi+RLqJSyTPFqGaPVR7ZLMK5Owg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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 did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4NylFY1L4wzFtm; Fri, 20 Jan 2023 03:23:29 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 30K3NTsY042215; Fri, 20 Jan 2023 03:23:29 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 30K3NTCo042214; Fri, 20 Jan 2023 03:23:29 GMT (envelope-from git) Date: Fri, 20 Jan 2023 03:23:29 GMT Message-Id: <202301200323.30K3NTCo042214@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Konstantin Belousov Subject: git: 6219bd0436b8 - stable/13 - vm_pager: add methods for page insertion and removal notifications List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@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/13 X-Git-Reftype: branch X-Git-Commit: 6219bd0436b88ba75ab062046fc3cd174ba03d08 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=6219bd0436b88ba75ab062046fc3cd174ba03d08 commit 6219bd0436b88ba75ab062046fc3cd174ba03d08 Author: Konstantin Belousov AuthorDate: 2022-10-20 12:55:38 +0000 Commit: Konstantin Belousov CommitDate: 2023-01-20 03:19:22 +0000 vm_pager: add methods for page insertion and removal notifications Tested by: pho (cherry picked from commit d537d1f12e8829faccd395115193b03b578f1176) --- sys/vm/vm_page.c | 4 ++++ sys/vm/vm_pager.c | 2 ++ sys/vm/vm_pager.h | 24 ++++++++++++++++++++++++ 3 files changed, 30 insertions(+) diff --git a/sys/vm/vm_page.c b/sys/vm/vm_page.c index 5d94962c312b..0030bf47c814 100644 --- a/sys/vm/vm_page.c +++ b/sys/vm/vm_page.c @@ -1483,6 +1483,7 @@ vm_page_insert_after(vm_page_t m, vm_object_t object, vm_pindex_t pindex, return (1); } vm_page_insert_radixdone(m, object, mpred); + vm_pager_page_inserted(object, m); return (0); } @@ -1557,6 +1558,8 @@ vm_page_object_remove(vm_page_t m) if ((m->a.flags & PGA_SWAP_FREE) != 0) vm_pager_page_unswapped(m); + vm_pager_page_removed(object, m); + m->object = NULL; mrem = vm_radix_remove(&object->rtree, m->pindex); KASSERT(mrem == m, ("removed page %p, expected page %p", mrem, m)); @@ -1879,6 +1882,7 @@ vm_page_rename(vm_page_t m, vm_object_t new_object, vm_pindex_t new_pindex) vm_page_insert_radixdone(m, new_object, mpred); vm_page_dirty(m); + vm_pager_page_inserted(new_object, m); return (0); } diff --git a/sys/vm/vm_pager.c b/sys/vm/vm_pager.c index d81e5ec8692d..5ba37189a273 100644 --- a/sys/vm/vm_pager.c +++ b/sys/vm/vm_pager.c @@ -422,6 +422,8 @@ vm_pager_alloc_dyn_type(struct pagerops *ops, int base_type) FIX(mightbedirty); FIX(getvp); FIX(freespace); + FIX(page_inserted); + FIX(page_removed); #undef FIX } pagertab[res] = ops; /* XXXKIB should be rel, but acq is too much */ diff --git a/sys/vm/vm_pager.h b/sys/vm/vm_pager.h index e332231a77c6..5917bf651760 100644 --- a/sys/vm/vm_pager.h +++ b/sys/vm/vm_pager.h @@ -69,6 +69,8 @@ typedef void pgo_getvp_t(vm_object_t object, struct vnode **vpp, bool *vp_heldp); typedef void pgo_freespace_t(vm_object_t object, vm_pindex_t start, vm_size_t size); +typedef void pgo_page_inserted_t(vm_object_t object, vm_page_t m); +typedef void pgo_page_removed_t(vm_object_t object, vm_page_t m); struct pagerops { int pgo_kvme_type; @@ -87,6 +89,8 @@ struct pagerops { pgo_mightbedirty_t *pgo_mightbedirty; pgo_getvp_t *pgo_getvp; pgo_freespace_t *pgo_freespace; + pgo_page_inserted_t *pgo_page_inserted; + pgo_page_removed_t *pgo_page_removed; }; extern const struct pagerops defaultpagerops; @@ -249,6 +253,26 @@ vm_pager_freespace(vm_object_t object, vm_pindex_t start, method(object, start, size); } +static __inline void +vm_pager_page_inserted(vm_object_t object, vm_page_t m) +{ + pgo_page_inserted_t *method; + + method = pagertab[object->type]->pgo_page_inserted; + if (method != NULL) + method(object, m); +} + +static __inline void +vm_pager_page_removed(vm_object_t object, vm_page_t m) +{ + pgo_page_removed_t *method; + + method = pagertab[object->type]->pgo_page_removed; + if (method != NULL) + method(object, m); +} + int vm_pager_alloc_dyn_type(struct pagerops *ops, int base_type); void vm_pager_free_dyn_type(objtype_t type); From nobody Fri Jan 20 03:23:30 2023 X-Original-To: dev-commits-src-branches@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 4NylFZ4kM9z30vfS; Fri, 20 Jan 2023 03:23:30 +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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4NylFZ3RNHz3n9J; Fri, 20 Jan 2023 03:23:30 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1674185010; 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=XmSmKRBt2+Y1ba8rZts3H3yyWLOw7/fERFOaMCxCDas=; b=O5g6GcjjSOK4OqpdgGabCwLdKYUVeQlAleQa+mR+fq10AW9veb48klZAN09jvdvPfbWcxB aYq1sZ2O5KO3OdpDQEDWJ1R7On23YMkJToU+AK0EYh1+IDWpHXstPPZAEOn0jkkoi7biPD uGDNc9/D5kTmbhToYdg6Fsn8RD7q3dQLYuk8xau16zVvJW9eupTKqyJo1zE1c26GKHrh49 Wl9UlOl32Ehuejt3QifzsWZyD4EhSq0t0mgAF6N3M8GOa36fnCN7p48armP57B1LbrZERt CkSxctPvpNHhfqYoFhnND2uRYWecCelXD1HXr4+KoP/0Pjn6mlr2dQwj6zqCfA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1674185010; 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=XmSmKRBt2+Y1ba8rZts3H3yyWLOw7/fERFOaMCxCDas=; b=mnGLmop8in78050R7ZLZF8KYapwKLkbhnoSHfCyBRLHxhiE1CLodPJAR1h+jya2NvVtmab YnEiV2UMNxSfThEFLAKGzEiUn7iN4ouvF9DGZSB9hq8iJq/kJfC1ASSmCoLAajH4zu0Tx8 2SAQEa+KaFvvV2Qp2MOoxiWSmrgvcKpQ2rSwhZOF98Q6BUyoW7iyTFFHr5GDhm7ekPzc/Q 4EW3q8wLOpiVtAWhUGqzRLQKejMPAGazE4dcLqHvTZjwF+NcAwKR0vMdjWhnqrjzJzusYD 5Oncus3Q0w3FS3/wKkHlh/z5+BdwCy6k1eXdoQAqFldQW5mZy33Yna8IvJvhRw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1674185010; a=rsa-sha256; cv=none; b=BzNOABvBCBG+MO9tTiZvzafcSDZKarUvTW8dj6kKJ3nbIEky/oRX/FWUBO21gbTSNbQjfl rahZNJo5cVzW/nO9gXyH+GOS2D1nfuvJtTyr3x07ebYF+VQJh67QbvTS6D+J9uVjtStCBG wWFRwbKf0I1CZzXR/JH/f/zuHkLkDc35ci7KL4ip9kj+2YB7NAg9HapcWxAhYhmEbetoYT +Lp+Ra4htYPAoh3HmW5lfa8LOFNC4NLPF5AH/vT6vOP4E5qzmkRaAC8mBpi7miLhGhpja0 ZLBa9M+1kjFKJdR0EFNntjEAjeLBFq+snJyrFpwb9m8Tuk8wQL4s2lUDJgD4Rw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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 did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4NylFZ2MHNzFtn; Fri, 20 Jan 2023 03:23:30 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 30K3NUCm042245; Fri, 20 Jan 2023 03:23:30 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 30K3NUmW042244; Fri, 20 Jan 2023 03:23:30 GMT (envelope-from git) Date: Fri, 20 Jan 2023 03:23:30 GMT Message-Id: <202301200323.30K3NUmW042244@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Konstantin Belousov Subject: git: 7d05e01b3e59 - stable/13 - vm_pager: add method to veto page allocation List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@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/13 X-Git-Reftype: branch X-Git-Commit: 7d05e01b3e59c12f1b7a07dbf3b0ed11ac62ed13 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=7d05e01b3e59c12f1b7a07dbf3b0ed11ac62ed13 commit 7d05e01b3e59c12f1b7a07dbf3b0ed11ac62ed13 Author: Konstantin Belousov AuthorDate: 2022-10-20 13:15:46 +0000 Commit: Konstantin Belousov CommitDate: 2023-01-20 03:19:29 +0000 vm_pager: add method to veto page allocation Tested by: pho (cherry picked from commit ec201dddfbddd3a77dd3f3afc9b007d0e13e7ad1) --- sys/vm/vm_fault.c | 4 ++++ sys/vm/vm_page.c | 4 ++++ sys/vm/vm_pager.c | 1 + sys/vm/vm_pager.h | 11 +++++++++++ 4 files changed, 20 insertions(+) diff --git a/sys/vm/vm_fault.c b/sys/vm/vm_fault.c index 32b09fc469d7..605cf1203554 100644 --- a/sys/vm/vm_fault.c +++ b/sys/vm/vm_fault.c @@ -1192,6 +1192,10 @@ vm_fault_allocate(struct faultstate *fs) #if VM_NRESERVLEVEL > 0 vm_object_color(fs->object, atop(fs->vaddr) - fs->pindex); #endif + if (!vm_pager_can_alloc_page(fs->object, fs->pindex)) { + unlock_and_deallocate(fs); + return (FAULT_FAILURE); + } alloc_req = P_KILLED(curproc) ? VM_ALLOC_SYSTEM : VM_ALLOC_NORMAL; if (fs->object->type != OBJT_VNODE && diff --git a/sys/vm/vm_page.c b/sys/vm/vm_page.c index 0030bf47c814..736b25a1f2b5 100644 --- a/sys/vm/vm_page.c +++ b/sys/vm/vm_page.c @@ -2029,6 +2029,8 @@ vm_page_alloc_domain_after(vm_object_t object, vm_pindex_t pindex, int domain, flags = 0; m = NULL; + if (!vm_pager_can_alloc_page(object, pindex)) + return (NULL); pool = object != NULL ? VM_FREEPOOL_DEFAULT : VM_FREEPOOL_DIRECT; again: #if VM_NRESERVLEVEL > 0 @@ -4676,6 +4678,8 @@ retrylookup: *mp = NULL; return (VM_PAGER_FAIL); } else if ((m = vm_page_alloc(object, pindex, pflags)) == NULL) { + if (!vm_pager_can_alloc_page(object, pindex)) + return (VM_PAGER_AGAIN); goto retrylookup; } diff --git a/sys/vm/vm_pager.c b/sys/vm/vm_pager.c index 5ba37189a273..ea5ce36f1963 100644 --- a/sys/vm/vm_pager.c +++ b/sys/vm/vm_pager.c @@ -424,6 +424,7 @@ vm_pager_alloc_dyn_type(struct pagerops *ops, int base_type) FIX(freespace); FIX(page_inserted); FIX(page_removed); + FIX(can_alloc_page); #undef FIX } pagertab[res] = ops; /* XXXKIB should be rel, but acq is too much */ diff --git a/sys/vm/vm_pager.h b/sys/vm/vm_pager.h index 5917bf651760..0e248d871250 100644 --- a/sys/vm/vm_pager.h +++ b/sys/vm/vm_pager.h @@ -71,6 +71,7 @@ typedef void pgo_freespace_t(vm_object_t object, vm_pindex_t start, vm_size_t size); typedef void pgo_page_inserted_t(vm_object_t object, vm_page_t m); typedef void pgo_page_removed_t(vm_object_t object, vm_page_t m); +typedef boolean_t pgo_can_alloc_page_t(vm_object_t object, vm_pindex_t pindex); struct pagerops { int pgo_kvme_type; @@ -91,6 +92,7 @@ struct pagerops { pgo_freespace_t *pgo_freespace; pgo_page_inserted_t *pgo_page_inserted; pgo_page_removed_t *pgo_page_removed; + pgo_can_alloc_page_t *pgo_can_alloc_page; }; extern const struct pagerops defaultpagerops; @@ -273,6 +275,15 @@ vm_pager_page_removed(vm_object_t object, vm_page_t m) method(object, m); } +static __inline bool +vm_pager_can_alloc_page(vm_object_t object, vm_pindex_t pindex) +{ + pgo_can_alloc_page_t *method; + + method = pagertab[object->type]->pgo_can_alloc_page; + return (method != NULL ? method(object, pindex) : true); +} + int vm_pager_alloc_dyn_type(struct pagerops *ops, int base_type); void vm_pager_free_dyn_type(objtype_t type); From nobody Fri Jan 20 03:23:31 2023 X-Original-To: dev-commits-src-branches@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 4NylFc0L5yz30vhl; Fri, 20 Jan 2023 03:23:32 +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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4NylFb4PjXz3my7; Fri, 20 Jan 2023 03:23:31 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1674185011; 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=F4ksGdXZc9EcWhl3ddPEC3/Oh4L7CcBpdG1MlGeSN9Q=; b=vyKNE+GZ292/upOzm1zDnusnpPoiP6uPAIS3nFp0rwjVSbdvlxUSPoWC38CaIkxXpokP/O pYYDJToe4O4XM3VylFk83bqG0xgtqxuSgjejzrPIT3t9enTesyoUGR5iLuAzJORgWIzgK9 uZcnK5MuIkER/PGZW6+wnYd7ZzvR+liOTwLSN1sQqGOl5UHFMDX6FaYzNxKCRXsBry6WGy 4znMu5w1vKGbF+owv+jI0xJ4T1+KsXikZKqbYvLM9QCi+Y/wETwrUJ0Gv8yuiQfQqhzqY/ ZN5EYxe2aXoFFsj5dk8/sM9wz1zSadaZmBO0TZ/jB0V6Ku8NPZqAfxaPuBuz3w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1674185011; 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=F4ksGdXZc9EcWhl3ddPEC3/Oh4L7CcBpdG1MlGeSN9Q=; b=ocfjQw+Y54P46L3yEUSt91C2vvh8G/vUPELMdq4POE5FOaKc9+NIROpZxHsJvdvfD4eBqC eApuJzu6g6KX2JEHKz4fbbMP7X/7JeDwHyaeLYvNJsFbWPreunSa9y6a+A2j/2bppLohmf 7f9n3XkTch4ioYJNnKBuq/kAOQL56UB17xEsMTVIzab9ZtVn5P5b9EcaRXFTlRnNYZBwp0 Q2cMvjsjONSE+t4pH1n8cX4BTW9T9ZEzK4gdxqn1pBE4Zm2cMX+JiM36Wlckk8APlZLwqv GDd1Zw8ZkRRhyiIrKXUmcsnhbGCfsn45Pv6wMSk3BL6ttQCgfuSNE/fYP7EINQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1674185011; a=rsa-sha256; cv=none; b=UaqR68ewwq1I7Y7CIbUQpOQ0A1ryJxLSNO8qMOwPB7CTkbz1VwI6wPSaai66VwuxRoWjPp r2hIXj59W6C3Y9ItWhqVBGRFqnUx/yyjHvKMLHeCo/VSQVQ/CeHkSAUTLd3NNJPj/sMH1p 7GGjnCMiZFTmY8OQmWVqbYv81hq2oUro9ycuhw7etO5HdNP2Ai0fykFrhW6ZeVu45zWzhH zpLlQIf9MWeqmrjwQ5P1tLc6I6Ow81XgGv9uTjUu8azTMIlejQ2xZjJa2LSR+QekzABwwl ALVFwLq736OJF1p+Wfhv7Z8vr09ObCebkcX5Ootve5vUjbVy088HBcey06TQYQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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 did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4NylFb3K4ZzGDL; Fri, 20 Jan 2023 03:23:31 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 30K3NVS4042269; Fri, 20 Jan 2023 03:23:31 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 30K3NVpg042268; Fri, 20 Jan 2023 03:23:31 GMT (envelope-from git) Date: Fri, 20 Jan 2023 03:23:31 GMT Message-Id: <202301200323.30K3NVpg042268@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Konstantin Belousov Subject: git: aaac643676bc - stable/13 - vm_page_grab_valid(): clear *mp in case of pager denying page allocation List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@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/13 X-Git-Reftype: branch X-Git-Commit: aaac643676bce2c80a78069e2c4a45deb50448dc Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=aaac643676bce2c80a78069e2c4a45deb50448dc commit aaac643676bce2c80a78069e2c4a45deb50448dc Author: Konstantin Belousov AuthorDate: 2022-12-17 00:12:14 +0000 Commit: Konstantin Belousov CommitDate: 2023-01-20 03:19:35 +0000 vm_page_grab_valid(): clear *mp in case of pager denying page allocation Tested by: pho (cherry picked from commit 3249449190c2c71ecfc4fa5f518f94ff552df440) --- sys/vm/vm_page.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/sys/vm/vm_page.c b/sys/vm/vm_page.c index 736b25a1f2b5..ecabd6c4798e 100644 --- a/sys/vm/vm_page.c +++ b/sys/vm/vm_page.c @@ -4678,8 +4678,10 @@ retrylookup: *mp = NULL; return (VM_PAGER_FAIL); } else if ((m = vm_page_alloc(object, pindex, pflags)) == NULL) { - if (!vm_pager_can_alloc_page(object, pindex)) + if (!vm_pager_can_alloc_page(object, pindex)) { + *mp = NULL; return (VM_PAGER_AGAIN); + } goto retrylookup; } From nobody Fri Jan 20 03:23:32 2023 X-Original-To: dev-commits-src-branches@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 4NylFd008yz30vc9; Fri, 20 Jan 2023 03:23: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4NylFc5cCrz3nNF; Fri, 20 Jan 2023 03:23:32 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1674185012; 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=PTwnmlXNGA1YnxIC8pKM/sn1h2xWpPdcpc6FUvt5LjM=; b=k4XEsW6ZnXUnng/u58+sO516nZmcvAsoyUfKcL5CflOZWQ+Y0G8CNEwSS338ozLOvQPO45 /loJIKK0UXar7jXteEtZ0p1HVsLyNtmgLQyo/EnXsseKeOmBaQ5kyVibwte160J0m+qDml oKAzPJnRVkeKvjmrPT/9chSQBnwxOuT+8gEqBiB3uC5H6pEFwFJadp98w87pJ0Xn+IDn7A 0TilGdynfZm3JrRlM2v3nDMLRWy2zwd1WDOEtUB9gLAg5Q3jhGBiOGI5hVS1wQupEzxsRx KDEeDP338Ao+Ky4vo/6A/n3vWEfF8sWCq2wpk+AYFpN7nVaU63/hX8skwFl7gg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1674185012; 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=PTwnmlXNGA1YnxIC8pKM/sn1h2xWpPdcpc6FUvt5LjM=; b=wmnW0GlD8pkariqjTnSBpMT+bKL01TJ0KHZ1d6X1yiUO4aL5wDDyTjsBKGWNXeIQ540Z29 nIlMrtiZYS/bxnUXVrDvPWdtRSv8YaiWWYMQr03KwjNcfe8u4q/Vx12+9ft/RjJJwq8PoZ K+/Utps9nxS8MUxFrlzz93nsO1JTQuuyNw/fTnqQuCuqB31SVJ6TLfGrIyUfGhB1F5OwyM B+8bSyihfdXXEe2vcNvK/XculBSfW14SgLRcDdg15Yz5RUgU0vHR5A+oNHnmOX7slN/p/6 /kSGx/Y+8ITvbmBCx8WfvxmtlVGSTxP6Gjt+2DbkF11YW9+HGzssNelz7jH2aw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1674185012; a=rsa-sha256; cv=none; b=aARXRQlmS0dObLqEUur4BzC/S0CBaS5pdpDoS74ZuEkOldhCP5SkVJJSBfy7EwDtj9aChy 7auN5O0J2DRwSb90/d4jvnwfkanaUQXP5iVoUSkdiI9oXADgtlOE+VFnuZOnVQbnMC17nz l/nryHXMGuyaGivOpK20pkew9/u465k9UrnWS70DX9YbQnKkjXiO3SJyN81j2JYe2jhYRa 7HXisTeeYrjxI8rMlywKQwPA1LQr9AHrXNnNdztt6AoSq9ayDUSn8D4pMpfo0ZOr+m0EVd J3UxOiWqsgoBCBt6rdERyCiXydZu5hiwBjy+oaVPjebjWcxVLu7f0brc2B24qg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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 did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4NylFc4GBvzGDM; Fri, 20 Jan 2023 03:23:32 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 30K3NWlF042295; Fri, 20 Jan 2023 03:23:32 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 30K3NWSk042294; Fri, 20 Jan 2023 03:23:32 GMT (envelope-from git) Date: Fri, 20 Jan 2023 03:23:32 GMT Message-Id: <202301200323.30K3NWSk042294@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Konstantin Belousov Subject: git: c9e7aae6e6f9 - stable/13 - vm_pager_allocate(): override resulting object type List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@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/13 X-Git-Reftype: branch X-Git-Commit: c9e7aae6e6f90f700516f0a67fc5cf264daaf610 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=c9e7aae6e6f90f700516f0a67fc5cf264daaf610 commit c9e7aae6e6f90f700516f0a67fc5cf264daaf610 Author: Konstantin Belousov AuthorDate: 2022-12-04 00:37:28 +0000 Commit: Konstantin Belousov CommitDate: 2023-01-20 03:19:41 +0000 vm_pager_allocate(): override resulting object type Tested by: pho (cherry picked from commit cd086696c2cb6d23bac3bc749836d36a9280ae98) --- sys/vm/vm_pager.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/sys/vm/vm_pager.c b/sys/vm/vm_pager.c index ea5ce36f1963..cff8f5f9bdc3 100644 --- a/sys/vm/vm_pager.c +++ b/sys/vm/vm_pager.c @@ -250,9 +250,14 @@ vm_object_t vm_pager_allocate(objtype_t type, void *handle, vm_ooffset_t size, vm_prot_t prot, vm_ooffset_t off, struct ucred *cred) { + vm_object_t object; + MPASS(type < nitems(pagertab)); - return ((*pagertab[type]->pgo_alloc)(handle, size, prot, off, cred)); + object = (*pagertab[type]->pgo_alloc)(handle, size, prot, off, cred); + if (object != NULL) + object->type = type; + return (object); } /* From nobody Fri Jan 20 03:23:33 2023 X-Original-To: dev-commits-src-branches@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 4NylFd6lPVz30vfc; Fri, 20 Jan 2023 03:23: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4NylFd5sbJz3nTR; Fri, 20 Jan 2023 03:23:33 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1674185013; 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=G3IWk3H61+p5Tgu3V0P1rolnjkS7NrmQkUhV9WeJASw=; b=aYR2xgg+PW/ue4KKHLI9N4rjQeO5YGL4kjXnF0bIjK8qlogI+i9LJRTu9dYQfZiRJEbFl9 9XXvYG76X0+F4TbOOMYy/kWMr78GYqtNzbUQNdK+IHnfLA2LQmgtK3wqFQwyO/20uuic4w V7/zkOEaf7bv3GgtpLal+ST4vZS3DB3Btvli29gywvDtpah8jGlAIHAsmCeJSEw/DAsu4k OXLKU+V9++DcPUs63lqMq920KhoPu3E7AXX/oV4iJjP4hyo1VZ3NWRIy30HD64Q5GOALvt +s6zzkyVqeuuef0rcD8MrVvjPJRkD33+TnZVNmQ/RtnAizGOdRn3iuBTC0z5lQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1674185013; 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=G3IWk3H61+p5Tgu3V0P1rolnjkS7NrmQkUhV9WeJASw=; b=bCfIZ4Q1CIt78qrM2sC6gvl6xLkhOqOoXsvoEB0ffZviZJAywBdp3ol+9JGVYgR7dvK2lc huRjp0jMwn1iBZ0+KeEiDMn2TJET+YJ8A75/g3NDv744N/kBiSq1YM67e7U8cg3HCDRsE5 GtpBSPNw0QNAyO4Mzr0m7HfCPJwbl0BvjeRWC81scrRMJpZXvOu+R4SnXyR+Mkzg7hbYmg bltVIMOdum8weaV1UbsWTfYOr/r2AdwcN/6QEGO3QUy9PbPQeA2MG/t+fVU69wU4N0wCpm wwqqFtJOUwJIuZ4WAnCpw1Tn6N00pRzAyUdTEcOmBmXdCS1sJ9Eq37PcFrshbg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1674185013; a=rsa-sha256; cv=none; b=oYE2h/Mk0UskuSlxIGe8V6acb3MWxkXryvKb8mnubQgmORvXmmMPwOXnNbMREmqjdhBA77 975Wkb6ecsrkIe3anTlmyk5Z3E1g0dHC+dYINgaoHwAePKAaTwBdOtf+LPfqzjjy+kSPin ESHiKY8fIlPmlbVrGdENBaS6Aj1rcJfG19ASPo7bz4Mo0KrQOlihQBQSwWRcJHQbzT2ewU qSRz+XwmhypKrKPtqv2y1S5Zb7A7acnKyOnkDLWwWdKGHWv+B2fSmjd96NjyWxAyplFvoS IxQRBWsvQEuAyaJ6zUH5jFGWoUAKTMDqL2K/FC1B9T91ceo8jHtddoQWN60hxg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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 did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4NylFd4yDDzFyq; Fri, 20 Jan 2023 03:23:33 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 30K3NXCM042319; Fri, 20 Jan 2023 03:23:33 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 30K3NXN1042318; Fri, 20 Jan 2023 03:23:33 GMT (envelope-from git) Date: Fri, 20 Jan 2023 03:23:33 GMT Message-Id: <202301200323.30K3NXN1042318@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Konstantin Belousov Subject: git: 06e03b4b0d24 - stable/13 - tmpfs: for used pages, account really allocated pages, instead of file sizes List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@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/13 X-Git-Reftype: branch X-Git-Commit: 06e03b4b0d24bc0c513eb7dc5651664565d0c219 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=06e03b4b0d24bc0c513eb7dc5651664565d0c219 commit 06e03b4b0d24bc0c513eb7dc5651664565d0c219 Author: Konstantin Belousov AuthorDate: 2022-10-20 13:17:43 +0000 Commit: Konstantin Belousov CommitDate: 2023-01-20 03:19:50 +0000 tmpfs: for used pages, account really allocated pages, instead of file sizes PR: 223015 Tested by: pho (cherry picked from commit 37aea2649ff707f23d35309d882b38e9ac818e42) --- sys/fs/tmpfs/tmpfs.h | 18 ++++++- sys/fs/tmpfs/tmpfs_subr.c | 118 ++++++++++++++++++++++++++++++++++++++++---- sys/fs/tmpfs/tmpfs_vfsops.c | 6 ++- sys/fs/tmpfs/tmpfs_vnops.c | 17 +++++-- sys/kern/uipc_shm.c | 2 +- 5 files changed, 144 insertions(+), 17 deletions(-) diff --git a/sys/fs/tmpfs/tmpfs.h b/sys/fs/tmpfs/tmpfs.h index 40f32ed62a7b..30c80ad70d48 100644 --- a/sys/fs/tmpfs/tmpfs.h +++ b/sys/fs/tmpfs/tmpfs.h @@ -148,6 +148,7 @@ RB_HEAD(tmpfs_dir, tmpfs_dirent); * (i) tn_interlock * (m) tmpfs_mount tm_allnode_lock * (c) stable after creation + * (v) tn_reg.tn_aobj vm_object lock */ struct tmpfs_node { /* @@ -299,6 +300,7 @@ struct tmpfs_node { */ vm_object_t tn_aobj; /* (c) */ struct tmpfs_mount *tn_tmp; /* (c) */ + vm_pindex_t tn_pages; /* (v) */ } tn_reg; } tn_spec; /* (v) */ }; @@ -532,7 +534,8 @@ VM_TO_TMPFS_VP(vm_object_t obj) { struct tmpfs_node *node; - MPASS((obj->flags & OBJ_TMPFS) != 0); + if ((obj->flags & OBJ_TMPFS) == 0) + return (NULL); /* * swp_priv is the back-pointer to the tmpfs node, if any, @@ -544,6 +547,19 @@ VM_TO_TMPFS_VP(vm_object_t obj) return (node->tn_vnode); } +static inline struct tmpfs_mount * +VM_TO_TMPFS_MP(vm_object_t obj) +{ + struct tmpfs_node *node; + + if ((obj->flags & OBJ_TMPFS) == 0) + return (NULL); + + node = obj->un_pager.swp.swp_priv; + MPASS(node->tn_type == VREG); + return (node->tn_reg.tn_tmp); +} + static inline struct tmpfs_mount * VFS_TO_TMPFS(struct mount *mp) { diff --git a/sys/fs/tmpfs/tmpfs_subr.c b/sys/fs/tmpfs/tmpfs_subr.c index 7125b16dea33..1c0b4406e460 100644 --- a/sys/fs/tmpfs/tmpfs_subr.c +++ b/sys/fs/tmpfs/tmpfs_subr.c @@ -214,6 +214,87 @@ tmpfs_pager_getvp(vm_object_t object, struct vnode **vpp, bool *vp_heldp) VM_OBJECT_RUNLOCK(object); } +static void +tmpfs_pager_freespace(vm_object_t obj, vm_pindex_t start, vm_size_t size) +{ + struct tmpfs_node *node; + struct tmpfs_mount *tm; + vm_size_t c; + + swap_pager_freespace(obj, start, size, &c); + if ((obj->flags & OBJ_TMPFS) == 0 || c == 0) + return; + + node = obj->un_pager.swp.swp_priv; + MPASS(node->tn_type == VREG); + tm = node->tn_reg.tn_tmp; + + KASSERT(tm->tm_pages_used >= c, + ("tmpfs tm %p pages %jd free %jd", tm, + (uintmax_t)tm->tm_pages_used, (uintmax_t)c)); + atomic_add_long(&tm->tm_pages_used, -c); + KASSERT(node->tn_reg.tn_pages >= c, + ("tmpfs node %p pages %jd free %jd", node, + (uintmax_t)node->tn_reg.tn_pages, (uintmax_t)c)); + node->tn_reg.tn_pages -= c; +} + +static void +tmpfs_page_inserted(vm_object_t obj, vm_page_t m) +{ + struct tmpfs_node *node; + struct tmpfs_mount *tm; + + if ((obj->flags & OBJ_TMPFS) == 0) + return; + + node = obj->un_pager.swp.swp_priv; + MPASS(node->tn_type == VREG); + tm = node->tn_reg.tn_tmp; + + if (!vm_pager_has_page(obj, m->pindex, NULL, NULL)) { + atomic_add_long(&tm->tm_pages_used, 1); + node->tn_reg.tn_pages += 1; + } +} + +static void +tmpfs_page_removed(vm_object_t obj, vm_page_t m) +{ + struct tmpfs_node *node; + struct tmpfs_mount *tm; + + if ((obj->flags & OBJ_TMPFS) == 0) + return; + + node = obj->un_pager.swp.swp_priv; + MPASS(node->tn_type == VREG); + tm = node->tn_reg.tn_tmp; + + if (!vm_pager_has_page(obj, m->pindex, NULL, NULL)) { + KASSERT(tm->tm_pages_used >= 1, + ("tmpfs tm %p pages %jd free 1", tm, + (uintmax_t)tm->tm_pages_used)); + atomic_add_long(&tm->tm_pages_used, -1); + KASSERT(node->tn_reg.tn_pages >= 1, + ("tmpfs node %p pages %jd free 1", node, + (uintmax_t)node->tn_reg.tn_pages)); + node->tn_reg.tn_pages -= 1; + } +} + +static boolean_t +tmpfs_can_alloc_page(vm_object_t obj, vm_pindex_t pindex) +{ + struct tmpfs_mount *tm; + + tm = VM_TO_TMPFS_MP(obj); + if (tm == NULL || vm_pager_has_page(obj, pindex, NULL, NULL) || + tm->tm_pages_max == 0) + return (true); + return (tm->tm_pages_max > atomic_load_long(&tm->tm_pages_used)); +} + struct pagerops tmpfs_pager_ops = { .pgo_kvme_type = KVME_TYPE_VNODE, .pgo_alloc = tmpfs_pager_alloc, @@ -222,6 +303,10 @@ struct pagerops tmpfs_pager_ops = { .pgo_release_writecount = tmpfs_pager_release_writecount, .pgo_mightbedirty = vm_object_mightbedirty_, .pgo_getvp = tmpfs_pager_getvp, + .pgo_freespace = tmpfs_pager_freespace, + .pgo_page_inserted = tmpfs_page_inserted, + .pgo_page_removed = tmpfs_page_removed, + .pgo_can_alloc_page = tmpfs_can_alloc_page, }; static int @@ -576,6 +661,7 @@ tmpfs_alloc_node(struct mount *mp, struct tmpfs_mount *tmp, enum vtype type, nnode->tn_reg.tn_aobj->un_pager.swp.swp_priv = nnode; vm_object_set_flag(nnode->tn_reg.tn_aobj, OBJ_TMPFS); nnode->tn_reg.tn_tmp = tmp; + nnode->tn_reg.tn_pages = 0; break; default: @@ -665,11 +751,31 @@ tmpfs_free_node_locked(struct tmpfs_mount *tmp, struct tmpfs_node *node, switch (node->tn_type) { case VREG: uobj = node->tn_reg.tn_aobj; - if (uobj != NULL && uobj->size != 0) - atomic_subtract_long(&tmp->tm_pages_used, uobj->size); + node->tn_reg.tn_aobj = NULL; + if (uobj != NULL) { + VM_OBJECT_WLOCK(uobj); + KASSERT((uobj->flags & OBJ_TMPFS) != 0, + ("tmpfs node %p uobj %p not tmpfs", node, uobj)); + vm_object_clear_flag(uobj, OBJ_TMPFS); + KASSERT(tmp->tm_pages_used >= node->tn_reg.tn_pages, + ("tmpfs tmp %p node %p pages %jd free %jd", tmp, + node, (uintmax_t)tmp->tm_pages_used, + (uintmax_t)node->tn_reg.tn_pages)); + atomic_add_long(&tmp->tm_pages_used, + -node->tn_reg.tn_pages); + VM_OBJECT_WUNLOCK(uobj); + } tmpfs_free_tmp(tmp); + + /* + * vm_object_deallocate() must not be called while + * owning tm_allnode_lock, because deallocate might + * sleep. Call it after tmpfs_free_tmp() does the + * unlock. + */ if (uobj != NULL) vm_object_deallocate(uobj); + break; case VLNK: tmpfs_free_tmp(tmp); @@ -1705,7 +1811,6 @@ tmpfs_dir_whiteout_remove(struct vnode *dvp, struct componentname *cnp) int tmpfs_reg_resize(struct vnode *vp, off_t newsize, boolean_t ignerr) { - struct tmpfs_mount *tmp; struct tmpfs_node *node; vm_object_t uobj; vm_pindex_t idx, newpages, oldpages; @@ -1717,7 +1822,6 @@ tmpfs_reg_resize(struct vnode *vp, off_t newsize, boolean_t ignerr) node = VP_TO_TMPFS_NODE(vp); uobj = node->tn_reg.tn_aobj; - tmp = VFS_TO_TMPFS(vp->v_mount); /* * Convert the old and new sizes to the number of pages needed to @@ -1735,10 +1839,6 @@ tmpfs_reg_resize(struct vnode *vp, off_t newsize, boolean_t ignerr) return (0); } - if (newpages > oldpages && - !tmpfs_pages_check_avail(tmp, newpages - oldpages)) - return (ENOSPC); - VM_OBJECT_WLOCK(uobj); if (newsize < oldsize) { /* @@ -1764,8 +1864,6 @@ tmpfs_reg_resize(struct vnode *vp, off_t newsize, boolean_t ignerr) uobj->size = newpages; VM_OBJECT_WUNLOCK(uobj); - atomic_add_long(&tmp->tm_pages_used, newpages - oldpages); - node->tn_size = newsize; return (0); } diff --git a/sys/fs/tmpfs/tmpfs_vfsops.c b/sys/fs/tmpfs/tmpfs_vfsops.c index 7cba983a1847..19d67b79c2e3 100644 --- a/sys/fs/tmpfs/tmpfs_vfsops.c +++ b/sys/fs/tmpfs/tmpfs_vfsops.c @@ -557,7 +557,11 @@ tmpfs_free_tmp(struct tmpfs_mount *tmp) TMPFS_UNLOCK(tmp); mtx_destroy(&tmp->tm_allnode_lock); - MPASS(tmp->tm_pages_used == 0); + /* + * We cannot assert that tmp->tm_pages_used == 0 there, + * because tmpfs vm_objects might be still mapped by some + * process and outlive the mount due to reference counting. + */ MPASS(tmp->tm_nodes_inuse == 0); free(tmp, M_TMPFSMNT); diff --git a/sys/fs/tmpfs/tmpfs_vnops.c b/sys/fs/tmpfs/tmpfs_vnops.c index 788e966fedb7..661004595f18 100644 --- a/sys/fs/tmpfs/tmpfs_vnops.c +++ b/sys/fs/tmpfs/tmpfs_vnops.c @@ -444,7 +444,6 @@ tmpfs_stat(struct vop_stat_args *v) { struct vnode *vp = v->a_vp; struct stat *sb = v->a_sb; - vm_object_t obj; struct tmpfs_node *node; int error; @@ -477,8 +476,16 @@ tmpfs_stat(struct vop_stat_args *v) sb->st_flags = node->tn_flags; sb->st_gen = node->tn_gen; if (vp->v_type == VREG) { - obj = node->tn_reg.tn_aobj; - sb->st_blocks = (u_quad_t)obj->resident_page_count * PAGE_SIZE; +#ifdef __ILP32__ + vm_object_t obj = node->tn_reg.tn_aobj; + + /* Handle torn read */ + VM_OBJECT_RLOCK(obj); +#endif + sb->st_blocks = ptoa(node->tn_reg.tn_pages); +#ifdef __ILP32__ + VM_OBJECT_RUNLOCK(obj); +#endif } else { sb->st_blocks = node->tn_size; } @@ -517,7 +524,9 @@ tmpfs_getattr(struct vop_getattr_args *v) node->tn_rdev : NODEV; if (vp->v_type == VREG) { obj = node->tn_reg.tn_aobj; - vap->va_bytes = (u_quad_t)obj->resident_page_count * PAGE_SIZE; + VM_OBJECT_RLOCK(obj); + vap->va_bytes = ptoa(node->tn_reg.tn_pages); + VM_OBJECT_RUNLOCK(obj); } else { vap->va_bytes = node->tn_size; } diff --git a/sys/kern/uipc_shm.c b/sys/kern/uipc_shm.c index 4f06d9bea40e..a1f26b40f343 100644 --- a/sys/kern/uipc_shm.c +++ b/sys/kern/uipc_shm.c @@ -225,7 +225,7 @@ uiomove_object_page(vm_object_t obj, size_t len, struct uio *uio) printf("uiomove_object: vm_obj %p idx %jd " "pager error %d\n", obj, idx, rv); } - return (EIO); + return (rv == VM_PAGER_AGAIN ? ENOSPC : EIO); } VM_OBJECT_WUNLOCK(obj); From nobody Fri Jan 20 03:23:34 2023 X-Original-To: dev-commits-src-branches@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 4NylFg0zQxz30vhq; Fri, 20 Jan 2023 03:23:35 +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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4NylFf6kh1z3nMG; Fri, 20 Jan 2023 03:23:34 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1674185014; 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=iDHo9Xr43FCBOM8fJZMcwlOzlL5U3t9MyoW7KUV9+R8=; b=kZKf41kJnmsbfpv7SMJ1d0m6wFiyd0S2/XD16BznmufBaj1Zndd0a9sEJi8dING21BPdUU rHqrW1SI0ymF8wfhIsSg6JWY22bwZxYU9+wiMNfTZ+S/adFoshyL+CcDZT5g99huUMAPPi D09eFebV/CLGMtQlyg3As1OlXQpaquC8g2gqLKFBQlY4QYmmypoWguoG1XgGAK8lThI3ds AwP7AinQkuOR4qfSOE2GLTeuvYcXRuoOoz8jlTSmEPQ//RyNDmzfW/0R35ff50r8MptSHk 7IsjxoI2oQsszuO/ehLi8sZwYz4NoLv/srSu2umbwTgUxCXsl46alHjfPIFORQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1674185014; 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=iDHo9Xr43FCBOM8fJZMcwlOzlL5U3t9MyoW7KUV9+R8=; b=XkUlGf24uRtqrngUOLMUf/20syiWsTs869mmu0GbYhqhG08ENZl0Iz51HVDzN/z1rCj55U G+deSiQs6RgGDt+Uan51U1x/Cahn3Y+naNbHkWYdvN76HK3SAfkLgYGTtLD4d9TkqH4JVg I46C9M0lwROCuAH+v2NdEaUIHd2bPnGrJcjnKafQriJv+C1mNaIfWVUNOSrcLSjmJo+hfG WMFYfnOmhTZc32Wn2TW8NLRrKg6MArp1+DBs3gafTMIZ31auHE66M9s7XeRfjrpeR04Pad 8eSslo0xHolaiS6rUcoWq+kuR1Y1sfs7lEnK39gnXhN5AwrhRKb2Une1Vt8ovQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1674185014; a=rsa-sha256; cv=none; b=ARhW9vUCUlHykxcYTMe7Wr5ZLOOOqtLcAjlVDFsWvwsbf6n1NkQbE88L5tr/vDRthwJUQF x4KyiWkEGasmHfb2cBqnVQoxd853HPtYHEerqPo29chxp4vggBZoye09+DDlsHEILOTRXP R4/Ag44LIhJoDt1hKjPDwMY5UJ/Wm/WpJFz0GLRoEKUw348pHYvpfnRFIjm3eb2xmdZG7q g1pwLwffRV9caU4FRXhtO1w/byN1o7e29RwzNCa8/nhC5FsV9r/LyCiCfNpseAe4IsgFw4 MXkFaFkhjyIJeWsXt6JUiGRFusH7hp5WhDV6TK/5n+hMgUxtja1AJpfaxiYirg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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 did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4NylFf5rfKzG9K; Fri, 20 Jan 2023 03:23:34 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 30K3NY2L042343; Fri, 20 Jan 2023 03:23:34 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 30K3NY1v042342; Fri, 20 Jan 2023 03:23:34 GMT (envelope-from git) Date: Fri, 20 Jan 2023 03:23:34 GMT Message-Id: <202301200323.30K3NY1v042342@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Konstantin Belousov Subject: git: cf77a28cffc3 - stable/13 - tmpfs_getattr(): Only take vm_object lock on 32bit machines List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@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/13 X-Git-Reftype: branch X-Git-Commit: cf77a28cffc32a6d529ce7421b1e66beced49c5c Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=cf77a28cffc32a6d529ce7421b1e66beced49c5c commit cf77a28cffc32a6d529ce7421b1e66beced49c5c Author: Konstantin Belousov AuthorDate: 2022-12-17 11:03:32 +0000 Commit: Konstantin Belousov CommitDate: 2023-01-20 03:19:56 +0000 tmpfs_getattr(): Only take vm_object lock on 32bit machines Tested by: pho (cherry picked from commit 4d903a1a74d9526aba4d177e89c10f97df5662f2) --- sys/fs/tmpfs/tmpfs_vnops.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/sys/fs/tmpfs/tmpfs_vnops.c b/sys/fs/tmpfs/tmpfs_vnops.c index 661004595f18..0074e3203bbb 100644 --- a/sys/fs/tmpfs/tmpfs_vnops.c +++ b/sys/fs/tmpfs/tmpfs_vnops.c @@ -498,7 +498,6 @@ tmpfs_getattr(struct vop_getattr_args *v) { struct vnode *vp = v->a_vp; struct vattr *vap = v->a_vap; - vm_object_t obj; struct tmpfs_node *node; node = VP_TO_TMPFS_NODE(vp); @@ -523,10 +522,15 @@ tmpfs_getattr(struct vop_getattr_args *v) vap->va_rdev = (vp->v_type == VBLK || vp->v_type == VCHR) ? node->tn_rdev : NODEV; if (vp->v_type == VREG) { - obj = node->tn_reg.tn_aobj; +#ifdef __ILP32__ + vm_object_t obj = node->tn_reg.tn_aobj; + VM_OBJECT_RLOCK(obj); +#endif vap->va_bytes = ptoa(node->tn_reg.tn_pages); +#ifdef __ILP32__ VM_OBJECT_RUNLOCK(obj); +#endif } else { vap->va_bytes = node->tn_size; } From nobody Fri Jan 20 03:23:35 2023 X-Original-To: dev-commits-src-branches@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 4NylFh2PZGz30vfh; Fri, 20 Jan 2023 03:23:36 +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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4NylFh0XxRz3nR6; Fri, 20 Jan 2023 03:23:36 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1674185016; 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=frLRGfloMeFF5Apc/ESOAnLRd0G05nrj7pxMdthRDcA=; b=gIBsOcdlxfqAJIRiFExzBODUjGjQEX0uuLvc8OQ8DK4o9rCqn8D8ed7FLI57vduTqOxEKE 9ceCamur9aKUNyxUE1veq1mPw5Le31n+98/YuDQ6JVMAzfCWY0XLXKSWsANYpRrh0SE40I WfvEcc8vJCsnchAd8o9FmLBNaAvLzvvkt0vPZVGjBxTTxNsBEHU3jt6CVodJTZ1r3d3foX nLx8mf+NrGnFfq9wAZWbM8o/9M/3xg7DsLbIqgFoK5qupjAFsLdhlpRFZup9AnRHtUmtKH KQCC5+szDiDnWblJ6NSXfDnv2mPeId5ThHvtUcOmJiIvP/0qvdUBf/FPuSeJ9A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1674185016; 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=frLRGfloMeFF5Apc/ESOAnLRd0G05nrj7pxMdthRDcA=; b=xYV96IhAYGB2u/atIg7gQJlt2/2eAcujxkBCWD/TGdLLQfgLUteX+I7SvEGX0N4aVDYYU7 Y5okaI7tylTNGwG8K3prcOhQz9tXnMWOCLfWlOqm9YEbEseZJtcZyNZSD5PpROwhE/N13k z1+42Y4rw0jDmSOB6sXJnCW3XGZY+XKGOihmU4Tg5OFFXY1BRjw/k+vJeC0qRtQmmmSSQv v6Y9q59UqCGRIMF34qfkMW9UM21B52RJDpuMahnrRZAImZ4CYCYULMkOICW4D9nA++5wkN RgAj6wMwtXNTElyYZ0rF95PkbHtq+nmN6RfGK7EhMDz2Rnhgp7DWLNjwjBEeqA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1674185016; a=rsa-sha256; cv=none; b=Db8MU938xpNGCOCUazgV7a0MSnVaG2zVJKqPUT7RcBlZjd19M0oRkso4WYaMHrGavIk5Xa 774/2EoLNmnqy7fnF450ZniZzgRp/zWM15ceO3nmG1ThKRPSbyC4s9TozHgcQ5d4XYHsP5 rZ+vUZxWiYUp2HsXNMjkqzaBkwbhgqwgZ61b+tGcCxx4Mu+Y1BywnksiOtaXJd6UBHFzcG QsvzaLp/6WEJkRCviHxEGsoerD3hqiCiP2MzVTEOi8SYD+wLRGlO4TQGyvv5QQoem3vph6 hTl2/ET4v5bOjexBALGV565a0LXRf80CTkGKVXGenPTg0HjbwfcPUYZWCekj9g== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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 did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4NylFg6mQVzGDN; Fri, 20 Jan 2023 03:23:35 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 30K3NZha042376; Fri, 20 Jan 2023 03:23:35 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 30K3NZis042375; Fri, 20 Jan 2023 03:23:35 GMT (envelope-from git) Date: Fri, 20 Jan 2023 03:23:35 GMT Message-Id: <202301200323.30K3NZis042375@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Konstantin Belousov Subject: git: d689fda0703b - stable/13 - shmfd: account for the actually allocated pages List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@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/13 X-Git-Reftype: branch X-Git-Commit: d689fda0703bd7bf7320fe6e34f2abf260650f8e Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=d689fda0703bd7bf7320fe6e34f2abf260650f8e commit d689fda0703bd7bf7320fe6e34f2abf260650f8e Author: Konstantin Belousov AuthorDate: 2022-11-23 21:26:38 +0000 Commit: Konstantin Belousov CommitDate: 2023-01-20 03:20:02 +0000 shmfd: account for the actually allocated pages Tested by: pho (cherry picked from commit 0919f29d91031cf42eca99266bffe7b0faef8f1b) --- sys/kern/uipc_shm.c | 83 +++++++++++++++++++++++++++++++++++++++++++++++++---- sys/sys/mman.h | 1 + 2 files changed, 79 insertions(+), 5 deletions(-) diff --git a/sys/kern/uipc_shm.c b/sys/kern/uipc_shm.c index a1f26b40f343..f1dc0f828b23 100644 --- a/sys/kern/uipc_shm.c +++ b/sys/kern/uipc_shm.c @@ -343,6 +343,61 @@ shm_largepage(struct shmfd *shmfd) return (shmfd->shm_object->type == OBJT_PHYS); } +static void +shm_pager_freespace(vm_object_t obj, vm_pindex_t start, vm_size_t size) +{ + struct shmfd *shm; + vm_size_t c; + + swap_pager_freespace(obj, start, size, &c); + if (c == 0) + return; + + shm = obj->un_pager.swp.swp_priv; + if (shm == NULL) + return; + KASSERT(shm->shm_pages >= c, + ("shm %p pages %jd free %jd", shm, + (uintmax_t)shm->shm_pages, (uintmax_t)c)); + shm->shm_pages -= c; +} + +static void +shm_page_inserted(vm_object_t obj, vm_page_t m) +{ + struct shmfd *shm; + + shm = obj->un_pager.swp.swp_priv; + if (shm == NULL) + return; + if (!vm_pager_has_page(obj, m->pindex, NULL, NULL)) + shm->shm_pages += 1; +} + +static void +shm_page_removed(vm_object_t obj, vm_page_t m) +{ + struct shmfd *shm; + + shm = obj->un_pager.swp.swp_priv; + if (shm == NULL) + return; + if (!vm_pager_has_page(obj, m->pindex, NULL, NULL)) { + KASSERT(shm->shm_pages >= 1, + ("shm %p pages %jd free 1", shm, + (uintmax_t)shm->shm_pages)); + shm->shm_pages -= 1; + } +} + +static struct pagerops shm_swap_pager_ops = { + .pgo_kvme_type = KVME_TYPE_SWAP, + .pgo_freespace = shm_pager_freespace, + .pgo_page_inserted = shm_page_inserted, + .pgo_page_removed = shm_page_removed, +}; +static int shmfd_pager_type = -1; + static int shm_seek(struct file *fp, off_t offset, int whence, struct thread *td) { @@ -560,7 +615,6 @@ shm_stat(struct file *fp, struct stat *sb, struct ucred *active_cred, bzero(sb, sizeof(*sb)); sb->st_blksize = PAGE_SIZE; sb->st_size = shmfd->shm_size; - sb->st_blocks = howmany(sb->st_size, sb->st_blksize); mtx_lock(&shm_timestamp_lock); sb->st_atim = shmfd->shm_atime; sb->st_ctim = shmfd->shm_ctime; @@ -573,8 +627,12 @@ shm_stat(struct file *fp, struct stat *sb, struct ucred *active_cred, sb->st_dev = shm_dev_ino; sb->st_ino = shmfd->shm_ino; sb->st_nlink = shmfd->shm_object->ref_count; - sb->st_blocks = shmfd->shm_object->size / - (pagesizes[shmfd->shm_lp_psind] >> PAGE_SHIFT); + if (shm_largepage(shmfd)) { + sb->st_blocks = shmfd->shm_object->size / + (pagesizes[shmfd->shm_lp_psind] >> PAGE_SHIFT); + } else { + sb->st_blocks = shmfd->shm_pages; + } return (0); } @@ -858,6 +916,7 @@ struct shmfd * shm_alloc(struct ucred *ucred, mode_t mode, bool largepage) { struct shmfd *shmfd; + vm_object_t obj; shmfd = malloc(sizeof(*shmfd), M_SHMFD, M_WAITOK | M_ZERO); shmfd->shm_size = 0; @@ -870,8 +929,12 @@ shm_alloc(struct ucred *ucred, mode_t mode, bool largepage) VM_PROT_DEFAULT, 0, ucred); shmfd->shm_lp_alloc_policy = SHM_LARGEPAGE_ALLOC_DEFAULT; } else { - shmfd->shm_object = vm_pager_allocate(OBJT_SWAP, NULL, + obj = vm_pager_allocate(shmfd_pager_type, NULL, shmfd->shm_size, VM_PROT_DEFAULT, 0, ucred); + VM_OBJECT_WLOCK(obj); + obj->un_pager.swp.swp_priv = shmfd; + VM_OBJECT_WUNLOCK(obj); + shmfd->shm_object = obj; } KASSERT(shmfd->shm_object != NULL, ("shm_create: vm_pager_allocate")); vfs_timestamp(&shmfd->shm_birthtime); @@ -900,6 +963,7 @@ shm_hold(struct shmfd *shmfd) void shm_drop(struct shmfd *shmfd) { + vm_object_t obj; if (refcount_release(&shmfd->shm_refs)) { #ifdef MAC @@ -907,7 +971,13 @@ shm_drop(struct shmfd *shmfd) #endif rangelock_destroy(&shmfd->shm_rl); mtx_destroy(&shmfd->shm_mtx); - vm_object_deallocate(shmfd->shm_object); + obj = shmfd->shm_object; + if (!shm_largepage(shmfd)) { + VM_OBJECT_WLOCK(obj); + obj->un_pager.swp.swp_priv = NULL; + VM_OBJECT_WUNLOCK(obj); + } + vm_object_deallocate(obj); free(shmfd, M_SHMFD); } } @@ -946,6 +1016,9 @@ shm_init(void *arg) new_unrhdr64(&shm_ino_unr, 1); shm_dev_ino = devfs_alloc_cdp_inode(); KASSERT(shm_dev_ino > 0, ("shm dev inode not initialized")); + shmfd_pager_type = vm_pager_alloc_dyn_type(&shm_swap_pager_ops, + OBJT_SWAP); + MPASS(shmfd_pager_type != -1); for (i = 1; i < MAXPAGESIZES; i++) { if (pagesizes[i] == 0) diff --git a/sys/sys/mman.h b/sys/sys/mman.h index 71172bfd49a3..0413249dee2c 100644 --- a/sys/sys/mman.h +++ b/sys/sys/mman.h @@ -268,6 +268,7 @@ struct file; struct shmfd { vm_ooffset_t shm_size; vm_object_t shm_object; + vm_pindex_t shm_pages; /* allocated pages */ int shm_refs; uid_t shm_uid; gid_t shm_gid; From nobody Fri Jan 20 03:23:36 2023 X-Original-To: dev-commits-src-branches@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 4NylFj2rrsz30vbH; Fri, 20 Jan 2023 03:23:37 +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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4NylFj1WfZz3nVN; Fri, 20 Jan 2023 03:23:37 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1674185017; 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=DWJ29W5Fhvena/vI3muoEwD1Ly7RAvkNk3jwzf0anPs=; b=c/EQ6K8ldG79Ylhc3+fZ3ZkvCHBVPIg/nTwkuLHcvSBfQc3GCJV7Z6J/vNCLU4O2rxIcZN q9o2iPKTJDDxADQn86FiTFBnAbYzVG5sFelC31UvuHQJAvT2LtEPLJ3Ww+MbC1dG8qjuUp XV0jrl6HQ45vvuSfOKbo2q046x9hjx+xNG1dlh0M9vJa3fxL++FSg/MegEFFYxerBFmNaN I0gFdD+GigZIsQN2ubkJLaFQqGzRZsjY1Uml1Veuq9z6+BoW6LcQy9R0WRhmXY4Y18RCys ntuZ+5LFjLAcbWcf5M17DkYExmFYSqA5tqAemNkR4N7WbPazkmiEAgyYGZXG/g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1674185017; 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=DWJ29W5Fhvena/vI3muoEwD1Ly7RAvkNk3jwzf0anPs=; b=iLahXXVzd5pP0MWtMARaQgoXovDfSJXbLW3Ox6HwXE/HsLKKChTwQRBNS+Eo9vfECBOrc2 Scyd2MgtxjhOYfiKV/Vyhrf3GNjeGvNro/f0ku5dX8LYBrmqnEzQg4286X/Mv0XYH2G6G/ W1Vi/C9Vp427NCJ0onwgaZpver7OEieFcgmM/ml8EvcokylIMAWF/uF72G73CKjFCxQoBh T/9xKlWBxXbz79dJZYHvflsCKoVbw1DVUPhqJQ8R+8IBoLnvx8UFG/Md8CFVL/qhMdbS1B VeDus/Lwhla+PSCprGw4Qnb9KdhIVQYThn24OBDPhEegZJYTyc1iB1ZSUhb4LQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1674185017; a=rsa-sha256; cv=none; b=ui1WDGiypKcY8k2JRTIlPqE7cR7ljja3cccIeyiBmbfZ5JlCvbdP8ipIlUSx1JiXGAc5UZ YWiftC6ZfisQuvS+fCpVWWFR6XrY8ojuPPN7ViCvdcsTVT/ssM4WVbHKZaevbXF4ZG8Mdw TALB5//ZRCFXou/TNtltsKzGL+222SAc/IoViA1xH2yaXFe/5WyAWBRIfVzssL0V7feDAi 4AQ5FZWeHcLplxZ6w7H74KGY9fcWwhY40Bixd8Mlrecri9kTXYINi4lUZ3b9Ku4t8xrfpx MgfZ3t9a5xrAjxFdBqDIX7CAt2SArCT/Y/+7tR4QKlA1HOtezJLhjIZw3p3V2w== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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 did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4NylFj0dD7zG7C; Fri, 20 Jan 2023 03:23:37 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 30K3Na4V042400; Fri, 20 Jan 2023 03:23:36 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 30K3NaWm042399; Fri, 20 Jan 2023 03:23:36 GMT (envelope-from git) Date: Fri, 20 Jan 2023 03:23:36 GMT Message-Id: <202301200323.30K3NaWm042399@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Konstantin Belousov Subject: git: 376418fcbd4e - stable/13 - posixshmcontrol(1): for regular shmfd, report used pages number List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@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/13 X-Git-Reftype: branch X-Git-Commit: 376418fcbd4e933f7dc3fbc687a2814699fbb7cf Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=376418fcbd4e933f7dc3fbc687a2814699fbb7cf commit 376418fcbd4e933f7dc3fbc687a2814699fbb7cf Author: Konstantin Belousov AuthorDate: 2022-11-23 22:01:05 +0000 Commit: Konstantin Belousov CommitDate: 2023-01-20 03:20:11 +0000 posixshmcontrol(1): for regular shmfd, report used pages number Tested by: pho (cherry picked from commit 1bbc5101348b9ca23cef6bde6c22751e69e8cf91) --- usr.bin/posixshmcontrol/posixshmcontrol.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/usr.bin/posixshmcontrol/posixshmcontrol.c b/usr.bin/posixshmcontrol/posixshmcontrol.c index f64fcd3dd663..3b9d1dc256c3 100644 --- a/usr.bin/posixshmcontrol/posixshmcontrol.c +++ b/usr.bin/posixshmcontrol/posixshmcontrol.c @@ -404,6 +404,8 @@ stat_one_shm(const char *path, bool hsize, bool uname) char sizebuf[8]; struct stat st; int error, fd, ret; + struct shm_largepage_conf conf_dummy; + bool largepage; fd = shm_open(path, O_RDONLY, 0); if (fd == -1) { @@ -442,9 +444,13 @@ stat_one_shm(const char *path, bool hsize, bool uname) (long)st.st_ctim.tv_nsec); printf("birth\t%ld.%09ld\n", (long)st.st_birthtim.tv_sec, (long)st.st_birthtim.tv_nsec); - if (st.st_blocks != 0) + error = ioctl(fd, FIOGSHMLPGCNF, &conf_dummy); + largepage = error == 0; + if (st.st_blocks != 0 && largepage) printf("pagesz\t%jd\n", roundup((uintmax_t)st.st_size, PAGE_SIZE) / st.st_blocks); + else + printf("pages\t%jd\n", st.st_blocks); } close(fd); return (ret); From nobody Fri Jan 20 03:23:38 2023 X-Original-To: dev-commits-src-branches@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 4NylFk4TSMz30vbM; Fri, 20 Jan 2023 03:23:38 +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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4NylFk2vlSz3nVl; Fri, 20 Jan 2023 03:23:38 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1674185018; 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=fvX+GEeoWRJEVAkU7OTTAR09Xtv0LnzZ8vtOjsT3i2o=; b=iG1ilI/SZySBRQUFJUEObP1Z02G4tb+aB1kzvHKyokcVYf1Ra8XBInulc5OsOUte+0Rhah sw0Lg6VsgiCHO67pnYBKBA0nULgooymCV1EOddLb+2y+fAt2kr4emI9h2nur+lYvZJjNMt slMEZWQ9lZwCpz/WbTZd2S8VkKcFkwuzV0VExUNIkwZ6rTc3IKrABy7zelac70VJdg6BHp oUDZrwJdgRhnU5o78TEqYVSWkXTlpp28smptfKH7l7ARN9NhRZPyK409jEAgMROupAzHwK fYjW0vGRu55sT2JM4mcqhL9jvIbG7shW65AaTxlIHHJB2Bqq6q/od+U7gSJSww== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1674185018; 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=fvX+GEeoWRJEVAkU7OTTAR09Xtv0LnzZ8vtOjsT3i2o=; b=Itqcyem7W28NVtYvTr4eO0w3lOlbo5DXYPqpw1JIRCioa+TvDFV4PVc9AQ4UZhSW8F1Yu5 qEAlWq4MrHluWksgLnMz3kKs4sx+5CTnr66TlwZMEfsQdHXnXbmoeSeWzzrGC4/jvRZOUj 2pud9muCLjuSJrUP6lS2R7KSRWgEWtbDQrS9iKEjAPO6zvkt9Nj8hl2rEpnDkGSMWBOIt6 KhfLjWZoCw5HmoOo7MiODvq8AQibV7YN0p56FDAptOSX1glEm2wg2d0ATyROdTyON1eK67 lRT2ptUWqtOy6IGBX4LcFCo4tBKGN2xmp0368lGUAqp8g2o7UefxYU72fMy6KA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1674185018; a=rsa-sha256; cv=none; b=kemMA+duO4XJ6u5U8W/zwYbXVLoNxsfRV8UjWLi8vsnmURuBZcCJgoP7/CaAI0Iw65SEqJ N3ZlH4lJMgzsFQiNp/n1w3kvkYjif2sWD+yMZ8iSeTtej7HKbo8ketJPRUS9jtnDqqer0z eX3KeSAKBIEYEZO6NqoWkZvYxAz8qdbA7DqPPu9VfAYVErb9mJf0QyIxa8wt9g29+ZtXZT MC+os76+Cb+KRkDJqjOG6aDNvcLrQFWPa+rQOErHizK9cE6rTOCYWe+fl337Wr9gTdDgIc o75HrjIbv1MG73CXSNIFQVsJDGcP9jK8ZiPytjpsPqW/WNs87pdB0u0NnE1pyg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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 did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4NylFk1fNKzGDP; Fri, 20 Jan 2023 03:23:38 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 30K3NcdH042424; Fri, 20 Jan 2023 03:23:38 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 30K3Ncnm042423; Fri, 20 Jan 2023 03:23:38 GMT (envelope-from git) Date: Fri, 20 Jan 2023 03:23:38 GMT Message-Id: <202301200323.30K3Ncnm042423@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Konstantin Belousov Subject: git: 6ca462ee004d - stable/13 - posixshm_test: small style fixes List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@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/13 X-Git-Reftype: branch X-Git-Commit: 6ca462ee004d13422be4827c5e596dfbea3d3b86 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=6ca462ee004d13422be4827c5e596dfbea3d3b86 commit 6ca462ee004d13422be4827c5e596dfbea3d3b86 Author: Konstantin Belousov AuthorDate: 2022-12-03 22:54:13 +0000 Commit: Konstantin Belousov CommitDate: 2023-01-20 03:20:17 +0000 posixshm_test: small style fixes Tested by: pho (cherry picked from commit f1f030246f3e72af0ee3ba82a0e8b9f6d9559b69) --- tests/sys/posixshm/posixshm_test.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/sys/posixshm/posixshm_test.c b/tests/sys/posixshm/posixshm_test.c index 6329f0eb4f7d..06624de7c13c 100644 --- a/tests/sys/posixshm/posixshm_test.c +++ b/tests/sys/posixshm/posixshm_test.c @@ -953,7 +953,7 @@ ATF_TC_BODY(fallocate, tc) ATF_REQUIRE_MSG((error = posix_fallocate(fd, sz, sz)) == 0, "posix_fallocate failed; error=%d", error); ATF_REQUIRE(fstat(fd, &st) == 0); - ATF_REQUIRE(st.st_size == (sz * 2)); + ATF_REQUIRE(st.st_size == sz * 2); close(fd); } From nobody Fri Jan 20 03:23:39 2023 X-Original-To: dev-commits-src-branches@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 4NylFl4hlKz30vcR; Fri, 20 Jan 2023 03:23:39 +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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4NylFl3hknz3nZw; Fri, 20 Jan 2023 03:23:39 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1674185019; 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=8wvwEABtadwECSBUdCjVYvCHYQYa/d6tXV1kQkaySBk=; b=BJPmiUvnNE+D+4OVSPKHGh4geoW33ZFFnh20JfaNs01uJ36rF5/jI0Ew+y5MMXYr3SGVuc TCflphxhDdxA3eFRcEdIbzSjs9I2uGjxUfXxDQgqydJYACcV5NjrMcx+TjlNNs3fPIvAZ1 nDGhMafRsN66KbHcMfAUdtnJhb5Gj4VI7smhWoEc/dTmTjs3SbbFAoecN7Zi0W4bVqyvQa t+LQusJu6Qzd+QwvDrAla7ca+qUnZiw7zvjY8TwY0qWEIlkC+SEdGhoklIi8qBaSNSiIpk KpiobhUoF/ZfVWnuGzS2wzrsIqJA8LIYXbUcGhSiHRbY2mQwgDj72QlNdTN7fw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1674185019; 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=8wvwEABtadwECSBUdCjVYvCHYQYa/d6tXV1kQkaySBk=; b=bJVIperikuW4Dx+CqVgSY/m7eLs3jp75pc/aBoT5YEr1fwJCtwYZ5PrH53Ms5eSJVfiRW6 nE8MQXkyunmkb3hgyd5tLK2lg+tq0LHAeo9KuWmYNQ4o682xtFjBwV/qRAaABRsg9BOLTv Y8iUfokSSaf/ZVDKwiaipJuhyzEknkuzBHSvfxxzC8mOVygcV2knCdsfgrfz3AR5Oh+Dzl rfS5CW7VN1bJ1dWI7opRZMWppJey2RrlzP1hS+JilYwQ6EfZaPOpE0mCU9njVJ/XQUvHoS 4S6w8rIkg4b2GLuW7jHObe8haE2MkxUsYEp7Ek67NFRsnaB/tl5OHs7R34sn1g== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1674185019; a=rsa-sha256; cv=none; b=pCRiAKNY13ygFAnGCIjBfLTLkx2KtVXZY+0oFarWpdoSUnH2xR8/OBq9YMlwO00Fdpxj5Q 4MHzbh+EvCuO6geWAsG2NLiEhtY4K8CtO2THMg7Iv1mLqiY1N/MKhKJsYI9xzIQjbnwwXJ WCS5LD+KIghUghCbREY+fIJ9RTKWCOaVvFS4jdDYhnGQXhlmk4ohOA3TRHolP3KkxwvAoG wRvX9jSrF66HfSXF91NRowTQlOUXLNXrJXdrtpMfXPMjJ7HtDsNjwpdMq7wyhpoa7/ETJA TxHU/cdnQFlQSy7znaQaIgf91Hl+cSNvbErZxXoT5VgcR/8S5uSgBUzWip14AQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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 did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4NylFl2j6mzFtp; Fri, 20 Jan 2023 03:23:39 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 30K3Nd7e042452; Fri, 20 Jan 2023 03:23:39 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 30K3NdwP042451; Fri, 20 Jan 2023 03:23:39 GMT (envelope-from git) Date: Fri, 20 Jan 2023 03:23:39 GMT Message-Id: <202301200323.30K3NdwP042451@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Konstantin Belousov Subject: git: af13904908ee - stable/13 - posixshm_test: add naive page accounting test List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@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/13 X-Git-Reftype: branch X-Git-Commit: af13904908ee59a0fca89001078af5d6d66c79e4 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=af13904908ee59a0fca89001078af5d6d66c79e4 commit af13904908ee59a0fca89001078af5d6d66c79e4 Author: Konstantin Belousov AuthorDate: 2022-12-03 22:54:36 +0000 Commit: Konstantin Belousov CommitDate: 2023-01-20 03:20:22 +0000 posixshm_test: add naive page accounting test For MFC, the deallocation part of the test is disabled because it is not merged to stable/13. Tested by: pho (cherry picked from commit 91ddfd352f59beb8262f98c2e8a22722207e5aa6) --- tests/sys/posixshm/posixshm_test.c | 72 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 72 insertions(+) diff --git a/tests/sys/posixshm/posixshm_test.c b/tests/sys/posixshm/posixshm_test.c index 06624de7c13c..a7b2e19f38af 100644 --- a/tests/sys/posixshm/posixshm_test.c +++ b/tests/sys/posixshm/posixshm_test.c @@ -173,6 +173,37 @@ verify_object(const char *path, char expected_value) close(fd); } +static off_t shm_max_pages = 32; +static const char byte_to_fill = 0x5f; + +static int +shm_fill(int fd, off_t offset, off_t len) +{ + int error; + size_t blen, page_size; + char *buf; + + error = 0; + page_size = getpagesize(); + buf = malloc(page_size); + if (buf == NULL) + return (1); + + while (len > 0) { + blen = len < (off_t)page_size ? (size_t)len : page_size; + memset(buf, byte_to_fill, blen); + if (pwrite(fd, buf, blen, offset) != (ssize_t)blen) { + error = 1; + break; + } + len -= blen; + offset += blen; + } + + free(buf); + return (error); +} + ATF_TC_WITHOUT_HEAD(remap_object); ATF_TC_BODY(remap_object, tc) { @@ -958,6 +989,40 @@ ATF_TC_BODY(fallocate, tc) close(fd); } +ATF_TC_WITHOUT_HEAD(accounting); +ATF_TC_BODY(accounting, tc) +{ + struct spacectl_range range; + struct stat st; + off_t shm_sz, len; + size_t page_size; + int fd, error; + + page_size = getpagesize(); + shm_sz = shm_max_pages * page_size; + + fd = shm_open("/testtest1", O_RDWR | O_CREAT, 0666); + ATF_REQUIRE_MSG(fd >= 0, "shm_open failed; errno:%d", errno); + ATF_REQUIRE_MSG((error = posix_fallocate(fd, 0, shm_sz)) == 0, + "posix_fallocate failed; error=%d", error); + + ATF_REQUIRE(shm_fill(fd, 0, shm_sz) == 0); + ATF_REQUIRE(fstat(fd, &st) == 0); + ATF_REQUIRE(st.st_blksize * st.st_blocks == (blkcnt_t)shm_sz); + +#if 0 + range.r_offset = page_size; + range.r_len = len = (shm_max_pages - 1) * page_size - + range.r_offset; + ATF_CHECK_MSG(fspacectl(fd, SPACECTL_DEALLOC, &range, 0, &range) == 0, + "SPACECTL_DEALLOC failed; errno=%d", errno); + ATF_REQUIRE(fstat(fd, &st) == 0); + ATF_REQUIRE(st.st_blksize * st.st_blocks == (blkcnt_t)(shm_sz - len)); + + ATF_REQUIRE(close(fd) == 0); +#endif +} + static int shm_open_large(int psind, int policy, size_t sz) { @@ -1716,6 +1781,13 @@ ATF_TP_ADD_TCS(tp) ATF_TP_ADD_TC(tp, cloexec); ATF_TP_ADD_TC(tp, mode); ATF_TP_ADD_TC(tp, fallocate); +<<<<<<< HEAD +||||||| parent of 91ddfd352f59 (posixshm_test: add naive page accounting test) + ATF_TP_ADD_TC(tp, fspacectl); +======= + ATF_TP_ADD_TC(tp, fspacectl); + ATF_TP_ADD_TC(tp, accounting); +>>>>>>> 91ddfd352f59 (posixshm_test: add naive page accounting test) ATF_TP_ADD_TC(tp, largepage_basic); ATF_TP_ADD_TC(tp, largepage_config); ATF_TP_ADD_TC(tp, largepage_mmap); From nobody Fri Jan 20 03:23:40 2023 X-Original-To: dev-commits-src-branches@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 4NylFm6XmBz30vfp; Fri, 20 Jan 2023 03:23:40 +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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4NylFm5DW1z3ndM; Fri, 20 Jan 2023 03:23:40 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1674185020; 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=c8M7LhAUAXWfe+RAAluBZ+AjgoZpUJjqdaU26IjfgMM=; b=ZNQ1Bm3UXSBnnyrTOxoErBu2fqeqXHdgtfld1kCohK61t5+uBTQoQbuz5IrJ58XuOnmb9W It4ZptSCOuvBzV43TLbqvfBXxuRHeypzph9F+DPGWWlSe97vAjpg05lJqM5IMUef/WYDCw eVobGAxOwgRcEJDXc5Ywyt26cR30LUn8iRClmc7PtV1QbSVF2T31r1GrE6l5x2oqY7X0l6 EXCI1WLQce5DomczfCF/r27Z6DlPayypZm4EcRkuXT/jI/gPdHlo2x1Ljhpyhob/jgoCCN lvBILAI+sfxlRhw21pHACnH7A1W8EJ4dsOpmkjKZ+wSEJpONCpbKH6JP5+7+aA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1674185020; 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=c8M7LhAUAXWfe+RAAluBZ+AjgoZpUJjqdaU26IjfgMM=; b=JymwwRcf6eLIuBtwxO9OxC4lswv62Sz/vGcQH7rMjasLDloZAopuqkqsXN1EoW629eZlqY vtZRn/OvJeCvJb2cDdNyfQOaYNkOscDUdFJQR8V1dmITPh2N3sSTIzRy/PR46QY2rME/t0 yKRwE/rFGNT2TV+czFcoOuNjUgn0NbOhjVz1p1IN9Tq3o4/ZuZg/VSqNmJZSs0ApybmqXO hO3Si+H+gJsJR1R32giXagJ1Zh4d4DgLdq8mFz7RudYbzVIoDZt3fttMDJdU/FCJGatJwi icaZreI36x3VBbSwTsss95EgSiTeO/wSr6CSovqXnjnPh1mhTUr3FCj828+meg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1674185020; a=rsa-sha256; cv=none; b=Vnoe6kXj1sSVsJH6DIVZ+YsFauZi2fabOYubxJumrp1oQACKtLNtMeULPmompM0IakkaQu /4PSg8DNFuJQlO4fKOVn1iKm/QNgHaJoFVwDEXBxmKwmCwEe/duUGE/wFgXvLh0hEBvsRi BmIjx0HwQLY/CDhV9ENhUd+SqMWsULR2E0nOJRIZJLY8d9VVn8wrsEQrIZYYXiU4rAx22e W1VMboRrTW/uH7thHVv5tuOzGGDmF7y8nneY+PsKofUfepHCMTQyf8gSoo8MUhm6HIESCC UumR08J85iY/8hWyFP2VM8G2T5mIpNf80UuAALyG9vhIgcNdqxXWHHFYNc4h6Q== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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 did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4NylFm3SZ6zGNk; Fri, 20 Jan 2023 03:23:40 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 30K3NexK042476; Fri, 20 Jan 2023 03:23:40 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 30K3NePa042475; Fri, 20 Jan 2023 03:23:40 GMT (envelope-from git) Date: Fri, 20 Jan 2023 03:23:40 GMT Message-Id: <202301200323.30K3NePa042475@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Konstantin Belousov Subject: git: cf5d6ae3a1b1 - stable/13 - compat32: move struct ptrace_sc_ret32 definition from .c to .h List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@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/13 X-Git-Reftype: branch X-Git-Commit: cf5d6ae3a1b14b35d94da5544d273ad05a887a94 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=cf5d6ae3a1b14b35d94da5544d273ad05a887a94 commit cf5d6ae3a1b14b35d94da5544d273ad05a887a94 Author: Konstantin Belousov AuthorDate: 2022-12-01 01:31:58 +0000 Commit: Konstantin Belousov CommitDate: 2023-01-20 03:20:29 +0000 compat32: move struct ptrace_sc_ret32 definition from .c to .h Tested by: pho (cherry picked from commit f081a291a17de0e28e5b7f5adba312f0dcb59b0f) --- sys/compat/freebsd32/freebsd32.h | 5 +++++ sys/compat/freebsd32/freebsd32_misc.c | 5 ----- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/sys/compat/freebsd32/freebsd32.h b/sys/compat/freebsd32/freebsd32.h index 2e4f5155cbf4..8d5eae2817f3 100644 --- a/sys/compat/freebsd32/freebsd32.h +++ b/sys/compat/freebsd32/freebsd32.h @@ -429,6 +429,11 @@ struct timex32 { int32_t stbcnt; }; +struct ptrace_sc_ret32 { + uint32_t sr_retval[2]; + int sr_error; +}; + struct ptrace_coredump32 { int pc_fd; uint32_t pc_flags; diff --git a/sys/compat/freebsd32/freebsd32_misc.c b/sys/compat/freebsd32/freebsd32_misc.c index 14f2e2a4b752..269286ab90dc 100644 --- a/sys/compat/freebsd32/freebsd32_misc.c +++ b/sys/compat/freebsd32/freebsd32_misc.c @@ -130,11 +130,6 @@ struct ptrace_io_desc32 { uint32_t piod_len; }; -struct ptrace_sc_ret32 { - uint32_t sr_retval[2]; - int sr_error; -}; - struct ptrace_vm_entry32 { int pve_entry; int pve_timestamp; From nobody Fri Jan 20 03:23:41 2023 X-Original-To: dev-commits-src-branches@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 4NylFp0Hlnz30vj1; Fri, 20 Jan 2023 03:23:42 +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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4NylFn5WYGz3nS5; Fri, 20 Jan 2023 03:23:41 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1674185021; 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=cCqtjI5gcKoM7VJ13Swg5VB/8rP35cFDg1fTHXRmZKY=; b=mvwHdcoenIOuI6JXm4Xp/p1EUcHUr5rk1OVHDY4p5DNiZqSmEx2Oy/o6HYznQCTOpc6uWg CAikcYYoorS92afABX6vvMi1Jva/URR8xJozE+ii5JaoHhNUX8qWILYXvMnLlLH5rKuT9Y +3NO5Lv2aAf5PmlVmX0g/ubsl3t9LWS4HauwwnY4Teh/wXobORRBGNvS5mlsKBbydYdH6/ yfkqOcegAvaOPIFA/Nu6a8PZLpZFN2JbPuMiFMgMfyOsFtbK5eo16j3oVMnNKuXBZQg77o Ebrt0HL2srU4O1UNDRqTxAzs0hsnh6RLiFzB6unJQyAF71cYanwaliU9D65qXQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1674185021; 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=cCqtjI5gcKoM7VJ13Swg5VB/8rP35cFDg1fTHXRmZKY=; b=p6MqGUrccraCkmuux29urK7Tz7nbM5kHoXDu9UPMxWSW0+zZeYbFVlyv0ydfVSPtCwEoMO aP38/pZnMHf7bus+xGHeFCzsZ32DbhtK9jWLekruEjF+SA53fks06CBU+ReI5Ht4ZlS21d VX2oWJAvjff7iTRIxYIWc9jwh4AP6MwTIvyyOa5ZK0KfXV8HLXFaOopzCM0XXutKy/POFP +7OHa13lgYpjfzt267uMEpUVygPGRBGCthsvHcg9340FzOj//yu282K3QRypPpC/8kuccw 5M8OCzWb6Z1QftQXtFqbJJlXwwK8FNxeUhf5oB8K+z1ueGjZ3eOl4R1CVHOmLw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1674185021; a=rsa-sha256; cv=none; b=TilHi+ueWJitE86O07Qyj1R7Rh+6X7bcjEPI8IZDRFa9QmDTd5sj8QME+e0jtrQg8E7hCD hLqV+hooJb2Ldu/zP1i5Jh/p9XwbySqVGOYikYnFmpmCWNHQpcVk7gR2mguxY6iL52mSmR eSJbrYtBcF64UdrE0lkirP5XD3hfZ9/R5Zlj8rs+MpQxD2MTRoPY01D6FvBiym/jwKmwte LC6dk/oZ2PEyePjCksCs7m+hqm+3pSFEoadNzUC9obnZg+ibq5mHL+6PW7difUvNwsWwJZ 0+RUBKGD8c+TSrZRmMCwI/B5KbePpuKzZcJ7LNydrXwL670zRhsspN9ipjYHaQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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 did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4NylFn4c3LzFf1; Fri, 20 Jan 2023 03:23:41 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 30K3Nfhx042508; Fri, 20 Jan 2023 03:23:41 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 30K3NfrX042507; Fri, 20 Jan 2023 03:23:41 GMT (envelope-from git) Date: Fri, 20 Jan 2023 03:23:41 GMT Message-Id: <202301200323.30K3NfrX042507@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Konstantin Belousov Subject: git: 55df3e814f61 - stable/13 - sys: rename td_coredump to td_remotereq List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@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/13 X-Git-Reftype: branch X-Git-Commit: 55df3e814f61ed28d497af8f8b640bf18e1de94f Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=55df3e814f61ed28d497af8f8b640bf18e1de94f commit 55df3e814f61ed28d497af8f8b640bf18e1de94f Author: Konstantin Belousov AuthorDate: 2022-11-30 08:48:24 +0000 Commit: Konstantin Belousov CommitDate: 2023-01-20 03:20:35 +0000 sys: rename td_coredump to td_remotereq Tested by: pho (cherry picked from commit e6feeae2f915c76275b83b7365ae966a8f8dd016) --- sys/kern/kern_sig.c | 12 ++++++------ sys/kern/sys_process.c | 8 ++++---- sys/sys/proc.h | 4 ++-- 3 files changed, 12 insertions(+), 12 deletions(-) diff --git a/sys/kern/kern_sig.c b/sys/kern/kern_sig.c index 8f35747b4687..df9ca8076a64 100644 --- a/sys/kern/kern_sig.c +++ b/sys/kern/kern_sig.c @@ -2565,12 +2565,12 @@ ptrace_coredump(struct thread *td) MPASS(td == curthread); p = td->td_proc; PROC_LOCK_ASSERT(p, MA_OWNED); - if ((td->td_dbgflags & TDB_COREDUMPRQ) == 0) + if ((td->td_dbgflags & TDB_COREDUMPREQ) == 0) return; KASSERT((p->p_flag & P_STOPPED_TRACE) != 0, ("not stopped")); - tcq = td->td_coredump; - KASSERT(tcq != NULL, ("td_coredump is NULL")); + tcq = td->td_remotereq; + KASSERT(tcq != NULL, ("td_remotereq is NULL")); if (p->p_sysent->sv_coredump == NULL) { tcq->tc_error = ENOSYS; @@ -2586,8 +2586,8 @@ ptrace_coredump(struct thread *td) vn_rangelock_unlock(tcq->tc_vp, rl_cookie); PROC_LOCK(p); wake: - td->td_dbgflags &= ~TDB_COREDUMPRQ; - td->td_coredump = NULL; + td->td_dbgflags &= ~TDB_COREDUMPREQ; + td->td_remotereq = NULL; wakeup(p); } @@ -2721,7 +2721,7 @@ stopme: td->td_dbgflags |= TDB_SSWITCH; thread_suspend_switch(td, p); td->td_dbgflags &= ~TDB_SSWITCH; - if ((td->td_dbgflags & TDB_COREDUMPRQ) != 0) { + if ((td->td_dbgflags & TDB_COREDUMPREQ) != 0) { PROC_SUNLOCK(p); ptrace_coredump(td); PROC_SLOCK(p); diff --git a/sys/kern/sys_process.c b/sys/kern/sys_process.c index 2876283ce388..b8f5fda8ade3 100644 --- a/sys/kern/sys_process.c +++ b/sys/kern/sys_process.c @@ -1561,7 +1561,7 @@ kern_ptrace(struct thread *td, int req, pid_t pid, void *addr, int data) error = EBUSY; goto coredump_cleanup_locked; } - KASSERT((td2->td_dbgflags & TDB_COREDUMPRQ) == 0, + KASSERT((td2->td_dbgflags & TDB_COREDUMPREQ) == 0, ("proc %d tid %d req coredump", p->p_pid, td2->td_tid)); tcq->tc_vp = fp->f_vnode; @@ -1571,10 +1571,10 @@ kern_ptrace(struct thread *td, int req, pid_t pid, void *addr, int data) tcq->tc_flags |= SVC_NOCOMPRESS; if ((pc->pc_flags & PC_ALL) != 0) tcq->tc_flags |= SVC_ALL; - td2->td_coredump = tcq; - td2->td_dbgflags |= TDB_COREDUMPRQ; + td2->td_remotereq = tcq; + td2->td_dbgflags |= TDB_COREDUMPREQ; thread_run_flash(td2); - while ((td2->td_dbgflags & TDB_COREDUMPRQ) != 0) + while ((td2->td_dbgflags & TDB_COREDUMPREQ) != 0) msleep(p, &p->p_mtx, PPAUSE, "crdmp", 0); error = tcq->tc_error; coredump_cleanup_locked: diff --git a/sys/sys/proc.h b/sys/sys/proc.h index cd1b530095e9..861f81232927 100644 --- a/sys/sys/proc.h +++ b/sys/sys/proc.h @@ -376,7 +376,7 @@ struct thread { int td_oncpu; /* (t) Which cpu we are on. */ void *td_lkpi_task; /* LinuxKPI task struct pointer */ int td_pmcpend; - void *td_coredump; /* (c) coredump request. */ + void *td_remotereq; /* (c) dbg remote request. */ off_t td_ktr_io_lim; /* (k) limit for ktrace file size */ #ifdef EPOCH_TRACE SLIST_HEAD(, epoch_tracker) td_epochs; @@ -487,7 +487,7 @@ do { \ #define TDB_FSTP 0x00001000 /* The thread is PT_ATTACH leader */ #define TDB_STEP 0x00002000 /* (x86) PSL_T set for PT_STEP */ #define TDB_SSWITCH 0x00004000 /* Suspended in ptracestop */ -#define TDB_COREDUMPRQ 0x00008000 /* Coredump request */ +#define TDB_COREDUMPREQ 0x00008000 /* Coredump request */ /* * "Private" flags kept in td_pflags: From nobody Fri Jan 20 03:23:42 2023 X-Original-To: dev-commits-src-branches@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 4NylFq15TGz30vnX; Fri, 20 Jan 2023 03:23:43 +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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4NylFp6TNqz3ns8; Fri, 20 Jan 2023 03:23:42 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1674185022; 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=/2YeHGQMdrj8Br8+dcaw8EkLvcrZpCMiXazZBlXx0cs=; b=giBb9ikHynHvu5LcwVBLvFP6E73os3WDGdDC8IEIq5g1gPTbpoBjeNhzEXlwP6mcS9p0w4 xwC+WGUmHsxuZB8F2A9j3fMGy8Ou623SGjFdNwIpoRZEnOhAU+Zxsltugn0qxwLGyTwsu7 3Mq4IzlZHIuuGnViaeJP/K8oLL/IOpFdIVS5GeUEaO0camyIRS8fTHzNszCq2Ys9erq7MZ P2lHoRByRmzYhg5xSL4tAOB71MoV1KeSG0E3L7LeATJP7pVdUho+BGYwobMsZgafWKXhaI MFDc906yBml8sRAu6jiogEbl16HywHPadcHetzEpJosuk1HvLUshU8SDXrlL9A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1674185022; 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=/2YeHGQMdrj8Br8+dcaw8EkLvcrZpCMiXazZBlXx0cs=; b=ag0+e5i2qm1mwHDUi5EJmL3yL7fFKK27W3japfsPk/3xt1d8ibC52h7MKPnZZUJYi2ewdO 0J2JJqNr7uifdVVbCBsxS2fbere8EFi1LunOJrots/c63AD34aeBhU8t8KhwNKaJHh+ba/ B1dR/yjlRoM4Lbqkllm3aUDQwLd5epDfNpP3TwHkwKNtvbP3KWDQidLHGdS6RrZUGX72oK fvqhauWInvRUjCTJYIRt0/3eOYMQ3icS4MZNIlQ4VW/6YszpJ52wXpsHgmheTNyPCbmaoW wmNiFyiLUaDz5LVqXbUdC9U8EGrfekznc8CJrLtk/cthfNpm4H0U3e1E3IIhqQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1674185022; a=rsa-sha256; cv=none; b=Duk2um72oQMisYXeVXEsM0wLxFNdM8xoYlslYvatrm9oPIPRE2SPKKrVfw+mKkUwKW/v70 /hiYhJy4d+Bf+fDiHawGAxWY72rkxLiZ4vEhBCc1ZLr2fKsRoUHIyzfkmE/nUXYJ63b4W3 9D1AHhFUD05s2kjUYDODYG/GDQQBr/M8ZiEafgTr/IIPmx967I/ph8uXSQNEikQGbM/YGu qgR9np9VhSpmnKQ+MVkalZZom2XvL1utxM5zpsBPI0R5N+CpjHH8CGj69BEwM2BjXieTHG WhY/2C3p5crkLew1Kold/rc6voAFHKnILyoqwaAJWzQVRuxyka3Hd4Oc6Ob3Qw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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 did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4NylFp5W1SzG9L; Fri, 20 Jan 2023 03:23:42 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 30K3NgYT042534; Fri, 20 Jan 2023 03:23:42 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 30K3NgHW042533; Fri, 20 Jan 2023 03:23:42 GMT (envelope-from git) Date: Fri, 20 Jan 2023 03:23:42 GMT Message-Id: <202301200323.30K3NgHW042533@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Konstantin Belousov Subject: git: a0cfea8c38d6 - stable/13 - Add a thread debugging flag TDB_BOUNDARY List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@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/13 X-Git-Reftype: branch X-Git-Commit: a0cfea8c38d64bddd114804507e5f5a05892b2ca Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=a0cfea8c38d64bddd114804507e5f5a05892b2ca commit a0cfea8c38d64bddd114804507e5f5a05892b2ca Author: Konstantin Belousov AuthorDate: 2022-12-01 00:29:35 +0000 Commit: Konstantin Belousov CommitDate: 2023-01-20 03:20:40 +0000 Add a thread debugging flag TDB_BOUNDARY Tested by: pho (cherry picked from commit f0592b3c8dd8e172f0e7165c11371108d4d8838d) --- sys/kern/subr_syscall.c | 11 ++++++++--- sys/kern/subr_trap.c | 5 ++++- sys/sys/proc.h | 3 ++- 3 files changed, 14 insertions(+), 5 deletions(-) diff --git a/sys/kern/subr_syscall.c b/sys/kern/subr_syscall.c index 8507c5393c01..a61003ec7203 100644 --- a/sys/kern/subr_syscall.c +++ b/sys/kern/subr_syscall.c @@ -73,6 +73,7 @@ syscallenter(struct thread *td) traced = (p->p_flag & P_TRACED) != 0; if (__predict_false(traced || td->td_dbgflags & TDB_USERWR)) { PROC_LOCK(p); + MPASS((td->td_dbgflags & TDB_BOUNDARY) == 0); td->td_dbgflags &= ~TDB_USERWR; if (traced) td->td_dbgflags |= TDB_SCE; @@ -201,7 +202,7 @@ syscallenter(struct thread *td) td->td_retval[1]); if (__predict_false(traced)) { PROC_LOCK(p); - td->td_dbgflags &= ~TDB_SCE; + td->td_dbgflags &= ~(TDB_SCE | TDB_BOUNDARY); PROC_UNLOCK(p); } (p->p_sysent->sv_set_syscall_retval)(td, error); @@ -281,9 +282,13 @@ syscallret(struct thread *td) */ if (traced && ((td->td_dbgflags & (TDB_FORK | TDB_EXEC)) != 0 || - (p->p_ptevents & PTRACE_SCX) != 0)) + (p->p_ptevents & PTRACE_SCX) != 0)) { + MPASS((td->td_dbgflags & TDB_BOUNDARY) == 0); + td->td_dbgflags |= TDB_BOUNDARY; ptracestop(td, SIGTRAP, NULL); - td->td_dbgflags &= ~(TDB_SCX | TDB_EXEC | TDB_FORK); + } + td->td_dbgflags &= ~(TDB_SCX | TDB_EXEC | TDB_FORK | + TDB_BOUNDARY); PROC_UNLOCK(p); } diff --git a/sys/kern/subr_trap.c b/sys/kern/subr_trap.c index c2c27a4d40cb..be5041fe516f 100644 --- a/sys/kern/subr_trap.c +++ b/sys/kern/subr_trap.c @@ -214,7 +214,7 @@ ast(struct trapframe *framep) { struct thread *td; struct proc *p; - int flags, sig; + int flags, old_boundary, sig; bool resched_sigs; td = curthread; @@ -330,12 +330,15 @@ ast(struct trapframe *framep) !SIGISEMPTY(p->p_siglist)) { sigfastblock_fetch(td); PROC_LOCK(p); + old_boundary = ~TDB_BOUNDARY | (td->td_dbgflags & TDB_BOUNDARY); + td->td_dbgflags |= TDB_BOUNDARY; mtx_lock(&p->p_sigacts->ps_mtx); while ((sig = cursig(td)) != 0) { KASSERT(sig >= 0, ("sig %d", sig)); postsig(sig); } mtx_unlock(&p->p_sigacts->ps_mtx); + td->td_dbgflags &= old_boundary; PROC_UNLOCK(p); resched_sigs = true; } else { diff --git a/sys/sys/proc.h b/sys/sys/proc.h index 861f81232927..4ba7522ab5f2 100644 --- a/sys/sys/proc.h +++ b/sys/sys/proc.h @@ -487,7 +487,8 @@ do { \ #define TDB_FSTP 0x00001000 /* The thread is PT_ATTACH leader */ #define TDB_STEP 0x00002000 /* (x86) PSL_T set for PT_STEP */ #define TDB_SSWITCH 0x00004000 /* Suspended in ptracestop */ -#define TDB_COREDUMPREQ 0x00008000 /* Coredump request */ +#define TDB_BOUNDARY 0x00008000 /* ptracestop() at boundary */ +#define TDB_COREDUMPREQ 0x00010000 /* Coredump request */ /* * "Private" flags kept in td_pflags: From nobody Fri Jan 20 03:23:43 2023 X-Original-To: dev-commits-src-branches@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 4NylFr1Qvhz30vfx; Fri, 20 Jan 2023 03:23:44 +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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4NylFr0tg4z3nf4; Fri, 20 Jan 2023 03:23:44 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1674185024; 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=LZ7z9UR6Nv1z8upoOAy9ArYV6Fgkopy6KynjWDfhZmo=; b=PvPR/SliBKzBSHbJjNH46NsQ19Yl5RvB9/2LUMLvuHcH/dumBEgi1EkNCwtvtHD+9WdjTH IrcAZRgr6ncMAKiBZxJUDGEQKJFMcf2F4ImE5pxShPDPyM+BA1unuRXHWBKLNXFD0AHc+6 vxjd8YIrIlY0Hfk8gUI9uKTEAWAl8j4wMJxlgw2jf1EWKgBdyQRXz8zNIykv2RgPE7k8jn QhJvpuL87H0vdpkBkuRaHqxS7Sv353Fqn2vi1GQTHowpLcqcVW0HD/y7EkTkIoy3PGGKxJ 2mTcsQQk7ZMx4oe3OPvZSAbTX7mubqkBQ8dcm0ryGLNv52pvLcHYrNZHjScyRg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1674185024; 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=LZ7z9UR6Nv1z8upoOAy9ArYV6Fgkopy6KynjWDfhZmo=; b=LqGz0pPkGw1BQYOfBtwD4iCZT9Zpo7re2XgXEs8wis4EcXY13ukAnKZhYIqYQYvBZ9Q1+S zJsNfYfgReARfdyJ9UaD/nrxbt7shFGm4ImVEvwh/yl/nmkAQoau1CbfN2W+OFeeOr6zY6 u/ESUVfNZe9zfLhjH5k51N2pgnRl1lTsSLSo7/2tn9Ia+gGHx5tYrLkcKefSx55k/acRkR +cgya30fsnF0YMHdTM33LedYHH59pzEYVToUpu+zdF4M3BRvTWIgYt44zexMAdn220MOEc tc43CWnpT7lSvE+Hu+xnUQSAAsG1ls9f3nA3Z6rR7ZDFy+A4dun02FaFTfimOQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1674185024; a=rsa-sha256; cv=none; b=jSXZhZsYOyAJJjyqTqrL9CuWuzvyqF0pHUI9+M/PMMM/Hljph7wnOjuFD0MS69WlkXTLnE w12V7gNtnGzEhmA92bLzzCTd9SgfDtvA+PZRZnezPxOGWh3g9RdbUZbv9/7BSCh6Gt/jlJ AQwYoYM72L7Lfk/mHhdYhSMUSzEkfseoW+28/ErgS5s0elLfNlKFPfCMJIHpPZRHRH8Way COPR/cw+3+CDLQaVrdsvRAX91Z9vKZhCliGQWRajR5gL1IpmC50qAOmgdvgxXe2uLtNSzy Ii14dsIoRMtLzbSUMKS3t9avTqZ+B1F2jGRIVXmFSw053ef+TcTniL+MVVaSHw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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 did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4NylFq6xx4zFtq; Fri, 20 Jan 2023 03:23:43 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 30K3NhXf042562; Fri, 20 Jan 2023 03:23:43 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 30K3NhHP042561; Fri, 20 Jan 2023 03:23:43 GMT (envelope-from git) Date: Fri, 20 Jan 2023 03:23:43 GMT Message-Id: <202301200323.30K3NhHP042561@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Konstantin Belousov Subject: git: 7616d35f91cb - stable/13 - ptrace(2): explain how to select specific thread to operate on List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@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/13 X-Git-Reftype: branch X-Git-Commit: 7616d35f91cb0d4f1a741fb385078581096f6953 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=7616d35f91cb0d4f1a741fb385078581096f6953 commit 7616d35f91cb0d4f1a741fb385078581096f6953 Author: Konstantin Belousov AuthorDate: 2022-12-05 22:43:18 +0000 Commit: Konstantin Belousov CommitDate: 2023-01-20 03:20:45 +0000 ptrace(2): explain how to select specific thread to operate on Tested by: pho (cherry picked from commit 0e07241c372d7352537a4a786c96a580a721be3c) --- lib/libc/sys/ptrace.2 | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/lib/libc/sys/ptrace.2 b/lib/libc/sys/ptrace.2 index 74bf646efd3c..b107dcef97ae 100644 --- a/lib/libc/sys/ptrace.2 +++ b/lib/libc/sys/ptrace.2 @@ -122,6 +122,25 @@ Kernel drops any signals queued to the traced children, which could be either generated by not yet consumed debug events, or sent by other means, the later should not be done anyway. +.Sh SELECTING THE TARGET +The +.Fa pid +argument of the call specifies the target on which to perform +the requested operation. +For operations affecting the global process state, the process ID +is typically passed there. +Similarly, for operations affecting only a thread, the thread ID +needs to be passed. +.Pp +Still, for global operations, the ID of any thread can be used as the +target, and system will perform the request on the process owning +that thread. +If a thread operation got the process ID as +.Fa pid , +the system randomly selects a thread from among the threads owned +by the process. +For single-threaded processes there is no difference between specifying +process or thread ID as the target. .Sh DISABLING PTRACE The .Nm From nobody Fri Jan 20 03:23:45 2023 X-Original-To: dev-commits-src-branches@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 4NylFs2t6Zz30vcf; Fri, 20 Jan 2023 03:23:45 +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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4NylFs1zJCz3nvc; Fri, 20 Jan 2023 03:23:45 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1674185025; 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=2hgGZ7EAwCRWYF97FGhKGdgyrb9v6WtPldtX4eN5a3Y=; b=PPIIJZUtz4wjXn0mibjDAiR4qJFywTMmz5Vn9dPVO515+bYU/2G2sMfhOlk+kYmhuqEsm9 vXLVmC+TmhKoer92JOU90NzQXR1PslMKMUnOUsYYHomwZCMMWp0t45//jC8rpKdsg50Qom XkESQsuK2jaTbFU6XVqcRcapWHFZmR7FZAn6AdpO91Gm9PPRDFYdQN9W0VPvXLyzN+dW/m Rn3KgfRsFoxN755XfDQbbAuprpLRCCpYd25OG6ZAvs/2UrbET9KlTmc/TTW7MS20n8gB20 4/FpS+8iiXQAJgSqsRgTjY7FibN8aGqB9l4kWQFcl97rtM19Xy3NMRO/V+/Pwg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1674185025; 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=2hgGZ7EAwCRWYF97FGhKGdgyrb9v6WtPldtX4eN5a3Y=; b=XoIjSq6moppo/HQEG9fZ0lna6+FOWr80UXsq+rX0KTG8ShTvGs44OMeSq1XzmjI4Ysvp53 cUIS64AK20wfet/qR1tlveFPwSw9UAwRKEQHLBMRRpPgonPWxAyw7q3ldZfKJPs9ocjJmA ug4i8ZzAiaYtQpQvK1NSPb0V7afguvmCrsZU/ly+Pf4Js6TvAYGdtyynJYGhbIG4PY1hiE r9M3D3CoUYNNtN4oSvOepY9AH6nMiW6LOb+GHh0hvEVhHZnhjB1J9w8DwP7y61a3pWWCIU GW86S69uL+EZZfIDo+IwuJitsPXMATg2a+Mi67ThZLeXw/KGNv8o/TXqXYvxQA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1674185025; a=rsa-sha256; cv=none; b=A5PcJHs8FGM6uoyCMXqjeZM4YX7WQWjON98sj9QKtib5ZArMWO/RdYpLXyq0mhz4Z0ogtj r0CDaKIcE8n0W3UuQYokATLlFB1pFe6yGeXpn9DiYJQ2zAbb+r6qoHYbb052FrmMHnUv9h AyS6Xr9Jcx+snpsaiAh8gmfKyq1lpznPwY9/Ne2Ic+Uqm5EX3oezP9EsAiVUTYOfi9f72M fmyQF/VLiicf4SIaq66MieGXK5EGaZZ5/BOor0LpvLmgudDRTl5L5iDm51AGtQF78yPZZU g2sIQTfpn5T83BFkcnFJ0PinArWrMM+U8tcDYRXMsS1+T/3nE532H2ECcEHt5w== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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 did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4NylFs10bFzFf2; Fri, 20 Jan 2023 03:23:45 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 30K3Njh2042586; Fri, 20 Jan 2023 03:23:45 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 30K3NjGD042585; Fri, 20 Jan 2023 03:23:45 GMT (envelope-from git) Date: Fri, 20 Jan 2023 03:23:45 GMT Message-Id: <202301200323.30K3NjGD042585@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Konstantin Belousov Subject: git: aaf570313289 - stable/13 - ptrace(2): add PT_SC_REMOTE remote syscall request List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@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/13 X-Git-Reftype: branch X-Git-Commit: aaf570313289aad6f96eb49d3b19663d85512c82 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=aaf570313289aad6f96eb49d3b19663d85512c82 commit aaf570313289aad6f96eb49d3b19663d85512c82 Author: Konstantin Belousov AuthorDate: 2022-11-30 08:45:52 +0000 Commit: Konstantin Belousov CommitDate: 2023-01-20 03:20:53 +0000 ptrace(2): add PT_SC_REMOTE remote syscall request Tested by: pho (cherry picked from commit 140ceb5d956bb8795a77c23d3fd5ef047b0f3c68) --- sys/compat/freebsd32/freebsd32.h | 6 ++ sys/compat/freebsd32/freebsd32_misc.c | 32 ++++++++ sys/kern/kern_sig.c | 142 +++++++++++++++++++++++++++++----- sys/kern/sys_process.c | 74 +++++++++++++++++- sys/sys/proc.h | 1 + sys/sys/ptrace.h | 16 ++++ 6 files changed, 249 insertions(+), 22 deletions(-) diff --git a/sys/compat/freebsd32/freebsd32.h b/sys/compat/freebsd32/freebsd32.h index 8d5eae2817f3..851fa248b6f2 100644 --- a/sys/compat/freebsd32/freebsd32.h +++ b/sys/compat/freebsd32/freebsd32.h @@ -440,5 +440,11 @@ struct ptrace_coredump32 { uint32_t pc_limit1, pc_limit2; }; +struct ptrace_sc_remote32 { + struct ptrace_sc_ret32 pscr_ret; + u_int pscr_syscall; + u_int pscr_nargs; + uint32_t pscr_args; +}; #endif /* !_COMPAT_FREEBSD32_FREEBSD32_H_ */ diff --git a/sys/compat/freebsd32/freebsd32_misc.c b/sys/compat/freebsd32/freebsd32_misc.c index 269286ab90dc..da49b4b7b415 100644 --- a/sys/compat/freebsd32/freebsd32_misc.c +++ b/sys/compat/freebsd32/freebsd32_misc.c @@ -915,6 +915,7 @@ freebsd32_ptrace(struct thread *td, struct freebsd32_ptrace_args *uap) struct ptrace_lwpinfo pl; struct ptrace_vm_entry pve; struct ptrace_coredump pc; + struct ptrace_sc_remote sr; struct dbreg32 dbreg; struct fpreg32 fpreg; struct reg32 reg; @@ -928,10 +929,13 @@ freebsd32_ptrace(struct thread *td, struct freebsd32_ptrace_args *uap) struct ptrace_lwpinfo32 pl; struct ptrace_vm_entry32 pve; struct ptrace_coredump32 pc; + struct ptrace_sc_remote32 sr; uint32_t args[nitems(td->td_sa.args)]; struct ptrace_sc_ret32 psr; struct iovec32 vec; } r32; + register_t pscr_args[nitems(td->td_sa.args)]; + u_int pscr_args32[nitems(td->td_sa.args)]; void *addr; int data, error, i; @@ -1030,6 +1034,28 @@ freebsd32_ptrace(struct thread *td, struct freebsd32_ptrace_args *uap) r.pc.pc_limit = PAIR32TO64(off_t, r32.pc.pc_limit); data = sizeof(r.pc); break; + case PT_SC_REMOTE: + if (uap->data != sizeof(r32.sr)) { + error = EINVAL; + break; + } + error = copyin(uap->addr, &r32.sr, uap->data); + if (error != 0) + break; + CP(r32.sr, r.sr, pscr_syscall); + CP(r32.sr, r.sr, pscr_nargs); + if (r.sr.pscr_nargs > nitems(td->td_sa.args)) { + error = EINVAL; + break; + } + error = copyin(PTRIN(r32.sr.pscr_args), pscr_args32, + sizeof(u_int) * r32.sr.pscr_nargs); + if (error != 0) + break; + for (i = 0; i < r32.sr.pscr_nargs; i++) + pscr_args[i] = pscr_args32[i]; + r.sr.pscr_args = pscr_args; + break; default: addr = uap->addr; break; @@ -1090,6 +1116,12 @@ freebsd32_ptrace(struct thread *td, struct freebsd32_ptrace_args *uap) error = copyout(&r32.psr, uap->addr, MIN(uap->data, sizeof(r32.psr))); break; + case PT_SC_REMOTE: + ptrace_sc_ret_to32(&r.sr.pscr_ret, &r32.sr.pscr_ret); + error = copyout(&r32.sr.pscr_ret, uap->addr + + offsetof(struct ptrace_sc_remote32, pscr_ret), + sizeof(r32.psr)); + break; } return (error); diff --git a/sys/kern/kern_sig.c b/sys/kern/kern_sig.c index df9ca8076a64..970c756d4a8e 100644 --- a/sys/kern/kern_sig.c +++ b/sys/kern/kern_sig.c @@ -39,9 +39,11 @@ #include __FBSDID("$FreeBSD$"); +#include "opt_capsicum.h" #include "opt_ktrace.h" #include +#include #include #include #include @@ -75,6 +77,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include #include @@ -82,6 +85,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include #include @@ -2556,37 +2560,128 @@ out: } static void -ptrace_coredump(struct thread *td) +ptrace_coredumpreq(struct thread *td, struct proc *p, + struct thr_coredump_req *tcq) { - struct proc *p; - struct thr_coredump_req *tcq; void *rl_cookie; - MPASS(td == curthread); - p = td->td_proc; - PROC_LOCK_ASSERT(p, MA_OWNED); - if ((td->td_dbgflags & TDB_COREDUMPREQ) == 0) - return; - KASSERT((p->p_flag & P_STOPPED_TRACE) != 0, ("not stopped")); - - tcq = td->td_remotereq; - KASSERT(tcq != NULL, ("td_remotereq is NULL")); - if (p->p_sysent->sv_coredump == NULL) { tcq->tc_error = ENOSYS; - goto wake; + return; } - PROC_UNLOCK(p); rl_cookie = vn_rangelock_wlock(tcq->tc_vp, 0, OFF_MAX); - tcq->tc_error = p->p_sysent->sv_coredump(td, tcq->tc_vp, tcq->tc_limit, tcq->tc_flags); - vn_rangelock_unlock(tcq->tc_vp, rl_cookie); +} + +static void +ptrace_syscallreq(struct thread *td, struct proc *p, + struct thr_syscall_req *tsr) +{ + struct sysentvec *sv; + struct sysent *se; + register_t rv_saved[2]; + int error, nerror; + int sc; + bool audited, sy_thr_static; + + sv = p->p_sysent; + if (sv->sv_table == NULL || sv->sv_size < tsr->ts_sa.code) { + tsr->ts_ret.sr_error = ENOSYS; + return; + } + + sc = tsr->ts_sa.code; + if (sc == SYS_syscall || sc == SYS___syscall) { + memmove(&tsr->ts_sa.args[0], &tsr->ts_sa.args[1], + sizeof(register_t) * (tsr->ts_nargs - 1)); + } + + tsr->ts_sa.callp = se = &sv->sv_table[sc]; + + VM_CNT_INC(v_syscall); + td->td_pticks = 0; + if (__predict_false(td->td_cowgen != atomic_load_int( + &td->td_proc->p_cowgen))) + thread_cow_update(td); + +#ifdef CAPABILITY_MODE + if (IN_CAPABILITY_MODE(td) && (se->sy_flags & SYF_CAPENABLED) == 0) { + tsr->ts_ret.sr_error = ECAPMODE; + return; + } +#endif + + sy_thr_static = (se->sy_thrcnt & SY_THR_STATIC) != 0; + audited = AUDIT_SYSCALL_ENTER(tsr->ts_syscall, td) != 0; + + if (!sy_thr_static) { + error = syscall_thread_enter(td, se); + if (error != 0) { + tsr->ts_ret.sr_error = error; + return; + } + } + + rv_saved[0] = td->td_retval[0]; + rv_saved[1] = td->td_retval[1]; + nerror = td->td_errno; + td->td_retval[0] = 0; + td->td_retval[1] = 0; + +#ifdef KDTRACE_HOOKS + if (se->sy_entry != 0) + (*systrace_probe_func)(&tsr->ts_sa, SYSTRACE_ENTRY, 0); +#endif + tsr->ts_ret.sr_error = se->sy_call(td, tsr->ts_sa.args); +#ifdef KDTRACE_HOOKS + if (se->sy_return != 0) + (*systrace_probe_func)(&tsr->ts_sa, SYSTRACE_RETURN, + tsr->ts_ret->sr_error != 0 ? -1 : td->td_retval[0]); +#endif + + tsr->ts_ret.sr_retval[0] = td->td_retval[0]; + tsr->ts_ret.sr_retval[1] = td->td_retval[1]; + td->td_retval[0] = rv_saved[0]; + td->td_retval[1] = rv_saved[1]; + td->td_errno = nerror; + + if (audited) + AUDIT_SYSCALL_EXIT(error, td); + if (!sy_thr_static) + syscall_thread_exit(td, se); +} + +static void +ptrace_remotereq(struct thread *td, int flag) +{ + struct proc *p; + + MPASS(td == curthread); + p = td->td_proc; + PROC_LOCK_ASSERT(p, MA_OWNED); + if ((td->td_dbgflags & flag) == 0) + return; + KASSERT((p->p_flag & P_STOPPED_TRACE) != 0, ("not stopped")); + KASSERT(td->td_remotereq != NULL, ("td_remotereq is NULL")); + + PROC_UNLOCK(p); + switch (flag) { + case TDB_COREDUMPREQ: + ptrace_coredumpreq(td, p, td->td_remotereq); + break; + case TDB_SCREMOTEREQ: + ptrace_syscallreq(td, p, td->td_remotereq); + break; + default: + __unreachable(); + } PROC_LOCK(p); -wake: - td->td_dbgflags &= ~TDB_COREDUMPREQ; + + MPASS((td->td_dbgflags & flag) != 0); + td->td_dbgflags &= ~flag; td->td_remotereq = NULL; wakeup(p); } @@ -2721,9 +2816,14 @@ stopme: td->td_dbgflags |= TDB_SSWITCH; thread_suspend_switch(td, p); td->td_dbgflags &= ~TDB_SSWITCH; - if ((td->td_dbgflags & TDB_COREDUMPREQ) != 0) { + if ((td->td_dbgflags & (TDB_COREDUMPREQ | + TDB_SCREMOTEREQ)) != 0) { + MPASS((td->td_dbgflags & (TDB_COREDUMPREQ | + TDB_SCREMOTEREQ)) != + (TDB_COREDUMPREQ | TDB_SCREMOTEREQ)); PROC_SUNLOCK(p); - ptrace_coredump(td); + ptrace_remotereq(td, td->td_dbgflags & + (TDB_COREDUMPREQ | TDB_SCREMOTEREQ)); PROC_SLOCK(p); goto stopme; } diff --git a/sys/kern/sys_process.c b/sys/kern/sys_process.c index b8f5fda8ade3..72e631c70e59 100644 --- a/sys/kern/sys_process.c +++ b/sys/kern/sys_process.c @@ -592,6 +592,7 @@ sys_ptrace(struct thread *td, struct ptrace_args *uap) struct ptrace_lwpinfo pl; struct ptrace_vm_entry pve; struct ptrace_coredump pc; + struct ptrace_sc_remote sr; struct dbreg dbreg; struct fpreg fpreg; struct reg reg; @@ -600,6 +601,7 @@ sys_ptrace(struct thread *td, struct ptrace_args *uap) struct ptrace_sc_ret psr; int ptevents; } r; + register_t pscr_args[nitems(td->td_sa.args)]; void *addr; int error; @@ -657,6 +659,24 @@ sys_ptrace(struct thread *td, struct ptrace_args *uap) else error = copyin(uap->addr, &r.pc, uap->data); break; + case PT_SC_REMOTE: + if (uap->data != sizeof(r.sr)) { + error = EINVAL; + break; + } + error = copyin(uap->addr, &r.sr, uap->data); + if (error != 0) + break; + if (r.sr.pscr_nargs > nitems(td->td_sa.args)) { + error = EINVAL; + break; + } + error = copyin(r.sr.pscr_args, pscr_args, + sizeof(u_long) * r.sr.pscr_nargs); + if (error != 0) + break; + r.sr.pscr_args = pscr_args; + break; default: addr = uap->addr; break; @@ -703,6 +723,11 @@ sys_ptrace(struct thread *td, struct ptrace_args *uap) error = copyout(&r.psr, uap->addr, MIN(uap->data, sizeof(r.psr))); break; + case PT_SC_REMOTE: + error = copyout(&r.sr.pscr_ret, uap->addr + + offsetof(struct ptrace_sc_remote, pscr_ret), + sizeof(r.sr.pscr_ret)); + break; } return (error); @@ -812,9 +837,11 @@ kern_ptrace(struct thread *td, int req, pid_t pid, void *addr, int data) struct ptrace_io_desc *piod = NULL; struct ptrace_lwpinfo *pl; struct ptrace_sc_ret *psr; + struct ptrace_sc_remote *pscr; struct file *fp; struct ptrace_coredump *pc; struct thr_coredump_req *tcq; + struct thr_syscall_req *tsr; int error, num, tmp; lwpid_t tid = 0, *buf; #ifdef COMPAT_FREEBSD32 @@ -1561,7 +1588,8 @@ kern_ptrace(struct thread *td, int req, pid_t pid, void *addr, int data) error = EBUSY; goto coredump_cleanup_locked; } - KASSERT((td2->td_dbgflags & TDB_COREDUMPREQ) == 0, + KASSERT((td2->td_dbgflags & (TDB_COREDUMPREQ | + TDB_SCREMOTEREQ)) == 0, ("proc %d tid %d req coredump", p->p_pid, td2->td_tid)); tcq->tc_vp = fp->f_vnode; @@ -1586,6 +1614,50 @@ coredump_cleanup_nofp: PROC_LOCK(p); break; + case PT_SC_REMOTE: + pscr = addr; + CTR2(KTR_PTRACE, "PT_SC_REMOTE: pid %d, syscall %d", + p->p_pid, pscr->pscr_syscall); + if ((td2->td_dbgflags & TDB_BOUNDARY) == 0) { + error = EBUSY; + break; + } + PROC_UNLOCK(p); + MPASS(pscr->pscr_nargs <= nitems(td->td_sa.args)); + + tsr = malloc(sizeof(struct thr_syscall_req), M_TEMP, + M_WAITOK | M_ZERO); + + tsr->ts_sa.code = pscr->pscr_syscall; + tsr->ts_nargs = pscr->pscr_nargs; + memcpy(&tsr->ts_sa.args, pscr->pscr_args, + sizeof(register_t) * tsr->ts_nargs); + + PROC_LOCK(p); + error = proc_can_ptrace(td, p); + if (error != 0) { + free(tsr, M_TEMP); + break; + } + if (td2->td_proc != p) { + free(tsr, M_TEMP); + error = ESRCH; + break; + } + KASSERT((td2->td_dbgflags & (TDB_COREDUMPREQ | + TDB_SCREMOTEREQ)) == 0, + ("proc %d tid %d req coredump", p->p_pid, td2->td_tid)); + + td2->td_remotereq = tsr; + td2->td_dbgflags |= TDB_SCREMOTEREQ; + thread_run_flash(td2); + while ((td2->td_dbgflags & TDB_SCREMOTEREQ) != 0) + msleep(p, &p->p_mtx, PPAUSE, "pscrx", 0); + error = 0; + memcpy(&pscr->pscr_ret, &tsr->ts_ret, sizeof(tsr->ts_ret)); + free(tsr, M_TEMP); + break; + default: #ifdef __HAVE_PTRACE_MACHDEP if (req >= PT_FIRSTMACH) { diff --git a/sys/sys/proc.h b/sys/sys/proc.h index 4ba7522ab5f2..23b8fcfe9bd7 100644 --- a/sys/sys/proc.h +++ b/sys/sys/proc.h @@ -489,6 +489,7 @@ do { \ #define TDB_SSWITCH 0x00004000 /* Suspended in ptracestop */ #define TDB_BOUNDARY 0x00008000 /* ptracestop() at boundary */ #define TDB_COREDUMPREQ 0x00010000 /* Coredump request */ +#define TDB_SCREMOTEREQ 0x00020000 /* Remote syscall request */ /* * "Private" flags kept in td_pflags: diff --git a/sys/sys/ptrace.h b/sys/sys/ptrace.h index 197ac1692dfb..0eecb64bf769 100644 --- a/sys/sys/ptrace.h +++ b/sys/sys/ptrace.h @@ -87,6 +87,7 @@ #define PT_VM_ENTRY 41 /* Get VM map (entry) */ #define PT_GETREGSET 42 /* Get a target register set */ #define PT_SETREGSET 43 /* Set a target register set */ +#define PT_SC_REMOTE 44 /* Execute a syscall */ #define PT_FIRSTMACH 64 /* for machine-specific requests */ #include /* machine-specific requests, if any */ @@ -192,8 +193,17 @@ struct ptrace_coredump { #define PC_COMPRESS 0x00000001 /* Allow compression */ #define PC_ALL 0x00000002 /* Include non-dumpable entries */ +struct ptrace_sc_remote { + struct ptrace_sc_ret pscr_ret; + u_int pscr_syscall; + u_int pscr_nargs; + register_t *pscr_args; +}; + #ifdef _KERNEL +#include + struct thr_coredump_req { struct vnode *tc_vp; /* vnode to write coredump to. */ off_t tc_limit; /* max coredump file size. */ @@ -201,6 +211,12 @@ struct thr_coredump_req { int tc_error; /* request result */ }; +struct thr_syscall_req { + struct ptrace_sc_ret ts_ret; + u_int ts_nargs; + struct syscall_args ts_sa; +}; + int ptrace_set_pc(struct thread *_td, unsigned long _addr); int ptrace_single_step(struct thread *_td); int ptrace_clear_single_step(struct thread *_td); From nobody Fri Jan 20 03:23:46 2023 X-Original-To: dev-commits-src-branches@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 4NylFv14kzz30vrC; Fri, 20 Jan 2023 03:23:47 +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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4NylFt45B4z3njD; Fri, 20 Jan 2023 03:23:46 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1674185026; 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=C0vVx04fdAbUnWEora5S4Mzb6yxq8ph5fAfChjgdHGA=; b=PD1rFBzJMd1Q/D7o9jZe+arTlvNS+8YtrnStPv5YOW5Ej2ShUSisq4RajL7UAh9oVI+nyX Tt+kmVLLrPqIS7bPaK5Hs4ONJzWNlrhRyyP5PXM9Zdfg5vYKvotvZTUHYFcpOTUSqZIWJW xQ08HQTcryIepLF5Ju0YDMXcAKZv52fASRsqYzjjx3edzSWHDWxYxgvzjLRXDdDSt4SaXv cU5oxaY4KzKwSwkTF5DN7uq3hrs+bHHPQJR25NZUZZ5scUnahvN3qAQ74oUfLYijiw77X7 85Msr8nAefI3Lc+/tM1KaDbPCFUYgzj73LYa23MYN9ih2M09fdR4NMXcXjuwCA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1674185026; 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=C0vVx04fdAbUnWEora5S4Mzb6yxq8ph5fAfChjgdHGA=; b=pRHtLI/g4qdeE2bBg6il7y52yY6ZCmPCdixZY7lCu/lwX8DmZ5sU7cYcknZlYFH3LSOByI Bqr82qTi81vGNhYi1bURilWsBWxPR53JCYVozebvuvFj4RSUVRlHAtqPAVuT41CriCADjM +hBuI8XAlqWUy/UrDkMEF3IXUKqIrZQ8vyagk3MSiQvkiJZg9kRlRS30Z6zXmlDQnusBwf DYWREGbzgNgHcOKTksrnovzYvPKunekpEJgZYcuHYVVx48SPU8JSPiHjzCChkXoPpbgdEd 7ppTdCDau8izPjMfRXXJ+yhNMfNO57gkzeDggE27zBFnLVB+3hzPkekk8ldlWA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1674185026; a=rsa-sha256; cv=none; b=OPOa6f+7VbXqeWJZt0fp9H9IXyLPQprl7ZHXDLUt4r5f6hGnjtRqT+6QRSWH3vt3wG8+OP kYBE0vyzKLolfeCHwPEmLoLXkmKctAJlTvg+4TFrslEdp02VBXkthpbQ77AaxHwBEFAm9b J7j93e6sS1hfQCFtLUybpsEPgbSR/wk/y7Ztt6bN0zLKPyKd+oZgbDZ5VsDzpN2LyN+bTf ILvrHPl4XdmaajXtkMxT7JP9S2oy0o00vkvXadx5jUIm2jEq13ha0VWyaQ1YhQdS96G9MH KIhiJricb3B9AE/brcH068uwSkfxks+XMeZoNVjIju1DltY4DvaPvmIhXIAuZA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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 did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4NylFt2CpnzGKf; Fri, 20 Jan 2023 03:23:46 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 30K3NkYF042613; Fri, 20 Jan 2023 03:23:46 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 30K3NkDr042612; Fri, 20 Jan 2023 03:23:46 GMT (envelope-from git) Date: Fri, 20 Jan 2023 03:23:46 GMT Message-Id: <202301200323.30K3NkDr042612@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Konstantin Belousov Subject: git: 287fe4003e2b - stable/13 - Fixes for ptrace_syscallreq() List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@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/13 X-Git-Reftype: branch X-Git-Commit: 287fe4003e2b05bfbbe40996a927a420addded77 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=287fe4003e2b05bfbbe40996a927a420addded77 commit 287fe4003e2b05bfbbe40996a927a420addded77 Author: Konstantin Belousov AuthorDate: 2022-12-22 23:51:34 +0000 Commit: Konstantin Belousov CommitDate: 2023-01-20 03:20:59 +0000 Fixes for ptrace_syscallreq() Tested by: pho (cherry picked from commit 974be51b3f6070f9aae02e115ea6099f90bc9175) --- sys/kern/kern_sig.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/sys/kern/kern_sig.c b/sys/kern/kern_sig.c index 970c756d4a8e..63d73cf7a909 100644 --- a/sys/kern/kern_sig.c +++ b/sys/kern/kern_sig.c @@ -2595,6 +2595,7 @@ ptrace_syscallreq(struct thread *td, struct proc *p, sc = tsr->ts_sa.code; if (sc == SYS_syscall || sc == SYS___syscall) { + sc = tsr->ts_sa.args[0]; memmove(&tsr->ts_sa.args[0], &tsr->ts_sa.args[1], sizeof(register_t) * (tsr->ts_nargs - 1)); } @@ -2615,7 +2616,7 @@ ptrace_syscallreq(struct thread *td, struct proc *p, #endif sy_thr_static = (se->sy_thrcnt & SY_THR_STATIC) != 0; - audited = AUDIT_SYSCALL_ENTER(tsr->ts_syscall, td) != 0; + audited = AUDIT_SYSCALL_ENTER(sc, td) != 0; if (!sy_thr_static) { error = syscall_thread_enter(td, se); @@ -2639,7 +2640,7 @@ ptrace_syscallreq(struct thread *td, struct proc *p, #ifdef KDTRACE_HOOKS if (se->sy_return != 0) (*systrace_probe_func)(&tsr->ts_sa, SYSTRACE_RETURN, - tsr->ts_ret->sr_error != 0 ? -1 : td->td_retval[0]); + tsr->ts_ret.sr_error != 0 ? -1 : td->td_retval[0]); #endif tsr->ts_ret.sr_retval[0] = td->td_retval[0]; From nobody Fri Jan 20 03:23:47 2023 X-Original-To: dev-commits-src-branches@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 4NylFw0HFFz30vnf; Fri, 20 Jan 2023 03:23:48 +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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4NylFv4Frfz3nqm; Fri, 20 Jan 2023 03:23:47 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1674185027; 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=GZhfMgzpoav5zvP0OnjBHgj1bSrS/bV6OTc9R/+F8dM=; b=c6v7s058PDtKnGwA4F0lUp0ZIcbpNuMU+LT53W+CkaIP44SajN2CPP3mklFU8RZIDq7L8G 5c48Hnlf/dor2zv32qJIdTaO0uH9tEMqocMFFh7bLlw0x3agePLT9HMuZfr2C743/24LTV NBRjmWnvq+0dXsiHIHNMXWCgXKIjaGqFn/Y49tVdBKPaLyObX8mlD9xXLRR4u8BWm71CXR 5JwcxpHseK7jJlsz0+j/qiZ223lstFQBI/qChWqmME6xWShBEkji/m7fQ519AwHQLkoXul cn3p3S76lDXpbPoyajmR9svGSli840E2fg/c+2jQ5xyQlVeUDliDD+kL/X1qIA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1674185027; 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=GZhfMgzpoav5zvP0OnjBHgj1bSrS/bV6OTc9R/+F8dM=; b=qpXqn0chfU6/hoEZLkMR12kbiGjGIgos0h/K3kfGVVoH/WrTl3uvuQv0y8asPN7aa7qWLn ZSNGRWrUlL8pBcs3SV5HQwtJIHi01LTJSiOfcGaQtX9uSu6uwcxZYG/2XOe5S2q6TG7rid F3deWCq9C7kxmSN53cLqrBInezsJM5fJ7j42CbF1jbskgcxR4UxiPAfFMSkztchAErjXLe z+Sarz5phbHd+9LtR/A5uVOiNfZMIO7raDSfuv/t/QkpQw44DSTbCy5XkB8WPBWu7CTwxn XWX7UrM8aQ9/qDqrnm7QplQ3WQkogYOup0+bGEKtzkGCvlr/hUKB5Mi6fAMpjQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1674185027; a=rsa-sha256; cv=none; b=i2fWiVUOvgMy5KYwVylt02/mCgYBAvOrFNTpjI0rCxw3d6P5ltGBIAw3mV7hLiVKrW/JSz 0MeHowf+NOp6yrdjVATuhBlRFzUaTNFhjwWR1iHJagCHaKAnemxOhKYy8Ldh+AdNtSVeGo Do+DOONifLD11CZiWd3i9mmD9AwLmXrGI9U92NGhPm0kvLehevmbEBs34me4JtuRuplZT+ f1NVT/r96FAARLvUzzA0EPdyo74rExpoTcan3lhT+OdR+QXPv0sj+JqbzkR8iJjxyhr82k 5vx02InimEqCqZys1g9ojz2AzhHlkDMoaHSIBj/EdzactDQu7Q9FgC6Lxqh1+A== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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 did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4NylFv3BSKzGDQ; Fri, 20 Jan 2023 03:23:47 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 30K3NlPX042644; Fri, 20 Jan 2023 03:23:47 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 30K3NlNE042643; Fri, 20 Jan 2023 03:23:47 GMT (envelope-from git) Date: Fri, 20 Jan 2023 03:23:47 GMT Message-Id: <202301200323.30K3NlNE042643@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Konstantin Belousov Subject: git: efde0099aacd - stable/13 - ptrace(2): document PT_SC_REMOTE List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@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/13 X-Git-Reftype: branch X-Git-Commit: efde0099aacdb14bfcb8eb77498ccf2800219b78 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=efde0099aacdb14bfcb8eb77498ccf2800219b78 commit efde0099aacdb14bfcb8eb77498ccf2800219b78 Author: Konstantin Belousov AuthorDate: 2022-12-02 03:00:08 +0000 Commit: Konstantin Belousov CommitDate: 2023-01-20 03:21:11 +0000 ptrace(2): document PT_SC_REMOTE Tested by: pho (cherry picked from commit a98613f2389227effeb9d86e47e53ea01ecddfe5) --- lib/libc/sys/ptrace.2 | 73 +++++++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 68 insertions(+), 5 deletions(-) diff --git a/lib/libc/sys/ptrace.2 b/lib/libc/sys/ptrace.2 index b107dcef97ae..a5e67c745422 100644 --- a/lib/libc/sys/ptrace.2 +++ b/lib/libc/sys/ptrace.2 @@ -976,10 +976,44 @@ The size of .Vt "struct ptrace_coredump" must be passed in .Fa data . -.Pp -The process must be stopped before dumping core. +.It Dv PT_SC_REMOTE +Request to execute a syscall in the context of the traced process, +in the specified thread. +The +.Fa addr +argument must point to the +.Vt "struct ptrace_sc_remote" , +which describes the requested syscall and its arguments, and receives +the result. +The size of +.Vt "struct ptrace_sc_remote" +must be passed in +.Fa data. +.Bd -literal +struct ptrace_sc_remote { + struct ptrace_sc_ret pscr_ret; + u_int pscr_syscall; + u_int pscr_nargs; + u_long *pscr_args; +}; +.Ed +The +.Dv pscr_syscall +contains the syscall number to execute, the +.Dv pscr_nargs +is the number of supplied arguments, which are supplied in the +.Dv pscr_args +array. +Result of the execution is returned in the +.Dv pscr_ret +member. +Note that the request and its result do not affect the returned value from +the currently executed syscall, if any. +.El +.Sh PT_COREDUMP and PT_SC_REMOTE usage +The process must be stopped before dumping or initiating a remote system call. A single thread in the target process is temporarily unsuspended -in kernel to write the dump. +in the kernel to perform the action. If the .Nm call fails before a thread is unsuspended, there is no event to @@ -996,9 +1030,38 @@ an error occurred, it is recommended to unconditionally perform with .Dv WNOHANG flag after -.Dv PT_COREDUMP , +.Dv PT_COREDUMP +and +.Dv PT_SC_REMOTE , and silently accept zero result from it. -.El +.Pp +For +.Dv PT_SC_REMOTE , +the selected thread must be stopped in the safe place, which is +currently defined as a syscall exit, or a return from kernel to +user mode (basically, a signal handler call place). +Kernel returns +.Er EBUSY +status if attempt is made to execute remote syscall at unsafe stop. +.Pp +Note that neither +.Dv kern.trap_enotcap +sysctl setting, nor the corresponding +.Xr procctl 2 +flag +.Dv PROC_TRAPCAP_CTL_ENABLE +are obeyed during the execution of the syscall by +.Dv PT_SC_REMOTE . +In other words, +.Dv SIGTRAP +signal is not sent to a process executing in capability mode, +which violated a mode access restriction. +.Pp +Note that due to the mode of execution for the remote syscall, in +particular, the setting where only one thread is allowed to run, +the syscall might block on resources owned by suspended threads. +This might result in the target process deadlock. +In this situation, the only way out is to kill the target. .Sh ARM MACHINE-SPECIFIC REQUESTS .Bl -tag -width "Dv PT_SETVFPREGS" .It Dv PT_GETVFPREGS From nobody Fri Jan 20 03:23:48 2023 X-Original-To: dev-commits-src-branches@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 4NylFx0mL9z30vg4; Fri, 20 Jan 2023 03:23:49 +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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4NylFw5zYnz3nyb; Fri, 20 Jan 2023 03:23:48 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1674185028; 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=y4bQYe1K6HYfmjsf8H4YyMpUSPfGoGGzzXaDFskeuwk=; b=xiR1iNdEhvbSd+OxbXXhYoldfh6juTjzG7C3EPGp/Y31NAQhmwxI2jaDzBNDEMFiALkT8G RMk/bmCmYfFsVAKzMrlrx8mIx/XXafUtHehbGPc5Fzjn5ahD6SHhT0puiapPVq7jKRXsy2 VkNnsnbZACuOoEM0dWavyhRmWsRIpr2806ibpemMDVS6w0eD+zDarqGOsL1diWAOrUn3rl abxYT57AdMu0UEoE+1LGVTk9TXAAdWWeg8ZQDXo+MMbtKeo9DmCsLa1Th54c95l6o/0jh3 0k01G5uT8+1Byc1YERpMBtoxzaSb8EzJs73g2LF0gcvqDqLE5UiVTrj9cRnd9g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1674185028; 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=y4bQYe1K6HYfmjsf8H4YyMpUSPfGoGGzzXaDFskeuwk=; b=b8a5DPUVwZyqGGNMdza9Z1JBv+unJXdpbOxXSiKSXqQeE4JLLWX/0Xs3Nhi+f+mBUHO8SC u7afnfEMUbL2bigTl3R1eGxBr05AXsnsrFDcEfcYfqBf0iFrfnx3/0eENNn3XnOTcLzBs4 0icbxRCenEUcKwJH5/y0i45j1SY71jZOorsWDzHVd3HCuIMDDy2QDJbvLYyv7ne0sGyq7c jf9XGxA6hPZPSal6vGkhL9dbyqcARdaZLfThZydvmfbSBog3Wb+sOXZCPFMe5xFbJmmSmF yPxApTVFHEsJTki5qfpRtTfDNadyHsh4F4IEkw2H+iny1JvJ1vqYHVoBPgfyzQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1674185028; a=rsa-sha256; cv=none; b=ttMRCaKHLnIetG4qsmvQyzaCOZWCP/5qt9LKW5Ong+QUBkPRHigNUlF9x38ReJB7rpxCKL rbpXAi1Yz3F6kgQ1UAMWHH9SkXyLC+ZeyUaYfwEczuPj6Mc1IU9zqt7n9XRcwGLFTJl2yr W6/XgbmdQ2jbeGv4DmieiOJ2kSXsVBgncWFajiEn0odwO+FrmzSf5wM0VU/f7iTDdZn5Ie /Jq9BfjHpjRaSZWSDggqq88KitULvTWwP/0bgOTwrA09vvECXnghHiZxiHeEqDxSd+njmk 7IYzNtSxTeh8Le4yE4/4rrN+NG4u8YfvOD5VmObcCo+FA3PdSXfQ+fCVIzDScw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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 did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4NylFw4g1FzFys; Fri, 20 Jan 2023 03:23:48 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 30K3NmxG042668; Fri, 20 Jan 2023 03:23:48 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 30K3NmvC042667; Fri, 20 Jan 2023 03:23:48 GMT (envelope-from git) Date: Fri, 20 Jan 2023 03:23:48 GMT Message-Id: <202301200323.30K3NmvC042667@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Konstantin Belousov Subject: git: 1610f04c9dac - stable/13 - tools/test/ptrace: update scescx to do remote getpid(2) on each SCX event List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@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/13 X-Git-Reftype: branch X-Git-Commit: 1610f04c9daceb5b4f2849e48d0021ecc975bb60 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=1610f04c9daceb5b4f2849e48d0021ecc975bb60 commit 1610f04c9daceb5b4f2849e48d0021ecc975bb60 Author: Konstantin Belousov AuthorDate: 2022-12-02 01:26:13 +0000 Commit: Konstantin Belousov CommitDate: 2023-01-20 03:21:16 +0000 tools/test/ptrace: update scescx to do remote getpid(2) on each SCX event Tested by: pho (cherry picked from commit 6403a140243d4f5377f589f93aeb44fe75ea8d59) --- tools/test/ptrace/scescx.c | 34 ++++++++++++++++++++++++++++++---- 1 file changed, 30 insertions(+), 4 deletions(-) diff --git a/tools/test/ptrace/scescx.c b/tools/test/ptrace/scescx.c index 582d1734427e..8f19f9a55889 100644 --- a/tools/test/ptrace/scescx.c +++ b/tools/test/ptrace/scescx.c @@ -28,6 +28,7 @@ __FBSDID("$FreeBSD$"); #include #include +#include #include #include #include @@ -213,9 +214,13 @@ wait_info(int pid, int status, struct ptrace_lwpinfo *lwpinfo) printf("\n"); } +static int trace_syscalls = 1; +static int remote_getpid = 0; + static int trace_sc(int pid) { + struct ptrace_sc_remote pscr; struct ptrace_lwpinfo lwpinfo; int status; @@ -269,6 +274,24 @@ trace_sc(int pid) wait_info(pid, status, &lwpinfo); assert(lwpinfo.pl_flags & PL_FLAG_SCX); + if (remote_getpid) { + memset(&pscr, 0, sizeof(pscr)); + pscr.pscr_syscall = SYS_getpid; + pscr.pscr_nargs = 0; + if (ptrace(PT_SC_REMOTE, pid, (caddr_t)&pscr, + sizeof(pscr)) < 0) { + perror("PT_SC_REMOTE"); + ptrace(PT_KILL, pid, NULL, 0); + return (-1); + } else { + printf(TRACE "remote getpid %ld errno %d\n", + pscr.pscr_ret.sr_retval[0], pscr.pscr_ret.sr_error); + if (waitpid(pid, &status, 0) == -1) { + perror("waitpid"); + return (-1); + } + } + } if (lwpinfo.pl_flags & PL_FLAG_EXEC) get_pathname(pid); @@ -322,8 +345,6 @@ trace_cont(int pid) return (0); } -static int trace_syscalls = 1; - static int trace(pid_t pid) { @@ -340,12 +361,16 @@ main(int argc, char *argv[]) pid_t pid, pid1; trace_syscalls = 1; + remote_getpid = 0; use_vfork = 0; - while ((c = getopt(argc, argv, "csv")) != -1) { + while ((c = getopt(argc, argv, "crsv")) != -1) { switch (c) { case 'c': trace_syscalls = 0; break; + case 'r': + remote_getpid = 1; + break; case 's': trace_syscalls = 1; break; @@ -354,7 +379,8 @@ main(int argc, char *argv[]) break; default: case '?': - fprintf(stderr, "Usage: %s [-c] [-s] [-v]\n", argv[0]); + fprintf(stderr, "Usage: %s [-c] [-r] [-s] [-v]\n", + argv[0]); return (2); } } From nobody Fri Jan 20 03:23:49 2023 X-Original-To: dev-commits-src-branches@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 4NylFy1GhSz30vhF; Fri, 20 Jan 2023 03:23:50 +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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4NylFy05mDz3ntr; Fri, 20 Jan 2023 03:23:50 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1674185030; 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=fqkylt0UCXSrPeMccBsHoxpAYhIxWf/sswjfEPH0K7c=; b=bpw4YBpw5MpAWsWrxnMJ2Ind+CyFmeEnzhDzeL/NUklKNBCcRuMHNOBAbdOdb7yAjrmmW/ 1j2fjUAF2pKHZureN8ywVyR4ZKLSyd2i7gf1JzSWDZe4TlUQgxlONoUxQxVSupCZjCz+u2 eYd9M4W6mf/VQT7ozkNrtD5tRZYBsVqtFo+NBS3uxEQc8nilqp7wBf2tvu05gFlLWGgvc9 IR1K5EQBAQzNl1BD6Hdpstef6N0a8MFIzLAt8TWYm5aPP8VLNzVMbgMcWpWWndgYirMXkD Qr0i2MNC8AM7ytBqs+JphOwGgfVR0owxXoCtndhg4YsLrooTRu7cUOLU9LGL5Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1674185030; 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=fqkylt0UCXSrPeMccBsHoxpAYhIxWf/sswjfEPH0K7c=; b=YLM5r6qPcMdPbMowTZ2X3OrvVIacet0EJlQr3IdwJCBD0deAeBijhRvnzlSEAYSZ9sKNMm fx2ZQq8Z5RtGP9WotMrxW9dc242KGKoliyE1fd75UiiAmB/wL49YAUTajXGRCz6KhneMxe Gtp4KmQVT9zxpmoBkbDsah84yhuf5OysfhisAWb5gtXWzplDvp2/6YtKH8JqFAoQ3BByT9 15b3yQL+ZZ9q1hth96nlHmlnCuH0+/e6rOzYazvZdz4Y3R45MMgyfenCuoV6hE0t2bnsSs Qx14wJP/rGbErDj5eA7ay7OrK9vs0v0r3v61HwROf83Nw7KEfRFPLNA7ND0mDQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1674185030; a=rsa-sha256; cv=none; b=C/dsfK7djVbCsxIEO+kxIjC9G8nNFynD0CbBIXpzQvSEYvkgcTRC4IkDYSVNoXYPqT5YTP zOCyM7i62lC9azQWH/Bq0+rTzXFiZbY19MwAE/EkufgY5b1EE5Mg5rYIOca9+JZQnTr/YZ qMzM5df6TaefmxIh6+7aHf4NVyUntIsqJl8eLxebVFuUtQxDAEFpwss4jEty/3uPfXBnqE X5kmKszadbnXqunQ3pK6Gw/JQUjcQO+MnOB8BsahSj8TX4YcsIt+Qzg0w3q08IAw1zlDNh AQZxTGeU5DA2wU+Z3xbBoZazbkgHrMHw/Sq28aoOva0dC+NaZcG3/vHX6q+NzQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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 did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4NylFx5ppPzGKg; Fri, 20 Jan 2023 03:23:49 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 30K3Nncv042692; Fri, 20 Jan 2023 03:23:49 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 30K3NnkX042691; Fri, 20 Jan 2023 03:23:49 GMT (envelope-from git) Date: Fri, 20 Jan 2023 03:23:49 GMT Message-Id: <202301200323.30K3NnkX042691@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Konstantin Belousov Subject: git: e1d9d8fe64ee - stable/13 - Add descrip_check_write_mp() helper List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@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/13 X-Git-Reftype: branch X-Git-Commit: e1d9d8fe64ee94f78d679235bb76b2a01068b4b2 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=e1d9d8fe64ee94f78d679235bb76b2a01068b4b2 commit e1d9d8fe64ee94f78d679235bb76b2a01068b4b2 Author: Konstantin Belousov AuthorDate: 2022-12-28 18:13:01 +0000 Commit: Konstantin Belousov CommitDate: 2023-01-20 03:21:23 +0000 Add descrip_check_write_mp() helper Tested by: pho (cherry picked from commit 37b9fb169686e867987c8a1a9868f81137b9df2b) --- sys/kern/kern_descrip.c | 25 +++++++++++++++++++++++++ sys/sys/filedesc.h | 2 ++ 2 files changed, 27 insertions(+) diff --git a/sys/kern/kern_descrip.c b/sys/kern/kern_descrip.c index ff999cc82f97..6b2d95d53db0 100644 --- a/sys/kern/kern_descrip.c +++ b/sys/kern/kern_descrip.c @@ -4238,6 +4238,31 @@ mountcheckdirs(struct vnode *olddp, struct vnode *newdp) vrele(olddp); } +int +descrip_check_write_mp(struct filedesc *fdp, struct mount *mp) +{ + struct file *fp; + struct vnode *vp; + int error, i, lastfile; + + error = 0; + FILEDESC_SLOCK(fdp); + lastfile = fdlastfile(fdp); + for (i = 0; i <= lastfile; i++) { + fp = fdp->fd_ofiles[i].fde_file; + if (fp->f_type != DTYPE_VNODE || + (atomic_load_int(&fp->f_flag) & FWRITE) == 0) + continue; + vp = fp->f_vnode; + if (vp->v_mount == mp) { + error = EDEADLK; + break; + } + } + FILEDESC_SUNLOCK(fdp); + return (error); +} + struct filedesc_to_leader * filedesc_to_leader_alloc(struct filedesc_to_leader *old, struct filedesc *fdp, struct proc *leader) diff --git a/sys/sys/filedesc.h b/sys/sys/filedesc.h index 345576438c67..5a4b3de33104 100644 --- a/sys/sys/filedesc.h +++ b/sys/sys/filedesc.h @@ -214,6 +214,7 @@ enum { #define falloc(td, resultfp, resultfd, flags) \ falloc_caps(td, resultfp, resultfd, flags, NULL) +struct mount; struct thread; static __inline void @@ -230,6 +231,7 @@ void filecaps_free(struct filecaps *fcaps); int closef(struct file *fp, struct thread *td); void closef_nothread(struct file *fp); +int descrip_check_write_mp(struct filedesc *fdp, struct mount *mp); int dupfdopen(struct thread *td, struct filedesc *fdp, int dfd, int mode, int openerror, int *indxp); int falloc_caps(struct thread *td, struct file **resultfp, int *resultfd, From nobody Fri Jan 20 03:23:50 2023 X-Original-To: dev-commits-src-branches@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 4NylFz24F1z30vpB; Fri, 20 Jan 2023 03:23:51 +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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4NylFz1D2Dz3p6w; Fri, 20 Jan 2023 03:23:51 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1674185031; 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=8AaxYugtUqxcAeo5L9mFBT29pgS+RMnAz8zaG9JfYc4=; b=hjw87TVms3tVDcCwIX3clJOMwT2lhapmMxYKzQdO/g2/5JgZOPzsURQAVB0YRcR2AeiCnh No+WeTVVsQRcrS3CdfMDH+vv8yAeRP0cmhrp7Qx8CJqgcWmmTr64FtCfUjCVsw3aqtLFWv YXyGVJmd+koH3Jh9jynlJf6IedHOdM1/qzcaeZRe2pYMhSkW8jHqCU0Bgr4fS0BRJh22GN mLN0ar+/m7xbFNwKKL4lWBkGaNKTMj0BNvUNZLch5PlMIwuEjhPS7QM9NwubxiI86d219I HgTx55vmLp1WMOGeON4k4ofwBiBypAIhh66pplI0T/9zfBHqBpjosTMj8QE2HA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1674185031; 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=8AaxYugtUqxcAeo5L9mFBT29pgS+RMnAz8zaG9JfYc4=; b=WhfTq7nLo1fKFw0gtmQgUJfgGdOssU1wRapqi/SkKeh9d9H+dmd4Ef8xgMpDXWSyYZmBWH 1kStGaCfljf1x40Noe+gm95l/wEgDhrkm/rspJuFI6iequiOq1m44KCNpmVqAssuRKO2bj idPRNUmppHLLGDvy32ykQ7K1tjv+zxj2d2K4rfX6JZpccIBfTMcg7I8ACLeNm/G+ShfzB1 vuV5dvlved8vZ/DBFer3ueQ3IFCS6eMFY6rBO+cdEZO1ZP5u+pr9AfrBVyujGGnHqAg7xb KuQtbSiJ4pldcEnIpxrSU2JgC9Ab3QIm+Ddl0cJCJPnnZzNsWGZXtiOm6MV4EA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1674185031; a=rsa-sha256; cv=none; b=Md0lLl4RqOC86TteI6wR702cT4UvyqFYas/ZZx4psfiwAAUJF3H6d9oyIGnW3LdRCV9bht AoKkBBkQwPq3Ztfe+iWMFCbpVFaZ4F5C4zjBpLmjrc90ZJfviuK9gp6ALMAd8gGaeYiK3G xXACqB0SEs0TW5gj1X5v2IYkiNF897k30HjeNXZVzAZeziaIlOb/DVLXkA1NaOTKXKufN1 cuP2nwaCYKLKKiY9MmuvB2Tvk2IpEuDCBJB9tvAVmjCEJcnDpOgJ+RKa+I3zCA820T+Hml PzdTtnDP8G+kFoHWcfJ6c4UjlTi3Pm5wHAv3VE+YVdzKDy03xK9yIfRDlsAb2w== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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 did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4NylFy6K0jzGDR; Fri, 20 Jan 2023 03:23:50 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 30K3NovB042716; Fri, 20 Jan 2023 03:23:50 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 30K3NoU3042715; Fri, 20 Jan 2023 03:23:50 GMT (envelope-from git) Date: Fri, 20 Jan 2023 03:23:50 GMT Message-Id: <202301200323.30K3NoU3042715@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Konstantin Belousov Subject: git: da5871423955 - stable/13 - ffs_suspend.c: clean up includes List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@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/13 X-Git-Reftype: branch X-Git-Commit: da5871423955e5313cac01e3d6c1f47876e18411 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=da5871423955e5313cac01e3d6c1f47876e18411 commit da5871423955e5313cac01e3d6c1f47876e18411 Author: Konstantin Belousov AuthorDate: 2022-12-28 18:17:53 +0000 Commit: Konstantin Belousov CommitDate: 2023-01-20 03:21:30 +0000 ffs_suspend.c: clean up includes Tested by: pho (cherry picked from commit 68912701700ca3230f3e2d4b7858a038f884a327) --- sys/ufs/ffs/ffs_suspend.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/sys/ufs/ffs/ffs_suspend.c b/sys/ufs/ffs/ffs_suspend.c index d13097109758..e7c976b6e921 100644 --- a/sys/ufs/ffs/ffs_suspend.c +++ b/sys/ufs/ffs/ffs_suspend.c @@ -33,15 +33,14 @@ #include __FBSDID("$FreeBSD$"); -#include #include #include -#include -#include -#include #include +#include #include +#include #include +#include #include From nobody Fri Jan 20 03:23:51 2023 X-Original-To: dev-commits-src-branches@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 4NylG05tcJz30vrh; Fri, 20 Jan 2023 03:23:52 +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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4NylG01c30z3p0V; Fri, 20 Jan 2023 03:23:52 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1674185032; 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=xdscgEqS8kDE4Q4ILmdrpOgMm3Yz5ZqDlPTkcisvJsk=; b=uyPI+mfNHvGmUAHXCpS3KYSzilptR6Hb5j2ljHWD8RHidsevSMYBFZOC7MWLb4RWEy322s HXWsO/P4Z5ajIgVWvqzvMDfG851dcf+rOTZIroAE2OhVkcuHHp+3jolNiMIDWWvs+X7lBv voQxxjxC/YzG0XwgwZ3Cy0/5XLOm53XCwtoDpOeJ4+Okj8EcGk1iCBAHEMD4WuovfSeX3H XqgFhf8DPHJwFUmRp0nm6DEkc0z/YrRBbd36PJbK3iBlxFkLbg6/1b/Yf8fQ/0hziq9p+a wn1hMsGUIwUUrISgZiszFPqm0tDPnny2ChRXC6frEOyqtahwhU2t9B0srzwsFQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1674185032; 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=xdscgEqS8kDE4Q4ILmdrpOgMm3Yz5ZqDlPTkcisvJsk=; b=Lhm7YYUXyqc/mcN9OXZml95PEYyqZ40msslfUscuGd0sjsueiyWyEAjMzgwai1d25NP9KO X6lU5yH+BfsafEMapm+d3MJeVxAnJBcniPkcaMpndLJz9xNhr1coTt/Yc6GvAq6aaQ4x6g kzDr/rZLceW5S8ICl9acCe9IrMgd/ZCkSHGyKoMNeH6p3yzqVTPiE2WULDcb+lOk2iC2hf FC/lbSqghFzSof6BW5fjJtpJ8DukTelk07G51jjfCOV7FdRXifeURb4BEE1rvfmtbfvRiV tvNawg8QNvNGUgFVyGnCH2NB3r2u+anGlcQm/XAZyAPoBJprEpLSLo+rpjn1JQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1674185032; a=rsa-sha256; cv=none; b=GXqqQC8lRpgsTpRLyt8X7iVvsMWZb9VkrcLwcqTC2iDkaDF+fT6yMP/qxZuKclY/9LvdN4 eAq0FsfbyUEv6ln0XMoSeiBxxitQo1eYg6uHuHbjgCxyiRH1PbD5QyHxBWkTdemOne+l6v VrFPQYeVkUANt437/tzRHpsUxpbiZIVy+v8tJHUIe0yY/BGwlhzewPHKfAxdl7eOxt3k4w EKAehOV+DByVxeyPfPHFcK30Y0XE2y6yGMmg4VfmODCIhGlieF1az24VLEOlKOFc+sNABP Gmybra73y8GLFgOdHoJrRlYEA35prIordQxCoL8ekGKhPiG5RRIqyDc6emuIvg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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 did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4NylG00SL5zFyt; Fri, 20 Jan 2023 03:23:52 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 30K3NpCr042740; Fri, 20 Jan 2023 03:23:51 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 30K3Npe1042739; Fri, 20 Jan 2023 03:23:51 GMT (envelope-from git) Date: Fri, 20 Jan 2023 03:23:51 GMT Message-Id: <202301200323.30K3Npe1042739@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Konstantin Belousov Subject: git: 00c0e20c5180 - stable/13 - ufs/suspend: deny suspension if the calling process has a file from mp opened for write List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@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/13 X-Git-Reftype: branch X-Git-Commit: 00c0e20c5180284298910dcf0a677243b2c28f7d Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=00c0e20c5180284298910dcf0a677243b2c28f7d commit 00c0e20c5180284298910dcf0a677243b2c28f7d Author: Konstantin Belousov AuthorDate: 2022-12-28 18:14:52 +0000 Commit: Konstantin Belousov CommitDate: 2023-01-20 03:21:35 +0000 ufs/suspend: deny suspension if the calling process has a file from mp opened for write PR: 267628, 267630 Tested by: pho (cherry picked from commit 701b36961cbd2084c36eb828402d0ef89211d929) --- sys/ufs/ffs/ffs_suspend.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/sys/ufs/ffs/ffs_suspend.c b/sys/ufs/ffs/ffs_suspend.c index e7c976b6e921..a68f25d5eed2 100644 --- a/sys/ufs/ffs/ffs_suspend.c +++ b/sys/ufs/ffs/ffs_suspend.c @@ -36,6 +36,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include #include @@ -302,6 +303,16 @@ ffs_susp_ioctl(struct cdev *dev, u_long cmd, caddr_t addr, int flags, vfs_rel(mp); if (error != 0) break; + + /* + * Require single-thread curproc so that the check is not racey. + * XXXKIB: might consider to singlethread curproc instead. + */ + error = curproc->p_numthreads > 1 ? EDEADLK : + descrip_check_write_mp(curproc->p_fd, mp); + if (error != 0) + break; + error = ffs_susp_suspend(mp); if (error != 0) { vfs_unbusy(mp); From nobody Fri Jan 20 03:23:53 2023 X-Original-To: dev-commits-src-branches@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 4NylG167Z2z30vk9; Fri, 20 Jan 2023 03:23:53 +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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4NylG1288Bz3pFx; Fri, 20 Jan 2023 03:23:53 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1674185033; 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=+Q5U2rrdcRHTCBlTkK9R8V//PTGjutgHiQH84znftMc=; b=pbIakTgE+/PertXG7jwdOh9cRPFC3H6R9Xh2par6UEIqK6cdyaeOHYswEgYXGCe0FBU81g h3J+gr8HqatKGafuqWsVwJCzImgBQM50qVKG9fOtzO0dsggbBi2JSxMFFn6IZlq4YM8mf7 mPYQyX5PUdrC0AS0RqIoFuVhQKRRDy9SLBz0AK/5qFWIx0+lN5LHpgKDm/1MoT5ZFQwwDd J2daZqU+bRP+ahCoqV0qftj5HIOJlzAcBMRyaEc3jXV0Kilk+pMXlKf7iQlucvR4rbAga4 X80yn9hCgQu2itJVHufYmQAIsGus+51jzBC0vMF2dusBTr1ihh2sNjA7Swl03g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1674185033; 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=+Q5U2rrdcRHTCBlTkK9R8V//PTGjutgHiQH84znftMc=; b=ZFmuaRo10ecKDHO8uz7jFQfFq0/crsUm+07I5YasgvnQSZNjapZNfuVlFmWXsVnBgStzYM cJU9igTzvoYtmPicUFkf9uhfKIox8Yn04lyfAGN5SAQpbDGH6b2eMA/YIszQO5ccyCAvNa ulgHkSsdPb7vSHQKWHdzHoBz7rzF1iUwZiJqG0kHSTT8jGPNbq6KRJ6Rextjf6NEZ4Y2zh 7vNrMEjA939dcJAJBgImmXbX5DGnmvuF7zl9t646U7NpgM2QU8O0cQXy+gvNbfGnBzubaE hyEiHmZyZHN1wlU2R/cDVtKzXavXMQwlPe0T+FutkdlOCeSny2h2kt7+BIfDCA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1674185033; a=rsa-sha256; cv=none; b=kWlZLnXcZMVo+efeRkx6RIcRB3QF1A3t58/34lhCX9IAu+U+/4vRgQFfBNy/qfK3PDOR2W QH99BphArTosoC3KPgZ1533FlxB9loII7TLQQZC6unuibdSJ4oWh5FCmIZcxEq9DDEHB5I lr4dRqRougY7ZB8CVTgEmR9EF0ZTshrSracTH52QVxFoD1Z7Yk+TxP3shlpo5dxIDv3+of 3Of1lwms4H6ZN2NDVlMIUd0yhpSNlrcObEoGkZxgRtLo6SHNY4RiLDT3yJYejF3lKtcSa+ mFSX7kwfcEtomzRv9TzLrM6HJxXRJBQF2shAd38WYBHug3QrqlrjYLy6xAqSxg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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 did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4NylG11D4tzG9M; Fri, 20 Jan 2023 03:23:53 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 30K3NrMF042772; Fri, 20 Jan 2023 03:23:53 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 30K3NrMO042771; Fri, 20 Jan 2023 03:23:53 GMT (envelope-from git) Date: Fri, 20 Jan 2023 03:23:53 GMT Message-Id: <202301200323.30K3NrMO042771@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Konstantin Belousov Subject: git: 9bdaaaaa3221 - stable/13 - UFSSUSPEND: unbusy mp in EDADLK case List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@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/13 X-Git-Reftype: branch X-Git-Commit: 9bdaaaaa3221f410f20d19d785d27487094d0fd9 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=9bdaaaaa3221f410f20d19d785d27487094d0fd9 commit 9bdaaaaa3221f410f20d19d785d27487094d0fd9 Author: Konstantin Belousov AuthorDate: 2022-12-29 22:09:57 +0000 Commit: Konstantin Belousov CommitDate: 2023-01-20 03:21:44 +0000 UFSSUSPEND: unbusy mp in EDADLK case Tested by: pho (cherry picked from commit a5ff86646ee4602a141a24eee95c1c60bb375030) --- sys/ufs/ffs/ffs_suspend.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/sys/ufs/ffs/ffs_suspend.c b/sys/ufs/ffs/ffs_suspend.c index a68f25d5eed2..5e3258089fd0 100644 --- a/sys/ufs/ffs/ffs_suspend.c +++ b/sys/ufs/ffs/ffs_suspend.c @@ -310,8 +310,10 @@ ffs_susp_ioctl(struct cdev *dev, u_long cmd, caddr_t addr, int flags, */ error = curproc->p_numthreads > 1 ? EDEADLK : descrip_check_write_mp(curproc->p_fd, mp); - if (error != 0) + if (error != 0) { + vfs_unbusy(mp); break; + } error = ffs_susp_suspend(mp); if (error != 0) { From nobody Fri Jan 20 03:23:54 2023 X-Original-To: dev-commits-src-branches@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 4NylG25Bjmz30vkJ; Fri, 20 Jan 2023 03:23:54 +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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4NylG23XJVz3p0v; Fri, 20 Jan 2023 03:23:54 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1674185034; 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=umZBbA7wJG+G4TeQbRoml4/fw7TPt7OTvb0ltF+44Sw=; b=BDUUwrYDG6TEZ725NVi0C8ix4O8DUwgXbEE+yG/P0xfLFWE6twN2n94VU6LyOxkI1x6wb1 Lr2DZanSGuS+JuikV9rMWlDE+8AZElAq8cjW9/A/zQX0tDcU/1iL9en57oHyYYemMFUVEB xHi9frCpl0/PVz0Vj6c1A53m6oMrYR7LDyE3dTv/Je+epLluZjaopnOQmWSMpwU1sysaA3 ga3tqnip8Edu/yiA/FVpxcckXETRiD/1dZeZ4bnbhlwVlycQcYoO4yFQvXQXnm5M3UaYva y76aPdps5sbgCT7Iw/XpzvNPjBr9WwWpk/cfr8spFNBkkjA8LkI1HMz/ZEhxtg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1674185034; 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=umZBbA7wJG+G4TeQbRoml4/fw7TPt7OTvb0ltF+44Sw=; b=AfuV+i+rTQBB5PAbk6KM3hyOTX9ms2/pzfkRIBilpkb/VHl2FG+MsOo9Iouqhx4coPefdr jjjcrbbhtMaexvSFW8oLbqqhjeIexKH4q+pRR9z9Hgaz84HGaPo3tZRqZ5BWIm/+9fBK1R 3jOmmOvUiLMqI2lfqsxa0nsBlyQYynwNtAiMhylK2pwFOu0AjaMz6u9I5415jSd0K/3uta Ov+KVxIPJi9awNWVIlu/NyO5OARrbGpbAAFdt+D49x19Kb9k7wIZxc2XhrKbg0hpIZ4PUd n3P6EnoRsVfzEn2yFFytCV7Nz0nKuMf8BKsAOvHLqsy5cklgxq/uiEJ2lmwoiQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1674185034; a=rsa-sha256; cv=none; b=uGLa3omHcM/vG7OK0kfgTgq9Ky0Cj9YCAYz6CPYcAgN/ez8MbohQ5Vth9hAOeQ5lHfIeRr PqD6xXIDIVTH+69BpOebTr89b+q5zw15pLNx7OPKqUC37nhlrTHY+Lj7mXupJCsq/u9c0U Cs11jTdjfkmYrt5ykEmoJrN2rvd1Mti4FSb3yu4C5ZDKbV8Yya1D8oMZW5dfIZEJzcYYXP Wqca4Qhh2vNhyHs4JFA+wWWC54pNFTZ1Mh9r7rzB9xMQyQEX9haAFxUJN0UP00SaiQosgc GSBL5B5uCuf1Qc2Luz5egXcaVMipY62aAlMCExRb4hcXBBJPgTvShNhYovlOzA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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 did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4NylG22LprzGDS; Fri, 20 Jan 2023 03:23:54 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 30K3NsV5042796; Fri, 20 Jan 2023 03:23:54 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 30K3NspS042795; Fri, 20 Jan 2023 03:23:54 GMT (envelope-from git) Date: Fri, 20 Jan 2023 03:23:54 GMT Message-Id: <202301200323.30K3NspS042795@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Konstantin Belousov Subject: git: eb2e82b9ca8e - stable/13 - amd64: identify small cores List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@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/13 X-Git-Reftype: branch X-Git-Commit: eb2e82b9ca8e39c0c2045b19cf93489063d57beb Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=eb2e82b9ca8e39c0c2045b19cf93489063d57beb commit eb2e82b9ca8e39c0c2045b19cf93489063d57beb Author: Konstantin Belousov AuthorDate: 2022-12-21 11:04:14 +0000 Commit: Konstantin Belousov CommitDate: 2023-01-20 03:21:52 +0000 amd64: identify small cores Tested by: pho (cherry picked from commit 45ac7755a7c5d8508176b3d015bb27ff58485c80) --- sys/amd64/amd64/initcpu.c | 9 +++++++++ sys/amd64/include/pcpu.h | 3 ++- sys/x86/include/specialreg.h | 5 +++++ 3 files changed, 16 insertions(+), 1 deletion(-) diff --git a/sys/amd64/amd64/initcpu.c b/sys/amd64/amd64/initcpu.c index 1a251208cfd6..1b731821889e 100644 --- a/sys/amd64/amd64/initcpu.c +++ b/sys/amd64/amd64/initcpu.c @@ -255,6 +255,7 @@ initializecpu(void) { uint64_t msr; uint32_t cr4; + u_int r[4]; cr4 = rcr4(); if ((cpu_feature & CPUID_XMM) && (cpu_feature & CPUID_FXSR)) { @@ -317,6 +318,14 @@ initializecpu(void) if ((amd_feature & AMDID_RDTSCP) != 0 || (cpu_stdext_feature2 & CPUID_STDEXT2_RDPID) != 0) wrmsr(MSR_TSC_AUX, cpu_auxmsr()); + + if (cpu_high >= 0x1a) { + cpuid_count(0x1a, 0, r); + if ((r[0] & CPUID_HYBRID_CORE_MASK) == + CPUID_HYBRID_SMALL_CORE) { + PCPU_SET(small_core, 1); + } + } } void diff --git a/sys/amd64/include/pcpu.h b/sys/amd64/include/pcpu.h index 6326fbdae0be..c0b8ee456f25 100644 --- a/sys/amd64/include/pcpu.h +++ b/sys/amd64/include/pcpu.h @@ -99,7 +99,8 @@ _Static_assert(sizeof(struct monitorbuf) == 128, "2x cache line"); uint32_t pc_smp_tlb_gen; \ u_int pc_smp_tlb_op; \ uint64_t pc_ucr3_load_mask; \ - char __pad[2916] /* pad to UMA_PCPU_ALLOC_SIZE */ + u_int pc_small_core; \ + char __pad[2912] /* pad to UMA_PCPU_ALLOC_SIZE */ #define PC_DBREG_CMD_NONE 0 #define PC_DBREG_CMD_LOAD 1 diff --git a/sys/x86/include/specialreg.h b/sys/x86/include/specialreg.h index ddac2b9ea2b2..bc3fd2e563a1 100644 --- a/sys/x86/include/specialreg.h +++ b/sys/x86/include/specialreg.h @@ -490,6 +490,11 @@ #define CPUID_STDEXT3_CORE_CAP 0x40000000 #define CPUID_STDEXT3_SSBD 0x80000000 +/* CPUID_HYBRID_ID leaf 0x1a */ +#define CPUID_HYBRID_CORE_MASK 0xff000000 +#define CPUID_HYBRID_SMALL_CORE 0x20000000 +#define CPUID_HYBRID_LARGE_CORE 0x40000000 + /* MSR IA32_ARCH_CAP(ABILITIES) bits */ #define IA32_ARCH_CAP_RDCL_NO 0x00000001 #define IA32_ARCH_CAP_IBRS_ALL 0x00000002 From nobody Fri Jan 20 03:23:55 2023 X-Original-To: dev-commits-src-branches@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 4NylG35WQlz30vvC; Fri, 20 Jan 2023 03:23:55 +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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4NylG34Tk1z3nxY; Fri, 20 Jan 2023 03:23:55 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1674185035; 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=lJGqVQbk6gbdl7sJRm1uKVS/FwZqGkleeuttEQv1sTU=; b=q47UIeTwGrmaRpU6sXD+RoReUSwZoRq6LBuwnrH4nES+9cjbI+2Ywp3tirnnGr09ufdvu5 JiMYvFEiI8F64MCaATU1NnTWgvrfbud5T6lDYzkkRWU4l5ep3wXf96exWRc1sjIjW7Gi3z crYqqCsT1GU0paN97NY8QTQj6poEt+pVyn4nuluCVuulXqLFxMVUmDnGUFepx/WYMwoTQg AGhtMHqk8NNhyeC4w/yFBnwB55Zm9KRBhr+vfN+j/xeLPPBqcMV8ClfF2VWONFoxm4QbEn SY3MhBeL1Vti0b9IZJQVXgXRqMSK8LAXWpyca61l1UmLsgSyynYZg8z5+MY/9w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1674185035; 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=lJGqVQbk6gbdl7sJRm1uKVS/FwZqGkleeuttEQv1sTU=; b=rM4eqwjtHMgICZP5Ia5d4Hgvgv4AuAh3/arebhehcniyuYGFwN3Qw8YDiduknnxGxP4iRI Ps9ZR7PRu6YN782Kve0EGFjh58RM36ZlGxcVkoXentQb6Gwsryt1kDNnEfL7hZK1n5ssX3 epRYzavDiIrZ7glZYUdD1IfkNqQl7nsF1yw2Voy4DGRjAMmrZzzA06ASoLAoX+bySh95Bp UGDd/YtUR8vTTyxeR7UmkLk4sIzIKTaI9hlMKjgLh3OgDkUFuaC2SmrqH7NP63IonqwXlm bwHyoUUFXsaDURSn+QLOyZDaS9vJ+R/pKpkmYuMvO4KwFxHus5a9JWqtLZOgqg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1674185035; a=rsa-sha256; cv=none; b=Hf7zNK5foats5j7/upf81FRSmVVLqhqUBfC7SMscMOTc8+uLz/8A1go9wcD4qLk11J7NF0 DHl0mpn8zUqlewOCSCdpRs7gwvuKQ8ywrNPoaw72ICatpC6A4WXHhvyRyDkbQxWlKIzNfJ XFZZperEe2b7o9Zc2Ja7mlHXJb7WeuZvF/cfKGg6Uz7YECE1qLkyUI4khrzLpYtC36+3cg VdhlDiyaos18BibCZpdl6Iu4GrSm6O83x36wKyAvvyEAVvBHCRh2xfPYPPh+lv/gJ/m/3j qnNxZvNaSNb7lUlUP4OGiTwtR6hFrWL2lgnRctVK2IefN/2PidaoguyRz2sqNg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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 did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4NylG33XhfzGNm; Fri, 20 Jan 2023 03:23:55 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 30K3NtdD042820; Fri, 20 Jan 2023 03:23:55 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 30K3NtXL042819; Fri, 20 Jan 2023 03:23:55 GMT (envelope-from git) Date: Fri, 20 Jan 2023 03:23:55 GMT Message-Id: <202301200323.30K3NtXL042819@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Konstantin Belousov Subject: git: 567cc4e6bfd9 - stable/13 - amd64: for small cores, use (big hammer) INVPCID_CTXGLOB instead of INVLPG List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@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/13 X-Git-Reftype: branch X-Git-Commit: 567cc4e6bfd92d7351e385569f2bb4b7c89b6db0 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=567cc4e6bfd92d7351e385569f2bb4b7c89b6db0 commit 567cc4e6bfd92d7351e385569f2bb4b7c89b6db0 Author: Konstantin Belousov AuthorDate: 2022-10-10 23:08:55 +0000 Commit: Konstantin Belousov CommitDate: 2023-01-20 03:21:57 +0000 amd64: for small cores, use (big hammer) INVPCID_CTXGLOB instead of INVLPG PR: 261169, 266145 Tested by: pho (cherry picked from commit cde70e312c3fde5b37a29be1dacb7fde9a45b94a) --- sys/amd64/amd64/initcpu.c | 5 +++++ sys/amd64/amd64/mp_machdep.c | 16 +++++++++++----- sys/amd64/amd64/pmap.c | 36 +++++++++++++++++++++++++++++------- sys/amd64/include/pcpu.h | 3 ++- sys/amd64/include/pmap.h | 20 ++++++++++++++++++++ 5 files changed, 67 insertions(+), 13 deletions(-) diff --git a/sys/amd64/amd64/initcpu.c b/sys/amd64/amd64/initcpu.c index 1b731821889e..08385d3095d0 100644 --- a/sys/amd64/amd64/initcpu.c +++ b/sys/amd64/amd64/initcpu.c @@ -324,6 +324,11 @@ initializecpu(void) if ((r[0] & CPUID_HYBRID_CORE_MASK) == CPUID_HYBRID_SMALL_CORE) { PCPU_SET(small_core, 1); + if (pmap_pcid_enabled && + pmap_pcid_invlpg_workaround_uena) { + PCPU_SET(pcid_invlpg_workaround, 1); + pmap_pcid_invlpg_workaround = 1; + } } } } diff --git a/sys/amd64/amd64/mp_machdep.c b/sys/amd64/amd64/mp_machdep.c index 5e94ba822871..650f83b1aad4 100644 --- a/sys/amd64/amd64/mp_machdep.c +++ b/sys/amd64/amd64/mp_machdep.c @@ -863,7 +863,7 @@ invlpg_invpcid_handler(pmap_t smp_tlb_pmap, vm_offset_t smp_tlb_addr1) (*ipi_invlpg_counts[PCPU_GET(cpuid)])++; #endif /* COUNT_IPIS */ - invlpg(smp_tlb_addr1); + pmap_invlpg(smp_tlb_pmap, smp_tlb_addr1); if (smp_tlb_pmap == PCPU_GET(curpmap) && smp_tlb_pmap->pm_ucr3 != PMAP_NO_CR3 && PCPU_GET(ucr3_load_mask) == PMAP_UCR3_NOMASK) { @@ -933,10 +933,16 @@ invlrng_invpcid_handler(pmap_t smp_tlb_pmap, vm_offset_t smp_tlb_addr1, #endif /* COUNT_IPIS */ addr = smp_tlb_addr1; - do { - invlpg(addr); - addr += PAGE_SIZE; - } while (addr < smp_tlb_addr2); + if (smp_tlb_pmap == kernel_pmap && PCPU_GET(pcid_invlpg_workaround)) { + struct invpcid_descr d = { 0 }; + + invpcid(&d, INVPCID_CTXGLOB); + } else { + do { + invlpg(addr); + addr += PAGE_SIZE; + } while (addr < smp_tlb_addr2); + } if (smp_tlb_pmap == PCPU_GET(curpmap) && smp_tlb_pmap->pm_ucr3 != PMAP_NO_CR3 && PCPU_GET(ucr3_load_mask) == PMAP_UCR3_NOMASK) { diff --git a/sys/amd64/amd64/pmap.c b/sys/amd64/amd64/pmap.c index 233c58b83f2d..62fa64881c7b 100644 --- a/sys/amd64/amd64/pmap.c +++ b/sys/amd64/amd64/pmap.c @@ -517,6 +517,12 @@ SYSCTL_INT(_vm_pmap, OID_AUTO, pcid_enabled, CTLFLAG_RDTUN | CTLFLAG_NOFETCH, int invpcid_works = 0; SYSCTL_INT(_vm_pmap, OID_AUTO, invpcid_works, CTLFLAG_RD, &invpcid_works, 0, "Is the invpcid instruction available ?"); +int pmap_pcid_invlpg_workaround = 0; +SYSCTL_INT(_vm_pmap, OID_AUTO, pcid_invlpg_workaround, + CTLFLAG_RDTUN | CTLFLAG_NOFETCH, + &pmap_pcid_invlpg_workaround, 0, + "Enable small core PCID/INVLPG workaround"); +int pmap_pcid_invlpg_workaround_uena = 1; int __read_frequently pti = 0; SYSCTL_INT(_vm_pmap, OID_AUTO, pti, CTLFLAG_RDTUN | CTLFLAG_NOFETCH, @@ -2518,6 +2524,9 @@ pmap_init(void) VM_PAGE_TO_PHYS(m); } } + + TUNABLE_INT_FETCH("vm.pmap.pcid_invlpg_workaround", + &pmap_pcid_invlpg_workaround_uena); } SYSCTL_UINT(_vm_pmap, OID_AUTO, large_map_pml4_entries, @@ -2749,7 +2758,7 @@ pmap_update_pde_invalidate(pmap_t pmap, vm_offset_t va, pd_entry_t newpde) if ((newpde & PG_PS) == 0) /* Demotion: flush a specific 2MB page mapping. */ - invlpg(va); + pmap_invlpg(pmap, va); else if ((newpde & PG_G) == 0) /* * Promotion: flush every 4KB page mapping from the TLB @@ -3088,7 +3097,7 @@ pmap_invalidate_page_curcpu_cb(pmap_t pmap, vm_offset_t va, vm_offset_t addr2 __unused) { if (pmap == kernel_pmap) { - invlpg(va); + pmap_invlpg(kernel_pmap, va); } else if (pmap == PCPU_GET(curpmap)) { invlpg(va); pmap_invalidate_page_cb(pmap, va); @@ -3179,8 +3188,14 @@ pmap_invalidate_range_curcpu_cb(pmap_t pmap, vm_offset_t sva, vm_offset_t eva) vm_offset_t addr; if (pmap == kernel_pmap) { - for (addr = sva; addr < eva; addr += PAGE_SIZE) - invlpg(addr); + if (PCPU_GET(pcid_invlpg_workaround)) { + struct invpcid_descr d = { 0 }; + + invpcid(&d, INVPCID_CTXGLOB); + } else { + for (addr = sva; addr < eva; addr += PAGE_SIZE) + invlpg(addr); + } } else if (pmap == PCPU_GET(curpmap)) { for (addr = sva; addr < eva; addr += PAGE_SIZE) invlpg(addr); @@ -3717,7 +3732,7 @@ pmap_flush_cache_phys_range(vm_paddr_t spa, vm_paddr_t epa, vm_memattr_t mattr) for (; spa < epa; spa += PAGE_SIZE) { sched_pin(); pte_store(pte, spa | pte_bits); - invlpg(vaddr); + pmap_invlpg(kernel_pmap, vaddr); /* XXXKIB atomic inside flush_cache_range are excessive */ pmap_flush_cache_range(vaddr, vaddr + PAGE_SIZE); sched_unpin(); @@ -7527,7 +7542,7 @@ pmap_kenter_temporary(vm_paddr_t pa, int i) va = (vm_offset_t)crashdumpmap + (i * PAGE_SIZE); pmap_kenter(va, pa); - invlpg(va); + pmap_invlpg(kernel_pmap, va); return ((void *)crashdumpmap); } @@ -10223,7 +10238,7 @@ pmap_map_io_transient(vm_page_t page[], vm_offset_t vaddr[], int count, page[i]->md.pat_mode, 0); pte_store(pte, paddr | X86_PG_RW | X86_PG_V | cache_bits); - invlpg(vaddr[i]); + pmap_invlpg(kernel_pmap, vaddr[i]); } } } @@ -10272,7 +10287,14 @@ pmap_quick_remove_page(vm_offset_t addr) if (addr != qframe) return; pte_store(vtopte(qframe), 0); + + /* + * Since qframe is exclusively mapped by + * pmap_quick_enter_page() and that function doesn't set PG_G, + * we can use INVLPG here. + */ invlpg(qframe); + mtx_unlock_spin(&qframe_mtx); } diff --git a/sys/amd64/include/pcpu.h b/sys/amd64/include/pcpu.h index c0b8ee456f25..13de60f650de 100644 --- a/sys/amd64/include/pcpu.h +++ b/sys/amd64/include/pcpu.h @@ -100,7 +100,8 @@ _Static_assert(sizeof(struct monitorbuf) == 128, "2x cache line"); u_int pc_smp_tlb_op; \ uint64_t pc_ucr3_load_mask; \ u_int pc_small_core; \ - char __pad[2912] /* pad to UMA_PCPU_ALLOC_SIZE */ + u_int pc_pcid_invlpg_workaround; \ + char __pad[2908] /* pad to UMA_PCPU_ALLOC_SIZE */ #define PC_DBREG_CMD_NONE 0 #define PC_DBREG_CMD_LOAD 1 diff --git a/sys/amd64/include/pmap.h b/sys/amd64/include/pmap.h index 8f1e77806a25..7b86f9e139e1 100644 --- a/sys/amd64/include/pmap.h +++ b/sys/amd64/include/pmap.h @@ -461,6 +461,8 @@ extern vm_offset_t virtual_end; extern vm_paddr_t dmaplimit; extern int pmap_pcid_enabled; extern int invpcid_works; +extern int pmap_pcid_invlpg_workaround; +extern int pmap_pcid_invlpg_workaround_uena; #define pmap_page_get_memattr(m) ((vm_memattr_t)(m)->md.pat_mode) #define pmap_page_is_write_mapped(m) (((m)->a.flags & PGA_WRITEABLE) != 0) @@ -546,6 +548,24 @@ pmap_invalidate_cpu_mask(pmap_t pmap) return (&pmap->pm_active); } +/* + * It seems that AlderLake+ small cores have some microarchitectural + * bug, which results in the INVLPG instruction failing to flush all + * global TLB entries when PCID is enabled. Work around it for now, + * by doing global invalidation on small cores instead of INVLPG. + */ +static __inline void +pmap_invlpg(pmap_t pmap, vm_offset_t va) +{ + if (pmap == kernel_pmap && PCPU_GET(pcid_invlpg_workaround)) { + struct invpcid_descr d = { 0 }; + + invpcid(&d, INVPCID_CTXGLOB); + } else { + invlpg(va); + } +} + #endif /* _KERNEL */ /* Return various clipped indexes for a given VA */ From nobody Fri Jan 20 03:23:56 2023 X-Original-To: dev-commits-src-branches@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 4NylG4613Rz30vrp; Fri, 20 Jan 2023 03:23:56 +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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4NylG45XNjz3pGq; Fri, 20 Jan 2023 03:23:56 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1674185036; 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=PNjVrHcXU4q9QyS4jiM18xZ5Mv9W+ZdilangifYL/Ms=; b=MmHH1i+GnGi+Fz/D6WCQhpvr9uCoh3aHfSetGDaAVlS8FGWuqF/zovZSfIxZzMm+bnHrlv HOW5X/3+TqeyDmZRAvtlsCqroZIRR8zuZSvNcjQXp1GluzqTDktlPdnHtH7nEn61d0n/qK a55GPZz+ASrA4l/63/ya1SfU7dLBXxcgmWKdg8StcvW0ZYO9DgamYh6V86gLX1K6Q6jLH/ lMGTfKwbwVrtIlx2geHjXKGwOAWukhSMAgXYtqMf8GMEF7jaiiiIEH1ZTp8lJGdStocy5P Vtw4tpP6GjQ77FUEO7ImQv1NiQM11FX6MjrzJa+ky4DvoOXzd6lcnDp/RZAxew== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1674185036; 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=PNjVrHcXU4q9QyS4jiM18xZ5Mv9W+ZdilangifYL/Ms=; b=GDKRqhYtVZDUcqQHpgcVQq2anuWP8ocJevAty3R0CPAX4E2C0H6CisUNGU6/oJ4qGWwTjQ xcycmy1vDNAQwD0o/P4RJ8/PxZCtd6lGJj3NqVtTIzahSXq1vLT0lopNa5MC3qUAo9TPXa n+8mx+bxeNC4VK7/sac4TK6pGGcY6fDl462W44QCZ48esYoXCD+SkvNl6RpobAuBXIOkYd JtbNMGfSL9I7TWFxz4pKG068GOZ3CEyGeFv12qfzUHbD4PgdN5Bs214RvLj4F++vyIMDe5 13YVPPEjO0YU5hct0Ch8alU18FqPOzEwILmE2Rj5M6Bw0rvHykVmOPETLfIOZw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1674185036; a=rsa-sha256; cv=none; b=pZ5fnlfHkohr2xk2fOI6l7EfkAN8LErDQXi5uvpCLzRfGljEK19wO3SqGLiRs8XHrCHAV5 Emkr+t6/gXVKVLWbZCftN31d5gTzKSRrDDNqzxma9LZoxyVPnu6in9JUJkByyS9Xsu+IVV cbDX9m4phntUIKHBISwNvJHNO3BpGy6H3H67SLOhtccfgCgCrRPekpbWpVnXvBpzCSPhOL tT8W/Fecq4epIuZUwtuYkg3TY+dEUujoJ/3EufPBAb7PUBqWpnVTQkvbYaHbZhBWmTAQjl wuZdJq6kEU/Uq4lnsjhMOQzViqVACvQHKO7f4hpkoiUTxEcqZWRjXy6sKyFFVg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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 did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4NylG44Z6pzG9N; Fri, 20 Jan 2023 03:23:56 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 30K3Nu6g042848; Fri, 20 Jan 2023 03:23:56 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 30K3Nu6w042847; Fri, 20 Jan 2023 03:23:56 GMT (envelope-from git) Date: Fri, 20 Jan 2023 03:23:56 GMT Message-Id: <202301200323.30K3Nu6w042847@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Konstantin Belousov Subject: git: 4ab02274ed39 - stable/13 - Move INVLPG to pmap_quick_enter_page() from pmap_quick_remove_page(). List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@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/13 X-Git-Reftype: branch X-Git-Commit: 4ab02274ed392d088f4bbd17811a668d657a63bc Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=4ab02274ed392d088f4bbd17811a668d657a63bc commit 4ab02274ed392d088f4bbd17811a668d657a63bc Author: Konstantin Belousov AuthorDate: 2022-12-29 20:48:51 +0000 Commit: Konstantin Belousov CommitDate: 2023-01-20 03:22:02 +0000 Move INVLPG to pmap_quick_enter_page() from pmap_quick_remove_page(). Tested by: pho (cherry picked from commit 231d75568f169fe6adc30373c12512b992c5c672) --- sys/amd64/amd64/pmap.c | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/sys/amd64/amd64/pmap.c b/sys/amd64/amd64/pmap.c index 62fa64881c7b..e990ed0b93af 100644 --- a/sys/amd64/amd64/pmap.c +++ b/sys/amd64/amd64/pmap.c @@ -10275,6 +10275,13 @@ pmap_quick_enter_page(vm_page_t m) return (PHYS_TO_DMAP(paddr)); mtx_lock_spin(&qframe_mtx); KASSERT(*vtopte(qframe) == 0, ("qframe busy")); + + /* + * Since qframe is exclusively mapped by us, and we do not set + * PG_G, we can use INVLPG here. + */ + invlpg(qframe); + pte_store(vtopte(qframe), paddr | X86_PG_RW | X86_PG_V | X86_PG_A | X86_PG_M | pmap_cache_bits(kernel_pmap, m->md.pat_mode, 0)); return (qframe); @@ -10287,14 +10294,6 @@ pmap_quick_remove_page(vm_offset_t addr) if (addr != qframe) return; pte_store(vtopte(qframe), 0); - - /* - * Since qframe is exclusively mapped by - * pmap_quick_enter_page() and that function doesn't set PG_G, - * we can use INVLPG here. - */ - invlpg(qframe); - mtx_unlock_spin(&qframe_mtx); } From nobody Fri Jan 20 03:23:57 2023 X-Original-To: dev-commits-src-branches@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 4NylG63LdHz30vxQ; Fri, 20 Jan 2023 03:23:58 +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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4NylG56RWLz3p8H; Fri, 20 Jan 2023 03:23:57 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1674185037; 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=g1uezIMgK1mZ97FI6HFwiFnbi53Cu2TPWlYVIZZ361c=; b=mY7K5sai7/rbR5hFYauZ8Tvuyz/LDE7t7Io57K/JoHJ0ursXDq0pWJ+b2g+mwvk53Nm8ew yZe7fhyhVPLsl6nghgd8gnWUA4XTBiyV3IfalpJFAcqIIIO+aIwTxluiNykYCbpmM24JjD YX6AJuzGJWtkTQnmGdiuYYFO7motQb5FDmc9QudFMtN/L2+QYpOd5OdATA6z1KwQllVIb9 bE156Wqe4Gb9bYIgjaqsIF2BE4QQAp9MTYxWWIQXNxtK5bVsKyRbm7FuRl6DXih9etcdKZ 28tV+CK78s/ajpLxUeEtqq0W17amBZj2rqmVKAlxErXgdJmpgTjjxdRggMqBwA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1674185037; 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=g1uezIMgK1mZ97FI6HFwiFnbi53Cu2TPWlYVIZZ361c=; b=ugSC8glHcv/xamPORQOLxZUFA5l9YtBFxsZFDvn818AYNmg57d+4UropYgrt8tXYMIqETg GNUyUBEbKPUCoFcqZtKSSpcIzGvcBfuOSpQLwbt+zw5gui1gdO9Lpw+VnxHaT2Xyto68qh AwMh1xvTZKXyWI+pby1av8hHPEF/7MHLiH3+Wc9+ZZXW4dnltEIEBxKFJ5+55ijxWbfVYL LQKrGCjJKQB5uJmEZGbsOcD0fub1iwLvFiefhttIgA+MTM2o0IMe0QsCNIawRxyyb0X7Rs 98ioKFYXz1Z/17Zu0TkTco62m431I2RPVoJ5rPwvpEXoQj0OV22p5OGFfe1W4A== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1674185037; a=rsa-sha256; cv=none; b=uczk1xwKc0Ryd6Ja5pQPnCvggoKYi0+3EdBGkkUKTZyNy+k/6Bbq/wgokJTp3d+PUebS+A pvpA+vaCO7IMZX4ql6+rxcRtsEHG/iK3Tq5c7QwKZK2AVBz43qzRfISfzll0xVw8WwLnvL fzYYofCkdRZjNE1w//S9mHxP1WZUp//LquUck8YzHxehQWAUT3M79D66lejaxsmlKjzC6N Z50VxbYlrwaqEQJ5pHp2uzvKk5leo7b2WOnL3gSQOfmmeqAsTPdKAUEL4OInM+Iy87sZk6 Kg1/MLOfeLUnS6DD7olvVDkpZMTMRCl2Qz4dNiKcqHUzDTccE8+QtThRt3mHhQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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 did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4NylG55XtDzG9P; Fri, 20 Jan 2023 03:23:57 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 30K3Nvjg042872; Fri, 20 Jan 2023 03:23:57 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 30K3NvKn042871; Fri, 20 Jan 2023 03:23:57 GMT (envelope-from git) Date: Fri, 20 Jan 2023 03:23:57 GMT Message-Id: <202301200323.30K3NvKn042871@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Konstantin Belousov Subject: git: 1532ec2ba279 - stable/13 - amd64: be more precise when enabling the AlderLake small core PCID workaround List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@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/13 X-Git-Reftype: branch X-Git-Commit: 1532ec2ba2794af0d0b20832a154eeda2fa0e1cc Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=1532ec2ba2794af0d0b20832a154eeda2fa0e1cc commit 1532ec2ba2794af0d0b20832a154eeda2fa0e1cc Author: Konstantin Belousov AuthorDate: 2023-01-03 10:13:07 +0000 Commit: Konstantin Belousov CommitDate: 2023-01-20 03:22:10 +0000 amd64: be more precise when enabling the AlderLake small core PCID workaround Tested by: pho (cherry picked from commit a2c08eba43a2c0ebeac7117f708fb9392022a300) --- sys/amd64/amd64/initcpu.c | 35 ++++++++++++++++++++++------------- sys/amd64/amd64/machdep.c | 8 ++++++++ sys/amd64/amd64/pmap.c | 3 --- sys/amd64/include/md_var.h | 1 + 4 files changed, 31 insertions(+), 16 deletions(-) diff --git a/sys/amd64/amd64/initcpu.c b/sys/amd64/amd64/initcpu.c index 08385d3095d0..cddf8502437e 100644 --- a/sys/amd64/amd64/initcpu.c +++ b/sys/amd64/amd64/initcpu.c @@ -247,6 +247,26 @@ cpu_auxmsr(void) return (PCPU_GET(cpuid)); } +void +cpu_init_small_core(void) +{ + u_int r[4]; + + if (cpu_high < 0x1a) + return; + + cpuid_count(0x1a, 0, r); + if ((r[0] & CPUID_HYBRID_CORE_MASK) != CPUID_HYBRID_SMALL_CORE) + return; + + PCPU_SET(small_core, 1); + if (pmap_pcid_enabled && invpcid_works && + pmap_pcid_invlpg_workaround_uena) { + PCPU_SET(pcid_invlpg_workaround, 1); + pmap_pcid_invlpg_workaround = 1; + } +} + /* * Initialize CPU control registers */ @@ -255,7 +275,6 @@ initializecpu(void) { uint64_t msr; uint32_t cr4; - u_int r[4]; cr4 = rcr4(); if ((cpu_feature & CPUID_XMM) && (cpu_feature & CPUID_FXSR)) { @@ -319,18 +338,8 @@ initializecpu(void) (cpu_stdext_feature2 & CPUID_STDEXT2_RDPID) != 0) wrmsr(MSR_TSC_AUX, cpu_auxmsr()); - if (cpu_high >= 0x1a) { - cpuid_count(0x1a, 0, r); - if ((r[0] & CPUID_HYBRID_CORE_MASK) == - CPUID_HYBRID_SMALL_CORE) { - PCPU_SET(small_core, 1); - if (pmap_pcid_enabled && - pmap_pcid_invlpg_workaround_uena) { - PCPU_SET(pcid_invlpg_workaround, 1); - pmap_pcid_invlpg_workaround = 1; - } - } - } + if (!IS_BSP()) + cpu_init_small_core(); } void diff --git a/sys/amd64/amd64/machdep.c b/sys/amd64/amd64/machdep.c index cfe7e2518e58..3c365b5d6e62 100644 --- a/sys/amd64/amd64/machdep.c +++ b/sys/amd64/amd64/machdep.c @@ -1352,6 +1352,14 @@ hammer_time(u_int64_t modulep, u_int64_t physfree) pmap_pcid_enabled = 0; } + /* + * Now we can do small core initialization, after the PCID + * CPU features and user knobs are evaluated. + */ + TUNABLE_INT_FETCH("vm.pmap.pcid_invlpg_workaround", + &pmap_pcid_invlpg_workaround_uena); + cpu_init_small_core(); + link_elf_ireloc(kmdp); /* diff --git a/sys/amd64/amd64/pmap.c b/sys/amd64/amd64/pmap.c index e990ed0b93af..facbc6d3dd81 100644 --- a/sys/amd64/amd64/pmap.c +++ b/sys/amd64/amd64/pmap.c @@ -2524,9 +2524,6 @@ pmap_init(void) VM_PAGE_TO_PHYS(m); } } - - TUNABLE_INT_FETCH("vm.pmap.pcid_invlpg_workaround", - &pmap_pcid_invlpg_workaround_uena); } SYSCTL_UINT(_vm_pmap, OID_AUTO, large_map_pml4_entries, diff --git a/sys/amd64/include/md_var.h b/sys/amd64/include/md_var.h index 53139711bbff..c8610f495bfe 100644 --- a/sys/amd64/include/md_var.h +++ b/sys/amd64/include/md_var.h @@ -66,6 +66,7 @@ void amd64_bsp_ist_init(struct pcpu *pc); void amd64_syscall(struct thread *td, int traced); void amd64_syscall_ret_flush_l1d(int error); void amd64_syscall_ret_flush_l1d_recalc(void); +void cpu_init_small_core(void); void doreti_iret(void) __asm(__STRING(doreti_iret)); void doreti_iret_fault(void) __asm(__STRING(doreti_iret_fault)); void flush_l1d_sw_abi(void); From nobody Fri Jan 20 03:23:58 2023 X-Original-To: dev-commits-src-branches@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 4NylG73THKz30vrw; Fri, 20 Jan 2023 03:23:59 +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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4NylG70gD4z3pF3; Fri, 20 Jan 2023 03:23:59 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1674185039; 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=pahgU0hMgRco8aZRhDyzNnu8U4gcQuPJml38c1cbUx4=; b=sr7U0crWJXQdR1yHSKy17LJnrfO3PKqedrek4SLrc7OBtDQRfLVlK4ZwZCsbqUrCxP5pWX ySO5h2LEVU6GDr5te3+lOI4yjt606RetqhBHmnMqDUdWQn0wLNxfC8UZHwAHGyEVjlsJtD CPKdy0g7hE2f03q+zVzks25gQgfpQ5ZXtHIwxgLKPyCN4AJNE5O7sydELv+Br4UlZt/30B YgfG/j9icD+TZem6vh5OzU2Q93Oxa/2EBfmncSi6LUGtbhHiA0v0l+47JZ33te8ihBlYXi 9NUJqC/ad/FsECEK1eMaGwy6zCuHJtegFdGFRYPiO3PTRJ3XWrOtKASjeIz/7w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1674185039; 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=pahgU0hMgRco8aZRhDyzNnu8U4gcQuPJml38c1cbUx4=; b=rzsDSVJ+hIDPMTUf02amt/slXQK6sFevZD/F1Bw32/FMkvFYKbwch5Tri+2MFhYkd6irnb I8mWCl3aKcFx/0J0HnBo19zxMMiPfozm5h5RnCxCpWQThnnJcgSGU0xOZKiMq9IDkTeOmP 59jd1TTj5Fd/BIeTfFmF1ACDkTR/wtJoMZU3bPx067meT13/i8RYPLeLAtDOtvUuSYkfFY CbLf9bjx2O0ECAVP6Q+bqpkE9YYEXQj4EsLr8j/DX2Cz6BWOKhANcN2pvVmkiaJpam65g5 JOKzm4eNkChJRyK770+vG4+417r43zPlc3J4cMA3jWs/22NyCTMCAIOSz2n/Mw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1674185039; a=rsa-sha256; cv=none; b=ZK7liFZ13UjVUx1F2518rJ1zGL3xHL3cPazohSjxHqrQ3Ky6kaiVeMHyRz+VKrnak2wY8v vjjl8AXHze6l9T14WCpeUwgAc/gkAOXQTNQ3dOfxY12M0d87gwnUhk68Di4gYLXQjZuwHV yjxjUCeGjrHN9F1Jk4p61WRBYz+pMjGO3eUYMkOMetHE7LJobdr2TCtA0h12aGjWEKAdm+ uyNxavwI3MQXV0WuDljSSSxOckga8fjTIbdxFQF+6+qMjA6SvzeAKggD6bUzNVutKuSjDF 7x2J2MKfFky0XlV6ZgPSyNQFL7Vbqh1Mad6d5TadgH9PCdelQgIaBZxVq9SWcg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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 did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4NylG66v1MzFyv; Fri, 20 Jan 2023 03:23:58 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 30K3NwMA042902; Fri, 20 Jan 2023 03:23:58 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 30K3NwZ2042901; Fri, 20 Jan 2023 03:23:58 GMT (envelope-from git) Date: Fri, 20 Jan 2023 03:23:58 GMT Message-Id: <202301200323.30K3NwZ2042901@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Konstantin Belousov Subject: git: 2e6132536f70 - stable/13 - amd64 pmap.h: make it easier to use the header for other consumers List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@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/13 X-Git-Reftype: branch X-Git-Commit: 2e6132536f703a56648def0b9007c1506dccd9cd Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=2e6132536f703a56648def0b9007c1506dccd9cd commit 2e6132536f703a56648def0b9007c1506dccd9cd Author: Konstantin Belousov AuthorDate: 2023-01-04 10:31:16 +0000 Commit: Konstantin Belousov CommitDate: 2023-01-20 03:22:17 +0000 amd64 pmap.h: make it easier to use the header for other consumers Tested by: pho (cherry picked from commit ad97b9bbfccdb36f17788033903b1dbf508fcb96) --- sys/amd64/include/pmap.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/sys/amd64/include/pmap.h b/sys/amd64/include/pmap.h index 7b86f9e139e1..0faee81a67c5 100644 --- a/sys/amd64/include/pmap.h +++ b/sys/amd64/include/pmap.h @@ -548,6 +548,7 @@ pmap_invalidate_cpu_mask(pmap_t pmap) return (&pmap->pm_active); } +#if defined(_SYS_PCPU_H_) && defined(_MACHINE_CPUFUNC_H_) /* * It seems that AlderLake+ small cores have some microarchitectural * bug, which results in the INVLPG instruction failing to flush all @@ -565,6 +566,7 @@ pmap_invlpg(pmap_t pmap, vm_offset_t va) invlpg(va); } } +#endif /* sys/pcpu.h && machine/cpufunc.h */ #endif /* _KERNEL */ From nobody Fri Jan 20 03:24:00 2023 X-Original-To: dev-commits-src-branches@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 4NylG83KChz30vmp; Fri, 20 Jan 2023 03:24:00 +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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4NylG81lrXz3pFQ; Fri, 20 Jan 2023 03:24:00 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1674185040; 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=snIIuZ+APLEhima/bk5YYSL0liOeNsABEDHJ/eX4hQs=; b=LEbqHdIlNkJiZVH+vyMf+p+RnIgdsawSimVrl9f8Kt0C7/tcVMzQk0HD0MxsSNcGmg8hTJ xSUiuBalNqYlww04Rk8o9e4FUfNzOaVQDuYNqgECIe+NzuuBvYaFtwuMe8Z/tFp/N8WFTd N7+tiPIIHCG8KJFexGnHc/kkdmT2eygL3Upnsdx5knA7AQrCLmeBI3NzmGYCiCfznUrPI7 tKRx4A/5LzOjWt7bHEtjHAtpAFqFUh3rOHk/qwpPa+TQFtZqau/LdzbN70Zh97d6oJ/SLY N67ZyhObraeikmm0TGu0L7WJz6+bIdAMLe8aZL7c4mcH4PbXx8TjXLXizwHkoQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1674185040; 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=snIIuZ+APLEhima/bk5YYSL0liOeNsABEDHJ/eX4hQs=; b=KjXDzvgXCti6/qFTHTDzoDvA0lAvGPh+ylt3emjqn61hePpUBYAxuaxCdJiSxYcQzjH02T 1dsp+P3tmtczki+L600YJ9MAlaw1ZefMpg1vqeoqfFggZG7y+SNis+CFy+jWV0vIxtTejp Rtyw5aB8zXy2DzwuFjKi7FN30IeAWBnXoBd/17DaqnlEes3/ds2eJCO1PwPcyxNLLeJFQQ LmGyciKcxB77qT1mSxTYQunUxmLCVHqQ+fyHaFxquJJFKpGrZqK3/y5dHba7JBPFSUZKns hOKedeWcK8U0smyi8CRohu8NZ7gqnwSqyc2lWdezlQhuURkmcvKvHO8vB0TSEQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1674185040; a=rsa-sha256; cv=none; b=ZEbTWcbp1lDiCKCcSwDopfBjFY4d4KkaRiAXUgp8sWLhERW02swwQe6KqRtTfOd5iV/WED IKXPYKCuni1NwjbhaLSoonrqsTxlEQJGRUoNIOXhCJICWpCxk/Ix5PAzbiqPbJ7GZDLL99 4xMu6+1UmXgcibrDCRAeeN3ly2/ad7fujgA/9CsrNSuBL+mVlDVbp6LZhi5cvfI9/mdlY1 d9czbY55O5y/EphJuAZB6OXke03CFHrAu7TPxYebmq+yUL+ZlvjxoWsjdZpEW1XL9nf/jk IW0QAJCp0KoBpQdtmeN4QC8o3aQMnKYYzOOdeoVttPtRX63+kxyW91jK7cgE/g== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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 did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4NylG80jvtzFf3; Fri, 20 Jan 2023 03:24:00 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 30K3O0ZV042930; Fri, 20 Jan 2023 03:24:00 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 30K3O0mo042929; Fri, 20 Jan 2023 03:24:00 GMT (envelope-from git) Date: Fri, 20 Jan 2023 03:24:00 GMT Message-Id: <202301200324.30K3O0mo042929@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Konstantin Belousov Subject: git: 99dcb59a67c2 - stable/13 - i386: print trampoline disposition value for verbose boot List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@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/13 X-Git-Reftype: branch X-Git-Commit: 99dcb59a67c269df380b3b0474ddf91a898d4d34 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=99dcb59a67c269df380b3b0474ddf91a898d4d34 commit 99dcb59a67c269df380b3b0474ddf91a898d4d34 Author: Konstantin Belousov AuthorDate: 2023-01-06 18:18:51 +0000 Commit: Konstantin Belousov CommitDate: 2023-01-20 03:22:26 +0000 i386: print trampoline disposition value for verbose boot Tested by: pho (cherry picked from commit 29bfaf1c6d8bc0a06aaa7e09363544769eade3c0) --- sys/i386/i386/machdep.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/sys/i386/i386/machdep.c b/sys/i386/i386/machdep.c index 22a40a4151c3..27a323bce62a 100644 --- a/sys/i386/i386/machdep.c +++ b/sys/i386/i386/machdep.c @@ -1654,6 +1654,8 @@ machdep_init_trampoline(void) /* Re-initialize new IDT since the handlers were relocated */ setidt_disp = trampoline - start_exceptions; + if (bootverbose) + printf("Trampoline disposition %#zx\n", setidt_disp); fixup_idt(); r_idt.rd_limit = sizeof(struct gate_descriptor) * NIDT - 1; From nobody Fri Jan 20 03:24:01 2023 X-Original-To: dev-commits-src-branches@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 4NylG954c1z30vpd; Fri, 20 Jan 2023 03:24:01 +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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4NylG92ZKxz3pMj; Fri, 20 Jan 2023 03:24:01 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1674185041; 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=T1LQVm2Ts+HzcN4C9OL9fQTcQ1xSofDUMSTliIrP2lM=; b=U8Vth8TK5s0QHjjjwh+AO36AK2q68yzjDi4db/EWUH20/ruiWXievJIsZqHr8rPFFKXDHx jmMw7vEMAxyRUUMJhIH1fssx3UMgeEc+6C3xqHjaS4Dz88Er+lHQ+o1OU1dwLExnRk5aLT eHbc4p1W1RDYh3zvxQS4GaI9UnBImWtTOFXuxyqmrTKTNG2c2WLv8Q596PGZXH9fC5EKYj Mkenmpsh0KTQG8bKfbCY67NWvHAyWTUyeAIHiwpgTHPbY7FZiJ1JeRp7fsXVgP237fqR7v +ybOYYET5/msc4LlnAvZaowPiJWxU++UZaZP1UZc0CyM9DQkoX1TZSeCG8ciwg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1674185041; 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=T1LQVm2Ts+HzcN4C9OL9fQTcQ1xSofDUMSTliIrP2lM=; b=BzUjRaJxswMalGx3KwQBeicL62rjzlnzZgC6FPv9oD1k3D+4b8Cm/EP6i/6I8ORgU742MI QQkVGD69al7HG37A5twITzFQBwipf6iThLmoxtgAvNBQzShtlv1nxu+evz00HOOVeiKN7i LvvEMqB9QMYeC9HuBmsmvu0t5yVc1xLb8fvcAqvzLi3B4pxLpM667q/hrtFTFCuSZt7v3B gJixr6y5f35eWk8umRNQOGFS7KpqnX10MdEnWL69J3ZgfWSyKrwefwPraLANVQGPP5DxVC 5h/ba2t+ogMsX7Fz9JkX/lkgLTEAVRRHwEBCFRzLyQ3ecU+VTTOK4i78Ure9Wg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1674185041; a=rsa-sha256; cv=none; b=MVB2TAyvV7+3aeEhtWmy+PG4OV8wV17ZW32ORflKFixt8KQ1CP4Enb16dCfO1asv80heZV A9jjdsyw7uA+whPPmV//h5EGqTyhdiHIcOAnrGkl10C/kU3PoA/KDA8COdfzNoR+pRoTDy Y24xC5SIVsQtmmTp2RFnO/koAyjA5JVJSDPfb1De2WNejSH+lW7MZa8iu2wU95hEzcfNrN 8RHE5BUt0LCamIqT5FwEpo3cY1gxfWyyKQsgTCvcEDQ7a8N725oLS38+MiNIG6jZlG7uiY s3EeaFwmUrRwRb1pSgslM+Q235p+S5yJIlEqB4VkPNlXa3bRBjiEFzywCzxW7A== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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 did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4NylG91h5TzFyw; Fri, 20 Jan 2023 03:24:01 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 30K3O1SI042954; Fri, 20 Jan 2023 03:24:01 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 30K3O1jp042953; Fri, 20 Jan 2023 03:24:01 GMT (envelope-from git) Date: Fri, 20 Jan 2023 03:24:01 GMT Message-Id: <202301200324.30K3O1jp042953@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Konstantin Belousov Subject: git: 9b9f054e7398 - stable/13 - Stop cleaning MNT_LOCAL on unmount List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@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/13 X-Git-Reftype: branch X-Git-Commit: 9b9f054e739887d18f2f5985d91ba5b954ad4a6a Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=9b9f054e739887d18f2f5985d91ba5b954ad4a6a commit 9b9f054e739887d18f2f5985d91ba5b954ad4a6a Author: Konstantin Belousov AuthorDate: 2023-01-06 16:38:44 +0000 Commit: Konstantin Belousov CommitDate: 2023-01-20 03:22:32 +0000 Stop cleaning MNT_LOCAL on unmount Tested by: pho (cherry picked from commit 1d9f3a37eb20305bfdd67788cfac5c51938226a4) --- sys/fs/cd9660/cd9660_vfsops.c | 3 --- sys/fs/ext2fs/ext2_vfsops.c | 3 --- sys/fs/msdosfs/msdosfs_vfsops.c | 3 --- sys/fs/smbfs/smbfs_vfsops.c | 3 --- sys/fs/tmpfs/tmpfs_vfsops.c | 4 ---- sys/fs/udf/udf_vfsops.c | 4 ---- sys/ufs/ffs/ffs_vfsops.c | 3 --- 7 files changed, 23 deletions(-) diff --git a/sys/fs/cd9660/cd9660_vfsops.c b/sys/fs/cd9660/cd9660_vfsops.c index 5d475bec93b8..6fd89be0f8c8 100644 --- a/sys/fs/cd9660/cd9660_vfsops.c +++ b/sys/fs/cd9660/cd9660_vfsops.c @@ -527,9 +527,6 @@ cd9660_unmount(mp, mntflags) dev_rel(isomp->im_dev); free(isomp, M_ISOFSMNT); mp->mnt_data = NULL; - MNT_ILOCK(mp); - mp->mnt_flag &= ~MNT_LOCAL; - MNT_IUNLOCK(mp); return (error); } diff --git a/sys/fs/ext2fs/ext2_vfsops.c b/sys/fs/ext2fs/ext2_vfsops.c index 74a7a08128b4..e35b989c285b 100644 --- a/sys/fs/ext2fs/ext2_vfsops.c +++ b/sys/fs/ext2fs/ext2_vfsops.c @@ -1056,9 +1056,6 @@ ext2_unmount(struct mount *mp, int mntflags) free(fs, M_EXT2MNT); free(ump, M_EXT2MNT); mp->mnt_data = NULL; - MNT_ILOCK(mp); - mp->mnt_flag &= ~MNT_LOCAL; - MNT_IUNLOCK(mp); return (error); } diff --git a/sys/fs/msdosfs/msdosfs_vfsops.c b/sys/fs/msdosfs/msdosfs_vfsops.c index cbfb0aead8b7..d7efa103581b 100644 --- a/sys/fs/msdosfs/msdosfs_vfsops.c +++ b/sys/fs/msdosfs/msdosfs_vfsops.c @@ -872,9 +872,6 @@ msdosfs_unmount(struct mount *mp, int mntflags) lockdestroy(&pmp->pm_checkpath_lock); free(pmp, M_MSDOSFSMNT); mp->mnt_data = NULL; - MNT_ILOCK(mp); - mp->mnt_flag &= ~MNT_LOCAL; - MNT_IUNLOCK(mp); return (error); } diff --git a/sys/fs/smbfs/smbfs_vfsops.c b/sys/fs/smbfs/smbfs_vfsops.c index d19816a7869c..c27b62693d7a 100644 --- a/sys/fs/smbfs/smbfs_vfsops.c +++ b/sys/fs/smbfs/smbfs_vfsops.c @@ -299,9 +299,6 @@ smbfs_unmount(struct mount *mp, int mntflags) mp->mnt_data = NULL; SMB_UNLOCK(); free(smp, M_SMBFSDATA); - MNT_ILOCK(mp); - mp->mnt_flag &= ~MNT_LOCAL; - MNT_IUNLOCK(mp); out: smbfs_free_scred(scred); return error; diff --git a/sys/fs/tmpfs/tmpfs_vfsops.c b/sys/fs/tmpfs/tmpfs_vfsops.c index 19d67b79c2e3..883cdd060ce6 100644 --- a/sys/fs/tmpfs/tmpfs_vfsops.c +++ b/sys/fs/tmpfs/tmpfs_vfsops.c @@ -536,10 +536,6 @@ tmpfs_unmount(struct mount *mp, int mntflags) tmpfs_free_tmp(tmp); vfs_write_resume(mp, VR_START_WRITE); - MNT_ILOCK(mp); - mp->mnt_flag &= ~MNT_LOCAL; - MNT_IUNLOCK(mp); - return (0); } diff --git a/sys/fs/udf/udf_vfsops.c b/sys/fs/udf/udf_vfsops.c index 132f4e7703d7..502d927ac0fe 100644 --- a/sys/fs/udf/udf_vfsops.c +++ b/sys/fs/udf/udf_vfsops.c @@ -542,10 +542,6 @@ udf_unmount(struct mount *mp, int mntflags) free(udfmp, M_UDFMOUNT); mp->mnt_data = NULL; - MNT_ILOCK(mp); - mp->mnt_flag &= ~MNT_LOCAL; - MNT_IUNLOCK(mp); - return (0); } diff --git a/sys/ufs/ffs/ffs_vfsops.c b/sys/ufs/ffs/ffs_vfsops.c index 754a6bedee13..8e719516b9ce 100644 --- a/sys/ufs/ffs/ffs_vfsops.c +++ b/sys/ufs/ffs/ffs_vfsops.c @@ -1482,9 +1482,6 @@ ffs_unmount(struct mount *mp, int mntflags) free(ump->um_fsfail_task, M_UFSMNT); free(ump, M_UFSMNT); mp->mnt_data = NULL; - MNT_ILOCK(mp); - mp->mnt_flag &= ~MNT_LOCAL; - MNT_IUNLOCK(mp); if (td->td_su == mp) { td->td_su = NULL; vfs_rel(mp); From nobody Fri Jan 20 11:23:23 2023 X-Original-To: dev-commits-src-branches@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 4NyxvH6vYKz2v1pM; Fri, 20 Jan 2023 11:23:23 +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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4NyxvH6RzQz3Mrs; Fri, 20 Jan 2023 11:23:23 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1674213803; 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=tRCrO+maIkGoNLHKVoCImgfrzPbvZv0yOoS3gVNeDRQ=; b=QVveyOeEa/WE9DEFAgejvRSo7a8xLnc+WIFZfvEtG5rF1M4pbZMF1zrMErdI10phaQUvqZ EfL5dt/A53UAPrTGmsEgmYKfMQlPJpjccxh5a24rqKIEv44FmyeLDLnNZeNkB+giKZx2AL WNQOQkzbuosKK+9T7lq73a6prcEvRI+oCJkQ85trsI4aXn5IpB8Gu4eJajzM5fhyZOX76F Ik3j+P3bhz+rgaBAomkPFyvZeR9s5IZL5syOGg48F1BBMKjQ396bKzvrB0CAgu1EYkem0c KsYCmvgVGDFGZ9cjZlAGYivAmcqE8RqZVl+qGEgpcEnfVH4ciJ1qVKzcbOol4w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1674213803; 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=tRCrO+maIkGoNLHKVoCImgfrzPbvZv0yOoS3gVNeDRQ=; b=dfN6EhuHv6pQHzXC6cS4gxJYzJ0Z/rYAu5i11x+VAOjPp/Zaa3i6a8mA4japfPbALNRFJ+ KI2ZoiTIgJncnxTEb3baugKR/Ebww+oiKRJs1ugYeqimebViZh3bl3QaDQTo/07BLsVdxT xvmoZBXGjZbPdF8U2Z5OP1W3LQT45TJ1az7TynrEmHABD6Im5S88o5PhK4tfbVAqD/kotr nnC2YameNzVnAYjzTTNZJ+6zLzA4CQY3RWaTT2aTQMCMJurzdy1+IMMwQkemVlNZWrUFGc gSN4LZ8Q7GDw45zJTvf43VtE4c7drDVICvnOkK+R901ZU8wKZO9qg9gFocSh+w== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1674213803; a=rsa-sha256; cv=none; b=T+UhFX2f/MVQ0xpv1EZWd0DH1AXXx5jPqTMGmIAJLg63mpRTxyTVjBKNzmd3p/BEeHqDBm uP+DHnliHf9FsPwaqGQ2IvbSui5XahLWVFjhjf6haIR9HgFSYgM4fwINwbTLz4D86iwbOF nEL44we9APoDFkyGLsLTY7wSt4POc0gp7J3Dn/R0A4JMZIENw6mykkxGOlogfG2Li51tli nnV1wkPwGxKb5PA82U82ll53jofH7vBkfHMbGSlBHrFmnrVsum0g45EFolJXKR6KCB9hqd 5Qdma2ipPTs2jw3G6bPilqaQk6N6mK0XccIO946Unmo1zU9hMFs48LZsWvG/WQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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 did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4NyxvH5VPkzTLY; Fri, 20 Jan 2023 11:23:23 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 30KBNNr8028074; Fri, 20 Jan 2023 11:23:23 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 30KBNNcW028073; Fri, 20 Jan 2023 11:23:23 GMT (envelope-from git) Date: Fri, 20 Jan 2023 11:23:23 GMT Message-Id: <202301201123.30KBNNcW028073@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Konstantin Belousov Subject: git: 1852ca25dd2e - stable/13 - Remove merge conflict leftovers List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@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/13 X-Git-Reftype: branch X-Git-Commit: 1852ca25dd2e8862e1f84c45a1140d1c508d0f59 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=1852ca25dd2e8862e1f84c45a1140d1c508d0f59 commit 1852ca25dd2e8862e1f84c45a1140d1c508d0f59 Author: Konstantin Belousov AuthorDate: 2023-01-20 11:21:08 +0000 Commit: Konstantin Belousov CommitDate: 2023-01-20 11:22:57 +0000 Remove merge conflict leftovers This is a direct commit to stable/13. Reported by: Stefan Grundmann via https://github.com/freebsd/freebsd-src/pull/639 --- tests/sys/posixshm/posixshm_test.c | 6 ------ 1 file changed, 6 deletions(-) diff --git a/tests/sys/posixshm/posixshm_test.c b/tests/sys/posixshm/posixshm_test.c index a7b2e19f38af..9d5832999b9d 100644 --- a/tests/sys/posixshm/posixshm_test.c +++ b/tests/sys/posixshm/posixshm_test.c @@ -1781,13 +1781,7 @@ ATF_TP_ADD_TCS(tp) ATF_TP_ADD_TC(tp, cloexec); ATF_TP_ADD_TC(tp, mode); ATF_TP_ADD_TC(tp, fallocate); -<<<<<<< HEAD -||||||| parent of 91ddfd352f59 (posixshm_test: add naive page accounting test) - ATF_TP_ADD_TC(tp, fspacectl); -======= - ATF_TP_ADD_TC(tp, fspacectl); ATF_TP_ADD_TC(tp, accounting); ->>>>>>> 91ddfd352f59 (posixshm_test: add naive page accounting test) ATF_TP_ADD_TC(tp, largepage_basic); ATF_TP_ADD_TC(tp, largepage_config); ATF_TP_ADD_TC(tp, largepage_mmap); From nobody Fri Jan 20 13:03:32 2023 X-Original-To: dev-commits-src-branches@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 4Nz06s0tGnz2sTx4; Fri, 20 Jan 2023 13:03: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Nz06s0P61z3m64; Fri, 20 Jan 2023 13:03:33 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1674219813; 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=hxzF7eKcQ98BTmk5AvB3chbENOujoYI6IrjCpOgSb/0=; b=DJ/PEzTYGHjPYWS2ALbuPZ60/Hd4gru+rZsO+onFKnt8a2jDHBDor/xMFatCk4wxsb/dmC KyTmWyd5TEOh6vMJrSWnvcSQFL2JifSDMEPxzv9ySPnjkWvbJzt40lM2wmTKDPyQhzqzPz RG+NrnWxjnFg8BgecBYmnND8hULyPvfSVYNZKgbmoNiZeJ8Ci1Ob6EKHJubX1tyI3CB3MK RXC04KGNT2jQxCXTVBKVWTiwWRwHvqP9l67IrTFQISHQhg/w86ArEO4jdYPiO/lM/VriPh BqkeVoZczwVcGAbNKGgPEfttrWjfGEH1VtO1FlKz40lwkVQfj7fwYWqY0+I+hw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1674219813; 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=hxzF7eKcQ98BTmk5AvB3chbENOujoYI6IrjCpOgSb/0=; b=Sh8N2bAnkvvpDXBtsJW/68iUkb6H8+WHtrbU4lo2SNQBKOYlt6yh/4u9KqMhRIHHmGIQ3H h3wHtEXPvhjIg6RaCGnt7YpfbVP4nBOHDyKJrIds2RaobDFGPt8x8GuKDBA0tboRyZH5AF X7UlSWEF2bypYYTCcBLU4grDI8B6deqVLGX7Vw6bXZtoSDTNrUvjcPikW1Pi8oKDFDSejM 8NgFsiPxpjppUYdqzMGiJCS2rntCOa0VRHiDc+5HYFXydrcjN59AUrr+oOJj+cGCThheK3 BDSyXQWlyfhT8uNQKIRdFZmBIsRzyenuOVi6Z4RylN0oM6d+EG/0beqHG+37gQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1674219813; a=rsa-sha256; cv=none; b=l7sJKdvPqqzakjD+iPWeSWnME3/vS54+wlo+uwzv/+7wUsYtGBiked0UzJAxUSMaGYxGcD OF7ThGIWmVnJISfAPm2zF+Hxx4rK2X/OPXx8N9L2dem3t5wyQ3OX1+QGOeTMtS/gpzwqQ2 gSITHn+2YM/x4Kmg6rd8DULtf2dCv2kvgBX4YWvIBP3r4TP/HfjaPbJhnIE6u7XrNMjOPb zdse8sVMCCDuSvR0/w9RZVHZ9e8CWt3tYjfjqditXv31vusk/BmSkZcROo5mrBe29no5eT rtyLRmTjrlLxJGzisYL1gtETs56w6oZ6wI2y4XYUSY7o9m/GbOfQXkmOHHET4g== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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 did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Nz06r6YDyzWlx; Fri, 20 Jan 2023 13:03:32 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 30KD3WA9070639; Fri, 20 Jan 2023 13:03:32 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 30KD3WKr070638; Fri, 20 Jan 2023 13:03:32 GMT (envelope-from git) Date: Fri, 20 Jan 2023 13:03:32 GMT Message-Id: <202301201303.30KD3WKr070638@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Konstantin Belousov Subject: git: c48e46d52876 - stable/13 - tests/sys/posixshm/posixshm_test.c: Fix build for real List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@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/13 X-Git-Reftype: branch X-Git-Commit: c48e46d5287688950f6e787e783ce4f51db7d39d Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=c48e46d5287688950f6e787e783ce4f51db7d39d commit c48e46d5287688950f6e787e783ce4f51db7d39d Author: Konstantin Belousov AuthorDate: 2023-01-20 13:02:12 +0000 Commit: Konstantin Belousov CommitDate: 2023-01-20 13:03:10 +0000 tests/sys/posixshm/posixshm_test.c: Fix build for real Remove unused variables. This is a direct commit to stable/13. --- tests/sys/posixshm/posixshm_test.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/tests/sys/posixshm/posixshm_test.c b/tests/sys/posixshm/posixshm_test.c index 9d5832999b9d..f0784f7b8769 100644 --- a/tests/sys/posixshm/posixshm_test.c +++ b/tests/sys/posixshm/posixshm_test.c @@ -992,9 +992,8 @@ ATF_TC_BODY(fallocate, tc) ATF_TC_WITHOUT_HEAD(accounting); ATF_TC_BODY(accounting, tc) { - struct spacectl_range range; struct stat st; - off_t shm_sz, len; + off_t shm_sz; size_t page_size; int fd, error; From nobody Fri Jan 20 21:08:02 2023 X-Original-To: dev-commits-src-branches@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 4NzBst4KjMz310RY; Fri, 20 Jan 2023 21:08:02 +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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4NzBst3st0z3PnX; Fri, 20 Jan 2023 21:08:02 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1674248882; 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=ZTBD/ZEhsb/VakqygxTM6CmoFuBCuMghLPUtxiBRueQ=; b=Rgy9mM7bbO2e4BdwW3panUmc+IplXWUt/3qY3flO7bRKKEpstodUmqcqnRYdUmD7lKno6C HlB0y0oJ8wzATJrYbXDbYkorhT/tDsUW5etzbXORkK66BGR4QGbJUhdzmiZtrBIVgv09XM VM2k+Xbdrys1MSns97BSPB/2zmlsp77gh1LXm0UZVderBRv3nxp9i8ZqQsOOpqVjhDW3sr dPZWEn8t9A9srs+0+98OyVSaFervdPoNWDeR5QucH98Il8gFleNhUT+Ct58YVcrWgxAxZJ r7/sfn8PoKQZ8/eMfvnhBTJMen+OqoUpbZJZTdKC2vWVyXV+QSPYpjRUnL9rzw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1674248882; 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=ZTBD/ZEhsb/VakqygxTM6CmoFuBCuMghLPUtxiBRueQ=; b=dlaZj3/Lpm44JncYHNs49nFWquFdE9qI2aKXCc3bJO5WmC3ffxEKek3wvngv+tWVPSnbeA YcwosAEkWG74wU/7eisj559RDUCDrSu8AXWj1M38+8el4ajWiQQLFUNnOGjHTVouooegzH 0r4WGq/SosD/w7QEqA0PAOgYQTG5axTMXtQ6lfe+ig4L1v9T3oRCY7lAxmpBWJND8WkI6T GC2U/ITV1dHJpxAG0AR4JLNE7e8h7YxOkyEAYa3zhgT+Ad/ef8asheqFzbWWWA4AcKag98 EfVIDTGZKsyAjZFs5ifwhsJ2EnJyM8yk4oLrm5r+hgNLF78DaLNKFLcmxdVk3A== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1674248882; a=rsa-sha256; cv=none; b=aDNrWFdG060L8+ugwy/Bk6X0qokVKp1GdC9qwESbxG5pvd+3ga/TskPbdnSrDMr2daqH4+ V9QWuW7/FiPO/cAS8eReHxvT0G0vCmLnQaJ+MqRwMDoXHGNn7G8rJjXHwfU2PmsWF7tLeM uz3VEJNAbPEKh+9Y5qiSfQRRQcFvKLSUdNv318i3EG0j5FLmpYNuWfLHwK/XpXBO3GE4Yg snrD3wGOTwUYg8wXhXcTDjflZaky9ED20egYY4hbNSFfl/tDbnpVSUtO1xnDTd8hNvapuv +Swwqi2UBJV2RXmNbpg6wednoIEUEDAO2hTxXEcq/AnsxSVAHls9DKo+zqiSCg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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 did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4NzBst2x7QzlJV; Fri, 20 Jan 2023 21:08:02 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 30KL82oO058490; Fri, 20 Jan 2023 21:08:02 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 30KL82pk058489; Fri, 20 Jan 2023 21:08:02 GMT (envelope-from git) Date: Fri, 20 Jan 2023 21:08:02 GMT Message-Id: <202301202108.30KL82pk058489@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Ed Maste Subject: git: b338bdf7fb0d - stable/13 - openssh: remove mention of now-unused svn:keywords List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: emaste X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: b338bdf7fb0dfe771456a14cc4d8a08cc7b48033 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by emaste: URL: https://cgit.FreeBSD.org/src/commit/?id=b338bdf7fb0dfe771456a14cc4d8a08cc7b48033 commit b338bdf7fb0dfe771456a14cc4d8a08cc7b48033 Author: Ed Maste AuthorDate: 2023-01-16 14:52:00 +0000 Commit: Ed Maste CommitDate: 2023-01-20 21:07:27 +0000 openssh: remove mention of now-unused svn:keywords Reported by: gshapiro (cherry picked from commit 9b7eddfeed465d4062dbad178261b806e97d6b62) --- crypto/openssh/FREEBSD-upgrade | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/crypto/openssh/FREEBSD-upgrade b/crypto/openssh/FREEBSD-upgrade index fedbd80a2e3c..c8603577a2a2 100644 --- a/crypto/openssh/FREEBSD-upgrade +++ b/crypto/openssh/FREEBSD-upgrade @@ -73,10 +73,7 @@ $ git diff --diff-filter=M vendor/openssh/X.YpZ HEAD:crypto/openssh - Files that have modifications relative to the vendor code, and - only those files, must have the svn:keywords property set to - FreeBSD=%H and be listed in the 'keywords' file created by the - pre-merge script. + Review the diff for any unexpected changes. 12) Run the configure script: From nobody Fri Jan 20 21:08:03 2023 X-Original-To: dev-commits-src-branches@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 4NzBsv5JKyz310K0; Fri, 20 Jan 2023 21:08:03 +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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4NzBsv4c46z3Pnr; Fri, 20 Jan 2023 21:08:03 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1674248883; 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=Y6Zjuzvwjz6eXgMWoCJfVGPYAKrgutfU5sfO6BEutuA=; b=oGN1viU4nDIh/d2B/bzAWE7YvIOhzH4TByONhMH//qdWYcJpK4v+ArpVWgqDGbAxNMF54t KhVUcnUSYqONkRg2kdfxUTP9iYvf+WiGoTscIOPKaOuQJeHJa/S8xX63w6SxMJg4kvbPz9 GjTSU9uqZcn724BVZKzSz3sQrjIuyK+mkCbTQeYBuFGdPrUKdWiHLGLWgWHaP7uvLVCuhE womAV25SzjAmgLB/H6fBM+wtY3d1rK6eSCsSpSVQdEwF7Ahg/E9QGNUt0HxCLjS5vbWH1K ihBllFt9Zi6MB8Ym6/v0hl//a8KuoUaaOGs2qG8UtQQBEx7HkrBjCUcXCGXTEg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1674248883; 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=Y6Zjuzvwjz6eXgMWoCJfVGPYAKrgutfU5sfO6BEutuA=; b=Ul9KTjokQWP6k/ezIFGviCuAWSSxrs4zh9FoWHIYPT0T5AJRmaCdmmgvtYLQOtTz9vA08Q kNRPiDYnA/7eQwnUVJLFZrYkh2CjHUwAJSE/88xhZRLa1q1Xdw05NVhaA6kuv3ybzDJsFE FI5k9gzHQOS9zq5j1w+PkMe05op5DJvM55JqEoVgQDh84SN/v7+i6frNsZywDPHjqAmonv tRDeBgd/s2zlyLE+6tGQ1tUDYsGPTzRTT5rERbOYEC3kQ6nWHloJWm+3byQgcaJZLTwUfO YeKzXeFDPeQtKyCuqnKzCNKvdvGNkV+88iUo9STQze0Hxq9jTXWlMO1vJ4Q7xQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1674248883; a=rsa-sha256; cv=none; b=ZiabOrdX99xLxolYlVDdJGffXjkxhtuE57CBeek6UFkPPlP/9EvvOFzYq3kze771lKKAYm mWQ1b7ZBguAJTUgarqQ/wPhGsW65hp1ceBFdKI1NW+HzJXylR21MnRqAACCAopQpCQhlGY F/I7ov6XFIznnVpkYSEYtn3u3zarJup9YAlHLDbzV/kDOkQ78vhZlLzRHRmVqPEkIm3P1b Yga3SHA/atHcnVtUe47/cDKppuTjLfDomBnzjp+R/in8nSHpg59BDZtNPUPE/BYGy/Bv7D PHj2KpgEM9k+exBI2v3DDccfWBVc2j/ShZreyeYbtNTe8gUi+zM6pHdHS63eFA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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 did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4NzBsv3hJHzknc; Fri, 20 Jan 2023 21:08:03 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 30KL83Xw058515; Fri, 20 Jan 2023 21:08:03 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 30KL836E058514; Fri, 20 Jan 2023 21:08:03 GMT (envelope-from git) Date: Fri, 20 Jan 2023 21:08:03 GMT Message-Id: <202301202108.30KL836E058514@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Ed Maste Subject: git: c84ec3076e7d - stable/13 - bhyve nvme: Fix uninitialized pointer List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: emaste X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: c84ec3076e7de10d7475fd9694ad64603e264d88 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by emaste: URL: https://cgit.FreeBSD.org/src/commit/?id=c84ec3076e7de10d7475fd9694ad64603e264d88 commit c84ec3076e7de10d7475fd9694ad64603e264d88 Author: Chuck Tuffli AuthorDate: 2022-06-09 20:05:46 +0000 Commit: Ed Maste CommitDate: 2023-01-20 21:07:27 +0000 bhyve nvme: Fix uninitialized pointer The Dataset Management code could free an uninitialized pointer if the device doesn't support the Dataset Management command. PR: 264548 Reported by: Robert Morris (cherry picked from commit 7376c08cc67e65ee660d51873129e34745ef5dd4) --- usr.sbin/bhyve/pci_nvme.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/usr.sbin/bhyve/pci_nvme.c b/usr.sbin/bhyve/pci_nvme.c index 9704081c12af..da19bef1b779 100644 --- a/usr.sbin/bhyve/pci_nvme.c +++ b/usr.sbin/bhyve/pci_nvme.c @@ -2598,7 +2598,7 @@ nvme_opc_dataset_mgmt(struct pci_nvme_softc *sc, struct pci_nvme_ioreq *req, uint16_t *status) { - struct nvme_dsm_range *range; + struct nvme_dsm_range *range = NULL; uint32_t nr, r, non_zero, dr; int err; bool pending = false; From nobody Fri Jan 20 21:08:58 2023 X-Original-To: dev-commits-src-branches@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 4NzBtz06G1z310Xj; Fri, 20 Jan 2023 21:08:59 +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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4NzBty6mNtz3QHm; Fri, 20 Jan 2023 21:08:58 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1674248939; 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=8tk6y0EzMHjXfn2t/8DZmd16SF7+5qndyVstM2xSnQs=; b=cp86enf/ab5idZT4ZHT2U1AoFkSvcAQLU+OwhoAzRjPCVts6Jwoobq3Ety/0izDk55XUqW 4NWZp7q6J+pSppkDMJsVhE1PLjJXvt/BjjktxV07zXTrRl0egZDZ8pKD5pR8BUwteTz8Zg 0JuGtrdQq7ggRFzETC6vZlAMDY6Wh92aVKZyP0O20HGDjC8jps+zYPQxmBSwUejDU6YUnb rlRFHZ5Qi6+5iT9vIgnNYHUPNFpZcNxxEciis2EaYMr4AA+yTCk8l4t/hox5f3Q36UsGp4 HxZrIAZi8L7YW9e1StYaPnPFWH/y4S+2D2KOLeMJ4iPBHVth/I3gHxMzWUdk8Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1674248938; 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=8tk6y0EzMHjXfn2t/8DZmd16SF7+5qndyVstM2xSnQs=; b=AoqwC9msttOl3txEtP2Jrb5zRjJHGv1HgxWydxP9TIiSFKF7O2i8uW/v8dFBK9dwx6tdUK ojff5terk+xXsepFslTlLLZeMpW3+z86KNo+X5j6Zj9/ua90NoiNmjQ1dEx0RpwMhde7g8 J7MMY+7NWQJERYmBNJkANgzvfzDIUmstDdFlaqyS0B4HeV8PP3UsQafh9qgLaPIlOp/rgJ FMF2oDVTjR1uRCuHSe7JwhgIGJ6HONi3WHl1B6tfXUIrDHGkKDHKkEY8UO4Wef7coYpeBv 3HIMnOMGLtaN6BW8LuZYIh7e/8ekYz5//M/Bztuqp+O6/VxICudlEkxNBpVl5w== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1674248938; a=rsa-sha256; cv=none; b=QZDjrBTxEmzkT0Crg2m1j/S1CMH/CJ15YlL8XkBifyUKr7h7jblPkF/MSMmOO1FeF+GQyR ONY/LMgBShGOKf9LIub90C8QTKAksWKvcz77sNtI8mpZOZx2sT896SsCOh/ZNkzJ+90SrT DxjTQ3gPoBUiorKioVBLf7wfDUn9b5FrDI13dNsflAb8A2TQzr4H7oD+MfGtI1+AfwhbJl RJo9k8YGjJp4RtsH9/USHQr0PkN9ht4jKCoOeyv9Qiz51aHz12mxfEL79TfUffoOtKiGVR 158+J/BTDtPXuc0va1HN5XRm/irCvz0oymmO8jqkk1LG6CknyxhetDOK46sXOw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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 did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4NzBty5pB4zkyh; Fri, 20 Jan 2023 21:08:58 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 30KL8wma058782; Fri, 20 Jan 2023 21:08:58 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 30KL8wPt058781; Fri, 20 Jan 2023 21:08:58 GMT (envelope-from git) Date: Fri, 20 Jan 2023 21:08:58 GMT Message-Id: <202301202108.30KL8wPt058781@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Ed Maste Subject: git: d4e643f6a51d - stable/12 - bhyve nvme: Fix uninitialized pointer List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: emaste X-Git-Repository: src X-Git-Refname: refs/heads/stable/12 X-Git-Reftype: branch X-Git-Commit: d4e643f6a51d7fb8d8523419196449faa5fa047d Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/12 has been updated by emaste: URL: https://cgit.FreeBSD.org/src/commit/?id=d4e643f6a51d7fb8d8523419196449faa5fa047d commit d4e643f6a51d7fb8d8523419196449faa5fa047d Author: Chuck Tuffli AuthorDate: 2022-06-09 20:05:46 +0000 Commit: Ed Maste CommitDate: 2023-01-20 21:08:28 +0000 bhyve nvme: Fix uninitialized pointer The Dataset Management code could free an uninitialized pointer if the device doesn't support the Dataset Management command. PR: 264548 Reported by: Robert Morris (cherry picked from commit 7376c08cc67e65ee660d51873129e34745ef5dd4) (cherry picked from commit c84ec3076e7de10d7475fd9694ad64603e264d88) --- usr.sbin/bhyve/pci_nvme.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/usr.sbin/bhyve/pci_nvme.c b/usr.sbin/bhyve/pci_nvme.c index 5f7a13d492f2..0d5324a8977b 100644 --- a/usr.sbin/bhyve/pci_nvme.c +++ b/usr.sbin/bhyve/pci_nvme.c @@ -2103,7 +2103,7 @@ nvme_opc_dataset_mgmt(struct pci_nvme_softc *sc, struct pci_nvme_ioreq *req, uint16_t *status) { - struct nvme_dsm_range *range; + struct nvme_dsm_range *range = NULL; uint32_t nr, r, non_zero, dr; int err; bool pending = false; From nobody Sat Jan 21 21:33:26 2023 X-Original-To: dev-commits-src-branches@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 4NzqNk6wWZz2v3G4; Sat, 21 Jan 2023 21:33:26 +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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4NzqNk6LrXz3KfB; Sat, 21 Jan 2023 21:33:26 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1674336806; 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=6SDvAR/BaXDYcLLf0epsNamhcWmEYZVQAwjQARU49k4=; b=I5zo2ZApLXMgFRgCsMebUdi39fqDv9uuRcGECOpJ/y9H+510TrV5zcpgx2XwaLvw8IPY+x vO1DrtnQ3KwBpjTWvlKQI4ODiaEgxGPByM8wB2ZNuOn7J7RCkS6yghNqzBGeYHITjZvtf+ kACuvmt/VwrvIbRneX5cm6I/+1kbK3Y4c0FJY2pzFajRCp1MUolT8WSKB/OO+3rLsg88VU 63+vZDr0jZzpqpXN9tercVpmUsIDG4n6SVSMotGHqWV3Markr5szCVq2C4niQcuUqDALi3 vQ2XAM9SPkKsSI92D92zN+Z83yFHmt6JjxhHI4iZwSHzTNHHaT5TZydAVY4d4w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1674336806; 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=6SDvAR/BaXDYcLLf0epsNamhcWmEYZVQAwjQARU49k4=; b=rgaWOYLxgClas3BIFDjizB5k6zVwHTUpxJ7siDg2sX/7hXup6WpKpl9aVAkh01jWB8iUT9 cVm4uH5xGsYFLphXet75kgsN8qpY5bysZigT8Nta45wlZifB/3tJ3oC4uangyiEiLQvKmg damuCA5JlZRUd0KDFNtxfDyYL1zaixFXtzm4uxDJQ9WHfTkO4gcfXDT2iEU0WFnAFD7YB1 MxYBtZMKnFiZJaGMIT1DRQdfOkfByKbtVptCLmvIxzVoM3tPJrHxb/sAGXbyabf1ZXJxq1 84bd+0r9MB+ft5/alqb0rpUz4XeBNqmM9wfkNm7hP0KF3L71KgY6FriB5EknoQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1674336806; a=rsa-sha256; cv=none; b=gym3kENk9BSaYxBsslHwyQ2z8g/qjunojTzdIxkBSVoAJZwYrHlafIzq4q6IJ420AisHE2 iWxKi10FCu5XcPlvV8xqM/h+T8yEvqwOTidERoY+wqb6V5YtHAsl4EAjyPbXg8aoSDXRaf SnQCkqOuEBYODU4AJilSdpdOsqYO/bUuAcz9dTHg6SRBfBmbYJq+nYk2owfBSxgqiJf7pm RFLuIl2Lc141ereW807FcKxtyUxoPbScjx13gbjN1NyNNoYNa0dpo+k1pGtda/vPjgGRiP XnNzHofZ3WyCSDpY2izEtX5iVMJSS5yJI7PS19P7DnDKAAcbqk4fhlWCoMQI6w== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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 did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4NzqNk5N1xzQDq; Sat, 21 Jan 2023 21:33:26 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 30LLXQNq050386; Sat, 21 Jan 2023 21:33:26 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 30LLXQZJ050385; Sat, 21 Jan 2023 21:33:26 GMT (envelope-from git) Date: Sat, 21 Jan 2023 21:33:26 GMT Message-Id: <202301212133.30LLXQZJ050385@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Ed Maste Subject: git: 080dbf428796 - stable/13 - ng_bt: Remove an unused variable. List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: emaste X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: 080dbf428796bd2f7adfe086e8996e3e5617a86d Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by emaste: URL: https://cgit.FreeBSD.org/src/commit/?id=080dbf428796bd2f7adfe086e8996e3e5617a86d commit 080dbf428796bd2f7adfe086e8996e3e5617a86d Author: John Baldwin AuthorDate: 2022-04-08 00:01:26 +0000 Commit: Ed Maste CommitDate: 2023-01-21 21:31:20 +0000 ng_bt: Remove an unused variable. Leave a comment describing the field in the packet it represented. (cherry picked from commit 9f566782e0ba9973a78fd2405427b5de887ac213) --- sys/netgraph/bluetooth/hci/ng_hci_evnt.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/sys/netgraph/bluetooth/hci/ng_hci_evnt.c b/sys/netgraph/bluetooth/hci/ng_hci_evnt.c index 64ab4f0b36b9..b2cdf01423a2 100644 --- a/sys/netgraph/bluetooth/hci/ng_hci_evnt.c +++ b/sys/netgraph/bluetooth/hci/ng_hci_evnt.c @@ -382,7 +382,6 @@ le_advertizing_report(ng_hci_unit_p unit, struct mbuf *event) bdaddr_t bdaddr; int error = 0; int num_reports = 0; - u_int8_t event_type; u_int8_t addr_type; NG_HCI_M_PULLUP(event, sizeof(*ep)); @@ -395,10 +394,10 @@ le_advertizing_report(ng_hci_unit_p unit, struct mbuf *event) ep = NULL; for (; num_reports > 0; num_reports --) { - /* Get remote unit address */ - NG_HCI_M_PULLUP(event, sizeof(u_int8_t)); - event_type = *mtod(event, u_int8_t *); + /* event_type */ m_adj(event, sizeof(u_int8_t)); + + /* Get remote unit address */ NG_HCI_M_PULLUP(event, sizeof(u_int8_t)); addr_type = *mtod(event, u_int8_t *); m_adj(event, sizeof(u_int8_t)); From nobody Sat Jan 21 21:33:27 2023 X-Original-To: dev-commits-src-branches@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 4NzqNm0kb3z2v2wD; Sat, 21 Jan 2023 21:33:28 +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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4NzqNl73FCz3KWY; Sat, 21 Jan 2023 21:33:27 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1674336808; 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=8gt22IPsClsrLjbeX+nk4CnItMq1mUKeLH/lW3njJGQ=; b=WkLjH/1M4sf7gyFFrPS8A1M8VEhKGc/4nkTkqMjSmvVrF2cXnNepGZvYn8GsVAqRbujtLk cdToXjurrLazbidxMODzeDJnxZbWL4ZPafx2M0h/ShRA0ex7eD1C5kbMeVHVUp56UcvnFG gEu/p8b9H6nerTQZoobb7RbqSPYYcAd0e57jBAl5MptLm3bSGf/S3xLDpo6NpU0CZyiIQQ C9qNXS9LWhkcV1PvnOmZZsRaJyaEgjCOm5Mw2H6DdVctdjvIBWqW+hD5yTwz2gdftJvlcF 164gPtrQQEvbxZYjBGRHkT/Xv7EdiIrli3RGvYH1pDVgEXKSdST9xf7jatIuPA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1674336808; 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=8gt22IPsClsrLjbeX+nk4CnItMq1mUKeLH/lW3njJGQ=; b=mITg0IrD7Hx4txfHkD5wqhZRl5fZaOqAoSX+60TjddxfEjyL6NZ7XFrXnd+2mKxKxYVE7q zpPhmtLI+38UMSR+pSo4ibt1dHTppIybhWQIF+d1B6bWOtPESLMLVurPVa+HLgLhFONpWa Ih+OSbAtCx2ezpKHu+eGTbmc9MJyXWXSpy/XiiuUvwvMa9Kmry/qGPqsaaqZLfmnLc6Oap Se6WhYxssV2MZ5WFMIyZYTcxqRruBL8ZuKAUY23Ld41ZJAigXMwSntX1AHtC8NMtFvVpd1 NZjIl3GF8xnVP9Il2ABJmEUKnRu6d/NFq59OdVF88RvnV2YrWJe5zTxgIIm7Pg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1674336808; a=rsa-sha256; cv=none; b=FKuScdCs5aYScVN36pv5/YNV+Fwccnwrez0f12OpgnXc8YmP15M6adsqA5LItlKfaM8qNP o1BbIPB+pbNLlODV9gifkWAnWS8915qUwZgoY2xsw/F9GZZIvNczuNOfTdw1tSHRx0v5pt 1TjEU4Rn1OrACb1CMk6BaXWNAg+m3LR9kZ1ose+QN5PV1ELo0JEE+J1GY01KfFhcqkMUTl /qGmangyWALvP8HrjqZqKvZhr7SM0vVXirlYpcOv1Q0ZmLMljO1m5GN/EKcQpi3gkDy6k6 P867ehDwl3VPzatQ3dqbZuwHO3GfBuWtOG050goYSaa0VnjVqkCQEORh/XyYjA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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 did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4NzqNl5wklzPrD; Sat, 21 Jan 2023 21:33:27 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 30LLXRU6050410; Sat, 21 Jan 2023 21:33:27 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 30LLXRaj050409; Sat, 21 Jan 2023 21:33:27 GMT (envelope-from git) Date: Sat, 21 Jan 2023 21:33:27 GMT Message-Id: <202301212133.30LLXRaj050409@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Ed Maste Subject: git: 65be931e99d4 - stable/13 - ng_hci: handle NG_HCI_M_PULLUP failure in le_advertizing_report List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: emaste X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: 65be931e99d4178f488b8e3066b164ad8c46fff2 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by emaste: URL: https://cgit.FreeBSD.org/src/commit/?id=65be931e99d4178f488b8e3066b164ad8c46fff2 commit 65be931e99d4178f488b8e3066b164ad8c46fff2 Author: Ed Maste AuthorDate: 2022-11-01 13:55:22 +0000 Commit: Ed Maste CommitDate: 2023-01-21 21:31:25 +0000 ng_hci: handle NG_HCI_M_PULLUP failure in le_advertizing_report PR: 267396 Reported by: Robert Morris Reviewed by: takawata Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D37228 (cherry picked from commit 05c0c99ea37f2558155f346769a00b4180cb59ed) --- sys/netgraph/bluetooth/hci/ng_hci_evnt.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/sys/netgraph/bluetooth/hci/ng_hci_evnt.c b/sys/netgraph/bluetooth/hci/ng_hci_evnt.c index b2cdf01423a2..fec039d1f1f6 100644 --- a/sys/netgraph/bluetooth/hci/ng_hci_evnt.c +++ b/sys/netgraph/bluetooth/hci/ng_hci_evnt.c @@ -399,6 +399,10 @@ le_advertizing_report(ng_hci_unit_p unit, struct mbuf *event) /* Get remote unit address */ NG_HCI_M_PULLUP(event, sizeof(u_int8_t)); + if (event == NULL) { + error = ENOBUFS; + goto out; + } addr_type = *mtod(event, u_int8_t *); m_adj(event, sizeof(u_int8_t));