From: Yury Norov <yury.norov@gmail.com>
To: Andrew Lunn <andrew@lunn.ch>,
Heiner Kallweit <hkallweit1@gmail.com>,
Russell King <linux@armlinux.org.uk>,
Raju Rangoju <Raju.Rangoju@amd.com>,
Prashanth Kumar K R <PrashanthKumar.K.R@amd.com>,
Tony Nguyen <anthony.l.nguyen@intel.com>,
Przemek Kitszel <przemyslaw.kitszel@intel.com>,
Jian Shen <shenjian15@huawei.com>,
Jijie Shao <shaojijie@huawei.com>,
"David S. Miller" <davem@davemloft.net>,
Eric Dumazet <edumazet@google.com>,
Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>,
linux-kernel@vger.kernel.org, netdev@vger.kernel.org,
intel-wired-lan@lists.osuosl.org, linux-usb@vger.kernel.org
Cc: Yury Norov <ynorov@nvidia.com>, Yury Norov <yury.norov@gmail.com>,
Rasmus Villemoes <linux@rasmusvillemoes.dk>,
Andrew Morton <akpm@linux-foundation.org>
Subject: [PATCH 8/9] r8152: use linkmode_and_and() in EEE checks
Date: Mon, 7 Sep 2026 17:54:37 -0400 [thread overview]
Message-ID: <20260907215439.409858-9-ynorov@nvidia.com> (raw)
In-Reply-To: <20260907215439.409858-1-ynorov@nvidia.com>
Combine the three link mode masks in a single operation and use its
return value to determine whether EEE is active.
Signed-off-by: Yury Norov <ynorov@nvidia.com>
---
drivers/net/usb/r8152.c | 10 ++++------
include/linux/linkmode.h | 8 ++++++++
2 files changed, 12 insertions(+), 6 deletions(-)
diff --git a/drivers/net/usb/r8152.c b/drivers/net/usb/r8152.c
index f61686433031..75f0574fe1d4 100644
--- a/drivers/net/usb/r8152.c
+++ b/drivers/net/usb/r8152.c
@@ -9149,9 +9149,8 @@ static int r8152_get_eee(struct r8152 *tp, struct ethtool_keee *eee)
if (speed & _100bps)
linkmode_set_bit(ETHTOOL_LINK_MODE_100baseT_Full_BIT, common);
- linkmode_and(common, common, eee->advertised);
- linkmode_and(common, common, eee->lp_advertised);
- eee->eee_active = !linkmode_empty(common);
+ eee->eee_active = linkmode_and_and(common, common, eee->advertised,
+ eee->lp_advertised);
return 0;
}
@@ -9222,9 +9221,8 @@ static int r8153_get_eee(struct r8152 *tp, struct ethtool_keee *eee)
if (speed & _100bps)
linkmode_set_bit(ETHTOOL_LINK_MODE_100baseT_Full_BIT, common);
- linkmode_and(common, common, eee->advertised);
- linkmode_and(common, common, eee->lp_advertised);
- eee->eee_active = !linkmode_empty(common);
+ eee->eee_active = linkmode_and_and(common, common, eee->advertised,
+ eee->lp_advertised);
return 0;
}
diff --git a/include/linux/linkmode.h b/include/linux/linkmode.h
index 49587a2e0f69..efd392dc62ae 100644
--- a/include/linux/linkmode.h
+++ b/include/linux/linkmode.h
@@ -26,6 +26,14 @@ static inline bool linkmode_and(unsigned long *dst, const unsigned long *a,
return bitmap_and(dst, a, b, __ETHTOOL_LINK_MODE_MASK_NBITS);
}
+static inline bool linkmode_and_and(unsigned long *dst,
+ const unsigned long *a,
+ const unsigned long *b,
+ const unsigned long *c)
+{
+ return bitmap_and_and(dst, a, b, c, __ETHTOOL_LINK_MODE_MASK_NBITS);
+}
+
static inline bool linkmode_and_andnot(unsigned long *dst,
const unsigned long *a,
const unsigned long *b,
--
2.53.0
next prev parent reply other threads:[~2026-09-07 21:54 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-09-07 21:54 [PATCH 0/9] linkmode: better use bitmap API Yury Norov
2026-09-07 21:54 ` [PATCH 1/9] bitmap: add bitmap_and_and() and bitmap_and_andnot() Yury Norov
2026-09-07 21:54 ` [PATCH 2/9] linkmode: make linkmode_and() return boolean Yury Norov
2026-09-08 13:04 ` Loktionov, Aleksandr
2026-09-07 21:54 ` [PATCH 3/9] net: amd: xgbe: use linkmode_and() return value in xgbe_set_link_ksettings() Yury Norov
2026-09-08 13:04 ` Loktionov, Aleksandr
2026-09-07 21:54 ` [PATCH 4/9] ixgbe: use linkmode_and() return value in ixgbe_get_eee_fw() Yury Norov
2026-09-08 9:09 ` Temerkhanov, Sergey
2026-09-08 13:06 ` Loktionov, Aleksandr
2026-09-07 21:54 ` [PATCH 5/9] net: phy: use linkmode_and() return value in genphy_c45_eee_is_active() Yury Norov
2026-09-08 13:06 ` Loktionov, Aleksandr
2026-09-07 21:54 ` [PATCH 6/9] net: avoid copies before linkmode_and() Yury Norov
2026-09-08 13:07 ` Loktionov, Aleksandr
2026-09-09 11:06 ` Jijie Shao
2026-09-07 21:54 ` [PATCH 7/9] net: phy: use linkmode operation return values in phy_device.c Yury Norov
2026-09-08 13:07 ` Loktionov, Aleksandr
2026-09-08 13:52 ` Andrew Lunn
2026-09-08 15:19 ` Yury Norov
2026-09-09 12:15 ` Andrew Lunn
2026-09-09 8:09 ` Loktionov, Aleksandr
2026-09-07 21:54 ` Yury Norov [this message]
2026-09-08 13:12 ` [PATCH 8/9] r8152: use linkmode_and_and() in EEE checks Loktionov, Aleksandr
2026-09-07 21:54 ` [PATCH 9/9] MAINTAINERS: co-maintain linkmode.h under BITMAP Yury Norov
2026-09-08 20:44 ` Jakub Kicinski
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260907215439.409858-9-ynorov@nvidia.com \
--to=yury.norov@gmail.com \
--cc=PrashanthKumar.K.R@amd.com \
--cc=Raju.Rangoju@amd.com \
--cc=akpm@linux-foundation.org \
--cc=andrew@lunn.ch \
--cc=anthony.l.nguyen@intel.com \
--cc=davem@davemloft.net \
--cc=edumazet@google.com \
--cc=hkallweit1@gmail.com \
--cc=intel-wired-lan@lists.osuosl.org \
--cc=kuba@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-usb@vger.kernel.org \
--cc=linux@armlinux.org.uk \
--cc=linux@rasmusvillemoes.dk \
--cc=netdev@vger.kernel.org \
--cc=pabeni@redhat.com \
--cc=przemyslaw.kitszel@intel.com \
--cc=shaojijie@huawei.com \
--cc=shenjian15@huawei.com \
--cc=ynorov@nvidia.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.