RE: [EXT] [PATCH 14/65] media: amphion: Delete v4l2_fh synchronously in .release()

Ming Qian <[email protected]> Tue, 5 Aug 2025 01:43:48 +0000
Newsgroups gmane.linux.ports.tegra,gmane.linux.drivers.video-input-infrastructure,gmane.linux.kernel,gmane.linux.documentation,gmane.linux.ports.arm.kernel,gmane.linux.ports.arm.mediatek,gmane.linux.kernel.renesas-soc,gmane.linux.ports.arm.msm,gmane.linux.kernel.samsung-soc,gmane.linux.usb.general,gmane.linux.ports.arm.rockchip,gmane.comp.video.mjpeg.user
Message-ID <PAXPR04MB825428409FEE27E0FEC0BF25E722A@PAXPR04MB8254.eurprd04.prod.outlook.com>
DQoNCj4tLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPkZyb206IEphY29wbyBNb25kaSA8amFj
b3BvLm1vbmRpQGlkZWFzb25ib2FyZC5jb20+DQo+U2VudDogU2F0dXJkYXksIEF1Z3VzdCAyLCAy
MDI1IDU6MjMgUE0NCj5UbzogTWF1cm8gQ2FydmFsaG8gQ2hlaGFiIDxtY2hlaGFiQGtlcm5lbC5v
cmc+OyBEZXZhcnNoIFRoYWtrYXINCj48ZGV2YXJzaHRAdGkuY29tPjsgQmVub2l0IFBhcnJvdCA8
YnBhcnJvdEB0aS5jb20+OyBIYW5zIFZlcmt1aWwNCj48aHZlcmt1aWxAa2VybmVsLm9yZz47IE1p
a2UgSXNlbHkgPGlzZWx5QHBvYm94LmNvbT47IExhdXJlbnQgUGluY2hhcnQNCj48bGF1cmVudC5w
aW5jaGFydEBpZGVhc29uYm9hcmQuY29tPjsgSGFucyBkZSBHb2VkZSA8aGFuc2dAa2VybmVsLm9y
Zz47DQo+UGFydGhpYmFuIFZlZXJhc29vcmFuIDxwYXJ0aGliYW4udmVlcmFzb29yYW5AbWljcm9j
aGlwLmNvbT47IENocmlzdGlhbg0KPkdyb21tIDxjaHJpc3RpYW4uZ3JvbW1AbWljcm9jaGlwLmNv
bT47IEdyZWcgS3JvYWgtSGFydG1hbg0KPjxncmVna2hAbGludXhmb3VuZGF0aW9uLm9yZz47IEFs
ZXggU2hpIDxhbGV4c0BrZXJuZWwub3JnPjsgWWFudGVuZyBTaQ0KPjxzaS55YW50ZW5nQGxpbnV4
LmRldj47IERvbmdsaWFuZyBNdSA8ZHptOTFAaHVzdC5lZHUuY24+OyBKb25hdGhhbg0KPkNvcmJl
dCA8Y29yYmV0QGx3bi5uZXQ+OyBUb21hc3ogRmlnYSA8dGZpZ2FAY2hyb21pdW0ub3JnPjsgTWFy
ZWsNCj5Tenlwcm93c2tpIDxtLnN6eXByb3dza2lAc2Ftc3VuZy5jb20+OyBBbmR5IFdhbGxzDQo+
PGF3YWxsc0BtZC5tZXRyb2Nhc3QubmV0PjsgTWljaGFlbCBUcmV0dGVyIDxtLnRyZXR0ZXJAcGVu
Z3V0cm9uaXguZGU+Ow0KPlBlbmd1dHJvbml4IEtlcm5lbCBUZWFtIDxrZXJuZWxAcGVuZ3V0cm9u
aXguZGU+OyBCaW4gTGl1DQo+PGJpbi5saXVAbWVkaWF0ZWsuY29tPjsgTWF0dGhpYXMgQnJ1Z2dl
ciA8bWF0dGhpYXMuYmdnQGdtYWlsLmNvbT47DQo+QW5nZWxvR2lvYWNjaGlubyBEZWwgUmVnbm8g
PGFuZ2Vsb2dpb2FjY2hpbm8uZGVscmVnbm9AY29sbGFib3JhLmNvbT47DQo+RG1pdHJ5IE9zaXBl
bmtvIDxkaWdldHhAZ21haWwuY29tPjsgVGhpZXJyeSBSZWRpbmcNCj48dGhpZXJyeS5yZWRpbmdA
Z21haWwuY29tPjsgSm9uYXRoYW4gSHVudGVyIDxqb25hdGhhbmhAbnZpZGlhLmNvbT47DQo+TWly
ZWxhIFJhYnVsZWEgPG1pcmVsYS5yYWJ1bGVhQG54cC5jb20+OyBTaGF3biBHdW8NCj48c2hhd25n
dW9Aa2VybmVsLm9yZz47IFNhc2NoYSBIYXVlciA8cy5oYXVlckBwZW5ndXRyb25peC5kZT47IEZh
YmlvDQo+RXN0ZXZhbSA8ZmVzdGV2YW1AZ21haWwuY29tPjsgS2llcmFuIEJpbmdoYW0NCj48a2ll
cmFuLmJpbmdoYW0rcmVuZXNhc0BpZGVhc29uYm9hcmQuY29tPjsgTWljaGFsIFNpbWVrDQo+PG1p
Y2hhbC5zaW1la0BhbWQuY29tPjsgTWluZyBRaWFuIDxtaW5nLnFpYW5AbnhwLmNvbT47IEVhZ2xl
IFpob3UNCj48ZWFnbGUuemhvdUBueHAuY29tPjsgWGF2aWVyIFJvdW1lZ3VlIChPU1MpDQo+PHhh
dmllci5yb3VtZWd1ZUBvc3MubnhwLmNvbT47IFBoaWxpcHAgWmFiZWwgPHAuemFiZWxAcGVuZ3V0
cm9uaXguZGU+Ow0KPlZpa2FzaCBHYXJvZGlhIDxxdWljX3ZnYXJvZGlhQHF1aWNpbmMuY29tPjsg
RGlrc2hpdGEgQWdhcndhbA0KPjxxdWljX2Rpa3NoaXRhQHF1aWNpbmMuY29tPjsgQWJoaW5hdiBL
dW1hciA8YWJoaW5hdi5rdW1hckBsaW51eC5kZXY+Ow0KPkJyeWFuIE8nRG9ub2dodWUgPGJyeWFu
Lm9kb25vZ2h1ZUBsaW5hcm8ub3JnPjsgU3lsd2VzdGVyIE5hd3JvY2tpDQo+PHN5bHZlc3Rlci5u
YXdyb2NraUBnbWFpbC5jb20+OyBKZXJuZWogU2tyYWJlYyA8amVybmVqLnNrcmFiZWNAZ21haWwu
Y29tPjsNCj5DaGVuLVl1IFRzYWkgPHdlbnNAY3NpZS5vcmc+OyBTYW11ZWwgSG9sbGFuZCA8c2Ft
dWVsQHNob2xsYW5kLm9yZz47DQo+RGFuaWVsIEFsbWVpZGEgPGRhbmllbC5hbG1laWRhQGNvbGxh
Ym9yYS5jb20+OyBOZWlsIEFybXN0cm9uZw0KPjxuZWlsLmFybXN0cm9uZ0BsaW5hcm8ub3JnPjsg
S2V2aW4gSGlsbWFuIDxraGlsbWFuQGJheWxpYnJlLmNvbT47IEplcm9tZQ0KPkJydW5ldCA8amJy
dW5ldEBiYXlsaWJyZS5jb20+OyBNYXJ0aW4gQmx1bWVuc3RpbmdsDQo+PG1hcnRpbi5ibHVtZW5z
dGluZ2xAZ29vZ2xlbWFpbC5jb20+OyBOYXMgQ2h1bmcNCj48bmFzLmNodW5nQGNoaXBzbm1lZGlh
LmNvbT47IEphY2tzb24gTGVlDQo+PGphY2tzb24ubGVlQGNoaXBzbm1lZGlhLmNvbT47IE1pbmdo
c2l1IFRzYWkNCj48bWluZ2hzaXUudHNhaUBtZWRpYXRlay5jb20+OyBIb3Vsb25nIFdlaSA8aG91
bG9uZy53ZWlAbWVkaWF0ZWsuY29tPjsNCj5BbmRyZXctQ1QgQ2hlbiA8YW5kcmV3LWN0LmNoZW5A
bWVkaWF0ZWsuY29tPjsgVGlmZmFueSBMaW4NCj48dGlmZmFueS5saW5AbWVkaWF0ZWsuY29tPjsg
WXVuZmVpIERvbmcgPHl1bmZlaS5kb25nQG1lZGlhdGVrLmNvbT47DQo+R2VlcnQgVXl0dGVyaG9l
dmVuIDxnZWVydCtyZW5lc2FzQGdsaWRlci5iZT47IE1hZ251cyBEYW1tDQo+PG1hZ251cy5kYW1t
QGdtYWlsLmNvbT47IE1pa2hhaWwgVWx5YW5vdg0KPjxtaWtoYWlsLnVseWFub3ZAY29nZW50ZW1i
ZWRkZWQuY29tPjsgSmFjb2IgQ2hlbiA8amFjb2ItDQo+Y2hlbkBpb3R3cnQuY29tPjsgRXplcXVp
ZWwgR2FyY2lhIDxlemVxdWllbEB2YW5ndWFyZGlhc3VyLmNvbS5hcj47IEhlaWtvDQo+U3R1ZWJu
ZXIgPGhlaWtvQHNudGVjaC5kZT47IERldGxldiBDYXNhbm92YQ0KPjxkZXRsZXYuY2FzYW5vdmFA
Y29sbGFib3JhLmNvbT47IEtyenlzenRvZiBLb3psb3dza2kgPGtyemtAa2VybmVsLm9yZz47DQo+
QWxpbSBBa2h0YXIgPGFsaW0uYWtodGFyQHNhbXN1bmcuY29tPjsgU3lsd2VzdGVyIE5hd3JvY2tp
DQo+PHMubmF3cm9ja2lAc2Ftc3VuZy5jb20+OyDFgXVrYXN6IFN0ZWxtYWNoIDxsLnN0ZWxtYWNo
QHNhbXN1bmcuY29tPjsNCj5BbmRyemVqIFBpZXRyYXNpZXdpY3ogPGFuZHJ6ZWp0cDIwMTBAZ21h
aWwuY29tPjsgSmFjZWsgQW5hc3pld3NraQ0KPjxqYWNlay5hbmFzemV3c2tpQGdtYWlsLmNvbT47
IEFuZHJ6ZWogSGFqZGEgPGFuZHJ6ZWouaGFqZGFAaW50ZWwuY29tPjsNCj5GYWJpZW4gRGVzc2Vu
bmUgPGZhYmllbi5kZXNzZW5uZUBmb3NzLnN0LmNvbT47IEh1Z3VlcyBGcnVjaGV0DQo+PGh1Z3Vl
cy5mcnVjaGV0QGZvc3Muc3QuY29tPjsgSmVhbi1DaHJpc3RvcGhlIFRyb3RpbiA8amVhbi0NCj5j
aHJpc3RvcGhlLnRyb3RpbkBmb3NzLnN0LmNvbT47IE1heGltZSBDb3F1ZWxpbg0KPjxtY29xdWVs
aW4uc3RtMzJAZ21haWwuY29tPjsgQWxleGFuZHJlIFRvcmd1ZQ0KPjxhbGV4YW5kcmUudG9yZ3Vl
QGZvc3Muc3QuY29tPjsgTmljb2xhcyBEdWZyZXNuZQ0KPjxuaWNvbGFzLmR1ZnJlc25lQGNvbGxh
Ym9yYS5jb20+OyBCZW5qYW1pbiBHYWlnbmFyZA0KPjxiZW5qYW1pbi5nYWlnbmFyZEBjb2xsYWJv
cmEuY29tPjsgU3RldmUgTG9uZ2VyYmVhbQ0KPjxzbG9uZ2VyYmVhbUBnbWFpbC5jb20+OyBNYXhp
bWUgUmlwYXJkIDxtcmlwYXJkQGtlcm5lbC5vcmc+OyBQYXVsDQo+S29jaWFsa293c2tpIDxwYXVs
a0BzeXMtYmFzZS5pbz47IE5pa2xhcyBTw7ZkZXJsdW5kDQo+PG5pa2xhcy5zb2Rlcmx1bmRAcmFn
bmF0ZWNoLnNlPjsgUm9iZXJ0IEZvc3MgPHJmb3NzQGtlcm5lbC5vcmc+OyBUb2Rvcg0KPlRvbW92
IDx0b2Rvci50b29AZ21haWwuY29tPjsgVmxhZGltaXIgWmFwb2xza2l5DQo+PHZsYWRpbWlyLnph
cG9sc2tpeUBsaW5hcm8ub3JnPjsgQ29yZW50aW4gTGFiYmUgPGNsYWJiZUBiYXlsaWJyZS5jb20+
Ow0KPlNha2FyaSBBaWx1cyA8c2FrYXJpLmFpbHVzQGxpbnV4LmludGVsLmNvbT47IEJpbmdidSBD
YW8NCj48YmluZ2J1LmNhb0BpbnRlbC5jb20+OyBUaWFuc2h1IFFpdSA8dGlhbi5zaHUucWl1QGlu
dGVsLmNvbT47IFN0YW5pc2xhdw0KPkdydXN6a2EgPHN0YW5pc2xhdy5ncnVzemthQGxpbnV4Lmlu
dGVsLmNvbT4NCj5DYzogbGludXgtbWVkaWFAdmdlci5rZXJuZWwub3JnOyBsaW51eC1rZXJuZWxA
dmdlci5rZXJuZWwub3JnOyBsaW51eC0NCj5zdGFnaW5nQGxpc3RzLmxpbnV4LmRldjsgbGludXgt
ZG9jQHZnZXIua2VybmVsLm9yZzsgbGludXgtYXJtLQ0KPmtlcm5lbEBsaXN0cy5pbmZyYWRlYWQu
b3JnOyBsaW51eC1tZWRpYXRla0BsaXN0cy5pbmZyYWRlYWQub3JnOyBsaW51eC0NCj50ZWdyYUB2
Z2VyLmtlcm5lbC5vcmc7IGlteEBsaXN0cy5saW51eC5kZXY7IGxpbnV4LXJlbmVzYXMtc29jQHZn
ZXIua2VybmVsLm9yZzsNCj5saW51eC1hcm0tbXNtQHZnZXIua2VybmVsLm9yZzsgbGludXgtc2Ft
c3VuZy1zb2NAdmdlci5rZXJuZWwub3JnOyBsaW51eC0NCj5zdW54aUBsaXN0cy5saW51eC5kZXY7
IGxpbnV4LXVzYkB2Z2VyLmtlcm5lbC5vcmc7IGxpbnV4LQ0KPmFtbG9naWNAbGlzdHMuaW5mcmFk
ZWFkLm9yZzsgbGludXgtcm9ja2NoaXBAbGlzdHMuaW5mcmFkZWFkLm9yZzsgbGludXgtDQo+c3Rt
MzJAc3QtbWQtbWFpbG1hbi5zdG9ybXJlcGx5LmNvbTsgbWpwZWctdXNlcnNAbGlzdHMuc291cmNl
Zm9yZ2UubmV0Ow0KPkphY29wbyBNb25kaSA8amFjb3BvLm1vbmRpQGlkZWFzb25ib2FyZC5jb20+
DQo+U3ViamVjdDogW0VYVF0gW1BBVENIIDE0LzY1XSBtZWRpYTogYW1waGlvbjogRGVsZXRlIHY0
bDJfZmggc3luY2hyb25vdXNseQ0KPmluIC5yZWxlYXNlKCkNCj4NCj5DYXV0aW9uOiBUaGlzIGlz
IGFuIGV4dGVybmFsIGVtYWlsLiBQbGVhc2UgdGFrZSBjYXJlIHdoZW4gY2xpY2tpbmcgbGlua3Mg
b3INCj5vcGVuaW5nIGF0dGFjaG1lbnRzLiBXaGVuIGluIGRvdWJ0LCByZXBvcnQgdGhlIG1lc3Nh
Z2UgdXNpbmcgdGhlICdSZXBvcnQNCj50aGlzIGVtYWlsJyBidXR0b24NCj4NCj4NCj5Gcm9tOiBM
YXVyZW50IFBpbmNoYXJ0IDxsYXVyZW50LnBpbmNoYXJ0QGlkZWFzb25ib2FyZC5jb20+DQo+DQo+
VGhlIHY0bDJfZmggaW5pdGlhbGl6ZWQgYW5kIGFkZGVkIGluIHZwdV92NGwyX29wZW4oKSBpcyBk
ZWxldGUgYW5kIGNsZWFuZWQgdXANCj53aGVuIHRoZSBsYXN0IHJlZmVyZW5jZSB0byB0aGUgdnB1
X2luc3QgaXMgcmVsZWFzZWQuIFRoaXMgbWF5IGhhcHBlbiBsYXRlciB0aGFuDQo+YXQgdnB1X3Y0
bDJfY2xvc2UoKSB0aW1lLg0KPg0KPk5vdCBkZWxldGluZyBhbmQgY2xlYW5pbmcgdXAgdGhlIHY0
bDJfZmggd2hlbiBjbG9zaW5nIHRoZSBmaWxlIGhhbmRsZSB0byB0aGUNCj52aWRlbyBkZXZpY2Ug
aXMgbm90IGlkZWFsLCBhcyB0aGUgdjRsMl9maCB3aWxsIHN0aWxsIGJlIHByZXNlbnQgaW4gdGhl
IHZpZGVvIGRldmljZSdzDQo+ZmhfbGlzdCwgYW5kIHdpbGwgc3RvcmUgYSBjb3B5IG9mIGV2ZW50
cyBxdWV1ZWQgdG8gdGhlIHZpZGVvIGRldmljZS4gVGhlcmUgbWF5DQo+YWxzbyBiZSBvdGhlciBz
aWRlIGVmZmVjdHMgb2Yga2VlcGluZyBhbGl2ZSBhbiBvYmplY3QgdGhhdCByZXByZXNlbnRzIGFu
IG9wZW4gZmlsZQ0KPmhhbmRsZSBhZnRlciB0aGUgZmlsZSBoYW5kbGUgaXMgY2xvc2VkLg0KPg0K
PlRoZSB2NGwyX2ZoIGluc3RhbmNlIGlzIGVtYmVkZGVkIGluIHRoZSB2cHVfaW5zdCBzdHJ1Y3R1
cmUsIGFuZCBpcyBhY2Nlc3NlZCBpbg0KPnR3byBkaWZmZXJlbnQgd2F5czoNCj4NCj4tIGluIHZw
dV9ub3RpZnlfZW9zKCkgYW5kIHZwdV9ub3RpZnlfc291cmNlX2NoYW5nZSgpLCB0byBxdWV1ZSBW
NEwyDQo+ICBldmVudHMgdG8gdGhlIGZpbGUgaGFuZGxlIDsgYW5kDQo+DQo+LSB0aHJvdWdoIHRo
ZSBkcml2ZXIgdG8gYWNjZXNzIHRoZSB2NGwyX2ZoLm0ybV9jdHggcG9pbnRlci4NCj4NCj5UaGUg
djRsMl9maC5tMm1fY3R4IHBvaW50ZXIgaXMgbm90IHRvdWNoZWQgYnkgdjRsMl9maF9kZWwoKSBh
bmQNCj52NGwyX2ZoX2V4aXQoKS4gSXQgaXMgc2V0IHRvIE5VTEwgYnkgdGhlIGRyaXZlciB3aGVu
IGNsb3NpbmcgdGhlIGZpbGUgaGFuZGxlLCBpbg0KPnZwdV92NGwyX2Nsb3NlKCkuDQo+DQo+VGhl
IHZwdV9ub3RpZnlfZW9zKCkgYW5kIHZwdV9ub3RpZnlfc291cmNlX2NoYW5nZSgpIGZ1bmN0aW9u
cyBhcmUgY2FsbGVkIGluDQo+dnB1X3NldF9sYXN0X2J1ZmZlcl9kZXF1ZXVlZCgpIGFuZCB2ZGVj
X2hhbmRsZV9yZXNvbHV0aW9uX2NoYW5nZSgpDQo+cmVzcGVjdGl2ZWx5LCBvbmx5IGlmIHRoZSB2
NGwyX2ZoLm0ybV9jdHggcG9pbnRlciBpcyBub3QgTlVMTC4gVGhlcmUgaXMgdGhlcmVmb3JlDQo+
YSBndWFyYW50ZWUgdGhhdCBubyBuZXcgZXZlbnQgd2lsbCBiZSBxdWV1ZWQgdG8gdGhlIHY0bDJf
ZmggYWZ0ZXINCj52cHVfdjRsMl9jbG9zZSgpIGRlc3Ryb3lzIHRoZSBtMm1fY3R4Lg0KPg0KPlRo
ZSB2cHVfbm90aWZ5X2VvcygpIGZ1bmN0aW9uIGlzIGFsc28gY2FsbGVkIGZyb20gdnB1X3ZiMl9i
dWZfZmluaXNoKCksIHdoaWNoDQo+aXMgZ3VhcmFudGVlZCB0byBiZSBjYWxsZWQgZm9yIGFsbCBx
dWV1ZWQgYnVmZmVycyB3aGVuDQo+dnB1X3Y0bDJfY2xvc2UoKSBjYWxscyB2NGwyX20ybV9jdHhf
cmVsZWFzZSgpLCBhbmQgd2lsbCBub3QgYmUgY2FsbGVkIGxhdGVyLg0KPg0KPkl0IGlzIHRoZXJl
Zm9yZSBzYWZlIHRvIGFzc3VtZSB0aGF0IHRoZSBkcml2ZXIgd2lsbCBub3QgdG91Y2ggdGhlIHY0
bDJfZmgsIGV4Y2VwdA0KPnRvIGNoZWNrIHRoZSBtMm1fY3R4IHBvaW50ZXIsIGFmdGVyIHZwdV92
NGwyX2Nsb3NlKCkgZGVzdHJveXMgdGhlIG0ybV9jdHguDQo+V2UgY2FuIHNhZmVseSBkZWxldGUg
YW5kIGNsZWFudXAgdGhlIHY0bDJfZmggc3luY2hyb25vdXNseSBpbg0KPnZwdV92NGwyX2Nsb3Nl
KCkuDQo+DQo+U2lnbmVkLW9mZi1ieTogTGF1cmVudCBQaW5jaGFydCA8bGF1cmVudC5waW5jaGFy
dEBpZGVhc29uYm9hcmQuY29tPg0KPlNpZ25lZC1vZmYtYnk6IEphY29wbyBNb25kaSA8amFjb3Bv
Lm1vbmRpQGlkZWFzb25ib2FyZC5jb20+DQoNClJldmlld2VkLWJ5OiBNaW5nIFFpYW4gPG1pbmcu
cWlhbkBvc3MubnhwLmNvbT4NCg0KPi0tLQ0KPiBkcml2ZXJzL21lZGlhL3BsYXRmb3JtL2FtcGhp
b24vdnB1X3Y0bDIuYyB8IDcgKysrKystLQ0KPiAxIGZpbGUgY2hhbmdlZCwgNSBpbnNlcnRpb25z
KCspLCAyIGRlbGV0aW9ucygtKQ0KPg0KPmRpZmYgLS1naXQgYS9kcml2ZXJzL21lZGlhL3BsYXRm
b3JtL2FtcGhpb24vdnB1X3Y0bDIuYw0KPmIvZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS9hbXBoaW9u
L3ZwdV92NGwyLmMNCj5pbmRleA0KPjMwNmQ5NGUwZjhlNzlmYWFhY2ZhMzViMjhlNTc4Njg2MGY3
YmQxY2EuLjU3Y2E2MjYyYmIwNGIzNTZhODVlMjE3ZWYNCj41MWNmYjEzY2I5YTBhMzYgMTAwNjQ0
DQo+LS0tIGEvZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS9hbXBoaW9uL3ZwdV92NGwyLmMNCj4rKysg
Yi9kcml2ZXJzL21lZGlhL3BsYXRmb3JtL2FtcGhpb24vdnB1X3Y0bDIuYw0KPkBAIC03MjQsOCAr
NzI0LDYgQEAgc3RhdGljIGludCB2cHVfdjRsMl9yZWxlYXNlKHN0cnVjdCB2cHVfaW5zdCAqaW5z
dCkNCj4NCj4gICAgICAgIHY0bDJfY3RybF9oYW5kbGVyX2ZyZWUoJmluc3QtPmN0cmxfaGFuZGxl
cik7DQo+ICAgICAgICBtdXRleF9kZXN0cm95KCZpbnN0LT5sb2NrKTsNCj4tICAgICAgIHY0bDJf
ZmhfZGVsKCZpbnN0LT5maCk7DQo+LSAgICAgICB2NGwyX2ZoX2V4aXQoJmluc3QtPmZoKTsNCj4N
Cj4gICAgICAgIGNhbGxfdm9pZF92b3AoaW5zdCwgY2xlYW51cCk7DQo+DQo+QEAgLTc5NCw2ICs3
OTIsOCBAQCBpbnQgdnB1X3Y0bDJfb3BlbihzdHJ1Y3QgZmlsZSAqZmlsZSwgc3RydWN0IHZwdV9p
bnN0DQo+Kmluc3QpDQo+DQo+ICAgICAgICByZXR1cm4gMDsNCj4gZXJyb3I6DQo+KyAgICAgICB2
NGwyX2ZoX2RlbCgmaW5zdC0+ZmgpOw0KPisgICAgICAgdjRsMl9maF9leGl0KCZpbnN0LT5maCk7
DQo+ICAgICAgICB2cHVfaW5zdF9wdXQoaW5zdCk7DQo+ICAgICAgICByZXR1cm4gcmV0Ow0KPiB9
DQo+QEAgLTgxMyw2ICs4MTMsOSBAQCBpbnQgdnB1X3Y0bDJfY2xvc2Uoc3RydWN0IGZpbGUgKmZp
bGUpDQo+ICAgICAgICBjYWxsX3ZvaWRfdm9wKGluc3QsIHJlbGVhc2UpOw0KPiAgICAgICAgdnB1
X2luc3RfdW5sb2NrKGluc3QpOw0KPg0KPisgICAgICAgdjRsMl9maF9kZWwoJmluc3QtPmZoKTsN
Cj4rICAgICAgIHY0bDJfZmhfZXhpdCgmaW5zdC0+ZmgpOw0KPisNCj4gICAgICAgIHZwdV9pbnN0
X3VucmVnaXN0ZXIoaW5zdCk7DQo+ICAgICAgICB2cHVfaW5zdF9wdXQoaW5zdCk7DQo+DQo+DQo+
LS0NCj4yLjQ5LjANCg0K