From mboxrd@z Thu Jan 1 00:00:00 1970 From: Lyude Paul Subject: [PATCH v6 3/5] drm/nouveau: Fix deadlock with fb_helper with async RPM requests Date: Mon, 13 Aug 2018 15:07:01 -0400 Message-ID: <20180813190706.24172-4-lyude@redhat.com> References: <20180813190706.24172-1-lyude@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20180813190706.24172-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 , dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, stable-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, Ben Skeggs , Thierry Reding , =?UTF-8?q?Ville=20Syrj=C3=A4l=C3=A4?= 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 Ml0gIHJldF9mcm9tX2ZvcmsrMHgzYS8weDUwClsgIDI0Ni43NTY4NDddCiAgICAgICAgICAgU2hv d2luZyBhbGwgbG9ja3MgaGVsZCBpbiB0aGUgc3lzdGVtOgpbICAyNDYuNzU4MjYxXSAzIGxvY2tz IGhlbGQgYnkga3dvcmtlci80OjAvMzc6ClsgIDI0Ni43NTkwMTZdICAjMDogMDAwMDAwMDBmOGRm NGQyZCAoKHdxX2NvbXBsZXRpb24pImV2ZW50cyIpeysuKy59LCBhdDogcHJvY2Vzc19vbmVfd29y aysweDFiMy8weDYyMApbICAyNDYuNzU5ODU2XSAgIzE6IDAwMDAwMDAwZTYwNjU0NjEgKCh3b3Jr X2NvbXBsZXRpb24pKCYoJmRldi0+bW9kZV9jb25maWcub3V0cHV0X3BvbGxfd29yayktPndvcmsp KXsrLisufSwgYXQ6IHByb2Nlc3Nfb25lX3dvcmsrMHgxYjMvMHg2MjAKWyAgMjQ2Ljc2MDY3MF0g ICMyOiAwMDAwMDAwMGNiNjY3MzVmICgmaGVscGVyLT5sb2NrKXsrLisufSwgYXQ6IGRybV9mYl9o ZWxwZXJfaG90cGx1Z19ldmVudC5wYXJ0LjI4KzB4MjAvMHhiMCBbZHJtX2ttc19oZWxwZXJdClsg IDI0Ni43NjE1MTZdIDIgbG9ja3MgaGVsZCBieSBrd29ya2VyLzA6MS82MDoKWyAgMjQ2Ljc2MjI3 NF0gICMwOiAwMDAwMDAwMGZmZjZiZTBmICgod3FfY29tcGxldGlvbikicG0iKXsrLisufSwgYXQ6 IHByb2Nlc3Nfb25lX3dvcmsrMHgxYjMvMHg2MjAKWyAgMjQ2Ljc2Mjk4Ml0gICMxOiAwMDAwMDAw MDVhYjQ0ZmI0ICgod29ya19jb21wbGV0aW9uKSgmZGV2LT5wb3dlci53b3JrKSl7Ky4rLn0sIGF0 OiBwcm9jZXNzX29uZV93b3JrKzB4MWIzLzB4NjIwClsgIDI0Ni43NjM4OTBdIDEgbG9jayBoZWxk IGJ5IGtodW5ndGFza2QvNjQ6ClsgIDI0Ni43NjQ2NjRdICAjMDogMDAwMDAwMDA4Y2I4YjVjMyAo cmN1X3JlYWRfbG9jayl7Li4uLn0sIGF0OiBkZWJ1Z19zaG93X2FsbF9sb2NrcysweDIzLzB4MTg1 ClsgIDI0Ni43NjU1ODhdIDUgbG9ja3MgaGVsZCBieSBrd29ya2VyLzQ6Mi80MjI6ClsgIDI0Ni43 NjY0NDBdICAjMDogMDAwMDAwMDAyMzJmMDk1OSAoKHdxX2NvbXBsZXRpb24pImV2ZW50c19sb25n Iil7Ky4rLn0sIGF0OiBwcm9jZXNzX29uZV93b3JrKzB4MWIzLzB4NjIwClsgIDI0Ni43NjczOTBd ICAjMTogMDAwMDAwMDBiYjU5YjEzNCAoKHdvcmtfY29tcGxldGlvbikoJm1nci0+d29yaykpeysu Ky59LCBhdDogcHJvY2Vzc19vbmVfd29yaysweDFiMy8weDYyMApbICAyNDYuNzY4MTU0XSAgIzI6 IDAwMDAwMDAwY2I2NjczNWYgKCZoZWxwZXItPmxvY2speysuKy59LCBhdDogZHJtX2ZiX2hlbHBl cl9yZXN0b3JlX2ZiZGV2X21vZGVfdW5sb2NrZWQrMHg0Yy8weGIwIFtkcm1fa21zX2hlbHBlcl0K WyAgMjQ2Ljc2ODk2Nl0gICMzOiAwMDAwMDAwMDRjOGYwYjZiIChjcnRjX3d3X2NsYXNzX2FjcXVp cmUpeysuKy59LCBhdDogcmVzdG9yZV9mYmRldl9tb2RlX2F0b21pYysweDRiLzB4MjQwIFtkcm1f a21zX2hlbHBlcl0KWyAgMjQ2Ljc2OTkyMV0gICM0OiAwMDAwMDAwMDRjMzRhMjk2IChjcnRjX3d3 X2NsYXNzX211dGV4KXsrLisufSwgYXQ6IGRybV9tb2Rlc2V0X2JhY2tvZmYrMHg4YS8weDFiMCBb ZHJtXQpbICAyNDYuNzcwODM5XSAxIGxvY2sgaGVsZCBieSBkbWVzZy8xMDM4OgpbICAyNDYuNzcx NzM5XSAyIGxvY2tzIGhlbGQgYnkgenNoLzExNzI6ClsgIDI0Ni43NzI2NTBdICAjMDogMDAwMDAw MDA4MzZkMDQzOCAoJnR0eS0+bGRpc2Nfc2VtKXsrKysrfSwgYXQ6IGxkc2VtX2Rvd25fcmVhZCsw eDM3LzB4NDAKWyAgMjQ2Ljc3MzY4MF0gICMxOiAwMDAwMDAwMDFmNGY0ZDQ4ICgmbGRhdGEtPmF0 b21pY19yZWFkX2xvY2speysuKy59LCBhdDogbl90dHlfcmVhZCsweGMxLzB4ODcwCgpbICAyNDYu Nzc1NTIyXSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCkFm dGVyIHRyeWluZyBkb3plbnMgb2YgZGlmZmVyZW50IHNvbHV0aW9ucywgSSBmb3VuZCBvbmUgdmVy eSBzaW1wbGUgb25lCnRoYXQgc2hvdWxkIGFsc28gaGF2ZSB0aGUgYmVuZWZpdCBvZiBwcmV2ZW50 aW5nIHVzIGZyb20gaGF2aW5nIHRvIGZpZ2h0CmxvY2tpbmcgZm9yIHRoZSByZXN0IG9mIG91ciBs aXZlcy4gU28sIHdlIHdvcmsgYXJvdW5kIHRoZXNlIGRlYWRsb2NrcyBieQpkZWZlcnJpbmcgYWxs IGZiY29uIGhvdHBsdWcgZXZlbnRzIHRoYXQgaGFwcGVuIGFmdGVyIHRoZSBydW50aW1lIHN1c3Bl bmQKcHJvY2VzcyBzdGFydHMgdW50aWwgYWZ0ZXIgdGhlIGRldmljZSBpcyByZXN1bWVkIGFnYWlu LgoKQ2hhbmdlcyBzaW5jZSB2NToKIC0gQ29tZSB1cCB3aXRoIHRoZSAoaG9wZWZ1bGx5IGZpbmFs KSBzb2x1dGlvbiBmb3Igc29sdmluZyB0aGlzIGR1bWIKICAgcHJvYmxlbSwgb25lIHRoYXQgaXMg YSBsb3QgbGVzcyBsaWtlbHkgdG8gY2F1c2UgaXNzdWVzIHdpdGggbG9ja2luZyBpbgogICB0aGUg ZnV0dXJlLiBUaGlzIHNob3VsZCB3b3JrIGFyb3VuZCBhbGwgZGVhZGxvY2sgY29uZGl0aW9ucyB3 aXRoIGZiY29uCiAgIGJyb3VnaHQgdXAgdGh1cyBmYXIuCgpDaGFuZ2VzIHNpbmNlIHY0OgogLSBB ZGQgbm91dmVhdV9mYmNvbl9ob3RwbHVnZ2VkX2luX3N1c3BlbmQoKSB0byB3b3JrYXJvdW5kIGRl YWRsb2NrCiAgIGNvbmRpdGlvbiB0aGF0IEx1a2FzIGRlc2NyaWJlZAogLSBKdXN0IG1vdmUgYWxs IG9mIHRoaXMgb3V0IG9mIGRybV9mYl9oZWxwZXIuIEl0IHNlZW1zIHRoYXQgb3RoZXIgRFJNCiAg IGRyaXZlcnMgaGF2ZSBhbHJlYWR5IGZpZ3VyZWQgb3V0IG90aGVyIHdvcmthcm91bmRzIGZvciB0 aGlzLiBJZiBvdGhlcgogICBkcml2ZXJzIGRvIGVuZCB1cCBuZWVkaW5nIHRoaXMgaW4gdGhlIGZ1 dHVyZSwgd2UgY2FuIGp1c3QgbW92ZSB0aGlzCiAgIGJhY2sgaW50byBkcm1fZmJfaGVscGVyIGFn YWluLgoKQ2hhbmdlcyBzaW5jZSB2MzoKLSBBY3R1YWxseSBjaGVjayBpZiBmYl9oZWxwZXIgaXMg TlVMTCBpbiBib3RoIG5ldyBoZWxwZXJzCi0gQWN0dWFsbHkgY2hlY2sgZHJtX2ZiZGV2X2VtdWxh dGlvbiBpbiBib3RoIG5ldyBoZWxwZXJzCi0gRG9uJ3QgZmlyZSBvZmYgYSBmYl9oZWxwZXIgaG90 cGx1ZyB1bmNvbmRpdGlvbmFsbHk7IG9ubHkgZG8gaXQgaWYKICB0aGUgZm9sbG93aW5nIGNvbmRp dGlvbnMgYXJlIHRydWUgKGFzIG90aGVyd2lzZSwgY2FsbGluZyB0aGlzIGluIHRoZQogIHdyb25n IHNwb3Qgd2lsbCBjYXVzZSBCYWQgVGhpbmdzIHRvIGhhcHBlbik6CiAgLSBmYl9oZWxwZXIgaG90 cGx1ZyBoYW5kbGluZyB3YXMgYWN0dWFsbHkgaW5oaWJpdGVkIHByZXZpb3VzbHkKICAtIGZiX2hl bHBlciBhY3R1YWxseSBoYXMgYSBkZWxheWVkIGhvdHBsdWcgcGVuZGluZwogIC0gZmJfaGVscGVy IGlzIGFjdHVhbGx5IGJvdW5kCiAgLSBmYl9oZWxwZXIgaXMgYWN0dWFsbHkgaW5pdGlhbGl6ZWQK LSBBZGQgX19tdXN0X2NoZWNrIHRvIGRybV9mYl9oZWxwZXJfc3VzcGVuZF9ob3RwbHVnKCkuIFRo ZXJlJ3Mgbm8KICBzaXR1YXRpb24gd2hlcmUgYSBkcml2ZXIgd291bGQgYWN0dWFsbHkgd2FudCB0 byB1c2UgdGhpcyB3aXRob3V0CiAgY2hlY2tpbmcgdGhlIHJldHVybiB2YWx1ZSwgc28gZW5mb3Jj ZSB0aGF0Ci0gUmV3cml0ZSBhbmQgY2xhcmlmeSB0aGUgZG9jdW1lbnRhdGlvbiBmb3IgYm90aCBo ZWxwZXJzLgotIE1ha2Ugc3VyZSB0byByZXR1cm4gdHJ1ZSBpbiB0aGUgZHJtX2ZiX2hlbHBlcl9z dXNwZW5kX2hvdHBsdWcoKSBzdHViCiAgdGhhdCdzIHByb3ZpZGVkIGluIGRybV9mYl9oZWxwZXIu aCB3aGVuIENPTkZJR19EUk1fRkJERVZfRU1VTEFUSU9OCiAgaXNuJ3QgZW5hYmxlZAotIEFjdHVh bGx5IGdyYWIgdGhlIHRvcGxldmVsIGZiX2hlbHBlciBsb2NrIGluCiAgZHJtX2ZiX2hlbHBlcl9y ZXN1bWVfaG90cGx1ZygpLCBzaW5jZSBpdCdzIHBvc3NpYmxlIG90aGVyIGFjdGl2aXR5CiAgKHN1 Y2ggYXMgYSBob3RwbHVnKSBjb3VsZCBiZSBnb2luZyBvbiBhdCB0aGUgc2FtZSB0aW1lIHRoZSBk cml2ZXIKICBjYWxscyBkcm1fZmJfaGVscGVyX3Jlc3VtZV9ob3RwbHVnKCkuIFdlIG5lZWQgdGhp cyB0byBjaGVjayB3aGV0aGVyIG9yCiAgbm90IGRybV9mYl9oZWxwZXJfaG90cGx1Z19ldmVudCgp IG5lZWRzIHRvIGJlIGNhbGxlZCBhbnl3YXkKClNpZ25lZC1vZmYtYnk6IEx5dWRlIFBhdWwgPGx5 dWRlQHJlZGhhdC5jb20+CkNjOiBzdGFibGVAdmdlci5rZXJuZWwub3JnCkNjOiBMdWthcyBXdW5u ZXIgPGx1a2FzQHd1bm5lci5kZT4KQ2M6IEthcm9sIEhlcmJzdCA8a2Fyb2xoZXJic3RAZ21haWwu Y29tPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L2Rpc3BudjUwL2Rpc3AuYyAgIHwgIDIg Ky0KIGRyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L25vdXZlYXVfZGlzcGxheS5jIHwgIDIgKy0KIGRy aXZlcnMvZ3B1L2RybS9ub3V2ZWF1L25vdXZlYXVfZmJjb24uYyAgIHwgNzIgKysrKysrKysrKysr KysrKysrKysrKysKIGRyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L25vdXZlYXVfZmJjb24uaCAgIHwg IDcgKysrCiA0IGZpbGVzIGNoYW5nZWQsIDgxIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0p CgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvZGlzcG52NTAvZGlzcC5jIGIv ZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvZGlzcG52NTAvZGlzcC5jCmluZGV4IDhiNTIyYTliMTJm Ni4uYTA3NzIzODllZDkwIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9kaXNw bnY1MC9kaXNwLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvZGlzcG52NTAvZGlzcC5j CkBAIC0yMDQ5LDcgKzIwNDksNyBAQCBudjUwX2Rpc3BfYXRvbWljX3N0YXRlX2FsbG9jKHN0cnVj dCBkcm1fZGV2aWNlICpkZXYpCiBzdGF0aWMgY29uc3Qgc3RydWN0IGRybV9tb2RlX2NvbmZpZ19m dW5jcwogbnY1MF9kaXNwX2Z1bmMgPSB7CiAJLmZiX2NyZWF0ZSA9IG5vdXZlYXVfdXNlcl9mcmFt ZWJ1ZmZlcl9jcmVhdGUsCi0JLm91dHB1dF9wb2xsX2NoYW5nZWQgPSBkcm1fZmJfaGVscGVyX291 dHB1dF9wb2xsX2NoYW5nZWQsCisJLm91dHB1dF9wb2xsX2NoYW5nZWQgPSBub3V2ZWF1X2ZiY29u X291dHB1dF9wb2xsX2NoYW5nZWQsCiAJLmF0b21pY19jaGVjayA9IG52NTBfZGlzcF9hdG9taWNf Y2hlY2ssCiAJLmF0b21pY19jb21taXQgPSBudjUwX2Rpc3BfYXRvbWljX2NvbW1pdCwKIAkuYXRv bWljX3N0YXRlX2FsbG9jID0gbnY1MF9kaXNwX2F0b21pY19zdGF0ZV9hbGxvYywKZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L25vdXZlYXVfZGlzcGxheS5jIGIvZHJpdmVycy9n cHUvZHJtL25vdXZlYXUvbm91dmVhdV9kaXNwbGF5LmMKaW5kZXggMWQzNmFiNWQ0Nzk2Li40Yjg3 M2U2NjhiMjYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L25vdXZlYXVfZGlz cGxheS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L25vdXZlYXVfZGlzcGxheS5jCkBA IC0yOTMsNyArMjkzLDcgQEAgbm91dmVhdV91c2VyX2ZyYW1lYnVmZmVyX2NyZWF0ZShzdHJ1Y3Qg ZHJtX2RldmljZSAqZGV2LAogCiBzdGF0aWMgY29uc3Qgc3RydWN0IGRybV9tb2RlX2NvbmZpZ19m dW5jcyBub3V2ZWF1X21vZGVfY29uZmlnX2Z1bmNzID0gewogCS5mYl9jcmVhdGUgPSBub3V2ZWF1 X3VzZXJfZnJhbWVidWZmZXJfY3JlYXRlLAotCS5vdXRwdXRfcG9sbF9jaGFuZ2VkID0gZHJtX2Zi X2hlbHBlcl9vdXRwdXRfcG9sbF9jaGFuZ2VkLAorCS5vdXRwdXRfcG9sbF9jaGFuZ2VkID0gbm91 dmVhdV9mYmNvbl9vdXRwdXRfcG9sbF9jaGFuZ2VkLAogfTsKIAogCmRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1X2ZiY29uLmMgYi9kcml2ZXJzL2dwdS9kcm0vbm91 dmVhdS9ub3V2ZWF1X2ZiY29uLmMKaW5kZXggODVjMWYxMGJjMmI2Li5jN2U4NmU5MjMyYTYgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L25vdXZlYXVfZmJjb24uYworKysgYi9k cml2ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1X2ZiY29uLmMKQEAgLTQ2Niw2ICs0NjYsNyBA QCBub3V2ZWF1X2ZiY29uX3NldF9zdXNwZW5kX3dvcmsoc3RydWN0IHdvcmtfc3RydWN0ICp3b3Jr KQogCWNvbnNvbGVfdW5sb2NrKCk7CiAKIAlpZiAoc3RhdGUgPT0gRkJJTkZPX1NUQVRFX1JVTk5J TkcpIHsKKwkJbm91dmVhdV9mYmNvbl9ob3RwbHVnX3Jlc3VtZShkcm0tPmZiY29uKTsKIAkJcG1f cnVudGltZV9tYXJrX2xhc3RfYnVzeShkcm0tPmRldi0+ZGV2KTsKIAkJcG1fcnVudGltZV9wdXRf c3luYyhkcm0tPmRldi0+ZGV2KTsKIAl9CkBAIC00ODcsNiArNDg4LDc2IEBAIG5vdXZlYXVfZmJj b25fc2V0X3N1c3BlbmQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgaW50IHN0YXRlKQogCXNjaGVk dWxlX3dvcmsoJmRybS0+ZmJjb25fd29yayk7CiB9CiAKK3ZvaWQKK25vdXZlYXVfZmJjb25fb3V0 cHV0X3BvbGxfY2hhbmdlZChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQoreworCXN0cnVjdCBub3V2 ZWF1X2RybSAqZHJtID0gbm91dmVhdV9kcm0oZGV2KTsKKwlzdHJ1Y3Qgbm91dmVhdV9mYmRldiAq ZmJjb24gPSBkcm0tPmZiY29uOworCWludCByZXQ7CisKKwlpZiAoIWZiY29uKQorCQlyZXR1cm47 CisKKwltdXRleF9sb2NrKCZmYmNvbi0+aG90cGx1Z19sb2NrKTsKKworCXJldCA9IHBtX3J1bnRp bWVfZ2V0KGRldi0+ZGV2KTsKKwlpZiAocmV0ID09IDEgfHwgcmV0ID09IC1FQUNDRVMpIHsKKwkJ ZHJtX2ZiX2hlbHBlcl9ob3RwbHVnX2V2ZW50KCZmYmNvbi0+aGVscGVyKTsKKworCQlwbV9ydW50 aW1lX21hcmtfbGFzdF9idXN5KGRldi0+ZGV2KTsKKwkJcG1fcnVudGltZV9wdXRfYXV0b3N1c3Bl bmQoZGV2LT5kZXYpOworCX0gZWxzZSBpZiAocmV0ID09IDApIHsKKwkJLyogSWYgdGhlIEdQVSB3 YXMgYWxyZWFkeSBpbiB0aGUgcHJvY2VzcyBvZiBzdXNwZW5kaW5nIGJlZm9yZQorCQkgKiB0aGlz IGV2ZW50IGhhcHBlbmVkLCB0aGVuIHdlIGNhbid0IGJsb2NrIGhlcmUgYXMgd2UnbGwKKwkJICog ZGVhZGxvY2sgdGhlIHJ1bnRpbWUgcG1vcHMgc2luY2UgdGhleSB3YWl0IGZvciB1cyB0bworCQkg KiBmaW5pc2guIFNvLCBqdXN0IGRlZmVyIHRoaXMgZXZlbnQgZm9yIHdoZW4gd2UgcnVudGltZQor CQkgKiByZXN1bWUgYWdhaW4uIEl0IHdpbGwgYmUgaGFuZGxlZCBieSBmYmNvbl93b3JrLgorCQkg Ki8KKwkJTlZfREVCVUcoZHJtLCAiZmJjb24gSFBEIGV2ZW50IGRlZmVycmVkIHVudGlsIHJ1bnRp bWUgcmVzdW1lXG4iKTsKKwkJZmJjb24tPmhvdHBsdWdfd2FpdGluZyA9IHRydWU7CisJCXBtX3J1 bnRpbWVfcHV0X25vaWRsZShkcm0tPmRldi0+ZGV2KTsKKwl9IGVsc2UgeworCQlEUk1fV0FSTigi ZmJjb24gSFBEIGV2ZW50IGxvc3QgZHVlIHRvIFJQTSBmYWlsdXJlOiAlZFxuIiwKKwkJCSByZXQp OworCX0KKworCW11dGV4X3VubG9jaygmZmJjb24tPmhvdHBsdWdfbG9jayk7Cit9CisKK3ZvaWQK K25vdXZlYXVfZmJjb25faG90cGx1Z19yZXN1bWUoc3RydWN0IG5vdXZlYXVfZmJkZXYgKmZiY29u KQoreworCXN0cnVjdCBub3V2ZWF1X2RybSAqZHJtOworCisJaWYgKCFmYmNvbikKKwkJcmV0dXJu OworCWRybSA9IG5vdXZlYXVfZHJtKGZiY29uLT5oZWxwZXIuZGV2KTsKKworCW11dGV4X2xvY2so JmZiY29uLT5ob3RwbHVnX2xvY2spOworCWlmIChmYmNvbi0+aG90cGx1Z193YWl0aW5nKSB7CisJ CWZiY29uLT5ob3RwbHVnX3dhaXRpbmcgPSBmYWxzZTsKKworCQlOVl9ERUJVRyhkcm0sICJIYW5k bGluZyBkZWZlcnJlZCBmYmNvbiBIUEQgZXZlbnRzXG4iKTsKKwkJZHJtX2ZiX2hlbHBlcl9ob3Rw bHVnX2V2ZW50KCZmYmNvbi0+aGVscGVyKTsKKwl9CisJbXV0ZXhfdW5sb2NrKCZmYmNvbi0+aG90 cGx1Z19sb2NrKTsKK30KKworYm9vbAorbm91dmVhdV9mYmNvbl9ob3RwbHVnZ2VkX2luX3N1c3Bl bmQoc3RydWN0IG5vdXZlYXVfZmJkZXYgKmZiY29uKQoreworCWJvb2wgaG90cGx1ZzsKKworCWlm ICghZmJjb24pCisJCXJldHVybiBmYWxzZTsKKworCW11dGV4X2xvY2soJmZiY29uLT5ob3RwbHVn X2xvY2spOworCWhvdHBsdWcgPSBmYmNvbi0+aG90cGx1Z193YWl0aW5nOworCW11dGV4X3VubG9j aygmZmJjb24tPmhvdHBsdWdfbG9jayk7CisKKwlyZXR1cm4gaG90cGx1ZzsKK30KKwogaW50CiBu b3V2ZWF1X2ZiY29uX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIHsKQEAgLTUwNSw2ICs1 NzYsNyBAQCBub3V2ZWF1X2ZiY29uX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIAogCWRy bS0+ZmJjb24gPSBmYmNvbjsKIAlJTklUX1dPUksoJmRybS0+ZmJjb25fd29yaywgbm91dmVhdV9m YmNvbl9zZXRfc3VzcGVuZF93b3JrKTsKKwltdXRleF9pbml0KCZmYmNvbi0+aG90cGx1Z19sb2Nr KTsKIAogCWRybV9mYl9oZWxwZXJfcHJlcGFyZShkZXYsICZmYmNvbi0+aGVscGVyLCAmbm91dmVh dV9mYmNvbl9oZWxwZXJfZnVuY3MpOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbm91 dmVhdS9ub3V2ZWF1X2ZiY29uLmggYi9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1X2Zi Y29uLmgKaW5kZXggYTZmMTkyZWEzZmE2Li4xNDhjNmIyY2M2ZGEgMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvZ3B1L2RybS9ub3V2ZWF1L25vdXZlYXVfZmJjb24uaAorKysgYi9kcml2ZXJzL2dwdS9kcm0v bm91dmVhdS9ub3V2ZWF1X2ZiY29uLmgKQEAgLTQxLDYgKzQxLDkgQEAgc3RydWN0IG5vdXZlYXVf ZmJkZXYgewogCXN0cnVjdCBudmlmX29iamVjdCBnZGk7CiAJc3RydWN0IG52aWZfb2JqZWN0IGJs aXQ7CiAJc3RydWN0IG52aWZfb2JqZWN0IHR3b2Q7CisKKwlzdHJ1Y3QgbXV0ZXggaG90cGx1Z19s b2NrOworCWJvb2wgaG90cGx1Z193YWl0aW5nOwogfTsKIAogdm9pZCBub3V2ZWF1X2ZiY29uX3Jl c3RvcmUodm9pZCk7CkBAIC02OCw2ICs3MSwxMCBAQCB2b2lkIG5vdXZlYXVfZmJjb25fc2V0X3N1 c3BlbmQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgaW50IHN0YXRlKTsKIHZvaWQgbm91dmVhdV9m YmNvbl9hY2NlbF9zYXZlX2Rpc2FibGUoc3RydWN0IGRybV9kZXZpY2UgKmRldik7CiB2b2lkIG5v dXZlYXVfZmJjb25fYWNjZWxfcmVzdG9yZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsKIAordm9p ZCBub3V2ZWF1X2ZiY29uX291dHB1dF9wb2xsX2NoYW5nZWQoc3RydWN0IGRybV9kZXZpY2UgKmRl dik7Cit2b2lkIG5vdXZlYXVfZmJjb25faG90cGx1Z19yZXN1bWUoc3RydWN0IG5vdXZlYXVfZmJk ZXYgKmZiY29uKTsKK2Jvb2wgbm91dmVhdV9mYmNvbl9ob3RwbHVnZ2VkX2luX3N1c3BlbmQoc3Ry dWN0IG5vdXZlYXVfZmJkZXYgKmZiY29uKTsKKwogZXh0ZXJuIGludCBub3V2ZWF1X25vZmJhY2Nl bDsKIAogI2VuZGlmIC8qIF9fTlY1MF9GQkNPTl9IX18gKi8KLS0gCjIuMTcuMQoKX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KTm91dmVhdSBtYWlsaW5nIGxp c3QKTm91dmVhdUBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3Rv cC5vcmcvbWFpbG1hbi9saXN0aW5mby9ub3V2ZWF1Cg==