From nobody Wed Nov 10 14:52:04 2021 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id CB1811857B60; Wed, 10 Nov 2021 14:52: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 4Hq79J5RRmz4V6h; Wed, 10 Nov 2021 14:52:04 +0000 (UTC) (envelope-from git@FreeBSD.org) 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 9A7431A3ED; Wed, 10 Nov 2021 14:52: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 1AAEq4g7065815; Wed, 10 Nov 2021 14:52:04 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 1AAEq4le065814; Wed, 10 Nov 2021 14:52:04 GMT (envelope-from git) Date: Wed, 10 Nov 2021 14:52:04 GMT Message-Id: <202111101452.1AAEq4le065814@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Hans Petter Selasky Subject: git: ad8f078f66e5 - main - ifconfig(8): Don't set network interface capabilities when there is no change. List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: hselasky X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: ad8f078f66e51212cdccd91fe8b22fb81235018e Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch main has been updated by hselasky: URL: https://cgit.FreeBSD.org/src/commit/?id=ad8f078f66e51212cdccd91fe8b22fb81235018e commit ad8f078f66e51212cdccd91fe8b22fb81235018e Author: Hans Petter Selasky AuthorDate: 2021-11-09 21:07:43 +0000 Commit: Hans Petter Selasky CommitDate: 2021-11-10 14:50:52 +0000 ifconfig(8): Don't set network interface capabilities when there is no change. A quick grep through the kernel code shows network drivers compute the changed bits of network capabilities after a SIOCSIFCAP IOCTL(2) by using the bitwise exclusive or operation. When the set capabilities are equal to the already read capabilities, no action will be taken. Let ifconfig(8) predict this case and skip the SIOCSIFCAP IOCTL(2) system call. Discussed with: kib@ (revert change in case of issues) MFC after: 1 week Sponsored by: NVIDIA Networking --- sbin/ifconfig/ifconfig.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/sbin/ifconfig/ifconfig.c b/sbin/ifconfig/ifconfig.c index 0423b3593504..9e7d38d4c2a4 100644 --- a/sbin/ifconfig/ifconfig.c +++ b/sbin/ifconfig/ifconfig.c @@ -1243,6 +1243,9 @@ setifcap(const char *vname, int value, int s, const struct afswtch *afp) } else flags |= value; flags &= ifr.ifr_reqcap; + /* Check for no change in capabilities. */ + if (ifr.ifr_curcap == flags) + return; ifr.ifr_reqcap = flags; if (ioctl(s, SIOCSIFCAP, (caddr_t)&ifr) < 0) Perror(vname);