Messages in this thread | | | Date | Wed, 28 Sep 2022 13:28:49 +0300 | From | Leon Romanovsky <> | Subject | Re: [PATCH net-next 1/4] net: hns3: refine the tcam key convert handle |
| |
On Tue, Sep 27, 2022 at 07:12:02PM +0800, Guangbin Huang wrote: > From: Jian Shen <shenjian15@huawei.com> > > The expression '(k ^ ~v)' is exaclty '(k & v)', and > '(k & v) & k' is exaclty 'k & v'. So simplify the > expression for tcam key convert. > > It also add necessary brackets for them. > > Signed-off-by: Jian Shen <shenjian15@huawei.com> > Signed-off-by: Guangbin Huang <huangguangbin2@huawei.com> > --- > .../net/ethernet/hisilicon/hns3/hns3pf/hclge_main.h | 11 +++-------- > 1 file changed, 3 insertions(+), 8 deletions(-) > > diff --git a/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.h b/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.h > index 495b639b0dc2..59bfacc687c9 100644 > --- a/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.h > +++ b/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.h > @@ -827,15 +827,10 @@ struct hclge_vf_vlan_cfg { > * Then for input key(k) and mask(v), we can calculate the value by > * the formulae: > * x = (~k) & v > - * y = (k ^ ~v) & k > + * y = k & v > */ > -#define calc_x(x, k, v) (x = ~(k) & (v)) > -#define calc_y(y, k, v) \ > - do { \ > - const typeof(k) _k_ = (k); \ > - const typeof(v) _v_ = (v); \ > - (y) = (_k_ ^ ~_v_) & (_k_); \ > - } while (0) > +#define calc_x(x, k, v) ((x) = ~(k) & (v)) > +#define calc_y(y, k, v) ((y) = (k) & (v))
Can you please explain why do you need special define for boolean AND?
Thanks
> > #define HCLGE_MAC_STATS_FIELD_OFF(f) (offsetof(struct hclge_mac_stats, f)) > #define HCLGE_STATS_READ(p, offset) (*(u64 *)((u8 *)(p) + (offset))) > -- > 2.33.0 >
| |