Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S933657AbcJQUlF (ORCPT ); Mon, 17 Oct 2016 16:41:05 -0400 Received: from mail-by2nam03on0069.outbound.protection.outlook.com ([104.47.42.69]:47904 "EHLO NAM03-BY2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S932711AbcJQUk5 (ORCPT ); Mon, 17 Oct 2016 16:40:57 -0400 Authentication-Results: spf=fail (sender IP is 66.35.236.227) smtp.mailfrom=opensource.altera.com; vger.kernel.org; dkim=fail (signature did not verify) header.d=altera.onmicrosoft.com;vger.kernel.org; dmarc=none action=none header.from=opensource.altera.com; Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=atull@opensource.altera.com; Date: Mon, 17 Oct 2016 15:25:15 -0500 From: atull X-X-Sender: atull@linuxheads99 To: Rob Herring CC: Frank Rowand , Mark Rutland , Greg Kroah-Hartman , Moritz Fischer , Ian Campbell , Jon Masters , Michal Simek , Jonathan Corbet , "Cyril Chemparathy" , Matthew Gerlach , Dinh Nguyen , , , , , Subject: Re: [PATCH v20 06/10] fpga: add fpga bridge framework In-Reply-To: <20161017160941.4205-7-atull@opensource.altera.com> Message-ID: References: <20161017160941.4205-1-atull@opensource.altera.com> <20161017160941.4205-7-atull@opensource.altera.com> User-Agent: Alpine 2.02 (DEB 1266 2009-07-14) MIME-Version: 1.0 Content-Type: text/plain; charset="US-ASCII" X-Originating-IP: [64.129.157.38] X-ClientProxiedBy: SN1PR0701CA0010.namprd07.prod.outlook.com (10.162.96.20) To CY1PR03MB1517.namprd03.prod.outlook.com (10.163.17.23) X-MS-Office365-Filtering-Correlation-Id: 24f764ec-7d26-4f26-0dbe-08d3f6cbb8d9 X-Microsoft-Exchange-Diagnostics-untrusted: 1;CY1PR03MB1517;2:3Kom6fkdIPewzK/DrTqM1ghkh2Po0N2LYGdSmTnn8HtzfVP64LNiPjj9neoTNYEKWAdTO7YhPHwmPzeZ1k7N4dlTInotr3L+3jyOMuwWKzy0gdPHyVnZJRQMJwafThQHojt3v3njWdMAlr9vHXtCnD0MDmmCGBhgFuz8Xqc6QWBwCtOTFke82stxLOethDkEeKkVqjlJJ4db+DFC8ScWKw==;3:HQV/21iBvaaYM96b2kr9LfFwp3PJhQCLnleCbhGakxUwO3q39c3gXOqdnav5psQwX0WOx/+7cOkbKbxQYZOkiM6jPha8ykLQCum46Gnb2GqdTn1qmWvUrf1rjsz3T3THIDou6XcceNaxgQfluQQG5w==;25:AqlWitf3bhMd24/MeiGUaBmYBHxucH1FV+nRaIwW3ZmI74tk7+pdAwQqzDFpl3eVCIaWQtRXw3CL5Ay2yGMIM5o5nD6zJNLCVwKGX8/Wbku6rbXgGWgKiNKGmYuzmnkE1eYP6gko0G4gJ6gusgf9ZnhndwBijEfR4zH9tP0hdgbhRA+tl6OeIDFHq/dHDLPhBY9phvuYJZMJaMufRQbfjbE87adFLs8MbM4ymyVJYP23fMyBQasZIODw7JaXUXF+cBqx8RD6qxN8Im74kgGaOtjL8q58SRDf+o2w4aqv1NmCgscj15yUKilFCwwzs6VaKSTVuZOirQ4MQVXqszOczMYRIMv/soJ+7Mm/GO+EiWc9B2hBKmcHL/46S1cWopf93LVO87t7fD1pQsOlOGvdSgKSfbMWJfHHIrUf6hzK1EnB1ZXCf/IjKMpqkVWZtCSjTIxDhj4JK0TpbBvMxTY+mg== X-Microsoft-Antispam-Untrusted: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:CY1PR03MB1517; X-Microsoft-Exchange-Diagnostics-untrusted: 1;CY1PR03MB1517;31:gqA4XVI1+EHppq4Y+Gs/i1t5qNQvXclPCVTeq6VTLxga76ZzZFSE4zuKeHNcWTzqVjvPdyS8cl4cj2sG6erRQ0Yi1Gk1yfOVXHK7oaKBxix4njn8Bd8uGH+Fhce3QzvgIWAJUfW3TCnBrvLktry3ydS+NNRmt5n/FNOxwxAuKxPa8McUBCo6RhjrBfe+TJ0omKys+65m7jB2DO8rn0k5GqcKCuS5nG53WF18EDt4IISybfqc19Hgj52jNG294EBp0Pl7L1S4bcKnzepFE/Ub/g==;20:TgfxGpGFPNw0IbCQ7REdxU4xmG6WK0a4pRy3xHFCjijC1nzjKp4QvGseBe8P9VNRmqqDaol0fEgQkRXkAxChdWIAGuvnv2qtPgfZdrDfQndy9UZQ5VaR2bIy9DFeYRuzfblonbm/uhIXKMvQO3xVLpQNLh+43NCvdI47n1bTiU4=;4:ye0lE1We5haMRzc8xGpMM7Tb8LmO38DX93jKbTjoQPt6HBPRSytROj8PBcmAcfdQ/BRhlGdAzW7Ny26JjYS88VxFQE3rVNjPuqX4s7Bd1UYOik56ND6hxqSHW32ezrkeePExvgL8joWbgkoJHNP+s4xRHEUgTqeRh/ENYhO3jXtHxJ+QXGC7lo454wWU6qCehUAaV2v1AlRAFAM4wy4xc9MRkUTgm0IeDfEraG0Gi0pkK5DMZ7R2H5/6Q5MCueCMw05sIFgm8Vh4LFbWfc75eIpo4pjq+fg9F2seMHrSqxe/v2xsMXYCMlf6ZHKVkTUpEP4rXYB8eRRH+R/udKKiKj96Ek/QytTtz8LGeWSFT5HfcV75gXdaZ4o10uiRcX7JYK4783Bw3KJmUBSN3kLSg0/el8ZMpDPVJHq0BUW2xSg= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:;UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(6040176)(601004)(2401047)(8121501046)(5005006)(3002001)(10201501046)(6055026);SRVR:CY1PR03MB1517;BCL:0;PCL:0;RULEID:;SRVR:CY1PR03MB1517;BCL:0;PCL:0;RULEID:(6040176)(601004)(2401047)(13023025)(13018025)(13017025)(8121501046)(13015025)(13024025)(5005006)(3002001)(10201501046)(6055026);SRVR:CY4PR03MB2757;BCL:0;PCL:0;RULEID:;SRVR:CY4PR03MB2757; X-Forefront-PRVS: 0098BA6C6C X-Forefront-Antispam-Report-Untrusted: SFV:NSPM;SFS:(10009020)(4630300001)(6009001)(7916002)(24454002)(199003)(189002)(105586002)(97736004)(92566002)(8676002)(110136003)(2950100002)(4001350100001)(42882006)(53416004)(83506001)(3846002)(189998001)(23726003)(6116002)(76176999)(54356999)(47776003)(586003)(69596002)(50986999)(81156014)(7736002)(7846002)(8666005)(305945005)(101416001)(33716001)(5660300001)(66066001)(86152002)(4326007)(68736007)(42186005)(77096005)(9686002)(86362001)(2906002)(81166006)(7416002)(106356001)(7059030);DIR:OUT;SFP:1101;SCL:1;SRVR:CY1PR03MB1517;H:linuxheads99.altera.com;FPR:;SPF:None;PTR:InfoNoRecords;A:0;MX:1;LANG:en; X-Microsoft-Exchange-Diagnostics-untrusted: =?us-ascii?Q?1;CY1PR03MB1517;23:TMh3x6C/UtD71AF7tiQ/pjO1NlHDZEmhQVuav5sgV?= =?us-ascii?Q?Z7V9UWl1ehYU5k2FNfwXjSN0KKecOG0ofaH7ml+2zkCLK7vo8enrl9s6S3i5?= =?us-ascii?Q?B66iTihdfRo7aFOOC2RMi4S8TVMDa0gDGUiuuOnPJN8zDodbbaCoNf7RMfEI?= =?us-ascii?Q?yX/AWN7KIPK80eJsKXyEBDp6mfiw7nBmOQC0fj0VGrdUgLSAvcF2VFbdmU0T?= =?us-ascii?Q?WjAMOaEccjp1zJuVHdTSB4nHrkjarlKt/tEwPyk6dLqTva79vRoKMUJ4bJJ9?= =?us-ascii?Q?cfD2Avbs4VFdxcORVv4TUpsqNMvtv9NzAjM7qDP2dTBRAv5cVRFBP9cQ78xz?= =?us-ascii?Q?JKN1vH3rI0DQVaxwqxCihvJzZ8+2HEpxH3RMBbVeNcFv3I2SEB0GETzXEimL?= =?us-ascii?Q?hS5+G9thiN9ejwoF8Dog0+VebtQy+yDEcqzv8emeHTXheXHqTbzDPc97eF3j?= =?us-ascii?Q?DB7cIy53NJ0/5vsWfUU82o80h+8pCVu1/rmdAgCO1kSWOpAJ7Sch1s0ZihLn?= =?us-ascii?Q?t52U7lKb3XXScHxAfkcb1lp49SmDxtOjFSsdnaYx0zq/BnSglAT+15COdU68?= =?us-ascii?Q?gg0A/9sLom+s5v5zrPUHHz33qyYoy4owRJatGDxVcNaUGDgjqdLuUJ3OyWWa?= =?us-ascii?Q?A4y2CC8gh7Ui/ZLh+DqKONJPJhqNKttdyf6VcctWDiawNS2KH8MjTc9RWhwe?= =?us-ascii?Q?SgDgDJacJ/P22Jr2AyVzsuL00r/IBNZw4aQLvrMqtOL8JXwQbMk162CZr3hZ?= =?us-ascii?Q?4wzSAXpiWUcEyZvt7X//80NFZOlzSamyP8/393nYXT9VV2k9A/RbdsYIOx0w?= =?us-ascii?Q?sfUAE9veBGd7R0OLwCH5Vu1Kzz3fuTqAxAP268VexfLqSCTk0aA5/oX6spHl?= =?us-ascii?Q?KfR2b8Im0x303hZbM3Cqqo9VtrVtdqTi3f5gb8KBYyu7y0bxkGqM+5YHtdgT?= =?us-ascii?Q?YNwamAG7o9/Hs+wcoNC95a9PlU5+AgSdTkqQBMazSxVI1JQLhWlCpFMzr+Vx?= =?us-ascii?Q?qvCEpQmMJOGuZ+JtabNLPbtJhT+mWSZW6UGokc9UV1wXIjtSOENrqExS6VM6?= =?us-ascii?Q?LlVpNysFVZ0WNi109jjMt27YslcB3XBy79RBYRYz+Bf9WjiRYxUDXVvKazVE?= =?us-ascii?Q?7eCIJO95o0=3D?= X-Microsoft-Exchange-Diagnostics-untrusted: 1;CY1PR03MB1517;6:gK/xbbWEZnXx0XcPGhR/r8CpMZODKOKqsxIgBRBeCdxmjTuxfTbstZSLKzch/UEYdPpC18RFz3LToMQIXcytij6k80oIjdVQEnGU9q+Y8r2+tYDpVce1vECudlCeOgXxaGjyHrpmp4vuOwCiua8VE1Sid1DTD0Q2Rx7mFxe5qJ7bDVGrvY9wv4gNW5TNt+UhGsHibL3b1yGY+kDGcfEFzMUKdiU311o58RclOXpj3jBnDUvM4llvs51NSCD3/S8rrk2Zd+PBK0rQZBMr3TG5IrzqC2F3h7ZXuAjCE9+KhqZDqUN7/9aUsGObc3FUydmcAyCVGj8XkDnC2O8FPV7Ggi9blPGVorbAvTTviva4Brg=;5:/+7JHG0uzr4ui2glZFTqKH//oj5SqlkE7OoWqGooT8yfQ4DHo+pneTwhWPbYl6NFkFjFiClwmsIwS/Gubq8Q7H9USdmy9F37W7pAP54s5HfGL+ytWfy6WZb/r5apak5E7rCbtNVi3BAySkVfd3QtWA==;24:8g32ABeqsL6fkYnT7mUeOujxB6lULYSN+KDkrIdKNyTI9Pm8EzB5+AutwykCzKi2xplDVLpgXIIf0194OVPfkYy0yBDRE0Wd/dO4ZztUHME= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics-untrusted: 1;CY1PR03MB1517;7:z7neRharp+uEO89bUK/fcdcu2HcrbgKBWF2nQNeH8uthOmQDjZllnlEQ8CeYJl2s+W7vYa4d4LZE/lOKRngqX3heWajPiGIQBjKa21+B4VrEMR+thQxVzZlF7KzuuPSbtOqcyTtulR+29tSPQABGbiKG8UfsEwbju5h82Xn0Xzixfo8zplSzmMYTQ4kdk/4yHCn+CUACveHG/vRUrb3EHs9LNiz3xl9gC9IIZRIHjGtBRJaLIHQikTorz/lp5tpct5SUmtrD5gxD15sSkFUsJvi0MyPvwMrGPFKplP43ujzRQDZ7vAvKT/wJLMnu4jeAsOGBbXBwKOKcpxy0vnT3A6K6Z0oohKqyHqRtDd3CFKY= X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY1PR03MB1517 X-EOPAttributedMessage: 0 X-MS-Office365-Filtering-HT: Tenant X-Forefront-Antispam-Report: CIP:66.35.236.227;IPV:NLI;CTRY:US;EFV:NLI;SFV:NSPM;SFS:(10009020)(6009001)(7916002)(2980300002)(1110001)(1109001)(339900001)(199003)(189002)(24454002)(4326007)(33716001)(956001)(9686002)(3846002)(7416002)(92566002)(85426001)(11100500001)(586003)(106466001)(105606002)(6116002)(81166006)(7846002)(5660300001)(9576002)(81156014)(8666005)(305945005)(68736007)(356003)(336002)(8936002)(86152002)(626004)(87936001)(7736002)(86362001)(50986999)(66066001)(54356999)(76176999)(3720700001)(83506001)(50466002)(53416004)(77096005)(110136003)(23726003)(97736004)(46406003)(6070500001)(42882006)(4001350100001)(8676002)(189998001)(47776003)(2906002)(2950100002)(7099028)(7059030);DIR:OUT;SFP:1101;SCL:1;SRVR:CY4PR03MB2757;H:sj-itexedge03.altera.priv.altera.com;FPR:;SPF:Fail;PTR:InfoDomainNonexistent;A:0;MX:1;LANG:en; X-Microsoft-Exchange-Diagnostics: 1;BL2FFO11OLC002;1:CKaxOw7b52YQ/GlFz5xNg9TbHLiwlBCiPDsJDf9LgAGrbyJmJBuQxUhWRN/8CPhQduMKuyamDJ7phg0l5KdV/9zd83ZCFt+R4wFH8tzPdSuqYABwfZ+4K7t6xHschRMR3jFH3ur8i1b57kr9eYGvAoKz5p7OOhRbc2Uojhl2xB4jX3UFfZB0V719hSkhvdWl41dmEFg98Lpb7tcILG+qxfeA5FyJypKWlm8640XpBayeZyFoVolpumsw45cV6apIemvQIB6cDBaNvciio7verAGq9xu0tV6CBRpQYHCUQeE03x/uDT26tc0eGxTUeBvqmzwxI+Gb/sM1piLKEO1aKkBI6IU5Kk+6x5cJh1TRikfzqoUrU+phbhFUkEWV6Oqnk3RRkfwtD+ZwHhecoFSiFdi6rY/WJ8JQEWP75dT7PtoGDpOuBI0CnABPd8Qg2Fb32/U0gaOay08V/rP6vgVWNLqZ8Xye7hgv1IUiwIOCfJBHMt67vQCA4nXefL33sCH7lD+bV8XlamtwxkzlqbWytvNmFGzqup0+03ljW9d7kwZt4fI6ejtYCLpKFljUMxHhBe9VHRRA0rTMvFykd3nVhTVW3jqVLIU+pRr10ubdtBO4ygOhEb7FDwmy8bCjc118 X-MS-Exchange-Transport-CrossTenantHeadersStripped: BL2FFO11OLC002.protection.gbl X-Microsoft-Exchange-Diagnostics: 1;CY4PR03MB2757;2:hbveJ0cHtaZC28Tq8+3vw2GgYPnzwYXXJ5wIHmXAlhqo50B2BvDWnaFZrjEs0Lnhje219j/WUkYAmkW2DGCeE05YXITgT5Jf4LbjvxRanu1cIqOXQ5XPjPhzyVwomGENjP6urrI08ueZGpdYlAc+StGzpklsiiHQMNDQrrkbEyoBxKDzPC7EPerM5qiH8H9+uyGCYKVz26kGgoZ3htTjfQ==;3:VKwezHIX6ew1XQENf8JYw7JhSaLJCz1nduPpQqR2JsYNrzSPKj6ve+W2p5F6E/X3nX+fo6pKmDE43s5FaBucHe2YUm5oEVtRLIB6lFtBnKuG+1xSG24pQK2BawipFakjc/4ma6xSpvB8EdxOshg+OtaeJD8dJgoJDjsiyvK+2tz+DMjM7y9tJbTU1Gtka8Jih8IKCJ6EbuYfngPBXOJMyOK9yOMomFqXaA5nKT7JbvzNGgh2Alu2rAokJhwuQsMrcjWc49y7aLEOD5gGXz+2lA==;25:Tibj3Jm38h6kaRa4eDHch6VPTgaFW7jle/57W9/e+pTSIc93hT4iuY1jEMax6ipvglyNjWZAv/vekuiEwT5UXBTfIlmfeJlAZJdtgqSx1iQ+miIC+hDfcvzX+bH31i87yTRq0cNgX+lVHwRoELnvWMjUpYAUh/Z3+X7wxAYaGllQPOLDT2zEaDOh/Y5KwRHlBbBn6h+Vb9YnOsbh83SpvPSdsw+VNAeOQsYNj317CsvSfKyw7h3CfHFs/bz0weAm2Qjsl/r9Skwn1A3M95+HOyDXsHo4MKYYLQ1FiVJyzgqetPFh2S+DL5NkATZdyhQy0IxUo4H4J3lfCWeiHyJwMW2Sgbd5p4SOxt0KwOxV1xjW1Wd4acbZ7v1RZ/5fgCqjLKuxNnm9Czsk+ZrTOP/qnIvT+aPnZayxCvWDFBIl9p4dvu/7R2WX1aPzxPs44OoTT0StB7eE6sEY8sca4fpzLw== X-DkimResult-Test: Failed X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(3002016);SRVR:CY4PR03MB2757; X-Microsoft-Exchange-Diagnostics: 1;CY4PR03MB2757;31:D0f+7yz/dlu+uQhrb6Ll7bi7s0WOsXqaBbNPgwCVOD6L3MfawMyl/8A/X3e7/IsvwoTWXFtzHPut4FGf4xYQOHYNFt7+qg45I2X3iG2NpUQCNmM6PHW2ZRm+NX+OnAWH9w38AwanWcE9RH5httTcBavRQo3cXsvKlr/vvsv6oLhM9HSY+3C3URPcxoVcLgQeUYMxaMJ0dPkXU52Y0ER6hRFlWY8/76etuHwGqsJorXPpr3QBPvCLV1EP90cUy7zEKPvJ5RXdDzwOQJ7oSD1G1A==;20:xbIV3CpdZh4GgX7gxy+uf8+Ft2hdDcn0a66Bcr0THvhBXvOMYg24vg8n/e/ipMMKDXkkj+BDdr/wI5RasP26wpc+K65xQG4FiqpNMXohiTAiDaoLcweqxJf3CFoDRZUilOeFfBO+U8VqOeBjyOorUeoAUKwyCMIHWVnZ9PiEoQY= X-Microsoft-Exchange-Diagnostics: 1;CY4PR03MB2757;4:ryyYrvqq2YiIT8GH9/jqVK0mUrWiIjn4VrFcsn99eg/YH3LGyhtRj/s3ZdHc/Fv/ANiORZsmvqaMCM8LI9rFVVqQpYCUfT86ffJ11cYv9ho6VURyQFL2L2CO3Lj8dB01GoIojPzlP6o22z8n9XbW2iJncI7Ub052XAqjSKgOd6pydvCcgGkNzCWqsaCaRWbYqEbTLQPbxjDBvG8FgDmjI3apW+GXMHGqDLPYu8k+i7FcQskVs6xXnfCdy7pW8jDoCuFQELQTN/g+/1QBKLQplrNFtwVheMykWklDPggajkOQZ/Q3dmYJ2M7L7xnn8YLrEiSu8kqjwhm9jB0Q2JfxsdH8a32w6igOrkmiMDKMDf6z2MdLc6qeJaCFr9yQp/pJtfTsMG1+FNhc3iyg46xA6fR1Lkp6rprkC97NVPiIxWR9xdnwCmpADDoirWCSyJk1+uQQvZeMK/eWHdKvtG7HlFpgDj+MbI5kD2rpZeYEO+a8IQeKBDCBCUN/0bv4qHXfoian8cZvcrg6LGYQDJE68w== X-Forefront-PRVS: 0098BA6C6C X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;CY4PR03MB2757;23:sUcFXorrTMsuWRsjZMORhduc4T8ptz0zryGhYxVAg?= =?us-ascii?Q?A+CSzFlOv1KjaHCZJT99ufDSrLdPWizY51YQPpr5VKHNSB66yMVmQSriBLYG?= =?us-ascii?Q?qF99npxzYE3jFvF1oLBtvnN3CybusbeKNjYUsRyMpLVBOstCkqWtU+C4655E?= =?us-ascii?Q?k4fvKpoh41QnVgHFancKL34t3FbK+9LesYTL4wytm++CggYlClOzTGFLLW80?= =?us-ascii?Q?FiJkBUvoOO3kn2oAPcdM0SWzARCEyiiofSfTTXOMh/fddIlj36LeSMsKHT6S?= =?us-ascii?Q?kbZknOGsePLj8wEGy+fbzUGeYezt30bZWmse4EnJzhxoiWbGXN5JO4SMhw8J?= =?us-ascii?Q?oz9OvhWeKlFw5lQZjFOhennhnBF7+hAHZDyWMccqCq1l4GhdMxADgfWBtTIG?= =?us-ascii?Q?asPqY7Xsh9O+agTqS6zsz0UIQ+FkUyvu9UjHZ+cywhjp3rc1FDKWKYAf/aCJ?= =?us-ascii?Q?bHMnZrYAeRzfjU2m/v71Ig1zbS9U6IjhQdU94UHQ2TuQQNZ1YTDAlkYQVz4B?= =?us-ascii?Q?dRG8pv4FaFLZSNJu5xAtGbRsbZoE6E5JcZ7z6udfiLmh45MYSP3xLExbzMuo?= =?us-ascii?Q?ERuPMogV1wjMwkMyFbO6MUgzXuHVovdzqqMLSMGdqbprsk+RFblVaeWm0rDz?= =?us-ascii?Q?tD3lQXMMNINgeoFiIHU3HBEtilSUiFrhvkG9rQl5VLqIq78Y9CDpDuhwPue6?= =?us-ascii?Q?Fd0Bj2sRePlZyhOf6DJL95L78pIyisiEzBI1SBnK8L+TGDoO/4YTiUV6SJy2?= =?us-ascii?Q?dlHwOWoxWfk5+s5igmbR1x0D3mZn5QxawanoFTOh69uaTfSwHeBXC0Hii8Z3?= =?us-ascii?Q?T3D5qCKU1u0Xl4pVibqsJT1rbYIKzJvXcQkfQN3oSiCG0u/KxULO6ywVkFoL?= =?us-ascii?Q?lphGV80wBv+A2JsUNeQ2I6A32ySY7lfGnXW3X4wmisAlmEDcIxv1/javb/6j?= =?us-ascii?Q?0SNTwZchKi4pWXqXkIrOkwWOjdoN/rxK56MmxSWTogzcgPrE7G+44sibrsS8?= =?us-ascii?Q?wlqLXPNWSZzyb2l8LYJp6UJoSIGgacMOygk83fTFxivV93hrue3Z3BoyVZfW?= =?us-ascii?Q?v9u+xVyIFkr9YinOUjKAaRSkzQelI5YwerD8VbrYfIzpX6hPiEhJeAg2vXSY?= =?us-ascii?Q?F6MmE9A/SStowe5RHGO+t1S9hZlQcEmZiSx2AleU0gx23wXlfxykkEI8Bcc2?= =?us-ascii?Q?mIpvgZKm2kuWzszQvV2viv0wv1SNOWOqEQWvSJKTPGPL0iDj1wTvPr/D2LIC?= =?us-ascii?Q?sVBBn26OfO8/1kv9kdzb1b5VwngCqb9/VX/hBqmn+7Yl96kREy93LtfKDtiN?= =?us-ascii?Q?7i20U1reOP6iX/1lCYjd8m/zfr2WPH+X7hNsoYaQ7KuvcGBv/LEFqtRKrvD9?= =?us-ascii?Q?KL8YSUZgNWOOrv5Bxjb5xglvuUQbAuYW9gRvcl9DMtkBRL5?= X-Microsoft-Exchange-Diagnostics: 1;CY4PR03MB2757;6:D7p8A8EAIxlhwznqoxi2yTprBEpR8V13Qecm1BuVSvv921l7Inv2lhFLPtqs8V8qHKrNw7NhrxnebOV1Fo9m2AyfgoAg/GyN8oA+NvuiaCwQlZVQp/z940mshemoRUusvLaABs6+H/oiCONNlOaw9lOtoodp4QW/UZz0J87+uaoa6/iRjzqmZ8j20ZivhYLGwV3qMyarRukhgXKgL3zw1SiSoTiCusYUIQPRU7b5azH37/BO5j8Rre8l+VcbEdFr5gKUKdb0EeWUbx0tGtRs3OrcgSGmpeDZ+e7cW48EW022K0/+CxjHlj29TnxroXBBc1gxEiVoYtUZWc/RfysxPZKHil9uVxVIteRxFjkG8lo=;5:mZzBdTw8BLRa2667ArIAQfb3JXYFAFkzndNYVoS48qD3T42FFa5M9fhACpGRN5UAYtwbbTdPxeiZEPIyQ+yJLPs1wGcD+Cn7IMrU5au8tmZsxtN3Tsdy/t9F4TmwZfF/gDcyrAqU/9Ul3cya7M+k3g==;24:5Sdr1uO2X+ijpK1jNhfPinr0u3cUk3IbZOQzTF0O8J1pXwJBxKyztblMJ1j4xyl89Qa/mPy23cdXvi/fTf2ezfG51JOOvxTzpkfVF21fy8A= X-Microsoft-Exchange-Diagnostics: 1;CY4PR03MB2757;7:iQs8cla3rqfb2/daiGQRbwpIwyD4HIpX7zXwm+cE1/KWIl4MfwUJzELmo5BeNyJeng5Que0dZqI1YPMD1HlUjN21jMT4CYFqU7QFW8ZDtKJabbGfa/71/EP2x0u6dpuH7FKYEQEJGKFWi4WtaTy9epWXWG4qlgKd2xNcQeiPQacPOw8mx3E17JO0HySzDlgd6I0Ln3AqspL3WPBK56s8e4Nq3bBfEPTYwVV/V1Kybe7LFvInuybJA4f2e5CJdydBPxv6Ib2Qy+ByX+97wRvQuG2g46p40XDBoZ7wSDK/lipQxk/avphvu8FFAYxfjj4ek0Tm0k0OFMefpIzq7b9smA== X-OriginatorOrg: opensource.altera.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Oct 2016 20:25:22.3314 (UTC) X-MS-Exchange-CrossTenant-Id: fbd72e03-d4a5-4110-adce-614d51f2077a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=fbd72e03-d4a5-4110-adce-614d51f2077a;Ip=[66.35.236.227];Helo=[sj-itexedge03.altera.priv.altera.com] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY4PR03MB2757 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1920 Lines: 79 On Mon, 17 Oct 2016, Alan Tull wrote: > +/** > + * of_fpga_bridge_get - get an exclusive reference to a fpga bridge > + * > + * @np: node pointer of a FPGA bridge > + * @info: fpga image specific information > + * > + * Return fpga_bridge struct if successful. > + * Return -EBUSY if someone already has a reference to the bridge. > + * Return -ENODEV if @np is not a FPGA Bridge. > + */ > +struct fpga_bridge *of_fpga_bridge_get(struct device_node *np, > + struct fpga_image_info *info) > + > +{ > + struct device *dev; > + struct fpga_bridge *bridge; > + int ret = -ENODEV; > + > + of_node_get(np); I thought I had fixed this. This of_node_get is unmatched, never called in fpga_bridge_put. And it's not necessary since class_find_device will do kobject_get on the child device anyway. So I should remove this of_node_get and the of_node_put below. > + > + dev = class_find_device(fpga_bridge_class, NULL, np, > + fpga_bridge_of_node_match); > + if (!dev) > + goto err_dev; > + > + bridge = to_fpga_bridge(dev); > + if (!bridge) > + goto err_dev; > + > + bridge->info = info; > + > + if (!mutex_trylock(&bridge->mutex)) { > + ret = -EBUSY; > + goto err_dev; > + } > + > + if (!try_module_get(dev->parent->driver->owner)) > + goto err_ll_mod; > + > + dev_dbg(&bridge->dev, "get\n"); > + > + return bridge; > + > +err_ll_mod: > + mutex_unlock(&bridge->mutex); > +err_dev: > + put_device(dev); > + of_node_put(np); Remove of_node_put. > + return ERR_PTR(ret); > +} > +EXPORT_SYMBOL_GPL(of_fpga_bridge_get); > + > +/** > + * fpga_bridge_put - release a reference to a bridge > + * > + * @bridge: FPGA bridge > + */ > +void fpga_bridge_put(struct fpga_bridge *bridge) > +{ > + dev_dbg(&bridge->dev, "put\n"); > + > + bridge->info = NULL; > + module_put(bridge->dev.parent->driver->owner); > + mutex_unlock(&bridge->mutex); > + put_device(&bridge->dev); > +} > +EXPORT_SYMBOL_GPL(fpga_bridge_put);