Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754588AbbHFFJh (ORCPT ); Thu, 6 Aug 2015 01:09:37 -0400 Received: from mail-bl2on0134.outbound.protection.outlook.com ([65.55.169.134]:26100 "EHLO na01-bl2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1754473AbbHFFJf convert rfc822-to-8bit (ORCPT ); Thu, 6 Aug 2015 01:09:35 -0400 Authentication-Results: spf=pass (sender IP is 206.191.229.116) smtp.mailfrom=microsoft.com; davemloft.net; dkim=none (message not signed) header.d=none; From: Dexuan Cui To: David Miller , KY Srinivasan CC: "olaf@aepfle.de" , "gregkh@linuxfoundation.org" , "jasowang@redhat.com" , "driverdev-devel@linuxdriverproject.org" , "linux-kernel@vger.kernel.org" , "stephen@networkplumber.org" , "stefanha@redhat.com" , "netdev@vger.kernel.org" , "apw@canonical.com" , "pebolle@tiscali.nl" , "dan.carpenter@oracle.com" Subject: RE: [PATCH V4 4/7] Drivers: hv: vmbus: add APIs to register callbacks to process hvsock connection Thread-Topic: [PATCH V4 4/7] Drivers: hv: vmbus: add APIs to register callbacks to process hvsock connection Thread-Index: AQHQyk2vp4eFpUHUkUGmpaGSjS0WOJ3zwGiQgAqwL6A= Date: Thu, 6 Aug 2015 04:53:47 +0000 Message-ID: <115a97288d1e4c239fcbaab28298c552@SIXPR30MB031.064d.mgd.msft.net> References: <1438086911-19384-1-git-send-email-decui@microsoft.com> <20150729.152651.331017965932467028.davem@davemloft.net> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [141.251.58.5] Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 8BIT MIME-Version: 1.0 X-EOPAttributedMessage: 0 X-Microsoft-Exchange-Diagnostics: 1;BN1BFFO11FD047;1:SQUOTaC89KxbY60Q3w9Pq7QMV/4cNWok/BWKbfLmJZ1aD0o8jqb632y9b7VStaPBVQAHKjwfi2YKn4rTx/eJ3JYXfFI8iOTdEoa0h3FeKBqe6MPtZNAXVDqS7caW/OjF2t2tIhxvWKz+cTc7WdymRCRPAz0+qQjjvgN20NAQy/EFJN58lZm7s2WkRp4mykp9vRIREOUiGanlg8pmDckWjy2WyEZdCuYMvzp9czqoiOYdiDoY+RyFSvsZF9rv2P+y7LKzwT/Pq0N520jTkaUuGg== X-Forefront-Antispam-Report: CIP:206.191.229.116;CTRY:US;IPV:CAL;IPV:NLI;EFV:NLI;SFV:NSPM;SFS:(10019020)(6009001)(2980300002)(438002)(189002)(164054003)(199003)(35754003)(19580395003)(16796002)(19580405001)(6806004)(50466002)(87936001)(86362001)(33646002)(97756001)(2421001)(47776003)(64706001)(2656002)(46406003)(23726002)(86612001)(68736005)(2561002)(108616004)(77156002)(46102003)(102836002)(62966003)(24736003)(1511001)(10400500002)(26826002)(86146001)(10090500001)(4001450100002)(10290500002)(5001920100001)(5003600100002)(81156007)(5001770100001)(2950100001)(5001830100001)(2900100001)(4001540100001)(5001960100002)(97736004)(5001860100001)(189998001)(92566002)(66066001)(69596002)(106466001)(50986999)(76176999)(106116001)(54356999)(5005710100001);DIR:OUT;SFP:1102;SCL:1;SRVR:BN3PR0301MB1284;H:064-smtp-out.microsoft.com;FPR:;SPF:Pass;PTR:ErrorRetry;MX:1;A:1;LANG:en; X-Microsoft-Exchange-Diagnostics: 1;BN3PR0301MB1284;2:LReapf2/5aXI0Sifliw+/YxLBsQTrSx/uQtBkHRkqbNbKqdZhYEGV6G3HKy8m9rT7NyxjIi7Q71noiAoqc22tl48Zx9OzF0HewPvwrHRmvGmJQBjuBD0xj5yRy0UJilYcq+L+kBZOzk6CjVCjmWIT7LaPqeXW4NVfFUWj6mZdSc=;3:VmVrSHQ5PnHcNHY1hh2aA9ndgfdZ9Ax2g6kbqbNAGrYmm86z5ZQCTyklE3/S84Uuk13LLvy6LCUClHd8MWdcDN9dB1ibk4VV5aAwCSkKfAw+xGZ8Epxzb1WN5+J4biizLv94ADELFxOlRLqA6T9IUgCyN/fF0MTk9EQyRXoCwnAVic5s6LsqZy0TW6PULIB5Bqtyra2bsLUXqcveXPNM+Me509OVjCwXQcvypmhZ87t6sRhOBAFbEzErvIHfmUGl;25:pF7EMVPXaOlW983t4ApXqOqDRTDG5vkPTN8XU0BGVPMHNo7tgVAh/9ALXHp8cD0QSEGwMg7ForadWYStIUAjkrNisNbD5/ucNHcqbTeiFf1Nsag16tfeRGMbArKRAm+touk0UnjDUjbQRW4j6nJFDkcMVLy8ZgzN4L+ZKY9qu1FMIUQapUNJ0tAI1calixly04fWWUOr5WpJcSUOcYkSlKuFtcVnjOkAtnwW/eJ2shjLEixJ3JkVv54mBxPrJc5Q3GROwbntGgL2d3TUPRStGg== X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:BN3PR0301MB1284; X-Microsoft-Exchange-Diagnostics: 1;BN3PR0301MB1284;20:unIUZOybWC24fWswowViSLMG2xHj9Iq3NZu0wqyA01xP7sjvxmyszAMSz2yUKQu39kAAnYxo4c1taq5nsdwkorSLrbGTF3GKHmJdvNv36zSICKVnUAi18PdH0uNIAshbXzIruxxw8KDy6n7zb3RRqFfMCKFVN5+GZKtCW4wi9Dx0GpPoc7CXF+CW45C+Re7dR3gswUOy29iCeOuV/kLEuZIoo3TSi/yD37Dk+Kkl5LzHo5/71kkiOcaVIQlzzNGEz/Y/3UCx2GcVmZMGjide7zLxQGocOyR080I3Obc87erCtBvBVsEF9S+wXx61c3VRZJ/0wKR7SszeYzYPmBCqqqf1yLRLmS0Pt5ZdKeaNJENOadkGJpGlk/kV2wJMR5EQarodHq7wRn+QyNsT0O+kuNPi04/sISWH2iH9RM5QiVdCw5rpjxoo4CXTW1lgZkKDLlYdt8jU9TFbv2k4LqfdmkwzhBFNmM1ySzBZ6HHfPSwsdyPo2w/1ZnvH1bPASs3u;4:ANSAKOM4NLX2G805qS/zr/VpGto1zW3kV9AAEy9f6c4UY8k7WMX3lY4eiq7AQjc9RSqTkqbNIV/T6HFfCjs77Hvzm3pA11EQfu2Waquoohr0aiNvbBPOL9brQHb8Mt0mdqd2nECooc0rfq//S+rxjnvy9OhZABT+2a2/QwmRAJce1P1Rj+8cFY3XNBGnCZcxJZjj6I4YUGrEf3Dyrb7dBomNPI5rDg3UGOHIey/+viEGhUzZqfgSSg6pFgLHyCx8qqqV2xWcxWiAcadCwOWzyyijv3zLhqdrURjGARmaHtIuS22fih+mcyln8cIAWFZD X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(108003899814671); X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(601004)(2401001)(5005006)(3002001);SRVR:BN3PR0301MB1284;BCL:0;PCL:0;RULEID:;SRVR:BN3PR0301MB1284; X-Forefront-PRVS: 06607E485E X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;BN3PR0301MB1284;23:DrjPu8FAzHMPsz8eJQXQAbhShmpPMAp7zx8cdJq?= =?us-ascii?Q?1gVoyj/z7LWRrkpQXo74X/woT/yqkW1bG6r2mxlESzTOXe3r94ZYN61ozCYg?= =?us-ascii?Q?dYZcHOWZeRUFVT1HQdWWhoxB7tIH+gALFWfvWQl8Qmnf9WRUeh0iBvgyfgmc?= =?us-ascii?Q?CU77Jzipc55Vi7idxCBEe4OYw2z0AqSb40qjDZKaCcNR2LIMYign6Tskeye4?= =?us-ascii?Q?4UBr1wNOLEMBdXGNYvd3N7d2pmPdmSngdCsfNB5ms0owZPljt33N2e2YoanU?= =?us-ascii?Q?bgdsBsMV1KwsZ1pHOifeGiy0V+Fosu41l32Ne/2IhY0AO1PYeBjpoSbszYJJ?= =?us-ascii?Q?jMXWI5L8/6v/9VDTxTkA+7+xoc0fcq5EsJnRoJMRrfuT5igdmvtQxtKJ7Zsp?= =?us-ascii?Q?W+z/nVfI8ESX0a/Xl7HxIGZCpo35nLhJzl2NimN7sL8CurRLyqO0JHd6r9rA?= =?us-ascii?Q?uIL/VnybJrvXJ1QWoOamAwAwVfBTgRjuMeDw7XIu11BMhZAXBM52dUH01Ox9?= =?us-ascii?Q?jvEDQCUhjNPhLvt4z0hRyCOpNpIcEtaqdgB1UX1gy8vkFQTFSzi9j2Vg+LlL?= =?us-ascii?Q?y508vrGFHJy7JJmDuGr9cVXMg972NVcDkNEysOggP7/xmZbSMw6uIHY6YobF?= =?us-ascii?Q?r7Fan6b9vdi0GvqrGfmBxPpVL+CrUQOzxk4t63SZoaYe0H1lsaIo0QK70l6b?= =?us-ascii?Q?WZYA834ABA3Q7LLL6lmyGnoySjwWaN8DQhAPc2ziVUKCwtTpGmxndIrRMdko?= =?us-ascii?Q?KC3re2NpDahXWQsdvYVDBOpFsiiG6UQZJZdjeyYqjjOg1lm1NdF8RSYJPZ0I?= =?us-ascii?Q?GRcnK8uXg7ftvDKRJPqE3ffLAc+qTtXZjcjXlrs7P8XchhYHY1vZSwdvaqYH?= =?us-ascii?Q?q7mnIBWSiJ9KbgiOuOY9MvMAs7SLBWak5+mtYbahGB4RO92CoF3hH6EvD9Ej?= =?us-ascii?Q?3qUlepWNB/azbr8wEfXD9OWfR5jRfNWUrweoDoit+zWvEuamn5cgmnxMKzpE?= =?us-ascii?Q?gmfUKH03UrF33y7xCByU11gddh7sRcz2fOx6J/vc+gzj8Ii87nt6FsSpj735?= =?us-ascii?Q?hJIujDOqi7+CI7tdmzQyF94DfZaL+X4qkZ6rqZNwrfoBZ0G9gUzkT98D6FHQ?= =?us-ascii?Q?0q98oOa9KbXJRORek0kdKt3yLmHIrFaPgvUlEH1MPjn6Dr2zftaBU0azNFap?= =?us-ascii?Q?MHfkRedQLr6g4TblVbruaHRNb+F8ZYE4OOyDXNAtO6LJH1BjwmcKWB9O6WpN?= =?us-ascii?Q?On12YOhfku2u1MBINC55V9MhXbexHd4+xVE5VWBOH1sVXQiX5ub1Iv9eOAgd?= =?us-ascii?Q?VoCJnm1S/ZMtSeWXUCcszKU/+YwGoih2GQfLY624gbaKeM8aYA5CICFOL0AB?= =?us-ascii?Q?3T8Gj5Vo0nYu4xyZyx2LrmPUhF+koDHLA3U03GvN5PlOx1jqd8NNqiBy28Ys?= =?us-ascii?Q?Q3p+a2l+bNiyZC53cKvyKs7IDnXbS2uLO2suA6bw9lV8YMvzB1i0VWAj6ICs?= =?us-ascii?Q?mWzbXkdexqoEqZPNKLGFONikM56+TcUm6mFBhzR2QGGvfGNE/QWtYn91t?= X-Microsoft-Exchange-Diagnostics: 1;BN3PR0301MB1284;5:XiKmPjaCd0ak6xPwhJ0EHKfwfKQexsBLW2bu6QFB6j2Wo8JiNvuSbbteKj+3ok2Xtm+DJhY5c+Ql4KKTWTnX6cjDENby+PjDX2fCIWSZpx+u3JfF+LG/4Rw6VhpV+m1Rzn6E/mTiF8ukJXP/8UicgA==;24:ihBbEFI+TbxcoVbaAci6i9jbm9/UYqAeFrSdZS3HKnWmE8TZUBAEYL524dA5GUV2XwaMeEagm0Y0vXn4l00pj4Dss32M/NlRk2piwJas9Cc=;20:FceY4kl8ti+ESBpIMG5ni2EhgBGQMirFT8fPaX+yTiKlnkk0heW4lj5tWdjyZPG5f2W7f3+WstuIBbujMDczbg== X-OriginatorOrg: microsoft.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Aug 2015 04:53:54.0925 (UTC) X-MS-Exchange-CrossTenant-Id: 72f988bf-86f1-41af-91ab-2d7cd011db47 X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=72f988bf-86f1-41af-91ab-2d7cd011db47;Ip=[206.191.229.116];Helo=[064-smtp-out.microsoft.com] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN3PR0301MB1284 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 3073 Lines: 78 > From: devel [mailto:driverdev-devel-bounces@linuxdriverproject.org] On Behalf > Of Dexuan Cui > Sent: Thursday, July 30, 2015 18:20 > To: David Miller ; KY Srinivasan > Cc: olaf@aepfle.de; gregkh@linuxfoundation.org; jasowang@redhat.com; > driverdev-devel@linuxdriverproject.org; linux-kernel@vger.kernel.org; > stephen@networkplumber.org; stefanha@redhat.com; netdev@vger.kernel.org; > apw@canonical.com; pebolle@tiscali.nl; dan.carpenter@oracle.com > Subject: RE: [PATCH V4 4/7] Drivers: hv: vmbus: add APIs to register callbacks to > process hvsock connection > > > From: David Miller > > Sent: Thursday, July 30, 2015 6:27 > > > > From: Dexuan Cui > > Date: Tue, 28 Jul 2015 05:35:11 -0700 > > > > > With the 2 APIs supplied by the VMBus driver, the coming net/hvsock driver > > > can register 2 callbacks and can know when a new hvsock connection is > > > offered by the host, and when a hvsock connection is being closed by the > > > host. > > > > > This is an extremely terrible interface. > > > > It's an opaque hook that allows on registry, and it's solve purpose > > is to allow a backdoor call into a foreign driver in another module. > > > > These are exactly the things we try to avoid. > > Hi David, > Thanks a lot for your reviewing and the suggestion! > > > Why not create a real abstraction where clients register an object, > > that can be contained as a sub-member inside of their own driver > > private, that provides the callback registry mechanism. Hi David, Can you please have a look at my below questions? I like your idea of a real abstraction. Your answer would definitely help me to implement that correctly. > Please pardon me for my inexperience. > Can you please be a bit more specific? > I guess maybe you're referencing a common design pattern in the driver > code, so an example in some existing driver would be the best. :-) > > "clients register an object " -- > does the "clients" mean the hvsock driver? > and the "object" means the 2 callbacks? > > IMHO, here the vmbus driver has to synchronously pass the 2 events > to the hvsock driver, so a "backdoor call into the hvsock driver" is > inevitable anyway? > > e.g., in the path vmbus_process_offer() -> hvsock_process_offer(), the > return value of the latter is important to the former, because on error > the former needs to clean up some internal states of the vmbus driver (that > is, the "goto err_deq_chan"). > > > > That way you can register multiple clients, do things like allow > > AF_PACKET capturing of vmbus traffic, etc. > > I thought AF_PACKET can only capture IP packets or Ethernet frames. > Can it be used to capture AF_UNIX packet? > If yes, I suppose we can consider making it work for AF_HYPERV too, > if people ask for that. > > -- Dexuan Thanks, -- Dexuan -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/