From mboxrd@z Thu Jan 1 00:00:00 1970 From: Lyude Paul Subject: [PATCH v4 3/8] drm/fb_helper: Introduce suspend/resume_hotplug() Date: Wed, 1 Aug 2018 17:14:53 -0400 Message-ID: <20180801211459.7731-4-lyude@redhat.com> References: <20180801211459.7731-1-lyude@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20180801211459.7731-1-lyude@redhat.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: nouveau@lists.freedesktop.org Cc: David Airlie , Karol Herbst , stable@vger.kernel.org, linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org SSdtIHN1cmUgSSBkb24ndCBuZWVkIHRvIHRlbGwgeW91IHRoYXQgZmJfaGVscGVyJ3MgbG9ja2lu ZyBpcyBhIG1lc3MuClRoYXQgYmVpbmcgc2FpZDsgZmJfaGVscGVyJ3MgbG9ja2luZyBtZXNzIGNh biBzZXJpb3VzbHkgY29tcGxpY2F0ZSB0aGUKcnVudGltZSBzdXNwZW5kL3Jlc3VtZSBvcGVyYXRp b25zIG9mIGRyaXZlcnMgYmVjYXVzZSBpdCBjYW4gaW52b2tlCmF0b21pYyBjb21taXRzIGFuZCBj b25uZWN0b3IgcHJvYmluZyBmcm9tIGFueXdoZXJlIHRoYXQgY2FsbHMKZHJtX2ZiX2hlbHBlcl9o b3RwbHVnX2V2ZW50KCkuIFNpbmNlIG1vc3QgZHJpdmVycyB1c2UKZHJtX2ZiX2hlbHBlcl9vdXRw dXRfcG9sbF9jaGFuZ2VkKCkgYXMgdGhlaXIgb3V0cHV0X3BvbGxfY2hhbmdlZApoYW5kbGVyLCB0 aGlzIGNhbiBoYXBwZW4gaW4gZXZlcnkgc2luZ2xlIGNvbnRleHQgdGhhdCBjYW4gZmlyZSBvZmYg YQpob3RwbHVnIGV2ZW50LiBBbiBleGFtcGxlOgoKWyAgMjQ2LjY2OTYyNV0gSU5GTzogdGFzayBr d29ya2VyLzQ6MDozNyBibG9ja2VkIGZvciBtb3JlIHRoYW4gMTIwIHNlY29uZHMuClsgIDI0Ni42 NzMzOThdICAgICAgIE5vdCB0YWludGVkIDQuMTguMC1yYzVMeXVkZS1UZXN0KyAjMgpbICAyNDYu Njc1MjcxXSAiZWNobyAwID4gL3Byb2Mvc3lzL2tlcm5lbC9odW5nX3Rhc2tfdGltZW91dF9zZWNz IiBkaXNhYmxlcyB0aGlzIG1lc3NhZ2UuClsgIDI0Ni42NzY1MjddIGt3b3JrZXIvNDowICAgICBE ICAgIDAgICAgMzcgICAgICAyIDB4ODAwMDAwMDAKWyAgMjQ2LjY3NzU4MF0gV29ya3F1ZXVlOiBl dmVudHMgb3V0cHV0X3BvbGxfZXhlY3V0ZSBbZHJtX2ttc19oZWxwZXJdClsgIDI0Ni42Nzg3MDRd IENhbGwgVHJhY2U6ClsgIDI0Ni42Nzk3NTNdICBfX3NjaGVkdWxlKzB4MzIyLzB4YWYwClsgIDI0 Ni42ODA5MTZdICBzY2hlZHVsZSsweDMzLzB4OTAKWyAgMjQ2LjY4MTkyNF0gIHNjaGVkdWxlX3By ZWVtcHRfZGlzYWJsZWQrMHgxNS8weDIwClsgIDI0Ni42ODMwMjNdICBfX211dGV4X2xvY2srMHg1 NjkvMHg5YTAKWyAgMjQ2LjY4NDAzNV0gID8ga29iamVjdF91ZXZlbnRfZW52KzB4MTE3LzB4N2Iw ClsgIDI0Ni42ODUxMzJdICA/IGRybV9mYl9oZWxwZXJfaG90cGx1Z19ldmVudC5wYXJ0LjI4KzB4 MjAvMHhiMCBbZHJtX2ttc19oZWxwZXJdClsgIDI0Ni42ODYxNzldICBtdXRleF9sb2NrX25lc3Rl ZCsweDFiLzB4MjAKWyAgMjQ2LjY4NzI3OF0gID8gbXV0ZXhfbG9ja19uZXN0ZWQrMHgxYi8weDIw ClsgIDI0Ni42ODgzMDddICBkcm1fZmJfaGVscGVyX2hvdHBsdWdfZXZlbnQucGFydC4yOCsweDIw LzB4YjAgW2RybV9rbXNfaGVscGVyXQpbICAyNDYuNjg5NDIwXSAgZHJtX2ZiX2hlbHBlcl9vdXRw dXRfcG9sbF9jaGFuZ2VkKzB4MjMvMHgzMCBbZHJtX2ttc19oZWxwZXJdClsgIDI0Ni42OTA0NjJd ICBkcm1fa21zX2hlbHBlcl9ob3RwbHVnX2V2ZW50KzB4MmEvMHgzMCBbZHJtX2ttc19oZWxwZXJd ClsgIDI0Ni42OTE1NzBdICBvdXRwdXRfcG9sbF9leGVjdXRlKzB4MTk4LzB4MWMwIFtkcm1fa21z X2hlbHBlcl0KWyAgMjQ2LjY5MjYxMV0gIHByb2Nlc3Nfb25lX3dvcmsrMHgyMzEvMHg2MjAKWyAg MjQ2LjY5MzcyNV0gIHdvcmtlcl90aHJlYWQrMHgyMTQvMHgzYTAKWyAgMjQ2LjY5NDc1Nl0gIGt0 aHJlYWQrMHgxMmIvMHgxNTAKWyAgMjQ2LjY5NTg1Nl0gID8gd3FfcG9vbF9pZHNfc2hvdysweDE0 MC8weDE0MApbICAyNDYuNjk2ODg4XSAgPyBrdGhyZWFkX2NyZWF0ZV93b3JrZXJfb25fY3B1KzB4 NzAvMHg3MApbICAyNDYuNjk3OTk4XSAgcmV0X2Zyb21fZm9yaysweDNhLzB4NTAKWyAgMjQ2LjY5 OTAzNF0gSU5GTzogdGFzayBrd29ya2VyLzA6MTo2MCBibG9ja2VkIGZvciBtb3JlIHRoYW4gMTIw IHNlY29uZHMuClsgIDI0Ni43MDAxNTNdICAgICAgIE5vdCB0YWludGVkIDQuMTguMC1yYzVMeXVk ZS1UZXN0KyAjMgpbICAyNDYuNzAxMTgyXSAiZWNobyAwID4gL3Byb2Mvc3lzL2tlcm5lbC9odW5n X3Rhc2tfdGltZW91dF9zZWNzIiBkaXNhYmxlcyB0aGlzIG1lc3NhZ2UuClsgIDI0Ni43MDIyNzhd IGt3b3JrZXIvMDoxICAgICBEICAgIDAgICAgNjAgICAgICAyIDB4ODAwMDAwMDAKWyAgMjQ2Ljcw MzI5M10gV29ya3F1ZXVlOiBwbSBwbV9ydW50aW1lX3dvcmsKWyAgMjQ2LjcwNDM5M10gQ2FsbCBU cmFjZToKWyAgMjQ2LjcwNTQwM10gIF9fc2NoZWR1bGUrMHgzMjIvMHhhZjAKWyAgMjQ2LjcwNjQz OV0gID8gd2FpdF9mb3JfY29tcGxldGlvbisweDEwNC8weDE5MApbICAyNDYuNzA3MzkzXSAgc2No ZWR1bGUrMHgzMy8weDkwClsgIDI0Ni43MDgzNzVdICBzY2hlZHVsZV90aW1lb3V0KzB4M2E1LzB4 NTkwClsgIDI0Ni43MDkyODldICA/IG1hcmtfaGVsZF9sb2NrcysweDU4LzB4ODAKWyAgMjQ2Ljcx MDIwOF0gID8gX3Jhd19zcGluX3VubG9ja19pcnErMHgyYy8weDQwClsgIDI0Ni43MTEyMjJdICA/ IHdhaXRfZm9yX2NvbXBsZXRpb24rMHgxMDQvMHgxOTAKWyAgMjQ2LjcxMjEzNF0gID8gdHJhY2Vf aGFyZGlycXNfb25fY2FsbGVyKzB4ZjQvMHgxOTAKWyAgMjQ2LjcxMzA5NF0gID8gd2FpdF9mb3Jf Y29tcGxldGlvbisweDEwNC8weDE5MApbICAyNDYuNzEzOTY0XSAgd2FpdF9mb3JfY29tcGxldGlv bisweDEyYy8weDE5MApbICAyNDYuNzE0ODk1XSAgPyB3YWtlX3VwX3ErMHg4MC8weDgwClsgIDI0 Ni43MTU3MjddICA/IGdldF93b3JrX3Bvb2wrMHg5MC8weDkwClsgIDI0Ni43MTY2NDldICBmbHVz aF93b3JrKzB4MWM5LzB4MjgwClsgIDI0Ni43MTc0ODNdICA/IGZsdXNoX3dvcmtxdWV1ZV9wcmVw X3B3cXMrMHgxYjAvMHgxYjAKWyAgMjQ2LjcxODQ0Ml0gIF9fY2FuY2VsX3dvcmtfdGltZXIrMHgx NDYvMHgxZDAKWyAgMjQ2LjcxOTI0N10gIGNhbmNlbF9kZWxheWVkX3dvcmtfc3luYysweDEzLzB4 MjAKWyAgMjQ2LjcyMDA0M10gIGRybV9rbXNfaGVscGVyX3BvbGxfZGlzYWJsZSsweDFmLzB4MzAg W2RybV9rbXNfaGVscGVyXQpbICAyNDYuNzIxMTIzXSAgbm91dmVhdV9wbW9wc19ydW50aW1lX3N1 c3BlbmQrMHgzZC8weGIwIFtub3V2ZWF1XQpbICAyNDYuNzIxODk3XSAgcGNpX3BtX3J1bnRpbWVf c3VzcGVuZCsweDZiLzB4MTkwClsgIDI0Ni43MjI4MjVdICA/IHBjaV9oYXNfbGVnYWN5X3BtX3N1 cHBvcnQrMHg3MC8weDcwClsgIDI0Ni43MjM3MzddICBfX3JwbV9jYWxsYmFjaysweDdhLzB4MWQw ClsgIDI0Ni43MjQ3MjFdICA/IHBjaV9oYXNfbGVnYWN5X3BtX3N1cHBvcnQrMHg3MC8weDcwClsg IDI0Ni43MjU2MDddICBycG1fY2FsbGJhY2srMHgyNC8weDgwClsgIDI0Ni43MjY1NTNdICA/IHBj aV9oYXNfbGVnYWN5X3BtX3N1cHBvcnQrMHg3MC8weDcwClsgIDI0Ni43MjczNzZdICBycG1fc3Vz cGVuZCsweDE0Mi8weDZiMApbICAyNDYuNzI4MTg1XSAgcG1fcnVudGltZV93b3JrKzB4OTcvMHhj MApbICAyNDYuNzI4OTM4XSAgcHJvY2Vzc19vbmVfd29yaysweDIzMS8weDYyMApbICAyNDYuNzI5 Nzk2XSAgd29ya2VyX3RocmVhZCsweDQ0LzB4M2EwClsgIDI0Ni43MzA2MTRdICBrdGhyZWFkKzB4 MTJiLzB4MTUwClsgIDI0Ni43MzEzOTVdICA/IHdxX3Bvb2xfaWRzX3Nob3crMHgxNDAvMHgxNDAK WyAgMjQ2LjczMjIwMl0gID8ga3RocmVhZF9jcmVhdGVfd29ya2VyX29uX2NwdSsweDcwLzB4NzAK WyAgMjQ2LjczMjg3OF0gIHJldF9mcm9tX2ZvcmsrMHgzYS8weDUwClsgIDI0Ni43MzM3NjhdIElO Rk86IHRhc2sga3dvcmtlci80OjI6NDIyIGJsb2NrZWQgZm9yIG1vcmUgdGhhbiAxMjAgc2Vjb25k cy4KWyAgMjQ2LjczNDU4N10gICAgICAgTm90IHRhaW50ZWQgNC4xOC4wLXJjNUx5dWRlLVRlc3Qr ICMyClsgIDI0Ni43MzUzOTNdICJlY2hvIDAgPiAvcHJvYy9zeXMva2VybmVsL2h1bmdfdGFza190 aW1lb3V0X3NlY3MiIGRpc2FibGVzIHRoaXMgbWVzc2FnZS4KWyAgMjQ2LjczNjExM10ga3dvcmtl ci80OjIgICAgIEQgICAgMCAgIDQyMiAgICAgIDIgMHg4MDAwMDA4MApbICAyNDYuNzM2Nzg5XSBX b3JrcXVldWU6IGV2ZW50c19sb25nIGRybV9kcF9tc3RfbGlua19wcm9iZV93b3JrIFtkcm1fa21z X2hlbHBlcl0KWyAgMjQ2LjczNzY2NV0gQ2FsbCBUcmFjZToKWyAgMjQ2LjczODQ5MF0gIF9fc2No ZWR1bGUrMHgzMjIvMHhhZjAKWyAgMjQ2LjczOTI1MF0gIHNjaGVkdWxlKzB4MzMvMHg5MApbICAy NDYuNzM5OTA4XSAgcnBtX3Jlc3VtZSsweDE5Yy8weDg1MApbICAyNDYuNzQwNzUwXSAgPyBmaW5p c2hfd2FpdCsweDkwLzB4OTAKWyAgMjQ2Ljc0MTU0MV0gIF9fcG1fcnVudGltZV9yZXN1bWUrMHg0 ZS8weDkwClsgIDI0Ni43NDIzNzBdICBudjUwX2Rpc3BfYXRvbWljX2NvbW1pdCsweDMxLzB4MjEw IFtub3V2ZWF1XQpbICAyNDYuNzQzMTI0XSAgZHJtX2F0b21pY19jb21taXQrMHg0YS8weDUwIFtk cm1dClsgIDI0Ni43NDM3NzVdICByZXN0b3JlX2ZiZGV2X21vZGVfYXRvbWljKzB4MWM4LzB4MjQw IFtkcm1fa21zX2hlbHBlcl0KWyAgMjQ2Ljc0NDYwM10gIHJlc3RvcmVfZmJkZXZfbW9kZSsweDMx LzB4MTQwIFtkcm1fa21zX2hlbHBlcl0KWyAgMjQ2Ljc0NTM3M10gIGRybV9mYl9oZWxwZXJfcmVz dG9yZV9mYmRldl9tb2RlX3VubG9ja2VkKzB4NTQvMHhiMCBbZHJtX2ttc19oZWxwZXJdClsgIDI0 Ni43NDYyMjBdICBkcm1fZmJfaGVscGVyX3NldF9wYXIrMHgyZC8weDUwIFtkcm1fa21zX2hlbHBl cl0KWyAgMjQ2Ljc0Njg4NF0gIGRybV9mYl9oZWxwZXJfaG90cGx1Z19ldmVudC5wYXJ0LjI4KzB4 OTYvMHhiMCBbZHJtX2ttc19oZWxwZXJdClsgIDI0Ni43NDc2NzVdICBkcm1fZmJfaGVscGVyX291 dHB1dF9wb2xsX2NoYW5nZWQrMHgyMy8weDMwIFtkcm1fa21zX2hlbHBlcl0KWyAgMjQ2Ljc0ODU0 NF0gIGRybV9rbXNfaGVscGVyX2hvdHBsdWdfZXZlbnQrMHgyYS8weDMwIFtkcm1fa21zX2hlbHBl cl0KWyAgMjQ2Ljc0OTQzOV0gIG52NTBfbXN0bV9ob3RwbHVnKzB4MTUvMHgyMCBbbm91dmVhdV0K WyAgMjQ2Ljc1MDExMV0gIGRybV9kcF9zZW5kX2xpbmtfYWRkcmVzcysweDE3Ny8weDFjMCBbZHJt X2ttc19oZWxwZXJdClsgIDI0Ni43NTA3NjRdICBkcm1fZHBfY2hlY2tfYW5kX3NlbmRfbGlua19h ZGRyZXNzKzB4YTgvMHhkMCBbZHJtX2ttc19oZWxwZXJdClsgIDI0Ni43NTE2MDJdICBkcm1fZHBf bXN0X2xpbmtfcHJvYmVfd29yaysweDUxLzB4OTAgW2RybV9rbXNfaGVscGVyXQpbICAyNDYuNzUy MzE0XSAgcHJvY2Vzc19vbmVfd29yaysweDIzMS8weDYyMApbICAyNDYuNzUyOTc5XSAgd29ya2Vy X3RocmVhZCsweDQ0LzB4M2EwClsgIDI0Ni43NTM4MzhdICBrdGhyZWFkKzB4MTJiLzB4MTUwClsg IDI0Ni43NTQ2MTldICA/IHdxX3Bvb2xfaWRzX3Nob3crMHgxNDAvMHgxNDAKWyAgMjQ2Ljc1NTM4 Nl0gID8ga3RocmVhZF9jcmVhdGVfd29ya2VyX29uX2NwdSsweDcwLzB4NzAKWyAgMjQ2Ljc1NjE2 Ml0gIHJldF9mcm9tX2ZvcmsrMHgzYS8weDUwClsgIDI0Ni43NTY4NDddCgkgICBTaG93aW5nIGFs bCBsb2NrcyBoZWxkIGluIHRoZSBzeXN0ZW06ClsgIDI0Ni43NTgyNjFdIDMgbG9ja3MgaGVsZCBi eSBrd29ya2VyLzQ6MC8zNzoKWyAgMjQ2Ljc1OTAxNl0gICMwOiAwMDAwMDAwMGY4ZGY0ZDJkICgo d3FfY29tcGxldGlvbikiZXZlbnRzIil7Ky4rLn0sIGF0OiBwcm9jZXNzX29uZV93b3JrKzB4MWIz LzB4NjIwClsgIDI0Ni43NTk4NTZdICAjMTogMDAwMDAwMDBlNjA2NTQ2MSAoKHdvcmtfY29tcGxl dGlvbikoJigmZGV2LT5tb2RlX2NvbmZpZy5vdXRwdXRfcG9sbF93b3JrKS0+d29yaykpeysuKy59 LCBhdDogcHJvY2Vzc19vbmVfd29yaysweDFiMy8weDYyMApbICAyNDYuNzYwNjcwXSAgIzI6IDAw MDAwMDAwY2I2NjczNWYgKCZoZWxwZXItPmxvY2speysuKy59LCBhdDogZHJtX2ZiX2hlbHBlcl9o b3RwbHVnX2V2ZW50LnBhcnQuMjgrMHgyMC8weGIwIFtkcm1fa21zX2hlbHBlcl0KWyAgMjQ2Ljc2 MTUxNl0gMiBsb2NrcyBoZWxkIGJ5IGt3b3JrZXIvMDoxLzYwOgpbICAyNDYuNzYyMjc0XSAgIzA6 IDAwMDAwMDAwZmZmNmJlMGYgKCh3cV9jb21wbGV0aW9uKSJwbSIpeysuKy59LCBhdDogcHJvY2Vz c19vbmVfd29yaysweDFiMy8weDYyMApbICAyNDYuNzYyOTgyXSAgIzE6IDAwMDAwMDAwNWFiNDRm YjQgKCh3b3JrX2NvbXBsZXRpb24pKCZkZXYtPnBvd2VyLndvcmspKXsrLisufSwgYXQ6IHByb2Nl c3Nfb25lX3dvcmsrMHgxYjMvMHg2MjAKWyAgMjQ2Ljc2Mzg5MF0gMSBsb2NrIGhlbGQgYnkga2h1 bmd0YXNrZC82NDoKWyAgMjQ2Ljc2NDY2NF0gICMwOiAwMDAwMDAwMDhjYjhiNWMzIChyY3VfcmVh ZF9sb2NrKXsuLi4ufSwgYXQ6IGRlYnVnX3Nob3dfYWxsX2xvY2tzKzB4MjMvMHgxODUKWyAgMjQ2 Ljc2NTU4OF0gNSBsb2NrcyBoZWxkIGJ5IGt3b3JrZXIvNDoyLzQyMjoKWyAgMjQ2Ljc2NjQ0MF0g ICMwOiAwMDAwMDAwMDIzMmYwOTU5ICgod3FfY29tcGxldGlvbikiZXZlbnRzX2xvbmciKXsrLisu fSwgYXQ6IHByb2Nlc3Nfb25lX3dvcmsrMHgxYjMvMHg2MjAKWyAgMjQ2Ljc2NzM5MF0gICMxOiAw MDAwMDAwMGJiNTliMTM0ICgod29ya19jb21wbGV0aW9uKSgmbWdyLT53b3JrKSl7Ky4rLn0sIGF0 OiBwcm9jZXNzX29uZV93b3JrKzB4MWIzLzB4NjIwClsgIDI0Ni43NjgxNTRdICAjMjogMDAwMDAw MDBjYjY2NzM1ZiAoJmhlbHBlci0+bG9jayl7Ky4rLn0sIGF0OiBkcm1fZmJfaGVscGVyX3Jlc3Rv cmVfZmJkZXZfbW9kZV91bmxvY2tlZCsweDRjLzB4YjAgW2RybV9rbXNfaGVscGVyXQpbICAyNDYu NzY4OTY2XSAgIzM6IDAwMDAwMDAwNGM4ZjBiNmIgKGNydGNfd3dfY2xhc3NfYWNxdWlyZSl7Ky4r Ln0sIGF0OiByZXN0b3JlX2ZiZGV2X21vZGVfYXRvbWljKzB4NGIvMHgyNDAgW2RybV9rbXNfaGVs cGVyXQpbICAyNDYuNzY5OTIxXSAgIzQ6IDAwMDAwMDAwNGMzNGEyOTYgKGNydGNfd3dfY2xhc3Nf bXV0ZXgpeysuKy59LCBhdDogZHJtX21vZGVzZXRfYmFja29mZisweDhhLzB4MWIwIFtkcm1dClsg IDI0Ni43NzA4MzldIDEgbG9jayBoZWxkIGJ5IGRtZXNnLzEwMzg6ClsgIDI0Ni43NzE3MzldIDIg bG9ja3MgaGVsZCBieSB6c2gvMTE3MjoKWyAgMjQ2Ljc3MjY1MF0gICMwOiAwMDAwMDAwMDgzNmQw NDM4ICgmdHR5LT5sZGlzY19zZW0peysrKyt9LCBhdDogbGRzZW1fZG93bl9yZWFkKzB4MzcvMHg0 MApbICAyNDYuNzczNjgwXSAgIzE6IDAwMDAwMDAwMWY0ZjRkNDggKCZsZGF0YS0+YXRvbWljX3Jl YWRfbG9jayl7Ky4rLn0sIGF0OiBuX3R0eV9yZWFkKzB4YzEvMHg4NzAKClsgIDI0Ni43NzU1MjJd ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKQmVjYXVzZSBv ZiB0aGlzLCB0aGVyZSdzIGFuIHVucmVhc29uYWJsZSBudW1iZXIgb2YgcGxhY2VzIHRoYXQgZHJt CmRyaXZlcnMgd291bGQgbmVlZCB0byBpbnNlcnQgc3BlY2lhbCBoYW5kbGluZyB0byBwcmV2ZW50 IHRyeWluZyB0bwpyZXN1bWUgdGhlIGRldmljZSBmcm9tIGFsbCBvZiB0aGVzZSBjb250ZXh0cyB0 aGF0IGNhbiBkZWFkbG9jay4gSXQncwpkaWZmaWN1bHQgZXZlbiB0byB0cnkgc3luY2hyb25pemlu ZyB3aXRoIGZiX2hlbHBlciBpbiB0aGVzZSBjb250ZXh0cyBhcwp3ZWxsLCBzaW5jZSBhbnkgb2Yg dGhlbSBjb3VsZCBpbnRyb2R1Y2UgYSBkZWFkbG9jayBieSB3YWl0aW5nIHRvIGFjcXVpcmUKdGhl IHRvcC1sZXZlbCBmYl9oZWxwZXIgbXV0ZXgsIHdoaWxlIGl0J3MgYmVpbmcgaGVsZCBieSBhbm90 aGVyIHRocmVhZAp0aGF0IG1pZ2h0IHBvdGVudGlhbGx5IGNhbGwgZG93biB0byBwbV9ydW50aW1l X2dldF9zeW5jKCkuCgpMdWNraWx5LXRoZXJlJ3Mgbm8gYWN0dWFsIHJlYXNvbiB3ZSBuZWVkIHRv IGFsbG93IGZiX2hlbHBlciB0byBoYW5kbGUKaG90cGx1Z2dpbmcgYXQgYWxsIHdoZW4gcnVudGlt ZSBzdXNwZW5kaW5nIGEgZGV2aWNlLiBJZiBhIGhvdHBsdWcKaGFwcGVucyBkdXJpbmcgYSBydW50 aW1lIHN1c3BlbmQgb3BlcmF0aW9uLCB0aGVyZSdzIG5vIHJlYXNvbiB0aGUgZHJpdmVyCmNhbid0 IGp1c3QgcmUtZW5hYmxlIGZiY29uJ3MgaG90cGx1ZyBoYW5kbGluZyBhbmQgYnJpbmcgaXQgdXAg dG8gc3BlZWQKd2l0aCBob3RwbHVnZ2luZyBldmVudHMgaXQgbWF5IGhhdmUgbWlzc2VkIGJ5IGNh bGxpbmcKZHJtX2ZiX2hlbHBlcl9ob3RwbHVnX2V2ZW50KCkuCgpTbywgbGV0J3MgbWFrZSB0aGlz IGVhc3kgYW5kIGp1c3QgYWRkIGhlbHBlcnMgdG8gaGFuZGxlIGRpc2FibGluZyBhbmQKZW5hYmxp bmcgZmJfaGVscGVyIGNvbm5lY3RvciBwcm9iaW5nKCkgd2l0aG91dCBoYXZpbmcgdG8gcG90ZW50 aWFsbHkKd2FpdCBvbiBmYl9oZWxwZXIgdG8gZmluaXNoIGl0J3Mgd29yay4gVGhpcyB3aWxsIGxl dCB1cyBmaXggdGhlIHJ1bnRpbWUKc3VzcGVuZC9yZXN1bWUgZGVhZGxvY2tzIHRoYXQgd2UndmUg YmVlbiBleHBlcmllbmNpbmcgd2l0aCBub3V2ZWF1LAphbG9uZyB3aXRoIGJlaW5nIGFibGUgdG8g Zml4IHNvbWUgb2YgdGhlIGluY29ycmVjdCBydW50aW1lIFBNIGNvcmUKaW50ZXJhY3Rpb24gdGhh dCBvdGhlciBEUk0gZHJpdmVycyBjdXJyZW50bHkgcGVyZm9ybSB0byB3b3JrIGFyb3VuZAp0aGVz ZSBpc3N1ZXMuCgpDaGFuZ2VzIHNpbmNlIHYzOgotIEFjdHVhbGx5IGNoZWNrIGlmIGZiX2hlbHBl ciBpcyBOVUxMIGluIGJvdGggbmV3IGhlbHBlcnMKLSBBY3R1YWxseSBjaGVjayBkcm1fZmJkZXZf ZW11bGF0aW9uIGluIGJvdGggbmV3IGhlbHBlcnMKLSBEb24ndCBmaXJlIG9mZiBhIGZiX2hlbHBl ciBob3RwbHVnIHVuY29uZGl0aW9uYWxseTsgb25seSBkbyBpdCBpZgogIHRoZSBmb2xsb3dpbmcg Y29uZGl0aW9ucyBhcmUgdHJ1ZSAoYXMgb3RoZXJ3aXNlLCBjYWxsaW5nIHRoaXMgaW4gdGhlCiAg d3Jvbmcgc3BvdCB3aWxsIGNhdXNlIEJhZCBUaGluZ3MgdG8gaGFwcGVuKToKICAtIGZiX2hlbHBl ciBob3RwbHVnIGhhbmRsaW5nIHdhcyBhY3R1YWxseSBpbmhpYml0ZWQgcHJldmlvdXNseQogIC0g ZmJfaGVscGVyIGFjdHVhbGx5IGhhcyBhIGRlbGF5ZWQgaG90cGx1ZyBwZW5kaW5nCiAgLSBmYl9o ZWxwZXIgaXMgYWN0dWFsbHkgYm91bmQKICAtIGZiX2hlbHBlciBpcyBhY3R1YWxseSBpbml0aWFs aXplZAotIEFkZCBfX211c3RfY2hlY2sgdG8gZHJtX2ZiX2hlbHBlcl9zdXNwZW5kX2hvdHBsdWco KS4gVGhlcmUncyBubwogIHNpdHVhdGlvbiB3aGVyZSBhIGRyaXZlciB3b3VsZCBhY3R1YWxseSB3 YW50IHRvIHVzZSB0aGlzIHdpdGhvdXQKICBjaGVja2luZyB0aGUgcmV0dXJuIHZhbHVlLCBzbyBl bmZvcmNlIHRoYXQKLSBSZXdyaXRlIGFuZCBjbGFyaWZ5IHRoZSBkb2N1bWVudGF0aW9uIGZvciBi b3RoIGhlbHBlcnMuCi0gTWFrZSBzdXJlIHRvIHJldHVybiB0cnVlIGluIHRoZSBkcm1fZmJfaGVs cGVyX3N1c3BlbmRfaG90cGx1ZygpIHN0dWIKICB0aGF0J3MgcHJvdmlkZWQgaW4gZHJtX2ZiX2hl bHBlci5oIHdoZW4gQ09ORklHX0RSTV9GQkRFVl9FTVVMQVRJT04KICBpc24ndCBlbmFibGVkCi0g QWN0dWFsbHkgZ3JhYiB0aGUgdG9wbGV2ZWwgZmJfaGVscGVyIGxvY2sgaW4KICBkcm1fZmJfaGVs cGVyX3Jlc3VtZV9ob3RwbHVnKCksIHNpbmNlIGl0J3MgcG9zc2libGUgb3RoZXIgYWN0aXZpdHkK ICAoc3VjaCBhcyBhIGhvdHBsdWcpIGNvdWxkIGJlIGdvaW5nIG9uIGF0IHRoZSBzYW1lIHRpbWUg dGhlIGRyaXZlcgogIGNhbGxzIGRybV9mYl9oZWxwZXJfcmVzdW1lX2hvdHBsdWcoKS4gV2UgbmVl ZCB0aGlzIHRvIGNoZWNrIHdoZXRoZXIgb3IKICBub3QgZHJtX2ZiX2hlbHBlcl9ob3RwbHVnX2V2 ZW50KCkgbmVlZHMgdG8gYmUgY2FsbGVkIGFueXdheQoKU2lnbmVkLW9mZi1ieTogTHl1ZGUgUGF1 bCA8bHl1ZGVAcmVkaGF0LmNvbT4KQ2M6IHN0YWJsZUB2Z2VyLmtlcm5lbC5vcmcKQ2M6IEx1a2Fz IFd1bm5lciA8bHVrYXNAd3VubmVyLmRlPgpDYzogS2Fyb2wgSGVyYnN0IDxrYXJvbGhlcmJzdEBn bWFpbC5jb20+Ci0tLQogZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYyB8IDEyMyArKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrLQogaW5jbHVkZS9kcm0vZHJtX2ZiX2hlbHBlci5o ICAgICB8ICAyMiArKysrKysKIDIgZmlsZXMgY2hhbmdlZCwgMTQ0IGluc2VydGlvbnMoKyksIDEg ZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5j IGIvZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYwppbmRleCAyZWUxZWFhNjYxODguLmI1 ZjFkZWUwYzNhMCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYwor KysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jCkBAIC04NCw2ICs4NCwxMSBAQCBz dGF0aWMgREVGSU5FX01VVEVYKGtlcm5lbF9mYl9oZWxwZXJfbG9jayk7CiAgKiBGb3Igc3VzcGVu ZC9yZXN1bWUgY29uc2lkZXIgdXNpbmcgZHJtX21vZGVfY29uZmlnX2hlbHBlcl9zdXNwZW5kKCkg YW5kCiAgKiBkcm1fbW9kZV9jb25maWdfaGVscGVyX3Jlc3VtZSgpIHdoaWNoIHRha2VzIGNhcmUg b2YgZmJkZXYgYXMgd2VsbC4KICAqCisgKiBGb3IgcnVudGltZSBzdXNwZW5kIGFuZCBydW50aW1l IHJlc3VtZSwgZHJpdmVycyB3aGljaCBuZWVkIHRvIGRpc2FibGUKKyAqIG5vcm1hbCBob3RwbHVn IGhhbmRsaW5nIHNob3VsZCBjb25zaWRlciB1c2luZworICogZHJtX2ZiX2hlbHBlcl9zdXNwZW5k X2hvdHBsdWcoKSBhbmQgZHJtX2ZiX2hlbHBlcl9yZXN1bWVfaG90cGx1ZygpIHRvCisgKiBhdm9p ZCBkZWFkbG9ja2luZyB3aXRoIGZiX2hlbHBlcidzIGhvdHBsdWcgaGFuZGxpbmcuCisgKgogICog QWxsIG90aGVyIGZ1bmN0aW9ucyBleHBvcnRlZCBieSB0aGUgZmIgaGVscGVyIGxpYnJhcnkgY2Fu IGJlIHVzZWQgdG8KICAqIGltcGxlbWVudCB0aGUgZmJkZXYgZHJpdmVyIGludGVyZmFjZSBieSB0 aGUgZHJpdmVyLgogICoKQEAgLTI3MzMsNiArMjczOCwxMTggQEAgaW50IGRybV9mYl9oZWxwZXJf aW5pdGlhbF9jb25maWcoc3RydWN0IGRybV9mYl9oZWxwZXIgKmZiX2hlbHBlciwgaW50IGJwcF9z ZWwpCiB9CiBFWFBPUlRfU1lNQk9MKGRybV9mYl9oZWxwZXJfaW5pdGlhbF9jb25maWcpOwogCisv KioKKyAqIGRybV9mYl9oZWxwZXJfcmVzdW1lX2hvdHBsdWcgLSBVbmluaGliaXQgZmJfaGVscGVy IGhvdHBsdWcgaGFuZGxpbmcKKyAqIEBmYl9oZWxwZXI6IGRyaXZlci1hbGxvY2F0ZWQgZmJkZXYg aGVscGVyLCBjYW4gYmUgTlVMTAorICoKKyAqIFVuaW5oaWJpdCBmYl9oZWxwZXIncyBob3RwbHVn IGhhbmRsaW5nIGFmdGVyIGl0IHdhcyBwcmV2aW91c2x5IGluaGliaXRlZCBieQorICogYSBjYWxs IHRvIGRybV9mYl9oZWxwZXJfc3VzcGVuZF9ob3RwbHVnKCkuIFVubGlrZQorICogZHJtX2ZiX2hl bHBlcl9zdXNwZW5kX2hvdHBsdWcoKSwgdGhpcyBmdW5jdGlvbiB3aWxsIHdhaXQgb24KKyAqIGZi X2hlbHBlci0+bG9jay4KKyAqCisgKiBUaGlzIGhlbHBlciB3aWxsIHRha2UgY2FyZSBvZiBoYW5k bGluZyBhbnkgaG90cGx1ZyBldmVudHMgdGhhdCBoYXBwZW5lZAorICogd2hpbGUgZmJfaGVscGVy J3MgaG90cGx1ZyBoYW5kbGluZyB3YXMgc3VzcGVuZGVkLiBTaW5jZSB0aGlzIHBvc3NpYmx5Cisg KiBpbXBsaWVzIGEgY2FsbCB0byBkcm1fZmJfaGVscGVyX2hvdHBsdWdfZXZlbnQoKSwgY2FyZSBt dXN0IGJlIHRha2VuIHdoZW4KKyAqIGNhbGxpbmcgdGhpcyBmdW5jdGlvbiBhcyBpdCBtYXkgaW5p dGlhdGUgYSBtb2Rlc2V0LgorICoKKyAqIFBsZWFzZSBub3RlIHRoYXQgdGhpcyBmdW5jdGlvbiBp cyBkaWZmZXJlbnQgZnJvbQorICogZHJtX2ZiX2hlbHBlcl9zZXRfc3VzcGVuZCgpLiBJdCBkb2Vz IG5vdCByZXN1bWUgZmJfaGVscGVyLCBpdCBvbmx5IGFsbG93cworICogZmJfaGVscGVyIHRvIHBy b2JlIGNvbm5lY3RvcnMgaW4gcmVzcG9uc2UgdG8gY2hhbmdlcyB0byB0aGUgZGV2aWNlJ3MKKyAq IGNvbm5lY3RvciBjb25maWd1cmF0aW9uIGlmIHRoaXMgZnVuY3Rpb25hbGl0eSB3YXMgcHJldmlv dXNseSBkaXNhYmxlZCBieQorICogZHJtX2ZiX2hlbHBlcl9zdXNwZW5kX2hvdHBsdWcoKS4gR2Vu ZXJhbGx5LCBhIGRyaXZlciB3aWxsIG9ubHkgd2FudCB0byBjYWxsCisgKiB0aGlzIGluIGl0J3Mg cnVudGltZSByZXN1bWUgY2FsbGJhY2tzLgorICoKKyAqIERyaXZlcnMgY2FsbGluZyBkcm1fZmJf aGVscGVyX3N1c3BlbmRfaG90cGx1ZygpIG11c3QgbWFrZSBzdXJlIHRvIGNhbGwgdGhpcworICog c29tZXdoZXJlIGluIHRoZWlyIHJ1bnRpbWUgcmVzdW1lIGNhbGxiYWNrcy4KKyAqCisgKiBTZWUg YWxzbzogZHJtX2ZiX2hlbHBlcl9zdXNwZW5kX2hvdHBsdWcoKQorICovCit2b2lkCitkcm1fZmJf aGVscGVyX3Jlc3VtZV9ob3RwbHVnKHN0cnVjdCBkcm1fZmJfaGVscGVyICpmYl9oZWxwZXIpCit7 CisJYm9vbCBjaGFuZ2VkOworCisJaWYgKCFkcm1fZmJkZXZfZW11bGF0aW9uIHx8ICFmYl9oZWxw ZXIpCisJCXJldHVybjsKKworCW11dGV4X2xvY2soJmZiX2hlbHBlci0+bG9jayk7CisKKwljaGFu Z2VkID0gIWZiX2hlbHBlci0+ZGVmZXJyZWRfc2V0dXAgJiYKKwkJICBmYl9oZWxwZXItPmZiICYm CisJCSAgZHJtX2ZiX2hlbHBlcl9pc19ib3VuZChmYl9oZWxwZXIpICYmCisJCSAgZmJfaGVscGVy LT5ob3RwbHVnX3N1c3BlbmRlZCAmJgorCQkgIGZiX2hlbHBlci0+ZGVsYXllZF9ob3RwbHVnOwor CWlmIChjaGFuZ2VkKQorCQlmYl9oZWxwZXItPmRlbGF5ZWRfaG90cGx1ZyA9IGZhbHNlOworCisJ ZmJfaGVscGVyLT5ob3RwbHVnX3N1c3BlbmRlZCA9IGZhbHNlOworCisJbXV0ZXhfdW5sb2NrKCZm Yl9oZWxwZXItPmxvY2spOworCisJaWYgKGNoYW5nZWQpCisJCWRybV9mYl9oZWxwZXJfaG90cGx1 Z19ldmVudChmYl9oZWxwZXIpOworfQorRVhQT1JUX1NZTUJPTChkcm1fZmJfaGVscGVyX3Jlc3Vt ZV9ob3RwbHVnKTsKKworLyoqCisgKiBkcm1fZmJfaGVscGVyX3N1c3BlbmRfaG90cGx1ZyAtIEF0 dGVtcHQgdG8gdGVtcG9yYXJpbHkgc3VzcGVuZCBmYl9oZWxwZXIncworICogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBob3RwbHVnIGhhbmRsaW5nCisgKiBAZmJfaGVscGVyOiBkcml2 ZXItYWxsb2NhdGVkIGZiZGV2IGhlbHBlciwgY2FuIGJlIE5VTEwKKyAqCisgKiBUZW1wb3Jhcmls eSBpbmhpYml0IGZiX2hlbHBlciBmcm9tIHJlc3BvbmRpbmcgdG8gY29ubmVjdG9yIGNoYW5nZXMg d2l0aG91dAorICogYmxvY2tpbmcgb24gZmJfaGVscGVyLT5sb2NrLCBpZiBwb3NzaWJsZS4gVGhp cyBjYW4gYmUgY2FsbGVkIGJ5IGEgRFJNCisgKiBkcml2ZXIgZWFybHkgb24gaW4gaXQncyBydW50 aW1lIHN1c3BlbmQgY2FsbGJhY2sgdG8gYm90aCBjaGVjayB3aGV0aGVyIG9yCisgKiBub3QgZmJf aGVscGVyIGlzIHN0aWxsIGJ1c3ksIGFuZCBwcmV2ZW50IGhvdHBsdWdzIHRoYXQgbWlnaHQgb2Nj dXIgcGFydC13YXkKKyAqIHRocm91Z2ggdGhlIHJ1bnRpbWUgc3VzcGVuZCBwcm9jZXNzIGZyb20g YmVpbmcgaGFuZGxlZCBieSBmYl9oZWxwZXIgdW50aWwKKyAqIGRybV9mYl9oZWxwZXJfcmVzdW1l X2hvdHBsdWcoKSBpcyBjYWxsZWQuIFRoaXMgZHJhbWF0aWNhbGx5IHNpbXBsaWZpZXMgdGhlCisg KiBydW50aW1lIHN1c3BlbmQgcHJvY2VzcywgYXMgaXQgZWxpbWluYXRlcyB0aGUgcG9zc2liaWxp dHkgdGhhdCBmYl9oZWxwZXIKKyAqIG1pZ2h0IHRyeSB0byBwZXJmb3JtIGEgbW9kZXNldCBoYWxm IHdheSB0aHJvdWdoIHRoZSBydW50aW1lIHN1c3BlbmQgcHJvY2VzcworICogaW4gcmVzcG9uc2Ug dG8gYSBjb25uZWN0b3IgaG90cGx1Zywgc29tZXRoaW5nIHdoaWNoIHdpbGwgYWxtb3N0IGNlcnRh aW5seQorICogbGVhZCB0byBkZWFkbG9ja2luZyBmb3IgZHJpdmVycyB0aGF0IG5lZWQgdG8gZGlz YWJsZSBub3JtYWwgaG90cGx1ZworICogaGFuZGxpbmcgaW4gdGhlaXIgcnVudGltZSBzdXNwZW5k IGhhbmRsZXJzLgorICoKKyAqIENhbGxzIHRvIHRoaXMgZnVuY3Rpb24gc2hvdWxkIGJlIHB1dCBh dCB0aGUgdmVyeSBzdGFydCBvZiBhIGRyaXZlcidzCisgKiBydW50aW1lIHN1c3BlbmQgb3BlcmF0 aW9uIGlmIGRlc2lyZWQuIFRoZSBkcml2ZXIgaXMgdGhlbiByZXNwb25zaWJsZSBmb3IKKyAqIHJl LWVuYWJsaW5nIGZiX2hlbHBlciBob3RwbHVnIGhhbmRsaW5nIHdoZW4gbm9ybWFsIGhvdHBsdWcg ZGV0ZWN0aW9uCisgKiBiZWNvbWVzIGF2YWlsYWJsZSBvbiB0aGUgZGV2aWNlIGFnYWluIGJ5IGNh bGxpbmcKKyAqIGRybV9mYl9oZWxwZXJfcmVzdW1lX2hvdHBsdWcoKS4gVXN1YWxseSwgYSBkcml2 ZXIgd2lsbCB3YW50IHRvIHJlLWVuYWJsZQorICogZmJfaGVscGVyIGhvdHBsdWcgaGFuZGxpbmcg b25jZSB0aGUgaG90cGx1ZyBkZXRlY3Rpb24gY2FwYWJpbGl0aWVzIG9mIGl0cworICogZGV2aWNl cyBoYXZlIHJldHVybmVkIHRvIG5vcm1hbCAoZS5nLiB3aGVuIHRoZSBkZXZpY2UgaXMgcnVudGlt ZSByZXN1bWVkLAorICogb3IgYWZ0ZXIgdGhlIHJ1bnRpbWUgc3VzcGVuZCBwcm9jZXNzIHdhcyBh Ym9ydGVkIGZvciBzb21lIHJlYXNvbikuCisgKgorICogUGxlYXNlIG5vdGUgdGhhdCB0aGlzIGZ1 bmN0aW9uIGlzIGRpZmZlcmVudCBmcm9tCisgKiBkcm1fZmJfaGVscGVyX3NldF9zdXNwZW5kKCks IGluIHRoYXQgaXQgZG9lcyBub3QgYWN0dWFsbHkgc3VzcGVuZAorICogZmJfaGVscGVyLiBJdCBv bmx5IHByZXZlbnRzIGZiX2hlbHBlciBmcm9tIHJlc3BvbmRpbmcgdG8gY29ubmVjdG9yIGhvdHBs dWdzCisgKiBvbiBpdCdzIG93bi4gR2VuZXJhbGx5LCBhIGRyaXZlciB3aWxsIG9ubHkgd2FudCB0 byBjYWxsIHRoaXMgaW4gaXRzCisgKiBydW50aW1lIHN1c3BlbmQgY2FsbGJhY2suCisgKgorICog U2VlIGFsc286IGRybV9mYl9oZWxwZXJfcmVzdW1lX2hvdHBsdWcoKQorICoKKyAqIFJFVFVSTlM6 CisgKiBUcnVlIGlmIGhvdHBsdWcgaGFuZGxpbmcgd2FzIGRpc2FibGVkIHN1Y2Nlc3NmdWxseSwg b3IgZmJfaGVscGVyIHdhc24ndAorICogYWN0dWFsbHkgaW5pdGlhbGl6ZWQvZW5hYmxlZCB5ZXQu IEZhbHNlIGlmIGdyYWJiaW5nICZmYl9oZWxwZXItPmxvY2sgd291bGQKKyAqIGhhdmUgbWVhbnQg YmxvY2tpbmcgb24gZmJfaGVscGVyLiBXaGVuIHRoaXMgZnVuY3Rpb24gcmV0dXJucyBmYWxzZSwg dGhpcworICogdXN1YWxseSBpbXBsaWVzIG1lYW5zIHRoYXQgZmJfaGVscGVyIGlzIHN0aWxsIGJ1 c3kgZG9pbmcgc29tZXRoaW5nIHN1Y2ggYXMKKyAqIHByb2JpbmcgY29ubmVjdG9ycyBvciBwZXJm b3JtaW5nIGEgbW9kZXNldC4gRHJpdmVycyBzaG91bGQgdHJlYXQgdGhpcyB0aGUKKyAqIHNhbWUg d2F5IHRoZXkgd291bGQgYW55IG90aGVyIGFjdGl2aXR5IG9uIHRoZSBkZXZpY2UsIGFuZCBhYm9y dCB0aGUgcnVudGltZQorICogc3VzcGVuZCBwcm9jZXNzIGFzIGVhcmx5IGFzIHBvc3NpYmxlIGlu IHJlc3BvbnNlLgorICovCitib29sIF9fbXVzdF9jaGVjaworZHJtX2ZiX2hlbHBlcl9zdXNwZW5k X2hvdHBsdWcoc3RydWN0IGRybV9mYl9oZWxwZXIgKmZiX2hlbHBlcikKK3sKKwlpZiAoIWRybV9m YmRldl9lbXVsYXRpb24gfHwgIWZiX2hlbHBlcikKKwkJcmV0dXJuIHRydWU7CisKKwlpZiAoIW11 dGV4X3RyeWxvY2soJmZiX2hlbHBlci0+bG9jaykpCisJCXJldHVybiBmYWxzZTsKKworCWZiX2hl bHBlci0+aG90cGx1Z19zdXNwZW5kZWQgPSB0cnVlOworCW11dGV4X3VubG9jaygmZmJfaGVscGVy LT5sb2NrKTsKKworCXJldHVybiB0cnVlOworfQorRVhQT1JUX1NZTUJPTChkcm1fZmJfaGVscGVy X3N1c3BlbmRfaG90cGx1Zyk7CisKIC8qKgogICogZHJtX2ZiX2hlbHBlcl9ob3RwbHVnX2V2ZW50 IC0gcmVzcG9uZCB0byBhIGhvdHBsdWcgbm90aWZpY2F0aW9uIGJ5CiAgKiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBwcm9iaW5nIGFsbCB0aGUgb3V0cHV0cyBhdHRhY2hlZCB0byB0aGUg ZmIKQEAgLTI3NTEsNiArMjg2OCw5IEBAIEVYUE9SVF9TWU1CT0woZHJtX2ZiX2hlbHBlcl9pbml0 aWFsX2NvbmZpZyk7CiAgKiBmb3IgYSByYWNlLWZyZWUgZmJjb24gc2V0dXAgYW5kIHdpbGwgbWFr ZSBzdXJlIHRoYXQgdGhlIGZiZGV2IGVtdWxhdGlvbiB3aWxsCiAgKiBub3QgbWlzcyBhbnkgaG90 cGx1ZyBldmVudHMuCiAgKgorICogU2VlIGFsc286IGRybV9mYl9oZWxwZXJfc3VzcGVuZF9ob3Rw bHVnKCkKKyAqIFNlZSBhbHNvOiBkcm1fZmJfaGVscGVyX3Jlc3VtZV9ob3RwbHVnKCkKKyAqCiAg KiBSRVRVUk5TOgogICogMCBvbiBzdWNjZXNzIGFuZCBhIG5vbi16ZXJvIGVycm9yIGNvZGUgb3Ro ZXJ3aXNlLgogICovCkBAIC0yNzY4LDcgKzI4ODgsOCBAQCBpbnQgZHJtX2ZiX2hlbHBlcl9ob3Rw bHVnX2V2ZW50KHN0cnVjdCBkcm1fZmJfaGVscGVyICpmYl9oZWxwZXIpCiAJCXJldHVybiBlcnI7 CiAJfQogCi0JaWYgKCFmYl9oZWxwZXItPmZiIHx8ICFkcm1fZmJfaGVscGVyX2lzX2JvdW5kKGZi X2hlbHBlcikpIHsKKwlpZiAoIWZiX2hlbHBlci0+ZmIgfHwgIWRybV9mYl9oZWxwZXJfaXNfYm91 bmQoZmJfaGVscGVyKSB8fAorCSAgICBmYl9oZWxwZXItPmhvdHBsdWdfc3VzcGVuZGVkKSB7CiAJ CWZiX2hlbHBlci0+ZGVsYXllZF9ob3RwbHVnID0gdHJ1ZTsKIAkJbXV0ZXhfdW5sb2NrKCZmYl9o ZWxwZXItPmxvY2spOwogCQlyZXR1cm4gZXJyOwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0vZHJt X2ZiX2hlbHBlci5oIGIvaW5jbHVkZS9kcm0vZHJtX2ZiX2hlbHBlci5oCmluZGV4IGIwNjk0MzNl N2ZjMS4uOWM2ZTRjZWZmM2FmIDEwMDY0NAotLS0gYS9pbmNsdWRlL2RybS9kcm1fZmJfaGVscGVy LmgKKysrIGIvaW5jbHVkZS9kcm0vZHJtX2ZiX2hlbHBlci5oCkBAIC0yMzIsNiArMjMyLDE0IEBA IHN0cnVjdCBkcm1fZmJfaGVscGVyIHsKIAkgKiBTZWUgYWxzbzogQGRlZmVycmVkX3NldHVwCiAJ ICovCiAJaW50IHByZWZlcnJlZF9icHA7CisKKwkvKioKKwkgKiBAaG90cGx1Z19zdXNwZW5kZWQ6 CisJICoKKwkgKiBXaGV0aGVyIG9yIG5vdCB3ZSBjYW4gY3VycmVudGx5IGhhbmRsZSBob3RwbHVn IGV2ZW50cywgb3IgaWYgd2UKKwkgKiBuZWVkIHRvIHdhaXQgZm9yIHRoZSBEUk0gZGV2aWNlIHRv IHVuaW5oaWJpdCB1cy4KKwkgKi8KKwlib29sIGhvdHBsdWdfc3VzcGVuZGVkOwogfTsKIAogLyoq CkBAIC0zMzAsNiArMzM4LDExIEBAIHZvaWQgZHJtX2ZiX2hlbHBlcl9mYmRldl90ZWFyZG93bihz dHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsKIAogdm9pZCBkcm1fZmJfaGVscGVyX2xhc3RjbG9zZShz dHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsKIHZvaWQgZHJtX2ZiX2hlbHBlcl9vdXRwdXRfcG9sbF9j aGFuZ2VkKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOworCit2b2lkIGRybV9mYl9oZWxwZXJfcmVz dW1lX2hvdHBsdWcoc3RydWN0IGRybV9mYl9oZWxwZXIgKmZiX2hlbHBlcik7Citib29sIF9fbXVz dF9jaGVjaworZHJtX2ZiX2hlbHBlcl9zdXNwZW5kX2hvdHBsdWcoc3RydWN0IGRybV9mYl9oZWxw ZXIgKmZiX2hlbHBlcik7CisKICNlbHNlCiBzdGF0aWMgaW5saW5lIHZvaWQgZHJtX2ZiX2hlbHBl cl9wcmVwYXJlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJCQkJCXN0cnVjdCBkcm1fZmJfaGVs cGVyICpoZWxwZXIsCkBAIC01NjQsNiArNTc3LDE1IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBkcm1f ZmJfaGVscGVyX291dHB1dF9wb2xsX2NoYW5nZWQoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIHsK IH0KIAorc3RhdGljIGlubGluZSB2b2lkCitkcm1fZmJfaGVscGVyX3Jlc3VtZV9ob3RwbHVnKHN0 cnVjdCBkcm1fZmJfaGVscGVyICpmYl9oZWxwZXIpCit7Cit9CitzdGF0aWMgaW5saW5lIGJvb2wg X19tdXN0X2NoZWNrCitkcm1fZmJfaGVscGVyX3N1c3BlbmRfaG90cGx1ZyhzdHJ1Y3QgZHJtX2Zi X2hlbHBlciAqZmJfaGVscGVyKQoreworCXJldHVybiB0cnVlOworfQogI2VuZGlmCiAKIHN0YXRp YyBpbmxpbmUgaW50Ci0tIAoyLjE3LjEKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZy ZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3Rp bmZvL2RyaS1kZXZlbAo=