From mboxrd@z Thu Jan 1 00:00:00 1970 From: Lyude Paul Subject: [PATCH v3 3/8] drm/fb_helper: Introduce hotplug_suspend/resume() Date: Mon, 30 Jul 2018 20:39:48 -0400 Message-ID: <20180731003954.19962-4-lyude@redhat.com> References: <20180731003954.19962-1-lyude@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20180731003954.19962-1-lyude-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: nouveau-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "Nouveau" To: nouveau-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Cc: David Airlie , Gustavo Padovan , Maarten Lankhorst , stable-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, Sean Paul , dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.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 ZSBpc3N1ZXMuCgpTaWduZWQtb2ZmLWJ5OiBMeXVkZSBQYXVsIDxseXVkZUByZWRoYXQuY29tPgpD Yzogc3RhYmxlQHZnZXIua2VybmVsLm9yZwpDYzogTHVrYXMgV3VubmVyIDxsdWthc0B3dW5uZXIu ZGU+CkNjOiBLYXJvbCBIZXJic3QgPGthcm9saGVyYnN0QGdtYWlsLmNvbT4KLS0tCiBkcml2ZXJz L2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jIHwgNjUgKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrCiBpbmNsdWRlL2RybS9kcm1fZmJfaGVscGVyLmggICAgIHwgMjAgKysrKysrKysrKwog MiBmaWxlcyBjaGFuZ2VkLCA4NSBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2RybV9mYl9oZWxwZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMK aW5kZXggMmVlMWVhYTY2MTg4Li4yOGQ1OWJlZmJjOTIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9kcm1fZmJfaGVscGVyLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIu YwpAQCAtMjczMyw2ICsyNzMzLDY2IEBAIGludCBkcm1fZmJfaGVscGVyX2luaXRpYWxfY29uZmln KHN0cnVjdCBkcm1fZmJfaGVscGVyICpmYl9oZWxwZXIsIGludCBicHBfc2VsKQogfQogRVhQT1JU X1NZTUJPTChkcm1fZmJfaGVscGVyX2luaXRpYWxfY29uZmlnKTsKIAorLyoqCisgKiBkcm1fZmJf aGVscGVyX3Jlc3VtZV9ob3RwbHVnIC0gQWxsb3cgZmJfaGVscGVyIHRvIGhhbmRsZSBwcm9iaW5n IG5ldworICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbm5lY3RvcnMgYWdhaW4s IGFuZCBicmluZyBpdCB1cCB0byBkYXRlCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgd2l0aCB0aGUgY3VycmVudCBkZXZpY2UncyBjb25uZWN0b3Igc3RhdHVzCisgKiBmYl9oZWxw ZXI6IGRyaXZlci1hbGxvY2F0ZWQgZmJkZXYgaGVscGVyLCBjYW4gYmUgTlVMTAorICoKKyAqIEFs bG93IGZiX2hlbHBlciB0byByZWFjdCB0byBjb25uZWN0b3Igc3RhdHVzIGNoYW5nZXMgYWdhaW4g YWZ0ZXIgaGF2aW5nCisgKiBiZWVuIGRpc2FibGVkIHRocm91Z2ggZHJtX2ZiX2hlbHBlcl9zdXNw ZW5kX2hvdHBsdWcoKS4gVGhpcyBhbHNvIHNjaGVkdWxlcworICogYSBmYl9oZWxwZXIgaG90cGx1 ZyBldmVudCB0byBicmluZyBmYl9oZWxwZXIgdXAgdG8gZGF0ZSB3aXRoIHRoZSBjdXJyZW50Cisg KiBzdGF0dXMgb2YgdGhlIERSTSBkZXZpY2UncyBjb25uZWN0b3JzLgorICovCit2b2lkCitkcm1f ZmJfaGVscGVyX3Jlc3VtZV9ob3RwbHVnKHN0cnVjdCBkcm1fZmJfaGVscGVyICpmYl9oZWxwZXIp Cit7CisJZmJfaGVscGVyLT5ob3RwbHVnX3N1c3BlbmRlZCA9IGZhbHNlOworCWRybV9mYl9oZWxw ZXJfaG90cGx1Z19ldmVudChmYl9oZWxwZXIpOworfQorRVhQT1JUX1NZTUJPTChkcm1fZmJfaGVs cGVyX3Jlc3VtZV9ob3RwbHVnKTsKKworLyoqCisgKiBkcm1fZmJfaGVscGVyX3N1c3BlbmRfaG90 cGx1ZyAtIEF0dGVtcHQgdG8gdGVtcG9yYXJpbHkgaW5oaWJpdCBmYl9oZWxwZXIncworICogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhYmlsaXR5IHRvIHJlc3BvbmQgdG8gY29ubmVj dG9yIGNoYW5nZXMKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aG91dCB3 YWl0aW5nCisgKiBAZmJfaGVscGVyOiBkcml2ZXItYWxsb2NhdGVkIGZiZGV2IGhlbHBlciwgY2Fu IGJlIE5VTEwKKyAqCisgKiBUZW1wb3JhcmlseSBwcmV2ZW50IGZiX2hlbHBlciBmcm9tIGJlaW5n IGFibGUgdG8gaGFuZGxlIGNvbm5lY3RvciBjaGFuZ2VzLAorICogYnV0IG9ubHkgaWYgaXQgaXNu J3QgYnVzeSBkb2luZyBzb21ldGhpbmcgZWxzZS4gVGhlIGNvbm5lY3RvciBwcm9iaW5nCisgKiBy b3V0aW5lcyBpbiBmYl9oZWxwZXIgY2FuIHBvdGVudGlhbGx5IGdyYWIgYW55IG1vZGVzZXR0aW5n IGxvY2sgaW1hZ2luYWJsZSwKKyAqIHdoaWNoIGRyYW1hdGljYWxseSBjb21wbGljYXRlcyB0aGUg cnVudGltZSBzdXNwZW5kIHByb2Nlc3MuIFRoaXMgaGVscGVyIGNhbgorICogYmUgdXNlZCB0byBz aW1wbGlmeSB0aGUgcHJvY2VzcyBvZiBydW50aW1lIHN1c3BlbmQgYnkgYWxsb3dpbmcgdGhlIGRy aXZlcgorICogdG8gZGlzYWJsZSB1bnByZWRpY3RhYmxlIGZiX2hlbHBlciBvcGVyYXRpb25zIGFz IGVhcmx5IGFzIHBvc3NpYmxlLCB3aXRob3V0CisgKiByZXF1aXJpbmcgdGhhdCB3ZSB0cnkgd2Fp dGluZyBvbiBmYl9oZWxwZXIgKGFzIHRoaXMgY291bGQgbGVhZCB0byB2ZXJ5CisgKiBkaWZmaWN1 bHQgdG8gc29sdmUgZGVhZGxvY2tzIHdpdGggcnVudGltZSBzdXNwZW5kIGNvZGUgaWYgZmJfaGVs cGVyIGVuZHMgdXAKKyAqIG5lZWRpbmcgdG8gYWNxdWlyZSBhIHJ1bnRpbWUgUE0gcmVmZXJlbmNl KS4KKyAqCisgKiBUaGlzIGNhbGwgc2hvdWxkIGJlIHB1dCBhdCB0aGUgdmVyeSBzdGFydCBvZiBh IGRyaXZlcidzIHJ1bnRpbWUgc3VzcGVuZAorICogb3BlcmF0aW9uIGlmIGRlc2lyZWQuIFRoZSBk cml2ZXIgbXVzdCBiZSByZXNwb25zaWJsZSBmb3IgcmUtZW5hYmxpbmcKKyAqIGZiX2hlbHBlciBo b3RwbHVnIGhhbmRsaW5nIHdoZW4gbm9ybWFsIGhvdHBsdWcgZGV0ZWN0aW9uIGJlY29tZXMgYXZh aWxhYmxlCisgKiBvbiB0aGUgZGV2aWNlIGFnYWluLiBUaGlzIHdpbGwgdXN1YWxseSBoYXBwZW4g aWYgcnVudGltZSBzdXNwZW5kIGlzCisgKiBhYm9ydGVkLCBvciB3aGVuIHRoZSBkZXZpY2UgaXMg cnVudGltZSByZXN1bWVkLgorICoKKyAqIFJldHVybnM6IHRydWUgaWYgaG90cGx1ZyBoYW5kbGlu ZyB3YXMgZGlzYWJsZWQsIGZhbHNlIGlmIGRpc2FibGluZyBob3RwbHVnCisgKiBoYW5kbGluZyB3 b3VsZCBtZWFuIHdhaXRpbmcgb24gZmJfaGVscGVyLgorICovCitib29sCitkcm1fZmJfaGVscGVy X3N1c3BlbmRfaG90cGx1ZyhzdHJ1Y3QgZHJtX2ZiX2hlbHBlciAqZmJfaGVscGVyKQoreworCWlu dCByZXQ7CisKKwlyZXQgPSBtdXRleF90cnlsb2NrKCZmYl9oZWxwZXItPmxvY2spOworCWlmICgh cmV0KQorCQlyZXR1cm4gZmFsc2U7CisKKwlmYl9oZWxwZXItPmhvdHBsdWdfc3VzcGVuZGVkID0g dHJ1ZTsKKwltdXRleF91bmxvY2soJmZiX2hlbHBlci0+bG9jayk7CisKKwlyZXR1cm4gdHJ1ZTsK K30KK0VYUE9SVF9TWU1CT0woZHJtX2ZiX2hlbHBlcl9zdXNwZW5kX2hvdHBsdWcpOworCiAvKioK ICAqIGRybV9mYl9oZWxwZXJfaG90cGx1Z19ldmVudCAtIHJlc3BvbmQgdG8gYSBob3RwbHVnIG5v dGlmaWNhdGlvbiBieQogICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvYmluZyBh bGwgdGhlIG91dHB1dHMgYXR0YWNoZWQgdG8gdGhlIGZiCkBAIC0yNzc0LDYgKzI4MzQsMTEgQEAg aW50IGRybV9mYl9oZWxwZXJfaG90cGx1Z19ldmVudChzdHJ1Y3QgZHJtX2ZiX2hlbHBlciAqZmJf aGVscGVyKQogCQlyZXR1cm4gZXJyOwogCX0KIAorCWlmIChmYl9oZWxwZXItPmhvdHBsdWdfc3Vz cGVuZGVkKSB7CisJCW11dGV4X3VubG9jaygmZmJfaGVscGVyLT5sb2NrKTsKKwkJcmV0dXJuIGVy cjsKKwl9CisKIAlEUk1fREVCVUdfS01TKCJcbiIpOwogCiAJZHJtX3NldHVwX2NydGNzKGZiX2hl bHBlciwgZmJfaGVscGVyLT5mYi0+d2lkdGgsIGZiX2hlbHBlci0+ZmItPmhlaWdodCk7CmRpZmYg LS1naXQgYS9pbmNsdWRlL2RybS9kcm1fZmJfaGVscGVyLmggYi9pbmNsdWRlL2RybS9kcm1fZmJf aGVscGVyLmgKaW5kZXggYjA2OTQzM2U3ZmMxLi4zMDg4MTEzMTA3NWMgMTAwNjQ0Ci0tLSBhL2lu Y2x1ZGUvZHJtL2RybV9mYl9oZWxwZXIuaAorKysgYi9pbmNsdWRlL2RybS9kcm1fZmJfaGVscGVy LmgKQEAgLTIzMiw2ICsyMzIsMTQgQEAgc3RydWN0IGRybV9mYl9oZWxwZXIgewogCSAqIFNlZSBh bHNvOiBAZGVmZXJyZWRfc2V0dXAKIAkgKi8KIAlpbnQgcHJlZmVycmVkX2JwcDsKKworCS8qKgor CSAqIEBob3RwbHVnX3N1c3BlbmRlZDoKKwkgKgorCSAqIFdoZXRoZXIgb3Igbm90IHdlIGNhbiBj dXJyZW50bHkgaGFuZGxlIGhvdHBsdWcgZXZlbnRzLCBvciBpZiB3ZQorCSAqIG5lZWQgdG8gd2Fp dCBmb3IgdGhlIERSTSBkZXZpY2UgdG8gdW5pbmhpYml0IHVzLgorCSAqLworCWJvb2wgaG90cGx1 Z19zdXNwZW5kZWQ7CiB9OwogCiAvKioKQEAgLTMzMCw2ICszMzgsMTAgQEAgdm9pZCBkcm1fZmJf aGVscGVyX2ZiZGV2X3RlYXJkb3duKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwogCiB2b2lkIGRy bV9mYl9oZWxwZXJfbGFzdGNsb3NlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwogdm9pZCBkcm1f ZmJfaGVscGVyX291dHB1dF9wb2xsX2NoYW5nZWQoc3RydWN0IGRybV9kZXZpY2UgKmRldik7CisK K3ZvaWQgZHJtX2ZiX2hlbHBlcl9yZXN1bWVfaG90cGx1ZyhzdHJ1Y3QgZHJtX2ZiX2hlbHBlciAq ZmJfaGVscGVyKTsKK2Jvb2wgZHJtX2ZiX2hlbHBlcl9zdXNwZW5kX2hvdHBsdWcoc3RydWN0IGRy bV9mYl9oZWxwZXIgKmZiX2hlbHBlcik7CisKICNlbHNlCiBzdGF0aWMgaW5saW5lIHZvaWQgZHJt X2ZiX2hlbHBlcl9wcmVwYXJlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJCQkJCXN0cnVjdCBk cm1fZmJfaGVscGVyICpoZWxwZXIsCkBAIC01NjQsNiArNTc2LDE0IEBAIHN0YXRpYyBpbmxpbmUg dm9pZCBkcm1fZmJfaGVscGVyX291dHB1dF9wb2xsX2NoYW5nZWQoc3RydWN0IGRybV9kZXZpY2Ug KmRldikKIHsKIH0KIAorc3RhdGljIGlubGluZSB2b2lkCitkcm1fZmJfaGVscGVyX3Jlc3VtZV9o b3RwbHVnKHN0cnVjdCBkcm1fZmJfaGVscGVyICpmYl9oZWxwZXIpCit7Cit9CitzdGF0aWMgaW5s aW5lIGJvb2wKK2RybV9mYl9oZWxwZXJfc3VzcGVuZF9ob3RwbHVnKHN0cnVjdCBkcm1fZmJfaGVs cGVyICpmYl9oZWxwZXIpCit7Cit9CiAjZW5kaWYKIAogc3RhdGljIGlubGluZSBpbnQKLS0gCjIu MTcuMQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KTm91 dmVhdSBtYWlsaW5nIGxpc3QKTm91dmVhdUBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9s aXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9ub3V2ZWF1Cg==