From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from NAM03-DM3-obe.outbound.protection.outlook.com (mail-dm3nam03on0072.outbound.protection.outlook.com [104.47.41.72]) by dpdk.org (Postfix) with ESMTP id E1782FB6B for ; Tue, 20 Dec 2016 13:41:35 +0100 (CET) Received: from BY2PR03CA040.namprd03.prod.outlook.com (10.141.249.13) by DM2PR0301MB0750.namprd03.prod.outlook.com (10.160.97.146) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.771.8; Tue, 20 Dec 2016 12:41:34 +0000 Received: from BL2FFO11FD026.protection.gbl (2a01:111:f400:7c09::106) by BY2PR03CA040.outlook.office365.com (2a01:111:e400:2c5d::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.803.11 via Frontend Transport; Tue, 20 Dec 2016 12:41:34 +0000 Authentication-Results: spf=fail (sender IP is 192.88.158.2) smtp.mailfrom=nxp.com; infradead.org; dkim=none (message not signed) header.d=none;infradead.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 BL2FFO11FD026.mail.protection.outlook.com (10.173.161.105) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_RSA_WITH_AES_256_CBC_SHA) id 15.1.789.10 via Frontend Transport; Tue, 20 Dec 2016 12:41:33 +0000 Received: from [10.232.14.87] ([10.232.14.87]) by az84smr01.freescale.net (8.14.3/8.14.0) with ESMTP id uBKCfV1L018910; Tue, 20 Dec 2016 05:41:32 -0700 To: Jan Blunck References: <1479747322-5774-1-git-send-email-jblunck@infradead.org> <1479747322-5774-8-git-send-email-jblunck@infradead.org> <84460a6f-3574-8da2-3ccc-6f1e23fb50e7@nxp.com> CC: , David Marchand From: Shreyansh Jain Message-ID: <4eca27f2-de7c-6f56-738a-09000c637a58@nxp.com> Date: Tue, 20 Dec 2016 18:15:10 +0530 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.5.1 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset="utf-8"; format=flowed Content-Transfer-Encoding: 7bit X-EOPAttributedMessage: 0 X-Matching-Connectors: 131267112940218809; (91ab9b29-cfa4-454e-5278-08d120cd25b8); () X-Forefront-Antispam-Report: CIP:192.88.158.2; IPV:NLI; CTRY:US; EFV:NLI; SFV:NSPM; SFS:(10009020)(6009001)(7916002)(336005)(39380400002)(39850400002)(39450400003)(39840400002)(39400400002)(39410400002)(39860400002)(2980300002)(1109001)(1110001)(339900001)(377454003)(199003)(24454002)(189002)(65806001)(31686004)(229853002)(305945005)(31696002)(85426001)(110136003)(6916009)(47776003)(6666003)(83506001)(65956001)(23676002)(2950100002)(77096006)(106466001)(356003)(93886004)(105606002)(38730400001)(104016004)(8676002)(8936002)(230700001)(5660300001)(97736004)(65826007)(2906002)(81156014)(86362001)(68736007)(54356999)(50986999)(92566002)(50466002)(189998001)(76176999)(36756003)(69596002)(626004)(4001350100001)(81166006)(33646002)(4326007)(64126003); DIR:OUT; SFP:1101; SCL:1; SRVR:DM2PR0301MB0750; H:az84smr01.freescale.net; FPR:; SPF:Fail; PTR:InfoDomainNonexistent; A:1; MX:1; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; BL2FFO11FD026; 1:SMuiTDN6l3KVeeqgjeU6q21WCCRj+28Lzzy2H9Y3WoQm9QdWMcYqpVmJ2cNxwAYZyqemlcv6m/m9GdjYLLKiOw5yAEngtwwvH4nASQGdE4qqzizFPVkOiRsmAOqwHCS5xZc/jLedxW16bWBgU7FEbCjawtZrt6REoUUyGZY1fVp35H/C6IffxkpTsHsZglshuE+Tc3DCdKRz/CQQNnwGabtz7JnzAbdTYXqTlQnDIiy6ODV5NvsaL6WLM20ZYfDH8lHg6oJ9R+Q5TnlttDtfbOEnyMzoXEbahOczqxoMqzuyttyOrPHEYv7eLvAQxKm658NsnswzVjWwP4Dq53wvRtFPExznAPLoUltwBCnsCW63OOL5iIhKQ97cH1hs3IAZ0Bj2KZXBPNSFhyeMYUqRbvLSCSjMmxQ8soVKQoBu+RbdAE7lf83DoTyB8Do2XRkXXjPRJ4nvligtZ1EnL0gud1f7pQe0SdpYHsGkudhCDGEacE7/xK8tUJXzDFmMo18wuWYdvl2vExNx3dGGOD89o+P+N0RSnK7uz7+gLWEyQtz2b/8rfl/Qiqp34bHf09CROuasdixSdEPvaq66014d833rkK5zwyOj7L+ekIuuU1w= X-MS-Office365-Filtering-Correlation-Id: f5fd504e-a2eb-4ca8-c858-08d428d587f2 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001); SRVR:DM2PR0301MB0750; X-Microsoft-Exchange-Diagnostics: 1; DM2PR0301MB0750; 3:KleV4zYONpyGXcnSLTKvY6upT+Dk+BaDJI9bn9JuxANUAj6FjXAUVjl643LTgDSsqeutYZD/cS+H+VD7lDVx2NjFeXePgWTQZC/KL6O8H6k0MdGLRO3SPoT1npBEG9TQbGSnHq8Qm6GN2lkfSmJ6Mftu859+Mw4a1jtkYQli8bxtVxLLZd0q5TNy+MWMV5owhLXbqA0fvGdCzsW2/3dgSqBzxHvZYMXOhPKvIfawHCkhL2llkmoo2M+PTmmIkj9HLS4m/b4PXFQVySfMFJGkrTWlH8HDDeyjfclbw3OKmg2t12Uta5PWrpA2D0Eutr3IgP9XCSePDkq2yMNXblVVCBp1OJQAOPA6YlDWW97pqNx3l04YhmTs5ofVMBP1Nmmg; 25:AO9cnAmAuaEDFp+ZBRS2KDtlqIRlym2MmcXM+xcSo6LlifNcsn7dl8ZaCI/3o1L+pD8T5JwkUnoU9vxHIYTIsuMIkAVqA+4khzPxWeWXp+/7RoQmD/PPQJiPStzRpd4nbGn2AAMit6fLslvqYUZWlrJfPGy+8rqS+Gr/uoHt2P5muC06UtBewHxWI/Lh4asGaeRWVy8VKUK8nZ33wVmvBnIATAUd/qbjOAeRv3hW2K1x5TEGUxwOZ63/kRP3eQkMpshemkaj3O08qSUAwFMF8S6AosHeLhkZCRYdpzJx6d6S2Wb+Aa1SopWi2u0sGhuaTFj+GfGa+WmAcvhg1njXIGM9kjzR49MJnsXZqsNTy7n1dzWWHDm3h3yjZxyGKpMXFcar/nQEbQPTru10gdi3xZ2jZ39z96/eQfIQgW/PXXmLn/Yj5/xKwlqr0jm/uEqTJLdIKmHzqEaBNb5cwo6gKw== X-Microsoft-Exchange-Diagnostics: 1; DM2PR0301MB0750; 31:NAIoIIWIu0leyqgtTxEoPSeLHQZjD8yNitxYWeOmfAHg5oOBS8Vr72QBHdygro6hRR8dJzKmfamzq9UtndF5EyLWqeoOJ8pk8I9fHPySFW3Hz+2z5nopbB0mMSW2bcRu9mvuBuxZ8PEfUS8jDCJyIBz7Bg5FWM9/RKKHzdwQ43BHPTd9efHgHgzSUbS9utNGSoX0jt3HeiD1sBq5ezecQ05YzqSuU2MZluKmHVEfGXcaZmo1ugrBUE9LH7DUOpsflAe8QFjmHkTKKPjc7lTzq3ZldWXLc3abCpCfOsQeEDU= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(185117386973197); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6095060)(601004)(2401047)(5005006)(13024025)(8121501046)(13017025)(13015025)(13023025)(13018025)(3002001)(10201501046)(6055026)(6096035)(20161123563025)(20161123559025)(20161123556025)(20161123565025)(20161123561025); SRVR:DM2PR0301MB0750; BCL:0; PCL:0; RULEID:(400006); SRVR:DM2PR0301MB0750; X-Microsoft-Exchange-Diagnostics: 1; DM2PR0301MB0750; 4:HiQqe6vg7Lb9uivVgo51idPKpEiwBvZlShgRlkAsGegRFDH8b45LDtXzIDiHMjOKzXnSD7qRKuEoOBO/iliTXFoAnQoxUQvUA1ltRlCLdjHtLKQTewS4GmoAquhOvAsVMZUj0t8LDcH4TJ3qMysVteBX7G4KBYZwGB8DimGI4ws4/8/9lSWS2/OoxovuTM+D+vDOVCeWbkATd17iHXUUgkJvOnBbMe8Tf5O0uMix7I9MFsqk2Yeicrt3JeGi3QWIAKoyBRMNIRltw4CmqlJJtmNci63cjRKkWm9epFM+Rh0ohYhItGkN0YmP12wPDvq3VOlyUws+zN6jqeF5F1mp5lFWx637hfiZXmfZblUd8gXqWsuVfWGRrxeI5h0P8zTJz2HoBC60W5vxDG96paFjj/OyblBlqZ/a7MgKGDrY37iOlXuQFnwM6CEGT6SiEJTNJh8lQfqHbs3sRjoGTbxBTW1uz2cMZIm9PzJbmg7qitVqulqBz6EtumyaS+yX0k/2U1b+XCsx2JZ1TLTRm1v74aSLRJnqpC5IncaEyf65D9lRQjW/2kSEcQla+B26BO7KcB8nW+XKkd+ixzO/vIQq5FCiG9VzAnstTQd/iEE1ROjssr331IHp/Sjov1zLUJE3ngbFZK9t7wuR1H5ybM1NXd2M0SHXDMDnqYG0iqeq22EJZ5AmotLM8gkrk+T8ig1oBIeNKuwr9fOPmt+/62ItdjFxGxGUTQ21EISF/K9vg3tZujF3ngD7mtwBTbQOCPt/ X-Forefront-PRVS: 0162ACCC24 X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtETTJQUjAzMDFNQjA3NTA7MjM6MExDV3pFSm5XbDcvdk9MUVlFQitEbnlx?= =?utf-8?B?YWZMcXVVekNnbXVsb25lK0xkTDBaUVRzWnVyTGY2NkhRVGJ2K2g1dXExSVVw?= =?utf-8?B?YU9tYlRMV3RIV0RCNXZsdC92VFVlWTBtWlNoOS9mRTA1TzhoVHB4VEJQNDJD?= =?utf-8?B?azcxR2V0OGxDVEpSUGxNbERtUmdWM2RWZGRLRENlamlMN0RtclcrMWpOcG1k?= =?utf-8?B?S21GSVczdmcxVlBwQlRPQlhYa1I0NU5KVGQ1c3FVQzdHM1FsTmx2dlRUZ1Fr?= =?utf-8?B?MU5jK01PSWNVeEZzOGFhemthOFN4OGRNRVovdm1qdms1Sk1UUEhMdkxKMEg4?= =?utf-8?B?UVhWdk5nRlpoRmZxRDJqRk50NExvaDJ2V2pvUFVuNkw3THRieFRzVFRvMmFj?= =?utf-8?B?bytpOERCelJXNXFZd1h5SEZZZUkweFBsNGJnbzM3RDUwanJvaTUrSWRsOVlk?= =?utf-8?B?alllZDlRT0xkZFVNVSs1aEd4UXduRGpQaWhLMmxFcFRJbzBQOGtIVis3L3Fy?= =?utf-8?B?SThmTFE1QllRbFpLcnNjQ2M4ZS9XeXd3clJ1bGJqNElVdnJnOUZ2Yld6UXRp?= =?utf-8?B?N0hicksxOStpbnpYWXJSRVA4cW1Edko5cUs5cUV0NExubXNkbUdBcUFwUHk5?= =?utf-8?B?R080TVF4eEN6cTAyQkYyZUwrVmxZanl0UVpaUjNsN1YvTmozMXJNelhCOG0x?= =?utf-8?B?eWJkbEFBcmZSZkdHSVBEQ3VXdXh4MkN0bDg1NFREUG5wUXp2NyttMVhrTHNT?= =?utf-8?B?RlArL1ZPSFZ3ajFpSDB6L3VjZWVTSWxHaXVjdHpVVksvYlRpQm5WNEpKMTVT?= =?utf-8?B?ZjIvQmNvUllPZFNsNktzUjdZSGZ6RzhYbjE3dW90VU4yRXBreWJXS00wblds?= =?utf-8?B?M0Flclh1ZjVJNiswLzB4RDZUYkRZNTNOZVE1TjE1QWx6aWJISmRINlYwNHBE?= =?utf-8?B?M0htMEdCVmlSYW9GSXlRdWM4WDE5d3NuVVJxVFY1d0NtSUtnSGtpSFIzUG50?= =?utf-8?B?ek8wSVVmV3J2eE9NM1ZNc3dQWThkeTR4L3dpbUNaMEtncjI2QWNwZ1ZhVTVH?= =?utf-8?B?SUZYcWx1SU9rN3hMWTdoVU5tTDZSNStDbUNFdFBFQ1pXZlNMVVZLNy9sTWFq?= =?utf-8?B?S0FKWjRlOGxMZlRMN2dIUEIwQ0I4WjFUR2hrYVUwejJrWHdCSkpFV3VuNm1M?= =?utf-8?B?cmMzdDNxQVRMWWVTRHFBNXE4MUw5dTZ5MWN0ZUpOOHVuamw4TnVpdUZFSE5o?= =?utf-8?B?blVYTTVNemFRZEpVU1VKWDNYSG5wanhBamd1WjRBcnhGMHFENHNncTZTOHow?= =?utf-8?B?MlFPRzI0ZzVJekJaZjYwUllCT0NSSHVKS1BHV1JrSnNLVktuTWFEUDZnaXRX?= =?utf-8?B?OVBBd0k2Vzd0TWVzS3ZCRElnVCtDWmNBNmxmb0hNVmNGUUJFZFZzZDBXSE1n?= =?utf-8?B?cURYRjI3MnhwemRCQ0k5eHhnYk04SWgzK1Z6Zko2OWdGTUhBdlVTc1M5MzJV?= =?utf-8?B?aVFaeXNsaW1oa2dVWW5COHp2QTZmdTZObXZJOSt3R0VpMkVDVUV2VWI1eTVU?= =?utf-8?B?MExpTVAyWmlDTkRJQXcydWRHZStSNzByOGdBQTZyY1NJNW10UmY3dlBHdzlU?= =?utf-8?B?MVJFYVB0OGZ0RVhBeWNYYWpVRXZhN0ZRM083bE9lSzY0dlNKWWIvZXdpWmFp?= =?utf-8?B?c01BL0lNU01RTFo2MVNJVDh6NXh3ZjczK0ZCRFNkZkp6SmxZTUFOMklUdzRq?= =?utf-8?B?VjQ4U3FNeXphY3NOZVBuUFdPTmV0UndRRHpzcFdOYk1EcE93YTFnUEVsNmpM?= =?utf-8?B?Z25qeWt5NVlpMVErZjVKcHB0QkQvTGhsSTRXRk1QUEYyWDFCQVVSelAzR21D?= =?utf-8?B?N05IdDhBMXRITll4dElRWDZIM0hrMjFick1Ka1F6SzNQS2M1M2daM2JMRzN2?= =?utf-8?B?MVlUWndtS241NWN6bVBZeEJCWjdBOVVaT3hnbXJyL0RSOXNONE92amZKdVZs?= =?utf-8?B?UGtpMmhNM3RsbnNSaWY5dFUrV2ROV1RXbVVlZGRGRjRsNTBHSmxRNWR0K3pY?= =?utf-8?Q?hNGRLw=3D?= X-Microsoft-Exchange-Diagnostics: 1; DM2PR0301MB0750; 6:rPC1J5a5+i5/siamhI8LNbPs3TTu4tnlk2sTdCepy6n2mK2NOvBdu2/DSFF1fbClzBkwUhf/dRA67BM987mzuSJUpSvcY5xpY8i7CypUdicDv7NyDR+Zgfe+umYcQysWMleZwdPWoG0cCRu5dTb+sJyt/tZpfWx9KAWKCvf2ia27bELNxXvimhOKy4nq5iJU0/ffLHxNhXH/ScMXiSfkE7H4GNjU+l/sP1PHO5L2v3g8LqF7hh9HVpENjhn1xi0AnxgPDS9fr5m3H+G+4/DQpdPn8nd/RZX1AqNCktN7EwdTBH38v2mVT1kJYApcsAUaXTVFTlxNmPCPCllIKNrkQTxz80/SWJqoI5ym12QkAjwMWNo+g1FE2PKS7zHRsWgoesmer69wOy7sg90rXls6zkf1+TXdSzMw9V7W2uGtHDJbyGPRZuJJqadyoviH9To5; 5:stisJEnApcjR3zMUv/FsMx/ki1hv+4rUbFsUDlwiAxzHL4C8pkppuZqwK+1gNnE1gzgm+CPcR1MP/lPSThCMU8qNNdnVrjqqZsP/RDjLOtOjnWQ7FDLBeF9+F6qleRvP3tfw8wWhCOSGeLEmDw7WoUV6Q0pr1AmTD5nL+R/lHEIXj7gsJ9rag8amjXdWiffm; 24:F+xVU06eWK1FK+S3KG0xCiWM7gimGoAhV7l4iZKU3gWjEwyISCu9R8pBx68sGRmHB8uwdwtinBnTUORHkzdW+XagA2+x9kELou6HSB8vVbY= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; DM2PR0301MB0750; 7:exeYAFqfkNHxfIAwjfY6rCAdDnkjq0JhykyiHJuDRC/1p9qai0m4ynEbssbB2vqY6BtdRbU79gixHimHfhO4+T8mjR6NRoyApgdL4UkDePc3X6QA7958qNs74llYyH/7ZHgaLxIPwoWQDPhcj/2VtlRpkLZRNrI+5sOaF+AJraGw6YjaS4NYedx59dzmxlbutLrA5/GsJu+HQSviXXct7TQCS4RRUaYcZMdVMSnbyqbvXZlpC6p9aPHtcNlGyxleF9kix0emMkbVoZaPCHojTyZgXevLdsrONqErBB+VUXcOyvOtAWmrJ6MXmxM0tDIVo96Uh3dCOKLC/Aw1abyMxjW5OjyWUTjGpkQOpy+6LF2RW6iKCqAAHcJZDpTFUSlAkpRpZnFbGZ6TiS2DcsIWBPmebt1lBEkcE4EeRrhtVv23+q3a8gLgocDRm31tP2mtbwhyOStL2qdec3HsL1JnVw== X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Dec 2016 12:41:33.7878 (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.158.2]; Helo=[az84smr01.freescale.net] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM2PR0301MB0750 Subject: Re: [dpdk-dev] [PATCH v2 8/8] ethdev: Decouple interrupt handling from PCI device 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, 20 Dec 2016 12:41:36 -0000 On Tuesday 20 December 2016 04:21 PM, Jan Blunck wrote: > On Tue, Nov 22, 2016 at 1:57 PM, Shreyansh Jain wrote: >> On Monday 21 November 2016 10:25 PM, Jan Blunck wrote: >>> >>> The struct rte_intr_handle is an abstraction layer for different types of >>> interrupt mechanisms. It is embedded in the low-level device (e.g. PCI). >>> On allocation of a struct rte_eth_dev a reference to the intr_handle >>> should be stored for devices supporting interrupts. >>> >>> Signed-off-by: Jan Blunck >>> --- >>> lib/librte_ether/rte_ethdev.c | 18 ++++++++++++++++-- >>> lib/librte_ether/rte_ethdev.h | 1 + >>> 2 files changed, 17 insertions(+), 2 deletions(-) >>> >>> diff --git a/lib/librte_ether/rte_ethdev.c b/lib/librte_ether/rte_ethdev.c >>> index 4288577..4ecea50 100644 >>> --- a/lib/librte_ether/rte_ethdev.c >>> +++ b/lib/librte_ether/rte_ethdev.c >>> @@ -258,6 +258,7 @@ rte_eth_dev_pci_probe(struct rte_pci_driver *pci_drv, >>> rte_panic("Cannot allocate memzone for private >>> port data\n"); >>> } >>> eth_dev->pci_dev = pci_dev; >>> + eth_dev->intr_handle = &pci_dev->intr_handle; (#) See below. >>> eth_dev->driver = eth_drv; >>> eth_dev->data->rx_mbuf_alloc_failed = 0; >>> >>> @@ -2543,7 +2544,13 @@ rte_eth_dev_rx_intr_ctl(uint8_t port_id, int epfd, >>> int op, void *data) >>> RTE_ETH_VALID_PORTID_OR_ERR_RET(port_id, -ENODEV); >>> >>> dev = &rte_eth_devices[port_id]; >>> - intr_handle = &dev->pci_dev->intr_handle; >>> + >>> + if (!dev->intr_handle) { >>> + RTE_PMD_DEBUG_TRACE("RX Intr handle unset\n"); >>> + return -ENOTSUP; >>> + } >>> + >>> + intr_handle = dev->intr_handle; >>> if (!intr_handle->intr_vec) { >>> RTE_PMD_DEBUG_TRACE("RX Intr vector unset\n"); >>> return -EPERM; >>> @@ -2603,7 +2610,12 @@ rte_eth_dev_rx_intr_ctl_q(uint8_t port_id, uint16_t >>> queue_id, >>> return -EINVAL; >>> } >>> >>> - intr_handle = &dev->pci_dev->intr_handle; >>> + if (!dev->intr_handle) { >>> + RTE_PMD_DEBUG_TRACE("RX Intr handle unset\n"); >>> + return -ENOTSUP; >>> + } >>> + >>> + intr_handle = dev->intr_handle; >>> if (!intr_handle->intr_vec) { >>> RTE_PMD_DEBUG_TRACE("RX Intr vector unset\n"); >>> return -EPERM; >>> @@ -3205,6 +3217,8 @@ rte_eth_copy_pci_info(struct rte_eth_dev *eth_dev, >>> struct rte_pci_device *pci_de >>> return; >>> } >>> >>> + eth_dev->intr_handle = &pci_dev->intr_handle; >>> + >>> eth_dev->data->dev_flags = 0; >>> if (pci_dev->driver->drv_flags & RTE_PCI_DRV_INTR_LSC) >>> eth_dev->data->dev_flags |= RTE_ETH_DEV_INTR_LSC; >>> diff --git a/lib/librte_ether/rte_ethdev.h b/lib/librte_ether/rte_ethdev.h >>> index 3adbb2b..f1f656a 100644 >>> --- a/lib/librte_ether/rte_ethdev.h >>> +++ b/lib/librte_ether/rte_ethdev.h >>> @@ -1629,6 +1629,7 @@ struct rte_eth_dev { >>> const struct eth_driver *driver;/**< Driver for this device */ >>> const struct eth_dev_ops *dev_ops; /**< Functions exported by PMD >>> */ >>> struct rte_pci_device *pci_dev; /**< PCI info. supplied by probing >>> */ >>> + struct rte_intr_handle *intr_handle; /**< Device interrupt handle >>> */ >>> /** User application callbacks for NIC interrupts */ >>> struct rte_eth_dev_cb_list link_intr_cbs; >>> /** >>> >> >> Is there another patch which replaces all uses of >> eth_dev->pci_dev->intr_handle with that of eth_dev->intr_handle? >> >> Now that eth_dev has a reference which is initialized as early as probe, we >> should use that rather than pci_dev->intr_handle for PCI PMDs. >> > > I've added this indirection because it is required for the ethdev > function. The drivers shouldn't use the indirection through ethdev to > access the intr_handle because they do have direct access to the > device. This is my mistake - I posted my review at a wrong location. It should have been at (#) above. My intention was that we should use ETH_DEV_INTR_HANDLE like macro for accessing intr_handle. Anyways, I see that you have already posted v3. I will review that. You can consider this comment as retracted from my side. > > >> OR maybe, ETH_DEV_INTR_HANDLE() like macro which you have introduced in >> i40e_ethdev.h. >> >> - >> Shreyansh > - Shreyansh