[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <1341160685.2032.15.camel@joe2Laptop>
Date: Sun, 01 Jul 2012 09:38:05 -0700
From: Joe Perches <joe@...ches.com>
To: Ben Hutchings <bhutchings@...arflare.com>
Cc: Or Gerlitz <ogerlitz@...lanox.com>, davem@...emloft.net,
roland@...nel.org, yevgenyp@...lanox.com, oren@...lanox.com,
netdev@...r.kernel.org, Hadar Hen Zion <hadarh@...lanox.co.il>
Subject: Re: [PATCH net-next 09/10] net/mlx4_en: Manage flow steering rules
with ethtool
On Sun, 2012-07-01 at 17:00 +0100, Ben Hutchings wrote:
> On Sun, 2012-07-01 at 12:43 +0300, Or Gerlitz wrote:
> > From: Hadar Hen Zion <hadarh@...lanox.co.il>
[]
> > diff --git a/drivers/net/ethernet/mellanox/mlx4/en_ethtool.c b/drivers/net/ethernet/mellanox/mlx4/en_ethtool.c
[]
> > @@ -599,16 +603,360 @@ static int mlx4_en_set_rxfh_indir(struct net_device *dev,
> > return err;
> > }
> >
> > +#define not_all_zeros_or_all_ones(field, type) \
> > + (field && (type)~field)
I think this macro is suboptimal because
negated names are easy to misuse.
I think type is also unnecessary and too
easy to mismatch or keep up to date with
field type changes.
Perhaps it's better as:
#define all_zeros_or_all_ones(field) \
({ \
field && (typeof(field))~field; \
})
> > +
> > +static int mlx4_en_validate_flow(struct net_device *dev,
> > + struct ethtool_rxnfc *cmd)
> > +{
[]
> > + /* don't allow mask which isn't all 0 or 1 */
> > + if (not_all_zeros_or_all_ones(l4_mask->ip4src, __be32) ||
> > + not_all_zeros_or_all_ones(l4_mask->ip4dst, __be32) ||
> > + not_all_zeros_or_all_ones(l4_mask->psrc, __be16) ||
> > + not_all_zeros_or_all_ones(l4_mask->pdst, __be16))
> > + return -EOPNOTSUPP;
if (!all_zeros_or_all_ones(l4_mask->ip4src) ||
!all_zeros_or_all_ones(l4_mask->ip4dst) ||
!all_zeros_or_all_ones(l4_mask->psrc) ||
!all_zeros_or_all_ones(l4_mask->pdst))
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists