From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?UTF-8?B?Q2hyaXN0aWFuIEvDtm5pZw==?= Subject: Re: [PATCH v2] amdkfd: Drop interrupt SW ring buffer Date: Thu, 08 Jan 2015 12:24:40 +0100 Message-ID: <54AE68F8.1010602@vodafone.de> References: <1420603176-1520-1-git-send-email-michel@daenzer.net> <1420691235-2262-1-git-send-email-michel@daenzer.net> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from pegasos-out.vodafone.de (pegasos-out.vodafone.de [80.84.1.38]) by gabe.freedesktop.org (Postfix) with ESMTP id 84F5E6E458 for ; Thu, 8 Jan 2015 03:25:19 -0800 (PST) Received: from localhost (localhost.localdomain [127.0.0.1]) by pegasos-out.vodafone.de (Rohrpostix1 Daemon) with ESMTP id A235926140B for ; Thu, 8 Jan 2015 12:25:16 +0100 (CET) Received: from pegasos-out.vodafone.de ([127.0.0.1]) by localhost (rohrpostix1.prod.vfnet.de [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id XZ03z4R5OIyq for ; Thu, 8 Jan 2015 12:24:54 +0100 (CET) In-Reply-To: <1420691235-2262-1-git-send-email-michel@daenzer.net> 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?TWljaGVsIETDpG56ZXI=?= , Oded Gabbay Cc: dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org QW0gMDguMDEuMjAxNSB1bSAwNToyNyBzY2hyaWViIE1pY2hlbCBEw6RuemVyOgo+IEZyb206IE1p Y2hlbCBEw6RuemVyIDxtaWNoZWwuZGFlbnplckBhbWQuY29tPgo+Cj4gVGhlIHdvcmsgcXVldWUg Y291bGRuJ3QgcmVsaWFibHkgcHJldmVudCB0aGUgU1cgcmluZyBidWZmZXIgZnJvbQo+IG92ZXJm bG93aW5nLCBzbyBkbWVzZyB3YXMgc3BhbW1lZCBieQo+Cj4gICBrZmQga2ZkOiBJbnRlcnJ1cHQg cmluZyBvdmVyZmxvdywgZHJvcHBpbmcgaW50ZXJydXB0Lgo+Cj4gbWVzc2FnZXMgd2hlbiBydW5u aW5nIGUuZy4gdGhlIEF0bGFudGlzIFN1YnN0YW5jZSBkZW1vIGZyb20KPiBodHRwczovL3dpa2ku dW5yZWFsZW5naW5lLmNvbS9MaW51eF9EZW1vcyBvbiBLYXZlcmkuCj4KPiBTaW5jZSB0aGUgU1cg cmluZyBidWZmZXIgZG9lc24ndCBhY3R1YWxseSBkbyBhbnl0aGluZyBhdCB0aGlzIHBvaW50LCBq dXN0Cj4gcmVtb3ZlIGl0IGZvciBub3cuIFdoZW4gYWN0dWFsIGludGVycnVwdCBwcm9jZXNzaW5n IGNvZGUgaXMgYWRkZWQgdG8KPiBhbWRrZmQsIGl0IHNob3VsZCB0cnkgdG8gZG8gdGhpbmdzIGlt bWVkaWF0ZWx5IGFuZCBvbmx5IGRlZmVyIHRvIHdvcmsKPiBxdWV1ZXMgd2hlbiBuZWNlc3Nhcnku Cj4KPiBTaWduZWQtb2ZmLWJ5OiBNaWNoZWwgRMOkbnplciA8bWljaGVsLmRhZW56ZXJAYW1kLmNv bT4KCkxvb2tzIHJlYXNvbmFibGUgdG8gbWUuIFBhdGNoIGlzIFJldmlld2VkLWJ5OiBDaHJpc3Rp YW4gS8O2bmlnIAo8Y2hyaXN0aWFuLmtvZW5pZ0BhbWQuY29tPgoKPiAtLS0KPgo+IHYyOiBDbGFy aWZ5IHdoYXQgdGhlIHByb2JsZW0gaXMgYW5kIGhvdyBpdCBjYW4gYmUgcmVwcm9kdWNlZAo+Cj4g ICBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGtmZC9NYWtlZmlsZSAgICAgICAgfCAgIDMgKy0KPiAg IGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1ka2ZkL2tmZF9kZXZpY2UuYyAgICB8ICAyMCArLS0tCj4g ICBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGtmZC9rZmRfaW50ZXJydXB0LmMgfCAxNzYgLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiAgIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1ka2ZkL2tm ZF9wcml2LmggICAgICB8ICAxNSAtLS0KPiAgIDQgZmlsZXMgY2hhbmdlZCwgMiBpbnNlcnRpb25z KCspLCAyMTIgZGVsZXRpb25zKC0pCj4gICBkZWxldGUgbW9kZSAxMDA2NDQgZHJpdmVycy9ncHUv ZHJtL2FtZC9hbWRrZmQva2ZkX2ludGVycnVwdC5jCj4KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2FtZC9hbWRrZmQvTWFrZWZpbGUgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGtmZC9N YWtlZmlsZQo+IGluZGV4IGJlNjI0NmQuLjMwN2EzMDkgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9n cHUvZHJtL2FtZC9hbWRrZmQvTWFrZWZpbGUKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Ft ZGtmZC9NYWtlZmlsZQo+IEBAIC04LDcgKzgsNiBAQCBhbWRrZmQteQk6PSBrZmRfbW9kdWxlLm8g a2ZkX2RldmljZS5vIGtmZF9jaGFyZGV2Lm8ga2ZkX3RvcG9sb2d5Lm8gXAo+ICAgCQlrZmRfcGFz aWQubyBrZmRfZG9vcmJlbGwubyBrZmRfZmxhdF9tZW1vcnkubyBcCj4gICAJCWtmZF9wcm9jZXNz Lm8ga2ZkX3F1ZXVlLm8ga2ZkX21xZF9tYW5hZ2VyLm8gXAo+ICAgCQlrZmRfa2VybmVsX3F1ZXVl Lm8ga2ZkX3BhY2tldF9tYW5hZ2VyLm8gXAo+IC0JCWtmZF9wcm9jZXNzX3F1ZXVlX21hbmFnZXIu byBrZmRfZGV2aWNlX3F1ZXVlX21hbmFnZXIubyBcCj4gLQkJa2ZkX2ludGVycnVwdC5vCj4gKwkJ a2ZkX3Byb2Nlc3NfcXVldWVfbWFuYWdlci5vIGtmZF9kZXZpY2VfcXVldWVfbWFuYWdlci5vCj4g ICAKPiAgIG9iai0kKENPTkZJR19IU0FfQU1EKQkrPSBhbWRrZmQubwo+IGRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vYW1kL2FtZGtmZC9rZmRfZGV2aWNlLmMgYi9kcml2ZXJzL2dwdS9kcm0v YW1kL2FtZGtmZC9rZmRfZGV2aWNlLmMKPiBpbmRleCA0Mzg4NGViLi42MzM1MzJhIDEwMDY0NAo+ IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1ka2ZkL2tmZF9kZXZpY2UuYwo+ICsrKyBiL2Ry aXZlcnMvZ3B1L2RybS9hbWQvYW1ka2ZkL2tmZF9kZXZpY2UuYwo+IEBAIC0xOTIsMTMgKzE5Miw2 IEBAIGJvb2wga2dkMmtmZF9kZXZpY2VfaW5pdChzdHJ1Y3Qga2ZkX2RldiAqa2ZkLAo+ICAgCQln b3RvIGtmZF90b3BvbG9neV9hZGRfZGV2aWNlX2Vycm9yOwo+ICAgCX0KPiAgIAo+IC0JaWYgKGtm ZF9pbnRlcnJ1cHRfaW5pdChrZmQpKSB7Cj4gLQkJZGV2X2VycihrZmRfZGV2aWNlLAo+IC0JCQki RXJyb3IgaW5pdGlhbGl6aW5nIGludGVycnVwdHMgZm9yIGRldmljZSAoJXg6JXgpXG4iLAo+IC0J CQlrZmQtPnBkZXYtPnZlbmRvciwga2ZkLT5wZGV2LT5kZXZpY2UpOwo+IC0JCWdvdG8ga2ZkX2lu dGVycnVwdF9lcnJvcjsKPiAtCX0KPiAtCj4gICAJaWYgKCFkZXZpY2VfaW9tbXVfcGFzaWRfaW5p dChrZmQpKSB7Cj4gICAJCWRldl9lcnIoa2ZkX2RldmljZSwKPiAgIAkJCSJFcnJvciBpbml0aWFs aXppbmcgaW9tbXV2MiBmb3IgZGV2aWNlICgleDoleClcbiIsCj4gQEAgLTIzNyw4ICsyMzAsNiBA QCBkcW1fc3RhcnRfZXJyb3I6Cj4gICBkZXZpY2VfcXVldWVfbWFuYWdlcl9lcnJvcjoKPiAgIAlh bWRfaW9tbXVfZnJlZV9kZXZpY2Uoa2ZkLT5wZGV2KTsKPiAgIGRldmljZV9pb21tdV9wYXNpZF9l cnJvcjoKPiAtCWtmZF9pbnRlcnJ1cHRfZXhpdChrZmQpOwo+IC1rZmRfaW50ZXJydXB0X2Vycm9y Ogo+ICAgCWtmZF90b3BvbG9neV9yZW1vdmVfZGV2aWNlKGtmZCk7Cj4gICBrZmRfdG9wb2xvZ3lf YWRkX2RldmljZV9lcnJvcjoKPiAgIAlrZmQya2dkLT5maW5pX3NhX21hbmFnZXIoa2ZkLT5rZ2Qp Owo+IEBAIC0yNTQsNyArMjQ1LDYgQEAgdm9pZCBrZ2Qya2ZkX2RldmljZV9leGl0KHN0cnVjdCBr ZmRfZGV2ICprZmQpCj4gICAJaWYgKGtmZC0+aW5pdF9jb21wbGV0ZSkgewo+ICAgCQlkZXZpY2Vf cXVldWVfbWFuYWdlcl91bmluaXQoa2ZkLT5kcW0pOwo+ICAgCQlhbWRfaW9tbXVfZnJlZV9kZXZp Y2Uoa2ZkLT5wZGV2KTsKPiAtCQlrZmRfaW50ZXJydXB0X2V4aXQoa2ZkKTsKPiAgIAkJa2ZkX3Rv cG9sb2d5X3JlbW92ZV9kZXZpY2Uoa2ZkKTsKPiAgIAl9Cj4gICAKPiBAQCAtMjk2LDEzICsyODYs NSBAQCBpbnQga2dkMmtmZF9yZXN1bWUoc3RydWN0IGtmZF9kZXYgKmtmZCkKPiAgIC8qIFRoaXMg aXMgY2FsbGVkIGRpcmVjdGx5IGZyb20gS0dEIGF0IElTUi4gKi8KPiAgIHZvaWQga2dkMmtmZF9p bnRlcnJ1cHQoc3RydWN0IGtmZF9kZXYgKmtmZCwgY29uc3Qgdm9pZCAqaWhfcmluZ19lbnRyeSkK PiAgIHsKPiAtCWlmIChrZmQtPmluaXRfY29tcGxldGUpIHsKPiAtCQlzcGluX2xvY2soJmtmZC0+ aW50ZXJydXB0X2xvY2spOwo+IC0KPiAtCQlpZiAoa2ZkLT5pbnRlcnJ1cHRzX2FjdGl2ZQo+IC0J CSAgICAmJiBlbnF1ZXVlX2loX3JpbmdfZW50cnkoa2ZkLCBpaF9yaW5nX2VudHJ5KSkKPiAtCQkJ c2NoZWR1bGVfd29yaygma2ZkLT5pbnRlcnJ1cHRfd29yayk7Cj4gLQo+IC0JCXNwaW5fdW5sb2Nr KCZrZmQtPmludGVycnVwdF9sb2NrKTsKPiAtCX0KPiArCS8qIFByb2Nlc3MgaW50ZXJydXB0cyAv IHNjaGVkdWxlIHdvcmsgYXMgbmVjZXNzYXJ5ICovCj4gICB9Cj4gZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9hbWQvYW1ka2ZkL2tmZF9pbnRlcnJ1cHQuYyBiL2RyaXZlcnMvZ3B1L2RybS9h bWQvYW1ka2ZkL2tmZF9pbnRlcnJ1cHQuYwo+IGRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAo+IGlu ZGV4IDViOTk5MDkuLjAwMDAwMDAKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGtmZC9r ZmRfaW50ZXJydXB0LmMKPiArKysgL2Rldi9udWxsCj4gQEAgLTEsMTc2ICswLDAgQEAKPiAtLyoK PiAtICogQ29weXJpZ2h0IDIwMTQgQWR2YW5jZWQgTWljcm8gRGV2aWNlcywgSW5jLgo+IC0gKgo+ IC0gKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55 IHBlcnNvbiBvYnRhaW5pbmcgYQo+IC0gKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29j aWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLAo+IC0gKiB0byBkZWFs IGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBs aW1pdGF0aW9uCj4gLSAqIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBw dWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLAo+IC0gKiBhbmQvb3Igc2VsbCBjb3BpZXMg b2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUKPiAtICog U29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcg Y29uZGl0aW9uczoKPiAtICoKPiAtICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRo aXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW4KPiAtICogYWxsIGNvcGll cyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuCj4gLSAqCj4gLSAqIFRI RSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBL SU5ELCBFWFBSRVNTIE9SCj4gLSAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQg VE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAo+IC0gKiBGSVRORVNTIEZPUiBB IFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiAgSU4gTk8gRVZFTlQgU0hB TEwKPiAtICogVEhFIENPUFlSSUdIVCBIT0xERVIoUykgT1IgQVVUSE9SKFMpIEJFIExJQUJMRSBG T1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SCj4gLSAqIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJ TiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLAo+IC0gKiBBUklTSU5H IEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBV U0UgT1IKPiAtICogT1RIRVIgREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLgo+IC0gKi8KPiAtCj4g LS8qCj4gLSAqIEtGRCBJbnRlcnJ1cHRzLgo+IC0gKgo+IC0gKiBBTUQgR1BVcyBkZWxpdmVyIGlu dGVycnVwdHMgYnkgcHVzaGluZyBhbiBpbnRlcnJ1cHQgZGVzY3JpcHRpb24gb250byB0aGUKPiAt ICogaW50ZXJydXB0IHJpbmcgYW5kIHRoZW4gc2VuZGluZyBhbiBpbnRlcnJ1cHQuIEtHRCByZWNl aXZlcyB0aGUgaW50ZXJydXB0Cj4gLSAqIGluIElTUiBhbmQgc2VuZHMgdXMgYSBwb2ludGVyIHRv IGVhY2ggbmV3IGVudHJ5IG9uIHRoZSBpbnRlcnJ1cHQgcmluZy4KPiAtICoKPiAtICogV2UgZ2Vu ZXJhbGx5IGNhbid0IHByb2Nlc3MgaW50ZXJydXB0LXNpZ25hbGVkIGV2ZW50cyBmcm9tIElTUiwg c28gd2UgY2FsbAo+IC0gKiBvdXQgdG8gZWFjaCBpbnRlcnJ1cHQgY2xpZW50IG1vZHVsZSAoY3Vy cmVudGx5IG9ubHkgdGhlIHNjaGVkdWxlcikgdG8gYXNrIGlmCj4gLSAqIGVhY2ggaW50ZXJydXB0 IGlzIGludGVyZXN0aW5nLiBJZiB0aGV5IHJldHVybiB0cnVlLCB0aGVuIGl0IHJlcXVpcmVzIGZ1 cnRoZXIKPiAtICogcHJvY2Vzc2luZyBzbyB3ZSBjb3B5IGl0IHRvIGFuIGludGVybmFsIGludGVy cnVwdCByaW5nIGFuZCBjYWxsIGVhY2gKPiAtICogaW50ZXJydXB0IGNsaWVudCBhZ2FpbiBmcm9t IGEgd29yay1xdWV1ZS4KPiAtICoKPiAtICogVGhlcmUncyBubyBhY2tub3dsZWRnbWVudCBmb3Ig dGhlIGludGVycnVwdHMgd2UgdXNlLiBUaGUgaGFyZHdhcmUgc2ltcGx5Cj4gLSAqIHF1ZXVlcyBh IG5ldyBpbnRlcnJ1cHQgZWFjaCB0aW1lIHdpdGhvdXQgd2FpdGluZy4KPiAtICoKPiAtICogVGhl IGZpeGVkLXNpemUgaW50ZXJuYWwgcXVldWUgbWVhbnMgdGhhdCBpdCdzIHBvc3NpYmxlIGZvciB1 cyB0byBsb3NlCj4gLSAqIGludGVycnVwdHMgYmVjYXVzZSB3ZSBoYXZlIG5vIGJhY2stcHJlc3N1 cmUgdG8gdGhlIGhhcmR3YXJlLgo+IC0gKi8KPiAtCj4gLSNpbmNsdWRlIDxsaW51eC9zbGFiLmg+ Cj4gLSNpbmNsdWRlIDxsaW51eC9kZXZpY2UuaD4KPiAtI2luY2x1ZGUgImtmZF9wcml2LmgiCj4g LQo+IC0jZGVmaW5lIEtGRF9JTlRFUlJVUFRfUklOR19TSVpFIDI1Ngo+IC0KPiAtc3RhdGljIHZv aWQgaW50ZXJydXB0X3dxKHN0cnVjdCB3b3JrX3N0cnVjdCAqKTsKPiAtCj4gLWludCBrZmRfaW50 ZXJydXB0X2luaXQoc3RydWN0IGtmZF9kZXYgKmtmZCkKPiAtewo+IC0Jdm9pZCAqaW50ZXJydXB0 X3JpbmcgPSBrbWFsbG9jX2FycmF5KEtGRF9JTlRFUlJVUFRfUklOR19TSVpFLAo+IC0JCQkJCWtm ZC0+ZGV2aWNlX2luZm8tPmloX3JpbmdfZW50cnlfc2l6ZSwKPiAtCQkJCQlHRlBfS0VSTkVMKTsK PiAtCWlmICghaW50ZXJydXB0X3JpbmcpCj4gLQkJcmV0dXJuIC1FTk9NRU07Cj4gLQo+IC0Ja2Zk LT5pbnRlcnJ1cHRfcmluZyA9IGludGVycnVwdF9yaW5nOwo+IC0Ja2ZkLT5pbnRlcnJ1cHRfcmlu Z19zaXplID0KPiAtCQlLRkRfSU5URVJSVVBUX1JJTkdfU0laRSAqIGtmZC0+ZGV2aWNlX2luZm8t PmloX3JpbmdfZW50cnlfc2l6ZTsKPiAtCWF0b21pY19zZXQoJmtmZC0+aW50ZXJydXB0X3Jpbmdf d3B0ciwgMCk7Cj4gLQlhdG9taWNfc2V0KCZrZmQtPmludGVycnVwdF9yaW5nX3JwdHIsIDApOwo+ IC0KPiAtCXNwaW5fbG9ja19pbml0KCZrZmQtPmludGVycnVwdF9sb2NrKTsKPiAtCj4gLQlJTklU X1dPUksoJmtmZC0+aW50ZXJydXB0X3dvcmssIGludGVycnVwdF93cSk7Cj4gLQo+IC0Ja2ZkLT5p bnRlcnJ1cHRzX2FjdGl2ZSA9IHRydWU7Cj4gLQo+IC0JLyoKPiAtCSAqIEFmdGVyIHRoaXMgZnVu Y3Rpb24gcmV0dXJucywgdGhlIGludGVycnVwdCB3aWxsIGJlIGVuYWJsZWQuIFRoaXMKPiAtCSAq IGJhcnJpZXIgZW5zdXJlcyB0aGF0IHRoZSBpbnRlcnJ1cHQgcnVubmluZyBvbiBhIGRpZmZlcmVu dCBwcm9jZXNzb3IKPiAtCSAqIHNlZXMgYWxsIHRoZSBhYm92ZSB3cml0ZXMuCj4gLQkgKi8KPiAt CXNtcF93bWIoKTsKPiAtCj4gLQlyZXR1cm4gMDsKPiAtfQo+IC0KPiAtdm9pZCBrZmRfaW50ZXJy dXB0X2V4aXQoc3RydWN0IGtmZF9kZXYgKmtmZCkKPiAtewo+IC0JLyoKPiAtCSAqIFN0b3AgdGhl IGludGVycnVwdCBoYW5kbGVyIGZyb20gd3JpdGluZyB0byB0aGUgcmluZyBhbmQgc2NoZWR1bGlu Zwo+IC0JICogd29ya3F1ZXVlIGl0ZW1zLiBUaGUgc3BpbmxvY2sgZW5zdXJlcyB0aGF0IGFueSBp bnRlcnJ1cHQgcnVubmluZwo+IC0JICogYWZ0ZXIgd2UgaGF2ZSB1bmxvY2tlZCBzZWVzIGludGVy cnVwdHNfYWN0aXZlID0gZmFsc2UuCj4gLQkgKi8KPiAtCXVuc2lnbmVkIGxvbmcgZmxhZ3M7Cj4g LQo+IC0Jc3Bpbl9sb2NrX2lycXNhdmUoJmtmZC0+aW50ZXJydXB0X2xvY2ssIGZsYWdzKTsKPiAt CWtmZC0+aW50ZXJydXB0c19hY3RpdmUgPSBmYWxzZTsKPiAtCXNwaW5fdW5sb2NrX2lycXJlc3Rv cmUoJmtmZC0+aW50ZXJydXB0X2xvY2ssIGZsYWdzKTsKPiAtCj4gLQkvKgo+IC0JICogRmx1c2hf c2NoZWR1bGVkX3dvcmsgZW5zdXJlcyB0aGF0IHRoZXJlIGFyZSBubyBvdXRzdGFuZGluZwo+IC0J ICogd29yay1xdWV1ZSBpdGVtcyB0aGF0IHdpbGwgYWNjZXNzIGludGVycnVwdF9yaW5nLiBOZXcg d29yayBpdGVtcwo+IC0JICogY2FuJ3QgYmUgY3JlYXRlZCBiZWNhdXNlIHdlIHN0b3BwZWQgaW50 ZXJydXB0IGhhbmRsaW5nIGFib3ZlLgo+IC0JICovCj4gLQlmbHVzaF9zY2hlZHVsZWRfd29yaygp Owo+IC0KPiAtCWtmcmVlKGtmZC0+aW50ZXJydXB0X3JpbmcpOwo+IC19Cj4gLQo+IC0vKgo+IC0g KiBUaGlzIGFzc3VtZXMgdGhhdCBpdCBjYW4ndCBiZSBjYWxsZWQgY29uY3VycmVudGx5IHdpdGgg aXRzZWxmCj4gLSAqIGJ1dCBvbmx5IHdpdGggZGVxdWV1ZV9paF9yaW5nX2VudHJ5Lgo+IC0gKi8K PiAtYm9vbCBlbnF1ZXVlX2loX3JpbmdfZW50cnkoc3RydWN0IGtmZF9kZXYgKmtmZCwJY29uc3Qg dm9pZCAqaWhfcmluZ19lbnRyeSkKPiAtewo+IC0JdW5zaWduZWQgaW50IHJwdHIgPSBhdG9taWNf cmVhZCgma2ZkLT5pbnRlcnJ1cHRfcmluZ19ycHRyKTsKPiAtCXVuc2lnbmVkIGludCB3cHRyID0g YXRvbWljX3JlYWQoJmtmZC0+aW50ZXJydXB0X3Jpbmdfd3B0cik7Cj4gLQo+IC0JaWYgKChycHRy IC0gd3B0cikgJSBrZmQtPmludGVycnVwdF9yaW5nX3NpemUgPT0KPiAtCQkJCQlrZmQtPmRldmlj ZV9pbmZvLT5paF9yaW5nX2VudHJ5X3NpemUpIHsKPiAtCQkvKiBUaGlzIGlzIHZlcnkgYmFkLCB0 aGUgc3lzdGVtIGlzIGxpa2VseSB0byBoYW5nLiAqLwo+IC0JCWRldl9lcnJfcmF0ZWxpbWl0ZWQo a2ZkX2NoYXJkZXYoKSwKPiAtCQkJIkludGVycnVwdCByaW5nIG92ZXJmbG93LCBkcm9wcGluZyBp bnRlcnJ1cHQuXG4iKTsKPiAtCQlyZXR1cm4gZmFsc2U7Cj4gLQl9Cj4gLQo+IC0JbWVtY3B5KGtm ZC0+aW50ZXJydXB0X3JpbmcgKyB3cHRyLCBpaF9yaW5nX2VudHJ5LAo+IC0JCQlrZmQtPmRldmlj ZV9pbmZvLT5paF9yaW5nX2VudHJ5X3NpemUpOwo+IC0KPiAtCXdwdHIgPSAod3B0ciArIGtmZC0+ ZGV2aWNlX2luZm8tPmloX3JpbmdfZW50cnlfc2l6ZSkgJQo+IC0JCQlrZmQtPmludGVycnVwdF9y aW5nX3NpemU7Cj4gLQlzbXBfd21iKCk7IC8qIEVuc3VyZSBtZW1jcHknZCBkYXRhIGlzIHZpc2li bGUgYmVmb3JlIHdwdHIgdXBkYXRlLiAqLwo+IC0JYXRvbWljX3NldCgma2ZkLT5pbnRlcnJ1cHRf cmluZ193cHRyLCB3cHRyKTsKPiAtCj4gLQlyZXR1cm4gdHJ1ZTsKPiAtfQo+IC0KPiAtLyoKPiAt ICogVGhpcyBhc3N1bWVzIHRoYXQgaXQgY2FuJ3QgYmUgY2FsbGVkIGNvbmN1cnJlbnRseSB3aXRo IGl0c2VsZgo+IC0gKiBidXQgb25seSB3aXRoIGVucXVldWVfaWhfcmluZ19lbnRyeS4KPiAtICov Cj4gLXN0YXRpYyBib29sIGRlcXVldWVfaWhfcmluZ19lbnRyeShzdHJ1Y3Qga2ZkX2RldiAqa2Zk LCB2b2lkICppaF9yaW5nX2VudHJ5KQo+IC17Cj4gLQkvKgo+IC0JICogQXNzdW1lIHRoYXQgd2Fp dCBxdWV1ZXMgaGF2ZSBhbiBpbXBsaWNpdCBiYXJyaWVyLCBpLmUuIGFueXRoaW5nIHRoYXQKPiAt CSAqIGhhcHBlbmVkIGluIHRoZSBJU1IgYmVmb3JlIGl0IHF1ZXVlZCB3b3JrIGlzIHZpc2libGUu Cj4gLQkgKi8KPiAtCj4gLQl1bnNpZ25lZCBpbnQgd3B0ciA9IGF0b21pY19yZWFkKCZrZmQtPmlu dGVycnVwdF9yaW5nX3dwdHIpOwo+IC0JdW5zaWduZWQgaW50IHJwdHIgPSBhdG9taWNfcmVhZCgm a2ZkLT5pbnRlcnJ1cHRfcmluZ19ycHRyKTsKPiAtCj4gLQlpZiAocnB0ciA9PSB3cHRyKQo+IC0J CXJldHVybiBmYWxzZTsKPiAtCj4gLQltZW1jcHkoaWhfcmluZ19lbnRyeSwga2ZkLT5pbnRlcnJ1 cHRfcmluZyArIHJwdHIsCj4gLQkJCWtmZC0+ZGV2aWNlX2luZm8tPmloX3JpbmdfZW50cnlfc2l6 ZSk7Cj4gLQo+IC0JcnB0ciA9IChycHRyICsga2ZkLT5kZXZpY2VfaW5mby0+aWhfcmluZ19lbnRy eV9zaXplKSAlCj4gLQkJCWtmZC0+aW50ZXJydXB0X3Jpbmdfc2l6ZTsKPiAtCj4gLQkvKgo+IC0J ICogRW5zdXJlIHRoZSBycHRyIHdyaXRlIHVwZGF0ZSBpcyBub3QgdmlzaWJsZSB1bnRpbAo+IC0J ICogbWVtY3B5IGhhcyBmaW5pc2hlZCByZWFkaW5nLgo+IC0JICovCj4gLQlzbXBfbWIoKTsKPiAt CWF0b21pY19zZXQoJmtmZC0+aW50ZXJydXB0X3JpbmdfcnB0ciwgcnB0cik7Cj4gLQo+IC0JcmV0 dXJuIHRydWU7Cj4gLX0KPiAtCj4gLXN0YXRpYyB2b2lkIGludGVycnVwdF93cShzdHJ1Y3Qgd29y a19zdHJ1Y3QgKndvcmspCj4gLXsKPiAtCXN0cnVjdCBrZmRfZGV2ICpkZXYgPSBjb250YWluZXJf b2Yod29yaywgc3RydWN0IGtmZF9kZXYsCj4gLQkJCQkJCWludGVycnVwdF93b3JrKTsKPiAtCj4g LQl1aW50MzJfdCBpaF9yaW5nX2VudHJ5W0RJVl9ST1VORF9VUCgKPiAtCQkJCWRldi0+ZGV2aWNl X2luZm8tPmloX3JpbmdfZW50cnlfc2l6ZSwKPiAtCQkJCXNpemVvZih1aW50MzJfdCkpXTsKPiAt Cj4gLQl3aGlsZSAoZGVxdWV1ZV9paF9yaW5nX2VudHJ5KGRldiwgaWhfcmluZ19lbnRyeSkpCj4g LQkJOwo+IC19Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1ka2ZkL2tmZF9w cml2LmggYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGtmZC9rZmRfcHJpdi5oCj4gaW5kZXggZjlm YjgxZS4uM2E2YWM5MCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGtmZC9r ZmRfcHJpdi5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRrZmQva2ZkX3ByaXYuaAo+ IEBAIC0xMzUsMjIgKzEzNSwxMCBAQCBzdHJ1Y3Qga2ZkX2RldiB7Cj4gICAKPiAgIAlzdHJ1Y3Qg a2dkMmtmZF9zaGFyZWRfcmVzb3VyY2VzIHNoYXJlZF9yZXNvdXJjZXM7Cj4gICAKPiAtCXZvaWQg KmludGVycnVwdF9yaW5nOwo+IC0Jc2l6ZV90IGludGVycnVwdF9yaW5nX3NpemU7Cj4gLQlhdG9t aWNfdCBpbnRlcnJ1cHRfcmluZ19ycHRyOwo+IC0JYXRvbWljX3QgaW50ZXJydXB0X3Jpbmdfd3B0 cjsKPiAtCXN0cnVjdCB3b3JrX3N0cnVjdCBpbnRlcnJ1cHRfd29yazsKPiAtCXNwaW5sb2NrX3Qg aW50ZXJydXB0X2xvY2s7Cj4gLQo+ICAgCS8qIFFDTSBEZXZpY2UgaW5zdGFuY2UgKi8KPiAgIAlz dHJ1Y3QgZGV2aWNlX3F1ZXVlX21hbmFnZXIgKmRxbTsKPiAgIAo+ICAgCWJvb2wgaW5pdF9jb21w bGV0ZTsKPiAtCS8qCj4gLQkgKiBJbnRlcnJ1cHRzIG9mIGludGVyZXN0IHRvIEtGRCBhcmUgY29w aWVkCj4gLQkgKiBmcm9tIHRoZSBIVyByaW5nIGludG8gYSBTVyByaW5nLgo+IC0JICovCj4gLQli b29sIGludGVycnVwdHNfYWN0aXZlOwo+ICAgfTsKPiAgIAo+ICAgLyogS0dEMktGRCBjYWxsYmFj a3MgKi8KPiBAQCAtNTEzLDEwICs1MDEsNyBAQCBzdHJ1Y3Qga2ZkX2RldiAqa2ZkX2RldmljZV9i eV9wY2lfZGV2KGNvbnN0IHN0cnVjdCBwY2lfZGV2ICpwZGV2KTsKPiAgIHN0cnVjdCBrZmRfZGV2 ICprZmRfdG9wb2xvZ3lfZW51bV9rZmRfZGV2aWNlcyh1aW50OF90IGlkeCk7Cj4gICAKPiAgIC8q IEludGVycnVwdHMgKi8KPiAtaW50IGtmZF9pbnRlcnJ1cHRfaW5pdChzdHJ1Y3Qga2ZkX2RldiAq ZGV2KTsKPiAtdm9pZCBrZmRfaW50ZXJydXB0X2V4aXQoc3RydWN0IGtmZF9kZXYgKmRldik7Cj4g ICB2b2lkIGtnZDJrZmRfaW50ZXJydXB0KHN0cnVjdCBrZmRfZGV2ICprZmQsIGNvbnN0IHZvaWQg KmloX3JpbmdfZW50cnkpOwo+IC1ib29sIGVucXVldWVfaWhfcmluZ19lbnRyeShzdHJ1Y3Qga2Zk X2RldiAqa2ZkLAljb25zdCB2b2lkICppaF9yaW5nX2VudHJ5KTsKPiAgIAo+ICAgLyogUG93ZXIg TWFuYWdlbWVudCAqLwo+ICAgdm9pZCBrZ2Qya2ZkX3N1c3BlbmQoc3RydWN0IGtmZF9kZXYgKmtm ZCk7CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmkt ZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cDov L2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=