答复: [PATCH 1/4] net-next/hinic:replace multiply and division operators

From: xuechaojing
Date: Mon Nov 19 2018 - 21:21:46 EST


Hi:

This wqebb size is 32 in rx and in tx is 64, so the value is a power of two.

Thank you

-----邮件原件-----
发件人: David Miller [mailto:davem@xxxxxxxxxxxxx]
发送时间: 2018年11月20日 7:02
收件人: xuechaojing <xuechaojing@xxxxxxxxxx>
抄送: linux-kernel@xxxxxxxxxxxxxxx; netdev@xxxxxxxxxxxxxxx; wulike (A) <wulike1@xxxxxxxxxx>; chiqijun <chiqijun@xxxxxxxxxx>; Wangfengying <fy.wang@xxxxxxxxxx>; Quhuichun (Tony) <tony.qu@xxxxxxxxxx>; Luoshaokai (luoshaokai) <luoshaokai@xxxxxxxxxx>
主题: Re: [PATCH 1/4] net-next/hinic:replace multiply and division operators

From: Xue Chaojing <xuechaojing@xxxxxxxxxx>
Date: Mon, 19 Nov 2018 06:12:31 +0000

> @@ -530,7 +536,9 @@ int hinic_wq_allocate(struct hinic_wqs *wqs, struct hinic_wq *wq,
> return -EINVAL;
> }
>
> - num_wqebbs_per_page = ALIGN(wq_page_size, wqebb_size) / wqebb_size;
> + wqebb_size_shift = ilog2(wqebb_size);

You now have introduced the assumption that these various sizes are a power of two.

You should check for this, either at compile time or at run time, in order to avoid surprises and hard to debug issues in the future.

Thank you.