Re: [PATCH v10 06/22] IB/hns: Add initial cmd operation

From: Leon Romanovsky
Date: Mon Jun 20 2016 - 09:34:07 EST


On Thu, Jun 16, 2016 at 10:35:14PM +0800, Lijun Ou wrote:
> This patch added the operation for cmd, and added some functions
> for initializing eq table and selecting cmd mode.
>
> Signed-off-by: Wei Hu <xavier.huwei@xxxxxxxxxx>
> Signed-off-by: Nenglong Zhao <zhaonenglong@xxxxxxxxxxxxx>
> Signed-off-by: Lijun Ou <oulijun@xxxxxxxxxx>
> ---
> PATCH v9/v8/v7/v6:
> - No change over the PATCH v5
>
> PATCH v5:
> - The initial patch which was redesigned based on the second patch
> in PATCH v4
> ---

<...>

> +#define CMD_MAX_NUM 32
> +
> +int hns_roce_cmd_init(struct hns_roce_dev *hr_dev)
> +{
> + struct device *dev = &hr_dev->pdev->dev;
> +
> + mutex_init(&hr_dev->cmd.hcr_mutex);
> + sema_init(&hr_dev->cmd.poll_sem, 1);
> + hr_dev->cmd.use_events = 0;
> + hr_dev->cmd.toggle = 1;
> + hr_dev->cmd.max_cmds = CMD_MAX_NUM;

<...>

> + for (hr_cmd->token_mask = 1; hr_cmd->token_mask < hr_cmd->max_cmds;
> + hr_cmd->token_mask <<= 1)
> + ;
> + --hr_cmd->token_mask;

It doesn't look that you dynamically change max_cmds supported.
Why do you need to calculate token_mask dynamically?

Attachment: signature.asc
Description: Digital signature