Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S933288AbdCGUll (ORCPT ); Tue, 7 Mar 2017 15:41:41 -0500 Received: from esa4.hgst.iphmx.com ([216.71.154.42]:23565 "EHLO esa4.hgst.iphmx.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1756071AbdCGUl3 (ORCPT ); Tue, 7 Mar 2017 15:41:29 -0500 X-IronPort-AV: E=Sophos;i="5.36,258,1486396800"; d="scan'208";a="1334590" Authentication-Results: spf=pass (sender IP is 74.221.232.55) smtp.mailfrom=sandisk.com; zytor.com; dkim=none (message not signed) header.d=none;zytor.com; dmarc=bestguesspass action=none header.from=sandisk.com; X-AuditID: ac1c2134-b9d8b98000005688-91-58bee62e7643 From: Bart Van Assche To: "gregkh@linuxfoundation.org" CC: "linux-kernel@vger.kernel.org" , "linux-rdma@vger.kernel.org" , "parav@mellanox.com" , "sebott@linux.vnet.ibm.com" , "linux@armlinux.org.uk" , "hpa@zytor.com" , "mingo@redhat.com" , "dwmw2@infradead.org" , "bhelgaas@google.com" , "dledford@redhat.com" , "benh@kernel.crashing.org" Subject: Re: [PATCH 1/2] device: Stop requiring that struct device is embedded in struct pci_dev Thread-Topic: [PATCH 1/2] device: Stop requiring that struct device is embedded in struct pci_dev Thread-Index: AQHSl2ONbaZ0aWzIyESKNj9OtVFjig== Date: Tue, 7 Mar 2017 16:54:58 +0000 Message-ID: <1488905685.2739.1.camel@sandisk.com> References: <20170307003549.3872-1-bart.vanassche@sandisk.com> <20170307003549.3872-2-bart.vanassche@sandisk.com> <20170307045236.GC3913@kroah.com> In-Reply-To: <20170307045236.GC3913@kroah.com> Accept-Language: nl-NL, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [172.28.1.254] Content-Type: text/plain; charset="iso-8859-1" Content-ID: <39E300E4ED01114DA33B8098C8AA4F11@sandisk.com> MIME-Version: 1.0 X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFnrNIsWRmVeSWpSXmKPExsWyRobxn67+s30RBl2JFh+aWpktljRlWLw8 /4HVYuLKycwWzYvXs1lM2yhucXnXHDaLZ4d6WSwOTd3LaHHpwAImi+arf1ksTnUdZnTg8bh8 7SKzx4JNpR6bV2h59LxpYfV4cGgzi8f+uWvYPZ5NP8zk8X7fVTaPz5vkPE60fGEN4IrisklJ zcksSy3St0vgyug4Po+xoIu34tTTNWwNjJe4uhg5OSQETCS+zvzF3sXIxSEksIRJ4t7WRiYI 5zyjRPfmZUwgVWwCRhKzJ+xhAbFFBGwlJi7rZgYpYhZYyiKx/9JFsCJhgSSJJbu+sUEUJUts m3uZHcLWk3jw/hUriM0ioCLx989eZhCbV8BQ4sDXFmaIbTMZJXb/nsQIkuAEanjaOR0owcHB KCAr0fKaGyTMLCAucevJfCaIswUkluw5zwxhi0q8fPyPFcJWkPi84h8bRL2exI2pU6BsK4lZ 02ayQtjaEssWvoa6QVDi5MwnLBMYxWYhWTELSfssJO2zkLTPQtK+gJF1FaNYcWJycW56aoGh qV5xYl5KZnG2XnJ+7iZGcBJQNNnB2LHR/RCjAAejEg+vx9l9EUKsiWXFlbmHGCU4mJVEeJUv AYV4UxIrq1KL8uOLSnNSiw8xSnOwKInzLtWeGiEkkJ5YkpqdmlqQWgSTZeLglGpglMrIz9VI FQo7cevxV8mvb/c5hyp+lzn/8cAqVma3BQs2Bof5Cy+OmrDCQfATb29m88yWWU/7s05dKhHc wjft0KzS3tmSE6u9s7ZV/mkq2Xda6XHWTQ4t4TfyzlONdPd7XHRd0e/gErnqrmbAyxCxTT/4 /twUVi/L/9xfpRxpeZL9ZtbECN+PSizFGYmGWsxFxYkALOk39/4CAAA= X-EOPAttributedMessage: 0 X-MS-Office365-Filtering-HT: Tenant X-Forefront-Antispam-Report: CIP:74.221.232.55;IPV:NLI;CTRY:US;EFV:NLI;SFV:NSPM;SFS:(10019020)(6009001)(7916002)(39850400002)(39410400002)(39450400003)(39860400002)(39840400002)(2980300002)(438002)(377424004)(189002)(199003)(24454002)(9170700003)(102836003)(54356999)(6246003)(2900100001)(50466002)(50986999)(626004)(53936002)(305945005)(106116001)(189998001)(2906002)(2270400002)(38730400002)(81166006)(36756003)(8936002)(110136004)(8746002)(8676002)(2950100002)(54906002)(2351001)(1730700003)(7736002)(6116002)(23756003)(47776003)(2501003)(76176999)(356003)(106466001)(86362001)(5660300001)(7416002)(6916009)(5640700003)(3846002)(33646002)(4326008)(229853002)(103116003)(7099028);DIR:OUT;SFP:1102;SCL:1;SRVR:CO1PR04MB524;H:sacsmgep15.sandisk.com;FPR:;SPF:Pass;MLV:sfv;MX:1;A:1;LANG:en; X-Microsoft-Exchange-Diagnostics: 1;SN1NAM04FT039;1:pW8vueQslpAtyMkZSeYbouXa7f21LTvR6uYSc+BothSEFkWADWpBJq0KwQrLw7sizSHtSna5r8GGFAwwvJVgRyAjwRprkT6CdIHzlmkUC0Cp2S44ujda+w0UppW4HwKtg3obSBjtpiahYBSmAQM/BNhojvuVqiqs4IIwFoxuZIx2RIxqKIFHaLeBLcWBvHK6SC/gXBCIHxS0UtfNiOPiM9L1oReh5ANWsLTKgkq+rXpCdulv35HC8SDG/1SGMSeOWKhGlWQmC2q+t0o1MKCeEcKZhCYpCNdQqPEz02senkCiFZ1aya68EQgOcL7DNofVBx7QPuVSIdro34Um3QtWHufFbty/257Y2L21sZgc6FpN9R3q+eJQJulbxobhDVkjKTA9qHjfq2fR8dOvgmGX26LZGhDE37Pw2qwaJfiJMjYkW8Kf03IlrJmftx0tMCaDFQiSXVr6x7dvhw4i1s+njapXql3GFSjadA6yO+2PZ1rnHvLMiyrcmj7qTQllFrFGksBkdI4xaFppVEaMBkJAWOPKrqfHBYS2WMkr8mtWM4xg8Z9wh5Dyep0NB+Zg1QXX2RUuHNIyBPxz4ajqlA/YVG11kvJHRGXzGE6LBCWuCUI= X-MS-Office365-Filtering-Correlation-Id: 37f53d78-dddf-4652-737e-08d4657adef5 X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001)(8251501002);SRVR:CO1PR04MB524; X-Microsoft-Exchange-Diagnostics: 1;CO1PR04MB524;3:RLMaEpyAPM7V7tjQ4aCfw6mgGuzh7Zmmo7iqdOHBhKB4omj2D0LCk2i02yUBh/HPQahUN3uAy0aj+bm9GjOWtMkEyuTQvXQyP8WoSDMPE+MRJ/p+ifKup9gFHb3wfLuY21ANoBSaLgksqtKDqgheZRQRFiNRmGUqkbYsCCfJQNtoPbRSXBosy9HCNbT9vbh8zoysqU1a18v6PKmJOVheteUyFbv3E5M50i3kphfoUjokr9OQW+kT9n4DYF78AJufE8YMD6L39V5xudirfugXPLXyzrH6FNiiKQemQNgizrMv2z/iGESjLPjjZdki3hbaquGtiueZ19d942aJdTpXRVYIECopgb1Kj8hHMz+U0/wZPtpr6kNLqlNQ0fPifmp/iSmHZrwwXg+49p8TusX6qg==;25:HQc2BoAFqH6CGG4Ftfs9+Izp9LJsQ2YUer3/vJ2sulv8pI2pVq5+F/WDjszNiEazev649+BkoxLFNEscvfvj+uGxUS+BqsDqNnYWEhoNo57nz9n9E2AwAFZednK5zO1ZITI44Ga/8LVA1lVD8xlcHgN7+bQ3TbJCazSYGvDLOFjMM2jVGvmJA/DFdA4CvH0DOR7q3Vry6GLiD6bbgruFC7Io3gGcqW623eS+TLOV0JHnotzt7EqL5kdKcgxXxra2R4Dj8ExpWXwM0NHXydzouk5khBQfHWe/jFRGiMTPMJKypLjVgZaG574XtIJpK/ThufOkBO3PxVUb6iZw0jkXrZT3pIvDb4RCvlIXj89MGNq9S3GIyKQcSiM7jG4XpCIzFZtpC5GQAjWTYnDweHvqSYJmV0GNqs17uZNXVzpSB1CAVlJnRgz3+qeLF5iHaSxKdIeww7Fd1mROBMWnXcibqw== X-Microsoft-Exchange-Diagnostics: 1;CO1PR04MB524;31:+Y3hO2krkZa/V8FyA7OXY/GMGD4bsHtkr54IRgnjDFxSBbV+X2wzxcc416U2h0Ja78L8RDeepg6VfcjpbTzVn6RBMUCc7cLp3GETnIFNhtduyFsXw5n5yuCrl84ZGI8tivAhRQlIgUEzRpyg0LRvp64DeTUJS3Pkv5rhe0U2AfZLGbvkRHTJLiZk9DKPdJbTu5IJWv0ctIhniwc/YdoYHQiI1vH2elyl7Qw5GNjkjK85AwCZVyIllYSO+MkdyCFbVmWKSrnJzI4Ie3451hEsAPzMAVe36h0MYXl7jGpBeAc=;20:jnXRMb45JBUtyhsOPF+FmtAfoJfD1YhgAXZ1Vz9JmobyMkxF6JPnng9YKJFjoxSm4jec1fB2a0r49IFL87JiT1JqDOl9ji4cQIT3q1IUIGMYL0MfaQxoYMrqBGPpVsLcvQiu8Vw9ANNTmKuMoKjphM0JdPBYGo6tjckhcncRDZ0zihbYsj5t0t17gHVOw59I8kyNv/zD4pIAchVi9h1g2u5BoBpVNna5AKggJTMvq0plBghuOMU2mRts3PUBQmK6XBHDJeX+KLtJs6KGGYH6b3K3ln2/gaBpJC81b1otI4YUMOs5PaKvZU2Ly0bF97eolMcOvDRRKqOjjKGy01gZ7nZbPXMr0K/N4tI4c7ajSnROzgfcSEitKdB1RExcURk6ypsUWdDs+rmy5vwmJoodBwyAt8M0QAvIdP5rklpEPQMXd8mp+FVB5n1NYDIMCr3+qLTkQ0uu+kyhfn7noXvwdDhF+W7LtZzCW+7qdrpfLALU7FqZpSW5BwW0t+cqCiLt X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(6040375)(601004)(2401047)(13018025)(8121501046)(5005006)(13023025)(13017025)(13015025)(13024025)(10201501046)(3002001)(6055026)(6041248)(20161123560025)(20161123558025)(20161123562025)(20161123555025)(20161123564025)(6072148);SRVR:CO1PR04MB524;BCL:0;PCL:0;RULEID:;SRVR:CO1PR04MB524; X-Microsoft-Exchange-Diagnostics: 1;CO1PR04MB524;4:NqqBgrt/TmkcRKI/wmkZPsLxmy+Tibwhp3hRWuLFyGcwIkvon1Ztr4EGfVx0t68AdqTrYukD63WNX+UuGISPal+0w0ykADuBX46HBwk9fGXdjA6Zb0qdzK4NMOQiwuXkwvAUge53dfek8v8t8egFpoGu5quRdunl520LkX7MsG0YOMFmleoxiOC9xcBP18wOVvYlYYSCS5c+yg+HoVJcXk3Nq8RqlVJllLOz6zFVh6IUxsvth3TwbTq2dtNoL8yCcxzL6B4luDBlgkYHwJ1SyErbvXOx4F45LD/M4jm+LmrhRL0zgVW2rnwbnSOwVZes800HaWHRH/lkc6oLoCcwUkKYs4ZmGQfpMvJhATWxtbCP+mN6mF/6JT+xDYk6mVe5JANOSswkSGDQbF8dVy2OCRXIVtdhiTE70PaAl5njZQ2l8p0+iId5j6j2JleqkMNM0ZD6yrhgpj8crKmh866rfS9v/GJrIgVQI8lNhGaditXaPL/ubsqx2HHH7juh0z//MzjxpS35dkkvnNwqKzx/xYqHDmisIiEVluumBVaDsTXQd0Rjk7lHCDVWskojr/6pMEFnLL8RpHit/WTNYjGXM1jyOBHzhVlqVD7E05y8HhJ2ygRJ8+BGqETCd2QiajHAEtF0C5HceQ0RRoJN9fR58VGok+658Ha7J8Wli7aOIaRKZRfD/0ZI9Qcah74qnpVIsUXgw2A6EQXZRzkwLRvVleHYZm+Xt6FrVmmHROkfN8g= X-Forefront-PRVS: 0239D46DB6 X-Microsoft-Exchange-Diagnostics: =?iso-8859-1?Q?1;CO1PR04MB524;23:45TxknWrWVOGmcoLxuTTG9E6gMsrrP6r8zSFSjAD?= =?iso-8859-1?Q?vXbxqNKyrmNboC7pd3AH3bUlTVHcPfKmCu9LBUxaCAQFRngSicfeQyLxri?= =?iso-8859-1?Q?8lPsIF1pKikFGfdDoGoDsviRnr+MzwNAAVbvZaKv4vKrg6JtMtTP03uoIR?= =?iso-8859-1?Q?p9hFHjJ9QwcnjeRca3mnubJ2KDrZtPF7+mj5dPSYa7dS6q+38BAdEhm6sV?= =?iso-8859-1?Q?IDmkx0nguc1YSR54ycAqyMRnAw5BRhKSWUVedfJ/iat6shsugV+nPTez37?= =?iso-8859-1?Q?Rpa/1GIj7nJNlNzxJcsuuB2f51y7uspjwIMOeehUTxtSdXazJtxHl4Am8N?= =?iso-8859-1?Q?Nk1ZE1BY6g1Dwq0pSjYITrC06uW9MawyfbxqnJdH0DcZYaABkvQM5+R1CU?= =?iso-8859-1?Q?L0S26PTvt0gtjzzQ+xIcA6I5ND3aqAK4Lu7DACuNeB1n5hS++KwbvWbVvW?= =?iso-8859-1?Q?71n5cQDTaiSP+mO/UtP6BOJpmCbGy3Z2drurr6iQFlTfyZ8A/j8o+ecfIX?= =?iso-8859-1?Q?IDOZIuaNU6HKB11d3n2Ek9qx8xpM5J9S7tn+Pf7hD+KHOkbcwoMv8bffpW?= =?iso-8859-1?Q?tcpXy1VO3FMbL89AKv0JnUlTmKeE5EAbErcU5lvAxJonOjoqb0EQuG840z?= =?iso-8859-1?Q?aixn5x5GbuG1KFLcOcJMCkognWUFi9XPg3gOjmIjhT8VUlJS3jMllMgSt8?= =?iso-8859-1?Q?p5IOVYu2EYvNJpj1KEaDuI+xv+lVznq90sNKJbZoZuojXAh5sX9BHtGLFf?= =?iso-8859-1?Q?gM4pj8CZ5hA3RhFbsqqlxRi27TvfaGwDko17Vs/M4s7f+E6tudV5pdfkG7?= =?iso-8859-1?Q?TZeJ7tO4J7nQWYMe9liw+oany0VfDCv7PhT4G/hFQ5Erp42Ut6A84cP+a+?= =?iso-8859-1?Q?TooVTxN+6NnIU+AdjA6GvhUNhGEjyL18l2vGWwGMdRDXxFy03NSpyX1X8H?= =?iso-8859-1?Q?MVXRA7VMuOVThWc/P/41rPt8H9OjhgBXs4pchN/kJFJFUipKrapc9ztfyh?= =?iso-8859-1?Q?2t1yTGFHj+OLTvx4gh2cJlIcfHwGZ9iUalfEIK6NgqwaNIO5wQxA4FXRLr?= =?iso-8859-1?Q?k21O6zrb8EIh8d0otZPLWJmsKQLA64NvXGbnzVdaSUoOJcWBkRtHlrBWue?= =?iso-8859-1?Q?cTuDm0J+vT/fHyGcxLBkqfcN2cSRp4ea0AwVPbkK4N1vcIWadATz9vDUrR?= =?iso-8859-1?Q?mcMcBKfOrMlYio+vFmbuPC2yzeADaqJ8VVhw8RYnhs8um3dmkZR1aDV/Be?= =?iso-8859-1?Q?YdtPxmLd8lvUL8aFDZh/G9lmPBtBBqqsV8oePhlHQ4BF+WLnaDwQftcjjJ?= =?iso-8859-1?Q?BZ5FORN13MggWV6o2SLoYJxcOJb9mdwumTarIujk+ZwK8hcuZyRNrF2Bsj?= =?iso-8859-1?Q?RacftHDvnelM+h3Ordf3DLx5G8Rx1yXSyQSqdKSMYvcZZlMjgQ=3D=3D?= X-Microsoft-Exchange-Diagnostics: 1;CO1PR04MB524;6:oP6XjJvn/NcT5iUeZ+vYl0LYBwVyV9/TKvpqYZj6kljZd1rinJW4Ic2F4hAy6Yz6jcpQIK1eEYZ6vhRmfR92+Zb/vAt2fzYns07M6mcrAymdLmn6WXEAcTeYbvFoHVnmniyiftS99I8aj/Rb6vRKKdTukQLfWnmHlocFQyhOr9ucst2aHcUlv6IUT0u8oy92qcHJYC6Ktzrp3xENRYjt6MmoW0AE/VrxBi90rxjl/7fiVzOFYyJ4rQRPMNr9ZCnrFzVLmYho7SUnrrOwwl6+CcaPfKAMRZOvapFHzcQubQZQcyLsX+IjpiJN+kGoe1CjtNWUmdtTk8xJqPYSI7qhUs465YYtyTJTkeNDuLklXk/C2ziGjivOtnhiVK5XEWvOTJlRn+7HEYQnImGDljqNaPLd4HrM2e3nZUr0kOjE0s0=;5:daUuBWoAtV24YrUtFMUZp2u40KxoRxj9jhcR9yluyHqUhxjBc0N2o4kyYtwrodItDO9W8CEUjg6Fk6H/uJiWk/DwgaDALiXbmNZE9076MoHeXHZad3euBuhYB6ibZKQugX3ypwFhVly/nstGTkQxkZjwdHUmOEJMYFGca3/AvU4=;24:aGTs4sqNnKuN4wyk4WFuz+1m9BSEe8zAl6BS1e5zksXEmZZ10IPtEhZLRWwI5qDoyOz3CJKenFYI7f2O9bzjszmSxORHYeUUdKrbjNxsQEM= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;CO1PR04MB524;7:LhbviNh5wzTIhnuHYoVsP67xsZrw+qNgvfUOSSv+w1HJ+FaHKLTgkYy8tEuDbIhE9+lLsNV+5WHZBBMnqFsMUIEEs1+D1p6EzFCnvL3yWeXBmtD69MRL2KWGVQlJeeO4kwj3/oDACHcvSTn/Y7jjHrCmTzUP5GsPi6WN7P2qcyAGiH+nQwBCHgR3xPuI7ZhjD11Z3F6BsoSy7tfOaxolpihY5x05jKojigFkUTredUnMNs8PqtIl4zG3tXyeTlZJxpuZN1mbjOdEaYLG2ucyOre6XQrqAOdElbkoqOF7Pku18/hFQOjI5rHxe9sStLHEVnzFRwmGjPx1nAsqERdSvw==;20:rykDPiakN9q0t8ZBedeYto3qy4fMzDQ9geRW1HszSmVMSSEcPWTdrkBfjHsvAxl00xrwGhRmhQcJyCVS4pflj7XtynLAdR43UeUqOAOR9tjAW+mBEv//jLYfwfXAr8ImxQVyl5bwATq13+Twv5yl/RZ8XhvsfGzOu4yND5KEQ5U= X-OriginatorOrg: sandisk.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Mar 2017 16:56:15.6500 (UTC) X-MS-Exchange-CrossTenant-Id: b61c8803-16f3-4c35-9b17-6f65f441df86 X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=b61c8803-16f3-4c35-9b17-6f65f441df86;Ip=[74.221.232.55];Helo=[sacsmgep15.sandisk.com] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO1PR04MB524 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Transfer-Encoding: 8bit X-MIME-Autoconverted: from quoted-printable to 8bit by mail.home.local id v27Kfuea020685 Content-Length: 1624 Lines: 29 On Tue, 2017-03-07 at 05:52 +0100, Greg Kroah-Hartman wrote: > Somehow all other subsystems work just fine, don't instantly think that > the driver core needs to bend to the will of the IB code, because you > are somehow "special". Hint, you aren't :) Hi Greg, In another e-mail Parav compared IB drivers with networking drivers. But I think that's a bad comparison: in the networking stack it's the network driver itself that sets up and triggers DMA while in the IB stack it's the upper layer protocol (ULP) driver that calls the functions defined in struct dma_ops. For some IB HW drivers (hfi1, qib and rdma_rxe) the ULP driver must use the DMA mapping operations from lib/dma-virt.c while for all other IB HW drivers the ULP driver must use the PCI DMA mapping functions. The ib_dma_*() functions select the right DMA mapping operations - either the PCI DMA mapping operations or those from lib/dma-virt.c. My question to you is how we should organize struct ib_device such that we can get rid of the ib_dma_*() helper functions. How to make sure that the to_pci_dev() translation works correctly for the device structure that is embedded in struct ib_device? Should a pointer to struct pci_dev be embedded in struct device (as done in patch 1/2 in this series) or should the struct device in ib_device be changed into a struct pci_dev and should the pci_dev information from /sys/devices/pci*/*/* be duplicated into the pci_dev information in struct ib_device (/sys/devices/pci*/*/*/infiniband/*)? For the latter approach, would there be a risk that the duplicated information becomes inconsistent? Thanks, Bart.