Skip site navigation (1)Skip section navigation (2)
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>