From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Volkin, Bradley D" Subject: Re: [PATCH 26/53] drm/i915/bdw: New logical ring submission mechanism Date: Fri, 20 Jun 2014 14:00:35 -0700 Message-ID: <20140620210035.GC32083@bdvolkin-ubuntu-desktop> References: <1402673891-14618-1-git-send-email-oscar.mateo@intel.com> <1402673891-14618-27-git-send-email-oscar.mateo@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga03.intel.com (mga03.intel.com [143.182.124.21]) by gabe.freedesktop.org (Postfix) with ESMTP id 6D8DE6E416 for ; Fri, 20 Jun 2014 14:00:01 -0700 (PDT) Content-Disposition: inline In-Reply-To: <1402673891-14618-27-git-send-email-oscar.mateo@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: "oscar.mateo@intel.com" Cc: "intel-gfx@lists.freedesktop.org" List-Id: intel-gfx@lists.freedesktop.org T24gRnJpLCBKdW4gMTMsIDIwMTQgYXQgMDg6Mzc6NDRBTSAtMDcwMCwgb3NjYXIubWF0ZW9AaW50 ZWwuY29tIHdyb3RlOgo+IEZyb206IE9zY2FyIE1hdGVvIDxvc2Nhci5tYXRlb0BpbnRlbC5jb20+ Cj4gCj4gV2VsbCwgbmV3LWlzaDogaWYgYWxsIHRoaXMgY29kZSBsb29rcyBmYW1pbGlhciwgdGhh dCdzIGJlY2F1c2UgaXQncwo+IGEgY2xvbmUgb2YgdGhlIGV4aXN0aW5nIHN1Ym1pc3Npb24gbWVj aGFuaXNtICh3aXRoIHNvbWUgbW9kaWZpY2F0aW9ucwo+IGhlcmUgYW5kIHRoZXJlIHRvIGFkYXB0 IGl0IHRvIExSQ3MgYW5kIEV4ZWNsaXN0cykuCj4gCj4gQW5kIHdoeSBkaWQgd2UgZG8gdGhpcz8g RXhlY2xpc3RzIG9mZmVyIHNldmVyYWwgYWR2YW50YWdlcywgbGlrZQo+IGNvbnRyb2wgb3ZlciB3 aGVuIHRoZSBHUFUgaXMgZG9uZSB3aXRoIGEgZ2l2ZW4gd29ya2xvYWQsIHRoYXQgY2FuCj4gaGVs cCBzaW1wbGlmeSB0aGUgc3VibWlzc2lvbiBtZWNoYW5pc20sIG5vIGRvdWJ0LCBidXQgSSBhbSBp bnRlcmVzdGVkCj4gaW4gZ2V0dGluZyBFeGVjbGlzdHMgdG8gd29yayBmaXJzdCBhbmQgZm9yZW1v c3QuIEFzIHdlIGFyZSBjcmVhdGluZwo+IGEgcGFyYWxsZWwgc3VibWlzc2lvbiBtZWNoYW5pc20g KGV2ZW4gaWYgaXTDscWbIGp1c3QgYSBjbG9uZSksIHdlIGNhbgo+IG5vdyBzdGFydCBpbXByb3Zp bmcgaXQgd2l0aG91dCB0aGUgZmVhciBvZiBicmVha2luZyBvbGQgZ2Vucy4KPiAKPiBTaWduZWQt b2ZmLWJ5OiBPc2NhciBNYXRlbyA8b3NjYXIubWF0ZW9AaW50ZWwuY29tPgo+IC0tLQo+ICBkcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYyB8IDIxNCArKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysKPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmggfCAg MTggKysrKwo+ICAyIGZpbGVzIGNoYW5nZWQsIDIzMiBpbnNlcnRpb25zKCspCj4gCj4gZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5jIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfbHJjLmMKPiBpbmRleCAwMmZjM2QwLi44OWFlZDdhIDEwMDY0NAo+IC0tLSBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfbHJjLmMKPiBAQCAtODYsNiArODYsMjIwIEBAIGJvb2wgaW50ZWxfZW5hYmxl X2V4ZWNsaXN0cyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+ICAJcmV0dXJuIEhBU19MT0dJQ0FM X1JJTkdfQ09OVEVYVFMoZGV2KSAmJiBVU0VTX1BQR1RUKGRldik7Cj4gIH0KPiAgCj4gK3N0YXRp YyBpbmxpbmUgc3RydWN0IGludGVsX3JpbmdidWZmZXIgKgo+ICtsb2dpY2FsX3JpbmdidWZfZ2V0 KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcsIHN0cnVjdCBpbnRlbF9jb250ZXh0ICpjdHgp Cj4gK3sKPiArCXJldHVybiBjdHgtPmVuZ2luZVtyaW5nLT5pZF0ucmluZ2J1ZjsKPiArfQo+ICsK PiArdm9pZCBpbnRlbF9sb2dpY2FsX3JpbmdfYWR2YW5jZV9hbmRfc3VibWl0KHN0cnVjdCBpbnRl bF9lbmdpbmVfY3MgKnJpbmcsCj4gKwkJCQkJICAgc3RydWN0IGludGVsX2NvbnRleHQgKmN0eCkK PiArewo+ICsJc3RydWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmdidWYgPSBsb2dpY2FsX3Jpbmdi dWZfZ2V0KHJpbmcsIGN0eCk7Cj4gKwo+ICsJaW50ZWxfbG9naWNhbF9yaW5nX2FkdmFuY2Uocmlu Z2J1Zik7Cj4gKwo+ICsJaWYgKGludGVsX3Jpbmdfc3RvcHBlZChyaW5nKSkKPiArCQlyZXR1cm47 Cj4gKwo+ICsJcmluZy0+c3VibWl0X2N0eChyaW5nLCBjdHgsIHJpbmdidWYtPnRhaWwpOwo+ICt9 Cj4gKwo+ICtzdGF0aWMgaW50IGxvZ2ljYWxfcmluZ19hbGxvY19zZXFubyhzdHJ1Y3QgaW50ZWxf ZW5naW5lX2NzICpyaW5nLAo+ICsJCQkJICAgIHN0cnVjdCBpbnRlbF9jb250ZXh0ICpjdHgpCj4g K3sKPiArCWlmIChyaW5nLT5vdXRzdGFuZGluZ19sYXp5X3NlcW5vKQo+ICsJCXJldHVybiAwOwo+ ICsKPiArCWlmIChyaW5nLT5wcmVhbGxvY2F0ZWRfbGF6eV9yZXF1ZXN0ID09IE5VTEwpIHsKPiAr CQlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcXVlc3Q7Cj4gKwo+ICsJCXJlcXVlc3Qg PSBrbWFsbG9jKHNpemVvZigqcmVxdWVzdCksIEdGUF9LRVJORUwpOwo+ICsJCWlmIChyZXF1ZXN0 ID09IE5VTEwpCj4gKwkJCXJldHVybiAtRU5PTUVNOwo+ICsKPiArCQlyaW5nLT5wcmVhbGxvY2F0 ZWRfbGF6eV9yZXF1ZXN0ID0gcmVxdWVzdDsKPiArCX0KPiArCj4gKwlyZXR1cm4gaTkxNV9nZW1f Z2V0X3NlcW5vKHJpbmctPmRldiwgJnJpbmctPm91dHN0YW5kaW5nX2xhenlfc2Vxbm8pOwo+ICt9 Cj4gKwo+ICtzdGF0aWMgaW50IGxvZ2ljYWxfcmluZ193YWl0X3JlcXVlc3Qoc3RydWN0IGludGVs X2VuZ2luZV9jcyAqcmluZywKPiArCQkJCSAgICAgc3RydWN0IGludGVsX3JpbmdidWZmZXIgKnJp bmdidWYsCj4gKwkJCQkgICAgIHN0cnVjdCBpbnRlbF9jb250ZXh0ICpjdHgsCj4gKwkJCQkgICAg IGludCBieXRlcykKPiArewo+ICsJc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXF1ZXN0 Owo+ICsJdTMyIHNlcW5vID0gMDsKPiArCWludCByZXQ7Cj4gKwo+ICsJaWYgKHJpbmdidWYtPmxh c3RfcmV0aXJlZF9oZWFkICE9IC0xKSB7Cj4gKwkJcmluZ2J1Zi0+aGVhZCA9IHJpbmdidWYtPmxh c3RfcmV0aXJlZF9oZWFkOwo+ICsJCXJpbmdidWYtPmxhc3RfcmV0aXJlZF9oZWFkID0gLTE7Cj4g Kwo+ICsJCXJpbmdidWYtPnNwYWNlID0gaW50ZWxfcmluZ19zcGFjZShyaW5nYnVmKTsKPiArCQlp ZiAocmluZ2J1Zi0+c3BhY2UgPj0gYnl0ZXMpCj4gKwkJCXJldHVybiAwOwo+ICsJfQo+ICsKPiAr CWxpc3RfZm9yX2VhY2hfZW50cnkocmVxdWVzdCwgJnJpbmctPnJlcXVlc3RfbGlzdCwgbGlzdCkg ewo+ICsJCWlmIChfX2ludGVsX3Jpbmdfc3BhY2UocmVxdWVzdC0+dGFpbCwgcmluZ2J1Zi0+dGFp bCwKPiArCQkJCXJpbmdidWYtPnNpemUpID49IGJ5dGVzKSB7Cj4gKwkJCXNlcW5vID0gcmVxdWVz dC0+c2Vxbm87Cj4gKwkJCWJyZWFrOwo+ICsJCX0KPiArCX0KPiArCj4gKwlpZiAoc2Vxbm8gPT0g MCkKPiArCQlyZXR1cm4gLUVOT1NQQzsKPiArCj4gKwlyZXQgPSBpOTE1X3dhaXRfc2Vxbm8ocmlu Zywgc2Vxbm8pOwo+ICsJaWYgKHJldCkKPiArCQlyZXR1cm4gcmV0Owo+ICsKPiArCS8qIFRPRE86 IG1ha2Ugc3VyZSB3ZSB1cGRhdGUgdGhlIHJpZ2h0IHJpbmdidWZmZXIncyBsYXN0X3JldGlyZWRf aGVhZAo+ICsJICogd2hlbiByZXRpcmluZyByZXF1ZXN0cyAqLwo+ICsJaTkxNV9nZW1fcmV0aXJl X3JlcXVlc3RzX3JpbmcocmluZyk7Cj4gKwlyaW5nYnVmLT5oZWFkID0gcmluZ2J1Zi0+bGFzdF9y ZXRpcmVkX2hlYWQ7Cj4gKwlyaW5nYnVmLT5sYXN0X3JldGlyZWRfaGVhZCA9IC0xOwo+ICsKPiAr CXJpbmdidWYtPnNwYWNlID0gaW50ZWxfcmluZ19zcGFjZShyaW5nYnVmKTsKPiArCXJldHVybiAw Owo+ICt9Cj4gKwo+ICtzdGF0aWMgaW50IGxvZ2ljYWxfcmluZ193YWl0X2Zvcl9zcGFjZShzdHJ1 Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nLAo+ICsJCQkJCQkgICBzdHJ1Y3QgaW50ZWxfcmluZ2J1 ZmZlciAqcmluZ2J1ZiwKPiArCQkJCQkJICAgc3RydWN0IGludGVsX2NvbnRleHQgKmN0eCwKPiAr CQkJCQkJICAgaW50IGJ5dGVzKQo+ICt7Cj4gKwlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gcmlu Zy0+ZGV2Owo+ICsJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZf cHJpdmF0ZTsKPiArCXVuc2lnbmVkIGxvbmcgZW5kOwo+ICsJaW50IHJldDsKPiArCj4gKwlyZXQg PSBsb2dpY2FsX3Jpbmdfd2FpdF9yZXF1ZXN0KHJpbmcsIHJpbmdidWYsIGN0eCwgYnl0ZXMpOwo+ ICsJaWYgKHJldCAhPSAtRU5PU1BDKQo+ICsJCXJldHVybiByZXQ7Cj4gKwo+ICsJLyogRm9yY2Ug dGhlIGNvbnRleHQgc3VibWlzc2lvbiBpbiBjYXNlIHdlIGhhdmUgYmVlbiBza2lwcGluZyBpdCAq Lwo+ICsJaW50ZWxfbG9naWNhbF9yaW5nX2FkdmFuY2VfYW5kX3N1Ym1pdChyaW5nLCBjdHgpOwo+ ICsKPiArCS8qIFdpdGggR0VNIHRoZSBoYW5nY2hlY2sgdGltZXIgc2hvdWxkIGtpY2sgdXMgb3V0 IG9mIHRoZSBsb29wLAo+ICsJICogbGVhdmluZyBpdCBlYXJseSBydW5zIHRoZSByaXNrIG9mIGNv cnJ1cHRpbmcgR0VNIHN0YXRlIChkdWUKPiArCSAqIHRvIHJ1bm5pbmcgb24gYWxtb3N0IHVudGVz dGVkIGNvZGVwYXRocykuIEJ1dCBvbiByZXN1bWUKPiArCSAqIHRpbWVycyBkb24ndCB3b3JrIHll dCwgc28gcHJldmVudCBhIGNvbXBsZXRlIGhhbmcgaW4gdGhhdAo+ICsJICogY2FzZSBieSBjaG9v c2luZyBhbiBpbnNhbmVseSBsYXJnZSB0aW1lb3V0LiAqLwo+ICsJZW5kID0gamlmZmllcyArIDYw ICogSFo7Cj4gKwoKSW4gdGhlIGxlZ2FjeSByaW5nYnVmZmVyIHZlcnNpb24sIHRoZXJlIGFyZSB0 cmFjZXBvaW50cyBhcm91bmQgdGhlIGRvIGxvb3AuClNob3VsZCB3ZSBrZWVwIHRob3NlPyBPciBh ZGQgbHJjIHNwZWNpZmljIGVxdWl2YWxlbnRzPwoKPiArCWRvIHsKPiArCQlyaW5nYnVmLT5oZWFk ID0gSTkxNV9SRUFEX0hFQUQocmluZyk7Cj4gKwkJcmluZ2J1Zi0+c3BhY2UgPSBpbnRlbF9yaW5n X3NwYWNlKHJpbmdidWYpOwo+ICsJCWlmIChyaW5nYnVmLT5zcGFjZSA+PSBieXRlcykgewo+ICsJ CQlyZXQgPSAwOwo+ICsJCQlicmVhazsKPiArCQl9Cj4gKwo+ICsJCWlmICghZHJtX2NvcmVfY2hl Y2tfZmVhdHVyZShkZXYsIERSSVZFUl9NT0RFU0VUKSAmJgo+ICsJCSAgICBkZXYtPnByaW1hcnkt Pm1hc3Rlcikgewo+ICsJCQlzdHJ1Y3QgZHJtX2k5MTVfbWFzdGVyX3ByaXZhdGUgKm1hc3Rlcl9w cml2ID0gZGV2LT5wcmltYXJ5LT5tYXN0ZXItPmRyaXZlcl9wcml2Owo+ICsJCQlpZiAobWFzdGVy X3ByaXYtPnNhcmVhX3ByaXYpCj4gKwkJCQltYXN0ZXJfcHJpdi0+c2FyZWFfcHJpdi0+cGVyZl9i b3hlcyB8PSBJOTE1X0JPWF9XQUlUOwo+ICsJCX0KPiArCj4gKwkJbXNsZWVwKDEpOwo+ICsKPiAr CQlpZiAoZGV2X3ByaXYtPm1tLmludGVycnVwdGlibGUgJiYgc2lnbmFsX3BlbmRpbmcoY3VycmVu dCkpIHsKPiArCQkJcmV0ID0gLUVSRVNUQVJUU1lTOwo+ICsJCQlicmVhazsKPiArCQl9Cj4gKwo+ ICsJCXJldCA9IGk5MTVfZ2VtX2NoZWNrX3dlZGdlKCZkZXZfcHJpdi0+Z3B1X2Vycm9yLAo+ICsJ CQkJCSAgIGRldl9wcml2LT5tbS5pbnRlcnJ1cHRpYmxlKTsKPiArCQlpZiAocmV0KQo+ICsJCQli cmVhazsKPiArCj4gKwkJaWYgKHRpbWVfYWZ0ZXIoamlmZmllcywgZW5kKSkgewo+ICsJCQlyZXQg PSAtRUJVU1k7Cj4gKwkJCWJyZWFrOwo+ICsJCX0KPiArCX0gd2hpbGUgKDEpOwo+ICsKPiArCXJl dHVybiByZXQ7Cj4gK30KPiArCj4gK3N0YXRpYyBpbnQgbG9naWNhbF9yaW5nX3dyYXBfYnVmZmVy KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcsCj4gKwkJCQkJCXN0cnVjdCBpbnRlbF9yaW5n YnVmZmVyICpyaW5nYnVmLAo+ICsJCQkJCQlzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY3R4KQo+ICt7 Cj4gKwl1aW50MzJfdCBfX2lvbWVtICp2aXJ0Owo+ICsJaW50IHJlbSA9IHJpbmdidWYtPnNpemUg LSByaW5nYnVmLT50YWlsOwo+ICsKPiArCWlmIChyaW5nYnVmLT5zcGFjZSA8IHJlbSkgewo+ICsJ CWludCByZXQgPSBsb2dpY2FsX3Jpbmdfd2FpdF9mb3Jfc3BhY2UocmluZywgcmluZ2J1ZiwgY3R4 LCByZW0pOwo+ICsJCWlmIChyZXQpCj4gKwkJCXJldHVybiByZXQ7Cj4gKwl9Cj4gKwo+ICsJdmly dCA9IHJpbmdidWYtPnZpcnR1YWxfc3RhcnQgKyByaW5nYnVmLT50YWlsOwo+ICsJcmVtIC89IDQ7 Cj4gKwl3aGlsZSAocmVtLS0pCj4gKwkJaW93cml0ZTMyKE1JX05PT1AsIHZpcnQrKyk7Cj4gKwo+ ICsJcmluZ2J1Zi0+dGFpbCA9IDA7Cj4gKwlyaW5nYnVmLT5zcGFjZSA9IGludGVsX3Jpbmdfc3Bh Y2UocmluZ2J1Zik7Cj4gKwo+ICsJcmV0dXJuIDA7Cj4gK30KPiArCj4gK3N0YXRpYyBpbnQgbG9n aWNhbF9yaW5nX3ByZXBhcmUoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZywKPiArCQkJCXN0 cnVjdCBpbnRlbF9yaW5nYnVmZmVyICpyaW5nYnVmLAo+ICsJCQkJc3RydWN0IGludGVsX2NvbnRl eHQgKmN0eCwKPiArCQkJCWludCBieXRlcykKPiArewo+ICsJaW50IHJldDsKPiArCj4gKwlpZiAo dW5saWtlbHkocmluZ2J1Zi0+dGFpbCArIGJ5dGVzID4gcmluZ2J1Zi0+ZWZmZWN0aXZlX3NpemUp KSB7Cj4gKwkJcmV0ID0gbG9naWNhbF9yaW5nX3dyYXBfYnVmZmVyKHJpbmcsIHJpbmdidWYsIGN0 eCk7Cj4gKwkJaWYgKHVubGlrZWx5KHJldCkpCj4gKwkJCXJldHVybiByZXQ7Cj4gKwl9Cj4gKwo+ ICsJaWYgKHVubGlrZWx5KHJpbmdidWYtPnNwYWNlIDwgYnl0ZXMpKSB7Cj4gKwkJcmV0ID0gbG9n aWNhbF9yaW5nX3dhaXRfZm9yX3NwYWNlKHJpbmcsIHJpbmdidWYsIGN0eCwgYnl0ZXMpOwo+ICsJ CWlmICh1bmxpa2VseShyZXQpKQo+ICsJCQlyZXR1cm4gcmV0Owo+ICsJfQo+ICsKPiArCXJldHVy biAwOwo+ICt9Cj4gKwo+ICtpbnQgaW50ZWxfbG9naWNhbF9yaW5nX2JlZ2luKHN0cnVjdCBpbnRl bF9lbmdpbmVfY3MgKnJpbmcsCj4gKwkJCSAgICAgc3RydWN0IGludGVsX2NvbnRleHQgKmN0eCwK PiArCQkJICAgICBpbnQgbnVtX2R3b3JkcykKPiArewo+ICsJc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2ID0gcmluZy0+ZGV2LT5kZXZfcHJpdmF0ZTsKPiArCXN0cnVjdCBpbnRlbF9y aW5nYnVmZmVyICpyaW5nYnVmID0gbG9naWNhbF9yaW5nYnVmX2dldChyaW5nLCBjdHgpOwo+ICsJ aW50IHJldDsKPiArCj4gKwlyZXQgPSBpOTE1X2dlbV9jaGVja193ZWRnZSgmZGV2X3ByaXYtPmdw dV9lcnJvciwKPiArCQkJCSAgIGRldl9wcml2LT5tbS5pbnRlcnJ1cHRpYmxlKTsKPiArCWlmIChy ZXQpCj4gKwkJcmV0dXJuIHJldDsKPiArCj4gKwlyZXQgPSBsb2dpY2FsX3JpbmdfcHJlcGFyZShy aW5nLCByaW5nYnVmLCBjdHgsCj4gKwkJCW51bV9kd29yZHMgKiBzaXplb2YodWludDMyX3QpKTsK PiArCWlmIChyZXQpCj4gKwkJcmV0dXJuIHJldDsKPiArCj4gKwkvKiBQcmVhbGxvY2F0ZSB0aGUg b2xyIGJlZm9yZSB0b3VjaGluZyB0aGUgcmluZyAqLwo+ICsJcmV0ID0gbG9naWNhbF9yaW5nX2Fs bG9jX3NlcW5vKHJpbmcsIGN0eCk7Cj4gKwlpZiAocmV0KQo+ICsJCXJldHVybiByZXQ7Cj4gKwo+ ICsJcmluZ2J1Zi0+c3BhY2UgLT0gbnVtX2R3b3JkcyAqIHNpemVvZih1aW50MzJfdCk7Cj4gKwly ZXR1cm4gMDsKPiArfQo+ICsKPiAgc3RhdGljIGludCBnZW44X2luaXRfY29tbW9uX3Jpbmcoc3Ry dWN0IGludGVsX2VuZ2luZV9jcyAqcmluZykKPiAgewo+ICAJc3RydWN0IGRybV9kZXZpY2UgKmRl diA9IHJpbmctPmRldjsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf bHJjLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuaAo+IGluZGV4IDI2YjA5NDku LjY4NmViZjUgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmgK PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuaAo+IEBAIC01LDYgKzUsMjQg QEAKPiAgdm9pZCBpbnRlbF9sb2dpY2FsX3JpbmdfY2xlYW51cChzdHJ1Y3QgaW50ZWxfZW5naW5l X2NzICpyaW5nKTsKPiAgaW50IGludGVsX2xvZ2ljYWxfcmluZ3NfaW5pdChzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2KTsKPiAgCj4gK3ZvaWQgaW50ZWxfbG9naWNhbF9yaW5nX2FkdmFuY2VfYW5kX3N1 Ym1pdChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nLAo+ICsJCQkJCSAgIHN0cnVjdCBpbnRl bF9jb250ZXh0ICpjdHgpOwo+ICsKPiArc3RhdGljIGlubGluZSB2b2lkIGludGVsX2xvZ2ljYWxf cmluZ19hZHZhbmNlKHN0cnVjdCBpbnRlbF9yaW5nYnVmZmVyICpyaW5nYnVmKQo+ICt7Cj4gKwly aW5nYnVmLT50YWlsICY9IHJpbmdidWYtPnNpemUgLSAxOwo+ICt9Cj4gKwo+ICtzdGF0aWMgaW5s aW5lIHZvaWQgaW50ZWxfbG9naWNhbF9yaW5nX2VtaXQoc3RydWN0IGludGVsX3JpbmdidWZmZXIg KnJpbmdidWYsIHUzMiBkYXRhKQo+ICt7Cj4gKwlpb3dyaXRlMzIoZGF0YSwgcmluZ2J1Zi0+dmly dHVhbF9zdGFydCArIHJpbmdidWYtPnRhaWwpOwo+ICsJcmluZ2J1Zi0+dGFpbCArPSA0Owo+ICt9 Cj4gKwo+ICtpbnQgaW50ZWxfbG9naWNhbF9yaW5nX2JlZ2luKHN0cnVjdCBpbnRlbF9lbmdpbmVf Y3MgKnJpbmcsCj4gKwkJCSAgICAgc3RydWN0IGludGVsX2NvbnRleHQgKmN0eCwKPiArCQkJICAg ICBpbnQgbnVtX2R3b3Jkcyk7Cj4gKwoKSSB0aGluayBhbGwgb2YgdGhlc2UgYXJlIG9ubHkgdXNl ZCBpbiBpbnRlbF9scmMuYywgc28gZG9uJ3QgbmVlZCB0byBiZSBpbgp0aGUgaGVhZGVyIGFuZCBj b3VsZCBhbGwgYmUgc3RhdGljLiBSaWdodD8KCkJyYWQKCj4gIC8qIExvZ2ljYWwgUmluZyBDb250 ZXh0cyAqLwo+ICB2b2lkIGludGVsX2xyX2NvbnRleHRfZnJlZShzdHJ1Y3QgaW50ZWxfY29udGV4 dCAqY3R4KTsKPiAgaW50IGludGVsX2xyX2NvbnRleHRfZGVmZXJyZWRfY3JlYXRlKHN0cnVjdCBp bnRlbF9jb250ZXh0ICpjdHgsCj4gLS0gCj4gMS45LjAKPiAKPiBfX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+IEludGVsLWdmeCBtYWlsaW5nIGxpc3QKPiBJ bnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCj4gaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9w Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeApfX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBs aXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFu L2xpc3RpbmZvL2ludGVsLWdmeAo=