netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Karsten Graul <kgraul@linux.ibm.com>
To: Saeed Mahameed <saeed@kernel.org>, davem@davemloft.net
Cc: netdev@vger.kernel.org, linux-s390@vger.kernel.org,
	hca@linux.ibm.com, raspl@linux.ibm.com,
	Guevenc Guelce <guvenc@linux.ibm.com>
Subject: Re: [PATCH net-next v2 12/15] net/smc: Add support for obtaining SMCD device list
Date: Fri, 6 Nov 2020 07:38:10 +0100	[thread overview]
Message-ID: <0c656b51-cd05-33a0-9bb7-cdfc21131132@linux.ibm.com> (raw)
In-Reply-To: <eca09b4aee1d4526e1ee772adbfaafab2afa1f20.camel@kernel.org>

On 04/11/2020 02:31, Saeed Mahameed wrote:
> On Tue, 2020-11-03 at 11:25 +0100, Karsten Graul wrote:
>> From: Guvenc Gulce <guvenc@linux.ibm.com>
>>
>> Deliver SMCD device information via netlink based
>> diagnostic interface.
>>
>> Signed-off-by: Guvenc Gulce <guvenc@linux.ibm.com>
>> Signed-off-by: Karsten Graul <kgraul@linux.ibm.com>
>> ---
>>  include/uapi/linux/smc.h      |  2 +
>>  include/uapi/linux/smc_diag.h | 20 +++++++++
>>  net/smc/smc_core.h            | 27 +++++++++++++
>>  net/smc/smc_diag.c            | 76
>> +++++++++++++++++++++++++++++++++++
>>  net/smc/smc_ib.h              |  1 -
>>  5 files changed, 125 insertions(+), 1 deletion(-)
>>
> 
>> +
>> +static int smc_diag_prep_smcd_dev(struct smcd_dev_list *dev_list,
>> +				  struct sk_buff *skb,
>> +				  struct netlink_callback *cb,
>> +				  struct smc_diag_req_v2 *req)
>> +{
>> +	struct smc_diag_dump_ctx *cb_ctx = smc_dump_context(cb);
>> +	int snum = cb_ctx->pos[0];
>> +	struct smcd_dev *smcd;
>> +	int rc = 0, num = 0;
>> +
>> +	mutex_lock(&dev_list->mutex);
>> +	list_for_each_entry(smcd, &dev_list->list, list) {
>> +		if (num < snum)
>> +			goto next;
>> +		rc = smc_diag_handle_smcd_dev(smcd, skb, cb, req);
>> +		if (rc < 0)
>> +			goto errout;
>> +next:
>> +		num++;
>> +	}
>> +errout:
>> +	mutex_unlock(&dev_list->mutex);
>> +	cb_ctx->pos[0] = num;
>> +	return rc;
>> +}
>> +
> 
> this function pattern repeats at least 4 times in this series and the
> only difference is the diag handler function, just abstract this
> function out and pass a function pointer as handler to reduce code
> repetition. 
> 

Thank you for your review. We will come up with a v3 to address the comments.

We plan to eliminate additional EXPORTs using an ops array that allows smc_diag to 
retrieve the needed information from the smc module.

We discussed the above comment as well, but there is no clean and easy way to change
it because (nearly) all places iterate over different lists that have different types.
It might be not a good idea to loose type safety here by calling different handlers 
with a void pointer as parameter. Additionally some lists require specific locks.

-- 
Karsten

(I'm a dude)

  reply	other threads:[~2020-11-06  6:38 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-11-03 10:25 [PATCH net-next v2 00/15] net/smc: extend diagnostic netlink interface Karsten Graul
2020-11-03 10:25 ` [PATCH net-next v2 01/15] net/smc: use helper smc_conn_abort() in listen processing Karsten Graul
2020-11-03 10:25 ` [PATCH net-next v2 02/15] net/smc: Use active link of the connection Karsten Graul
2020-11-03 10:25 ` [PATCH net-next v2 03/15] net/smc: Add connection counters for links Karsten Graul
2020-11-03 10:25 ` [PATCH net-next v2 04/15] net/smc: Add link counters for IB device ports Karsten Graul
2020-11-04  0:52   ` Saeed Mahameed
2020-11-03 10:25 ` [PATCH net-next v2 05/15] net/smc: Add diagnostic information to smc ib-device Karsten Graul
2020-11-04  1:00   ` Saeed Mahameed
2020-11-03 10:25 ` [PATCH net-next v2 06/15] net/smc: Add diagnostic information to link structure Karsten Graul
2020-11-04  1:06   ` Saeed Mahameed
2020-11-03 10:25 ` [PATCH net-next v2 07/15] net/smc: Refactor the netlink reply processing routine Karsten Graul
2020-11-03 10:25 ` [PATCH net-next v2 08/15] net/smc: Add ability to work with extended SMC netlink API Karsten Graul
2020-11-03 10:25 ` [PATCH net-next v2 09/15] net/smc: Introduce SMCR get linkgroup command Karsten Graul
2020-11-03 10:25 ` [PATCH net-next v2 10/15] net/smc: Introduce SMCR get link command Karsten Graul
2020-11-03 10:25 ` [PATCH net-next v2 11/15] net/smc: Add SMC-D Linkgroup diagnostic support Karsten Graul
2020-11-04  1:26   ` Saeed Mahameed
2020-11-03 10:25 ` [PATCH net-next v2 12/15] net/smc: Add support for obtaining SMCD device list Karsten Graul
2020-11-04  1:31   ` Saeed Mahameed
2020-11-06  6:38     ` Karsten Graul [this message]
2020-11-03 10:25 ` [PATCH net-next v2 13/15] net/smc: Add support for obtaining SMCR " Karsten Graul
2020-11-03 10:25 ` [PATCH net-next v2 14/15] net/smc: Refactor smc ism v2 capability handling Karsten Graul
2020-11-03 10:25 ` [PATCH net-next v2 15/15] net/smc: Add support for obtaining system information Karsten Graul

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=0c656b51-cd05-33a0-9bb7-cdfc21131132@linux.ibm.com \
    --to=kgraul@linux.ibm.com \
    --cc=davem@davemloft.net \
    --cc=guvenc@linux.ibm.com \
    --cc=hca@linux.ibm.com \
    --cc=linux-s390@vger.kernel.org \
    --cc=netdev@vger.kernel.org \
    --cc=raspl@linux.ibm.com \
    --cc=saeed@kernel.org \
    /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;
as well as URLs for NNTP newsgroup(s).