From mboxrd@z Thu Jan 1 00:00:00 1970 From: Oded Gabbay Subject: Re: [PATCH v2] amdkfd: Drop interrupt SW ring buffer Date: Thu, 8 Jan 2015 16:28:00 +0200 Message-ID: <54AE93F0.90404@amd.com> References: <1420603176-1520-1-git-send-email-michel@daenzer.net> <1420691235-2262-1-git-send-email-michel@daenzer.net> <54AE68F8.1010602@vodafone.de> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from na01-bn1-obe.outbound.protection.outlook.com (mail-bn1bn0101.outbound.protection.outlook.com [157.56.110.101]) by gabe.freedesktop.org (Postfix) with ESMTP id C86516E72E for ; Thu, 8 Jan 2015 06:28:16 -0800 (PST) In-Reply-To: <54AE68F8.1010602@vodafone.de> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: =?UTF-8?B?Q2hyaXN0aWFuIEvDtm5pZw==?= , =?UTF-8?B?TWljaGVsIETDpG56ZXI=?= Cc: dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org Ck9uIDAxLzA4LzIwMTUgMDE6MjQgUE0sIENocmlzdGlhbiBLw7ZuaWcgd3JvdGU6Cj4gQW0gMDgu MDEuMjAxNSB1bSAwNToyNyBzY2hyaWViIE1pY2hlbCBEw6RuemVyOgo+PiBGcm9tOiBNaWNoZWwg RMOkbnplciA8bWljaGVsLmRhZW56ZXJAYW1kLmNvbT4KPj4KPj4gVGhlIHdvcmsgcXVldWUgY291 bGRuJ3QgcmVsaWFibHkgcHJldmVudCB0aGUgU1cgcmluZyBidWZmZXIgZnJvbQo+PiBvdmVyZmxv d2luZywgc28gZG1lc2cgd2FzIHNwYW1tZWQgYnkKPj4KPj4gICBrZmQga2ZkOiBJbnRlcnJ1cHQg cmluZyBvdmVyZmxvdywgZHJvcHBpbmcgaW50ZXJydXB0Lgo+Pgo+PiBtZXNzYWdlcyB3aGVuIHJ1 bm5pbmcgZS5nLiB0aGUgQXRsYW50aXMgU3Vic3RhbmNlIGRlbW8gZnJvbQo+PiBodHRwczovL3dp a2kudW5yZWFsZW5naW5lLmNvbS9MaW51eF9EZW1vcyBvbiBLYXZlcmkuCj4+Cj4+IFNpbmNlIHRo ZSBTVyByaW5nIGJ1ZmZlciBkb2Vzbid0IGFjdHVhbGx5IGRvIGFueXRoaW5nIGF0IHRoaXMgcG9p bnQsIGp1c3QKPj4gcmVtb3ZlIGl0IGZvciBub3cuIFdoZW4gYWN0dWFsIGludGVycnVwdCBwcm9j ZXNzaW5nIGNvZGUgaXMgYWRkZWQgdG8KPj4gYW1ka2ZkLCBpdCBzaG91bGQgdHJ5IHRvIGRvIHRo aW5ncyBpbW1lZGlhdGVseSBhbmQgb25seSBkZWZlciB0byB3b3JrCj4+IHF1ZXVlcyB3aGVuIG5l Y2Vzc2FyeS4KPj4KPj4gU2lnbmVkLW9mZi1ieTogTWljaGVsIETDpG56ZXIgPG1pY2hlbC5kYWVu emVyQGFtZC5jb20+Cj4KPiBMb29rcyByZWFzb25hYmxlIHRvIG1lLiBQYXRjaCBpcyBSZXZpZXdl ZC1ieTogQ2hyaXN0aWFuIEvDtm5pZwo+IDxjaHJpc3RpYW4ua29lbmlnQGFtZC5jb20+Cj4KPj4g LS0tCj4+Cj4+IHYyOiBDbGFyaWZ5IHdoYXQgdGhlIHByb2JsZW0gaXMgYW5kIGhvdyBpdCBjYW4g YmUgcmVwcm9kdWNlZAo+Pgo+PiAgIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1ka2ZkL01ha2VmaWxl ICAgICAgICB8ICAgMyArLQo+PiAgIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1ka2ZkL2tmZF9kZXZp Y2UuYyAgICB8ICAyMCArLS0tCj4+ICAgZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRrZmQva2ZkX2lu dGVycnVwdC5jIHwgMTc2IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4+ICAgZHJpdmVy cy9ncHUvZHJtL2FtZC9hbWRrZmQva2ZkX3ByaXYuaCAgICAgIHwgIDE1IC0tLQo+PiAgIDQgZmls ZXMgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAyMTIgZGVsZXRpb25zKC0pCj4+ICAgZGVsZXRl IG1vZGUgMTAwNjQ0IGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1ka2ZkL2tmZF9pbnRlcnJ1cHQuYwo+ Pgo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRrZmQvTWFrZWZpbGUKPj4g Yi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGtmZC9NYWtlZmlsZQo+PiBpbmRleCBiZTYyNDZkLi4z MDdhMzA5IDEwMDY0NAo+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGtmZC9NYWtlZmls ZQo+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGtmZC9NYWtlZmlsZQo+PiBAQCAtOCw3 ICs4LDYgQEAgYW1ka2ZkLXkgICAgOj0ga2ZkX21vZHVsZS5vIGtmZF9kZXZpY2UubyBrZmRfY2hh cmRldi5vCj4+IGtmZF90b3BvbG9neS5vIFwKPj4gICAgICAgICAgIGtmZF9wYXNpZC5vIGtmZF9k b29yYmVsbC5vIGtmZF9mbGF0X21lbW9yeS5vIFwKPj4gICAgICAgICAgIGtmZF9wcm9jZXNzLm8g a2ZkX3F1ZXVlLm8ga2ZkX21xZF9tYW5hZ2VyLm8gXAo+PiAgICAgICAgICAga2ZkX2tlcm5lbF9x dWV1ZS5vIGtmZF9wYWNrZXRfbWFuYWdlci5vIFwKPj4gLSAgICAgICAga2ZkX3Byb2Nlc3NfcXVl dWVfbWFuYWdlci5vIGtmZF9kZXZpY2VfcXVldWVfbWFuYWdlci5vIFwKPj4gLSAgICAgICAga2Zk X2ludGVycnVwdC5vCj4+ICsgICAgICAgIGtmZF9wcm9jZXNzX3F1ZXVlX21hbmFnZXIubyBrZmRf ZGV2aWNlX3F1ZXVlX21hbmFnZXIubwo+PiAgIG9iai0kKENPTkZJR19IU0FfQU1EKSAgICArPSBh bWRrZmQubwo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRrZmQva2ZkX2Rl dmljZS5jCj4+IGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRrZmQva2ZkX2RldmljZS5jCj4+IGlu ZGV4IDQzODg0ZWIuLjYzMzUzMmEgMTAwNjQ0Cj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQv YW1ka2ZkL2tmZF9kZXZpY2UuYwo+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGtmZC9r ZmRfZGV2aWNlLmMKPj4gQEAgLTE5MiwxMyArMTkyLDYgQEAgYm9vbCBrZ2Qya2ZkX2RldmljZV9p bml0KHN0cnVjdCBrZmRfZGV2ICprZmQsCj4+ICAgICAgICAgICBnb3RvIGtmZF90b3BvbG9neV9h ZGRfZGV2aWNlX2Vycm9yOwo+PiAgICAgICB9Cj4+IC0gICAgaWYgKGtmZF9pbnRlcnJ1cHRfaW5p dChrZmQpKSB7Cj4+IC0gICAgICAgIGRldl9lcnIoa2ZkX2RldmljZSwKPj4gLSAgICAgICAgICAg ICJFcnJvciBpbml0aWFsaXppbmcgaW50ZXJydXB0cyBmb3IgZGV2aWNlICgleDoleClcbiIsCj4+ IC0gICAgICAgICAgICBrZmQtPnBkZXYtPnZlbmRvciwga2ZkLT5wZGV2LT5kZXZpY2UpOwo+PiAt ICAgICAgICBnb3RvIGtmZF9pbnRlcnJ1cHRfZXJyb3I7Cj4+IC0gICAgfQo+PiAtCj4+ICAgICAg IGlmICghZGV2aWNlX2lvbW11X3Bhc2lkX2luaXQoa2ZkKSkgewo+PiAgICAgICAgICAgZGV2X2Vy cihrZmRfZGV2aWNlLAo+PiAgICAgICAgICAgICAgICJFcnJvciBpbml0aWFsaXppbmcgaW9tbXV2 MiBmb3IgZGV2aWNlICgleDoleClcbiIsCj4+IEBAIC0yMzcsOCArMjMwLDYgQEAgZHFtX3N0YXJ0 X2Vycm9yOgo+PiAgIGRldmljZV9xdWV1ZV9tYW5hZ2VyX2Vycm9yOgo+PiAgICAgICBhbWRfaW9t bXVfZnJlZV9kZXZpY2Uoa2ZkLT5wZGV2KTsKPj4gICBkZXZpY2VfaW9tbXVfcGFzaWRfZXJyb3I6 Cj4+IC0gICAga2ZkX2ludGVycnVwdF9leGl0KGtmZCk7Cj4+IC1rZmRfaW50ZXJydXB0X2Vycm9y Ogo+PiAgICAgICBrZmRfdG9wb2xvZ3lfcmVtb3ZlX2RldmljZShrZmQpOwo+PiAgIGtmZF90b3Bv bG9neV9hZGRfZGV2aWNlX2Vycm9yOgo+PiAgICAgICBrZmQya2dkLT5maW5pX3NhX21hbmFnZXIo a2ZkLT5rZ2QpOwo+PiBAQCAtMjU0LDcgKzI0NSw2IEBAIHZvaWQga2dkMmtmZF9kZXZpY2VfZXhp dChzdHJ1Y3Qga2ZkX2RldiAqa2ZkKQo+PiAgICAgICBpZiAoa2ZkLT5pbml0X2NvbXBsZXRlKSB7 Cj4+ICAgICAgICAgICBkZXZpY2VfcXVldWVfbWFuYWdlcl91bmluaXQoa2ZkLT5kcW0pOwo+PiAg ICAgICAgICAgYW1kX2lvbW11X2ZyZWVfZGV2aWNlKGtmZC0+cGRldik7Cj4+IC0gICAgICAgIGtm ZF9pbnRlcnJ1cHRfZXhpdChrZmQpOwo+PiAgICAgICAgICAga2ZkX3RvcG9sb2d5X3JlbW92ZV9k ZXZpY2Uoa2ZkKTsKPj4gICAgICAgfQo+PiBAQCAtMjk2LDEzICsyODYsNSBAQCBpbnQga2dkMmtm ZF9yZXN1bWUoc3RydWN0IGtmZF9kZXYgKmtmZCkKPj4gICAvKiBUaGlzIGlzIGNhbGxlZCBkaXJl Y3RseSBmcm9tIEtHRCBhdCBJU1IuICovCj4+ICAgdm9pZCBrZ2Qya2ZkX2ludGVycnVwdChzdHJ1 Y3Qga2ZkX2RldiAqa2ZkLCBjb25zdCB2b2lkICppaF9yaW5nX2VudHJ5KQo+PiAgIHsKPj4gLSAg ICBpZiAoa2ZkLT5pbml0X2NvbXBsZXRlKSB7Cj4+IC0gICAgICAgIHNwaW5fbG9jaygma2ZkLT5p bnRlcnJ1cHRfbG9jayk7Cj4+IC0KPj4gLSAgICAgICAgaWYgKGtmZC0+aW50ZXJydXB0c19hY3Rp dmUKPj4gLSAgICAgICAgICAgICYmIGVucXVldWVfaWhfcmluZ19lbnRyeShrZmQsIGloX3Jpbmdf ZW50cnkpKQo+PiAtICAgICAgICAgICAgc2NoZWR1bGVfd29yaygma2ZkLT5pbnRlcnJ1cHRfd29y ayk7Cj4+IC0KPj4gLSAgICAgICAgc3Bpbl91bmxvY2soJmtmZC0+aW50ZXJydXB0X2xvY2spOwo+ PiAtICAgIH0KPj4gKyAgICAvKiBQcm9jZXNzIGludGVycnVwdHMgLyBzY2hlZHVsZSB3b3JrIGFz IG5lY2Vzc2FyeSAqLwo+PiAgIH0KPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQv YW1ka2ZkL2tmZF9pbnRlcnJ1cHQuYwo+PiBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1ka2ZkL2tm ZF9pbnRlcnJ1cHQuYwo+PiBkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKPj4gaW5kZXggNWI5OTkw OS4uMDAwMDAwMAo+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGtmZC9rZmRfaW50ZXJy dXB0LmMKPj4gKysrIC9kZXYvbnVsbAo+PiBAQCAtMSwxNzYgKzAsMCBAQAo+PiAtLyoKPj4gLSAq IENvcHlyaWdodCAyMDE0IEFkdmFuY2VkIE1pY3JvIERldmljZXMsIEluYy4KPj4gLSAqCj4+IC0g KiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBl cnNvbiBvYnRhaW5pbmcgYQo+PiAtICogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lh dGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwKPj4gLSAqIHRvIGRlYWwg aW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxp bWl0YXRpb24KPj4gLSAqIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBw dWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLAo+PiAtICogYW5kL29yIHNlbGwgY29waWVz IG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlCj4+IC0g KiBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2lu ZyBjb25kaXRpb25zOgo+PiAtICoKPj4gLSAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFu ZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluCj4+IC0gKiBhbGwg Y29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4KPj4gLSAqCj4+ IC0gKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBP RiBBTlkgS0lORCwgRVhQUkVTUyBPUgo+PiAtICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1Qg TElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCj4+IC0gKiBGSVRO RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiAgSU4gTk8g RVZFTlQgU0hBTEwKPj4gLSAqIFRIRSBDT1BZUklHSFQgSE9MREVSKFMpIE9SIEFVVEhPUihTKSBC RSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUgo+PiAtICogT1RIRVIgTElBQklMSVRZ LCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsCj4+ IC0gKiBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRX QVJFIE9SIFRIRSBVU0UgT1IKPj4gLSAqIE9USEVSIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4K Pj4gLSAqLwo+PiAtCj4+IC0vKgo+PiAtICogS0ZEIEludGVycnVwdHMuCj4+IC0gKgo+PiAtICog QU1EIEdQVXMgZGVsaXZlciBpbnRlcnJ1cHRzIGJ5IHB1c2hpbmcgYW4gaW50ZXJydXB0IGRlc2Ny aXB0aW9uIG9udG8gdGhlCj4+IC0gKiBpbnRlcnJ1cHQgcmluZyBhbmQgdGhlbiBzZW5kaW5nIGFu IGludGVycnVwdC4gS0dEIHJlY2VpdmVzIHRoZSBpbnRlcnJ1cHQKPj4gLSAqIGluIElTUiBhbmQg c2VuZHMgdXMgYSBwb2ludGVyIHRvIGVhY2ggbmV3IGVudHJ5IG9uIHRoZSBpbnRlcnJ1cHQgcmlu Zy4KPj4gLSAqCj4+IC0gKiBXZSBnZW5lcmFsbHkgY2FuJ3QgcHJvY2VzcyBpbnRlcnJ1cHQtc2ln bmFsZWQgZXZlbnRzIGZyb20gSVNSLCBzbyB3ZSBjYWxsCj4+IC0gKiBvdXQgdG8gZWFjaCBpbnRl cnJ1cHQgY2xpZW50IG1vZHVsZSAoY3VycmVudGx5IG9ubHkgdGhlIHNjaGVkdWxlcikgdG8gYXNr IGlmCj4+IC0gKiBlYWNoIGludGVycnVwdCBpcyBpbnRlcmVzdGluZy4gSWYgdGhleSByZXR1cm4g dHJ1ZSwgdGhlbiBpdCByZXF1aXJlcyBmdXJ0aGVyCj4+IC0gKiBwcm9jZXNzaW5nIHNvIHdlIGNv cHkgaXQgdG8gYW4gaW50ZXJuYWwgaW50ZXJydXB0IHJpbmcgYW5kIGNhbGwgZWFjaAo+PiAtICog aW50ZXJydXB0IGNsaWVudCBhZ2FpbiBmcm9tIGEgd29yay1xdWV1ZS4KPj4gLSAqCj4+IC0gKiBU aGVyZSdzIG5vIGFja25vd2xlZGdtZW50IGZvciB0aGUgaW50ZXJydXB0cyB3ZSB1c2UuIFRoZSBo YXJkd2FyZSBzaW1wbHkKPj4gLSAqIHF1ZXVlcyBhIG5ldyBpbnRlcnJ1cHQgZWFjaCB0aW1lIHdp dGhvdXQgd2FpdGluZy4KPj4gLSAqCj4+IC0gKiBUaGUgZml4ZWQtc2l6ZSBpbnRlcm5hbCBxdWV1 ZSBtZWFucyB0aGF0IGl0J3MgcG9zc2libGUgZm9yIHVzIHRvIGxvc2UKPj4gLSAqIGludGVycnVw dHMgYmVjYXVzZSB3ZSBoYXZlIG5vIGJhY2stcHJlc3N1cmUgdG8gdGhlIGhhcmR3YXJlLgo+PiAt ICovCj4+IC0KPj4gLSNpbmNsdWRlIDxsaW51eC9zbGFiLmg+Cj4+IC0jaW5jbHVkZSA8bGludXgv ZGV2aWNlLmg+Cj4+IC0jaW5jbHVkZSAia2ZkX3ByaXYuaCIKPj4gLQo+PiAtI2RlZmluZSBLRkRf SU5URVJSVVBUX1JJTkdfU0laRSAyNTYKPj4gLQo+PiAtc3RhdGljIHZvaWQgaW50ZXJydXB0X3dx KHN0cnVjdCB3b3JrX3N0cnVjdCAqKTsKPj4gLQo+PiAtaW50IGtmZF9pbnRlcnJ1cHRfaW5pdChz dHJ1Y3Qga2ZkX2RldiAqa2ZkKQo+PiAtewo+PiAtICAgIHZvaWQgKmludGVycnVwdF9yaW5nID0g a21hbGxvY19hcnJheShLRkRfSU5URVJSVVBUX1JJTkdfU0laRSwKPj4gLSAgICAgICAgICAgICAg ICAgICAga2ZkLT5kZXZpY2VfaW5mby0+aWhfcmluZ19lbnRyeV9zaXplLAo+PiAtICAgICAgICAg ICAgICAgICAgICBHRlBfS0VSTkVMKTsKPj4gLSAgICBpZiAoIWludGVycnVwdF9yaW5nKQo+PiAt ICAgICAgICByZXR1cm4gLUVOT01FTTsKPj4gLQo+PiAtICAgIGtmZC0+aW50ZXJydXB0X3Jpbmcg PSBpbnRlcnJ1cHRfcmluZzsKPj4gLSAgICBrZmQtPmludGVycnVwdF9yaW5nX3NpemUgPQo+PiAt ICAgICAgICBLRkRfSU5URVJSVVBUX1JJTkdfU0laRSAqIGtmZC0+ZGV2aWNlX2luZm8tPmloX3Jp bmdfZW50cnlfc2l6ZTsKPj4gLSAgICBhdG9taWNfc2V0KCZrZmQtPmludGVycnVwdF9yaW5nX3dw dHIsIDApOwo+PiAtICAgIGF0b21pY19zZXQoJmtmZC0+aW50ZXJydXB0X3JpbmdfcnB0ciwgMCk7 Cj4+IC0KPj4gLSAgICBzcGluX2xvY2tfaW5pdCgma2ZkLT5pbnRlcnJ1cHRfbG9jayk7Cj4+IC0K Pj4gLSAgICBJTklUX1dPUksoJmtmZC0+aW50ZXJydXB0X3dvcmssIGludGVycnVwdF93cSk7Cj4+ IC0KPj4gLSAgICBrZmQtPmludGVycnVwdHNfYWN0aXZlID0gdHJ1ZTsKPj4gLQo+PiAtICAgIC8q Cj4+IC0gICAgICogQWZ0ZXIgdGhpcyBmdW5jdGlvbiByZXR1cm5zLCB0aGUgaW50ZXJydXB0IHdp bGwgYmUgZW5hYmxlZC4gVGhpcwo+PiAtICAgICAqIGJhcnJpZXIgZW5zdXJlcyB0aGF0IHRoZSBp bnRlcnJ1cHQgcnVubmluZyBvbiBhIGRpZmZlcmVudCBwcm9jZXNzb3IKPj4gLSAgICAgKiBzZWVz IGFsbCB0aGUgYWJvdmUgd3JpdGVzLgo+PiAtICAgICAqLwo+PiAtICAgIHNtcF93bWIoKTsKPj4g LQo+PiAtICAgIHJldHVybiAwOwo+PiAtfQo+PiAtCj4+IC12b2lkIGtmZF9pbnRlcnJ1cHRfZXhp dChzdHJ1Y3Qga2ZkX2RldiAqa2ZkKQo+PiAtewo+PiAtICAgIC8qCj4+IC0gICAgICogU3RvcCB0 aGUgaW50ZXJydXB0IGhhbmRsZXIgZnJvbSB3cml0aW5nIHRvIHRoZSByaW5nIGFuZCBzY2hlZHVs aW5nCj4+IC0gICAgICogd29ya3F1ZXVlIGl0ZW1zLiBUaGUgc3BpbmxvY2sgZW5zdXJlcyB0aGF0 IGFueSBpbnRlcnJ1cHQgcnVubmluZwo+PiAtICAgICAqIGFmdGVyIHdlIGhhdmUgdW5sb2NrZWQg c2VlcyBpbnRlcnJ1cHRzX2FjdGl2ZSA9IGZhbHNlLgo+PiAtICAgICAqLwo+PiAtICAgIHVuc2ln bmVkIGxvbmcgZmxhZ3M7Cj4+IC0KPj4gLSAgICBzcGluX2xvY2tfaXJxc2F2ZSgma2ZkLT5pbnRl cnJ1cHRfbG9jaywgZmxhZ3MpOwo+PiAtICAgIGtmZC0+aW50ZXJydXB0c19hY3RpdmUgPSBmYWxz ZTsKPj4gLSAgICBzcGluX3VubG9ja19pcnFyZXN0b3JlKCZrZmQtPmludGVycnVwdF9sb2NrLCBm bGFncyk7Cj4+IC0KPj4gLSAgICAvKgo+PiAtICAgICAqIEZsdXNoX3NjaGVkdWxlZF93b3JrIGVu c3VyZXMgdGhhdCB0aGVyZSBhcmUgbm8gb3V0c3RhbmRpbmcKPj4gLSAgICAgKiB3b3JrLXF1ZXVl IGl0ZW1zIHRoYXQgd2lsbCBhY2Nlc3MgaW50ZXJydXB0X3JpbmcuIE5ldyB3b3JrIGl0ZW1zCj4+ IC0gICAgICogY2FuJ3QgYmUgY3JlYXRlZCBiZWNhdXNlIHdlIHN0b3BwZWQgaW50ZXJydXB0IGhh bmRsaW5nIGFib3ZlLgo+PiAtICAgICAqLwo+PiAtICAgIGZsdXNoX3NjaGVkdWxlZF93b3JrKCk7 Cj4+IC0KPj4gLSAgICBrZnJlZShrZmQtPmludGVycnVwdF9yaW5nKTsKPj4gLX0KPj4gLQo+PiAt LyoKPj4gLSAqIFRoaXMgYXNzdW1lcyB0aGF0IGl0IGNhbid0IGJlIGNhbGxlZCBjb25jdXJyZW50 bHkgd2l0aCBpdHNlbGYKPj4gLSAqIGJ1dCBvbmx5IHdpdGggZGVxdWV1ZV9paF9yaW5nX2VudHJ5 Lgo+PiAtICovCj4+IC1ib29sIGVucXVldWVfaWhfcmluZ19lbnRyeShzdHJ1Y3Qga2ZkX2RldiAq a2ZkLCAgICBjb25zdCB2b2lkICppaF9yaW5nX2VudHJ5KQo+PiAtewo+PiAtICAgIHVuc2lnbmVk IGludCBycHRyID0gYXRvbWljX3JlYWQoJmtmZC0+aW50ZXJydXB0X3JpbmdfcnB0cik7Cj4+IC0g ICAgdW5zaWduZWQgaW50IHdwdHIgPSBhdG9taWNfcmVhZCgma2ZkLT5pbnRlcnJ1cHRfcmluZ193 cHRyKTsKPj4gLQo+PiAtICAgIGlmICgocnB0ciAtIHdwdHIpICUga2ZkLT5pbnRlcnJ1cHRfcmlu Z19zaXplID09Cj4+IC0gICAgICAgICAgICAgICAgICAgIGtmZC0+ZGV2aWNlX2luZm8tPmloX3Jp bmdfZW50cnlfc2l6ZSkgewo+PiAtICAgICAgICAvKiBUaGlzIGlzIHZlcnkgYmFkLCB0aGUgc3lz dGVtIGlzIGxpa2VseSB0byBoYW5nLiAqLwo+PiAtICAgICAgICBkZXZfZXJyX3JhdGVsaW1pdGVk KGtmZF9jaGFyZGV2KCksCj4+IC0gICAgICAgICAgICAiSW50ZXJydXB0IHJpbmcgb3ZlcmZsb3cs IGRyb3BwaW5nIGludGVycnVwdC5cbiIpOwo+PiAtICAgICAgICByZXR1cm4gZmFsc2U7Cj4+IC0g ICAgfQo+PiAtCj4+IC0gICAgbWVtY3B5KGtmZC0+aW50ZXJydXB0X3JpbmcgKyB3cHRyLCBpaF9y aW5nX2VudHJ5LAo+PiAtICAgICAgICAgICAga2ZkLT5kZXZpY2VfaW5mby0+aWhfcmluZ19lbnRy eV9zaXplKTsKPj4gLQo+PiAtICAgIHdwdHIgPSAod3B0ciArIGtmZC0+ZGV2aWNlX2luZm8tPmlo X3JpbmdfZW50cnlfc2l6ZSkgJQo+PiAtICAgICAgICAgICAga2ZkLT5pbnRlcnJ1cHRfcmluZ19z aXplOwo+PiAtICAgIHNtcF93bWIoKTsgLyogRW5zdXJlIG1lbWNweSdkIGRhdGEgaXMgdmlzaWJs ZSBiZWZvcmUgd3B0ciB1cGRhdGUuICovCj4+IC0gICAgYXRvbWljX3NldCgma2ZkLT5pbnRlcnJ1 cHRfcmluZ193cHRyLCB3cHRyKTsKPj4gLQo+PiAtICAgIHJldHVybiB0cnVlOwo+PiAtfQo+PiAt Cj4+IC0vKgo+PiAtICogVGhpcyBhc3N1bWVzIHRoYXQgaXQgY2FuJ3QgYmUgY2FsbGVkIGNvbmN1 cnJlbnRseSB3aXRoIGl0c2VsZgo+PiAtICogYnV0IG9ubHkgd2l0aCBlbnF1ZXVlX2loX3Jpbmdf ZW50cnkuCj4+IC0gKi8KPj4gLXN0YXRpYyBib29sIGRlcXVldWVfaWhfcmluZ19lbnRyeShzdHJ1 Y3Qga2ZkX2RldiAqa2ZkLCB2b2lkICppaF9yaW5nX2VudHJ5KQo+PiAtewo+PiAtICAgIC8qCj4+ IC0gICAgICogQXNzdW1lIHRoYXQgd2FpdCBxdWV1ZXMgaGF2ZSBhbiBpbXBsaWNpdCBiYXJyaWVy LCBpLmUuIGFueXRoaW5nIHRoYXQKPj4gLSAgICAgKiBoYXBwZW5lZCBpbiB0aGUgSVNSIGJlZm9y ZSBpdCBxdWV1ZWQgd29yayBpcyB2aXNpYmxlLgo+PiAtICAgICAqLwo+PiAtCj4+IC0gICAgdW5z aWduZWQgaW50IHdwdHIgPSBhdG9taWNfcmVhZCgma2ZkLT5pbnRlcnJ1cHRfcmluZ193cHRyKTsK Pj4gLSAgICB1bnNpZ25lZCBpbnQgcnB0ciA9IGF0b21pY19yZWFkKCZrZmQtPmludGVycnVwdF9y aW5nX3JwdHIpOwo+PiAtCj4+IC0gICAgaWYgKHJwdHIgPT0gd3B0cikKPj4gLSAgICAgICAgcmV0 dXJuIGZhbHNlOwo+PiAtCj4+IC0gICAgbWVtY3B5KGloX3JpbmdfZW50cnksIGtmZC0+aW50ZXJy dXB0X3JpbmcgKyBycHRyLAo+PiAtICAgICAgICAgICAga2ZkLT5kZXZpY2VfaW5mby0+aWhfcmlu Z19lbnRyeV9zaXplKTsKPj4gLQo+PiAtICAgIHJwdHIgPSAocnB0ciArIGtmZC0+ZGV2aWNlX2lu Zm8tPmloX3JpbmdfZW50cnlfc2l6ZSkgJQo+PiAtICAgICAgICAgICAga2ZkLT5pbnRlcnJ1cHRf cmluZ19zaXplOwo+PiAtCj4+IC0gICAgLyoKPj4gLSAgICAgKiBFbnN1cmUgdGhlIHJwdHIgd3Jp dGUgdXBkYXRlIGlzIG5vdCB2aXNpYmxlIHVudGlsCj4+IC0gICAgICogbWVtY3B5IGhhcyBmaW5p c2hlZCByZWFkaW5nLgo+PiAtICAgICAqLwo+PiAtICAgIHNtcF9tYigpOwo+PiAtICAgIGF0b21p Y19zZXQoJmtmZC0+aW50ZXJydXB0X3JpbmdfcnB0ciwgcnB0cik7Cj4+IC0KPj4gLSAgICByZXR1 cm4gdHJ1ZTsKPj4gLX0KPj4gLQo+PiAtc3RhdGljIHZvaWQgaW50ZXJydXB0X3dxKHN0cnVjdCB3 b3JrX3N0cnVjdCAqd29yaykKPj4gLXsKPj4gLSAgICBzdHJ1Y3Qga2ZkX2RldiAqZGV2ID0gY29u dGFpbmVyX29mKHdvcmssIHN0cnVjdCBrZmRfZGV2LAo+PiAtICAgICAgICAgICAgICAgICAgICAg ICAgaW50ZXJydXB0X3dvcmspOwo+PiAtCj4+IC0gICAgdWludDMyX3QgaWhfcmluZ19lbnRyeVtE SVZfUk9VTkRfVVAoCj4+IC0gICAgICAgICAgICAgICAgZGV2LT5kZXZpY2VfaW5mby0+aWhfcmlu Z19lbnRyeV9zaXplLAo+PiAtICAgICAgICAgICAgICAgIHNpemVvZih1aW50MzJfdCkpXTsKPj4g LQo+PiAtICAgIHdoaWxlIChkZXF1ZXVlX2loX3JpbmdfZW50cnkoZGV2LCBpaF9yaW5nX2VudHJ5 KSkKPj4gLSAgICAgICAgOwo+PiAtfQo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2Ft ZC9hbWRrZmQva2ZkX3ByaXYuaAo+PiBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1ka2ZkL2tmZF9w cml2LmgKPj4gaW5kZXggZjlmYjgxZS4uM2E2YWM5MCAxMDA2NDQKPj4gLS0tIGEvZHJpdmVycy9n cHUvZHJtL2FtZC9hbWRrZmQva2ZkX3ByaXYuaAo+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1k L2FtZGtmZC9rZmRfcHJpdi5oCj4+IEBAIC0xMzUsMjIgKzEzNSwxMCBAQCBzdHJ1Y3Qga2ZkX2Rl diB7Cj4+ICAgICAgIHN0cnVjdCBrZ2Qya2ZkX3NoYXJlZF9yZXNvdXJjZXMgc2hhcmVkX3Jlc291 cmNlczsKPj4gLSAgICB2b2lkICppbnRlcnJ1cHRfcmluZzsKPj4gLSAgICBzaXplX3QgaW50ZXJy dXB0X3Jpbmdfc2l6ZTsKPj4gLSAgICBhdG9taWNfdCBpbnRlcnJ1cHRfcmluZ19ycHRyOwo+PiAt ICAgIGF0b21pY190IGludGVycnVwdF9yaW5nX3dwdHI7Cj4+IC0gICAgc3RydWN0IHdvcmtfc3Ry dWN0IGludGVycnVwdF93b3JrOwo+PiAtICAgIHNwaW5sb2NrX3QgaW50ZXJydXB0X2xvY2s7Cj4+ IC0KPj4gICAgICAgLyogUUNNIERldmljZSBpbnN0YW5jZSAqLwo+PiAgICAgICBzdHJ1Y3QgZGV2 aWNlX3F1ZXVlX21hbmFnZXIgKmRxbTsKPj4gICAgICAgYm9vbCBpbml0X2NvbXBsZXRlOwo+PiAt ICAgIC8qCj4+IC0gICAgICogSW50ZXJydXB0cyBvZiBpbnRlcmVzdCB0byBLRkQgYXJlIGNvcGll ZAo+PiAtICAgICAqIGZyb20gdGhlIEhXIHJpbmcgaW50byBhIFNXIHJpbmcuCj4+IC0gICAgICov Cj4+IC0gICAgYm9vbCBpbnRlcnJ1cHRzX2FjdGl2ZTsKPj4gICB9Owo+PiAgIC8qIEtHRDJLRkQg Y2FsbGJhY2tzICovCj4+IEBAIC01MTMsMTAgKzUwMSw3IEBAIHN0cnVjdCBrZmRfZGV2ICprZmRf ZGV2aWNlX2J5X3BjaV9kZXYoY29uc3Qgc3RydWN0Cj4+IHBjaV9kZXYgKnBkZXYpOwo+PiAgIHN0 cnVjdCBrZmRfZGV2ICprZmRfdG9wb2xvZ3lfZW51bV9rZmRfZGV2aWNlcyh1aW50OF90IGlkeCk7 Cj4+ICAgLyogSW50ZXJydXB0cyAqLwo+PiAtaW50IGtmZF9pbnRlcnJ1cHRfaW5pdChzdHJ1Y3Qg a2ZkX2RldiAqZGV2KTsKPj4gLXZvaWQga2ZkX2ludGVycnVwdF9leGl0KHN0cnVjdCBrZmRfZGV2 ICpkZXYpOwo+PiAgIHZvaWQga2dkMmtmZF9pbnRlcnJ1cHQoc3RydWN0IGtmZF9kZXYgKmtmZCwg Y29uc3Qgdm9pZCAqaWhfcmluZ19lbnRyeSk7Cj4+IC1ib29sIGVucXVldWVfaWhfcmluZ19lbnRy eShzdHJ1Y3Qga2ZkX2RldiAqa2ZkLCAgICBjb25zdCB2b2lkICppaF9yaW5nX2VudHJ5KTsKPj4g ICAvKiBQb3dlciBNYW5hZ2VtZW50ICovCj4+ICAgdm9pZCBrZ2Qya2ZkX3N1c3BlbmQoc3RydWN0 IGtmZF9kZXYgKmtmZCk7Cj4KCkFwcGxpZWQgdG8gbXkgZml4ZXMgdHJlZS4KVGhhbmtzLgoKCU9k ZWQKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRl dmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9s aXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK