From: Doug Ledford <dledford@redhat.com>
To: Lijun Ou <oulijun@huawei.com>,
sean.hefty@intel.com, hal.rosenstock@gmail.com,
davem@davemloft.net, jeffrey.t.kirsher@intel.com,
jiri@mellanox.com, ogerlitz@mellanox.com
Cc: linux-rdma@vger.kernel.org, linux-kernel@vger.kernel.org,
netdev@vger.kernel.org, gongyangming@huawei.com,
xiaokun@huawei.com, tangchaofei@huawei.com,
haifeng.wei@huawei.com, yisen.zhuang@huawei.com,
yankejian@huawei.com, charles.chenxin@huawei.com,
linuxarm@huawei.com
Subject: Re: [RESEND PATCH v7 17/21] IB/hns: Add QP operations support
Date: Fri, 13 May 2016 17:52:04 -0400 [thread overview]
Message-ID: <bf001e31-982a-c51d-782e-81ee19f9de09@redhat.com> (raw)
In-Reply-To: <1462849483-67927-18-git-send-email-oulijun@huawei.com>
[-- Attachment #1: Type: text/plain, Size: 1826 bytes --]
On 05/09/2016 11:04 PM, Lijun Ou wrote:
> +int __hns_roce_cmd(struct hns_roce_dev *hr_dev, u64 in_param, u64 *out_param,
> + unsigned long in_modifier, u8 op_modifier, u16 op,
> + unsigned long timeout);
> +
> +/* Invoke a command with no output parameter */
> +static inline int hns_roce_cmd(struct hns_roce_dev *hr_dev, u64 in_param,
> + unsigned long in_modifier, u8 op_modifier,
> + u16 op, unsigned long timeout)
> +{
> + return __hns_roce_cmd(hr_dev, in_param, NULL, in_modifier,
> + op_modifier, op, timeout);
> +}
> +
> +/* Invoke a command with an output mailbox */
> +static inline int hns_roce_cmd_box(struct hns_roce_dev *hr_dev, u64 in_param,
> + u64 out_param, unsigned long in_modifier,
> + u8 op_modifier, u16 op,
> + unsigned long timeout)
> +{
> + return __hns_roce_cmd(hr_dev, in_param, &out_param, in_modifier,
> + op_modifier, op, timeout);
> +}
This will make people scratch their head in the future. You are using
two commands to map to one command without there being any locking
involved. The typical convention for routine_1() -> __routine_1() is
that the __ version requires that it be called while locked, and the
version without a __ does the locking before calling it. That way a
used can always know if they aren't currently holding the appropriate
lock, then they6 call routine_1() and if they are, they call
__routine_1() to avoid a deadlock. I would suggest changing the name of
__hns_roce_cmd to hns_roce_cmd_box and completely remove the existing
hns_roce_cmd_box inline, and then change the hns_roce_cmd() inline to
directly call hns_roce_cmd_box() which will then select between
event/poll command sends.
--
Doug Ledford <dledford@redhat.com>
GPG KeyID: 0E572FDD
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 884 bytes --]
next prev parent reply other threads:[~2016-05-13 21:52 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-05-10 3:04 [RESEND PATCH v7 00/21] Add HiSilicon RoCE driver Lijun Ou
2016-05-10 3:04 ` [RESEND PATCH v7 01/21] net: hns: Add reset function support for " Lijun Ou
2016-05-10 3:04 ` [RESEND PATCH v7 02/21] devicetree: bindings: IB: Add binding document for HiSilicon RoCE Lijun Ou
2016-05-10 3:04 ` [RESEND PATCH v7 03/21] IB/hns: Add initial main frame driver and get cfg info Lijun Ou
2016-05-10 3:04 ` [RESEND PATCH v7 04/21] IB/hns: Add RoCE engine reset function Lijun Ou
2016-05-10 3:04 ` [RESEND PATCH v7 05/21] IB/hns: Add initial profile resource Lijun Ou
2016-05-10 3:04 ` [RESEND PATCH v7 06/21] IB/hns: Add initial cmd operation Lijun Ou
2016-05-10 3:04 ` [RESEND PATCH v7 07/21] IB/hns: Add event queue support Lijun Ou
2016-05-13 21:21 ` Doug Ledford
2016-05-10 3:04 ` [RESEND PATCH v7 08/21] IB/hns: Add icm support Lijun Ou
2016-05-10 3:04 ` [RESEND PATCH v7 09/21] IB/hns: Add hca support Lijun Ou
2016-05-10 3:04 ` [RESEND PATCH v7 10/21] IB/hns: Add process flow to init RoCE engine Lijun Ou
2016-05-10 3:04 ` [RESEND PATCH v7 11/21] IB/hns: Add IB device registration Lijun Ou
2016-05-10 3:04 ` [RESEND PATCH v7 12/21] IB/hns: Set mtu and gid support Lijun Ou
2016-05-10 3:04 ` [RESEND PATCH v7 13/21] IB/hns: Add interface of the protocol stack registration Lijun Ou
2016-05-10 3:04 ` [RESEND PATCH v7 14/21] IB/hns: Add operations support for IB device and port Lijun Ou
2016-05-10 3:04 ` [RESEND PATCH v7 15/21] IB/hns: Add PD operations support Lijun Ou
2016-05-10 3:04 ` [RESEND PATCH v7 16/21] IB/hns: Add ah " Lijun Ou
2016-05-10 3:04 ` [RESEND PATCH v7 17/21] IB/hns: Add QP " Lijun Ou
2016-05-13 21:52 ` Doug Ledford [this message]
2016-05-23 3:30 ` Wei Hu (Xavier)
2016-05-13 22:04 ` Doug Ledford
2016-05-10 3:04 ` [RESEND PATCH v7 18/21] IB/hns: Add CQ " Lijun Ou
2016-05-10 3:04 ` [RESEND PATCH v7 19/21] IB/hns: Add memory region " Lijun Ou
2016-05-10 3:04 ` [RESEND PATCH v7 20/21] IB/hns: Kconfig and Makefile for RoCE module Lijun Ou
2016-05-10 3:04 ` [RESEND PATCH v7 21/21] MAINTAINERS: Add maintainers for HiSilicon RoCE driver Lijun Ou
2016-05-13 21:09 ` [RESEND PATCH v7 00/21] Add " Doug Ledford
2016-05-23 1:06 ` Wei Hu (Xavier)
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=bf001e31-982a-c51d-782e-81ee19f9de09@redhat.com \
--to=dledford@redhat.com \
--cc=charles.chenxin@huawei.com \
--cc=davem@davemloft.net \
--cc=gongyangming@huawei.com \
--cc=haifeng.wei@huawei.com \
--cc=hal.rosenstock@gmail.com \
--cc=jeffrey.t.kirsher@intel.com \
--cc=jiri@mellanox.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-rdma@vger.kernel.org \
--cc=linuxarm@huawei.com \
--cc=netdev@vger.kernel.org \
--cc=ogerlitz@mellanox.com \
--cc=oulijun@huawei.com \
--cc=sean.hefty@intel.com \
--cc=tangchaofei@huawei.com \
--cc=xiaokun@huawei.com \
--cc=yankejian@huawei.com \
--cc=yisen.zhuang@huawei.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®