From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-9.1 required=3.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id AE0C8C43381 for ; Wed, 27 Feb 2019 06:42:04 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 7B076218D9 for ; Wed, 27 Feb 2019 06:42:04 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1551249724; bh=JBoF3HU1t59pDsRnFc5VGm0W+yBXTA3oqukYlQ3ndeY=; h=From:To:Cc:Subject:Date:List-ID:From; b=t2Xnf+yEamiPwKdCUyXxyz3e3aTB5BnUHiXNf1erKsMtp0cev8lw5ldkC+bB8ZaHZ llHNpcWth2h3wJIvjZkPtG5kuaAWFLhyomOZQz9PL+mzVzmUX4DCR35mr6pusnYXx1 CYatDBLwBkE2jm0HlupA5PmjHJveuMwdERqH4Vzg= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729360AbfB0GmD (ORCPT ); Wed, 27 Feb 2019 01:42:03 -0500 Received: from mail.kernel.org ([198.145.29.99]:56922 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728905AbfB0GmC (ORCPT ); Wed, 27 Feb 2019 01:42:02 -0500 Received: from localhost (unknown [77.138.135.184]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 6E54D218D0; Wed, 27 Feb 2019 06:42:01 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1551249722; bh=JBoF3HU1t59pDsRnFc5VGm0W+yBXTA3oqukYlQ3ndeY=; h=From:To:Cc:Subject:Date:From; b=vfgXzZg+6cIUXJaQA5Up56RhqPa0JbPJIZVBSBoXUM0gRDf//IXV916u8NP1H9e+c WLfq/eXxvqWVTPq3L7as2r73etKwQBIDnAhDiwziXx0V3K21koU6eckwIXKgitvJUm ubTXyeEEDoMkqxMRHLblUY8R3GEUh8l+bEEEiCMg= From: Leon Romanovsky To: David Ahern , Lijun Ou , Steve Wise Cc: Leon Romanovsky , netdev , RDMA mailing list , Stephen Hemminger Subject: [PATCH iproute2-next] rdma: Add the prefix for driver attributes Date: Wed, 27 Feb 2019 08:41:51 +0200 Message-Id: <20190227064151.25445-1-leon@kernel.org> X-Mailer: git-send-email 2.20.1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org From: Leon Romanovsky There is a need to distinguish between driver vs. general exposed attributes. The most common use case is to expose some internal garbage under extremely common and sexy name, e.g. pi, ci e.t.c In order to achieve that, we will add "drv_" prefix to all strings which were received through RDMA_NLDEV_ATTR_DRIVER_* attributes. Signed-off-by: Leon Romanovsky a --- rdma/utils.c | 34 ++++++++++++++++++++++------------ 1 file changed, 22 insertions(+), 12 deletions(-) diff --git a/rdma/utils.c b/rdma/utils.c index 6bc14cd5..1f6bf330 100644 --- a/rdma/utils.c +++ b/rdma/utils.c @@ -829,27 +829,37 @@ static int print_driver_entry(struct rd *rd, struct nlattr *key_attr, struct nlattr *val_attr, enum rdma_nldev_print_type print_type) { - const char *key_str = mnl_attr_get_str(key_attr); int attr_type = nla_type(val_attr); + int ret = -EINVAL; + char *key_str; + + if (asprintf(&key_str, "drv_%s", mnl_attr_get_str(key_attr)) == -1) + return -ENOMEM; switch (attr_type) { case RDMA_NLDEV_ATTR_DRIVER_STRING: - return print_driver_string(rd, key_str, - mnl_attr_get_str(val_attr)); + ret = print_driver_string(rd, key_str, + mnl_attr_get_str(val_attr)); + break; case RDMA_NLDEV_ATTR_DRIVER_S32: - return print_driver_s32(rd, key_str, - mnl_attr_get_u32(val_attr), print_type); + ret = print_driver_s32(rd, key_str, mnl_attr_get_u32(val_attr), + print_type); + break; case RDMA_NLDEV_ATTR_DRIVER_U32: - return print_driver_u32(rd, key_str, - mnl_attr_get_u32(val_attr), print_type); + ret = print_driver_u32(rd, key_str, mnl_attr_get_u32(val_attr), + print_type); + break; case RDMA_NLDEV_ATTR_DRIVER_S64: - return print_driver_s64(rd, key_str, - mnl_attr_get_u64(val_attr), print_type); + ret = print_driver_s64(rd, key_str, mnl_attr_get_u64(val_attr), + print_type); + break; case RDMA_NLDEV_ATTR_DRIVER_U64: - return print_driver_u64(rd, key_str, - mnl_attr_get_u64(val_attr), print_type); + ret = print_driver_u64(rd, key_str, mnl_attr_get_u64(val_attr), + print_type); + break; } - return -EINVAL; + free(key_str); + return ret; } void print_driver_table(struct rd *rd, struct nlattr *tb) -- 2.19.1