mirror of
https://github.com/torvalds/linux.git
synced 2026-06-07 05:55:44 +02:00
net/mlx5e: Fix incompatible casting
[ Upstream commitd8ec92005f] Device supports setting of a single fec mode at a time, enforce this by bitmap_weight == 1. Input from fec command is in u32, avoid cast to unsigned long and use bitmap_from_arr32 to populate bitmap safely. Fixes:4bd9d5070b("net/mlx5e: Enforce setting of a single FEC mode") Signed-off-by: Aya Levin <ayal@nvidia.com> Reviewed-by: Tariq Toukan <tariqt@nvidia.com> Signed-off-by: Saeed Mahameed <saeedm@nvidia.com> Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
parent
f1d4184f12
commit
c1ea8c0e71
|
|
@ -1618,12 +1618,13 @@ static int mlx5e_set_fecparam(struct net_device *netdev,
|
||||||
{
|
{
|
||||||
struct mlx5e_priv *priv = netdev_priv(netdev);
|
struct mlx5e_priv *priv = netdev_priv(netdev);
|
||||||
struct mlx5_core_dev *mdev = priv->mdev;
|
struct mlx5_core_dev *mdev = priv->mdev;
|
||||||
|
unsigned long fec_bitmap;
|
||||||
u16 fec_policy = 0;
|
u16 fec_policy = 0;
|
||||||
int mode;
|
int mode;
|
||||||
int err;
|
int err;
|
||||||
|
|
||||||
if (bitmap_weight((unsigned long *)&fecparam->fec,
|
bitmap_from_arr32(&fec_bitmap, &fecparam->fec, sizeof(fecparam->fec) * BITS_PER_BYTE);
|
||||||
ETHTOOL_FEC_LLRS_BIT + 1) > 1)
|
if (bitmap_weight(&fec_bitmap, ETHTOOL_FEC_LLRS_BIT + 1) > 1)
|
||||||
return -EOPNOTSUPP;
|
return -EOPNOTSUPP;
|
||||||
|
|
||||||
for (mode = 0; mode < ARRAY_SIZE(pplm_fec_2_ethtool); mode++) {
|
for (mode = 0; mode < ARRAY_SIZE(pplm_fec_2_ethtool); mode++) {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user