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 > Signed-off-by: Nenglong Zhao > Signed-off-by: Lijun Ou > --- > 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?