Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S965866AbbBCDpM (ORCPT ); Mon, 2 Feb 2015 22:45:12 -0500 Received: from mail-bn1on0148.outbound.protection.outlook.com ([157.56.110.148]:56075 "EHLO na01-bn1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S964792AbbBCDpK (ORCPT ); Mon, 2 Feb 2015 22:45:10 -0500 From: KY Srinivasan To: Jason Wang , Dexuan Cui CC: "gregkh@linuxfoundation.org" , "linux-kernel@vger.kernel.org" , "driverdev-devel@linuxdriverproject.org" , "olaf@aepfle.de" , "apw@canonical.com" , "vkuznets@redhat.com" , Haiyang Zhang Subject: RE: [PATCH v2 1/3] hv: hv_util: move vmbus_open() to a later place Thread-Topic: [PATCH v2 1/3] hv: hv_util: move vmbus_open() to a later place Thread-Index: AQHQP165sPpecBgHHUGei/tTjGhKSJzeRALw Date: Tue, 3 Feb 2015 03:30:11 +0000 Message-ID: References: <1422851718-2353-1-git-send-email-decui@microsoft.com> <1422869774.7028.5@smtp.corp.redhat.com> <1422932926.6732.0@smtp.corp.redhat.com> In-Reply-To: <1422932926.6732.0@smtp.corp.redhat.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [2601:8:9b00:fd:d4e3:2620:1975:c393] authentication-results: redhat.com; dkim=none (message not signed) header.d=none; x-microsoft-antispam: BCL:0;PCL:0;RULEID:;SRVR:BY2PR0301MB0775; x-exchange-antispam-report-test: UriScan:; x-exchange-antispam-report-cfa-test: BCL:0;PCL:0;RULEID:;SRVR:BY2PR0301MB0775; x-forefront-prvs: 0476D4AB88 x-forefront-antispam-report: SFV:NSPM;SFS:(10019020)(6009001)(377454003)(51704005)(13464003)(24454002)(54606007)(62966003)(86362001)(86612001)(33656002)(93886004)(99286002)(54206007)(2421001)(77156002)(92566002)(54356999)(46102003)(2656002)(106116001)(87936001)(50986999)(76576001)(102836002)(1511001)(2950100001)(2900100001)(122556002)(74316001)(76176999)(19580405001)(19580395003)(40100003)(3826002);DIR:OUT;SFP:1102;SCL:1;SRVR:BY2PR0301MB0775;H:BY2PR0301MB0711.namprd03.prod.outlook.com;FPR:;SPF:None;MLV:sfv;LANG:en; Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 X-OriginatorOrg: microsoft.onmicrosoft.com X-MS-Exchange-CrossTenant-originalarrivaltime: 03 Feb 2015 03:30:11.9170 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 72f988bf-86f1-41af-91ab-2d7cd011db47 X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY2PR0301MB0775 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 base64 to 8bit by nfs id t133jIlk007867 Content-Length: 2388 Lines: 63 > -----Original Message----- > From: Jason Wang [mailto:jasowang@redhat.com] > Sent: Monday, February 2, 2015 7:09 PM > To: Dexuan Cui > Cc: gregkh@linuxfoundation.org; linux-kernel@vger.kernel.org; driverdev- > devel@linuxdriverproject.org; olaf@aepfle.de; apw@canonical.com; KY > Srinivasan; vkuznets@redhat.com; Haiyang Zhang > Subject: RE: [PATCH v2 1/3] hv: hv_util: move vmbus_open() to a later place > > > > On Mon, Feb 2, 2015 at 6:09 PM, Dexuan Cui wrote: > >> -----Original Message----- > >> From: Jason Wang [mailto:jasowang@redhat.com] > >> Sent: Monday, February 2, 2015 17:36 PM > >> To: Dexuan Cui > >> Cc: gregkh@linuxfoundation.org; linux-kernel@vger.kernel.org; > >> driverdev- > >> devel@linuxdriverproject.org; olaf@aepfle.de; apw@canonical.com; KY > >> Srinivasan; vkuznets@redhat.com; Haiyang Zhang > >> Subject: Re: [PATCH v2 1/3] hv: hv_util: move vmbus_open() to a > >> later place > >> > >> > >> > >> On Mon, Feb 2, 2015 at 12:35 PM, Dexuan Cui > >> wrote: > >> > Before the line vmbus_open() returns, srv->util_cb can be already > >> > running > and the variables, like util_fw_version, are needed by > >> the > srv->util_cb. > >> > >> A questions is why we do this for util only? Can callbacks of other > >> devices be called before vmbus_open() returns? > > The variables are used in vmbus_prep_negotiate_resp(), which is only > > for the util devices. > > > > I think the other devices should already handle the similar issue > > properly. > > If this is not the case, we need to fix them too. > > Better to check all the others, e.g in balloon_probe(), it call > hv_set_drvdata() after vmbus_open() and dose several datas setups in the > middle. If balloon_onchannelcallback() could be called before > hv_set_drvdata(), the code looks wrong. Jason, For all other device types, the guest initiates the communication with the host and potentially negotiates appropriate (supported) version with the host. For the services packaged in the util driver, the flow is a little different - the host pushes the version information into the guest. So, the fix Dexuan made is only needed in the util driver. Regards, K. Y > > Thanks > > ????{.n?+???????+%?????ݶ??w??{.n?+????{??G?????{ay?ʇڙ?,j??f???h?????????z_??(?階?ݢj"???m??????G????????????&???~???iO???z??v?^?m???? ????????I?