RE: [EXT] [PATCH 39/65] media: imx-jpeg: Access v4l2_fh from file

Ming Qian <[email protected]> Tue, 5 Aug 2025 01:58:01 +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 <PAXPR04MB82541D50F538EECA4EE244BFE722A@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+U3ViamVjdDogW0VYVF0gW1BBVENIIDM5LzY1XSBtZWRpYTogaW14LWpwZWc6IEFjY2VzcyB2
NGwyX2ZoIGZyb20gZmlsZQ0KPg0KPkNhdXRpb246IFRoaXMgaXMgYW4gZXh0ZXJuYWwgZW1haWwu
IFBsZWFzZSB0YWtlIGNhcmUgd2hlbiBjbGlja2luZyBsaW5rcyBvcg0KPm9wZW5pbmcgYXR0YWNo
bWVudHMuIFdoZW4gaW4gZG91YnQsIHJlcG9ydCB0aGUgbWVzc2FnZSB1c2luZyB0aGUgJ1JlcG9y
dA0KPnRoaXMgZW1haWwnIGJ1dHRvbg0KPg0KPg0KPlRoZSB2NGwyX2ZoIGFzc29jaWF0ZWQgd2l0
aCBhbiBvcGVuIGZpbGUgaGFuZGxlIGlzIG5vdyBndWFyYW50ZWVkIHRvIGJlDQo+YXZhaWxhYmxl
IGluIGZpbGUtPnByaXZhdGVfZGF0YSwgaW5pdGlhbGlzZWQgYnkgdjRsMl9maF9hZGQoKS4NCj4N
Cj5BY2Nlc3MgdGhlIHY0bDJfZmgsIGFuZCBmcm9tIHRoZXJlIHRoZSBkcml2ZXItc3BlY2lmaWMg
c3RydWN0dXJlLCBmcm9tIHRoZSBmaWxlICoNCj5pbiBhbGwgaW9jdGwgaGFuZGxlcnMuDQo+DQo+
V2hpbGUgYXQgaXQsIHJlbW92ZSB0aGUgbm93IHVudXNlZCBteGNfanBlZ19maF90b19jdHgoKSBt
YWNyby4NCj4NCj5TaWduZWQtb2ZmLWJ5OiBKYWNvcG8gTW9uZGkgPGphY29wby5tb25kaUBpZGVh
c29uYm9hcmQuY29tPg0KDQpSZXZpZXdlZC1ieTogTWluZyBRaWFuIDxtaW5nLnFpYW5Ab3NzLm54
cC5jb20+DQoNCj4tLS0NCj4gZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS9ueHAvaW14LWpwZWcvbXhj
LWpwZWcuYyB8IDMzICsrKysrKysrKysrLS0tLS0tLS0tLS0tLS0NCj4tDQo+IDEgZmlsZSBjaGFu
Z2VkLCAxNCBpbnNlcnRpb25zKCspLCAxOSBkZWxldGlvbnMoLSkNCj4NCj5kaWZmIC0tZ2l0IGEv
ZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS9ueHAvaW14LWpwZWcvbXhjLWpwZWcuYw0KPmIvZHJpdmVy
cy9tZWRpYS9wbGF0Zm9ybS9ueHAvaW14LWpwZWcvbXhjLWpwZWcuYw0KPmluZGV4DQo+ZmE3ZDc0
ZDhjMWFhYmQzYmY3NDQ4MmUyMTQxNjVkOGMxYTdlODlkYS4uZGYzY2NkZjc2N2JhZjBiZjY2ODc4
MDhlMmMNCj4wMTcwNjMxODFhNzIyMCAxMDA2NDQNCj4tLS0gYS9kcml2ZXJzL21lZGlhL3BsYXRm
b3JtL254cC9pbXgtanBlZy9teGMtanBlZy5jDQo+KysrIGIvZHJpdmVycy9tZWRpYS9wbGF0Zm9y
bS9ueHAvaW14LWpwZWcvbXhjLWpwZWcuYw0KPkBAIC02NDQsMTEgKzY0NCw2IEBAIHN0YXRpYyB2
b2lkIHByaW50X214Y19idWYoc3RydWN0IG14Y19qcGVnX2RldiAqanBlZywNCj5zdHJ1Y3QgdmIy
X2J1ZmZlciAqYnVmLA0KPiAgICAgICAgfQ0KPiB9DQo+DQo+LXN0YXRpYyBpbmxpbmUgc3RydWN0
IG14Y19qcGVnX2N0eCAqbXhjX2pwZWdfZmhfdG9fY3R4KHN0cnVjdCB2NGwyX2ZoICpmaCkgLXsN
Cj4tICAgICAgIHJldHVybiBjb250YWluZXJfb2YoZmgsIHN0cnVjdCBteGNfanBlZ19jdHgsIGZo
KTsNCj4tfQ0KPi0NCj4gc3RhdGljIGlubGluZSBzdHJ1Y3QgbXhjX2pwZWdfY3R4ICpteGNfanBl
Z19maWxlX3RvX2N0eChzdHJ1Y3QgZmlsZSAqZmlscCkgIHsNCj4gICAgICAgIHJldHVybiBjb250
YWluZXJfb2YoZmlsZV90b192NGwyX2ZoKGZpbHApLCBzdHJ1Y3QgbXhjX2pwZWdfY3R4LCBmaCk7
IEBAIC0NCj4xNjEwLDcgKzE2MDUsNyBAQCBzdGF0aWMgaW50IG14Y19qcGVnX2RlY29kZXJfY21k
KHN0cnVjdCBmaWxlICpmaWxlLCB2b2lkDQo+KnByaXYsDQo+ICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBzdHJ1Y3QgdjRsMl9kZWNvZGVyX2NtZCAqY21kKSAgew0KPiAgICAgICAgc3Ry
dWN0IHY0bDJfZmggKmZoID0gZmlsZV90b192NGwyX2ZoKGZpbGUpOw0KPi0gICAgICAgc3RydWN0
IG14Y19qcGVnX2N0eCAqY3R4ID0gbXhjX2pwZWdfZmhfdG9fY3R4KGZoKTsNCj4rICAgICAgIHN0
cnVjdCBteGNfanBlZ19jdHggKmN0eCA9IG14Y19qcGVnX2ZpbGVfdG9fY3R4KGZpbGUpOw0KPiAg
ICAgICAgdW5zaWduZWQgbG9uZyBmbGFnczsNCj4gICAgICAgIGludCByZXQ7DQo+DQo+QEAgLTE2
NDMsNyArMTYzOCw3IEBAIHN0YXRpYyBpbnQgbXhjX2pwZWdfZW5jb2Rlcl9jbWQoc3RydWN0IGZp
bGUgKmZpbGUsDQo+dm9pZCAqcHJpdiwNCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHN0cnVjdCB2NGwyX2VuY29kZXJfY21kICpjbWQpICB7DQo+ICAgICAgICBzdHJ1Y3QgdjRsMl9m
aCAqZmggPSBmaWxlX3RvX3Y0bDJfZmgoZmlsZSk7DQo+LSAgICAgICBzdHJ1Y3QgbXhjX2pwZWdf
Y3R4ICpjdHggPSBteGNfanBlZ19maF90b19jdHgoZmgpOw0KPisgICAgICAgc3RydWN0IG14Y19q
cGVnX2N0eCAqY3R4ID0gbXhjX2pwZWdfZmlsZV90b19jdHgoZmlsZSk7DQo+ICAgICAgICB1bnNp
Z25lZCBsb25nIGZsYWdzOw0KPiAgICAgICAgaW50IHJldDsNCj4NCj5AQCAtMjI2MCw3ICsyMjU1
LDcgQEAgc3RhdGljIGludCBteGNfanBlZ19xdWVyeWNhcChzdHJ1Y3QgZmlsZSAqZmlsZSwgdm9p
ZA0KPipwcml2LCAgc3RhdGljIGludCBteGNfanBlZ19lbnVtX2ZtdF92aWRfY2FwKHN0cnVjdCBm
aWxlICpmaWxlLCB2b2lkICpwcml2LA0KPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBzdHJ1Y3QgdjRsMl9mbXRkZXNjICpmKSAgew0KPi0gICAgICAgc3RydWN0IG14Y19qcGVn
X2N0eCAqY3R4ID0gbXhjX2pwZWdfZmhfdG9fY3R4KHByaXYpOw0KPisgICAgICAgc3RydWN0IG14
Y19qcGVnX2N0eCAqY3R4ID0gbXhjX2pwZWdfZmlsZV90b19jdHgoZmlsZSk7DQo+ICAgICAgICBz
dHJ1Y3QgbXhjX2pwZWdfcV9kYXRhICpxX2RhdGEgPSBteGNfanBlZ19nZXRfcV9kYXRhKGN0eCwg
Zi0+dHlwZSk7DQo+DQo+ICAgICAgICBpZiAoY3R4LT5teGNfanBlZy0+bW9kZSA9PSBNWENfSlBF
R19FTkNPREUpIHsgQEAgLTIzMDAsNyArMjI5NSw3DQo+QEAgc3RhdGljIGludCBteGNfanBlZ19l
bnVtX2ZtdF92aWRfY2FwKHN0cnVjdCBmaWxlICpmaWxlLCB2b2lkICpwcml2LCAgc3RhdGljDQo+
aW50IG14Y19qcGVnX2VudW1fZm10X3ZpZF9vdXQoc3RydWN0IGZpbGUgKmZpbGUsIHZvaWQgKnBy
aXYsDQo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCB2NGwyX2Zt
dGRlc2MgKmYpICB7DQo+LSAgICAgICBzdHJ1Y3QgbXhjX2pwZWdfY3R4ICpjdHggPSBteGNfanBl
Z19maF90b19jdHgocHJpdik7DQo+KyAgICAgICBzdHJ1Y3QgbXhjX2pwZWdfY3R4ICpjdHggPSBt
eGNfanBlZ19maWxlX3RvX2N0eChmaWxlKTsNCj4gICAgICAgIHUzMiB0eXBlID0gY3R4LT5teGNf
anBlZy0+bW9kZSA9PSBNWENfSlBFR19ERUNPREUgPw0KPk1YQ19KUEVHX0ZNVF9UWVBFX0VOQyA6
DQo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIE1YQ19KUEVHX0ZNVF9UWVBFX1JBVzsNCj4gICAgICAgIGludCByZXQ7DQo+QEAgLTI0
NDEsNyArMjQzNiw3IEBAIHN0YXRpYyBpbnQgbXhjX2pwZWdfdHJ5X2ZtdChzdHJ1Y3QgdjRsMl9m
b3JtYXQgKmYsDQo+c3RhdGljIGludCBteGNfanBlZ190cnlfZm10X3ZpZF9jYXAoc3RydWN0IGZp
bGUgKmZpbGUsIHZvaWQgKnByaXYsDQo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgc3RydWN0IHY0bDJfZm9ybWF0ICpmKSAgew0KPi0gICAgICAgc3RydWN0IG14Y19qcGVnX2N0
eCAqY3R4ID0gbXhjX2pwZWdfZmhfdG9fY3R4KHByaXYpOw0KPisgICAgICAgc3RydWN0IG14Y19q
cGVnX2N0eCAqY3R4ID0gbXhjX2pwZWdfZmlsZV90b19jdHgoZmlsZSk7DQo+ICAgICAgICBzdHJ1
Y3QgbXhjX2pwZWdfZGV2ICpqcGVnID0gY3R4LT5teGNfanBlZzsNCj4gICAgICAgIHN0cnVjdCBk
ZXZpY2UgKmRldiA9IGpwZWctPmRldjsNCj4gICAgICAgIHN0cnVjdCBteGNfanBlZ19xX2RhdGEg
dG1wX3E7DQo+QEAgLTI0NjAsNyArMjQ1NSw3IEBAIHN0YXRpYyBpbnQgbXhjX2pwZWdfdHJ5X2Zt
dF92aWRfY2FwKHN0cnVjdCBmaWxlICpmaWxlLA0KPnZvaWQgKnByaXYsICBzdGF0aWMgaW50IG14
Y19qcGVnX3RyeV9mbXRfdmlkX291dChzdHJ1Y3QgZmlsZSAqZmlsZSwgdm9pZCAqcHJpdiwNCj4g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgdjRsMl9mb3JtYXQgKmYp
ICB7DQo+LSAgICAgICBzdHJ1Y3QgbXhjX2pwZWdfY3R4ICpjdHggPSBteGNfanBlZ19maF90b19j
dHgocHJpdik7DQo+KyAgICAgICBzdHJ1Y3QgbXhjX2pwZWdfY3R4ICpjdHggPSBteGNfanBlZ19m
aWxlX3RvX2N0eChmaWxlKTsNCj4gICAgICAgIHN0cnVjdCBteGNfanBlZ19kZXYgKmpwZWcgPSBj
dHgtPm14Y19qcGVnOw0KPiAgICAgICAgc3RydWN0IGRldmljZSAqZGV2ID0ganBlZy0+ZGV2Ow0K
PiAgICAgICAgc3RydWN0IG14Y19qcGVnX3FfZGF0YSB0bXBfcTsNCj5AQCAtMjUxMiwyMCArMjUw
NywyMCBAQCBzdGF0aWMgaW50IG14Y19qcGVnX3NfZm10KHN0cnVjdCBteGNfanBlZ19jdHgNCj4q
Y3R4LCAgc3RhdGljIGludCBteGNfanBlZ19zX2ZtdF92aWRfY2FwKHN0cnVjdCBmaWxlICpmaWxl
LCB2b2lkICpwcml2LA0KPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3Qg
djRsMl9mb3JtYXQgKmYpICB7DQo+LSAgICAgICByZXR1cm4gbXhjX2pwZWdfc19mbXQobXhjX2pw
ZWdfZmhfdG9fY3R4KHByaXYpLCBmKTsNCj4rICAgICAgIHJldHVybiBteGNfanBlZ19zX2ZtdCht
eGNfanBlZ19maWxlX3RvX2N0eChmaWxlKSwgZik7DQo+IH0NCj4NCj4gc3RhdGljIGludCBteGNf
anBlZ19zX2ZtdF92aWRfb3V0KHN0cnVjdCBmaWxlICpmaWxlLCB2b2lkICpwcml2LA0KPiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgdjRsMl9mb3JtYXQgKmYpICB7DQo+
ICAgICAgICBpbnQgcmV0Ow0KPi0gICAgICAgc3RydWN0IG14Y19qcGVnX2N0eCAqY3R4ID0gbXhj
X2pwZWdfZmhfdG9fY3R4KHByaXYpOw0KPisgICAgICAgc3RydWN0IG14Y19qcGVnX2N0eCAqY3R4
ID0gbXhjX2pwZWdfZmlsZV90b19jdHgoZmlsZSk7DQo+ICAgICAgICBzdHJ1Y3QgdmIyX3F1ZXVl
ICpkc3RfdnE7DQo+ICAgICAgICBzdHJ1Y3QgbXhjX2pwZWdfcV9kYXRhICpxX2RhdGFfY2FwOw0K
PiAgICAgICAgZW51bSB2NGwyX2J1Zl90eXBlIGNhcF90eXBlID0NCj5WNEwyX0JVRl9UWVBFX1ZJ
REVPX0NBUFRVUkVfTVBMQU5FOw0KPiAgICAgICAgc3RydWN0IHY0bDJfZm9ybWF0IGZjOw0KPg0K
Pi0gICAgICAgcmV0ID0gbXhjX2pwZWdfc19mbXQobXhjX2pwZWdfZmhfdG9fY3R4KHByaXYpLCBm
KTsNCj4rICAgICAgIHJldCA9IG14Y19qcGVnX3NfZm10KGN0eCwgZik7DQo+ICAgICAgICBpZiAo
cmV0KQ0KPiAgICAgICAgICAgICAgICByZXR1cm4gcmV0Ow0KPg0KPkBAIC0yNTU0LDcgKzI1NDks
NyBAQCBzdGF0aWMgaW50IG14Y19qcGVnX3NfZm10X3ZpZF9vdXQoc3RydWN0IGZpbGUgKmZpbGUs
DQo+dm9pZCAqcHJpdiwgIHN0YXRpYyBpbnQgbXhjX2pwZWdfZ19mbXRfdmlkKHN0cnVjdCBmaWxl
ICpmaWxlLCB2b2lkICpwcml2LA0KPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVj
dCB2NGwyX2Zvcm1hdCAqZikgIHsNCj4tICAgICAgIHN0cnVjdCBteGNfanBlZ19jdHggKmN0eCA9
IG14Y19qcGVnX2ZoX3RvX2N0eChwcml2KTsNCj4rICAgICAgIHN0cnVjdCBteGNfanBlZ19jdHgg
KmN0eCA9IG14Y19qcGVnX2ZpbGVfdG9fY3R4KGZpbGUpOw0KPiAgICAgICAgc3RydWN0IG14Y19q
cGVnX2RldiAqanBlZyA9IGN0eC0+bXhjX2pwZWc7DQo+ICAgICAgICBzdHJ1Y3QgZGV2aWNlICpk
ZXYgPSBqcGVnLT5kZXY7DQo+ICAgICAgICBzdHJ1Y3QgdjRsMl9waXhfZm9ybWF0X21wbGFuZSAg
ICpwaXhfbXAgPSAmZi0+Zm10LnBpeF9tcDsNCj5AQCAtMjU5Miw3ICsyNTg3LDcgQEAgc3RhdGlj
IGludCBteGNfanBlZ19nX2ZtdF92aWQoc3RydWN0IGZpbGUgKmZpbGUsIHZvaWQNCj4qcHJpdiwN
Cj4NCj4gc3RhdGljIGludCBteGNfanBlZ19kZWNfZ19zZWxlY3Rpb24oc3RydWN0IGZpbGUgKmZp
bGUsIHZvaWQgKmZoLCBzdHJ1Y3QNCj52NGwyX3NlbGVjdGlvbiAqcykgIHsNCj4tICAgICAgIHN0
cnVjdCBteGNfanBlZ19jdHggKmN0eCA9IG14Y19qcGVnX2ZoX3RvX2N0eChmaCk7DQo+KyAgICAg
ICBzdHJ1Y3QgbXhjX2pwZWdfY3R4ICpjdHggPSBteGNfanBlZ19maWxlX3RvX2N0eChmaWxlKTsN
Cj4gICAgICAgIHN0cnVjdCBteGNfanBlZ19xX2RhdGEgKnFfZGF0YV9jYXA7DQo+DQo+ICAgICAg
ICBpZiAocy0+dHlwZSAhPSBWNEwyX0JVRl9UWVBFX1ZJREVPX0NBUFRVUkUgJiYgcy0+dHlwZSAh
PQ0KPlY0TDJfQlVGX1RZUEVfVklERU9fQ0FQVFVSRV9NUExBTkUpDQo+QEAgLTI2MjEsNyArMjYx
Niw3IEBAIHN0YXRpYyBpbnQgbXhjX2pwZWdfZGVjX2dfc2VsZWN0aW9uKHN0cnVjdCBmaWxlICpm
aWxlLA0KPnZvaWQgKmZoLCBzdHJ1Y3QgdjRsMl9zZWwNCj4NCj4gc3RhdGljIGludCBteGNfanBl
Z19lbmNfZ19zZWxlY3Rpb24oc3RydWN0IGZpbGUgKmZpbGUsIHZvaWQgKmZoLCBzdHJ1Y3QNCj52
NGwyX3NlbGVjdGlvbiAqcykgIHsNCj4tICAgICAgIHN0cnVjdCBteGNfanBlZ19jdHggKmN0eCA9
IG14Y19qcGVnX2ZoX3RvX2N0eChmaCk7DQo+KyAgICAgICBzdHJ1Y3QgbXhjX2pwZWdfY3R4ICpj
dHggPSBteGNfanBlZ19maWxlX3RvX2N0eChmaWxlKTsNCj4gICAgICAgIHN0cnVjdCBteGNfanBl
Z19xX2RhdGEgKnFfZGF0YV9vdXQ7DQo+DQo+ICAgICAgICBpZiAocy0+dHlwZSAhPSBWNEwyX0JV
Rl9UWVBFX1ZJREVPX09VVFBVVCAmJiBzLT50eXBlICE9DQo+VjRMMl9CVUZfVFlQRV9WSURFT19P
VVRQVVRfTVBMQU5FKQ0KPkBAIC0yNjQ5LDcgKzI2NDQsNyBAQCBzdGF0aWMgaW50IG14Y19qcGVn
X2VuY19nX3NlbGVjdGlvbihzdHJ1Y3QgZmlsZSAqZmlsZSwNCj52b2lkICpmaCwgc3RydWN0IHY0
bDJfc2VsDQo+DQo+IHN0YXRpYyBpbnQgbXhjX2pwZWdfZ19zZWxlY3Rpb24oc3RydWN0IGZpbGUg
KmZpbGUsIHZvaWQgKmZoLCBzdHJ1Y3QgdjRsMl9zZWxlY3Rpb24NCj4qcykgIHsNCj4tICAgICAg
IHN0cnVjdCBteGNfanBlZ19jdHggKmN0eCA9IG14Y19qcGVnX2ZoX3RvX2N0eChmaCk7DQo+KyAg
ICAgICBzdHJ1Y3QgbXhjX2pwZWdfY3R4ICpjdHggPSBteGNfanBlZ19maWxlX3RvX2N0eChmaWxl
KTsNCj4NCj4gICAgICAgIGlmIChjdHgtPm14Y19qcGVnLT5tb2RlID09IE1YQ19KUEVHX0RFQ09E
RSkNCj4gICAgICAgICAgICAgICAgcmV0dXJuIG14Y19qcGVnX2RlY19nX3NlbGVjdGlvbihmaWxl
LCBmaCwgcyk7IEBAIC0yNjU5LDcgKzI2NTQsNyBAQA0KPnN0YXRpYyBpbnQgbXhjX2pwZWdfZ19z
ZWxlY3Rpb24oc3RydWN0IGZpbGUgKmZpbGUsIHZvaWQgKmZoLCBzdHJ1Y3QgdjRsMl9zZWxlY3Rp
DQo+DQo+IHN0YXRpYyBpbnQgbXhjX2pwZWdfc19zZWxlY3Rpb24oc3RydWN0IGZpbGUgKmZpbGUs
IHZvaWQgKmZoLCBzdHJ1Y3QgdjRsMl9zZWxlY3Rpb24NCj4qcykgIHsNCj4tICAgICAgIHN0cnVj
dCBteGNfanBlZ19jdHggKmN0eCA9IG14Y19qcGVnX2ZoX3RvX2N0eChmaCk7DQo+KyAgICAgICBz
dHJ1Y3QgbXhjX2pwZWdfY3R4ICpjdHggPSBteGNfanBlZ19maWxlX3RvX2N0eChmaWxlKTsNCj4g
ICAgICAgIHN0cnVjdCBteGNfanBlZ19xX2RhdGEgKnFfZGF0YV9vdXQ7DQo+DQo+ICAgICAgICBp
ZiAoY3R4LT5teGNfanBlZy0+bW9kZSAhPSBNWENfSlBFR19FTkNPREUpDQo+DQo+LS0NCj4yLjQ5
LjANCg0K