Re: [PATCH 10/10] fs: replace mmap hook with .mmap_prepare for simple mappings

Viacheslav Dubeyko <[email protected]>
Newsgroups gmane.linux.kernel.aio.general,gmane.comp.file-systems.coda.general,gmane.comp.video.dri.devel,gmane.linux.file-systems.union,gmane.comp.file-systems.ecryptfs.general,gmane.comp.file-systems.nilfs.user,gmane.linux.kernel,gmane.comp.freedesktop.xorg.drivers.intel,gmane.linux.block,gmane.linux.drivers.mtd,gmane.linux.nfs,gmane.comp.file-systems.ext4,gmane.linux.file-systems.f2fs,gmane.comp.file-systems.btrfs,gmane.linux.kernel.cifs,gmane.linux.file-systems,gmane.linux.hardware.karma.devel,gmane.comp.file-systems.ceph.devel,gmane.network.samba.internals,gmane.linux.uml.devel,gmane.linux.kernel.mm
Message-ID <[email protected]>
T24gTW9uLCAyMDI1LTA2LTE2IGF0IDIwOjMzICswMTAwLCBMb3JlbnpvIFN0b2FrZXMgd3JvdGU6
DQo+IFNpbmNlIGNvbW1pdCBjODRiZjZkZDJiODMgKCJtbTogaW50cm9kdWNlIG5ldyAubW1hcF9w
cmVwYXJlKCkgZmlsZQ0KPiBjYWxsYmFjayIpLCB0aGUgZl9vcC0+bW1hcCgpIGhvb2sgaGFzIGJl
ZW4gZGVwcmVjYXRlZCBpbiBmYXZvdXIgb2YNCj4gZl9vcC0+bW1hcF9wcmVwYXJlKCkuDQo+IA0K
PiBUaGlzIGNhbGxiYWNrIGlzIGludm9rZWQgaW4gdGhlIG1tYXAoKSBsb2dpYyBmYXIgZWFybGll
ciwgc28gZXJyb3IgaGFuZGxpbmcNCj4gY2FuIGJlIHBlcmZvcm1lZCBtb3JlIHNhZmVseSB3aXRo
b3V0IGNvbXBsaWNhdGVkIGFuZCBidWctcHJvbmUgc3RhdGUNCj4gdW53aW5kaW5nIHJlcXVpcmVk
IHNob3VsZCBhbiBlcnJvciBhcmlzZS4NCj4gDQo+IFRoaXMgaG9vayBhbHNvIGF2b2lkcyBwYXNz
aW5nIGEgcG9pbnRlciB0byBhIG5vdC15ZXQtY29ycmVjdGx5LWVzdGFibGlzaGVkDQo+IFZNQSBh
dm9pZGluZyBhbnkgaXNzdWVzIHdpdGggcmVmZXJlbmNpbmcgdGhpcyBkYXRhIHN0cnVjdHVyZS4N
Cj4gDQo+IEl0IHJhdGhlciBwcm92aWRlcyBhIHBvaW50ZXIgdG8gdGhlIG5ldyBzdHJ1Y3Qgdm1f
YXJlYV9kZXNjIGRlc2NyaXB0b3IgdHlwZQ0KPiB3aGljaCBjb250YWlucyBhbGwgcmVxdWlyZWQg
c3RhdGUgYW5kIGFsbG93cyBlYXN5IHNldHRpbmcgb2YgcmVxdWlyZWQNCj4gcGFyYW1ldGVycyB3
aXRob3V0IGFueSBjb25zaWRlcmF0aW9uIG5lZWRpbmcgdG8gYmUgcGFpZCB0byBsb2NraW5nIG9y
DQo+IHJlZmVyZW5jZSBjb3VudHMuDQo+IA0KPiBOb3RlIHRoYXQgbmVzdGVkIGZpbGVzeXN0ZW1z
IGxpa2Ugb3ZlcmxheWZzIGFyZSBjb21wYXRpYmxlIHdpdGggYW4NCj4gLm1tYXBfcHJlcGFyZSgp
IGNhbGxiYWNrIHNpbmNlIGNvbW1pdCBiYjY2NmI3YzI3MDcgKCJtbTogYWRkIG1tYXBfcHJlcGFy
ZSgpDQo+IGNvbXBhdGliaWxpdHkgbGF5ZXIgZm9yIG5lc3RlZCBmaWxlIHN5c3RlbXMiKS4NCj4g
DQo+IEluIHRoaXMgcGF0Y2ggd2UgYXBwbHkgdGhpcyBjaGFuZ2UgdG8gZmlsZSBzeXN0ZW1zIHdp
dGggcmVsYXRpdmVseSBzaW1wbGUNCj4gbW1hcCgpIGhvb2sgbG9naWMgLSBleGZhdCwgY2VwaCwg
ZjJmcywgYmNhY2hlZnMsIHpvbmVmcywgYnRyZnMsIG9jZnMyLA0KPiBvcmFuZ2VmcywgbmlsZnMy
LCByb21mcywgcmFtZnMgYW5kIGFpby4NCj4gDQo+IFNpZ25lZC1vZmYtYnk6IExvcmVuem8gU3Rv
YWtlcyA8bG9yZW56by5zdG9ha2VzQG9yYWNsZS5jb20+DQo+IC0tLQ0KPiAgZnMvYWlvLmMgICAg
ICAgICAgICAgIHwgIDggKysrKy0tLS0NCj4gIGZzL2JjYWNoZWZzL2ZzLmMgICAgICB8ICA4ICsr
KystLS0tDQo+ICBmcy9idHJmcy9maWxlLmMgICAgICAgfCAgNyArKysrLS0tDQo+ICBmcy9jZXBo
L2FkZHIuYyAgICAgICAgfCAgNSArKystLQ0KPiAgZnMvY2VwaC9maWxlLmMgICAgICAgIHwgIDIg
Ky0NCj4gIGZzL2NlcGgvc3VwZXIuaCAgICAgICB8ICAyICstDQo+ICBmcy9leGZhdC9maWxlLmMg
ICAgICAgfCAgNyArKysrLS0tDQo+ICBmcy9mMmZzL2ZpbGUuYyAgICAgICAgfCAgNyArKysrLS0t
DQo+ICBmcy9uaWxmczIvZmlsZS5jICAgICAgfCAgOCArKysrLS0tLQ0KPiAgZnMvb2NmczIvZmls
ZS5jICAgICAgIHwgIDQgKystLQ0KPiAgZnMvb2NmczIvbW1hcC5jICAgICAgIHwgIDUgKysrLS0N
Cj4gIGZzL29jZnMyL21tYXAuaCAgICAgICB8ICAyICstDQo+ICBmcy9vcmFuZ2Vmcy9maWxlLmMg
ICAgfCAxMCArKysrKystLS0tDQo+ICBmcy9yYW1mcy9maWxlLW5vbW11LmMgfCAxMiArKysrKyst
LS0tLS0NCj4gIGZzL3JvbWZzL21tYXAtbm9tbXUuYyB8ICA2ICsrKy0tLQ0KPiAgZnMvem9uZWZz
L2ZpbGUuYyAgICAgIHwgMTAgKysrKysrLS0tLQ0KPiAgMTYgZmlsZXMgY2hhbmdlZCwgNTYgaW5z
ZXJ0aW9ucygrKSwgNDcgZGVsZXRpb25zKC0pDQo+IA0KPiBkaWZmIC0tZ2l0IGEvZnMvYWlvLmMg
Yi9mcy9haW8uYw0KPiBpbmRleCA3OTNiN2IxNWVjNGIuLjdmYzdiNjIyMTMxMiAxMDA2NDQNCj4g
LS0tIGEvZnMvYWlvLmMNCj4gKysrIGIvZnMvYWlvLmMNCj4gQEAgLTM5MiwxNSArMzkyLDE1IEBA
IHN0YXRpYyBjb25zdCBzdHJ1Y3Qgdm1fb3BlcmF0aW9uc19zdHJ1Y3QgYWlvX3Jpbmdfdm1fb3Bz
ID0gew0KPiAgI2VuZGlmDQo+ICB9Ow0KPiAgDQo+IC1zdGF0aWMgaW50IGFpb19yaW5nX21tYXAo
c3RydWN0IGZpbGUgKmZpbGUsIHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hKQ0KPiArc3RhdGlj
IGludCBhaW9fcmluZ19tbWFwX3ByZXBhcmUoc3RydWN0IHZtX2FyZWFfZGVzYyAqZGVzYykNCj4g
IHsNCj4gLQl2bV9mbGFnc19zZXQodm1hLCBWTV9ET05URVhQQU5EKTsNCj4gLQl2bWEtPnZtX29w
cyA9ICZhaW9fcmluZ192bV9vcHM7DQo+ICsJZGVzYy0+dm1fZmxhZ3MgfD0gVk1fRE9OVEVYUEFO
RDsNCj4gKwlkZXNjLT52bV9vcHMgPSAmYWlvX3Jpbmdfdm1fb3BzOw0KPiAgCXJldHVybiAwOw0K
PiAgfQ0KPiAgDQo+ICBzdGF0aWMgY29uc3Qgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyBhaW9fcmlu
Z19mb3BzID0gew0KPiAtCS5tbWFwID0gYWlvX3JpbmdfbW1hcCwNCj4gKwkubW1hcF9wcmVwYXJl
ID0gYWlvX3JpbmdfbW1hcF9wcmVwYXJlLA0KPiAgfTsNCj4gIA0KPiAgI2lmIElTX0VOQUJMRUQo
Q09ORklHX01JR1JBVElPTikNCj4gZGlmZiAtLWdpdCBhL2ZzL2JjYWNoZWZzL2ZzLmMgYi9mcy9i
Y2FjaGVmcy9mcy5jDQo+IGluZGV4IDMwNjNhOGRkYzJkZi4uOWMyMjM4ZWRjMGUzIDEwMDY0NA0K
PiAtLS0gYS9mcy9iY2FjaGVmcy9mcy5jDQo+ICsrKyBiL2ZzL2JjYWNoZWZzL2ZzLmMNCj4gQEAg
LTE1NTMsMTEgKzE1NTMsMTEgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCB2bV9vcGVyYXRpb25zX3N0
cnVjdCBiY2hfdm1fb3BzID0gew0KPiAgCS5wYWdlX21rd3JpdGUgICA9IGJjaDJfcGFnZV9ta3dy
aXRlLA0KPiAgfTsNCj4gIA0KPiAtc3RhdGljIGludCBiY2gyX21tYXAoc3RydWN0IGZpbGUgKmZp
bGUsIHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hKQ0KPiArc3RhdGljIGludCBiY2gyX21tYXBf
cHJlcGFyZShzdHJ1Y3Qgdm1fYXJlYV9kZXNjICpkZXNjKQ0KPiAgew0KPiAtCWZpbGVfYWNjZXNz
ZWQoZmlsZSk7DQo+ICsJZmlsZV9hY2Nlc3NlZChkZXNjLT5maWxlKTsNCj4gIA0KPiAtCXZtYS0+
dm1fb3BzID0gJmJjaF92bV9vcHM7DQo+ICsJZGVzYy0+dm1fb3BzID0gJmJjaF92bV9vcHM7DQo+
ICAJcmV0dXJuIDA7DQo+ICB9DQo+ICANCj4gQEAgLTE3NDAsNyArMTc0MCw3IEBAIHN0YXRpYyBj
b25zdCBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIGJjaF9maWxlX29wZXJhdGlvbnMgPSB7DQo+ICAJ
Lmxsc2VlawkJPSBiY2gyX2xsc2VlaywNCj4gIAkucmVhZF9pdGVyCT0gYmNoMl9yZWFkX2l0ZXIs
DQo+ICAJLndyaXRlX2l0ZXIJPSBiY2gyX3dyaXRlX2l0ZXIsDQo+IC0JLm1tYXAJCT0gYmNoMl9t
bWFwLA0KPiArCS5tbWFwX3ByZXBhcmUJPSBiY2gyX21tYXBfcHJlcGFyZSwNCj4gIAkuZ2V0X3Vu
bWFwcGVkX2FyZWEgPSB0aHBfZ2V0X3VubWFwcGVkX2FyZWEsDQo+ICAJLmZzeW5jCQk9IGJjaDJf
ZnN5bmMsDQo+ICAJLnNwbGljZV9yZWFkCT0gZmlsZW1hcF9zcGxpY2VfcmVhZCwNCj4gZGlmZiAt
LWdpdCBhL2ZzL2J0cmZzL2ZpbGUuYyBiL2ZzL2J0cmZzL2ZpbGUuYw0KPiBpbmRleCA4Y2U2ZjQ1
ZjQ1ZTAuLjA2YmQzMGIzNWI5NSAxMDA2NDQNCj4gLS0tIGEvZnMvYnRyZnMvZmlsZS5jDQo+ICsr
KyBiL2ZzL2J0cmZzL2ZpbGUuYw0KPiBAQCAtMTk3OCwxNSArMTk3OCwxNiBAQCBzdGF0aWMgY29u
c3Qgc3RydWN0IHZtX29wZXJhdGlvbnNfc3RydWN0IGJ0cmZzX2ZpbGVfdm1fb3BzID0gew0KPiAg
CS5wYWdlX21rd3JpdGUJPSBidHJmc19wYWdlX21rd3JpdGUsDQo+ICB9Ow0KPiAgDQo+IC1zdGF0
aWMgaW50IGJ0cmZzX2ZpbGVfbW1hcChzdHJ1Y3QgZmlsZQkqZmlscCwgc3RydWN0IHZtX2FyZWFf
c3RydWN0ICp2bWEpDQo+ICtzdGF0aWMgaW50IGJ0cmZzX2ZpbGVfbW1hcF9wcmVwYXJlKHN0cnVj
dCB2bV9hcmVhX2Rlc2MgKmRlc2MpDQo+ICB7DQo+ICsJc3RydWN0IGZpbGUgKmZpbHAgPSBkZXNj
LT5maWxlOw0KPiAgCXN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nID0gZmlscC0+Zl9tYXBw
aW5nOw0KPiAgDQo+ICAJaWYgKCFtYXBwaW5nLT5hX29wcy0+cmVhZF9mb2xpbykNCj4gIAkJcmV0
dXJuIC1FTk9FWEVDOw0KPiAgDQo+ICAJZmlsZV9hY2Nlc3NlZChmaWxwKTsNCj4gLQl2bWEtPnZt
X29wcyA9ICZidHJmc19maWxlX3ZtX29wczsNCj4gKwlkZXNjLT52bV9vcHMgPSAmYnRyZnNfZmls
ZV92bV9vcHM7DQo+ICANCj4gIAlyZXR1cm4gMDsNCj4gIH0NCj4gQEAgLTM3NjUsNyArMzc2Niw3
IEBAIGNvbnN0IHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgYnRyZnNfZmlsZV9vcGVyYXRpb25zID0g
ew0KPiAgCS5zcGxpY2VfcmVhZAk9IGZpbGVtYXBfc3BsaWNlX3JlYWQsDQo+ICAJLndyaXRlX2l0
ZXIJPSBidHJmc19maWxlX3dyaXRlX2l0ZXIsDQo+ICAJLnNwbGljZV93cml0ZQk9IGl0ZXJfZmls
ZV9zcGxpY2Vfd3JpdGUsDQo+IC0JLm1tYXAJCT0gYnRyZnNfZmlsZV9tbWFwLA0KPiArCS5tbWFw
X3ByZXBhcmUJPSBidHJmc19maWxlX21tYXBfcHJlcGFyZSwNCj4gIAkub3BlbgkJPSBidHJmc19m
aWxlX29wZW4sDQo+ICAJLnJlbGVhc2UJPSBidHJmc19yZWxlYXNlX2ZpbGUsDQo+ICAJLmdldF91
bm1hcHBlZF9hcmVhID0gdGhwX2dldF91bm1hcHBlZF9hcmVhLA0KPiBkaWZmIC0tZ2l0IGEvZnMv
Y2VwaC9hZGRyLmMgYi9mcy9jZXBoL2FkZHIuYw0KPiBpbmRleCA2MGE2MjFiMDBjNjUuLjM3NTIy
MTM3YzM4MCAxMDA2NDQNCj4gLS0tIGEvZnMvY2VwaC9hZGRyLmMNCj4gKysrIGIvZnMvY2VwaC9h
ZGRyLmMNCj4gQEAgLTIzMzAsMTMgKzIzMzAsMTQgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCB2bV9v
cGVyYXRpb25zX3N0cnVjdCBjZXBoX3Ztb3BzID0gew0KPiAgCS5wYWdlX21rd3JpdGUJPSBjZXBo
X3BhZ2VfbWt3cml0ZSwNCj4gIH07DQo+ICANCj4gLWludCBjZXBoX21tYXAoc3RydWN0IGZpbGUg
KmZpbGUsIHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hKQ0KPiAraW50IGNlcGhfbW1hcF9wcmVw
YXJlKHN0cnVjdCB2bV9hcmVhX2Rlc2MgKmRlc2MpDQo+ICB7DQo+ICsJc3RydWN0IGZpbGUgKmZp
bGUgPSBkZXNjLT5maWxlOw0KPiAgCXN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nID0gZmls
ZS0+Zl9tYXBwaW5nOw0KPiAgDQo+ICAJaWYgKCFtYXBwaW5nLT5hX29wcy0+cmVhZF9mb2xpbykN
Cj4gIAkJcmV0dXJuIC1FTk9FWEVDOw0KPiAtCXZtYS0+dm1fb3BzID0gJmNlcGhfdm1vcHM7DQo+
ICsJZGVzYy0+dm1fb3BzID0gJmNlcGhfdm1vcHM7DQo+ICAJcmV0dXJuIDA7DQo+ICB9DQo+ICAN
Cj4gZGlmZiAtLWdpdCBhL2ZzL2NlcGgvZmlsZS5jIGIvZnMvY2VwaC9maWxlLmMNCj4gaW5kZXgg
ZDVjNjc0ZDJiYThhLi40MWI4ZWMzM2U4NjQgMTAwNjQ0DQo+IC0tLSBhL2ZzL2NlcGgvZmlsZS5j
DQo+ICsrKyBiL2ZzL2NlcGgvZmlsZS5jDQo+IEBAIC0zMTcwLDcgKzMxNzAsNyBAQCBjb25zdCBz
dHJ1Y3QgZmlsZV9vcGVyYXRpb25zIGNlcGhfZmlsZV9mb3BzID0gew0KPiAgCS5sbHNlZWsgPSBj
ZXBoX2xsc2VlaywNCj4gIAkucmVhZF9pdGVyID0gY2VwaF9yZWFkX2l0ZXIsDQo+ICAJLndyaXRl
X2l0ZXIgPSBjZXBoX3dyaXRlX2l0ZXIsDQo+IC0JLm1tYXAgPSBjZXBoX21tYXAsDQo+ICsJLm1t
YXBfcHJlcGFyZSA9IGNlcGhfbW1hcF9wcmVwYXJlLA0KPiAgCS5mc3luYyA9IGNlcGhfZnN5bmMs
DQo+ICAJLmxvY2sgPSBjZXBoX2xvY2ssDQo+ICAJLnNldGxlYXNlID0gc2ltcGxlX25vc2V0bGVh
c2UsDQo+IGRpZmYgLS1naXQgYS9mcy9jZXBoL3N1cGVyLmggYi9mcy9jZXBoL3N1cGVyLmgNCj4g
aW5kZXggYmIwZGIwY2M4MDAzLi5jZjE3NmFhYjBmODIgMTAwNjQ0DQo+IC0tLSBhL2ZzL2NlcGgv
c3VwZXIuaA0KPiArKysgYi9mcy9jZXBoL3N1cGVyLmgNCj4gQEAgLTEyODYsNyArMTI4Niw3IEBA
IGV4dGVybiB2b2lkIF9fY2VwaF90b3VjaF9mbW9kZShzdHJ1Y3QgY2VwaF9pbm9kZV9pbmZvICpj
aSwNCj4gIC8qIGFkZHIuYyAqLw0KPiAgZXh0ZXJuIGNvbnN0IHN0cnVjdCBhZGRyZXNzX3NwYWNl
X29wZXJhdGlvbnMgY2VwaF9hb3BzOw0KPiAgZXh0ZXJuIGNvbnN0IHN0cnVjdCBuZXRmc19yZXF1
ZXN0X29wcyBjZXBoX25ldGZzX29wczsNCj4gLWV4dGVybiBpbnQgY2VwaF9tbWFwKHN0cnVjdCBm
aWxlICpmaWxlLCBzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSk7DQo+ICtpbnQgY2VwaF9tbWFw
X3ByZXBhcmUoc3RydWN0IHZtX2FyZWFfZGVzYyAqZGVzYyk7DQo+ICBleHRlcm4gaW50IGNlcGhf
dW5pbmxpbmVfZGF0YShzdHJ1Y3QgZmlsZSAqZmlsZSk7DQo+ICBleHRlcm4gaW50IGNlcGhfcG9v
bF9wZXJtX2NoZWNrKHN0cnVjdCBpbm9kZSAqaW5vZGUsIGludCBuZWVkKTsNCj4gIGV4dGVybiB2
b2lkIGNlcGhfcG9vbF9wZXJtX2Rlc3Ryb3koc3RydWN0IGNlcGhfbWRzX2NsaWVudCogbWRzYyk7
DQoNCkxvb2tzIGdvb2QgZm9yIENlcGhGUy4NCg0KUmV2aWV3ZWQtYnk6IFZpYWNoZXNsYXYgRHVi
ZXlrbyA8U2xhdmEuRHViZXlrb0BpYm0uY29tPg0KDQpUaGFua3MsDQpTbGF2YS4NCg0KPiBkaWZm
IC0tZ2l0IGEvZnMvZXhmYXQvZmlsZS5jIGIvZnMvZXhmYXQvZmlsZS5jDQo+IGluZGV4IDg0MWE1
YjE4ZTNkZi4uZDYzMjEzYzhhODIzIDEwMDY0NA0KPiAtLS0gYS9mcy9leGZhdC9maWxlLmMNCj4g
KysrIGIvZnMvZXhmYXQvZmlsZS5jDQo+IEBAIC02ODMsMTMgKzY4MywxNCBAQCBzdGF0aWMgY29u
c3Qgc3RydWN0IHZtX29wZXJhdGlvbnNfc3RydWN0IGV4ZmF0X2ZpbGVfdm1fb3BzID0gew0KPiAg
CS5wYWdlX21rd3JpdGUJPSBleGZhdF9wYWdlX21rd3JpdGUsDQo+ICB9Ow0KPiAgDQo+IC1zdGF0
aWMgaW50IGV4ZmF0X2ZpbGVfbW1hcChzdHJ1Y3QgZmlsZSAqZmlsZSwgc3RydWN0IHZtX2FyZWFf
c3RydWN0ICp2bWEpDQo+ICtzdGF0aWMgaW50IGV4ZmF0X2ZpbGVfbW1hcF9wcmVwYXJlKHN0cnVj
dCB2bV9hcmVhX2Rlc2MgKmRlc2MpDQo+ICB7DQo+ICsJc3RydWN0IGZpbGUgKmZpbGUgPSBkZXNj
LT5maWxlOw0KPiAgCWlmICh1bmxpa2VseShleGZhdF9mb3JjZWRfc2h1dGRvd24oZmlsZV9pbm9k
ZShmaWxlKS0+aV9zYikpKQ0KPiAgCQlyZXR1cm4gLUVJTzsNCj4gIA0KPiAgCWZpbGVfYWNjZXNz
ZWQoZmlsZSk7DQo+IC0Jdm1hLT52bV9vcHMgPSAmZXhmYXRfZmlsZV92bV9vcHM7DQo+ICsJZGVz
Yy0+dm1fb3BzID0gJmV4ZmF0X2ZpbGVfdm1fb3BzOw0KPiAgCXJldHVybiAwOw0KPiAgfQ0KPiAg
DQo+IEBAIC03MTAsNyArNzExLDcgQEAgY29uc3Qgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyBleGZh
dF9maWxlX29wZXJhdGlvbnMgPSB7DQo+ICAjaWZkZWYgQ09ORklHX0NPTVBBVA0KPiAgCS5jb21w
YXRfaW9jdGwgPSBleGZhdF9jb21wYXRfaW9jdGwsDQo+ICAjZW5kaWYNCj4gLQkubW1hcAkJPSBl
eGZhdF9maWxlX21tYXAsDQo+ICsJLm1tYXBfcHJlcGFyZQk9IGV4ZmF0X2ZpbGVfbW1hcF9wcmVw
YXJlLA0KPiAgCS5mc3luYwkJPSBleGZhdF9maWxlX2ZzeW5jLA0KPiAgCS5zcGxpY2VfcmVhZAk9
IGV4ZmF0X3NwbGljZV9yZWFkLA0KPiAgCS5zcGxpY2Vfd3JpdGUJPSBpdGVyX2ZpbGVfc3BsaWNl
X3dyaXRlLA0KPiBkaWZmIC0tZ2l0IGEvZnMvZjJmcy9maWxlLmMgYi9mcy9mMmZzL2ZpbGUuYw0K
PiBpbmRleCA2YmQzZGU2NGYyYTguLjdhZjJiNDliN2U4YSAxMDA2NDQNCj4gLS0tIGEvZnMvZjJm
cy9maWxlLmMNCj4gKysrIGIvZnMvZjJmcy9maWxlLmMNCj4gQEAgLTUzMiw4ICs1MzIsOSBAQCBz
dGF0aWMgbG9mZl90IGYyZnNfbGxzZWVrKHN0cnVjdCBmaWxlICpmaWxlLCBsb2ZmX3Qgb2Zmc2V0
LCBpbnQgd2hlbmNlKQ0KPiAgCXJldHVybiAtRUlOVkFMOw0KPiAgfQ0KPiAgDQo+IC1zdGF0aWMg
aW50IGYyZnNfZmlsZV9tbWFwKHN0cnVjdCBmaWxlICpmaWxlLCBzdHJ1Y3Qgdm1fYXJlYV9zdHJ1
Y3QgKnZtYSkNCj4gK3N0YXRpYyBpbnQgZjJmc19maWxlX21tYXBfcHJlcGFyZShzdHJ1Y3Qgdm1f
YXJlYV9kZXNjICpkZXNjKQ0KPiAgew0KPiArCXN0cnVjdCBmaWxlICpmaWxlID0gZGVzYy0+Zmls
ZTsNCj4gIAlzdHJ1Y3QgaW5vZGUgKmlub2RlID0gZmlsZV9pbm9kZShmaWxlKTsNCj4gIA0KPiAg
CWlmICh1bmxpa2VseShmMmZzX2NwX2Vycm9yKEYyRlNfSV9TQihpbm9kZSkpKSkNCj4gQEAgLTU0
Myw3ICs1NDQsNyBAQCBzdGF0aWMgaW50IGYyZnNfZmlsZV9tbWFwKHN0cnVjdCBmaWxlICpmaWxl
LCBzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSkNCj4gIAkJcmV0dXJuIC1FT1BOT1RTVVBQOw0K
PiAgDQo+ICAJZmlsZV9hY2Nlc3NlZChmaWxlKTsNCj4gLQl2bWEtPnZtX29wcyA9ICZmMmZzX2Zp
bGVfdm1fb3BzOw0KPiArCWRlc2MtPnZtX29wcyA9ICZmMmZzX2ZpbGVfdm1fb3BzOw0KPiAgDQo+
ICAJZjJmc19kb3duX3JlYWQoJkYyRlNfSShpbm9kZSktPmlfc2VtKTsNCj4gIAlzZXRfaW5vZGVf
ZmxhZyhpbm9kZSwgRklfTU1BUF9GSUxFKTsNCj4gQEAgLTUzNzYsNyArNTM3Nyw3IEBAIGNvbnN0
IHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgZjJmc19maWxlX29wZXJhdGlvbnMgPSB7DQo+ICAJLmlv
cG9sbAkJPSBpb2NiX2Jpb19pb3BvbGwsDQo+ICAJLm9wZW4JCT0gZjJmc19maWxlX29wZW4sDQo+
ICAJLnJlbGVhc2UJPSBmMmZzX3JlbGVhc2VfZmlsZSwNCj4gLQkubW1hcAkJPSBmMmZzX2ZpbGVf
bW1hcCwNCj4gKwkubW1hcF9wcmVwYXJlCT0gZjJmc19maWxlX21tYXBfcHJlcGFyZSwNCj4gIAku
Zmx1c2gJCT0gZjJmc19maWxlX2ZsdXNoLA0KPiAgCS5mc3luYwkJPSBmMmZzX3N5bmNfZmlsZSwN
Cj4gIAkuZmFsbG9jYXRlCT0gZjJmc19mYWxsb2NhdGUsDQo+IGRpZmYgLS1naXQgYS9mcy9uaWxm
czIvZmlsZS5jIGIvZnMvbmlsZnMyL2ZpbGUuYw0KPiBpbmRleCAwZTNmYzViYTMzYzcuLjFiOGQ3
NTRkYjQ0ZCAxMDA2NDQNCj4gLS0tIGEvZnMvbmlsZnMyL2ZpbGUuYw0KPiArKysgYi9mcy9uaWxm
czIvZmlsZS5jDQo+IEBAIC0xMjUsMTAgKzEyNSwxMCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHZt
X29wZXJhdGlvbnNfc3RydWN0IG5pbGZzX2ZpbGVfdm1fb3BzID0gew0KPiAgCS5wYWdlX21rd3Jp
dGUJPSBuaWxmc19wYWdlX21rd3JpdGUsDQo+ICB9Ow0KPiAgDQo+IC1zdGF0aWMgaW50IG5pbGZz
X2ZpbGVfbW1hcChzdHJ1Y3QgZmlsZSAqZmlsZSwgc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWEp
DQo+ICtzdGF0aWMgaW50IG5pbGZzX2ZpbGVfbW1hcF9wcmVwYXJlKHN0cnVjdCB2bV9hcmVhX2Rl
c2MgKmRlc2MpDQo+ICB7DQo+IC0JZmlsZV9hY2Nlc3NlZChmaWxlKTsNCj4gLQl2bWEtPnZtX29w
cyA9ICZuaWxmc19maWxlX3ZtX29wczsNCj4gKwlmaWxlX2FjY2Vzc2VkKGRlc2MtPmZpbGUpOw0K
PiArCWRlc2MtPnZtX29wcyA9ICZuaWxmc19maWxlX3ZtX29wczsNCj4gIAlyZXR1cm4gMDsNCj4g
IH0NCj4gIA0KPiBAQCAtMTQ0LDcgKzE0NCw3IEBAIGNvbnN0IHN0cnVjdCBmaWxlX29wZXJhdGlv
bnMgbmlsZnNfZmlsZV9vcGVyYXRpb25zID0gew0KPiAgI2lmZGVmIENPTkZJR19DT01QQVQNCj4g
IAkuY29tcGF0X2lvY3RsCT0gbmlsZnNfY29tcGF0X2lvY3RsLA0KPiAgI2VuZGlmCS8qIENPTkZJ
R19DT01QQVQgKi8NCj4gLQkubW1hcAkJPSBuaWxmc19maWxlX21tYXAsDQo+ICsJLm1tYXBfcHJl
cGFyZQk9IG5pbGZzX2ZpbGVfbW1hcF9wcmVwYXJlLA0KPiAgCS5vcGVuCQk9IGdlbmVyaWNfZmls
ZV9vcGVuLA0KPiAgCS8qIC5yZWxlYXNlCT0gbmlsZnNfcmVsZWFzZV9maWxlLCAqLw0KPiAgCS5m
c3luYwkJPSBuaWxmc19zeW5jX2ZpbGUsDQo+IGRpZmYgLS1naXQgYS9mcy9vY2ZzMi9maWxlLmMg
Yi9mcy9vY2ZzMi9maWxlLmMNCj4gaW5kZXggMjA1NmNmMDhhYzFlLi4yMWQ3OTdjY2NjZDAgMTAw
NjQ0DQo+IC0tLSBhL2ZzL29jZnMyL2ZpbGUuYw0KPiArKysgYi9mcy9vY2ZzMi9maWxlLmMNCj4g
QEAgLTI4MDAsNyArMjgwMCw3IEBAIGNvbnN0IHN0cnVjdCBpbm9kZV9vcGVyYXRpb25zIG9jZnMy
X3NwZWNpYWxfZmlsZV9pb3BzID0gew0KPiAgICovDQo+ICBjb25zdCBzdHJ1Y3QgZmlsZV9vcGVy
YXRpb25zIG9jZnMyX2ZvcHMgPSB7DQo+ICAJLmxsc2VlawkJPSBvY2ZzMl9maWxlX2xsc2VlaywN
Cj4gLQkubW1hcAkJPSBvY2ZzMl9tbWFwLA0KPiArCS5tbWFwX3ByZXBhcmUJPSBvY2ZzMl9tbWFw
X3ByZXBhcmUsDQo+ICAJLmZzeW5jCQk9IG9jZnMyX3N5bmNfZmlsZSwNCj4gIAkucmVsZWFzZQk9
IG9jZnMyX2ZpbGVfcmVsZWFzZSwNCj4gIAkub3BlbgkJPSBvY2ZzMl9maWxlX29wZW4sDQo+IEBA
IC0yODUwLDcgKzI4NTAsNyBAQCBjb25zdCBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIG9jZnMyX2Rv
cHMgPSB7DQo+ICAgKi8NCj4gIGNvbnN0IHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgb2NmczJfZm9w
c19ub19wbG9ja3MgPSB7DQo+ICAJLmxsc2VlawkJPSBvY2ZzMl9maWxlX2xsc2VlaywNCj4gLQku
bW1hcAkJPSBvY2ZzMl9tbWFwLA0KPiArCS5tbWFwX3ByZXBhcmUJPSBvY2ZzMl9tbWFwX3ByZXBh
cmUsDQo+ICAJLmZzeW5jCQk9IG9jZnMyX3N5bmNfZmlsZSwNCj4gIAkucmVsZWFzZQk9IG9jZnMy
X2ZpbGVfcmVsZWFzZSwNCj4gIAkub3BlbgkJPSBvY2ZzMl9maWxlX29wZW4sDQo+IGRpZmYgLS1n
aXQgYS9mcy9vY2ZzMi9tbWFwLmMgYi9mcy9vY2ZzMi9tbWFwLmMNCj4gaW5kZXggNmEzMTRlOWYy
YjQ5Li41MGUyZmFmNjRjMTkgMTAwNjQ0DQo+IC0tLSBhL2ZzL29jZnMyL21tYXAuYw0KPiArKysg
Yi9mcy9vY2ZzMi9tbWFwLmMNCj4gQEAgLTE1OSw4ICsxNTksOSBAQCBzdGF0aWMgY29uc3Qgc3Ry
dWN0IHZtX29wZXJhdGlvbnNfc3RydWN0IG9jZnMyX2ZpbGVfdm1fb3BzID0gew0KPiAgCS5wYWdl
X21rd3JpdGUJPSBvY2ZzMl9wYWdlX21rd3JpdGUsDQo+ICB9Ow0KPiAgDQo+IC1pbnQgb2NmczJf
bW1hcChzdHJ1Y3QgZmlsZSAqZmlsZSwgc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWEpDQo+ICtp
bnQgb2NmczJfbW1hcF9wcmVwYXJlKHN0cnVjdCB2bV9hcmVhX2Rlc2MgKmRlc2MpDQo+ICB7DQo+
ICsJc3RydWN0IGZpbGUgKmZpbGUgPSBkZXNjLT5maWxlOw0KPiAgCWludCByZXQgPSAwLCBsb2Nr
X2xldmVsID0gMDsNCj4gIA0KPiAgCXJldCA9IG9jZnMyX2lub2RlX2xvY2tfYXRpbWUoZmlsZV9p
bm9kZShmaWxlKSwNCj4gQEAgLTE3MSw3ICsxNzIsNyBAQCBpbnQgb2NmczJfbW1hcChzdHJ1Y3Qg
ZmlsZSAqZmlsZSwgc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWEpDQo+ICAJfQ0KPiAgCW9jZnMy
X2lub2RlX3VubG9jayhmaWxlX2lub2RlKGZpbGUpLCBsb2NrX2xldmVsKTsNCj4gIG91dDoNCj4g
LQl2bWEtPnZtX29wcyA9ICZvY2ZzMl9maWxlX3ZtX29wczsNCj4gKwlkZXNjLT52bV9vcHMgPSAm
b2NmczJfZmlsZV92bV9vcHM7DQo+ICAJcmV0dXJuIDA7DQo+ICB9DQo+ICANCj4gZGlmZiAtLWdp
dCBhL2ZzL29jZnMyL21tYXAuaCBiL2ZzL29jZnMyL21tYXAuaA0KPiBpbmRleCAxMDUxNTA3Y2M2
ODQuLmQyMWMzMGRlNmI4YyAxMDA2NDQNCj4gLS0tIGEvZnMvb2NmczIvbW1hcC5oDQo+ICsrKyBi
L2ZzL29jZnMyL21tYXAuaA0KPiBAQCAtMiw2ICsyLDYgQEANCj4gICNpZm5kZWYgT0NGUzJfTU1B
UF9IDQo+ICAjZGVmaW5lIE9DRlMyX01NQVBfSA0KPiAgDQo+IC1pbnQgb2NmczJfbW1hcChzdHJ1
Y3QgZmlsZSAqZmlsZSwgc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWEpOw0KPiAraW50IG9jZnMy
X21tYXBfcHJlcGFyZShzdHJ1Y3Qgdm1fYXJlYV9kZXNjICpkZXNjKTsNCj4gIA0KPiAgI2VuZGlm
ICAvKiBPQ0ZTMl9NTUFQX0ggKi8NCj4gZGlmZiAtLWdpdCBhL2ZzL29yYW5nZWZzL2ZpbGUuYyBi
L2ZzL29yYW5nZWZzL2ZpbGUuYw0KPiBpbmRleCA5MGM0OWMwZGUyNDMuLjkxOWY5OWIxNjgzNCAx
MDA2NDQNCj4gLS0tIGEvZnMvb3JhbmdlZnMvZmlsZS5jDQo+ICsrKyBiL2ZzL29yYW5nZWZzL2Zp
bGUuYw0KPiBAQCAtMzk4LDggKzM5OCw5IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgdm1fb3BlcmF0
aW9uc19zdHJ1Y3Qgb3JhbmdlZnNfZmlsZV92bV9vcHMgPSB7DQo+ICAvKg0KPiAgICogTWVtb3J5
IG1hcCBhIHJlZ2lvbiBvZiBhIGZpbGUuDQo+ICAgKi8NCj4gLXN0YXRpYyBpbnQgb3JhbmdlZnNf
ZmlsZV9tbWFwKHN0cnVjdCBmaWxlICpmaWxlLCBzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSkN
Cj4gK3N0YXRpYyBpbnQgb3JhbmdlZnNfZmlsZV9tbWFwX3ByZXBhcmUoc3RydWN0IHZtX2FyZWFf
ZGVzYyAqZGVzYykNCj4gIHsNCj4gKwlzdHJ1Y3QgZmlsZSAqZmlsZSA9IGRlc2MtPmZpbGU7DQo+
ICAJaW50IHJldDsNCj4gIA0KPiAgCXJldCA9IG9yYW5nZWZzX3JldmFsaWRhdGVfbWFwcGluZyhm
aWxlX2lub2RlKGZpbGUpKTsNCj4gQEAgLTQxMCwxMCArNDExLDExIEBAIHN0YXRpYyBpbnQgb3Jh
bmdlZnNfZmlsZV9tbWFwKHN0cnVjdCBmaWxlICpmaWxlLCBzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3Qg
KnZtYSkNCj4gIAkJICAgICAib3JhbmdlZnNfZmlsZV9tbWFwOiBjYWxsZWQgb24gJXBEXG4iLCBm
aWxlKTsNCj4gIA0KPiAgCS8qIHNldCB0aGUgc2VxdWVudGlhbCByZWFkYWhlYWQgaGludCAqLw0K
PiAtCXZtX2ZsYWdzX21vZCh2bWEsIFZNX1NFUV9SRUFELCBWTV9SQU5EX1JFQUQpOw0KPiArCWRl
c2MtPnZtX2ZsYWdzIHw9IFZNX1NFUV9SRUFEOw0KPiArCWRlc2MtPnZtX2ZsYWdzICY9IH5WTV9S
QU5EX1JFQUQ7DQo+ICANCj4gIAlmaWxlX2FjY2Vzc2VkKGZpbGUpOw0KPiAtCXZtYS0+dm1fb3Bz
ID0gJm9yYW5nZWZzX2ZpbGVfdm1fb3BzOw0KPiArCWRlc2MtPnZtX29wcyA9ICZvcmFuZ2Vmc19m
aWxlX3ZtX29wczsNCj4gIAlyZXR1cm4gMDsNCj4gIH0NCj4gIA0KPiBAQCAtNTc0LDcgKzU3Niw3
IEBAIGNvbnN0IHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgb3JhbmdlZnNfZmlsZV9vcGVyYXRpb25z
ID0gew0KPiAgCS5yZWFkX2l0ZXIJPSBvcmFuZ2Vmc19maWxlX3JlYWRfaXRlciwNCj4gIAkud3Jp
dGVfaXRlcgk9IG9yYW5nZWZzX2ZpbGVfd3JpdGVfaXRlciwNCj4gIAkubG9jawkJPSBvcmFuZ2Vm
c19sb2NrLA0KPiAtCS5tbWFwCQk9IG9yYW5nZWZzX2ZpbGVfbW1hcCwNCj4gKwkubW1hcF9wcmVw
YXJlCT0gb3JhbmdlZnNfZmlsZV9tbWFwX3ByZXBhcmUsDQo+ICAJLm9wZW4JCT0gZ2VuZXJpY19m
aWxlX29wZW4sDQo+ICAJLnNwbGljZV9yZWFkICAgID0gb3JhbmdlZnNfZmlsZV9zcGxpY2VfcmVh
ZCwNCj4gIAkuc3BsaWNlX3dyaXRlICAgPSBpdGVyX2ZpbGVfc3BsaWNlX3dyaXRlLA0KPiBkaWZm
IC0tZ2l0IGEvZnMvcmFtZnMvZmlsZS1ub21tdS5jIGIvZnMvcmFtZnMvZmlsZS1ub21tdS5jDQo+
IGluZGV4IDdhNmQ5ODBlNjE0ZC4uNzdiOGNhMjc1N2UwIDEwMDY0NA0KPiAtLS0gYS9mcy9yYW1m
cy9maWxlLW5vbW11LmMNCj4gKysrIGIvZnMvcmFtZnMvZmlsZS1ub21tdS5jDQo+IEBAIC0yOCw3
ICsyOCw3IEBAIHN0YXRpYyB1bnNpZ25lZCBsb25nIHJhbWZzX25vbW11X2dldF91bm1hcHBlZF9h
cmVhKHN0cnVjdCBmaWxlICpmaWxlLA0KPiAgCQkJCQkJICAgdW5zaWduZWQgbG9uZyBsZW4sDQo+
ICAJCQkJCQkgICB1bnNpZ25lZCBsb25nIHBnb2ZmLA0KPiAgCQkJCQkJICAgdW5zaWduZWQgbG9u
ZyBmbGFncyk7DQo+IC1zdGF0aWMgaW50IHJhbWZzX25vbW11X21tYXAoc3RydWN0IGZpbGUgKmZp
bGUsIHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hKTsNCj4gK3N0YXRpYyBpbnQgcmFtZnNfbm9t
bXVfbW1hcF9wcmVwYXJlKHN0cnVjdCB2bV9hcmVhX2Rlc2MgKmRlc2MpOw0KPiAgDQo+ICBzdGF0
aWMgdW5zaWduZWQgcmFtZnNfbW1hcF9jYXBhYmlsaXRpZXMoc3RydWN0IGZpbGUgKmZpbGUpDQo+
ICB7DQo+IEBAIC0zOCw3ICszOCw3IEBAIHN0YXRpYyB1bnNpZ25lZCByYW1mc19tbWFwX2NhcGFi
aWxpdGllcyhzdHJ1Y3QgZmlsZSAqZmlsZSkNCj4gIA0KPiAgY29uc3Qgc3RydWN0IGZpbGVfb3Bl
cmF0aW9ucyByYW1mc19maWxlX29wZXJhdGlvbnMgPSB7DQo+ICAJLm1tYXBfY2FwYWJpbGl0aWVz
CT0gcmFtZnNfbW1hcF9jYXBhYmlsaXRpZXMsDQo+IC0JLm1tYXAJCQk9IHJhbWZzX25vbW11X21t
YXAsDQo+ICsJLm1tYXBfcHJlcGFyZQkJPSByYW1mc19ub21tdV9tbWFwX3ByZXBhcmUsDQo+ICAJ
LmdldF91bm1hcHBlZF9hcmVhCT0gcmFtZnNfbm9tbXVfZ2V0X3VubWFwcGVkX2FyZWEsDQo+ICAJ
LnJlYWRfaXRlcgkJPSBnZW5lcmljX2ZpbGVfcmVhZF9pdGVyLA0KPiAgCS53cml0ZV9pdGVyCQk9
IGdlbmVyaWNfZmlsZV93cml0ZV9pdGVyLA0KPiBAQCAtMjYyLDEyICsyNjIsMTIgQEAgc3RhdGlj
IHVuc2lnbmVkIGxvbmcgcmFtZnNfbm9tbXVfZ2V0X3VubWFwcGVkX2FyZWEoc3RydWN0IGZpbGUg
KmZpbGUsDQo+ICAvKg0KPiAgICogc2V0IHVwIGEgbWFwcGluZyBmb3Igc2hhcmVkIG1lbW9yeSBz
ZWdtZW50cw0KPiAgICovDQo+IC1zdGF0aWMgaW50IHJhbWZzX25vbW11X21tYXAoc3RydWN0IGZp
bGUgKmZpbGUsIHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hKQ0KPiArc3RhdGljIGludCByYW1m
c19ub21tdV9tbWFwX3ByZXBhcmUoc3RydWN0IHZtX2FyZWFfZGVzYyAqZGVzYykNCj4gIHsNCj4g
LQlpZiAoIWlzX25vbW11X3NoYXJlZF9tYXBwaW5nKHZtYS0+dm1fZmxhZ3MpKQ0KPiArCWlmICgh
aXNfbm9tbXVfc2hhcmVkX21hcHBpbmcoZGVzYy0+dm1fZmxhZ3MpKQ0KPiAgCQlyZXR1cm4gLUVO
T1NZUzsNCj4gIA0KPiAtCWZpbGVfYWNjZXNzZWQoZmlsZSk7DQo+IC0Jdm1hLT52bV9vcHMgPSAm
Z2VuZXJpY19maWxlX3ZtX29wczsNCj4gKwlmaWxlX2FjY2Vzc2VkKGRlc2MtPmZpbGUpOw0KPiAr
CWRlc2MtPnZtX29wcyA9ICZnZW5lcmljX2ZpbGVfdm1fb3BzOw0KPiAgCXJldHVybiAwOw0KPiAg
fQ0KPiBkaWZmIC0tZ2l0IGEvZnMvcm9tZnMvbW1hcC1ub21tdS5jIGIvZnMvcm9tZnMvbW1hcC1u
b21tdS5jDQo+IGluZGV4IDQ1MjBjYTQxMzg2Ny4uNGI3N2M2ZGM0NDE4IDEwMDY0NA0KPiAtLS0g
YS9mcy9yb21mcy9tbWFwLW5vbW11LmMNCj4gKysrIGIvZnMvcm9tZnMvbW1hcC1ub21tdS5jDQo+
IEBAIC02MSw5ICs2MSw5IEBAIHN0YXRpYyB1bnNpZ25lZCBsb25nIHJvbWZzX2dldF91bm1hcHBl
ZF9hcmVhKHN0cnVjdCBmaWxlICpmaWxlLA0KPiAgICogcGVybWl0IGEgUi9PIG1hcHBpbmcgdG8g
YmUgbWFkZSBkaXJlY3RseSB0aHJvdWdoIG9udG8gYW4gTVREIGRldmljZSBpZg0KPiAgICogcG9z
c2libGUNCj4gICAqLw0KPiAtc3RhdGljIGludCByb21mc19tbWFwKHN0cnVjdCBmaWxlICpmaWxl
LCBzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSkNCj4gK3N0YXRpYyBpbnQgcm9tZnNfbW1hcF9w
cmVwYXJlKHN0cnVjdCB2bV9hcmVhX2Rlc2MgKmRlc2MpDQo+ICB7DQo+IC0JcmV0dXJuIGlzX25v
bW11X3NoYXJlZF9tYXBwaW5nKHZtYS0+dm1fZmxhZ3MpID8gMCA6IC1FTk9TWVM7DQo+ICsJcmV0
dXJuIGlzX25vbW11X3NoYXJlZF9tYXBwaW5nKGRlc2MtPnZtX2ZsYWdzKSA/IDAgOiAtRU5PU1lT
Ow0KPiAgfQ0KPiAgDQo+ICBzdGF0aWMgdW5zaWduZWQgcm9tZnNfbW1hcF9jYXBhYmlsaXRpZXMo
c3RydWN0IGZpbGUgKmZpbGUpDQo+IEBAIC03OSw3ICs3OSw3IEBAIGNvbnN0IHN0cnVjdCBmaWxl
X29wZXJhdGlvbnMgcm9tZnNfcm9fZm9wcyA9IHsNCj4gIAkubGxzZWVrCQkJPSBnZW5lcmljX2Zp
bGVfbGxzZWVrLA0KPiAgCS5yZWFkX2l0ZXIJCT0gZ2VuZXJpY19maWxlX3JlYWRfaXRlciwNCj4g
IAkuc3BsaWNlX3JlYWQJCT0gZmlsZW1hcF9zcGxpY2VfcmVhZCwNCj4gLQkubW1hcAkJCT0gcm9t
ZnNfbW1hcCwNCj4gKwkubW1hcF9wcmVwYXJlCQk9IHJvbWZzX21tYXBfcHJlcGFyZSwNCj4gIAku
Z2V0X3VubWFwcGVkX2FyZWEJPSByb21mc19nZXRfdW5tYXBwZWRfYXJlYSwNCj4gIAkubW1hcF9j
YXBhYmlsaXRpZXMJPSByb21mc19tbWFwX2NhcGFiaWxpdGllcywNCj4gIH07DQo+IGRpZmYgLS1n
aXQgYS9mcy96b25lZnMvZmlsZS5jIGIvZnMvem9uZWZzL2ZpbGUuYw0KPiBpbmRleCA0MmUyYzAw
NjViYjMuLmMxODQ4MTYzYjM3OCAxMDA2NDQNCj4gLS0tIGEvZnMvem9uZWZzL2ZpbGUuYw0KPiAr
KysgYi9mcy96b25lZnMvZmlsZS5jDQo+IEBAIC0zMTIsOCArMzEyLDEwIEBAIHN0YXRpYyBjb25z
dCBzdHJ1Y3Qgdm1fb3BlcmF0aW9uc19zdHJ1Y3Qgem9uZWZzX2ZpbGVfdm1fb3BzID0gew0KPiAg
CS5wYWdlX21rd3JpdGUJPSB6b25lZnNfZmlsZW1hcF9wYWdlX21rd3JpdGUsDQo+ICB9Ow0KPiAg
DQo+IC1zdGF0aWMgaW50IHpvbmVmc19maWxlX21tYXAoc3RydWN0IGZpbGUgKmZpbGUsIHN0cnVj
dCB2bV9hcmVhX3N0cnVjdCAqdm1hKQ0KPiArc3RhdGljIGludCB6b25lZnNfZmlsZV9tbWFwX3By
ZXBhcmUoc3RydWN0IHZtX2FyZWFfZGVzYyAqZGVzYykNCj4gIHsNCj4gKwlzdHJ1Y3QgZmlsZSAq
ZmlsZSA9IGRlc2MtPmZpbGU7DQo+ICsNCj4gIAkvKg0KPiAgCSAqIENvbnZlbnRpb25hbCB6b25l
cyBhY2NlcHQgcmFuZG9tIHdyaXRlcywgc28gdGhlaXIgZmlsZXMgY2FuIHN1cHBvcnQNCj4gIAkg
KiBzaGFyZWQgd3JpdGFibGUgbWFwcGluZ3MuIEZvciBzZXF1ZW50aWFsIHpvbmUgZmlsZXMsIG9u
bHkgcmVhZA0KPiBAQCAtMzIxLDExICszMjMsMTEgQEAgc3RhdGljIGludCB6b25lZnNfZmlsZV9t
bWFwKHN0cnVjdCBmaWxlICpmaWxlLCBzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSkNCj4gIAkg
KiBvcmRlcmluZyBiZXR3ZWVuIG1zeW5jKCkgYW5kIHBhZ2UgY2FjaGUgd3JpdGViYWNrLg0KPiAg
CSAqLw0KPiAgCWlmICh6b25lZnNfaW5vZGVfaXNfc2VxKGZpbGVfaW5vZGUoZmlsZSkpICYmDQo+
IC0JICAgICh2bWEtPnZtX2ZsYWdzICYgVk1fU0hBUkVEKSAmJiAodm1hLT52bV9mbGFncyAmIFZN
X01BWVdSSVRFKSkNCj4gKwkgICAgKGRlc2MtPnZtX2ZsYWdzICYgVk1fU0hBUkVEKSAmJiAoZGVz
Yy0+dm1fZmxhZ3MgJiBWTV9NQVlXUklURSkpDQo+ICAJCXJldHVybiAtRUlOVkFMOw0KPiAgDQo+
ICAJZmlsZV9hY2Nlc3NlZChmaWxlKTsNCj4gLQl2bWEtPnZtX29wcyA9ICZ6b25lZnNfZmlsZV92
bV9vcHM7DQo+ICsJZGVzYy0+dm1fb3BzID0gJnpvbmVmc19maWxlX3ZtX29wczsNCj4gIA0KPiAg
CXJldHVybiAwOw0KPiAgfQ0KPiBAQCAtODUwLDcgKzg1Miw3IEBAIGNvbnN0IHN0cnVjdCBmaWxl
X29wZXJhdGlvbnMgem9uZWZzX2ZpbGVfb3BlcmF0aW9ucyA9IHsNCj4gIAkub3BlbgkJPSB6b25l
ZnNfZmlsZV9vcGVuLA0KPiAgCS5yZWxlYXNlCT0gem9uZWZzX2ZpbGVfcmVsZWFzZSwNCj4gIAku
ZnN5bmMJCT0gem9uZWZzX2ZpbGVfZnN5bmMsDQo+IC0JLm1tYXAJCT0gem9uZWZzX2ZpbGVfbW1h
cCwNCj4gKwkubW1hcF9wcmVwYXJlCT0gem9uZWZzX2ZpbGVfbW1hcF9wcmVwYXJlLA0KPiAgCS5s
bHNlZWsJCT0gem9uZWZzX2ZpbGVfbGxzZWVrLA0KPiAgCS5yZWFkX2l0ZXIJPSB6b25lZnNfZmls
ZV9yZWFkX2l0ZXIsDQo+ICAJLndyaXRlX2l0ZXIJPSB6b25lZnNfZmlsZV93cml0ZV9pdGVyLA0K

--
To unsubscribe, send a message with 'unsubscribe linux-aio' in
the body to [email protected].  For more info on Linux AIO,
see: http://www.kvack.org/aio/
Don't email: <a href=mailto:"[email protected]">[email protected]</a>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.