Date: Thu, 2 Feb 2017 19:15:15 +0000 From: Liuyingdong <liuyingdong@huawei.com> To: freebsd xen <roger.pau@citrix.com> Cc: "freebsd-xen@freebsd.org" <freebsd-xen@freebsd.org>, Suoben <suoben@huawei.com>, "Zhaojun (Euler)" <zhao.zhaojun@huawei.com>, Wanglinkai <wanglinkai@huawei.com>, chuzhaosong <chuzhaosong@huawei.com>, "Wangchunfeng (Ivan)" <chunfeng.wang@huawei.com> Subject: Re: [PATCH]netfront: need release all resources after adding and removing NICs time and again Message-ID: <3655E9A8B903724782E1F75DCFD74E6B0122A2DC2F@szxema506-mbs.china.huawei.com>
next in thread | raw e-mail | index | archive | help
--_004_3655E9A8B903724782E1F75DCFD74E6B0122A2DC2Fszxema506mbsc_ Content-Type: text/plain; charset="gb2312" Content-Transfer-Encoding: base64 SGVsbG8gUm9nZXIsDQoJVGhhbmsgeW91IGZvciB0aGUgdGltZSBhbmQgcGF0aWVuY2UgeW91IGRl dm90ZWQgdG8gcmVhZGluZyBteSBtZXNzYWdlcyBhbmQgZS1tYWlscy4gSSByZWFsbHkgYXBwcmVj aWF0ZSB0aGF0Lg0KCURlcGVuZCBvbiB5b3VyIHJlcGx5LCBJIHN1Ym1pdCB0aG9zZSBhZ2FpbnN0 IGN1cnJlbnQgSEVBRCAob3JpZ2luL21hc3RlcikuDQoNCjEuIDAwMDEgcGF0Y2g6IGludHJvZHVj ZSBzdXNwZW5kX2NhbmNlbCBtZWNoYW5pc20gZm9yIGZyb250ZW5kIGRldmljZXMuDQoxLjEgT24g YSBjYW5jZWxsZWQgc3VzcGVuZCwgeGVuIGZyb250ZW5kIGRldmljZXMgbmVlZCBrbm93IHRoZWly IHN0YXRlIGlzIGludmFyaWFudC4NCjEuMiBPbiBhIGNhbmNlbGxlZCBzdXNwZW5kIHRoZSB2Y3B1 X2luZm8gbG9jYXRpb24gZG9lcyBub3QgY2hhbmdlIChpdCdzIHN0aWxsIGluIHRoZSBwZXItY3B1 IGFyZWEgcmVnaXN0ZXJlZCBieSB4ZW5faHZtX2NwdV9pbml0KCkpLiBTbyBkbyBub3QgY2FsbCB4 ZW5faHZtX2luaXRfc2hhcmVkX2luZm9fcGFnZSgpDQp3aGljaCB3b3VsZCBtYWtlIHRoZSBrZXJu ZWwgdGhpbmsgaXRzIGJhY2sgaW4gdGhlIHNoYXJlZCBpbmZvLiBXaXRoIHRoZSB3cm9uZyB2Y3B1 X2luZm8sIGV2ZW50cyBjYW5ub3QgYmUgcmVjZWl2ZWQgYW5kIHRoZSBkb21haW4gd2lsbCBoYW5n IGFmdGVyIGEgY2FuY2VsbGVkIHN1c3BlbmQuDQoNCkkgZGVjbGFyZSBhIGdsb2JhbCBzdXNwZW5k X2NhbmNlbGxlZCB2YXJpYWJsZSBpbiB4ZW4veGVuYnVzL3hlbmJ1c3Zhci5oIGFuZCBleHBvcnQg dGhhdCB0byBhbGwgdGhlIGZyb250ZW5kcyB0aGF0IG5lZWQgaXQuIEl0IHNob3VsZCBhbHNvIGJl IGEgYm9vbCB0eXBlIGluc3RlYWQgb2YgaW50LiBJIG1lcmdlIHRvZ2V0aGVyIHdpdGggYSBfc2V0 X3N1c3BlbmRfY2FuY2VsbGVkKCkgZnVuY3Rpb24uDQoNCjIuIDAwMDIgcGF0Y2g6IGEgdXNlcnNw YWNlIGFwcGxpY2F0aW9uIG5lZWQgd2FpdCB1bnRpbCBzdG9wX2FsbF9wcm9jIGhhcyBmaW5pc2hl ZCBkdXJpbmcgbGl2ZSBtaWdyYXRpb24uDQpJZiB0aGVyZSBpcyBhIHVzZXIgcHJvY2VzcyB3aGlj aCBtYXliZSBvZnRlbiByZWFkcyBhbmQgd3JpdGVzIHhlbnN0b3JlLCB0aGUgYXBwbGljYXRpb24g aGFzIGJlZW4gc3VzcGVuZGVkIGFmdGVyIHN0b3BfYWxsX3Byb2MgaXMgY2FsbGVkLiBJdCBoZWxk IHhzLnJlcXVlc3RfbXV0ZXggbG9jayBidXQgaW4gdGhlIHhjdHJsX3N1c3BlbmQoKSBmdW5jdGlv biB4c193cml0ZSBhbmQgeHNfc3VzcGVuZCB3aWxsIG5vdCBvYnRhaW4gdGhpcyBsb2NrLiBTbyB0 aGUgVk0gd2lsbCBoYW5nLiBJbiBvcmRlciB0byBwcmV2ZW50IHRoaXMgZnJvbSBoYXBwZW5pbmcs IHRoaXMgcHJvY2VzcyBuZWVkIHdhaXQgdW50aWwgc3RvcF9hbGxfcHJvYyBoYXMgZmluaXNoZWQg ZHVyaW5nIGxpdmUgbWlncmF0aW9uLg0KDQozLiAwMDAzIHBhdGNoOiB3cm9uZyBvcmRlciBvZiBk ZXZpY2UgcmVzdW1lIGNhdXNlcyB2aXJ0dWFsIG1hY2hpbmUgdG8gYmVjb21lIHVucmVzcG9uc2l2 ZSBhZnRlciBsaXZlIG1pZ3JhdGlvbi4NCkJlY2F1c2Ugd3Jvbmcgb3JkZXIgb2YgZGV2aWNlIHJl c3VtZSwgVk0gd2lsbCBoYW5nIGFmdGVyIGxpdmUgbWlncmF0aW9uLiBhdHRhY2ggdGhlIFhlbiBQ ViB0aW1lciB0byB0aGUgbmV4dXMgZGlyZWN0bHkgYXMgaXQgd2FzIGRvbmUgYmVmb3JlLg0KDQoJ SW4gbXkgbGFib3JhdG9yeSwgRnJlZUJTRCBWTXMgdW5kZXIgbm8gbG9hZCBhbmQgaGlnaCBsb2Fk KGNwdSA4MCUgYW5kIG1lbW9yeSA4MCUpIHdlcmUgYWxpdmUgYWZ0ZXIgbWFkZSB0aGUgbGl2ZSBt aWdyYXRpb24gYmFjayBhbmQgZm9ydGggMTAwMCB0aW1lcy4NCglJIHdhbnQgdG8ga25vdyB3aGF0 IGFib3V0IHRoZXNlIHBhdGNoLCBQbGVhc2UgbGV0IG1lIGtub3cgaWYgeW91IGhhdmUgYW55IHF1 ZXN0aW9ucy4gVGhhbmtzIQ0KDQotLS0tLdPKvP7Urbz+LS0tLS0NCreivP7IyzogZnJlZWJzZCB4 ZW4gW21haWx0bzpyb2dlci5wYXVAY2l0cml4LmNvbV0gDQq3osvNyrG85DogMjAxN8TqMdTCNsjV IDE0OjQ0DQrK1bz+yMs6IExpdXlpbmdkb25nIDxsaXV5aW5nZG9uZ0BodWF3ZWkuY29tPg0Ks63L zTogZnJlZWJzZC14ZW5AZnJlZWJzZC5vcmc7IFpoYW9qdW4gKEV1bGVyKSA8emhhby56aGFvanVu QGh1YXdlaS5jb20+OyBTdW9iZW4gPHN1b2JlbkBodWF3ZWkuY29tPjsgT3V5YW5nemhhb3dlaSAo Q2hhcmxlcykgPG91eWFuZ3poYW93ZWlAaHVhd2VpLmNvbT47IGNodXpoYW9zb25nIDxjaHV6aGFv c29uZ0BodWF3ZWkuY29tPjsgV2FuZ2xpbmthaSA8d2FuZ2xpbmthaUBodWF3ZWkuY29tPg0K1vfM 4jogUmU6IFtQQVRDSF1uZXRmcm9udDogbmVlZCByZWxlYXNlIGFsbCByZXNvdXJjZXMgYWZ0ZXIg YWRkaW5nIGFuZCByZW1vdmluZyBOSUNzIHRpbWUgYW5kIGFnYWluDQoNCk9uIFRodSwgRGVjIDE1 LCAyMDE2IGF0IDAyOjAwOjUzQU0gKzAwMDAsIExpdXlpbmdkb25nIHdyb3RlOg0KPiBIZWxsbyBS b2dlciwNCj4gCVRoYW5rIHlvdSBmb3IgdGhlIHRpbWUgYW5kIHBhdGllbmNlIHlvdSBkZXZvdGVk IHRvIHJlYWRpbmcgbXkgbWVzc2FnZXMgYW5kIGUtbWFpbHMuIEkgcmVhbGx5IGFwcHJlY2lhdGUg dGhhdC4NCj4gCUkgY2FuJ3QgdXNlIGdpdCBzZW5kLWVtYWlsIHNvIEkgYXR0YWNoIHRoZSBwYXRj aGVzIGRpcmVjdGx5LiBJbiB0aGUgMDAwMSBwYXRjaCBJIGludHJvZHVjZSBzdXNwZW5kX2NhbmNl bCBtZWNoYW5pc20gZm9yIGZyb250ZW5kIGRldmljZXMgYW5kIGluIHRoZSAwMDAyIHBhdGNoIEkg cmVsZWFzZSBhbGwgcmVzb3VyY2VzIGFmdGVyIGhvdCB1bnBsdWcgTklDcy4NCj4gDQo+ICAgICBO b3RlOiBUaGVzZSB0d28gcGF0Y2hlcyBpcyBvbiB0aGUgYmFzZSBvZiB0aGUgb3JpZ2luL3JlbGVh c2UvMTAuMi4wIGJyYW5jaCBhbmQgdGhlIDAwMDIgcGF0Y2ggaXMgbWFkZSBhZnRlciB0aGUgMDAw MSBwYXRjaC4NCg0KSGVsbG8sDQoNClRoYW5rcyBmb3IgdGhlIHBhdGNoZXMsIG5vdyB0aGV5IGxv b2sgZmluZS4gWW91IHdpbGwgaG93ZXZlciBuZWVkIHRvIHN1Ym1pdCB0aG9zZSBhZ2FpbnN0IGN1 cnJlbnQgSEVBRCAob3JpZ2luL21hc3RlciksIGFuZCB0aGVuIEkgd2lsbCBkbyB0aGUgYmFja3Bv cnQgdG8NCnN0YWJsZS8xMCBhbmQgc3RhYmxlLzExLiBJIGNhbm5vdCBhcHBseSBhIHBhdGNoIGRp cmVjdGx5IHRvIHN0YWJsZSBicmFuY2hlcyB3aXRob3V0IGl0IGJlaW5nIGluIEhFQUQgZmlyc3Qg dW5sZXNzIHRoZXJlJ3MgYSBnb29kIHJlYXNvbiBmb3IgaXQuDQoNClJlcGx5aW5nIHRvIGJvdGgg cGF0Y2hlcyBoZXJlIGlubGluZS4NCg0KLS0tODwtLS0NCj4gRnJvbSBmYzg1YWM3ZWJhNTVhNWYx NGY1ZjdkODFmMGUxZmM3ZmJmNmE3NDQ3IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQ0KPiBGcm9t OiBZaW5nZG9uZyBMaXUgPGxpdXlpbmdkb25nQGh1YXdlaS5jb20+DQo+IERhdGU6IFR1ZSwgMTMg RGVjIDIwMTYgMjE6NTM6MjUgKzA4MDANCj4gU3ViamVjdDogW1BBVENIXSBpbnRyb2R1Y2Ugc3Vz cGVuZCBjYW5jZWwgbWVjaGFuaXNtIGZvciBmcm9udGVuZCANCj4gZGV2aWNlcw0KPiANCg0KQ2Fu IHlvdSBlbGFib3JhdGUgYSBsaXR0bGUgYml0IG1vcmUgb24gdGhlIGNvbW1pdCBtZXNzYWdlIGhl cmU/IFdoYXQgaXNzdWVzIGFyZSB5b3Ugc2VlaW5nIHdpdGhvdXQgdGhpcyBwYXRjaCBhcHBsaWVk PyBXaGF0IGlzIHRoZSByZXN1bHQgYWZ0ZXIgYXBwbHlpbmcgdGhlIHBhdGNoPw0KDQpDb21taXQg bWVzc2FnZXMgYXJlIHZlcnkgaW1wb3J0YW50IGluIG9yZGVyIHRvIGtub3cgd2h5IGEgY2hhbmdl IGlzIG5lZWRlZCwgc3BlY2lhbGx5IHdoZW4geW91IGxvb2sgYXQgdGhlbSBpbiBmb3IgZXhhbXBs ZSAzIHllYXJzIHRpbWUuDQoNCj4gLS0tDQo+ICBzeXMvZGV2L3hlbi9ibGtmcm9udC9ibGtmcm9u dC5jIHwgMTMgKysrKysrKysrKysNCj4gIHN5cy9kZXYveGVuL2NvbnRyb2wvY29udHJvbC5jICAg fCAgOSArKysrKystDQo+ICBzeXMvZGV2L3hlbi9uZXRmcm9udC9uZXRmcm9udC5jIHwgNTIgKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0NCj4gIHN5cy94ODYveGVuL2h2 bS5jICAgICAgICAgICAgICAgfCAxNiArKysrKysrKy0tLS0tDQo+ICBzeXMveGVuL3hlbmJ1cy94 ZW5idXNiLmMgICAgICAgIHwgNDUgKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0N Cj4gIHN5cy94ZW4veGVuYnVzL3hlbmJ1c3Zhci5oICAgICAgfCAgNCArKysrDQo+ICA2IGZpbGVz IGNoYW5nZWQsIDEwMiBpbnNlcnRpb25zKCspLCAzNyBkZWxldGlvbnMoLSkNCj4gDQo+IGRpZmYg LS1naXQgYS9zeXMvZGV2L3hlbi9ibGtmcm9udC9ibGtmcm9udC5jIA0KPiBiL3N5cy9kZXYveGVu L2Jsa2Zyb250L2Jsa2Zyb250LmMgaW5kZXggYTcxMjUxZC4uOGQ3YzMyYSAxMDA2NDQNCj4gLS0t IGEvc3lzL2Rldi94ZW4vYmxrZnJvbnQvYmxrZnJvbnQuYw0KPiArKysgYi9zeXMvZGV2L3hlbi9i bGtmcm9udC9ibGtmcm9udC5jDQo+IEBAIC02OCw2ICs2OCw4IEBAIF9fRkJTRElEKCIkRnJlZUJT RCQiKTsNCj4gIA0KPiAgI2luY2x1ZGUgInhlbmJ1c19pZi5oIg0KPiAgDQo+ICtzdGF0aWMgaW50 IGJsa2Zyb250X3N1c3BlbmRfY2FuY2VsbGVkID0gMDsNCg0KSSBzZWUgdGhhdCB5b3UgYWRkIG9u ZSBvZiB0aG9zZSB0byBlYWNoIGZyb250ZW5kIHlvdSBhZGQgY2FuY2VsIHN1c3BlbmQgc3VwcG9y dCwgdG9nZXRoZXIgd2l0aCBhICpfc2V0X3N1c3BlbmRfY2FuY2VsIGZ1bmN0aW9uLiBXb3VsZG4n dCBpdCBiZSBlYXNpZXIgdG8gZGVjbGFyZSBhIGdsb2JhbCBzdXNwZW5kX2NhbmNlbGxlZCB2YXJp YWJsZSBpbiB4ZW4vY29udHJvbC5jIGFuZCBleHBvcnQgdGhhdCB0byBhbGwgdGhlIGZyb250ZW5k cyB0aGF0IG5lZWQgaXQ/IEl0IHNob3VsZCBhbHNvIGJlIGEgYm9vbCB0eXBlIGluc3RlYWQgb2Yg aW50Lg0KDQpZb3UgY2FuIGNsZWFyIHRoYXQgdmFyaWFibGUgYWZ0ZXIgREVWSUNFX1JFU1VNRSBo YXMgZmluaXNoZWQuDQoNCj4gIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIEZvcndhcmQg RGVjbGFyYXRpb25zIA0KPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLyAgc3RhdGljIHZv aWQgeGJkX2Nsb3NpbmcoZGV2aWNlX3QpOyAgDQo+IHN0YXRpYyB2b2lkIHhiZF9zdGFydGlvKHN0 cnVjdCB4YmRfc29mdGMgKnNjKTsgQEAgLTE0MTcsMTAgKzE0MTksMjEgQEAgDQo+IHhiZF9zdXNw ZW5kKGRldmljZV90IGRldikNCj4gIAlyZXR1cm4gKHJldHZhbCk7DQo+ICB9DQo+ICANCj4gK3Zv aWQgeGJkX3NldF9zdXNwZW5kX2NhbmNlbCh2b2lkKQ0KPiArew0KPiArCWJsa2Zyb250X3N1c3Bl bmRfY2FuY2VsbGVkID0gMTsNCj4gK30NCj4gKw0KPiAgc3RhdGljIGludA0KPiAgeGJkX3Jlc3Vt ZShkZXZpY2VfdCBkZXYpDQo+ICB7DQo+ICAJc3RydWN0IHhiZF9zb2Z0YyAqc2MgPSBkZXZpY2Vf Z2V0X3NvZnRjKGRldik7DQo+ICsJDQoNClN0cmF5IHRhYi4NCg0KPiArCWlmKGJsa2Zyb250X3N1 c3BlbmRfY2FuY2VsbGVkID09IDEpIHsNCiAgICAgICAgICBeIG1pc3Npbmcgc3BhY2UgYmV0d2Vl biAiaWYiIGFuZCAiKCIuDQoNCj4gKwkJc2MtPnhiZF9zdGF0ZSA9IFhCRF9TVEFURV9DT05ORUNU RUQ7DQo+ICsJCWJsa2Zyb250X3N1c3BlbmRfY2FuY2VsbGVkID0gMDsNCj4gKwkJcmV0dXJuICgw KTsNCj4gKwl9DQo+ICANCj4gIAlEUFJJTlRLKCJ4YmRfcmVzdW1lOiAlc1xuIiwgeGVuYnVzX2dl dF9ub2RlKGRldikpOw0KPiAgDQo+IGRpZmYgLS1naXQgYS9zeXMvZGV2L3hlbi9jb250cm9sL2Nv bnRyb2wuYyANCj4gYi9zeXMvZGV2L3hlbi9jb250cm9sL2NvbnRyb2wuYyBpbmRleCBiYzA2MDlk Li5iNTAwMTAwIDEwMDY0NA0KPiAtLS0gYS9zeXMvZGV2L3hlbi9jb250cm9sL2NvbnRyb2wuYw0K PiArKysgYi9zeXMvZGV2L3hlbi9jb250cm9sL2NvbnRyb2wuYw0KPiBAQCAtNDAwLDcgKzQwMCw5 IEBAIHhjdHJsX3N1c3BlbmQoKQ0KPiAgCS8qDQo+ICAJICogUmVzZXQgZ3JhbnQgdGFibGUgaW5m by4NCj4gIAkgKi8NCj4gLQlnbnR0YWJfcmVzdW1lKCk7DQo+ICsJaWYoc3VzcGVuZF9jYW5jZWxs ZWQgPT0gMCkgew0KICAgICAgICAgIF4gbWlzc2luZyBzcGFjZS4NCg0KPiArCQlnbnR0YWJfcmVz dW1lKCk7DQo+ICsJfQ0KPiAgDQo+ICAjaWZkZWYgU01QDQo+ICAJaWYgKHNtcF9zdGFydGVkICYm ICFDUFVfRU1QVFkoJmNwdV9zdXNwZW5kX21hcCkpIHsgQEAgLTQxNiw2ICs0MTgsMTEgDQo+IEBA IHhjdHJsX3N1c3BlbmQoKQ0KPiAgCSAqIEZyZWVCU0QgcmVhbGx5IG5lZWRzIHRvIGFkZCBERVZJ Q0VfU1VTUEVORF9DQU5DRUwgb3INCj4gIAkgKiBzaW1pbGFyLg0KPiAgCSAqLw0KPiArCWlmKHN1 c3BlbmRfY2FuY2VsbGVkID09IDEpIHsNCj4gKwkJeGVuYnVzYl9zZXRfc3VzcGVuZF9jYW5jZWwo KTsNCj4gKwkJeGJkX3NldF9zdXNwZW5kX2NhbmNlbCgpOw0KPiArCQl4bl9zZXRfc3VzcGVuZF9j YW5jZWwoKTsNCj4gKwl9DQoNCklmIHlvdSBtYWtlIHN1c3BlbmRfY2FuY2VsbGVkIGdsb2JhbCB5 b3Ugd291bGRuJ3QgbmVlZCB0byBjYWxsIGFsbCBvZiB0aG9zZSBmdW5jdGlvbnMuDQoNCj4gIAlt dHhfbG9jaygmR2lhbnQpOw0KPiAgCURFVklDRV9SRVNVTUUocm9vdF9idXMpOw0KPiAgCW10eF91 bmxvY2soJkdpYW50KTsNCj4gZGlmZiAtLWdpdCBhL3N5cy9kZXYveGVuL25ldGZyb250L25ldGZy b250LmMgDQo+IGIvc3lzL2Rldi94ZW4vbmV0ZnJvbnQvbmV0ZnJvbnQuYyBpbmRleCBkODljMGUw Li4wY2FhYTJjIDEwMDY0NA0KPiAtLS0gYS9zeXMvZGV2L3hlbi9uZXRmcm9udC9uZXRmcm9udC5j DQo+ICsrKyBiL3N5cy9kZXYveGVuL25ldGZyb250L25ldGZyb250LmMNCj4gQEAgLTk4LDYgKzk4 LDggQEAgX19GQlNESUQoIiRGcmVlQlNEJCIpOyAgI2RlZmluZSBORVRfVFhfUklOR19TSVpFIA0K PiBfX1JJTkdfU0laRSgobmV0aWZfdHhfc3JpbmdfdCAqKTAsIFBBR0VfU0laRSkgICNkZWZpbmUg DQo+IE5FVF9SWF9SSU5HX1NJWkUgX19SSU5HX1NJWkUoKG5ldGlmX3J4X3NyaW5nX3QgKikwLCBQ QUdFX1NJWkUpDQo+ICANCj4gK3N0YXRpYyBpbnQgbmV0ZnJvbnRfc3VzcGVuZF9jYW5jZWxsZWQg PSAwOw0KPiArDQo+ICAjaWYgX19GcmVlQlNEX3ZlcnNpb24gPj0gNzAwMDAwDQo+ICAvKg0KPiAg ICogU2hvdWxkIHRoZSBkcml2ZXIgZG8gTFJPIG9uIHRoZSBSWCBlbmQgQEAgLTE5Miw2ICsxOTQs MTAgQEAgc3RhdGljIA0KPiBpbnQgeGVubmV0X2dldF9yZXNwb25zZXMoc3RydWN0IG5ldGZyb250 X2luZm8gKm5wLA0KPiAgCXN0cnVjdCBuZXRmcm9udF9yeF9pbmZvICpyaW5mbywgUklOR19JRFgg cnAsIFJJTkdfSURYICpjb25zLA0KPiAgCXN0cnVjdCBtYnVmICoqbGlzdCwgaW50ICpwYWdlc19m bGlwcGVkX3ApOw0KPiAgDQo+ICsjaWZkZWYgSU5FVA0KPiArc3RhdGljIHZvaWQgbmV0ZnJvbnRf c2VuZF9mYWtlX2FycChkZXZpY2VfdCBkZXYsIHN0cnVjdCBuZXRmcm9udF9pbmZvIA0KPiArKmlu Zm8pOyAjZW5kaWYNCj4gKw0KPiAgI2RlZmluZSB2aXJ0X3RvX21mbih4KSAodnRvbWFjaCh4KSA+ PiBQQUdFX1NISUZUKQ0KPiAgDQo+ICAjZGVmaW5lIElOVkFMSURfUDJNX0VOVFJZICh+MFVMKQ0K PiBAQCAtNDkzLDYgKzQ5OSwxMSBAQCBuZXRmcm9udF9zdXNwZW5kKGRldmljZV90IGRldikNCj4g IAlyZXR1cm4gKDApOw0KPiAgfQ0KPiAgDQo+ICt2b2lkIHhuX3NldF9zdXNwZW5kX2NhbmNlbCh2 b2lkKQ0KPiArew0KPiArCW5ldGZyb250X3N1c3BlbmRfY2FuY2VsbGVkID0gMTsNCj4gK30NCj4g Kw0KPiAgLyoqDQo+ICAgKiBXZSBhcmUgcmVjb25uZWN0aW5nIHRvIHRoZSBiYWNrZW5kLCBkdWUg dG8gYSBzdXNwZW5kL3Jlc3VtZSwgb3IgYSBiYWNrZW5kDQo+ICAgKiBkcml2ZXIgcmVzdGFydC4g IFdlIHRlYXIgZG93biBvdXIgbmV0aWYgc3RydWN0dXJlIGFuZCByZWNyZWF0ZSBpdCwgDQo+IGJ1 dCBAQCAtNTA0LDYgKzUxNSwxOSBAQCBuZXRmcm9udF9yZXN1bWUoZGV2aWNlX3QgZGV2KSAgew0K PiAgCXN0cnVjdCBuZXRmcm9udF9pbmZvICppbmZvID0gZGV2aWNlX2dldF9zb2Z0YyhkZXYpOw0K PiAgDQo+ICsJaWYobmV0ZnJvbnRfc3VzcGVuZF9jYW5jZWxsZWQgPT0gMSkgew0KPiArCQlpbmZv LT54bl9yZXN1bWUgPSB0cnVlOw0KPiArCQlYTl9SWF9MT0NLKGluZm8pOw0KPiArCQlYTl9UWF9M T0NLKGluZm8pOw0KPiArCQluZXRmcm9udF9jYXJyaWVyX29uKGluZm8pOw0KPiArCQlYTl9UWF9V TkxPQ0soaW5mbyk7DQo+ICsJCVhOX1JYX1VOTE9DSyhpbmZvKTsNCj4gKyNpZmRlZiBJTkVUDQo+ ICsJCW5ldGZyb250X3NlbmRfZmFrZV9hcnAoZGV2LCBpbmZvKTsNCj4gKyNlbmRpZg0KDQpJIGRv bid0IHRoaW5rIHlvdSBuZWVkIHRvIHNlbmQgYW4gQVJQIG9uIGEgY2FuY2VsbGVkIHN1c3BlbmQs IHRoZSBicmlkZ2Ugc2hvdWxkIGFscmVhZHkgaGF2ZSB0aGUgbWFjIGFkZHJlc3Mgb2YgdGhlIHZp cnR1YWwgaW50ZXJmYWNlIGluIGl0J3MgY2FjaGUgcmlnaHQ/DQoNCj4gKwkJbmV0ZnJvbnRfc3Vz cGVuZF9jYW5jZWxsZWQgPSAwOw0KPiArCQlyZXR1cm4gKDApOw0KPiArCX0NCj4gIAlpbmZvLT54 bl9yZXN1bWUgPSB0cnVlOw0KPiAgCW5ldGlmX2Rpc2Nvbm5lY3RfYmFja2VuZChpbmZvKTsNCj4g IAlyZXR1cm4gKDApOw0KPiBAQCAtMjEwOCwyNiArMjEzMiwyNiBAQCBjcmVhdGVfbmV0ZGV2KGRl dmljZV90IGRldikNCj4gIAkNCj4gIAkvKiBTZXQgdXAgaWZuZXQgc3RydWN0dXJlICovDQo+ICAJ aWZwID0gbnAtPnhuX2lmcCA9IGlmX2FsbG9jKElGVF9FVEhFUik7DQo+IC0gICAgCWlmcC0+aWZf c29mdGMgPSBucDsNCj4gLSAgICAJaWZfaW5pdG5hbWUoaWZwLCAieG4iLCAgZGV2aWNlX2dldF91 bml0KGRldikpOw0KPiAtICAgIAlpZnAtPmlmX2ZsYWdzID0gSUZGX0JST0FEQ0FTVCB8IElGRl9T SU1QTEVYIHwgSUZGX01VTFRJQ0FTVDsNCj4gLSAgICAJaWZwLT5pZl9pb2N0bCA9IHhuX2lvY3Rs Ow0KPiAtICAgIAlpZnAtPmlmX291dHB1dCA9IGV0aGVyX291dHB1dDsNCj4gLSAgICAJaWZwLT5p Zl9zdGFydCA9IHhuX3N0YXJ0Ow0KPiArCWlmcC0+aWZfc29mdGMgPSBucDsNCj4gKwlpZl9pbml0 bmFtZShpZnAsICJ4biIsICBkZXZpY2VfZ2V0X3VuaXQoZGV2KSk7DQo+ICsJaWZwLT5pZl9mbGFn cyA9IElGRl9CUk9BRENBU1QgfCBJRkZfU0lNUExFWCB8IElGRl9NVUxUSUNBU1Q7DQo+ICsJaWZw LT5pZl9pb2N0bCA9IHhuX2lvY3RsOw0KPiArCWlmcC0+aWZfb3V0cHV0ID0gZXRoZXJfb3V0cHV0 Ow0KPiArCWlmcC0+aWZfc3RhcnQgPSB4bl9zdGFydDsNCj4gICNpZmRlZiBub3R5ZXQNCj4gLSAg ICAJaWZwLT5pZl93YXRjaGRvZyA9IHhuX3dhdGNoZG9nOw0KPiArCWlmcC0+aWZfd2F0Y2hkb2cg PSB4bl93YXRjaGRvZzsNCj4gICNlbmRpZg0KPiAtICAgIAlpZnAtPmlmX2luaXQgPSB4bl9pZmlu aXQ7DQo+IC0gICAgCWlmcC0+aWZfc25kLmlmcV9tYXhsZW4gPSBORVRfVFhfUklOR19TSVpFIC0g MTsNCj4gLQkNCj4gLSAgICAJaWZwLT5pZl9od2Fzc2lzdCA9IFhOX0NTVU1fRkVBVFVSRVM7DQo+ IC0gICAgCWlmcC0+aWZfY2FwYWJpbGl0aWVzID0gSUZDQVBfSFdDU1VNOw0KPiArCWlmcC0+aWZf aW5pdCA9IHhuX2lmaW5pdDsNCj4gKwlpZnAtPmlmX3NuZC5pZnFfbWF4bGVuID0gTkVUX1RYX1JJ TkdfU0laRSAtIDE7DQo+ICsNCj4gKwlpZnAtPmlmX2h3YXNzaXN0ID0gWE5fQ1NVTV9GRUFUVVJF UzsNCj4gKwlpZnAtPmlmX2NhcGFiaWxpdGllcyA9IElGQ0FQX0hXQ1NVTTsNCj4gIAlpZnAtPmlm X2h3X3Rzb21heCA9IDY1NTM2IC0gKEVUSEVSX0hEUl9MRU4gKyBFVEhFUl9WTEFOX0VOQ0FQX0xF Tik7DQo+ICAJaWZwLT5pZl9od190c29tYXhzZWdjb3VudCA9IE1BWF9UWF9SRVFfRlJBR1M7DQo+ ICAJaWZwLT5pZl9od190c29tYXhzZWdzaXplID0gUEFHRV9TSVpFOw0KPiAgCQ0KPiAtICAgIAll dGhlcl9pZmF0dGFjaChpZnAsIG5wLT5tYWMpOw0KPiAtICAgIAljYWxsb3V0X2luaXQoJm5wLT54 bl9zdGF0X2NoLCBDQUxMT1VUX01QU0FGRSk7DQo+ICsJZXRoZXJfaWZhdHRhY2goaWZwLCBucC0+ bWFjKTsNCj4gKwljYWxsb3V0X2luaXQoJm5wLT54bl9zdGF0X2NoLCBDQUxMT1VUX01QU0FGRSk7 DQo+ICAJbmV0ZnJvbnRfY2Fycmllcl9vZmYobnApOw0KDQpUaGlzIGNodW5rIHNlZW1zIGNvbXBs ZXRlbHkgdW5yZWxhdGVkIHRvIHRoZSBwYXRjaCBpdHNlbGYsIGlzIHRoaXMgc29tZSBraW5kIG9m IGNvZGUgZm9ybWF0dGluZyBjbGVhbnVwPyBJZiBzbywgdGhpcyBzaG91bGQgYmUgc2VudCBpbiBh IHNlcGFyYXRlIHBhdGNoLg0KDQo+ICAJcmV0dXJuICgwKTsNCj4gZGlmZiAtLWdpdCBhL3N5cy94 ODYveGVuL2h2bS5jIGIvc3lzL3g4Ni94ZW4vaHZtLmMgaW5kZXggDQo+IGMzODY5NTMuLjFjMmJh OWQgMTAwNjQ0DQo+IC0tLSBhL3N5cy94ODYveGVuL2h2bS5jDQo+ICsrKyBiL3N5cy94ODYveGVu L2h2bS5jDQo+IEBAIC01MTcsMTAgKzUxNyw5IEBAIHhlbl9odm1faW5pdChlbnVtIHhlbl9odm1f aW5pdF90eXBlIGluaXRfdHlwZSkNCj4gIAlpbnQgZXJyb3I7DQo+ICAJaW50IGk7DQo+ICANCj4g LQlpZiAoaW5pdF90eXBlID09IFhFTl9IVk1fSU5JVF9DQU5DRUxMRURfU1VTUEVORCkNCj4gLQkJ cmV0dXJuOw0KPiAtDQo+IC0JZXJyb3IgPSB4ZW5faHZtX2luaXRfaHlwZXJjYWxsX3N0dWJzKCk7 DQo+ICsJaWYgKGluaXRfdHlwZSAhPSBYRU5fSFZNX0lOSVRfQ0FOQ0VMTEVEX1NVU1BFTkQpIHsN Cj4gKwkJZXJyb3IgPSB4ZW5faHZtX2luaXRfaHlwZXJjYWxsX3N0dWJzKCk7DQo+ICsJfQ0KPiAg DQo+ICAJc3dpdGNoIChpbml0X3R5cGUpIHsNCj4gIAljYXNlIFhFTl9IVk1fSU5JVF9DT0xEOg0K PiBAQCAtNTQxLDEzICs1NDAsMTcgQEAgeGVuX2h2bV9pbml0KGVudW0geGVuX2h2bV9pbml0X3R5 cGUgaW5pdF90eXBlKQ0KPiAgCQlDUFVfRk9SRUFDSChpKQ0KPiAgCQkJRFBDUFVfSURfU0VUKGks IHZjcHVfaW5mbywgTlVMTCk7DQo+ICAJCWJyZWFrOw0KPiArCWNhc2UgWEVOX0hWTV9JTklUX0NB TkNFTExFRF9TVVNQRU5EOg0KPiArCQlicmVhazsNCj4gIAlkZWZhdWx0Og0KPiAgCQlwYW5pYygi VW5zdXBwb3J0ZWQgSFZNIGluaXRpYWxpemF0aW9uIHR5cGUiKTsNCj4gIAl9DQo+ICANCj4gIAl4 ZW5fdmVjdG9yX2NhbGxiYWNrX2VuYWJsZWQgPSAwOw0KPiAgCXhlbl9kb21haW5fdHlwZSA9IFhF Tl9IVk1fRE9NQUlOOw0KPiAtCXhlbl9odm1faW5pdF9zaGFyZWRfaW5mb19wYWdlKCk7DQo+ICsJ aWYgKGluaXRfdHlwZSAhPSBYRU5fSFZNX0lOSVRfQ0FOQ0VMTEVEX1NVU1BFTkQpIHsNCj4gKwkJ eGVuX2h2bV9pbml0X3NoYXJlZF9pbmZvX3BhZ2UoKTsNCj4gKwl9DQo+ICAJeGVuX2h2bV9zZXRf Y2FsbGJhY2soTlVMTCk7DQo+ICAJeGVuX2h2bV9kaXNhYmxlX2VtdWxhdGVkX2RldmljZXMoKTsN Cg0KSSdtIG5vdCBzdXJlIEkgZm9sbG93IHdoeSB0aGlzIGNoYW5nZSB0byB4ZW5faHZtX2luaXQg aXMgbmVlZGVkLCBvbiBhIGNhbmNlbGxlZCBzdXNwZW5kIHlvdSBzaG91bGRuJ3QgbmVlZCB0byBy ZS1zZXQgdGhlIGNhbGxiYWNrIHZlY3RvciBvciB1bnBsdWcgYW55IGVtdWxhdGVkIGRldmljZXMu DQoNCj4gIH0NCj4gQEAgLTU2NSw3ICs1NjgsOCBAQCB4ZW5faHZtX3Jlc3VtZShib29sIHN1c3Bl bmRfY2FuY2VsbGVkKQ0KPiAgCSAgICBYRU5fSFZNX0lOSVRfQ0FOQ0VMTEVEX1NVU1BFTkQgOiBY RU5fSFZNX0lOSVRfUkVTVU1FKTsNCj4gIA0KPiAgCS8qIFJlZ2lzdGVyIHZjcHVfaW5mbyBhcmVh IGZvciBDUFUjMC4gKi8NCj4gLQl4ZW5faHZtX2NwdV9pbml0KCk7DQo+ICsJaWYoIXN1c3BlbmRf Y2FuY2VsbGVkKQ0KPiArCQl4ZW5faHZtX2NwdV9pbml0KCk7DQo+ICB9DQoNClNlZWluZyB0aGlz IGhlcmUsIHdoeSBkb24ndCB3ZSBqdXN0IGF2b2lkIGNhbGxpbmcgeGVuX2h2bV9yZXN1bWUgZnJv bSB4Y3RybF9zdXNwZW5kIG9uIGEgY2FuY2VsbGVkIHN1c3BlbmQ/DQoNCj4gIHN0YXRpYyB2b2lk DQo+IGRpZmYgLS1naXQgYS9zeXMveGVuL3hlbmJ1cy94ZW5idXNiLmMgYi9zeXMveGVuL3hlbmJ1 cy94ZW5idXNiLmMgaW5kZXggDQo+IDFmODQ3OTUuLmNjZTgzY2QgMTAwNjQ0DQo+IC0tLSBhL3N5 cy94ZW4veGVuYnVzL3hlbmJ1c2IuYw0KPiArKysgYi9zeXMveGVuL3hlbmJ1cy94ZW5idXNiLmMN Cj4gQEAgLTc1LDYgKzc1LDggQEAgX19GQlNESUQoIiRGcmVlQlNEJCIpOyAgI2luY2x1ZGUgDQo+ IDx4ZW4veGVuYnVzL3hlbmJ1c2IuaD4gICNpbmNsdWRlIDx4ZW4veGVuYnVzL3hlbmJ1c3Zhci5o Pg0KPiAgDQo+ICtzdGF0aWMgaW50IHhlbmJ1c2Jfc3VzcGVuZF9jYW5jZWxsZWQgPSAwOw0KPiAr DQo+ICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gUHJpdmF0ZSBGdW5jdGlvbnMgDQo+IC0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8NCj4gIC8qKg0KPiAgICogXGJyaWVmIERl YWxsb2NhdGUgWGVuQnVzIGRldmljZSBpbnN0YW5jZSB2YXJpYWJsZXMuDQo+IEBAIC03NzYsNiAr Nzc4LDExIEBAIHhlbmJ1c2JfYXR0YWNoKGRldmljZV90IGRldiwgY2hhciAqYnVzX25vZGUsIHVf aW50IGlkX2NvbXBvbmVudHMpDQo+ICAJcmV0dXJuICgwKTsNCj4gIH0NCj4gIA0KPiArdm9pZCB4 ZW5idXNiX3NldF9zdXNwZW5kX2NhbmNlbCh2b2lkKSB7DQo+ICsJeGVuYnVzYl9zdXNwZW5kX2Nh bmNlbGxlZCA9IDE7DQo+ICt9DQo+ICsNCj4gIGludA0KPiAgeGVuYnVzYl9yZXN1bWUoZGV2aWNl X3QgZGV2KQ0KPiAgew0KPiBAQCAtNzkzLDI5ICs4MDAsMzIgQEAgeGVuYnVzYl9yZXN1bWUoZGV2 aWNlX3QgZGV2KQ0KPiAgCQkJaWYgKGRldmljZV9nZXRfc3RhdGUoa2lkc1tpXSkgPT0gRFNfTk9U UFJFU0VOVCkNCj4gIAkJCQljb250aW51ZTsNCj4gIA0KPiAtCQkJaXZhcnMgPSBkZXZpY2VfZ2V0 X2l2YXJzKGtpZHNbaV0pOw0KPiArCQkJaWYoeGVuYnVzYl9zdXNwZW5kX2NhbmNlbGxlZCA9PSAw KSB7DQo+ICsJCQkJaXZhcnMgPSBkZXZpY2VfZ2V0X2l2YXJzKGtpZHNbaV0pOw0KPiAgDQo+IC0J CQl4c191bnJlZ2lzdGVyX3dhdGNoKCZpdmFycy0+eGRfb3RoZXJlbmRfd2F0Y2gpOw0KPiAtCQkJ eGVuYnVzX3NldF9zdGF0ZShraWRzW2ldLCBYZW5idXNTdGF0ZUluaXRpYWxpc2luZyk7DQo+ICsJ CQkJeHNfdW5yZWdpc3Rlcl93YXRjaCgmaXZhcnMtPnhkX290aGVyZW5kX3dhdGNoKTsNCj4gKwkJ CQl4ZW5idXNfc2V0X3N0YXRlKGtpZHNbaV0sIFhlbmJ1c1N0YXRlSW5pdGlhbGlzaW5nKTsNCj4g IA0KPiAtCQkJLyoNCj4gLQkJCSAqIEZpbmQgdGhlIG5ldyBiYWNrZW5kIGRldGFpbHMgYW5kDQo+ IC0JCQkgKiByZS1yZWdpc3RlciBvdXIgd2F0Y2guDQo+IC0JCQkgKi8NCj4gLQkJCWVycm9yID0g WEVOQlVTQl9HRVRfT1RIRVJFTkRfTk9ERShkZXYsIGl2YXJzKTsNCj4gLQkJCWlmIChlcnJvcikN Cj4gLQkJCQlyZXR1cm4gKGVycm9yKTsNCj4gKwkJCQkvKg0KPiArCQkJCSAqIEZpbmQgdGhlIG5l dyBiYWNrZW5kIGRldGFpbHMgYW5kDQo+ICsJCQkJICogcmUtcmVnaXN0ZXIgb3VyIHdhdGNoLg0K PiArCQkJCSAqLw0KPiArCQkJCWVycm9yID0gWEVOQlVTQl9HRVRfT1RIRVJFTkRfTk9ERShkZXYs IGl2YXJzKTsNCj4gKwkJCQlpZiAoZXJyb3IpDQo+ICsJCQkJCXJldHVybiAoZXJyb3IpOw0KPiAg DQo+IC0JCQlzdGF0ZXBhdGggPSBtYWxsb2MoaXZhcnMtPnhkX290aGVyZW5kX3BhdGhfbGVuDQo+ IC0JCQkgICAgKyBzdHJsZW4oIi9zdGF0ZSIpICsgMSwgTV9YRU5CVVMsIE1fV0FJVE9LKTsNCj4g LQkJCXNwcmludGYoc3RhdGVwYXRoLCAiJXMvc3RhdGUiLCBpdmFycy0+eGRfb3RoZXJlbmRfcGF0 aCk7DQo+ICsJCQkJc3RhdGVwYXRoID0gbWFsbG9jKGl2YXJzLT54ZF9vdGhlcmVuZF9wYXRoX2xl bg0KPiArCQkJCSAgICArIHN0cmxlbigiL3N0YXRlIikgKyAxLCBNX1hFTkJVUywgTV9XQUlUT0sp Ow0KPiArCQkJCXNwcmludGYoc3RhdGVwYXRoLCAiJXMvc3RhdGUiLCBpdmFycy0+eGRfb3RoZXJl bmRfcGF0aCk7DQo+ICANCj4gLQkJCWZyZWUoaXZhcnMtPnhkX290aGVyZW5kX3dhdGNoLm5vZGUs IE1fWEVOQlVTKTsNCj4gLQkJCWl2YXJzLT54ZF9vdGhlcmVuZF93YXRjaC5ub2RlID0gc3RhdGVw YXRoOw0KPiArCQkJCWZyZWUoaXZhcnMtPnhkX290aGVyZW5kX3dhdGNoLm5vZGUsIE1fWEVOQlVT KTsNCj4gKwkJCQlpdmFycy0+eGRfb3RoZXJlbmRfd2F0Y2gubm9kZSA9IHN0YXRlcGF0aDsNCj4g KwkJCX0NCj4gIA0KPiAgCQkJREVWSUNFX1JFU1VNRShraWRzW2ldKTsNCj4gIA0KPiAtCQkJeHNf cmVnaXN0ZXJfd2F0Y2goJml2YXJzLT54ZF9vdGhlcmVuZF93YXRjaCk7DQo+ICsJCQlpZih4ZW5i dXNiX3N1c3BlbmRfY2FuY2VsbGVkID09IDApDQo+ICsJCQkJeHNfcmVnaXN0ZXJfd2F0Y2goJml2 YXJzLT54ZF9vdGhlcmVuZF93YXRjaCk7DQoNCldoeSBkb24ndCB5b3UganVzdCBhZGQ6DQoNCmlm ICh4ZW5idXNiX3N1c3BlbmRfY2FuY2VsbGVkID09IDEpIHsNCglERVZJQ0VfUkVTVU1FKGtpZHNb aV0pOw0KCWNvbnRpbnVlOw0KfQ0KDQpUbyB0aGUgdG9wIG9mIHRoZSBsb29wPyBUaGlzIHdvdWxk IHByZXNlbnQgYWRkaW5nIGEgYnVuY2ggb2YgbmVzdGVkIGNvbmRpdGlvbmFscy4NCg0KPiAgI2lm IDANCj4gIAkJCS8qDQo+ICAJCQkgKiBDYW4ndCBkbyB0aGlzIHlldCBzaW5jZSB3ZSBhcmUgcnVu bmluZyBpbiBAQCAtODM0LDYgKzg0NCw5IEBAIA0KPiB4ZW5idXNiX3Jlc3VtZShkZXZpY2VfdCBk ZXYpDQo+ICAJCWZyZWUoa2lkcywgTV9URU1QKTsNCj4gIAl9DQo+ICANCj4gKwlpZih4ZW5idXNi X3N1c3BlbmRfY2FuY2VsbGVkID09IDEpDQo+ICsJCXhlbmJ1c2Jfc3VzcGVuZF9jYW5jZWxsZWQg PSAwOw0KPiArCQ0KPiAgCXJldHVybiAoMCk7DQo+ICB9DQo+ICANCj4gZGlmZiAtLWdpdCBhL3N5 cy94ZW4veGVuYnVzL3hlbmJ1c3Zhci5oIGIvc3lzL3hlbi94ZW5idXMveGVuYnVzdmFyLmggDQo+ IGluZGV4IGFiNWQwMWYuLmFmZjNiNjAgMTAwNjQ0DQo+IC0tLSBhL3N5cy94ZW4veGVuYnVzL3hl bmJ1c3Zhci5oDQo+ICsrKyBiL3N5cy94ZW4veGVuYnVzL3hlbmJ1c3Zhci5oDQo+IEBAIC0yNzIs NCArMjcyLDggQEAgdm9pZCB4ZW5idXNfbG9jYWxlbmRfY2hhbmdlZChkZXZpY2VfdCBkZXYsIGNv bnN0IA0KPiBjaGFyICpwYXRoKTsNCj4gIA0KPiAgI2luY2x1ZGUgInhlbmJ1c19pZi5oIg0KPiAg DQo+ICt2b2lkIHhlbmJ1c2Jfc2V0X3N1c3BlbmRfY2FuY2VsKHZvaWQpOyB2b2lkIA0KPiAreGJk X3NldF9zdXNwZW5kX2NhbmNlbCh2b2lkKTsgdm9pZCB4bl9zZXRfc3VzcGVuZF9jYW5jZWwodm9p ZCk7DQo+ICsNCj4gICNlbmRpZiAvKiBfWEVOX1hFTkJVU19YRU5CVVNWQVJfSCAqLw0KPiAtLQ0K PiAxLjguMy40DQo+DQo+IEZyb20gNDIzYTk1OWEyNjhiMjA1YzA0ODQ4OWU2YWRkZWJhNWRiNDQ5 ZTMyMiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDENCj4gRnJvbTogWWluZ2RvbmcgTGl1IDxsaXV5 aW5nZG9uZ0BodWF3ZWkuY29tPg0KPiBEYXRlOiBUaHUsIDE1IERlYyAyMDE2IDA5OjA5OjE2ICsw ODAwDQo+IFN1YmplY3Q6IFtQQVRDSF0gW1BBVENIXW5ldGZyb250OiBuZWVkIHJlbGVhc2UgYWxs IHJlc291cmNlcyBhZnRlciANCj4gYWRkaW5nIGFuZCAgcmVtb3ZpbmcgTklDcyB0aW1lIGFuZCBh Z2Fpbg0KPiANCj4gLS0tDQo+ICBzeXMvZGV2L3hlbi9uZXRmcm9udC9uZXRmcm9udC5jIHwgNDYg DQo+ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrDQo+ICAxIGZpbGUg Y2hhbmdlZCwgNDYgaW5zZXJ0aW9ucygrKQ0KPiANCj4gZGlmZiAtLWdpdCBhL3N5cy9kZXYveGVu L25ldGZyb250L25ldGZyb250LmMgDQo+IGIvc3lzL2Rldi94ZW4vbmV0ZnJvbnQvbmV0ZnJvbnQu YyBpbmRleCAwY2FhYTJjLi41YjY3ZTEyIDEwMDY0NA0KPiAtLS0gYS9zeXMvZGV2L3hlbi9uZXRm cm9udC9uZXRmcm9udC5jDQo+ICsrKyBiL3N5cy9kZXYveGVuL25ldGZyb250L25ldGZyb250LmMN Cj4gQEAgLTIxOTYsNiArMjE5Niw0NiBAQCBuZXRmcm9udF9kZXRhY2goZGV2aWNlX3QgZGV2KSAg fQ0KPiAgDQo+ICBzdGF0aWMgdm9pZA0KPiArbmV0aWZfcmVsZWFzZV9yeF9idWZzX2NvcHkoc3Ry dWN0IG5ldGZyb250X2luZm8gKm5wKSB7DQo+ICsJc3RydWN0IG1idWYgKm07DQo+ICsJaW50IGks IHJlZjsNCj4gKwlpbnQgYnVzeSA9IDAsIGludXNlID0gMDsNCj4gKw0KPiArCVhOX1JYX0xPQ0so bnApOw0KPiArDQo+ICsJZm9yIChpID0gMDsgaSA8IE5FVF9SWF9SSU5HX1NJWkU7IGkrKykgew0K PiArCQlyZWYgPSBucC0+Z3JhbnRfcnhfcmVmW2ldOw0KPiArDQo+ICsJCWlmIChyZWYgPT0gR1JB TlRfUkVGX0lOVkFMSUQpDQo+ICsJCQljb250aW51ZTsNCj4gKw0KPiArCQlpbnVzZSsrOw0KPiAr DQo+ICsJCW0gPSBucC0+cnhfbWJ1ZnNbaV07DQo+ICsNCj4gKwkJaWYgKCFnbnR0YWJfZW5kX2Zv cmVpZ25fYWNjZXNzX3JlZihyZWYpKQ0KPiArCQl7DQo+ICsJCQlidXN5Kys7DQo+ICsJCQljb250 aW51ZTsNCj4gKwkJfQ0KPiArDQo+ICsJCWdudHRhYl9yZWxlYXNlX2dyYW50X3JlZmVyZW5jZSgm bnAtPmdyZWZfcnhfaGVhZCwgcmVmKTsNCj4gKwkJbnAtPmdyYW50X3J4X3JlZltpXSA9IEdSQU5U X1JFRl9JTlZBTElEOw0KPiArCQlhZGRfaWRfdG9fZnJlZWxpc3QobnAtPnJ4X21idWZzLCBpKTsN Cj4gKw0KPiArCQltX2ZyZWVtKG0pOw0KPiArCX0NCj4gKw0KPiArCWlmIChidXN5KQ0KPiArCQlk ZXZpY2VfcHJpbnRmKG5wLT54YmRldiwgIlVuYWJsZSB0byByZWxlYXNlICVkIG9mICVkICINCj4g KwkJCSJpbnVzZSBncmFudCByZWZlcmVuY2VzIG91dCBvZiAlbGQgdG90YWwuXG4iLA0KPiArCQkJ YnVzeSwgaW51c2UsIE5FVF9SWF9SSU5HX1NJWkUpOw0KPiArCQ0KDQpTdHJheSB0YWIuDQoNCj4g KwlYTl9SWF9VTkxPQ0sobnApOw0KPiArfQ0KPiArDQo+ICtzdGF0aWMgdm9pZA0KPiAgbmV0aWZf ZnJlZShzdHJ1Y3QgbmV0ZnJvbnRfaW5mbyAqaW5mbykgIHsNCj4gIAlYTl9MT0NLKGluZm8pOw0K PiBAQCAtMjIwOSw2ICsyMjQ5LDEyIEBAIG5ldGlmX2ZyZWUoc3RydWN0IG5ldGZyb250X2luZm8g KmluZm8pDQo+ICAJCWluZm8tPnhuX2lmcCA9IE5VTEw7DQo+ICAJfQ0KPiAgCWlmbWVkaWFfcmVt b3ZlYWxsKCZpbmZvLT5zY19tZWRpYSk7DQo+ICsJbmV0aWZfcmVsZWFzZV90eF9idWZzKGluZm8p Ow0KPiArCWlmIChpbmZvLT5jb3B5aW5nX3JlY2VpdmVyKQ0KPiArCQluZXRpZl9yZWxlYXNlX3J4 X2J1ZnNfY29weShpbmZvKTsNCj4gKw0KPiArCWdudHRhYl9mcmVlX2dyYW50X3JlZmVyZW5jZXMo aW5mby0+Z3JlZl90eF9oZWFkKTsNCj4gKwlnbnR0YWJfZnJlZV9ncmFudF9yZWZlcmVuY2VzKGlu Zm8tPmdyZWZfcnhfaGVhZCk7DQo+ICB9DQoNClRoaXMgcGF0Y2ggbG9va3MgZmluZSwgYnV0IGl0 IG5lZWRzIHRvIGJlIHJlYmFzZWQgb24gdG9wIG9mIEhFQUQgaW4gb3JkZXIgdG8gYmUgYXBwbGll ZC4NCg0KUm9nZXIuDQo= --_004_3655E9A8B903724782E1F75DCFD74E6B0122A2DC2Fszxema506mbsc_ Content-Type: application/octet-stream; name="0001-introduce suspend_cancel mechanism for frontend devices.patch" Content-Description: 0001-introduce suspend_cancel mechanism for frontend devices.patch Content-Disposition: attachment; filename="0001-introduce suspend_cancel mechanism for frontend devices.patch"; size=6886; creation-date="Thu, 02 Feb 2017 17:58:05 GMT"; modification-date="Thu, 02 Feb 2017 18:43:43 GMT" Content-Transfer-Encoding: base64 RnJvbSAwYWYwNWFjMDFiZTg1MzM0MGIzYjUzODYyZGU5ODUzZDhkNDRjMGM2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBsaXV5aW5nZG9uZyA8bGl1eWluZ2RvbmdAaHVhd2VpLmNvbT4K RGF0ZTogVGh1LCAyIEZlYiAyMDE3IDE5OjQwOjQ4ICswMjAwClN1YmplY3Q6IGludHJvZHVjZSBz dXNwZW5kX2NhbmNlbCBtZWNoYW5pc20gZm9yIGZyb250ZW5kIGRldmljZXMuDQoxLjEgT24gYSBj YW5jZWxsZWQgc3VzcGVuZCwgeGVuIGZyb250ZW5kIGRldmljZXMgbmVlZCBrbm93IHRoZWlyIHN0 YXRlIGlzIGludmFyaWFudC4NCjEuMiBPbiBhIGNhbmNlbGxlZCBzdXNwZW5kIHRoZSB2Y3B1X2lu Zm8gbG9jYXRpb24gZG9lcyBub3QgY2hhbmdlIAooaXQncyBzdGlsbCBpbiB0aGUgcGVyLWNwdSBh cmVhIHJlZ2lzdGVyZWQgYnkgeGVuX2h2bV9jcHVfaW5pdCgpKS4gClNvIGRvIG5vdCBjYWxsIHhl bl9odm1faW5pdF9zaGFyZWRfaW5mb19wYWdlKCkgd2hpY2ggd291bGQgbWFrZSB0aGUga2VybmVs IHRoaW5rIGl0cyBiYWNrIGluIHRoZSBzaGFyZWQgaW5mby4gCldpdGggdGhlIHdyb25nIHZjcHVf aW5mbywgZXZlbnRzIGNhbm5vdCBiZSByZWNlaXZlZCBhbmQgdGhlIGRvbWFpbiB3aWxsIGhhbmcg YWZ0ZXIgYSBjYW5jZWxsZWQgc3VzcGVuZC4NCgotLS0KIGRldi94ZW4vYmxrZnJvbnQvYmxrZnJv bnQuYyB8ICA1ICsrKysrCiBkZXYveGVuL2NvbnRyb2wvY29udHJvbC5jICAgfCAxMSArKysrKysr KystLQogZGV2L3hlbi9uZXRmcm9udC9uZXRmcm9udC5jIHwgMjEgKysrKysrKysrKysrKysrKysr KysrCiB4ODYveGVuL2h2bS5jICAgICAgICAgICAgICAgfCAxNiArKysrKysrKysrLS0tLS0tCiB4 ZW4veGVuYnVzL3hlbmJ1c2IuYyAgICAgICAgfCAzNSArKysrKysrKysrKysrKysrKysrLS0tLS0t LS0tLS0tLS0tLQogeGVuL3hlbmJ1cy94ZW5idXN2YXIuaCAgICAgIHwgIDIgKysKIDYgZmlsZXMg Y2hhbmdlZCwgNjYgaW5zZXJ0aW9ucygrKSwgMjQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEv ZGV2L3hlbi9ibGtmcm9udC9ibGtmcm9udC5jIGIvZGV2L3hlbi9ibGtmcm9udC9ibGtmcm9udC5j CmluZGV4IDllY2EyMjAuLjQ3Y2Q4M2YgMTAwNjQ0Ci0tLSBhL2Rldi94ZW4vYmxrZnJvbnQvYmxr ZnJvbnQuYworKysgYi9kZXYveGVuL2Jsa2Zyb250L2Jsa2Zyb250LmMKQEAgLTE1MzcsNiArMTUz NywxMSBAQCB4YmRfcmVzdW1lKGRldmljZV90IGRldikKIHsKIAlzdHJ1Y3QgeGJkX3NvZnRjICpz YyA9IGRldmljZV9nZXRfc29mdGMoZGV2KTsKIAorCWlmKGdfc3VzcGVuZF9jYW5jZWxsZWQpIHsK KwkJc2MtPnhiZF9zdGF0ZSA9IFhCRF9TVEFURV9DT05ORUNURUQ7CisJCXJldHVybiAoMCk7CisJ fQorCiAJRFBSSU5USygieGJkX3Jlc3VtZTogJXNcbiIsIHhlbmJ1c19nZXRfbm9kZShkZXYpKTsK IAogCXhiZF9mcmVlKHNjKTsKZGlmZiAtLWdpdCBhL2Rldi94ZW4vY29udHJvbC9jb250cm9sLmMg Yi9kZXYveGVuL2NvbnRyb2wvY29udHJvbC5jCmluZGV4IDU4ZmVmY2MuLjRmODQ3MWYgMTAwNjQ0 Ci0tLSBhL2Rldi94ZW4vY29udHJvbC9jb250cm9sLmMKKysrIGIvZGV2L3hlbi9jb250cm9sL2Nv bnRyb2wuYwpAQCAtMTkwLDYgKzE5MCwxMSBAQCB4Y3RybF9yZWJvb3QoKQogCXNodXRkb3duX25p Y2UoMCk7CiB9CiAKK3N0YXRpYyB2b2lkIF9zZXRfc3VzcGVuZF9jYW5jZWxsZWQoYm9vbCBzdXNw ZW5kX2NhbmNlbGxlZCkKK3sKKwlnX3N1c3BlbmRfY2FuY2VsbGVkID0gc3VzcGVuZF9jYW5jZWxs ZWQ7Cit9CisKIHN0YXRpYyB2b2lkCiB4Y3RybF9zdXNwZW5kKCkKIHsKQEAgLTI3OCw3ICsyODMs OSBAQCB4Y3RybF9zdXNwZW5kKCkKIAkvKgogCSAqIFJlc2V0IGdyYW50IHRhYmxlIGluZm8uCiAJ ICovCi0JZ250dGFiX3Jlc3VtZShOVUxMKTsKKwlpZihzdXNwZW5kX2NhbmNlbGxlZCA9PSAwKSAg eworCQlnbnR0YWJfcmVzdW1lKE5VTEwpOworCX0KIAogI2lmZGVmIFNNUAogCWlmICghQ1BVX0VN UFRZKCZjcHVfc3VzcGVuZF9tYXApKSB7CkBAIC0yOTYsNiArMzAzLDcgQEAgeGN0cmxfc3VzcGVu ZCgpCiAJICogRnJlZUJTRCByZWFsbHkgbmVlZHMgdG8gYWRkIERFVklDRV9TVVNQRU5EX0NBTkNF TCBvcgogCSAqIHNpbWlsYXIuCiAJICovCisJX3NldF9zdXNwZW5kX2NhbmNlbGxlZChzdXNwZW5k X2NhbmNlbGxlZCAhPSAwKTsKIAlERVZJQ0VfUkVTVU1FKHJvb3RfYnVzKTsKIAltdHhfdW5sb2Nr KCZHaWFudCk7CiAKQEAgLTMxOSw3ICszMjcsNiBAQCB4Y3RybF9zdXNwZW5kKCkKICNlbmRpZgog CiAJcmVzdW1lX2FsbF9wcm9jKCk7Ci0KIAlFVkVOVEhBTkRMRVJfSU5WT0tFKHBvd2VyX3Jlc3Vt ZSk7CiAKIAlpZiAoYm9vdHZlcmJvc2UpCmRpZmYgLS1naXQgYS9kZXYveGVuL25ldGZyb250L25l dGZyb250LmMgYi9kZXYveGVuL25ldGZyb250L25ldGZyb250LmMKaW5kZXggNDU5NzEyYS4uNTM3 MDE4YSAxMDA2NDQKLS0tIGEvZGV2L3hlbi9uZXRmcm9udC9uZXRmcm9udC5jCisrKyBiL2Rldi94 ZW4vbmV0ZnJvbnQvbmV0ZnJvbnQuYwpAQCAtMTUzLDYgKzE1MywxMCBAQCBzdGF0aWMgaW50IHhu X2dldF9yZXNwb25zZXMoc3RydWN0IG5ldGZyb250X3J4cSAqLAogICAgIHN0cnVjdCBuZXRmcm9u dF9yeF9pbmZvICosIFJJTkdfSURYLCBSSU5HX0lEWCAqLAogICAgIHN0cnVjdCBtYnVmICoqKTsK IAorI2lmZGVmIElORVQKK3N0YXRpYyB2b2lkIG5ldGZyb250X3NlbmRfZmFrZV9hcnAoZGV2aWNl X3QgZGV2LCBzdHJ1Y3QgbmV0ZnJvbnRfaW5mbyAqaW5mbyk7CisjZW5kaWYKKwogI2RlZmluZSB2 aXJ0X3RvX21mbih4KSAodnRvcGh5cyh4KSA+PiBQQUdFX1NISUZUKQogCiAjZGVmaW5lIElOVkFM SURfUDJNX0VOVFJZICh+MFVMKQpAQCAtNDQwLDYgKzQ0NCwyMyBAQCBuZXRmcm9udF9yZXN1bWUo ZGV2aWNlX3QgZGV2KQogewogCXN0cnVjdCBuZXRmcm9udF9pbmZvICppbmZvID0gZGV2aWNlX2dl dF9zb2Z0YyhkZXYpOwogCisJaWYoZ19zdXNwZW5kX2NhbmNlbGxlZCkgeworCQl1X2ludCBpOwor CQlmb3IgKGkgPSAwOyBpIDwgaW5mby0+bnVtX3F1ZXVlczsgaSsrKSB7CisJCSAgICBYTl9SWF9M T0NLKCZpbmZvLT5yeHFbaV0pOworCQkgICAgWE5fVFhfTE9DSygmaW5mby0+dHhxW2ldKTsKKwkJ fQorCQluZXRmcm9udF9jYXJyaWVyX29uKGluZm8pOworCQlmb3IgKGkgPSAwOyBpIDwgaW5mby0+ bnVtX3F1ZXVlczsgaSsrKSB7CisJCSAgICBYTl9SWF9VTkxPQ0soJmluZm8tPnJ4cVtpXSk7CisJ CSAgICBYTl9UWF9VTkxPQ0soJmluZm8tPnR4cVtpXSk7CisJCX0KKyNpZmRlZiBJTkVUCisJCW5l dGZyb250X3NlbmRfZmFrZV9hcnAoZGV2LCBpbmZvKTsKKyNlbmRpZgorCQlyZXR1cm4gKDApOwor CX0KKwogCW5ldGlmX2Rpc2Nvbm5lY3RfYmFja2VuZChpbmZvKTsKIAlyZXR1cm4gKDApOwogfQpk aWZmIC0tZ2l0IGEveDg2L3hlbi9odm0uYyBiL3g4Ni94ZW4vaHZtLmMKaW5kZXggZTEwNjU5ZS4u Yzk2YjdiZSAxMDA2NDQKLS0tIGEveDg2L3hlbi9odm0uYworKysgYi94ODYveGVuL2h2bS5jCkBA IC0yOTcsMTAgKzI5Nyw5IEBAIHhlbl9odm1faW5pdChlbnVtIHhlbl9odm1faW5pdF90eXBlIGlu aXRfdHlwZSkKIAlpbnQgZXJyb3I7CiAJaW50IGk7CiAKLQlpZiAoaW5pdF90eXBlID09IFhFTl9I Vk1fSU5JVF9DQU5DRUxMRURfU1VTUEVORCkKLQkJcmV0dXJuOwotCi0JZXJyb3IgPSB4ZW5faHZt X2luaXRfaHlwZXJjYWxsX3N0dWJzKGluaXRfdHlwZSk7CisJaWYgKGluaXRfdHlwZSAhPSBYRU5f SFZNX0lOSVRfQ0FOQ0VMTEVEX1NVU1BFTkQpIHsKKwkJZXJyb3IgPSB4ZW5faHZtX2luaXRfaHlw ZXJjYWxsX3N0dWJzKGluaXRfdHlwZSk7CisJfQogCiAJc3dpdGNoIChpbml0X3R5cGUpIHsKIAlj YXNlIFhFTl9IVk1fSU5JVF9DT0xEOgpAQCAtMzMxLDYgKzMzMCw4IEBAIHhlbl9odm1faW5pdChl bnVtIHhlbl9odm1faW5pdF90eXBlIGluaXRfdHlwZSkKIAkJQ1BVX0ZPUkVBQ0goaSkKIAkJCURQ Q1BVX0lEX1NFVChpLCB2Y3B1X2luZm8sIE5VTEwpOwogCQlicmVhazsKKwljYXNlIFhFTl9IVk1f SU5JVF9DQU5DRUxMRURfU1VTUEVORDoKKwkJYnJlYWs7CiAJZGVmYXVsdDoKIAkJcGFuaWMoIlVu c3VwcG9ydGVkIEhWTSBpbml0aWFsaXphdGlvbiB0eXBlIik7CiAJfQpAQCAtMzQ0LDcgKzM0NSw5 IEBAIHhlbl9odm1faW5pdChlbnVtIHhlbl9odm1faW5pdF90eXBlIGluaXRfdHlwZSkKIAkgKiBp cyBwYXNzZWQgaW5zaWRlIHRoZSBzdGFydF9pbmZvIHN0cnVjdCBhbmQgaXMgYWxyZWFkeSBzZXQs IHNvIHRoaXMKIAkgKiBmdW5jdGlvbnMgYXJlIG5vLW9wcy4KIAkgKi8KLQl4ZW5faHZtX2luaXRf c2hhcmVkX2luZm9fcGFnZSgpOworCWlmIChpbml0X3R5cGUgIT0gWEVOX0hWTV9JTklUX0NBTkNF TExFRF9TVVNQRU5EKSB7CisJCXhlbl9odm1faW5pdF9zaGFyZWRfaW5mb19wYWdlKCk7CisJfQog CXhlbl9odm1fZGlzYWJsZV9lbXVsYXRlZF9kZXZpY2VzKCk7CiB9IAogCkBAIC0zNjEsNyArMzY0 LDggQEAgeGVuX2h2bV9yZXN1bWUoYm9vbCBzdXNwZW5kX2NhbmNlbGxlZCkKIAkgICAgWEVOX0hW TV9JTklUX0NBTkNFTExFRF9TVVNQRU5EIDogWEVOX0hWTV9JTklUX1JFU1VNRSk7CiAKIAkvKiBS ZWdpc3RlciB2Y3B1X2luZm8gYXJlYSBmb3IgQ1BVIzAuICovCi0JeGVuX2h2bV9jcHVfaW5pdCgp OworCWlmKCFzdXNwZW5kX2NhbmNlbGxlZCkKKwkJeGVuX2h2bV9jcHVfaW5pdCgpOwogfQogIAog c3RhdGljIHZvaWQKZGlmZiAtLWdpdCBhL3hlbi94ZW5idXMveGVuYnVzYi5jIGIveGVuL3hlbmJ1 cy94ZW5idXNiLmMKaW5kZXggM2EwZTU0My4uZmE5YmE2MSAxMDA2NDQKLS0tIGEveGVuL3hlbmJ1 cy94ZW5idXNiLmMKKysrIGIveGVuL3hlbmJ1cy94ZW5idXNiLmMKQEAgLTc5MSwyOSArNzkxLDMy IEBAIHhlbmJ1c2JfcmVzdW1lKGRldmljZV90IGRldikKIAkJCWlmIChkZXZpY2VfZ2V0X3N0YXRl KGtpZHNbaV0pID09IERTX05PVFBSRVNFTlQpCiAJCQkJY29udGludWU7CiAKLQkJCWl2YXJzID0g ZGV2aWNlX2dldF9pdmFycyhraWRzW2ldKTsKKwkJCWlmKCFnX3N1c3BlbmRfY2FuY2VsbGVkKSB7 CisJCQkJaXZhcnMgPSBkZXZpY2VfZ2V0X2l2YXJzKGtpZHNbaV0pOwogCi0JCQl4c191bnJlZ2lz dGVyX3dhdGNoKCZpdmFycy0+eGRfb3RoZXJlbmRfd2F0Y2gpOwotCQkJeGVuYnVzX3NldF9zdGF0 ZShraWRzW2ldLCBYZW5idXNTdGF0ZUluaXRpYWxpc2luZyk7CisJCQkJeHNfdW5yZWdpc3Rlcl93 YXRjaCgmaXZhcnMtPnhkX290aGVyZW5kX3dhdGNoKTsKKwkJCQl4ZW5idXNfc2V0X3N0YXRlKGtp ZHNbaV0sIFhlbmJ1c1N0YXRlSW5pdGlhbGlzaW5nKTsKIAotCQkJLyoKLQkJCSAqIEZpbmQgdGhl IG5ldyBiYWNrZW5kIGRldGFpbHMgYW5kCi0JCQkgKiByZS1yZWdpc3RlciBvdXIgd2F0Y2guCi0J CQkgKi8KLQkJCWVycm9yID0gWEVOQlVTQl9HRVRfT1RIRVJFTkRfTk9ERShkZXYsIGl2YXJzKTsK LQkJCWlmIChlcnJvcikKLQkJCQlyZXR1cm4gKGVycm9yKTsKKwkJCQkvKgorCQkJCSAqIEZpbmQg dGhlIG5ldyBiYWNrZW5kIGRldGFpbHMgYW5kCisJCQkJICogcmUtcmVnaXN0ZXIgb3VyIHdhdGNo LgorCQkJCSAqLworCQkJCWVycm9yID0gWEVOQlVTQl9HRVRfT1RIRVJFTkRfTk9ERShkZXYsIGl2 YXJzKTsKKwkJCQlpZiAoZXJyb3IpCisJCQkJCXJldHVybiAoZXJyb3IpOwogCi0JCQlzdGF0ZXBh dGggPSBtYWxsb2MoaXZhcnMtPnhkX290aGVyZW5kX3BhdGhfbGVuCi0JCQkgICAgKyBzdHJsZW4o Ii9zdGF0ZSIpICsgMSwgTV9YRU5CVVMsIE1fV0FJVE9LKTsKLQkJCXNwcmludGYoc3RhdGVwYXRo LCAiJXMvc3RhdGUiLCBpdmFycy0+eGRfb3RoZXJlbmRfcGF0aCk7CisJCQkJc3RhdGVwYXRoID0g bWFsbG9jKGl2YXJzLT54ZF9vdGhlcmVuZF9wYXRoX2xlbgorCQkJCSAgICArIHN0cmxlbigiL3N0 YXRlIikgKyAxLCBNX1hFTkJVUywgTV9XQUlUT0spOworCQkJCXNwcmludGYoc3RhdGVwYXRoLCAi JXMvc3RhdGUiLCBpdmFycy0+eGRfb3RoZXJlbmRfcGF0aCk7CiAKLQkJCWZyZWUoaXZhcnMtPnhk X290aGVyZW5kX3dhdGNoLm5vZGUsIE1fWEVOQlVTKTsKLQkJCWl2YXJzLT54ZF9vdGhlcmVuZF93 YXRjaC5ub2RlID0gc3RhdGVwYXRoOworCQkJCWZyZWUoaXZhcnMtPnhkX290aGVyZW5kX3dhdGNo Lm5vZGUsIE1fWEVOQlVTKTsKKwkJCQlpdmFycy0+eGRfb3RoZXJlbmRfd2F0Y2gubm9kZSA9IHN0 YXRlcGF0aDsKKwkJCX0KIAogCQkJREVWSUNFX1JFU1VNRShraWRzW2ldKTsKIAotCQkJeHNfcmVn aXN0ZXJfd2F0Y2goJml2YXJzLT54ZF9vdGhlcmVuZF93YXRjaCk7CisJCQlpZighZ19zdXNwZW5k X2NhbmNlbGxlZCkKKwkJCQl4c19yZWdpc3Rlcl93YXRjaCgmaXZhcnMtPnhkX290aGVyZW5kX3dh dGNoKTsKICNpZiAwCiAJCQkvKgogCQkJICogQ2FuJ3QgZG8gdGhpcyB5ZXQgc2luY2Ugd2UgYXJl IHJ1bm5pbmcgaW4KZGlmZiAtLWdpdCBhL3hlbi94ZW5idXMveGVuYnVzdmFyLmggYi94ZW4veGVu YnVzL3hlbmJ1c3Zhci5oCmluZGV4IDM3N2Q2MGMuLjAyYTViZmEgMTAwNjQ0Ci0tLSBhL3hlbi94 ZW5idXMveGVuYnVzdmFyLmgKKysrIGIveGVuL3hlbmJ1cy94ZW5idXN2YXIuaApAQCAtOTksNiAr OTksOCBAQCBYRU5CVVNfQUNDRVNTT1Ioc3RhdGUsCQlTVEFURSwJCQllbnVtIHhlbmJ1c19zdGF0 ZSkKIFhFTkJVU19BQ0NFU1NPUihvdGhlcmVuZF9pZCwJT1RIRVJFTkRfSUQsCQlpbnQpCiBYRU5C VVNfQUNDRVNTT1Iob3RoZXJlbmRfcGF0aCwJT1RIRVJFTkRfUEFUSCwJCWNvbnN0IGNoYXIgKikK IAorYm9vbCBnX3N1c3BlbmRfY2FuY2VsbGVkOworCiAvKioKICAqIFJldHVybiB0aGUgc3RhdGUg b2YgYSBYZW5CdXMgZGV2aWNlLgogICoKLS0gCjIuMTEuMC53aW5kb3dzLjMKCg== --_004_3655E9A8B903724782E1F75DCFD74E6B0122A2DC2Fszxema506mbsc_ Content-Type: application/octet-stream; name="0002-a userspace application need wait until stop_all_proc has finished during live migration.patch" Content-Description: 0002-a userspace application need wait until stop_all_proc has finished during live migration.patch Content-Disposition: attachment; filename="0002-a userspace application need wait until stop_all_proc has finished during live migration.patch"; size=2980; creation-date="Thu, 02 Feb 2017 17:57:58 GMT"; modification-date="Thu, 02 Feb 2017 18:39:11 GMT" Content-Transfer-Encoding: base64 RnJvbSBmNGEwNjYwY2U3N2Y3MmUwZDBjMDhmMzMxNmVkNGQ4Zjc4ZjFiOGFiIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBsaXV5aW5nZG9uZyA8bGl1eWluZ2RvbmdAaHVhd2VpLmNvbT4K RGF0ZTogVGh1LCAyIEZlYiAyMDE3IDE4OjUxOjA4ICswMjAwClN1YmplY3Q6IElmIHRoZXJlIGlz IGEgdXNlciBwcm9jZXNzIHdoaWNoIG1heWJlIG9mdGVuIHJlYWRzIGFuZCB3cml0ZXMgeGVuc3Rv cmUsIHRoZSBhcHBsaWNhdGlvbiBoYXMgYmVlbiBzdXNwZW5kZWQgCmFmdGVyIHN0b3BfYWxsX3By b2MgaXMgY2FsbGVkLiBJdCBoZWxkIHhzLnJlcXVlc3RfbXV0ZXggbG9jayBidXQgaW4gdGhlIGZv bGxvd2luZyBmdW5jdGlvbnMgCnhzX3dyaXRlIGFuZCB4c19zdXNwZW5kIHdpbGwgbm90IGdldCB0 aGUgbG9jay4gU28gdGhlIFZNIHdpbGwgaGFuZy4gCkluIG9yZGVyIHRvIHByZXZlbnQgdGhpcyBm cm9tIGhhcHBlbmluZywgdGhpcyBwcm9jZXNzIG5lZWQgd2FpdCAKdW50aWwgc3RvcF9hbGxfcHJv YyBoYXMgZmluaXNoZWQgZHVyaW5nIGxpdmUgbWlncmF0aW9uLgoKLS0tCiBkZXYveGVuL2NvbnRy b2wvY29udHJvbC5jICAgICAgICB8ICAyICsrCiBkZXYveGVuL3hlbnN0b3JlL3hlbnN0b3JlLmMg ICAgICB8IDMxICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIGRldi94ZW4veGVuc3Rv cmUveGVuc3RvcmVfZGV2LmMgIHwgIDcgKysrKysrKwogeGVuL3hlbnN0b3JlL3hlbnN0b3JlX2lu dGVybmFsLmggfCAgNCArKysrCiA0IGZpbGVzIGNoYW5nZWQsIDQ0IGluc2VydGlvbnMoKykKCmRp ZmYgLS1naXQgYS9kZXYveGVuL2NvbnRyb2wvY29udHJvbC5jIGIvZGV2L3hlbi9jb250cm9sL2Nv bnRyb2wuYwppbmRleCBhZTEzYzZjLi41OGZlZmNjIDEwMDY0NAotLS0gYS9kZXYveGVuL2NvbnRy b2wvY29udHJvbC5jCisrKyBiL2Rldi94ZW4vY29udHJvbC9jb250cm9sLmMKQEAgLTE5OSw3ICsx OTksOSBAQCB4Y3RybF9zdXNwZW5kKCkKIAlpbnQgc3VzcGVuZF9jYW5jZWxsZWQ7CiAKIAlFVkVO VEhBTkRMRVJfSU5WT0tFKHBvd2VyX3N1c3BlbmRfZWFybHkpOworCXhzX2xvY2soKTsKIAlzdG9w X2FsbF9wcm9jKCk7CisJeHNfdW5sb2NrKCk7CiAJRVZFTlRIQU5ETEVSX0lOVk9LRShwb3dlcl9z dXNwZW5kKTsKIAogI2lmZGVmIEVBUkxZX0FQX1NUQVJUVVAKZGlmZiAtLWdpdCBhL2Rldi94ZW4v eGVuc3RvcmUveGVuc3RvcmUuYyBiL2Rldi94ZW4veGVuc3RvcmUveGVuc3RvcmUuYwppbmRleCA0 Zjg5Yjc0Li5kNDRmMDY0IDEwMDY0NAotLS0gYS9kZXYveGVuL3hlbnN0b3JlL3hlbnN0b3JlLmMK KysrIGIvZGV2L3hlbi94ZW5zdG9yZS94ZW5zdG9yZS5jCkBAIC0xMjU1LDYgKzEyNTUsMzcgQEAg eHNfc3VzcGVuZChkZXZpY2VfdCBkZXYpCiAJcmV0dXJuICgwKTsKIH0KIAoraW50Cit4c190cnlf bG9jayh2b2lkKQoreworCS8qCisJc3hfdHJ5X3Nsb2NrKCkgYW5kIHN4X3RyeV94bG9jaygpIHdp bGwgcmV0dXJuIDAgaWYgdGhlIHNoYXJlZC9leGNsdXNpdmUKKwkJIGxvY2sgY2Fubm90IGJlIGFj cXVpcmVkIGltbWVkaWF0ZWx5OyBvdGhlcndpc2UgdGhlIHNoYXJlZC9leGNsdXNpdmUgbG9jawor CQkgd2lsbCBiZSBhY3F1aXJlZCBhbmQgYSBub24temVybyB2YWx1ZSB3aWxsIGJlIHJldHVybmVk LgorCSovCisJcmV0dXJuIHN4X3RyeV94bG9jaygmeHMucmVxdWVzdF9tdXRleCk7Cit9CisKKy8q KgorIHhzX2xvY2sgYmVmb3JlIHN0b3BfYWxsX3Byb2MKKyAqLwordm9pZAoreHNfbG9jayh2b2lk KQoreworCXN4X3hsb2NrKCZ4cy5yZXF1ZXN0X211dGV4KTsKKwlyZXR1cm47Cit9CisKKy8qKgor IHhzX3VubG9jayBhZnRlciBzdG9wX2FsbF9wcm9jCisgKi8KK3ZvaWQKK3hzX3VubG9jayh2b2lk KQoreworCXN4X3h1bmxvY2soJnhzLnJlcXVlc3RfbXV0ZXgpOworCXJldHVybjsKK30KKwogLyoq CiAgKiBSZXN1bWUgWGVuU3RvcmUgb3BlcmF0aW9ucyBhZnRlciB0aGlzIFZNIGlzIHJlc3VtZWQu CiAgKi8KZGlmZiAtLWdpdCBhL2Rldi94ZW4veGVuc3RvcmUveGVuc3RvcmVfZGV2LmMgYi9kZXYv eGVuL3hlbnN0b3JlL3hlbnN0b3JlX2Rldi5jCmluZGV4IGNlNjIxNDAuLmQ2Yjk3YzAgMTAwNjQ0 Ci0tLSBhL2Rldi94ZW4veGVuc3RvcmUveGVuc3RvcmVfZGV2LmMKKysrIGIvZGV2L3hlbi94ZW5z dG9yZS94ZW5zdG9yZV9kZXYuYwpAQCAtMTI4LDYgKzEyOCwxMyBAQCB4c19kZXZfd3JpdGUoc3Ry dWN0IGNkZXYgKmRldiwgc3RydWN0IHVpbyAqdWlvLCBpbnQgaW9mbGFnKQogCWlmIChlcnJvciAh PSAwKQogCQlyZXR1cm4gKGVycm9yKTsKIAorCXdoaWxlKCF4c190cnlfbG9jaygpKSB7CisJCWVy cm9yID0gdHNsZWVwKHUsIFBDQVRDSCwgInhzZHdyaXRlIiwgaHovMTApOworCQlpZiAoZXJyb3Ig JiYgZXJyb3IgIT0gRVdPVUxEQkxPQ0spCisJCQlyZXR1cm4gKGVycm9yKTsKKwl9CisJeHNfdW5s b2NrKCk7CisKIAlpZiAoKGxlbiArIHUtPmxlbikgPiBzaXplb2YodS0+dS5idWZmZXIpKQogCQly ZXR1cm4gKEVJTlZBTCk7CiAKZGlmZiAtLWdpdCBhL3hlbi94ZW5zdG9yZS94ZW5zdG9yZV9pbnRl cm5hbC5oIGIveGVuL3hlbnN0b3JlL3hlbnN0b3JlX2ludGVybmFsLmgKaW5kZXggMzM1NWMyNy4u MzFkYjkzNSAxMDA2NDQKLS0tIGEveGVuL3hlbnN0b3JlL3hlbnN0b3JlX2ludGVybmFsLmgKKysr IGIveGVuL3hlbnN0b3JlL3hlbnN0b3JlX2ludGVybmFsLmgKQEAgLTM0LDMgKzM0LDcgQEAKIAog LyogVXNlZCBieSB0aGUgWGVuU3RvcmUgY2hhcmFjdGVyIGRldmljZSB0byBib3Jyb3cga2VybmVs J3Mgc3RvcmUgY29ubmVjdGlvbi4gKi8KIGludCB4c19kZXZfcmVxdWVzdF9hbmRfcmVwbHkoc3Ry dWN0IHhzZF9zb2NrbXNnICptc2csIHZvaWQgKipyZXN1bHQpOworCitpbnQgeHNfdHJ5X2xvY2so dm9pZCk7Cit2b2lkIHhzX2xvY2sodm9pZCk7Cit2b2lkIHhzX3VubG9jayh2b2lkKTsKLS0gCjIu MTEuMC53aW5kb3dzLjMKCg== --_004_3655E9A8B903724782E1F75DCFD74E6B0122A2DC2Fszxema506mbsc_ Content-Type: application/octet-stream; name="0003-wrong order of device resume causes virtual machine to become unresponsive after live migration.patch" Content-Description: 0003-wrong order of device resume causes virtual machine to become unresponsive after live migration.patch Content-Disposition: attachment; filename="0003-wrong order of device resume causes virtual machine to become unresponsive after live migration.patch"; size=886; creation-date="Thu, 02 Feb 2017 17:58:01 GMT"; modification-date="Thu, 02 Feb 2017 18:38:29 GMT" Content-Transfer-Encoding: base64 RnJvbSA3ODIxNWMwYjExN2ZiN2I2NTFjZjdlNTdhNmEzMjM0MDc0MTNkZGRlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBsaXV5aW5nZG9uZyA8bGl1eWluZ2RvbmdAaHVhd2VpLmNvbT4K RGF0ZTogVGh1LCAyIEZlYiAyMDE3IDE5OjUyOjMzICswMjAwClN1YmplY3Q6IEJlY2F1c2Ugd3Jv bmcgb3JkZXIgb2YgZGV2aWNlIHJlc3VtZSwgVk0gd2lsbCBoYW5nIGFmdGVyIGxpdmUgbWlncmF0 aW9uLiAKYXR0YWNoIHRoZSBYZW4gUFYgdGltZXIgdG8gdGhlIG5leHVzIGRpcmVjdGx5IGFzIGl0 IHdhcyBkb25lIGJlZm9yZS4KCi0tLQogZGV2L3hlbi90aW1lci90aW1lci5jIHwgNCArKy0tCiAx IGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdp dCBhL2Rldi94ZW4vdGltZXIvdGltZXIuYyBiL2Rldi94ZW4vdGltZXIvdGltZXIuYwppbmRleCAw YjI2ODQ3Li5hZThmNjAzIDEwMDY0NAotLS0gYS9kZXYveGVuL3RpbWVyL3RpbWVyLmMKKysrIGIv ZGV2L3hlbi90aW1lci90aW1lci5jCkBAIC01NDYsNSArNTQ2LDUgQEAgc3RhdGljIGRyaXZlcl90 IHhlbnRpbWVyX2RyaXZlciA9IHsKIAlzaXplb2Yoc3RydWN0IHhlbnRpbWVyX3NvZnRjKSwKIH07 CiAKLURSSVZFUl9NT0RVTEUoeGVudGltZXIsIHhlbnB2LCB4ZW50aW1lcl9kcml2ZXIsIHhlbnRp bWVyX2RldmNsYXNzLCAwLCAwKTsKLU1PRFVMRV9ERVBFTkQoeGVudGltZXIsIHhlbnB2LCAxLCAx LCAxKTsKK0RSSVZFUl9NT0RVTEUoeGVudGltZXIsIG5leHVzLCB4ZW50aW1lcl9kcml2ZXIsIHhl bnRpbWVyX2RldmNsYXNzLCAwLCAwKTsKK01PRFVMRV9ERVBFTkQoeGVudGltZXIsIG5leHVzLCAx LCAxLCAxKTsKLS0gCjIuMTEuMC53aW5kb3dzLjMKCg== --_004_3655E9A8B903724782E1F75DCFD74E6B0122A2DC2Fszxema506mbsc_--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?3655E9A8B903724782E1F75DCFD74E6B0122A2DC2F>