From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from NAM01-BY2-obe.outbound.protection.outlook.com (mail-by2nam01on0065.outbound.protection.outlook.com [104.47.34.65]) by dpdk.org (Postfix) with ESMTP id 017E51B00C; Tue, 23 Jan 2018 14:03:21 +0100 (CET) Received: from BLUPR0301CA0027.namprd03.prod.outlook.com (10.162.113.165) by BY2PR03MB475.namprd03.prod.outlook.com (10.141.141.150) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.428.17; Tue, 23 Jan 2018 13:03:19 +0000 Received: from BN1BFFO11FD047.protection.gbl (2a01:111:f400:7c10::1:170) by BLUPR0301CA0027.outlook.office365.com (2a01:111:e400:5259::37) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.20.428.17 via Frontend Transport; Tue, 23 Jan 2018 13:03:19 +0000 Authentication-Results: spf=fail (sender IP is 192.88.158.2) smtp.mailfrom=nxp.com; dpdk.org; dkim=none (message not signed) header.d=none;dpdk.org; dmarc=fail action=none header.from=nxp.com; Received-SPF: Fail (protection.outlook.com: domain of nxp.com does not designate 192.88.158.2 as permitted sender) receiver=protection.outlook.com; client-ip=192.88.158.2; helo=az84smr01.freescale.net; Received: from az84smr01.freescale.net (192.88.158.2) by BN1BFFO11FD047.mail.protection.outlook.com (10.58.145.2) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_RSA_WITH_AES_256_CBC_SHA) id 15.20.428.12 via Frontend Transport; Tue, 23 Jan 2018 13:03:19 +0000 Received: from b27504-OptiPlex-790.ap.freescale.net (b27504-OptiPlex-790.ap.freescale.net [10.232.132.60]) by az84smr01.freescale.net (8.14.3/8.14.0) with ESMTP id w0NCR9X3020973; Tue, 23 Jan 2018 05:27:27 -0700 From: Nipun Gupta To: CC: , , , Date: Tue, 23 Jan 2018 17:57:04 +0530 Message-ID: <1516710427-22843-5-git-send-email-nipun.gupta@nxp.com> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1516710427-22843-1-git-send-email-nipun.gupta@nxp.com> References: <1516710671-13897-1-git-send-email-nipun.gupta@nxp.com> <1516710427-22843-1-git-send-email-nipun.gupta@nxp.com> X-EOPAttributedMessage: 0 X-Matching-Connectors: 131611861995233922; (91ab9b29-cfa4-454e-5278-08d120cd25b8); () X-Forefront-Antispam-Report: CIP:192.88.158.2; IPV:NLI; CTRY:US; EFV:NLI; SFV:NSPM; SFS:(10009020)(346002)(39380400002)(396003)(39860400002)(376002)(2980300002)(1110001)(1109001)(339900001)(199004)(189003)(106466001)(8676002)(36756003)(26005)(77096007)(2351001)(69596002)(8936002)(105606002)(59450400001)(5660300001)(51416003)(53936002)(336011)(81166006)(47776003)(81156014)(6666003)(76176011)(16586007)(305945005)(85426001)(2950100002)(97736004)(104016004)(68736007)(50466002)(48376002)(54906003)(498600001)(2906002)(86362001)(6862004)(450100002)(50226002)(4326008)(316002)(356003); DIR:OUT; SFP:1101; SCL:1; SRVR:BY2PR03MB475; H:az84smr01.freescale.net; FPR:; SPF:Fail; PTR:InfoDomainNonexistent; A:1; MX:1; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; BN1BFFO11FD047; 1:96H9RD7CiKlS2X1FlPj1uQBWYCa246mUQ6mmRZsamVWteyHPuRSNBhRjAP0/X7hQhAWWtmbtQ5uV7H8y4FXxnnarhoScTUk1M8PNskciKBBbfw2m+RO44r0chhpXeAuQ MIME-Version: 1.0 Content-Type: text/plain X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: da6dba3f-4fb9-4ce9-c124-08d56261ace8 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(5600026)(4604075)(2017052603307); SRVR:BY2PR03MB475; X-Microsoft-Exchange-Diagnostics: 1; BY2PR03MB475; 3:PCRXQdECoOZWsBU8Y0XFfNIy89Rqg+NWCVdR+j99kpfXxxK82pt1Uh3gIFLYtk0b6Xgrez8mAyLmLAXkGKpW8V4vgvBPiRnBrkoMXLnTy4d9FcZnmMMUHzCQR0/Prjbq2sH18ruqq60WkiblE06gPDGIg/vb0c05ckpxZCoL50218cd1e8Fdhx6x5XoNdajFvB+unmGO7mamBwmyJR7NlJtmOl/HiIZANp5axfU9xfg8tkYXKsqh/BUu3DqfWoVrv2bpRxR/ejZtFK6iwSb1Q5jjbjs+G90idUC76UY1vxJcjzLZMm46nUwhrp2BTCWMH3uI8E+FYTg/VoX3iNl6K3zyE4ihwMAvsE7OrKd5jV0=; 25:VE0xvsaETN5uZt2oSMZxnZ/fLsp183Zr/gEVNZdeP3Cx2ddrsdpoKGKB2poGa/gljp95qQesqmu7b/EueJ1L8Ibt38iuGQXE6U9dm3rz3uKc4c9V2yXHBWZtZLd3PRj3MAvIwbtSwHaz3Ui1ynPl619m87DKtaepJQTrf8lqbDtyhvUaRdM3uptsmhYbXPH8Np6+gdKADuFzEGTntBKSGVA1HUmJu6o5w+DsqJSqxKb5+VoDbEMrHHvx5dfSVjBg6pgXa9PFTIxcDrjJewFYOl5jboNNo7L5k2X47JPs1WUF7KinYqWaY2J3uZy43QCPNlbM+Lf63ziCdIbZmjJe6g== X-MS-TrafficTypeDiagnostic: BY2PR03MB475: X-Microsoft-Exchange-Diagnostics: 1; BY2PR03MB475; 31:MtGX/xP2AfjxFlnaBUJ2sf+Ea2RCBi+g9dgTFyRqmDx5RkHbDzaviCjbOfhjjfZky1KC8GTzuF+Z/zJihgNbE5HOmN5ANQ72AUaZIW3kBfmpojY8TvXDfficTA4TPOmWS3VUmFFHyB62PoBrqCjydBmSojawrKtKPZRG60jbEGCNIOsDBRE5fYWLi7GHWDytNyhS80sxSDKDY6BGoLpECK37NHZh7fFVD9mJlUa/vLE=; 4:hoHpMTyu87qRj5pX80LiQouI5cRZF3LG1i+ACYg3xIDPCkj2jbhEU4ZvROSSw4OXA8ljPutfiI1hvDufgeaLWe+nj5gZv2beO0iH/eaOS+ELPtYXWzj7qr1IqWTDy42IHqTgr3esnBxMHructrmN/1N1ig2BJzykbbQZ58BJ0SFA7toL5BmWEoMbvdG/sLOr+667mskZFnVK4+BrCg8MF5+F4aKFmEsSqBrLztdh5qHcw/C+JYxUIww5R9yhTmHVkxTtSV3KwVrFt6fJl7BNE/yvm6EnApR1ayV/vxGpQd7tTzCLXAIgMVDJTjkJF6Js X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(185117386973197); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6095135)(2401047)(8121501046)(5005006)(93006095)(93001095)(3002001)(10201501046)(3231023)(2400081)(944501161)(6055026)(6096035)(20161123561025)(20161123559100)(201703131430075)(201703131433075)(201703131448075)(201703151042153)(20161123556025)(20161123563025)(20161123565025)(201708071742011); SRVR:BY2PR03MB475; BCL:0; PCL:0; RULEID:(100000803101)(100110400095)(400006); SRVR:BY2PR03MB475; X-Forefront-PRVS: 05610E64EE X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BY2PR03MB475; 23:no6gnPUlvx2o8IBIhFaSJdeBu93TJwwBnq/hmUutCM?= =?us-ascii?Q?Fy1LXk0rjBJS6OvSgfpDgRPvnNisOVdfVgt+ZPtOs1A8dS/JTk2Yj/RGzAps?= =?us-ascii?Q?5d9t6gB5Hii8DGU5G7OuFETj23jBI+jfLa9aTrV/ees5JQo2M8OlM8F1AUPo?= =?us-ascii?Q?/kuDSN6Bh9g9RvT3ArDoIBZd/9Vo1ZZfdlGE1J653Ql65mkuxle/5/Jsxuiu?= =?us-ascii?Q?QXbtblclccrU8BV7M8ptpkIWCKokofkcdon1Uw8E4MlVTyaZU2yPyV4TtoIm?= =?us-ascii?Q?q6ZOxc0CMOZfN0b7jOPsj4isyQaFJw2795BctdUJ/H05IhpW921f53cTrv1e?= =?us-ascii?Q?XuBB773ebJUQXvDpmDUFHOObuj5euTghuz/pSqQCc05s4hERQosxw9MAzdWY?= =?us-ascii?Q?n69h3amDZ5CUQZAL553n4IzRc1My6ZgfZtLoYXcy0BPPtDrFG/QoRG45fnHR?= =?us-ascii?Q?wP/FJdtf6RSCrYqcUguPHkm+0zWXKgDpL3chPXiskORgSAmyDnn2/SzKsmh3?= =?us-ascii?Q?r/8Alvnc1SerzQpleoXY2QCEnKzyc3qZfhIcFiHUnKkATOb3FoKBKz/VHwrD?= =?us-ascii?Q?G9fRtcNanXUJUNdHuW0qtEsQPicErGdiuiED9iR0FPC4NQEheHXIJJk1wO4e?= =?us-ascii?Q?VQjFoVc+3NuixAl7d8k/68xPKAzY4dhn4FJnIxUhQk6qZCoFTKw7tEqFZFoe?= =?us-ascii?Q?WMH33rcWJ6qsmea85/z5HHiF/Lsy+mrd9Cv1s3pYr3ByXxkUL4SxLuumdnY+?= =?us-ascii?Q?ZdnM7fIa6dn+Uf+9pJST6u2el39qTboa5MY3q/YGATSbKhNyqvRowQ3a8q2K?= =?us-ascii?Q?2Wed6XvVRCPvFJsu6QXbERrd+lUcDTfFTassS+QN1En2zHeQmcNjPntdFU/Z?= =?us-ascii?Q?L7tYhfE1Ab4ifadMmBa6NYNqBP1QfYiIyidqeal4cer72MXbsmm6UrqyjOGk?= =?us-ascii?Q?6QK2iC4HFXK0ULdhrRRSOn4hO87C0SUnx2bFFKNsero3hAinSsgkhs5L47bG?= =?us-ascii?Q?SW3RXeh4kG9kOIimmT/gYw0If3wns6AXRxF9pAUgSW7C/yK8fjH0wGajO0pn?= =?us-ascii?Q?ckE4T0JDge+cutKoPnaQnnkCF5mz6EJ2A6fqS4sYKtZCCBho3eL2sGU2yzpt?= =?us-ascii?Q?h9ZAev/YoYoWveB4BUqUHueU6iL8+n?= X-Microsoft-Exchange-Diagnostics: 1; BY2PR03MB475; 6:PeMVl+rLUm1nD6ZZP7jMYCVwqs9ZlMraoI9Mqjeujdx5fH/ZS+z8vhzypHup8ATCcBNQfe9ITyob+W4f1illaK85h3Z7xIKrWdoDlEB0bfVM634BQl2cGZ7DkRSncebu+Psmc6s3AMa54fKKSXEfXmOBAqLRFa4phKmNVAeOq/OgvQwEdMb5wrDTmiu7jCTPvFtn5IW1OE7nmFQGPihHOE5WJshILi94x6piK50DKnd3SD6q/XS3tL7XpaZLsYO6o1dXstTk9CLJwgZZRDd9xPY3Llh4d5nQ2LezDjhcVh3qN0FQstgsRqLddmBe0NngjdsZsNJ/gwdtGjPLXEYHykHUw1DInX0Z9QPiShu2TC4=; 5:XXG5VoNtsa+hcxrUAHTWcUkz+zDcQHGTjcywQ4qSqguCKfWhz6QpImPVLHs+FD+H+3OD6HCpcSJpMFc/QOOrE3ZNXQH9xTy9dsCz49ROX1iMz1i/ptl1xGvtrVf8LMJgEuN8yJXOJNYaMIstF31irmFd8CJDH0EVZusb4LXvHcc=; 24:C1ScSbr5MB3jQMtnwEEkGPcWVOjkshMQ4AfFHrJefcBOAL9R32BuEXK23QPhKJ/ibtrq3rGxDtHg/i71UfOoTiH02HFHcICltEyQ0dZRXyE=; 7:v+f2hwDJvpZdhD2oN3swiIkm63sZbAmbinkL2qJy23cJERYm1eGEz+ajaKcRMO8FEzp1zTUQzpeSmAcNQijpMVEbDBQQUa4zAtX8jCLtb1OO9vzN598y3j8gMVLVV/m4fRsdofZWmcBUhhUV33/KrvQaTzRX64YXk5oN1cdzsoMcWa9U1/3rRRpmXgQl9loCFtwqwKuZCnRzVgJDFgOXaeo/sIsDL6wdaSUMmERVCYjOUSkqDB/7uOsA24govEAr SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Jan 2018 13:03:19.2581 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: da6dba3f-4fb9-4ce9-c124-08d56261ace8 X-MS-Exchange-CrossTenant-Id: 5afe0b00-7697-4969-b663-5eab37d5f47e X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=5afe0b00-7697-4969-b663-5eab37d5f47e; Ip=[192.88.158.2]; Helo=[az84smr01.freescale.net] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY2PR03MB475 Subject: [dpdk-dev] [PATCH 4/7 v2] bus/dpaa: fix port order shuffling X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 23 Jan 2018 13:03:22 -0000 From: Shreyansh Jain While scanning for devices, the order in which devices appear is different as compared to MAC sequence. This can cause confusion for users and automated scripts. This patch create a sorted list of devices. Fixes: 919eeaccb2ba ("bus/dpaa: introduce NXP DPAA bus driver skeleton") Cc: stable@dpdk.org Signed-off-by: Shreyansh Jain --- drivers/bus/dpaa/dpaa_bus.c | 52 +++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 50 insertions(+), 2 deletions(-) diff --git a/drivers/bus/dpaa/dpaa_bus.c b/drivers/bus/dpaa/dpaa_bus.c index ba33566..ef2df48 100644 --- a/drivers/bus/dpaa/dpaa_bus.c +++ b/drivers/bus/dpaa/dpaa_bus.c @@ -57,10 +57,58 @@ RTE_DEFINE_PER_LCORE(bool, _dpaa_io); RTE_DEFINE_PER_LCORE(struct dpaa_portal_dqrr, held_bufs); +static int +compare_dpaa_devices(struct rte_dpaa_device *dev1, + struct rte_dpaa_device *dev2) +{ + int comp = 0; + + /* Segragating ETH from SEC devices */ + if (dev1->device_type > dev2->device_type) + comp = 1; + else if (dev1->device_type < dev2->device_type) + comp = -1; + else + comp = 0; + + if ((comp != 0) || (dev1->device_type != FSL_DPAA_ETH)) + return comp; + + if (dev1->id.fman_id > dev2->id.fman_id) { + comp = 1; + } else if (dev1->id.fman_id < dev2->id.fman_id) { + comp = -1; + } else { + /* FMAN ids match, check for mac_id */ + if (dev1->id.mac_id > dev2->id.mac_id) + comp = 1; + else if (dev1->id.mac_id < dev2->id.mac_id) + comp = -1; + else + comp = 0; + } + + return comp; +} + static inline void -dpaa_add_to_device_list(struct rte_dpaa_device *dev) +dpaa_add_to_device_list(struct rte_dpaa_device *newdev) { - TAILQ_INSERT_TAIL(&rte_dpaa_bus.device_list, dev, next); + int comp, inserted = 0; + struct rte_dpaa_device *dev = NULL; + struct rte_dpaa_device *tdev = NULL; + + TAILQ_FOREACH_SAFE(dev, &rte_dpaa_bus.device_list, next, tdev) { + comp = compare_dpaa_devices(newdev, dev); + if (comp < 0) { + TAILQ_INSERT_BEFORE(dev, newdev, next); + inserted = 1; + break; + } + } + + if (!inserted) + TAILQ_INSERT_TAIL(&rte_dpaa_bus.device_list, newdev, next); } static inline void -- 1.9.1