From mboxrd@z Thu Jan 1 00:00:00 1970 From: Oded Gabbay Subject: Re: [PATCH] amdkfd: Drop interrupt SW ring buffer Date: Wed, 7 Jan 2015 14:24:08 +0200 Message-ID: <54AD2568.5080703@amd.com> References: <1420603176-1520-1-git-send-email-michel@daenzer.net> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from na01-bn1-obe.outbound.protection.outlook.com (mail-bn1bon0134.outbound.protection.outlook.com [157.56.111.134]) by gabe.freedesktop.org (Postfix) with ESMTP id ED74B6E5C5 for ; Wed, 7 Jan 2015 04:24:16 -0800 (PST) In-Reply-To: <1420603176-1520-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=?= Cc: dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org SGkgTWljaGVsLApTbyB5b3VyIHBhdGNoIGlzIHF1aXRlLCBobW0sICpkcmFzdGljKiA6KQoKSW5z dGVhZCwgY291bGQgSSBzdWdnZXN0IHRvIG9ubHkgcmVtb3ZlIHRoZSBjYWxscyB0byBrZmRfaW50 ZXJydXB0X2luaXQoKQphbmQga2ZkX2ludGVycnVwdF9leGl0KCkgPyBJdCB3aWxsIGFsc28gcmVx dWlyZSBhIG1pbm9yIG1vZGlmaWNhdGlvbiB0byB0aGUKbG9naWMgaW4ga2dkMmtmZF9pbnRlcnJ1 cHQoKSBidXQgaXQgaXMgbXVjaCBsZXNzIGludHJ1c2l2ZSB0aGFuIHdoYXQgeW91IGFyZQpzdWdn ZXN0aW5nLgoKQWx0ZXJuYXRpdmVseSwgd2UgY291bGQgdGFrZSBqdXN0IHRoaXMgaHVuazoKCj4g QEAgLTI5NiwxMyArMjg2LDUgQEAgaW50IGtnZDJrZmRfcmVzdW1lKHN0cnVjdCBrZmRfZGV2ICpr ZmQpCj4gIC8qIFRoaXMgaXMgY2FsbGVkIGRpcmVjdGx5IGZyb20gS0dEIGF0IElTUi4gKi8KPiAg dm9pZCBrZ2Qya2ZkX2ludGVycnVwdChzdHJ1Y3Qga2ZkX2RldiAqa2ZkLCBjb25zdCB2b2lkICpp aF9yaW5nX2VudHJ5KQo+ICB7Cj4gLQlpZiAoa2ZkLT5pbml0X2NvbXBsZXRlKSB7Cj4gLQkJc3Bp bl9sb2NrKCZrZmQtPmludGVycnVwdF9sb2NrKTsKPiAtCj4gLQkJaWYgKGtmZC0+aW50ZXJydXB0 c19hY3RpdmUKPiAtCQkgICAgJiYgZW5xdWV1ZV9paF9yaW5nX2VudHJ5KGtmZCwgaWhfcmluZ19l bnRyeSkpCj4gLQkJCXNjaGVkdWxlX3dvcmsoJmtmZC0+aW50ZXJydXB0X3dvcmspOwo+IC0KPiAt CQlzcGluX3VubG9jaygma2ZkLT5pbnRlcnJ1cHRfbG9jayk7Cj4gLQl9Cj4gKwkvKiBQcm9jZXNz IGludGVycnVwdHMgLyBzY2hlZHVsZSB3b3JrIGFzIG5lY2Vzc2FyeSAqLwo+ICB9CgoKQWZ0ZXIg YWxsLCB3ZSBkbyBuZWVkIHRoaXMgZmVhdHVyZSBldmVudHVhbGx5IGFuZCBtb3N0IG9mIGl0IGlz IGZpbmUsIHNvIEkKZG9uJ3Qgd2FudCB0byB0YWtlIGl0IGFsbCBvdXQuIEFzIEkgc2FpZCwgaXQg aXMgKmRyYXN0aWMqLgoKCU9kZWQKCk9uIDAxLzA3LzIwMTUgMDU6NTkgQU0sIE1pY2hlbCBEw6Ru emVyIHdyb3RlOgo+IEZyb206IE1pY2hlbCBEw6RuemVyIDxtaWNoZWwuZGFlbnplckBhbWQuY29t Pgo+IAo+IFRoZSBTVyByaW5nIGJ1ZmZlciB3YXMgc21hbGxlciB0aGFuIHRoZSBjb3JyZXNwb25k aW5nIGhhcmR3YXJlIHJpbmcsIHNvCj4gZG1lc2cgY291bGQgZ2V0IHNwYW1tZWQgYnkKPiAKPiAg a2ZkIGtmZDogSW50ZXJydXB0IHJpbmcgb3ZlcmZsb3csIGRyb3BwaW5nIGludGVycnVwdC4KPiAK PiBtZXNzYWdlcyB3aGVuIHJ1bm5pbmcgZ3JhcGhpY3MgYXBwcy4KPiAKPiBTaW5jZSB0aGUgU1cg cmluZyBidWZmZXIgZG9lc24ndCBhY3R1YWxseSBkbyBhbnl0aGluZyBhdCB0aGlzIHBvaW50LCBq dXN0Cj4gcmVtb3ZlIGl0IGZvciBub3cuIFdoZW4gYWN0dWFsIGludGVycnVwdCBwcm9jZXNzaW5n IGNvZGUgaXMgYWRkZWQgdG8KPiBhbWRrZmQsIGl0IHNob3VsZCB0cnkgdG8gZG8gdGhpbmdzIGlt bWVkaWF0ZWx5IGFuZCBvbmx5IGRlZmVyIHRvIHdvcmsKPiBxdWV1ZXMgd2hlbiBuZWNlc3Nhcnku Cj4gCj4gU2lnbmVkLW9mZi1ieTogTWljaGVsIETDpG56ZXIgPG1pY2hlbC5kYWVuemVyQGFtZC5j b20+Cj4gLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1ka2ZkL01ha2VmaWxlICAgICAgICB8 ICAgMyArLQo+ICBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGtmZC9rZmRfZGV2aWNlLmMgICAgfCAg MjAgKy0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGtmZC9rZmRfaW50ZXJydXB0LmMgfCAx NzYgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiAgZHJpdmVycy9ncHUvZHJtL2FtZC9h bWRrZmQva2ZkX3ByaXYuaCAgICAgIHwgIDE1IC0tLQo+ICA0IGZpbGVzIGNoYW5nZWQsIDIgaW5z ZXJ0aW9ucygrKSwgMjEyIGRlbGV0aW9ucygtKQo+ICBkZWxldGUgbW9kZSAxMDA2NDQgZHJpdmVy cy9ncHUvZHJtL2FtZC9hbWRrZmQva2ZkX2ludGVycnVwdC5jCj4gCj4gZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9hbWQvYW1ka2ZkL01ha2VmaWxlIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9h bWRrZmQvTWFrZWZpbGUKPiBpbmRleCBiZTYyNDZkLi4zMDdhMzA5IDEwMDY0NAo+IC0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9hbWQvYW1ka2ZkL01ha2VmaWxlCj4gKysrIGIvZHJpdmVycy9ncHUvZHJt L2FtZC9hbWRrZmQvTWFrZWZpbGUKPiBAQCAtOCw3ICs4LDYgQEAgYW1ka2ZkLXkJOj0ga2ZkX21v ZHVsZS5vIGtmZF9kZXZpY2UubyBrZmRfY2hhcmRldi5vIGtmZF90b3BvbG9neS5vIFwKPiAgCQlr ZmRfcGFzaWQubyBrZmRfZG9vcmJlbGwubyBrZmRfZmxhdF9tZW1vcnkubyBcCj4gIAkJa2ZkX3By b2Nlc3MubyBrZmRfcXVldWUubyBrZmRfbXFkX21hbmFnZXIubyBcCj4gIAkJa2ZkX2tlcm5lbF9x dWV1ZS5vIGtmZF9wYWNrZXRfbWFuYWdlci5vIFwKPiAtCQlrZmRfcHJvY2Vzc19xdWV1ZV9tYW5h Z2VyLm8ga2ZkX2RldmljZV9xdWV1ZV9tYW5hZ2VyLm8gXAo+IC0JCWtmZF9pbnRlcnJ1cHQubwo+ ICsJCWtmZF9wcm9jZXNzX3F1ZXVlX21hbmFnZXIubyBrZmRfZGV2aWNlX3F1ZXVlX21hbmFnZXIu bwo+ICAKPiAgb2JqLSQoQ09ORklHX0hTQV9BTUQpCSs9IGFtZGtmZC5vCj4gZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1ka2ZkL2tmZF9kZXZpY2UuYyBiL2RyaXZlcnMvZ3B1L2Ry bS9hbWQvYW1ka2ZkL2tmZF9kZXZpY2UuYwo+IGluZGV4IDQzODg0ZWIuLjYzMzUzMmEgMTAwNjQ0 Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRrZmQva2ZkX2RldmljZS5jCj4gKysrIGIv ZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRrZmQva2ZkX2RldmljZS5jCj4gQEAgLTE5MiwxMyArMTky LDYgQEAgYm9vbCBrZ2Qya2ZkX2RldmljZV9pbml0KHN0cnVjdCBrZmRfZGV2ICprZmQsCj4gIAkJ Z290byBrZmRfdG9wb2xvZ3lfYWRkX2RldmljZV9lcnJvcjsKPiAgCX0KPiAgCj4gLQlpZiAoa2Zk X2ludGVycnVwdF9pbml0KGtmZCkpIHsKPiAtCQlkZXZfZXJyKGtmZF9kZXZpY2UsCj4gLQkJCSJF cnJvciBpbml0aWFsaXppbmcgaW50ZXJydXB0cyBmb3IgZGV2aWNlICgleDoleClcbiIsCj4gLQkJ CWtmZC0+cGRldi0+dmVuZG9yLCBrZmQtPnBkZXYtPmRldmljZSk7Cj4gLQkJZ290byBrZmRfaW50 ZXJydXB0X2Vycm9yOwo+IC0JfQo+IC0KPiAgCWlmICghZGV2aWNlX2lvbW11X3Bhc2lkX2luaXQo a2ZkKSkgewo+ICAJCWRldl9lcnIoa2ZkX2RldmljZSwKPiAgCQkJIkVycm9yIGluaXRpYWxpemlu ZyBpb21tdXYyIGZvciBkZXZpY2UgKCV4OiV4KVxuIiwKPiBAQCAtMjM3LDggKzIzMCw2IEBAIGRx bV9zdGFydF9lcnJvcjoKPiAgZGV2aWNlX3F1ZXVlX21hbmFnZXJfZXJyb3I6Cj4gIAlhbWRfaW9t bXVfZnJlZV9kZXZpY2Uoa2ZkLT5wZGV2KTsKPiAgZGV2aWNlX2lvbW11X3Bhc2lkX2Vycm9yOgo+ IC0Ja2ZkX2ludGVycnVwdF9leGl0KGtmZCk7Cj4gLWtmZF9pbnRlcnJ1cHRfZXJyb3I6Cj4gIAlr ZmRfdG9wb2xvZ3lfcmVtb3ZlX2RldmljZShrZmQpOwo+ICBrZmRfdG9wb2xvZ3lfYWRkX2Rldmlj ZV9lcnJvcjoKPiAgCWtmZDJrZ2QtPmZpbmlfc2FfbWFuYWdlcihrZmQtPmtnZCk7Cj4gQEAgLTI1 NCw3ICsyNDUsNiBAQCB2b2lkIGtnZDJrZmRfZGV2aWNlX2V4aXQoc3RydWN0IGtmZF9kZXYgKmtm ZCkKPiAgCWlmIChrZmQtPmluaXRfY29tcGxldGUpIHsKPiAgCQlkZXZpY2VfcXVldWVfbWFuYWdl cl91bmluaXQoa2ZkLT5kcW0pOwo+ICAJCWFtZF9pb21tdV9mcmVlX2RldmljZShrZmQtPnBkZXYp Owo+IC0JCWtmZF9pbnRlcnJ1cHRfZXhpdChrZmQpOwo+ICAJCWtmZF90b3BvbG9neV9yZW1vdmVf ZGV2aWNlKGtmZCk7Cj4gIAl9Cj4gIAo+IEBAIC0yOTYsMTMgKzI4Niw1IEBAIGludCBrZ2Qya2Zk X3Jlc3VtZShzdHJ1Y3Qga2ZkX2RldiAqa2ZkKQo+ICAvKiBUaGlzIGlzIGNhbGxlZCBkaXJlY3Rs eSBmcm9tIEtHRCBhdCBJU1IuICovCj4gIHZvaWQga2dkMmtmZF9pbnRlcnJ1cHQoc3RydWN0IGtm ZF9kZXYgKmtmZCwgY29uc3Qgdm9pZCAqaWhfcmluZ19lbnRyeSkKPiAgewo+IC0JaWYgKGtmZC0+ aW5pdF9jb21wbGV0ZSkgewo+IC0JCXNwaW5fbG9jaygma2ZkLT5pbnRlcnJ1cHRfbG9jayk7Cj4g LQo+IC0JCWlmIChrZmQtPmludGVycnVwdHNfYWN0aXZlCj4gLQkJICAgICYmIGVucXVldWVfaWhf cmluZ19lbnRyeShrZmQsIGloX3JpbmdfZW50cnkpKQo+IC0JCQlzY2hlZHVsZV93b3JrKCZrZmQt PmludGVycnVwdF93b3JrKTsKPiAtCj4gLQkJc3Bpbl91bmxvY2soJmtmZC0+aW50ZXJydXB0X2xv Y2spOwo+IC0JfQo+ICsJLyogUHJvY2VzcyBpbnRlcnJ1cHRzIC8gc2NoZWR1bGUgd29yayBhcyBu ZWNlc3NhcnkgKi8KPiAgfQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGtm ZC9rZmRfaW50ZXJydXB0LmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGtmZC9rZmRfaW50ZXJy dXB0LmMKPiBkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKPiBpbmRleCA1Yjk5OTA5Li4wMDAwMDAw Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRrZmQva2ZkX2ludGVycnVwdC5jCj4gKysr IC9kZXYvbnVsbAo+IEBAIC0xLDE3NiArMCwwIEBACj4gLS8qCj4gLSAqIENvcHlyaWdodCAyMDE0 IEFkdmFuY2VkIE1pY3JvIERldmljZXMsIEluYy4KPiAtICoKPiAtICogUGVybWlzc2lvbiBpcyBo ZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEK PiAtICogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24g ZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwKPiAtICogdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0 aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbgo+IC0gKiB0aGUg cmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwg c3VibGljZW5zZSwKPiAtICogYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5k IHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlCj4gLSAqIFNvZnR3YXJlIGlzIGZ1cm5pc2hl ZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6Cj4gLSAqCj4g LSAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNl IHNoYWxsIGJlIGluY2x1ZGVkIGluCj4gLSAqIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9y dGlvbnMgb2YgdGhlIFNvZnR3YXJlLgo+IC0gKgo+IC0gKiBUSEUgU09GVFdBUkUgSVMgUFJPVklE RUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgo+IC0g KiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9G IE1FUkNIQU5UQUJJTElUWSwKPiAtICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Ug QU5EIE5PTklORlJJTkdFTUVOVC4gIElOIE5PIEVWRU5UIFNIQUxMCj4gLSAqIFRIRSBDT1BZUklH SFQgSE9MREVSKFMpIE9SIEFVVEhPUihTKSBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdF UyBPUgo+IC0gKiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRS QUNULCBUT1JUIE9SIE9USEVSV0lTRSwKPiAtICogQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4g Q09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SCj4gLSAqIE9USEVSIERF QUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4KPiAtICovCj4gLQo+IC0vKgo+IC0gKiBLRkQgSW50ZXJy dXB0cy4KPiAtICoKPiAtICogQU1EIEdQVXMgZGVsaXZlciBpbnRlcnJ1cHRzIGJ5IHB1c2hpbmcg YW4gaW50ZXJydXB0IGRlc2NyaXB0aW9uIG9udG8gdGhlCj4gLSAqIGludGVycnVwdCByaW5nIGFu ZCB0aGVuIHNlbmRpbmcgYW4gaW50ZXJydXB0LiBLR0QgcmVjZWl2ZXMgdGhlIGludGVycnVwdAo+ IC0gKiBpbiBJU1IgYW5kIHNlbmRzIHVzIGEgcG9pbnRlciB0byBlYWNoIG5ldyBlbnRyeSBvbiB0 aGUgaW50ZXJydXB0IHJpbmcuCj4gLSAqCj4gLSAqIFdlIGdlbmVyYWxseSBjYW4ndCBwcm9jZXNz IGludGVycnVwdC1zaWduYWxlZCBldmVudHMgZnJvbSBJU1IsIHNvIHdlIGNhbGwKPiAtICogb3V0 IHRvIGVhY2ggaW50ZXJydXB0IGNsaWVudCBtb2R1bGUgKGN1cnJlbnRseSBvbmx5IHRoZSBzY2hl ZHVsZXIpIHRvIGFzayBpZgo+IC0gKiBlYWNoIGludGVycnVwdCBpcyBpbnRlcmVzdGluZy4gSWYg dGhleSByZXR1cm4gdHJ1ZSwgdGhlbiBpdCByZXF1aXJlcyBmdXJ0aGVyCj4gLSAqIHByb2Nlc3Np bmcgc28gd2UgY29weSBpdCB0byBhbiBpbnRlcm5hbCBpbnRlcnJ1cHQgcmluZyBhbmQgY2FsbCBl YWNoCj4gLSAqIGludGVycnVwdCBjbGllbnQgYWdhaW4gZnJvbSBhIHdvcmstcXVldWUuCj4gLSAq Cj4gLSAqIFRoZXJlJ3Mgbm8gYWNrbm93bGVkZ21lbnQgZm9yIHRoZSBpbnRlcnJ1cHRzIHdlIHVz ZS4gVGhlIGhhcmR3YXJlIHNpbXBseQo+IC0gKiBxdWV1ZXMgYSBuZXcgaW50ZXJydXB0IGVhY2gg dGltZSB3aXRob3V0IHdhaXRpbmcuCj4gLSAqCj4gLSAqIFRoZSBmaXhlZC1zaXplIGludGVybmFs IHF1ZXVlIG1lYW5zIHRoYXQgaXQncyBwb3NzaWJsZSBmb3IgdXMgdG8gbG9zZQo+IC0gKiBpbnRl cnJ1cHRzIGJlY2F1c2Ugd2UgaGF2ZSBubyBiYWNrLXByZXNzdXJlIHRvIHRoZSBoYXJkd2FyZS4K PiAtICovCj4gLQo+IC0jaW5jbHVkZSA8bGludXgvc2xhYi5oPgo+IC0jaW5jbHVkZSA8bGludXgv ZGV2aWNlLmg+Cj4gLSNpbmNsdWRlICJrZmRfcHJpdi5oIgo+IC0KPiAtI2RlZmluZSBLRkRfSU5U RVJSVVBUX1JJTkdfU0laRSAyNTYKPiAtCj4gLXN0YXRpYyB2b2lkIGludGVycnVwdF93cShzdHJ1 Y3Qgd29ya19zdHJ1Y3QgKik7Cj4gLQo+IC1pbnQga2ZkX2ludGVycnVwdF9pbml0KHN0cnVjdCBr ZmRfZGV2ICprZmQpCj4gLXsKPiAtCXZvaWQgKmludGVycnVwdF9yaW5nID0ga21hbGxvY19hcnJh eShLRkRfSU5URVJSVVBUX1JJTkdfU0laRSwKPiAtCQkJCQlrZmQtPmRldmljZV9pbmZvLT5paF9y aW5nX2VudHJ5X3NpemUsCj4gLQkJCQkJR0ZQX0tFUk5FTCk7Cj4gLQlpZiAoIWludGVycnVwdF9y aW5nKQo+IC0JCXJldHVybiAtRU5PTUVNOwo+IC0KPiAtCWtmZC0+aW50ZXJydXB0X3JpbmcgPSBp bnRlcnJ1cHRfcmluZzsKPiAtCWtmZC0+aW50ZXJydXB0X3Jpbmdfc2l6ZSA9Cj4gLQkJS0ZEX0lO VEVSUlVQVF9SSU5HX1NJWkUgKiBrZmQtPmRldmljZV9pbmZvLT5paF9yaW5nX2VudHJ5X3NpemU7 Cj4gLQlhdG9taWNfc2V0KCZrZmQtPmludGVycnVwdF9yaW5nX3dwdHIsIDApOwo+IC0JYXRvbWlj X3NldCgma2ZkLT5pbnRlcnJ1cHRfcmluZ19ycHRyLCAwKTsKPiAtCj4gLQlzcGluX2xvY2tfaW5p dCgma2ZkLT5pbnRlcnJ1cHRfbG9jayk7Cj4gLQo+IC0JSU5JVF9XT1JLKCZrZmQtPmludGVycnVw dF93b3JrLCBpbnRlcnJ1cHRfd3EpOwo+IC0KPiAtCWtmZC0+aW50ZXJydXB0c19hY3RpdmUgPSB0 cnVlOwo+IC0KPiAtCS8qCj4gLQkgKiBBZnRlciB0aGlzIGZ1bmN0aW9uIHJldHVybnMsIHRoZSBp bnRlcnJ1cHQgd2lsbCBiZSBlbmFibGVkLiBUaGlzCj4gLQkgKiBiYXJyaWVyIGVuc3VyZXMgdGhh dCB0aGUgaW50ZXJydXB0IHJ1bm5pbmcgb24gYSBkaWZmZXJlbnQgcHJvY2Vzc29yCj4gLQkgKiBz ZWVzIGFsbCB0aGUgYWJvdmUgd3JpdGVzLgo+IC0JICovCj4gLQlzbXBfd21iKCk7Cj4gLQo+IC0J cmV0dXJuIDA7Cj4gLX0KPiAtCj4gLXZvaWQga2ZkX2ludGVycnVwdF9leGl0KHN0cnVjdCBrZmRf ZGV2ICprZmQpCj4gLXsKPiAtCS8qCj4gLQkgKiBTdG9wIHRoZSBpbnRlcnJ1cHQgaGFuZGxlciBm cm9tIHdyaXRpbmcgdG8gdGhlIHJpbmcgYW5kIHNjaGVkdWxpbmcKPiAtCSAqIHdvcmtxdWV1ZSBp dGVtcy4gVGhlIHNwaW5sb2NrIGVuc3VyZXMgdGhhdCBhbnkgaW50ZXJydXB0IHJ1bm5pbmcKPiAt CSAqIGFmdGVyIHdlIGhhdmUgdW5sb2NrZWQgc2VlcyBpbnRlcnJ1cHRzX2FjdGl2ZSA9IGZhbHNl Lgo+IC0JICovCj4gLQl1bnNpZ25lZCBsb25nIGZsYWdzOwo+IC0KPiAtCXNwaW5fbG9ja19pcnFz YXZlKCZrZmQtPmludGVycnVwdF9sb2NrLCBmbGFncyk7Cj4gLQlrZmQtPmludGVycnVwdHNfYWN0 aXZlID0gZmFsc2U7Cj4gLQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZrZmQtPmludGVycnVwdF9s b2NrLCBmbGFncyk7Cj4gLQo+IC0JLyoKPiAtCSAqIEZsdXNoX3NjaGVkdWxlZF93b3JrIGVuc3Vy ZXMgdGhhdCB0aGVyZSBhcmUgbm8gb3V0c3RhbmRpbmcKPiAtCSAqIHdvcmstcXVldWUgaXRlbXMg dGhhdCB3aWxsIGFjY2VzcyBpbnRlcnJ1cHRfcmluZy4gTmV3IHdvcmsgaXRlbXMKPiAtCSAqIGNh bid0IGJlIGNyZWF0ZWQgYmVjYXVzZSB3ZSBzdG9wcGVkIGludGVycnVwdCBoYW5kbGluZyBhYm92 ZS4KPiAtCSAqLwo+IC0JZmx1c2hfc2NoZWR1bGVkX3dvcmsoKTsKPiAtCj4gLQlrZnJlZShrZmQt PmludGVycnVwdF9yaW5nKTsKPiAtfQo+IC0KPiAtLyoKPiAtICogVGhpcyBhc3N1bWVzIHRoYXQg aXQgY2FuJ3QgYmUgY2FsbGVkIGNvbmN1cnJlbnRseSB3aXRoIGl0c2VsZgo+IC0gKiBidXQgb25s eSB3aXRoIGRlcXVldWVfaWhfcmluZ19lbnRyeS4KPiAtICovCj4gLWJvb2wgZW5xdWV1ZV9paF9y aW5nX2VudHJ5KHN0cnVjdCBrZmRfZGV2ICprZmQsCWNvbnN0IHZvaWQgKmloX3JpbmdfZW50cnkp Cj4gLXsKPiAtCXVuc2lnbmVkIGludCBycHRyID0gYXRvbWljX3JlYWQoJmtmZC0+aW50ZXJydXB0 X3JpbmdfcnB0cik7Cj4gLQl1bnNpZ25lZCBpbnQgd3B0ciA9IGF0b21pY19yZWFkKCZrZmQtPmlu dGVycnVwdF9yaW5nX3dwdHIpOwo+IC0KPiAtCWlmICgocnB0ciAtIHdwdHIpICUga2ZkLT5pbnRl cnJ1cHRfcmluZ19zaXplID09Cj4gLQkJCQkJa2ZkLT5kZXZpY2VfaW5mby0+aWhfcmluZ19lbnRy eV9zaXplKSB7Cj4gLQkJLyogVGhpcyBpcyB2ZXJ5IGJhZCwgdGhlIHN5c3RlbSBpcyBsaWtlbHkg dG8gaGFuZy4gKi8KPiAtCQlkZXZfZXJyX3JhdGVsaW1pdGVkKGtmZF9jaGFyZGV2KCksCj4gLQkJ CSJJbnRlcnJ1cHQgcmluZyBvdmVyZmxvdywgZHJvcHBpbmcgaW50ZXJydXB0LlxuIik7Cj4gLQkJ cmV0dXJuIGZhbHNlOwo+IC0JfQo+IC0KPiAtCW1lbWNweShrZmQtPmludGVycnVwdF9yaW5nICsg d3B0ciwgaWhfcmluZ19lbnRyeSwKPiAtCQkJa2ZkLT5kZXZpY2VfaW5mby0+aWhfcmluZ19lbnRy eV9zaXplKTsKPiAtCj4gLQl3cHRyID0gKHdwdHIgKyBrZmQtPmRldmljZV9pbmZvLT5paF9yaW5n X2VudHJ5X3NpemUpICUKPiAtCQkJa2ZkLT5pbnRlcnJ1cHRfcmluZ19zaXplOwo+IC0Jc21wX3dt YigpOyAvKiBFbnN1cmUgbWVtY3B5J2QgZGF0YSBpcyB2aXNpYmxlIGJlZm9yZSB3cHRyIHVwZGF0 ZS4gKi8KPiAtCWF0b21pY19zZXQoJmtmZC0+aW50ZXJydXB0X3Jpbmdfd3B0ciwgd3B0cik7Cj4g LQo+IC0JcmV0dXJuIHRydWU7Cj4gLX0KPiAtCj4gLS8qCj4gLSAqIFRoaXMgYXNzdW1lcyB0aGF0 IGl0IGNhbid0IGJlIGNhbGxlZCBjb25jdXJyZW50bHkgd2l0aCBpdHNlbGYKPiAtICogYnV0IG9u bHkgd2l0aCBlbnF1ZXVlX2loX3JpbmdfZW50cnkuCj4gLSAqLwo+IC1zdGF0aWMgYm9vbCBkZXF1 ZXVlX2loX3JpbmdfZW50cnkoc3RydWN0IGtmZF9kZXYgKmtmZCwgdm9pZCAqaWhfcmluZ19lbnRy eSkKPiAtewo+IC0JLyoKPiAtCSAqIEFzc3VtZSB0aGF0IHdhaXQgcXVldWVzIGhhdmUgYW4gaW1w bGljaXQgYmFycmllciwgaS5lLiBhbnl0aGluZyB0aGF0Cj4gLQkgKiBoYXBwZW5lZCBpbiB0aGUg SVNSIGJlZm9yZSBpdCBxdWV1ZWQgd29yayBpcyB2aXNpYmxlLgo+IC0JICovCj4gLQo+IC0JdW5z aWduZWQgaW50IHdwdHIgPSBhdG9taWNfcmVhZCgma2ZkLT5pbnRlcnJ1cHRfcmluZ193cHRyKTsK PiAtCXVuc2lnbmVkIGludCBycHRyID0gYXRvbWljX3JlYWQoJmtmZC0+aW50ZXJydXB0X3Jpbmdf cnB0cik7Cj4gLQo+IC0JaWYgKHJwdHIgPT0gd3B0cikKPiAtCQlyZXR1cm4gZmFsc2U7Cj4gLQo+ IC0JbWVtY3B5KGloX3JpbmdfZW50cnksIGtmZC0+aW50ZXJydXB0X3JpbmcgKyBycHRyLAo+IC0J CQlrZmQtPmRldmljZV9pbmZvLT5paF9yaW5nX2VudHJ5X3NpemUpOwo+IC0KPiAtCXJwdHIgPSAo cnB0ciArIGtmZC0+ZGV2aWNlX2luZm8tPmloX3JpbmdfZW50cnlfc2l6ZSkgJQo+IC0JCQlrZmQt PmludGVycnVwdF9yaW5nX3NpemU7Cj4gLQo+IC0JLyoKPiAtCSAqIEVuc3VyZSB0aGUgcnB0ciB3 cml0ZSB1cGRhdGUgaXMgbm90IHZpc2libGUgdW50aWwKPiAtCSAqIG1lbWNweSBoYXMgZmluaXNo ZWQgcmVhZGluZy4KPiAtCSAqLwo+IC0Jc21wX21iKCk7Cj4gLQlhdG9taWNfc2V0KCZrZmQtPmlu dGVycnVwdF9yaW5nX3JwdHIsIHJwdHIpOwo+IC0KPiAtCXJldHVybiB0cnVlOwo+IC19Cj4gLQo+ IC1zdGF0aWMgdm9pZCBpbnRlcnJ1cHRfd3Eoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQo+IC17 Cj4gLQlzdHJ1Y3Qga2ZkX2RldiAqZGV2ID0gY29udGFpbmVyX29mKHdvcmssIHN0cnVjdCBrZmRf ZGV2LAo+IC0JCQkJCQlpbnRlcnJ1cHRfd29yayk7Cj4gLQo+IC0JdWludDMyX3QgaWhfcmluZ19l bnRyeVtESVZfUk9VTkRfVVAoCj4gLQkJCQlkZXYtPmRldmljZV9pbmZvLT5paF9yaW5nX2VudHJ5 X3NpemUsCj4gLQkJCQlzaXplb2YodWludDMyX3QpKV07Cj4gLQo+IC0Jd2hpbGUgKGRlcXVldWVf aWhfcmluZ19lbnRyeShkZXYsIGloX3JpbmdfZW50cnkpKQo+IC0JCTsKPiAtfQo+IGRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGtmZC9rZmRfcHJpdi5oIGIvZHJpdmVycy9ncHUv ZHJtL2FtZC9hbWRrZmQva2ZkX3ByaXYuaAo+IGluZGV4IGY5ZmI4MWUuLjNhNmFjOTAgMTAwNjQ0 Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRrZmQva2ZkX3ByaXYuaAo+ICsrKyBiL2Ry aXZlcnMvZ3B1L2RybS9hbWQvYW1ka2ZkL2tmZF9wcml2LmgKPiBAQCAtMTM1LDIyICsxMzUsMTAg QEAgc3RydWN0IGtmZF9kZXYgewo+ICAKPiAgCXN0cnVjdCBrZ2Qya2ZkX3NoYXJlZF9yZXNvdXJj ZXMgc2hhcmVkX3Jlc291cmNlczsKPiAgCj4gLQl2b2lkICppbnRlcnJ1cHRfcmluZzsKPiAtCXNp emVfdCBpbnRlcnJ1cHRfcmluZ19zaXplOwo+IC0JYXRvbWljX3QgaW50ZXJydXB0X3JpbmdfcnB0 cjsKPiAtCWF0b21pY190IGludGVycnVwdF9yaW5nX3dwdHI7Cj4gLQlzdHJ1Y3Qgd29ya19zdHJ1 Y3QgaW50ZXJydXB0X3dvcms7Cj4gLQlzcGlubG9ja190IGludGVycnVwdF9sb2NrOwo+IC0KPiAg CS8qIFFDTSBEZXZpY2UgaW5zdGFuY2UgKi8KPiAgCXN0cnVjdCBkZXZpY2VfcXVldWVfbWFuYWdl ciAqZHFtOwo+ICAKPiAgCWJvb2wgaW5pdF9jb21wbGV0ZTsKPiAtCS8qCj4gLQkgKiBJbnRlcnJ1 cHRzIG9mIGludGVyZXN0IHRvIEtGRCBhcmUgY29waWVkCj4gLQkgKiBmcm9tIHRoZSBIVyByaW5n IGludG8gYSBTVyByaW5nLgo+IC0JICovCj4gLQlib29sIGludGVycnVwdHNfYWN0aXZlOwo+ICB9 Owo+ICAKPiAgLyogS0dEMktGRCBjYWxsYmFja3MgKi8KPiBAQCAtNTEzLDEwICs1MDEsNyBAQCBz dHJ1Y3Qga2ZkX2RldiAqa2ZkX2RldmljZV9ieV9wY2lfZGV2KGNvbnN0IHN0cnVjdCBwY2lfZGV2 ICpwZGV2KTsKPiAgc3RydWN0IGtmZF9kZXYgKmtmZF90b3BvbG9neV9lbnVtX2tmZF9kZXZpY2Vz KHVpbnQ4X3QgaWR4KTsKPiAgCj4gIC8qIEludGVycnVwdHMgKi8KPiAtaW50IGtmZF9pbnRlcnJ1 cHRfaW5pdChzdHJ1Y3Qga2ZkX2RldiAqZGV2KTsKPiAtdm9pZCBrZmRfaW50ZXJydXB0X2V4aXQo c3RydWN0IGtmZF9kZXYgKmRldik7Cj4gIHZvaWQga2dkMmtmZF9pbnRlcnJ1cHQoc3RydWN0IGtm ZF9kZXYgKmtmZCwgY29uc3Qgdm9pZCAqaWhfcmluZ19lbnRyeSk7Cj4gLWJvb2wgZW5xdWV1ZV9p aF9yaW5nX2VudHJ5KHN0cnVjdCBrZmRfZGV2ICprZmQsCWNvbnN0IHZvaWQgKmloX3JpbmdfZW50 cnkpOwo+ICAKPiAgLyogUG93ZXIgTWFuYWdlbWVudCAqLwo+ICB2b2lkIGtnZDJrZmRfc3VzcGVu ZChzdHJ1Y3Qga2ZkX2RldiAqa2ZkKTsKPiAKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMu ZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0 aW5mby9kcmktZGV2ZWwK