From patchwork Mon May 22 09:39:19 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Hemant Agrawal X-Patchwork-Id: 24435 X-Patchwork-Delegate: ferruh.yigit@amd.com Return-Path: X-Original-To: patchwork@dpdk.org Delivered-To: patchwork@dpdk.org Received: from [92.243.14.124] (localhost [IPv6:::1]) by dpdk.org (Postfix) with ESMTP id 636157CAF; Mon, 22 May 2017 11:40:22 +0200 (CEST) Received: from NAM03-BY2-obe.outbound.protection.outlook.com (mail-by2nam03on0077.outbound.protection.outlook.com [104.47.42.77]) by dpdk.org (Postfix) with ESMTP id 4EE5237A6 for ; Mon, 22 May 2017 11:40:07 +0200 (CEST) Received: from DM5PR03CA0019.namprd03.prod.outlook.com (10.175.104.29) by DM2PR0301MB0909.namprd03.prod.outlook.com (10.160.217.14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1101.14; Mon, 22 May 2017 09:40:05 +0000 Received: from BN1BFFO11FD030.protection.gbl (2a01:111:f400:7c10::1:151) by DM5PR03CA0019.outlook.office365.com (2603:10b6:3:118::29) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1101.14 via Frontend Transport; Mon, 22 May 2017 09:40:06 +0000 Authentication-Results: spf=fail (sender IP is 192.88.168.50) smtp.mailfrom=nxp.com; nxp.com; dkim=none (message not signed) header.d=none;nxp.com; dmarc=fail action=none header.from=nxp.com; Received-SPF: Fail (protection.outlook.com: domain of nxp.com does not designate 192.88.168.50 as permitted sender) receiver=protection.outlook.com; client-ip=192.88.168.50; helo=tx30smr01.am.freescale.net; Received: from tx30smr01.am.freescale.net (192.88.168.50) by BN1BFFO11FD030.mail.protection.outlook.com (10.58.144.93) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_RSA_WITH_AES_256_CBC_SHA) id 15.1.1075.5 via Frontend Transport; Mon, 22 May 2017 09:40:05 +0000 Received: from bf-netperf1.ap.freescale.net (bf-netperf1.ap.freescale.net [10.232.134.28]) by tx30smr01.am.freescale.net (8.14.3/8.14.0) with ESMTP id v4M9dk45031538; Mon, 22 May 2017 02:40:03 -0700 From: Hemant Agrawal To: CC: , Date: Mon, 22 May 2017 15:09:19 +0530 Message-ID: <1495445969-29199-11-git-send-email-hemant.agrawal@nxp.com> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1495445969-29199-1-git-send-email-hemant.agrawal@nxp.com> References: <1494851864-26029-1-git-send-email-hemant.agrawal@nxp.com> <1495445969-29199-1-git-send-email-hemant.agrawal@nxp.com> X-EOPAttributedMessage: 0 X-Matching-Connectors: 131399196058061821; (91ab9b29-cfa4-454e-5278-08d120cd25b8); () X-Forefront-Antispam-Report: CIP:192.88.168.50; IPV:NLI; CTRY:US; EFV:NLI; SFV:NSPM; SFS:(10009020)(6009001)(336005)(39850400002)(39380400002)(39410400002)(39840400002)(39450400003)(39400400002)(39860400002)(2980300002)(1110001)(1109001)(339900001)(189002)(199003)(9170700003)(76176999)(356003)(6916009)(2950100002)(5660300001)(50986999)(8656002)(5003940100001)(6666003)(53936002)(54906002)(81166006)(36756003)(50226002)(189998001)(8936002)(8676002)(2906002)(48376002)(50466002)(104016004)(47776003)(2351001)(105606002)(85426001)(15650500001)(110136004)(106466001)(305945005)(498600001)(86362001)(77096006)(38730400002)(4326008)(33646002); DIR:OUT; SFP:1101; SCL:1; SRVR:DM2PR0301MB0909; H:tx30smr01.am.freescale.net; FPR:; SPF:Fail; MLV:ovrnspm; MX:1; A:1; PTR:InfoDomainNonexistent; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; BN1BFFO11FD030; 1:BNGJew93sHkgp1iwADa5C6wLSCEp9FU+wEbPOHgA25klSa/IbqE+54TNBC/0EQPhqawJcGbm5AVM812FaDY5/K07M6xBPwVGMbfdHXwphmgUpz2rYJdNWP3bwi/OgyqEXlTa9/ziDMkGvMqlTRXISFN3hBU1y82bmaJBWBcRZhtu4M1uuNKBg0Kht0AsA636yVfuC12QfUU/rhiYlhbubHt0uxWRqnAQN88k65Pt78itsRQBGprB+QbtOONQdTJAcuiQq4Y6vCaKBTVSXget4iPcirxPHmCifvUwhGkldIAYAAPBmuuUxTaeJgWySE30/pr3EqdHUeLrQmcuB1mJ60k71ZflbEWDYbR0XyCJHmBJahH26ls59xlqMn07ZszlLQGbljvvQQetICjEk1+wxu1DAR5ZDgv0Zn8WdMvYKJIIm48CcETUs2QwcouKCegE3IYRBNYT7WeXR/y8UYAV1HWQqBdhxUj7QJbZoEGyb/iGAgOzX+7zhB376vu51N6N/698nbvq/2xOtlHbOEQ3gcOa8dYD0Irmd7vplCIZXNmuDk9XeI2DP4RCPWgr5khhFSNsA3R2lbTUH6aNMPBGv3c2NFehjEXvQzIXbgTZueOApTqsRBTgsXWnCPWLxae0WhMM+jIdsH4N6NXfNXiZVopyap0WmLPm0hIjm4ukujrKSkE8S20GnoTg7wAR+ldlc8lqqPb9GGxNSMEKKrnA6oECfnW/dSHkVdTFzDbok2PxTINLwzTmeDMaJ7L8t06dqfeD3ENsh5vgEmE++eExFw== MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DM2PR0301MB0909: X-MS-Office365-Filtering-Correlation-Id: af149bb5-d8e3-4e64-aa9c-08d4a0f68744 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001)(201703131430075)(201703131517081); SRVR:DM2PR0301MB0909; X-Microsoft-Exchange-Diagnostics: 1; DM2PR0301MB0909; 3:QdXGtZW27S4bZtiFBpK4Drw9r2Sh/Mpj27JUhMkZwF9TgrRl3VwjuMwaa0beZCSiZKXk3o/7msx8YgWJAH0evH5TWl3RGrILvxwYdjCsDXOqeK2INpKs4BUKxX2qNrSoQYm9RsUNdvlFnhWpWklNvrE+j//u5gFlQ7hVvC2hcT/aFEiEaXUJ+Ml+Pg4ak03OqqtU1TuUDCPoFBjxOfmVKLl5Wo2KOZxGuSntyL43OF+vDY9uCyecDb5/iLxDCFz5F5SAp1LfJ9q0nvaE3/H7WVA29qA2lKC/LNjYe28y+ftlnzbBvhdfJNTSGjcoM7JSyRx0Wz4jXdDgdKOyTeKhBhfROD8EutmehiTakqRodotZX5hIxfMer/daPfZ9z5Ln0LWg6wENFKRHGJrJWNQRhnmL2hEa+/oRbOk9Q5WmBUCYmC1R5xyGNHzLqNCBeNHC; 25:QE5/GmWk0i2PBE9PIXJNthsQ9OINTtG4Iik6QoCXVL5Ng2gjp2HgBc9MQnhMCNgmA8S8vETGlwMKQ1fGg9zMv9o+vAV88wfCPlcdbzv1HfLfo/qtBGaC4MGDa7t4UJHhoPeKKtI01+3LpkPgk96xMGcb+vPXMeN/Jfv2kubwj4fO1tJ6Tbo5mUCzYB0WlKIoWauprbCfenjC2pH/PxWTqZ9uBN4h8jwFObrPoH4vG8CQWQRC0VbXLRCDa+KEt1xFCE0PAK4ZbFySYyXAgPmf4u1xj47Y82QYBCnosCQVn49dQdvLaGq5SJtrCISlyrhpum0HubRvgcHfSDEYYy09y615N5vM0pc4QqkcsFZAO8eHjiVdok56Sy/heSMExqRtaHW5J2LY1V8qBreoSIN8XGsu/hv9BB5P5EIfnlEDzMP/6Wanr3oELfCzXzHLLkz6W4jXgaecUApdrcY2evze8+9W5uepVAAxDe/rs1tXmGA= X-Microsoft-Exchange-Diagnostics: 1; DM2PR0301MB0909; 31:80ZWNbxH6lkFU+vk6V8VUFlDwiF82dAzFW4hV0ZGP+RixvoQ1qJOWIdLGRax9URLPFKa74gs1PS+RUixDO+JQG2KRmzio98pdhGW2nR2+GuCPoS+Z49Fjit9CjSz0i5UNXURn1UCTCMH+nfmFza9Um+qs1Dj2IRMIWIYDFJoo6UpnE9MD44Vf7oOZPjmBrmvUYO1ugDgiu/Lh3zuLdixPh2eJbT3o1Ob3WdRM7B+Jxf0J+2ikXvY+lN70k+jzCCD X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(185117386973197)(275809806118684); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6095135)(601004)(2401047)(13023025)(13017025)(5005006)(13024025)(8121501046)(13015025)(13018025)(3002001)(10201501046)(93006095)(93001095)(6055026)(6096035)(20161123561025)(201703131430075)(201703131448075)(201703131433075)(201703161259150)(201703151042153)(20161123565025)(20161123559100)(20161123556025)(20161123563025); SRVR:DM2PR0301MB0909; BCL:0; PCL:0; RULEID:(400006); SRVR:DM2PR0301MB0909; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; DM2PR0301MB0909; 4:w3SHX5fVgh8wOjSA7npYNjO7aPZ7la3mSoR7n26s?= IwyKCU7reMbc/frUn7Fjya/DknUJgy/p/Idhswz7xrGdHG+zXiDSrWcTjRmqwi8JPnpgmn2ACB6diZj2UXMgoXkIzdelU7Bo7Xzy01+RzTBERueJi9vSGqkhqukdMc53O/C75BrKL69Y/vZV0msvbVHl9O8FWKcDRXTcP13uyI6EGHqDaaNa2fgNXdxJVwiVBkLmqEA50LSy80Le+kum78mF80fZOrYG+Uppw/QHUqkLMb7b+t6Fk1XmDhhQ3pnJpTK13TS9ksnEivzyjKwD+1OhrHKZZDwWQEhH/Si3bkbeykP6AaM+UvFkh1T+Vn9oN6DKH8zXx5jhTUbro74vGtXTdhQtehWQ0WbpOulaffKhWXeoCgaX81vDz/AejVoEJMHS4Fmo41vcl8gYJnGSoVdd1xsGCFuz5Gr9dCOrd/Yu9P1H3NQGylq9vpGvxGYNJj10ANO0/gGEXpElreHsOEBhjadZnSrR4rTNv4Aj0uRCDIWvJbvJxjQsTjLmLBXd/vZzcnAfaF3HzJGGFAXjxcdL+d2Q97fy0ghXdVewk4HKuRg6N0jFCFcob/vebrm6d3LwLgBjk7XA6yZHEEoYJxYBQiKSYhetm9/4zS6gjOev3qwGsdwz0hzJ7G6XT1D5DFQbavX/0q1JhWb7W7WqQcAGtL0tyYGnKly7bP5i5rGpGMKsuhxmPtnscQHILe0lawVBPN07JT+tEFSOmd2YisC+s5lD3mDabNqwbEarzyC7eVbGL6RSv6/SDwaZ3312vF213L0JoCYUYbOMMh+Km0jR+E6LxPfiYPYXQWG3JOJ/1krEIPcwPwHq9ZdTdWdvBlxToB32ivkYh49/vjff5qkmA1LUF3YyOas3QTrIh8dWQfqUHEF9HQ0/VXOQv+fCQ5+zpSU6AkWEbXPBvM/MWEuRPPU6JpDvGJS4dTwYCuWcdGY6Si9Dj+gMj6xnOZ7q/e8= X-Forefront-PRVS: 03152A99FF X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; DM2PR0301MB0909; 23:FuWOyE5gcbIh43gkpENMBG89xgMMj2LM+GWCU2H?= Z40Vg0Q6NtUHSifPAV8ehq2r/bQ99s5ZAGtWT56wMMcKfkgbnnY48zjKs44vc6ZLh1XHn/kX3L1xuT3PIZrDZ5Gd8dPPBAuCKhJRCx/o9QcPTkoWMJ3rKNGRgmc457V+ln6/n0Ss1ViwtJD97wTHCUV6iI0y0okpfYABD7OBQRRFM7qXmEckO/71fq7inCFgNqV6Lwf/9DMNsAi3x72Fo5npbum41k5y8B2d/48czWrjvVZc+tT9i0eEsJHTPKgTEHc16S5dTHXFEN1hmgutHuVJ4MFpq3xkBXMs/o+J9pQJZHXC1Mi26C+od0JF/Rp/vOztkOL1We4yiNRHMarAhsx48eE+Yg5T19a2TLETwJud45+aj0Wm7F1Vrz77KeUPkClkVlgBj5VL022fkr+EISiBeKylTQ6jCKshP8MBPD4qPIOmGV4U89YV9QRlfC/jq9rO7/PmtOjRxVBk9bEaPLI8h+rN9LmPH5LfxDFXEkEvL4CZqsysM+pzggpDK8MYRmRtzd+ikgK6GQPseRFTHBwDyVwxU6s5mlHAKBetGLhWBFH7taSrbJGq0hi/zsv07cMLd07WZD994x6mLnL6OCAf252JKPG3MyxDPMK+bT3qTmeVyvOLnjDcejwj912MPM++6Us38ZVEjImWIfiDve1rvSuu5DOYhPixYUw0lF6zhGsit2arunV/+H1bQ2LN/wdcwo1oDPHXvWTPkgmclpMIDSsDTLlYjyHFWaKDcuyMia+WbtAn9m2MQWKdzFyIfVBw+JWOuD/zqDmBclQKUPZsO/MrdhzImDq3SlHiy0KJiMCGMjKnrPT3O5tHjcIyC36wn+CBDeJIDNZxAcOE/gLbybABM4j3HEPerCpIRqoROgIsbiv5frlZhTZ+uRgiMkGq3sk6+y+IWZF1OOUrfuvaVVgSRAVcm3A/EV+IkqqVxu5/cbNUQl5be3l5DYTHXIHBwcef1d85h5hnH8XorqhGe44M61eOoP2iKtQSLA0g8cSsBD6VTKVz1kiMHshQOHZlkSQ7sJbBYHD8r4c92ggOvGwK4SameEDAFWb+DCfWQzgf3JQBsHaDEaS02TAcm5Xk3TkJKsw2KnvCgCz7+R+ipt1NnL15W+HnSWiNCivsni2xL9LqpUZQOP2InoYsf5UjGtY4qPcaim05NQNOa8qew0/3St3DgnE9jf2hwa0rWOtLPE1OEZfkjFDI+wrp/Vb15JTV2Ud3G9A4RgNMN6elW X-Microsoft-Exchange-Diagnostics: 1; DM2PR0301MB0909; 6:dsS215q96N4gL1TU8mbZ2ABn48656EhNgQ76D4ujfwnpR0Mszj2EOk6f6OtpkknhcpaiaOxUlLdaO56R9AUQQdr3Xw+UKbUS4m1lXgq83fkIVHuwPwC59HYWeydAZb3MNNt8V5kpjOeTJOv+0COrCuyH1T6Psw93+pudI3t33fINP6Hiuyk4cyVDQrlnDvABcteVIdp+C18+LBTwnRWYaaNZIe16WYINBKaNsJY37VzQn1QtXVGz8H/qnm/fhuxOB4FoWbMnudcAvMN+youowIPhNmso7Ooy9T1F02RdxeUG0kCm770Y9DQrVoGoYqiWGhysuyUUkLj8gUtNE81GOpsAZucbbjrpYS4tFDazH+PhhjYbr0HWIWaJP1OSBgNAEoR8O5dkxCUZtTRdad0NGfAhhRynuOJjMbH832uUvP0gHqsycDyl0jUQxPK3wDk+Z6rTVNIRZaBLywS6DmZ5g2DZ0NHU2ptDAFRcnH9SkRolWsu3F3Dt4fgmlkMvHxArEdMxyFGaz+HAbcitv3sXSg==; 5:sX+HPbxPW95SGcvopIm8K394mdrhTv/nRwkbE6RpNIs/gNlhagqhgIfA5xinF+3deFDQoXQSR7fwjrp1bjFcTyvNRjXDo7dn+H9gOjk1iG3Sbne4m5Ukn7Pl8t4C4/FGKMGhIF/Mw47Qw3bSzs8u4Hm0iVy/9wl4sbCHRsxu0iiy9yJZ//z0NvgRo0VA3s+r; 24:lO9zVaYOdNIRlX/u1tu9lg01FL18pyl2kg2CtvIdE2hLFGRzlp2n0wGVdMN6dA5ffWHvN/891Roz8t+SyMMOB3K2kvLAz/MPZLT2HasTmr4= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; DM2PR0301MB0909; 7:UjYdBfcqkMXX/Zc5XUVG1/9MdHEWHvfIpZq0jvCJg3d8TFSxzZ/0pA3wCIpmrPLEDYelzUh2G2zsoKB2fKKfhBWzjOFBW12UdjvcNpP3RduPwseOS//lMt+LBUBDaiZ1iF/OZ9EFh4v0AuXi8x0h74dJ7InJW+iHCucMmewOVCtdYSwVi3MVcTFE1ByHi2bz9es+sUUc59zpVQOpgsVGWuYXQTzyqr1lXY/hvZXphuEzGdcsGmgvjnPYvhhDMBEftaAZU7g/oqY9cfh3Taq+A2amm6iwrh6X6cBjmYW+2v2E0YD9fDQzMowYQspFVk1VO/38jYzfi+ElHNZ7XkLkcw== X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 May 2017 09:40:05.6345 (UTC) X-MS-Exchange-CrossTenant-Id: 5afe0b00-7697-4969-b663-5eab37d5f47e X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=5afe0b00-7697-4969-b663-5eab37d5f47e; Ip=[192.88.168.50]; Helo=[tx30smr01.am.freescale.net] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM2PR0301MB0909 Subject: [dpdk-dev] [PATCH v3 10/20] bus/fslmc: update TAILQ usages in dpaa2 objects 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: , Errors-To: dev-bounces@dpdk.org Sender: "dev" This patch updates the usages of malloc and TAILQ in dpbp and dpio objects. Signed-off-by: Hemant Agrawal --- drivers/bus/fslmc/portal/dpaa2_hw_dpbp.c | 28 +++++++++------------------- drivers/bus/fslmc/portal/dpaa2_hw_dpio.c | 32 ++++++++++++-------------------- 2 files changed, 21 insertions(+), 39 deletions(-) diff --git a/drivers/bus/fslmc/portal/dpaa2_hw_dpbp.c b/drivers/bus/fslmc/portal/dpaa2_hw_dpbp.c index 2fb285c..644f01c 100644 --- a/drivers/bus/fslmc/portal/dpaa2_hw_dpbp.c +++ b/drivers/bus/fslmc/portal/dpaa2_hw_dpbp.c @@ -53,8 +53,9 @@ #include "portal/dpaa2_hw_pvt.h" #include "portal/dpaa2_hw_dpio.h" -TAILQ_HEAD(dpbp_device_list, dpaa2_dpbp_dev); -static struct dpbp_device_list *dpbp_dev_list; /*!< DPBP device list */ +TAILQ_HEAD(dpbp_dev_list, dpaa2_dpbp_dev); +static struct dpbp_dev_list dpbp_dev_list + = TAILQ_HEAD_INITIALIZER(dpbp_dev_list); /*!< DPBP device list */ int dpaa2_create_dpbp_device( @@ -63,19 +64,8 @@ struct dpaa2_dpbp_dev *dpbp_node; int ret; - if (!dpbp_dev_list) { - dpbp_dev_list = malloc(sizeof(struct dpbp_device_list)); - if (!dpbp_dev_list) { - PMD_INIT_LOG(ERR, "Memory alloc failed in DPBP list\n"); - return -1; - } - /* Initialize the DPBP List */ - TAILQ_INIT(dpbp_dev_list); - } - /* Allocate DPAA2 dpbp handle */ - dpbp_node = (struct dpaa2_dpbp_dev *) - malloc(sizeof(struct dpaa2_dpbp_dev)); + dpbp_node = rte_malloc(NULL, sizeof(struct dpaa2_dpbp_dev), 0); if (!dpbp_node) { PMD_INIT_LOG(ERR, "Memory allocation failed for DPBP Device"); return -1; @@ -88,7 +78,7 @@ if (ret) { PMD_INIT_LOG(ERR, "Resource alloc failure with err code: %d", ret); - free(dpbp_node); + rte_free(dpbp_node); return -1; } @@ -98,14 +88,14 @@ PMD_INIT_LOG(ERR, "Failure cleaning dpbp device with" " error code %d\n", ret); dpbp_close(&dpbp_node->dpbp, CMD_PRI_LOW, dpbp_node->token); - free(dpbp_node); + rte_free(dpbp_node); return -1; } dpbp_node->dpbp_id = dpbp_id; rte_atomic16_init(&dpbp_node->in_use); - TAILQ_INSERT_HEAD(dpbp_dev_list, dpbp_node, next); + TAILQ_INSERT_TAIL(&dpbp_dev_list, dpbp_node, next); PMD_INIT_LOG(DEBUG, "Buffer pool resource initialized %d", dpbp_id); @@ -117,7 +107,7 @@ struct dpaa2_dpbp_dev *dpaa2_alloc_dpbp_dev(void) struct dpaa2_dpbp_dev *dpbp_dev = NULL; /* Get DPBP dev handle from list using index */ - TAILQ_FOREACH(dpbp_dev, dpbp_dev_list, next) { + TAILQ_FOREACH(dpbp_dev, &dpbp_dev_list, next) { if (dpbp_dev && rte_atomic16_test_and_set(&dpbp_dev->in_use)) break; } @@ -130,7 +120,7 @@ void dpaa2_free_dpbp_dev(struct dpaa2_dpbp_dev *dpbp) struct dpaa2_dpbp_dev *dpbp_dev = NULL; /* Match DPBP handle and mark it free */ - TAILQ_FOREACH(dpbp_dev, dpbp_dev_list, next) { + TAILQ_FOREACH(dpbp_dev, &dpbp_dev_list, next) { if (dpbp_dev == dpbp) { rte_atomic16_dec(&dpbp_dev->in_use); return; diff --git a/drivers/bus/fslmc/portal/dpaa2_hw_dpio.c b/drivers/bus/fslmc/portal/dpaa2_hw_dpio.c index 7c35f86..62c03a2 100644 --- a/drivers/bus/fslmc/portal/dpaa2_hw_dpio.c +++ b/drivers/bus/fslmc/portal/dpaa2_hw_dpio.c @@ -69,8 +69,9 @@ struct swp_active_dqs rte_global_active_dqs_list[NUM_MAX_SWP]; -TAILQ_HEAD(dpio_device_list, dpaa2_dpio_dev); -static struct dpio_device_list *dpio_dev_list; /*!< DPIO device list */ +TAILQ_HEAD(dpio_dev_list, dpaa2_dpio_dev); +static struct dpio_dev_list dpio_dev_list + = TAILQ_HEAD_INITIALIZER(dpio_dev_list); /*!< DPIO device list */ static uint32_t io_space_count; /*Stashing Macros default for LS208x*/ @@ -214,7 +215,7 @@ static inline struct dpaa2_dpio_dev *dpaa2_get_qbman_swp(void) int ret; /* Get DPIO dev handle from list using index */ - TAILQ_FOREACH(dpio_dev, dpio_dev_list, next) { + TAILQ_FOREACH(dpio_dev, &dpio_dev_list, next) { if (dpio_dev && rte_atomic16_test_and_set(&dpio_dev->ref_count)) break; } @@ -336,18 +337,8 @@ static inline struct dpaa2_dpio_dev *dpaa2_get_qbman_swp(void) return -1; } - if (!dpio_dev_list) { - dpio_dev_list = malloc(sizeof(struct dpio_device_list)); - if (!dpio_dev_list) { - PMD_INIT_LOG(ERR, "Memory alloc failed in DPIO list\n"); - return -1; - } - - /* Initialize the DPIO List */ - TAILQ_INIT(dpio_dev_list); - } - - dpio_dev = malloc(sizeof(struct dpaa2_dpio_dev)); + dpio_dev = rte_malloc(NULL, sizeof(struct dpaa2_dpio_dev), + RTE_CACHE_LINE_SIZE); if (!dpio_dev) { PMD_INIT_LOG(ERR, "Memory allocation failed for DPIO Device\n"); return -1; @@ -364,7 +355,7 @@ static inline struct dpaa2_dpio_dev *dpaa2_get_qbman_swp(void) reg_info.index = 0; if (ioctl(dpio_dev->vfio_fd, VFIO_DEVICE_GET_REGION_INFO, ®_info)) { PMD_INIT_LOG(ERR, "vfio: error getting region info\n"); - free(dpio_dev); + rte_free(dpio_dev); return -1; } @@ -381,14 +372,14 @@ static inline struct dpaa2_dpio_dev *dpaa2_get_qbman_swp(void) if (vfio_dmamap_mem_region(dpio_dev->qbman_portal_ce_paddr, reg_info.offset, reg_info.size)) { PMD_INIT_LOG(ERR, "DMAMAP for Portal CE area failed.\n"); - free(dpio_dev); + rte_free(dpio_dev); return -1; } reg_info.index = 1; if (ioctl(dpio_dev->vfio_fd, VFIO_DEVICE_GET_REGION_INFO, ®_info)) { PMD_INIT_LOG(ERR, "vfio: error getting region info\n"); - free(dpio_dev); + rte_free(dpio_dev); return -1; } @@ -403,13 +394,14 @@ static inline struct dpaa2_dpio_dev *dpaa2_get_qbman_swp(void) PMD_INIT_LOG(ERR, "Fail to configure the dpio qbman portal for %d\n", dpio_dev->hw_id); - free(dpio_dev); + rte_free(dpio_dev); return -1; } io_space_count++; dpio_dev->index = io_space_count; - TAILQ_INSERT_HEAD(dpio_dev_list, dpio_dev, next); + TAILQ_INSERT_TAIL(&dpio_dev_list, dpio_dev, next); + PMD_INIT_LOG(DEBUG, "DPAA2:Added [dpio-%d]", object_id); return 0; }