From mboxrd@z Thu Jan 1 00:00:00 1970 From: Matthew Brost Subject: Re: [PATCH 1/3] drm/i915/guc: Add non blocking CTB send function Date: Thu, 21 Nov 2019 17:34:22 -0800 Message-ID: <20191122013422.GB64720@sdutt> References: <20191120235604.29047-1-John.C.Harrison@Intel.com> <20191120235604.29047-2-John.C.Harrison@Intel.com> <20191122001325.GA92577@sdutt> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mga12.intel.com (mga12.intel.com [192.55.52.136]) by gabe.freedesktop.org (Postfix) with ESMTPS id 978F76F4CB for ; Fri, 22 Nov 2019 01:40:39 +0000 (UTC) Content-Disposition: inline In-Reply-To: <20191122001325.GA92577@sdutt> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Michal Wajdeczko Cc: Intel-GFX@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gVGh1LCBOb3YgMjEsIDIwMTkgYXQgMDQ6MTM6MjVQTSAtMDgwMCwgTWF0dGhldyBCcm9zdCB3 cm90ZToKPk9uIFRodSwgTm92IDIxLCAyMDE5IGF0IDEyOjQzOjI2UE0gKzAxMDAsIE1pY2hhbCBX YWpkZWN6a28gd3JvdGU6Cj4+T24gVGh1LCAyMSBOb3YgMjAxOSAwMDo1NjowMiArMDEwMCwgPEpv aG4uQy5IYXJyaXNvbkBpbnRlbC5jb20+IHdyb3RlOgo+Pgo+Pj5Gcm9tOiBNYXR0aGV3IEJyb3N0 IDxtYXR0aGV3LmJyb3N0QGludGVsLmNvbT4KPj4+Cj4+PkFkZCBub24gYmxvY2tpbmcgQ1RCIHNl bmQgZnVjdGlvbiwgaW50ZWxfZ3VjX3NlbmRfbmIuIEluIG9yZGVyIHRvCj4+PnN1cHBvcnQgYSBu b24gYmxvY2tpbmcgQ1RCIHNlbmQgZnVjdGlvbiBhIHNwaW4gbG9jayBpcyBuZWVkZWQgdG8KPj4K Pj4yeCB0eXBvcwo+Pgo+Pj5wcm90ZWN0IHRoZSBDVEIgZGVzY3JpcHRvcnMgZmllbGRzLiBBbHNv IHRoZSBub24gYmxvY2tpbmcgY2FsbCBtdXN0IG5vdAo+Pj51cGRhdGUgdGhlIGZlbmNlIHZhbHVl IGFzIHRoaXMgdmFsdWUgaXMgb3duZWQgYnkgdGhlIGJsb2NraW5nIGNhbGwKPj4+KGludGVsX2d1 Y19zZW5kKS4KPj4KPj55b3UgcHJvYmFibHkgbWVhbiAiaW50ZWxfZ3VjX3NlbmRfY3QiLCBhcyBp bnRlbF9ndWNfc2VuZCBpcyBqdXN0IGEgd3JhcHBlcgo+PmFyb3VuZCBndWMtPnNlbmQKPj4KPgo+ QWgsIHllcy4KPgo+Pj4KPj4+VGhlIGJsb2NraW5nIENUQiBub3cgbXVzdCBoYXZlIGEgZmxvdyBj b250cm9sIG1lY2hhbmlzbSB0byBlbnN1cmUgdGhlCj4+PmJ1ZmZlciBpc24ndCBvdmVycnVuLiBB IGxhenkgc3BpbiB3YWl0IGlzIHVzZWQgYXMgd2UgYmVsaWV2ZSB0aGUgZmxvdwo+Pj5jb250cm9s IGNvbmRpdGlvbiBzaG91bGQgYmUgcmFyZSB3aXRoIHByb3Blcmx5IHNpemVkIGJ1ZmZlci4gQSBy ZXRyeQo+Pj5jb3VudGVyIGlzIGFsc28gaW1wbGVtZW50ZWQgd2hpY2ggZmFpbHMgSDJHIENUQnMg b25jZSBhIGxpbWl0IGlzCj4+PnJlYWNoZWQgdG8gcHJldmVudCBkZWFkbG9jay4KPj4+Cj4+PlRo ZSBmdW5jdGlvbiwgaW50ZWxfZ3VjX3NlbmRfbmIsIGlzIGV4cG9ydGVkIGluIHRoaXMgcGF0Y2gg YnV0IHVudXNlZC4KPj4+U2V2ZXJhbCBwYXRjaGVzIGxhdGVyIGluIHRoZSBzZXJpZXMgbWFrZSB1 c2Ugb2YgdGhpcyBmdW5jdGlvbi4KPj4KPj5JdCdzIGxpa2VseSBpbiB5ZXQgYW5vdGhlciBzZXJp ZXMKPj4KPgo+WWVzLCBpdCBpcy4KPgo+Pj4KPj4+Q2M6IEpvaG4gSGFycmlzb24gPGpvaG4uYy5o YXJyaXNvbkBpbnRlbC5jb20+Cj4+PlNpZ25lZC1vZmYtYnk6IE1hdHRoZXcgQnJvc3QgPG1hdHRo ZXcuYnJvc3RAaW50ZWwuY29tPgo+Pj4tLS0KPj4+ZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvdWMv aW50ZWxfZ3VjLmggICAgfCAgMiArCj4+PmRyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L3VjL2ludGVs X2d1Y19jdC5jIHwgOTcgKysrKysrKysrKysrKysrKysrKy0tLS0KPj4+ZHJpdmVycy9ncHUvZHJt L2k5MTUvZ3QvdWMvaW50ZWxfZ3VjX2N0LmggfCAxMCArKy0KPj4+MyBmaWxlcyBjaGFuZ2VkLCA5 MSBpbnNlcnRpb25zKCspLCAxOCBkZWxldGlvbnMoLSkKPj4+Cj4+PmRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9ndC91Yy9pbnRlbF9ndWMuaCAKPj4+Yi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9ndC91Yy9pbnRlbF9ndWMuaAo+Pj5pbmRleCBlNjQwMDIwNGEyYmQuLjc3YzVhZjkxOWFj ZSAxMDA2NDQKPj4+LS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvdWMvaW50ZWxfZ3VjLmgK Pj4+KysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvdWMvaW50ZWxfZ3VjLmgKPj4+QEAgLTk0 LDYgKzk0LDggQEAgaW50ZWxfZ3VjX3NlbmRfYW5kX3JlY2VpdmUoc3RydWN0IGludGVsX2d1YyAK Pj4+Kmd1YywgY29uc3QgdTMyICphY3Rpb24sIHUzMiBsZW4sCj4+PglyZXR1cm4gZ3VjLT5zZW5k KGd1YywgYWN0aW9uLCBsZW4sIHJlc3BvbnNlX2J1ZiwgcmVzcG9uc2VfYnVmX3NpemUpOwo+Pj59 Cj4+PitpbnQgaW50ZWxfZ3VjX3NlbmRfbmIoc3RydWN0IGludGVsX2d1Y19jdCAqY3QsIGNvbnN0 IHUzMiAqYWN0aW9uLCAKPj4+dTMyIGxlbik7Cj4+PisKPj4KPj5IbW0sIHRoaXMgbWlzbWF0Y2gg b2YgZ3VjL2N0IHBhcmFtZXRlciBicmVha3MgdGhlIG91ciBsYXllcmluZy4KPj5CdXQgd2UgY2Fu IGtlZXAgdGhpcyBsYXllcmluZyBpbnRhY3QgYnkgaW50cm9kdWNpbmcgc29tZSBmbGFncyB0bwo+ PnRoZSBleGlzdGluZyBndWNfc2VuZCgpIGZ1bmN0aW9uLiBUaGVzZSBmbGFncyBjb3VsZCBiZSBw YXNzZWQgYXMKPj5oaWdoIGJpdHMgaW4gYWN0aW9uWzBdLCBsaWtlIHRoaXM6Cj4KPlRoaXMgc2Vl bXMgcmVhc29uYWJsZS4KPgoKUHJvdG90eXBlZCB0aGlzIGFuZCBJIGRvbid0IGxpa2UgaXQgYWxs LiBGaXJzdCAnYWN0aW9uJyBpcyBhIGNvbnN0IHNvIHdoYXQgeW91CmFyZSBzdWdnZXN0aW5nIGRv ZXNuJ3Qgd29yayB1bmxlc3MgdGhhdCBpcyBjaGFuZ2VkLiBBbHNvIHdoYXQgaWYgYWxsIGJpdHMg aW4gRFcKZXZlbnR1YWxseSBtZWFuIHNvbWV0aGluZywgdG8gbWUgb3ZlcmxvYWRpbmcgYSBmaWVs ZCBpc24ndCBhIGdvb2QgaWRlYSBpZgphbnl0aGluZyB3ZSBzaG91bGQgYWRkIGFub3RoZXIgYXJn dW1lbnQgdG8gZ3VjLT5zZW5kKCkuIEJ1dCBJJ2QgaG9uZXN0bHkgcHJlZmVyCndlIGp1c3QgbGVh dmUgaXQgYXMgaXMuIE5vbi1ibG9ja2luZyBvbmx5IGFwcGxpZXMgdG8gQ1RzIChub3QgTU1JTykg YW5kIHdlIGhhdmUKR0VNX0JVR19PTiB0byBwcm90ZWN0IHVzIGlmIHRoaXMgZnVuY3Rpb24gaXMg Y2FsbGVkIGluY29ycmVjdGx5LiBEb2luZyB3aGF0IHlvdQpzdWdnZXN0IGp1c3QgbWFrZXMgZXZl cnl0aGluZyBtb3JlIGNvbXBsaWNhdGVkIElNTy4KCk1hdHQKCj4+Cj4+I2RlZmluZSBHVUNfQUNU SU9OX0ZMQUdfRE9OVF9XQUlUIDB4ODAwMDAwMDAKPj4KPj5pbnQgaW50ZWxfZ3VjX2F1dGhfaHVj KHN0cnVjdCBpbnRlbF9ndWMgKmd1YywgdTMyIHJzYV9vZmZzZXQpCj4+ewo+Pgl1MzIgYWN0aW9u W10gPSB7Cj4+CQlJTlRFTF9HVUNfQUNUSU9OX0FVVEhFTlRJQ0FURV9IVUMgfCBHVUNfQUNUSU9O X0ZMQUdfRE9OVF9XQUlULAo+PgkJcnNhX29mZnNldAo+Pgl9Owo+Pgo+PglyZXR1cm4gaW50ZWxf Z3VjX3NlbmQoZ3VjLCBhY3Rpb24sIEFSUkFZX1NJWkUoYWN0aW9uKSk7Cj4+fQo+Pgo+PnRoZW4g YWN0dWFsIGJhY2stZW5kIG9mIGd1Yy0+c2VuZCBjYW4gdGFrZSBwcm9wZXIgc3RlcHMgYmFzZWQg b24gdGhpcyBmbGFnOgo+Pgo+PkBAIGludCBpbnRlbF9ndWNfc2VuZF9tbWlvKHN0cnVjdCBpbnRl bF9ndWMgKmd1YywgY29uc3QgdTMyICphY3Rpb24sIAo+PnUzMiBsZW4sCj4+ICAgICAgIEdFTV9C VUdfT04oIWxlbik7Cj4+ICAgICAgIEdFTV9CVUdfT04obGVuID4gZ3VjLT5zZW5kX3JlZ3MuY291 bnQpOwo+Pgo+PisgICAgICAgaWYgKCphY3Rpb24gJiBHVUNfQUNUSU9OX0ZMQUdfRE9OVF9XQUlU KQo+PisgICAgICAgICAgICAgICByZXR1cm4gLUVJTlZBTDsKPj4rICAgICAgICphY3Rpb24gJj0g fkdVQ19BQ1RJT05fRkxBR19ET05UX1dBSVQ7Cj4+Kwo+PiAgICAgICAvKiBXZSBleHBlY3Qgb25s eSBhY3Rpb24gY29kZSAqLwo+PiAgICAgICBHRU1fQlVHX09OKCphY3Rpb24gJiB+SU5URUxfR1VD X01TR19DT0RFX01BU0spOwo+Pgo+PkBAIEBAIGludCBpbnRlbF9ndWNfc2VuZF9jdChzdHJ1Y3Qg aW50ZWxfZ3VjICpndWMsIGNvbnN0IHUzMiAKPj4qYWN0aW9uLCB1MzIgbGVuLAo+PiAgICAgICB1 MzIgc3RhdHVzID0gfjA7IC8qIHVuZGVmaW5lZCAqLwo+PiAgICAgICBpbnQgcmV0Owo+Pgo+Pisg ICAgICAgaWYgKCphY3Rpb24gJiBHVUNfQUNUSU9OX0ZMQUdfRE9OVF9XQUlUKSB7Cj4+KyAgICAg ICAgICAgICAgIEdFTV9CVUdfT04ocmVzcG9uc2VfYnVmKTsKPj4rICAgICAgICAgICAgICAgR0VN X0JVR19PTihyZXNwb25zZV9idWZfc2l6ZSk7Cj4+KyAgICAgICAgICAgICAgIHJldHVybiBjdGNo X3NlbmRfbmIoY3QsIGN0Y2gsIGFjdGlvbiwgbGVuKTsKPj4rICAgICAgIH0KPj4rCj4+ICAgICAg IG11dGV4X2xvY2soJmd1Yy0+c2VuZF9tdXRleCk7Cj4+Cj4+ICAgICAgIHJldCA9IGN0Y2hfc2Vu ZChjdCwgY3RjaCwgYWN0aW9uLCBsZW4sIHJlc3BvbnNlX2J1ZiwgCj4+cmVzcG9uc2VfYnVmX3Np emUsCj4+Cj4+Cj4+PnN0YXRpYyBpbmxpbmUgdm9pZCBpbnRlbF9ndWNfbm90aWZ5KHN0cnVjdCBp bnRlbF9ndWMgKmd1YykKPj4+ewo+Pj4JZ3VjLT5ub3RpZnkoZ3VjKTsKPj4+ZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L3VjL2ludGVsX2d1Y19jdC5jIAo+Pj5iL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2d0L3VjL2ludGVsX2d1Y19jdC5jCj4+PmluZGV4IGI0OTExNTUxNzUxMC4u ZTUwZDk2OGIxNWQ1IDEwMDY0NAo+Pj4tLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC91Yy9p bnRlbF9ndWNfY3QuYwo+Pj4rKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC91Yy9pbnRlbF9n dWNfY3QuYwo+Pj5AQCAtMyw2ICszLDggQEAKPj4+ICogQ29weXJpZ2h0IMKpIDIwMTYtMjAxOSBJ bnRlbCBDb3Jwb3JhdGlvbgo+Pj4gKi8KPj4+KyNpbmNsdWRlIDxsaW51eC9jaXJjX2J1Zi5oPgo+ Pj4rCj4+PiNpbmNsdWRlICJpOTE1X2Rydi5oIgo+Pj4jaW5jbHVkZSAiaW50ZWxfZ3VjX2N0Lmgi Cj4+PkBAIC0xMiw2ICsxNCw4IEBACj4+PiNkZWZpbmUgQ1RfREVCVUdfRFJJVkVSKC4uLikJZG8g eyB9IHdoaWxlICgwKQo+Pj4jZW5kaWYKPj4+KyNkZWZpbmUgTUFYX1JFVFJZCQkweDEwMDAwMDAK Pj4+Kwo+Pj5zdHJ1Y3QgY3RfcmVxdWVzdCB7Cj4+PglzdHJ1Y3QgbGlzdF9oZWFkIGxpbms7Cj4+ Pgl1MzIgZmVuY2U7Cj4+PkBAIC00MCw3ICs0NCw4IEBAIHZvaWQgaW50ZWxfZ3VjX2N0X2luaXRf ZWFybHkoc3RydWN0IGludGVsX2d1Y19jdCAqY3QpCj4+PgkvKiB3ZSdyZSB1c2luZyBzdGF0aWMg Y2hhbm5lbCBvd25lcnMgKi8KPj4+CWN0LT5ob3N0X2NoYW5uZWwub3duZXIgPSBDVEJfT1dORVJf SE9TVDsKPj4+LQlzcGluX2xvY2tfaW5pdCgmY3QtPmxvY2spOwo+Pj4rCXNwaW5fbG9ja19pbml0 KCZjdC0+cmVxdWVzdF9sb2NrKTsKPj4+KwlzcGluX2xvY2tfaW5pdCgmY3QtPnNlbmRfbG9jayk7 Cj4+PglJTklUX0xJU1RfSEVBRCgmY3QtPnBlbmRpbmdfcmVxdWVzdHMpOwo+Pj4JSU5JVF9MSVNU X0hFQUQoJmN0LT5pbmNvbWluZ19yZXF1ZXN0cyk7Cj4+PglJTklUX1dPUksoJmN0LT53b3JrZXIs IGN0X2luY29taW5nX3JlcXVlc3Rfd29ya2VyX2Z1bmMpOwo+Pj5AQCAtMjkxLDcgKzI5Niw4IEBA IHN0YXRpYyB1MzIgY3RjaF9nZXRfbmV4dF9mZW5jZShzdHJ1Y3QgCj4+PmludGVsX2d1Y19jdF9j aGFubmVsICpjdGNoKQo+Pj5zdGF0aWMgaW50IGN0Yl93cml0ZShzdHJ1Y3QgaW50ZWxfZ3VjX2N0 X2J1ZmZlciAqY3RiLAo+Pj4JCSAgICAgY29uc3QgdTMyICphY3Rpb24sCj4+PgkJICAgICB1MzIg bGVuIC8qIGluIGR3b3JkcyAqLywKPj4+LQkJICAgICB1MzIgZmVuY2UsCj4+PisJCSAgICAgdTMy IGZlbmNlX3ZhbHVlLAo+Pj4rCQkgICAgIGJvb2wgZW5hYmxlX2ZlbmNlLAo+Pgo+Pm1heWJlIHdl IGNhbiBqdXN0IGd1YXJhbnRlZSB0aGF0IGZlbmNlPTAgd2lsbCBuZXZlciBiZSB1c2VkIGFzIGEg dmFsaWQKPj5mZW5jZSBpZCwgdGhlbiB0aGlzIGZsYWcgY291bGQgYmUgcmVwbGFjZWQgd2l0aCAo ZmVuY2UgIT0gMCkgY2hlY2suCj4+Cj4KPlllcywgYWdhaW4gc2VlbXMgcmVhc29uYWJsZS4gSW5p dGlhbGl6ZSBuZXh0X2ZlbmNlID0gMSwgdGhlbiBpbmNyZW1lbnQgYnkgMiBlYWNoCj50aW1lIGFu ZCB0aGlzIHdvcmtzLgo+Cj4+PgkJICAgICBib29sIHdhbnRfcmVzcG9uc2UpCj4+PnsKPj4+CXN0 cnVjdCBndWNfY3RfYnVmZmVyX2Rlc2MgKmRlc2MgPSBjdGItPmRlc2M7Cj4+PkBAIC0zMjgsMTgg KzMzNCwxOCBAQCBzdGF0aWMgaW50IGN0Yl93cml0ZShzdHJ1Y3QgCj4+PmludGVsX2d1Y19jdF9i dWZmZXIgKmN0YiwKPj4+CSAqIERXMis6IGFjdGlvbiBkYXRhCj4+PgkgKi8KPj4+CWhlYWRlciA9 IChsZW4gPDwgR1VDX0NUX01TR19MRU5fU0hJRlQpIHwKPj4+LQkJIChHVUNfQ1RfTVNHX1dSSVRF X0ZFTkNFX1RPX0RFU0MpIHwKPj4+KwkJIChlbmFibGVfZmVuY2UgPyBHVUNfQ1RfTVNHX1dSSVRF X0ZFTkNFX1RPX0RFU0MgOiAwKSB8Cj4+Cj4+SG1tLCBldmVuIGlmIHdlIGFzayBmdyB0byBkbyBu b3Qgd3JpdGUgYmFjayBmZW5jZSB0byB0aGUgZGVzY3JpcHRvciwKPj5JSVJDIGN1cnJlbnQgZmly bXdhcmUgd2lsbCB1bmNvbmRpdGlvbmFsbHkgd3JpdGUgYmFjayByZXR1cm4gc3RhdHVzCj4+b2Yg dGhpcyBub24tYmxvY2tpbmcgY2FsbCwgcG9zc2libHkgb3ZlcndyaXRpbmcgc3RhdHVzIG9mIHRo ZSBibG9ja2VkCj4+Y2FsbC4KPj4KPgo+WWVzLCBrbm93biBwcm9ibGVtIHdpdGggdGhlIGludGVy ZmFjZSB0aGF0IG5lZWRzIHRvIGJlIGZpeGVkLgo+Cj4+PgkJICh3YW50X3Jlc3BvbnNlID8gR1VD X0NUX01TR19TRU5EX1NUQVRVUyA6IDApIHwKPj4KPj5idHcsIGlmIHdlIHN3aXRjaCBhbGwgcmVx dWVzdHMgdG8gZXhwZWN0IHJlcGx5IHNlbmQgYmFjayBvdmVyIENUQiwKPj50aGVuIHdlIGNhbiBw b3NzaWJseSBkcm9wIHRoZSBzZW5kX211dGV4IGluIENUQiBwYXRocywgYW5kIGJsb2NrCj4+b25s eSB3aGVuIHRoZXJlIGlzIG5vIERPTlRfV0FJVCBmbGFnIGFuZCB3ZSBoYXZlIHRvIHdhaXQgZm9y IHJlc3BvbnNlLgo+Pgo+Cj5SYXRoZXIganVzdCB3YWl0IGZvciB0aGUgR3VDIHRvIGZpeCB0aGlz Lgo+Cj4+PgkJIChhY3Rpb25bMF0gPDwgR1VDX0NUX01TR19BQ1RJT05fU0hJRlQpOwo+Pj4JQ1Rf REVCVUdfRFJJVkVSKCJDVDogd3JpdGluZyAlKnBoICUqcGggJSpwaFxuIiwKPj4+LQkJCTQsICZo ZWFkZXIsIDQsICZmZW5jZSwKPj4+KwkJCTQsICZoZWFkZXIsIDQsICZmZW5jZV92YWx1ZSwKPj4+ CQkJNCAqIChsZW4gLSAxKSwgJmFjdGlvblsxXSk7Cj4+PgljbWRzW3RhaWxdID0gaGVhZGVyOwo+ Pj4JdGFpbCA9ICh0YWlsICsgMSkgJSBzaXplOwo+Pj4tCWNtZHNbdGFpbF0gPSBmZW5jZTsKPj4+ KwljbWRzW3RhaWxdID0gZmVuY2VfdmFsdWU7Cj4+Pgl0YWlsID0gKHRhaWwgKyAxKSAlIHNpemU7 Cj4+Pglmb3IgKGkgPSAxOyBpIDwgbGVuOyBpKyspIHsKPj4+QEAgLTQ0MCw2ICs0NDYsNDcgQEAg c3RhdGljIGludCB3YWl0X2Zvcl9jdF9yZXF1ZXN0X3VwZGF0ZShzdHJ1Y3QgCj4+PmN0X3JlcXVl c3QgKnJlcSwgdTMyICpzdGF0dXMpCj4+PglyZXR1cm4gZXJyOwo+Pj59Cj4+PitzdGF0aWMgaW5s aW5lIGJvb2wgY3RiX2hhc19yb29tKHN0cnVjdCBndWNfY3RfYnVmZmVyX2Rlc2MgKmRlc2MsIAo+ Pj51MzIgbGVuKQo+Pj4rewo+Pj4rCXUzMiBoZWFkID0gUkVBRF9PTkNFKGRlc2MtPmhlYWQpOwo+ Pj4rCXUzMiBzcGFjZTsKPj4+Kwo+Pj4rCXNwYWNlID0gQ0lSQ19TUEFDRShkZXNjLT50YWlsLCBo ZWFkLCBkZXNjLT5zaXplKTsKPj4+Kwo+Pj4rCXJldHVybiBzcGFjZSA+PSBsZW47Cj4+Pit9Cj4+ PisKPj4+K2ludCBpbnRlbF9ndWNfc2VuZF9uYihzdHJ1Y3QgaW50ZWxfZ3VjX2N0ICpjdCwKPj4+ KwkJICAgICAgY29uc3QgdTMyICphY3Rpb24sCj4+PisJCSAgICAgIHUzMiBsZW4pCj4+Pit7Cj4+ PisJc3RydWN0IGludGVsX2d1Y19jdF9jaGFubmVsICpjdGNoID0gJmN0LT5ob3N0X2NoYW5uZWw7 Cj4+PisJc3RydWN0IGludGVsX2d1Y19jdF9idWZmZXIgKmN0YiA9ICZjdGNoLT5jdGJzW0NUQl9T RU5EXTsKPj4+KwlzdHJ1Y3QgZ3VjX2N0X2J1ZmZlcl9kZXNjICpkZXNjID0gY3RiLT5kZXNjOwo+ Pj4rCWludCBlcnI7Cj4+PisKPj4+KwlHRU1fQlVHX09OKCFjdGNoLT5lbmFibGVkKTsKPj4+KwlH RU1fQlVHX09OKCFsZW4pOwo+Pj4rCUdFTV9CVUdfT04obGVuICYgfkdVQ19DVF9NU0dfTEVOX01B U0spOwo+Pj4rCWxvY2tkZXBfYXNzZXJ0X2hlbGQoJmN0LT5zZW5kX2xvY2spOwo+Pgo+PmhtbSwg ZG9lcyBpdCBtZWFuIHRoYXQgbm93IGl0J3MgY2FsbGVyIHJlc3BvbnNpYmlsaXR5IHRvIHNwaW5s b2NrCj4+b24gQ1QgcHJpdmF0ZSBsb2NrID8gVGhhdCBpcyBub3QgaG93IG90aGVyIGd1Y19zZW5k KCkgZnVuY3Rpb25zIHdvcmsuCj4+Cj4KPlllcywgdGhhdCBob3cgSSB3b3VsZCBsaWtlIHRoaXMg d29yayBhcyBJIGZlZWwgbGlrZSBpdCBnaXZlcyBtb3JlIGZsZXhhYmlsaXR5IHRvCj50aGUgY2Fs bGVyIG9uIHRoZSAtRUJVU1kgY2FzZS4gVGhlIGNhbGxlciBjYW4gY2FsbCBpbnRlbF9ndWNfc2Vu ZF9uYiBhZ2FpbiB3aGlsZQo+c3RpbGwgaG9sZGluZyB0aGUgbG9jayBvciBpdCByZWxlYXNlIGxv Y2sgdGhlIGFuZCB1c2UgYSBkaWZmZXJlbnQgZm9ybSBvZiBmbG93Cj5jb250cm9sLiBQZXJoYXBz IGxvY2tpbmcgLyB1bmxvY2tpbmcgc2hvdWxkIGJlIGV4cG9zZWQgdmlhIHN0YXRpYyBpbmxpbmVz IHJhdGhlcgo+dGhhbiB0aGUgY2FsbGVyIGRpcmVjdGx5IG1hbmlwdWxhdGluZyB0aGUgbG9jaz8K Pgo+Pj4rCj4+PisJaWYgKHVubGlrZWx5KCFjdGJfaGFzX3Jvb20oZGVzYywgKGxlbiArIDEpICog NCkpKSB7Cj4+PisJCWN0LT5yZXRyeSsrOwo+Pj4rCQlpZiAoY3QtPnJldHJ5ID49IE1BWF9SRVRS WSkKPj4+KwkJCXJldHVybiAtRURFQURMSzsKPj4+KwkJZWxzZQo+Pj4rCQkJcmV0dXJuIC1FQlVT WTsKPj4+Kwl9Cj4+PisKPj4+KwljdC0+cmV0cnkgPSAwOwo+Pj4rCWVyciA9IGN0Yl93cml0ZShj dGIsIGFjdGlvbiwgbGVuLCAwLCBmYWxzZSwgZmFsc2UpOwo+Pj4rCWlmICh1bmxpa2VseShlcnIp KQo+Pj4rCQlyZXR1cm4gZXJyOwo+Pj4rCj4+PisJaW50ZWxfZ3VjX25vdGlmeShjdF90b19ndWMo Y3QpKTsKPj4+KwlyZXR1cm4gMDsKPj4+K30KPj4+Kwo+Pj5zdGF0aWMgaW50IGN0Y2hfc2VuZChz dHJ1Y3QgaW50ZWxfZ3VjX2N0ICpjdCwKPj4+CQkgICAgIHN0cnVjdCBpbnRlbF9ndWNfY3RfY2hh bm5lbCAqY3RjaCwKPj4+CQkgICAgIGNvbnN0IHUzMiAqYWN0aW9uLAo+Pj5AQCAtNDYwLDE3ICs1 MDcsMzUgQEAgc3RhdGljIGludCBjdGNoX3NlbmQoc3RydWN0IGludGVsX2d1Y19jdCAqY3QsCj4+ PglHRU1fQlVHX09OKGxlbiAmIH5HVUNfQ1RfTVNHX0xFTl9NQVNLKTsKPj4+CUdFTV9CVUdfT04o IXJlc3BvbnNlX2J1ZiAmJiByZXNwb25zZV9idWZfc2l6ZSk7Cj4+PisJLyoKPj4+KwkgKiBXZSB1 c2UgYSBsYXp5IHNwaW4gd2FpdCBsb29wIGhlcmUgYXMgd2UgYmVsaWV2ZSB0aGF0IGlmIHRoZSBD VAo+Pj4rCSAqIGJ1ZmZlcnMgYXJlIHNpemVkIGNvcnJlY3RseSB0aGUgZmxvdyBjb250cm9sIGNv bmRpdGlvbiBzaG91bGQgYmUKPj4+KwkgKiByYXJlLgo+Pj4rCSAqLwo+Pj4rcmV0cnk6Cj4+PisJ c3Bpbl9sb2NrX2lycXNhdmUoJmN0LT5zZW5kX2xvY2ssIGZsYWdzKTsKPj4+KwlpZiAodW5saWtl bHkoIWN0Yl9oYXNfcm9vbShkZXNjLCAobGVuICsgMSkgKiA0KSkpIHsKPj4+KwkJc3Bpbl91bmxv Y2tfaXJxcmVzdG9yZSgmY3QtPnNlbmRfbG9jaywgZmxhZ3MpOwo+Pj4rCQljdC0+cmV0cnkrKzsK Pj4+KwkJaWYgKGN0LT5yZXRyeSA+PSBNQVhfUkVUUlkpCj4+PisJCQlyZXR1cm4gLUVERUFETEs7 Cj4+Cj4+SSdtIG5vdCBzdXJlIHdoYXQncyBiZXR0ZXI6IGhhdmUgc2VjcmV0IGRlYWRsb2NrIGhh cmQgdG8gcmVwcm9kdWNlLAo+Pm9yIGRlYWRsb2NrcyBlYXNpZXIgdG8gY2F0Y2ggdGhhdCBoZWxw cyBpbXByb3ZlIHRvIGJlIGRlYWRsb2NrLWNsZWFuCj4+Cj4KPlRoaXMgaXMgY292ZXJpbmcgdGhl IGNhc2Ugd2hlcmUgdGhlIGhhcyBkaWVkIGFuZCB0byBhdm9pZCBkZWFkbG9jay4gRXZlbnR1YWxs eQo+d2Ugd2lsbCBoYXZlIHNvbWUgR3VDIGhlYWx0aCBjaGVjayBjb2RlIHRoYXQgd2lsbCB0cmln Z2VyIGEgZnVsbCBHUFUgcmVzZXQgaWYKPnRoZSBHdUMgaGFzIGRpZWQuIFdlIG5lZWQgYSB3YXkg Zm9yIGNvZGUgc3Bpbm5pbmcgb24gdGhlIENUQnMgdG8gZXhpdC4KPgo+SSd2ZSBhbHJlYWR5IHR3 ZWFrZWQgdGhpcyBjb2RlIGxvY2FsbHkgYSBiaXQgdG8gdXNlIGFuIGF0b21pYyB0b28gd2l0aCB0 aGUgaWRlYQo+YmVpbmcgdGhlIEd1QyBoZWFsdGggY2hlY2sgY29kZSBjYW4gc2V0IHRoaXMgdmFs dWUgdG8gaGF2ZSBhbGwgY29kZSBzcGlubmluZyBvbgo+Q1RCcyBpbW1lZGlhdGVseSByZXR1cm4g LS1FREVBRExLIHdoZW4gdGhlIEd1QyBoYXMgZGllZC4KPgo+Pj4rCQljcHVfcmVsYXgoKTsKPj4+ KwkJZ290byByZXRyeTsKPj4+Kwl9Cj4+PisKPj4+KwljdC0+cmV0cnkgPSAwOwo+Pj4JZmVuY2Ug PSBjdGNoX2dldF9uZXh0X2ZlbmNlKGN0Y2gpOwo+Pj4JcmVxdWVzdC5mZW5jZSA9IGZlbmNlOwo+ Pj4JcmVxdWVzdC5zdGF0dXMgPSAwOwo+Pj4JcmVxdWVzdC5yZXNwb25zZV9sZW4gPSByZXNwb25z ZV9idWZfc2l6ZTsKPj4+CXJlcXVlc3QucmVzcG9uc2VfYnVmID0gcmVzcG9uc2VfYnVmOwo+Pj4t CXNwaW5fbG9ja19pcnFzYXZlKCZjdC0+bG9jaywgZmxhZ3MpOwo+Pj4rCXNwaW5fbG9jaygmY3Qt PnJlcXVlc3RfbG9jayk7Cj4+PglsaXN0X2FkZF90YWlsKCZyZXF1ZXN0LmxpbmssICZjdC0+cGVu ZGluZ19yZXF1ZXN0cyk7Cj4+Pi0Jc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmY3QtPmxvY2ssIGZs YWdzKTsKPj4+KwlzcGluX3VubG9jaygmY3QtPnJlcXVlc3RfbG9jayk7Cj4+Pi0JZXJyID0gY3Ri X3dyaXRlKGN0YiwgYWN0aW9uLCBsZW4sIGZlbmNlLCAhIXJlc3BvbnNlX2J1Zik7Cj4+PisJZXJy ID0gY3RiX3dyaXRlKGN0YiwgYWN0aW9uLCBsZW4sIGZlbmNlLCB0cnVlLCAhIXJlc3BvbnNlX2J1 Zik7Cj4+PisJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmY3QtPnNlbmRfbG9jaywgZmxhZ3MpOwo+ Pj4JaWYgKHVubGlrZWx5KGVycikpCj4+PgkJZ290byB1bmxpbms7Cj4+PkBAIC01MDEsOSArNTY2 LDkgQEAgc3RhdGljIGludCBjdGNoX3NlbmQoc3RydWN0IGludGVsX2d1Y19jdCAqY3QsCj4+Pgl9 Cj4+PnVubGluazoKPj4+LQlzcGluX2xvY2tfaXJxc2F2ZSgmY3QtPmxvY2ssIGZsYWdzKTsKPj4+ KwlzcGluX2xvY2tfaXJxc2F2ZSgmY3QtPnJlcXVlc3RfbG9jaywgZmxhZ3MpOwo+Pj4JbGlzdF9k ZWwoJnJlcXVlc3QubGluayk7Cj4+Pi0Jc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmY3QtPmxvY2ss IGZsYWdzKTsKPj4+KwlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZjdC0+cmVxdWVzdF9sb2NrLCBm bGFncyk7Cj4+PglyZXR1cm4gZXJyOwo+Pj59Cj4+PkBAIC02NTMsNyArNzE4LDcgQEAgc3RhdGlj IGludCBjdF9oYW5kbGVfcmVzcG9uc2Uoc3RydWN0IAo+Pj5pbnRlbF9ndWNfY3QgKmN0LCBjb25z dCB1MzIgKm1zZykKPj4+CUNUX0RFQlVHX0RSSVZFUigiQ1Q6IHJlc3BvbnNlIGZlbmNlICV1IHN0 YXR1cyAlI3hcbiIsIGZlbmNlLCBzdGF0dXMpOwo+Pj4tCXNwaW5fbG9jaygmY3QtPmxvY2spOwo+ Pj4rCXNwaW5fbG9jaygmY3QtPnJlcXVlc3RfbG9jayk7Cj4+PglsaXN0X2Zvcl9lYWNoX2VudHJ5 KHJlcSwgJmN0LT5wZW5kaW5nX3JlcXVlc3RzLCBsaW5rKSB7Cj4+PgkJaWYgKHVubGlrZWx5KGZl bmNlICE9IHJlcS0+ZmVuY2UpKSB7Cj4+PgkJCUNUX0RFQlVHX0RSSVZFUigiQ1Q6IHJlcXVlc3Qg JXUgYXdhaXRzIHJlc3BvbnNlXG4iLAo+Pj5AQCAtNjcyLDcgKzczNyw3IEBAIHN0YXRpYyBpbnQg Y3RfaGFuZGxlX3Jlc3BvbnNlKHN0cnVjdCAKPj4+aW50ZWxfZ3VjX2N0ICpjdCwgY29uc3QgdTMy ICptc2cpCj4+PgkJZm91bmQgPSB0cnVlOwo+Pj4JCWJyZWFrOwo+Pj4JfQo+Pj4tCXNwaW5fdW5s b2NrKCZjdC0+bG9jayk7Cj4+PisJc3Bpbl91bmxvY2soJmN0LT5yZXF1ZXN0X2xvY2spOwo+Pj4J aWYgKCFmb3VuZCkKPj4+CQlEUk1fRVJST1IoIkNUOiB1bnNvbGljaXRlZCByZXNwb25zZSAlKnBo XG4iLCA0ICogbXNnbGVuLCBtc2cpOwo+Pj5AQCAtNzEwLDEzICs3NzUsMTMgQEAgc3RhdGljIGJv b2wgCj4+PmN0X3Byb2Nlc3NfaW5jb21pbmdfcmVxdWVzdHMoc3RydWN0IGludGVsX2d1Y19jdCAq Y3QpCj4+Pgl1MzIgKnBheWxvYWQ7Cj4+Pglib29sIGRvbmU7Cj4+Pi0Jc3Bpbl9sb2NrX2lycXNh dmUoJmN0LT5sb2NrLCBmbGFncyk7Cj4+PisJc3Bpbl9sb2NrX2lycXNhdmUoJmN0LT5yZXF1ZXN0 X2xvY2ssIGZsYWdzKTsKPj4+CXJlcXVlc3QgPSBsaXN0X2ZpcnN0X2VudHJ5X29yX251bGwoJmN0 LT5pbmNvbWluZ19yZXF1ZXN0cywKPj4+CQkJCQkgICBzdHJ1Y3QgY3RfaW5jb21pbmdfcmVxdWVz dCwgbGluayk7Cj4+PglpZiAocmVxdWVzdCkKPj4+CQlsaXN0X2RlbCgmcmVxdWVzdC0+bGluayk7 Cj4+Pglkb25lID0gISFsaXN0X2VtcHR5KCZjdC0+aW5jb21pbmdfcmVxdWVzdHMpOwo+Pj4tCXNw aW5fdW5sb2NrX2lycXJlc3RvcmUoJmN0LT5sb2NrLCBmbGFncyk7Cj4+PisJc3Bpbl91bmxvY2tf aXJxcmVzdG9yZSgmY3QtPnJlcXVlc3RfbG9jaywgZmxhZ3MpOwo+Pj4JaWYgKCFyZXF1ZXN0KQo+ Pj4JCXJldHVybiB0cnVlOwo+Pj5AQCAtNzc3LDkgKzg0Miw5IEBAIHN0YXRpYyBpbnQgY3RfaGFu ZGxlX3JlcXVlc3Qoc3RydWN0IAo+Pj5pbnRlbF9ndWNfY3QgKmN0LCBjb25zdCB1MzIgKm1zZykK Pj4+CX0KPj4+CW1lbWNweShyZXF1ZXN0LT5tc2csIG1zZywgNCAqIG1zZ2xlbik7Cj4+Pi0Jc3Bp bl9sb2NrX2lycXNhdmUoJmN0LT5sb2NrLCBmbGFncyk7Cj4+PisJc3Bpbl9sb2NrX2lycXNhdmUo JmN0LT5yZXF1ZXN0X2xvY2ssIGZsYWdzKTsKPj4+CWxpc3RfYWRkX3RhaWwoJnJlcXVlc3QtPmxp bmssICZjdC0+aW5jb21pbmdfcmVxdWVzdHMpOwo+Pj4tCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUo JmN0LT5sb2NrLCBmbGFncyk7Cj4+PisJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmY3QtPnJlcXVl c3RfbG9jaywgZmxhZ3MpOwo+Pj4JcXVldWVfd29yayhzeXN0ZW1fdW5ib3VuZF93cSwgJmN0LT53 b3JrZXIpOwo+Pj4JcmV0dXJuIDA7Cj4+PmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9ndC91Yy9pbnRlbF9ndWNfY3QuaCAKPj4+Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC91Yy9p bnRlbF9ndWNfY3QuaAo+Pj5pbmRleCA3YzI0ZDgzZjVjMjQuLmJjNjcwYTc5NmJkOCAxMDA2NDQK Pj4+LS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvdWMvaW50ZWxfZ3VjX2N0LmgKPj4+Kysr IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvdWMvaW50ZWxfZ3VjX2N0LmgKPj4+QEAgLTYyLDgg KzYyLDExIEBAIHN0cnVjdCBpbnRlbF9ndWNfY3Qgewo+Pj4Jc3RydWN0IGludGVsX2d1Y19jdF9j aGFubmVsIGhvc3RfY2hhbm5lbDsKPj4+CS8qIG90aGVyIGNoYW5uZWxzIGFyZSB0YmQgKi8KPj4+ LQkvKiogQGxvY2s6IHByb3RlY3RzIHBlbmRpbmcgcmVxdWVzdHMgbGlzdCAqLwo+Pj4tCXNwaW5s b2NrX3QgbG9jazsKPj4+KwkvKiogQHJlcXVlc3RfbG9jazogcHJvdGVjdHMgcGVuZGluZyByZXF1 ZXN0cyBsaXN0ICovCj4+PisJc3BpbmxvY2tfdCByZXF1ZXN0X2xvY2s7Cj4+PisKPj4+KwkvKiog QHNlbmRfbG9jazogcHJvdGVjdHMgaDJnIGNoYW5uZWwgKi8KPj4+KwlzcGlubG9ja190IHNlbmRf bG9jazsKPj4+CS8qKiBAcGVuZGluZ19yZXF1ZXN0czogbGlzdCBvZiByZXF1ZXN0cyB3YWl0aW5n IGZvciByZXNwb25zZSAqLwo+Pj4Jc3RydWN0IGxpc3RfaGVhZCBwZW5kaW5nX3JlcXVlc3RzOwo+ Pj5AQCAtNzMsNiArNzYsOSBAQCBzdHJ1Y3QgaW50ZWxfZ3VjX2N0IHsKPj4+CS8qKiBAd29ya2Vy OiB3b3JrZXIgZm9yIGhhbmRsaW5nIGluY29taW5nIHJlcXVlc3RzICovCj4+PglzdHJ1Y3Qgd29y a19zdHJ1Y3Qgd29ya2VyOwo+Pj4rCj4+PisJLyoqIEByZXRyeTogdGhlIG51bWJlciBvZiB0aW1l cyBhIEgyRyBDVEIgaGFzIGJlZW4gcmV0cmllZCAqLwo+Pj4rCXUzMiByZXRyeTsKPj4+fTsKPj4+ dm9pZCBpbnRlbF9ndWNfY3RfaW5pdF9lYXJseShzdHJ1Y3QgaW50ZWxfZ3VjX2N0ICpjdCk7Cj4+ X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPj5JbnRlbC1n ZnggbWFpbGluZyBsaXN0Cj4+SW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+Pmh0dHBz Oi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cj5fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+SW50ZWwtZ2Z4IG1h aWxpbmcgbGlzdAo+SW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+aHR0cHM6Ly9saXN0 cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngKX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlz dApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0 b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4 From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-8.2 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS, URIBL_BLOCKED,USER_AGENT_SANE_1 autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 0CA3BC432C0 for ; Fri, 22 Nov 2019 01:40:42 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id DC85D206CB for ; Fri, 22 Nov 2019 01:40:41 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org DC85D206CB Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=intel.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=intel-gfx-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 58C226F4CB; Fri, 22 Nov 2019 01:40:41 +0000 (UTC) Received: from mga12.intel.com (mga12.intel.com [192.55.52.136]) by gabe.freedesktop.org (Postfix) with ESMTPS id 978F76F4CB for ; Fri, 22 Nov 2019 01:40:39 +0000 (UTC) X-Amp-Result: UNKNOWN X-Amp-Original-Verdict: FILE UNKNOWN X-Amp-File-Uploaded: False Received: from fmsmga008.fm.intel.com ([10.253.24.58]) by fmsmga106.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 21 Nov 2019 17:40:39 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.69,228,1571727600"; d="scan'208";a="205260996" Received: from unknown (HELO sdutt) ([10.165.21.200]) by fmsmga008.fm.intel.com with ESMTP; 21 Nov 2019 17:40:38 -0800 Date: Thu, 21 Nov 2019 17:34:22 -0800 From: Matthew Brost To: Michal Wajdeczko Message-ID: <20191122013422.GB64720@sdutt> References: <20191120235604.29047-1-John.C.Harrison@Intel.com> <20191120235604.29047-2-John.C.Harrison@Intel.com> <20191122001325.GA92577@sdutt> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20191122001325.GA92577@sdutt> User-Agent: Mutt/1.9.4 (2018-02-28) Subject: Re: [Intel-gfx] [PATCH 1/3] drm/i915/guc: Add non blocking CTB send function X-BeenThere: intel-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Intel graphics driver community testing & development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Intel-GFX@lists.freedesktop.org Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" Message-ID: <20191122013422.CdYdqbndRdj3Q-eS7ZHaZaJ2kDhOpOnmHst0X5hDrNE@z> T24gVGh1LCBOb3YgMjEsIDIwMTkgYXQgMDQ6MTM6MjVQTSAtMDgwMCwgTWF0dGhldyBCcm9zdCB3 cm90ZToKPk9uIFRodSwgTm92IDIxLCAyMDE5IGF0IDEyOjQzOjI2UE0gKzAxMDAsIE1pY2hhbCBX YWpkZWN6a28gd3JvdGU6Cj4+T24gVGh1LCAyMSBOb3YgMjAxOSAwMDo1NjowMiArMDEwMCwgPEpv aG4uQy5IYXJyaXNvbkBpbnRlbC5jb20+IHdyb3RlOgo+Pgo+Pj5Gcm9tOiBNYXR0aGV3IEJyb3N0 IDxtYXR0aGV3LmJyb3N0QGludGVsLmNvbT4KPj4+Cj4+PkFkZCBub24gYmxvY2tpbmcgQ1RCIHNl bmQgZnVjdGlvbiwgaW50ZWxfZ3VjX3NlbmRfbmIuIEluIG9yZGVyIHRvCj4+PnN1cHBvcnQgYSBu b24gYmxvY2tpbmcgQ1RCIHNlbmQgZnVjdGlvbiBhIHNwaW4gbG9jayBpcyBuZWVkZWQgdG8KPj4K Pj4yeCB0eXBvcwo+Pgo+Pj5wcm90ZWN0IHRoZSBDVEIgZGVzY3JpcHRvcnMgZmllbGRzLiBBbHNv IHRoZSBub24gYmxvY2tpbmcgY2FsbCBtdXN0IG5vdAo+Pj51cGRhdGUgdGhlIGZlbmNlIHZhbHVl IGFzIHRoaXMgdmFsdWUgaXMgb3duZWQgYnkgdGhlIGJsb2NraW5nIGNhbGwKPj4+KGludGVsX2d1 Y19zZW5kKS4KPj4KPj55b3UgcHJvYmFibHkgbWVhbiAiaW50ZWxfZ3VjX3NlbmRfY3QiLCBhcyBp bnRlbF9ndWNfc2VuZCBpcyBqdXN0IGEgd3JhcHBlcgo+PmFyb3VuZCBndWMtPnNlbmQKPj4KPgo+ QWgsIHllcy4KPgo+Pj4KPj4+VGhlIGJsb2NraW5nIENUQiBub3cgbXVzdCBoYXZlIGEgZmxvdyBj b250cm9sIG1lY2hhbmlzbSB0byBlbnN1cmUgdGhlCj4+PmJ1ZmZlciBpc24ndCBvdmVycnVuLiBB IGxhenkgc3BpbiB3YWl0IGlzIHVzZWQgYXMgd2UgYmVsaWV2ZSB0aGUgZmxvdwo+Pj5jb250cm9s IGNvbmRpdGlvbiBzaG91bGQgYmUgcmFyZSB3aXRoIHByb3Blcmx5IHNpemVkIGJ1ZmZlci4gQSBy ZXRyeQo+Pj5jb3VudGVyIGlzIGFsc28gaW1wbGVtZW50ZWQgd2hpY2ggZmFpbHMgSDJHIENUQnMg b25jZSBhIGxpbWl0IGlzCj4+PnJlYWNoZWQgdG8gcHJldmVudCBkZWFkbG9jay4KPj4+Cj4+PlRo ZSBmdW5jdGlvbiwgaW50ZWxfZ3VjX3NlbmRfbmIsIGlzIGV4cG9ydGVkIGluIHRoaXMgcGF0Y2gg YnV0IHVudXNlZC4KPj4+U2V2ZXJhbCBwYXRjaGVzIGxhdGVyIGluIHRoZSBzZXJpZXMgbWFrZSB1 c2Ugb2YgdGhpcyBmdW5jdGlvbi4KPj4KPj5JdCdzIGxpa2VseSBpbiB5ZXQgYW5vdGhlciBzZXJp ZXMKPj4KPgo+WWVzLCBpdCBpcy4KPgo+Pj4KPj4+Q2M6IEpvaG4gSGFycmlzb24gPGpvaG4uYy5o YXJyaXNvbkBpbnRlbC5jb20+Cj4+PlNpZ25lZC1vZmYtYnk6IE1hdHRoZXcgQnJvc3QgPG1hdHRo ZXcuYnJvc3RAaW50ZWwuY29tPgo+Pj4tLS0KPj4+ZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvdWMv aW50ZWxfZ3VjLmggICAgfCAgMiArCj4+PmRyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L3VjL2ludGVs X2d1Y19jdC5jIHwgOTcgKysrKysrKysrKysrKysrKysrKy0tLS0KPj4+ZHJpdmVycy9ncHUvZHJt L2k5MTUvZ3QvdWMvaW50ZWxfZ3VjX2N0LmggfCAxMCArKy0KPj4+MyBmaWxlcyBjaGFuZ2VkLCA5 MSBpbnNlcnRpb25zKCspLCAxOCBkZWxldGlvbnMoLSkKPj4+Cj4+PmRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9ndC91Yy9pbnRlbF9ndWMuaCAKPj4+Yi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9ndC91Yy9pbnRlbF9ndWMuaAo+Pj5pbmRleCBlNjQwMDIwNGEyYmQuLjc3YzVhZjkxOWFj ZSAxMDA2NDQKPj4+LS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvdWMvaW50ZWxfZ3VjLmgK Pj4+KysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvdWMvaW50ZWxfZ3VjLmgKPj4+QEAgLTk0 LDYgKzk0LDggQEAgaW50ZWxfZ3VjX3NlbmRfYW5kX3JlY2VpdmUoc3RydWN0IGludGVsX2d1YyAK Pj4+Kmd1YywgY29uc3QgdTMyICphY3Rpb24sIHUzMiBsZW4sCj4+PglyZXR1cm4gZ3VjLT5zZW5k KGd1YywgYWN0aW9uLCBsZW4sIHJlc3BvbnNlX2J1ZiwgcmVzcG9uc2VfYnVmX3NpemUpOwo+Pj59 Cj4+PitpbnQgaW50ZWxfZ3VjX3NlbmRfbmIoc3RydWN0IGludGVsX2d1Y19jdCAqY3QsIGNvbnN0 IHUzMiAqYWN0aW9uLCAKPj4+dTMyIGxlbik7Cj4+PisKPj4KPj5IbW0sIHRoaXMgbWlzbWF0Y2gg b2YgZ3VjL2N0IHBhcmFtZXRlciBicmVha3MgdGhlIG91ciBsYXllcmluZy4KPj5CdXQgd2UgY2Fu IGtlZXAgdGhpcyBsYXllcmluZyBpbnRhY3QgYnkgaW50cm9kdWNpbmcgc29tZSBmbGFncyB0bwo+ PnRoZSBleGlzdGluZyBndWNfc2VuZCgpIGZ1bmN0aW9uLiBUaGVzZSBmbGFncyBjb3VsZCBiZSBw YXNzZWQgYXMKPj5oaWdoIGJpdHMgaW4gYWN0aW9uWzBdLCBsaWtlIHRoaXM6Cj4KPlRoaXMgc2Vl bXMgcmVhc29uYWJsZS4KPgoKUHJvdG90eXBlZCB0aGlzIGFuZCBJIGRvbid0IGxpa2UgaXQgYWxs LiBGaXJzdCAnYWN0aW9uJyBpcyBhIGNvbnN0IHNvIHdoYXQgeW91CmFyZSBzdWdnZXN0aW5nIGRv ZXNuJ3Qgd29yayB1bmxlc3MgdGhhdCBpcyBjaGFuZ2VkLiBBbHNvIHdoYXQgaWYgYWxsIGJpdHMg aW4gRFcKZXZlbnR1YWxseSBtZWFuIHNvbWV0aGluZywgdG8gbWUgb3ZlcmxvYWRpbmcgYSBmaWVs ZCBpc24ndCBhIGdvb2QgaWRlYSBpZgphbnl0aGluZyB3ZSBzaG91bGQgYWRkIGFub3RoZXIgYXJn dW1lbnQgdG8gZ3VjLT5zZW5kKCkuIEJ1dCBJJ2QgaG9uZXN0bHkgcHJlZmVyCndlIGp1c3QgbGVh dmUgaXQgYXMgaXMuIE5vbi1ibG9ja2luZyBvbmx5IGFwcGxpZXMgdG8gQ1RzIChub3QgTU1JTykg YW5kIHdlIGhhdmUKR0VNX0JVR19PTiB0byBwcm90ZWN0IHVzIGlmIHRoaXMgZnVuY3Rpb24gaXMg Y2FsbGVkIGluY29ycmVjdGx5LiBEb2luZyB3aGF0IHlvdQpzdWdnZXN0IGp1c3QgbWFrZXMgZXZl cnl0aGluZyBtb3JlIGNvbXBsaWNhdGVkIElNTy4KCk1hdHQKCj4+Cj4+I2RlZmluZSBHVUNfQUNU SU9OX0ZMQUdfRE9OVF9XQUlUIDB4ODAwMDAwMDAKPj4KPj5pbnQgaW50ZWxfZ3VjX2F1dGhfaHVj KHN0cnVjdCBpbnRlbF9ndWMgKmd1YywgdTMyIHJzYV9vZmZzZXQpCj4+ewo+Pgl1MzIgYWN0aW9u W10gPSB7Cj4+CQlJTlRFTF9HVUNfQUNUSU9OX0FVVEhFTlRJQ0FURV9IVUMgfCBHVUNfQUNUSU9O X0ZMQUdfRE9OVF9XQUlULAo+PgkJcnNhX29mZnNldAo+Pgl9Owo+Pgo+PglyZXR1cm4gaW50ZWxf Z3VjX3NlbmQoZ3VjLCBhY3Rpb24sIEFSUkFZX1NJWkUoYWN0aW9uKSk7Cj4+fQo+Pgo+PnRoZW4g YWN0dWFsIGJhY2stZW5kIG9mIGd1Yy0+c2VuZCBjYW4gdGFrZSBwcm9wZXIgc3RlcHMgYmFzZWQg b24gdGhpcyBmbGFnOgo+Pgo+PkBAIGludCBpbnRlbF9ndWNfc2VuZF9tbWlvKHN0cnVjdCBpbnRl bF9ndWMgKmd1YywgY29uc3QgdTMyICphY3Rpb24sIAo+PnUzMiBsZW4sCj4+ICAgICAgIEdFTV9C VUdfT04oIWxlbik7Cj4+ICAgICAgIEdFTV9CVUdfT04obGVuID4gZ3VjLT5zZW5kX3JlZ3MuY291 bnQpOwo+Pgo+PisgICAgICAgaWYgKCphY3Rpb24gJiBHVUNfQUNUSU9OX0ZMQUdfRE9OVF9XQUlU KQo+PisgICAgICAgICAgICAgICByZXR1cm4gLUVJTlZBTDsKPj4rICAgICAgICphY3Rpb24gJj0g fkdVQ19BQ1RJT05fRkxBR19ET05UX1dBSVQ7Cj4+Kwo+PiAgICAgICAvKiBXZSBleHBlY3Qgb25s eSBhY3Rpb24gY29kZSAqLwo+PiAgICAgICBHRU1fQlVHX09OKCphY3Rpb24gJiB+SU5URUxfR1VD X01TR19DT0RFX01BU0spOwo+Pgo+PkBAIEBAIGludCBpbnRlbF9ndWNfc2VuZF9jdChzdHJ1Y3Qg aW50ZWxfZ3VjICpndWMsIGNvbnN0IHUzMiAKPj4qYWN0aW9uLCB1MzIgbGVuLAo+PiAgICAgICB1 MzIgc3RhdHVzID0gfjA7IC8qIHVuZGVmaW5lZCAqLwo+PiAgICAgICBpbnQgcmV0Owo+Pgo+Pisg ICAgICAgaWYgKCphY3Rpb24gJiBHVUNfQUNUSU9OX0ZMQUdfRE9OVF9XQUlUKSB7Cj4+KyAgICAg ICAgICAgICAgIEdFTV9CVUdfT04ocmVzcG9uc2VfYnVmKTsKPj4rICAgICAgICAgICAgICAgR0VN X0JVR19PTihyZXNwb25zZV9idWZfc2l6ZSk7Cj4+KyAgICAgICAgICAgICAgIHJldHVybiBjdGNo X3NlbmRfbmIoY3QsIGN0Y2gsIGFjdGlvbiwgbGVuKTsKPj4rICAgICAgIH0KPj4rCj4+ICAgICAg IG11dGV4X2xvY2soJmd1Yy0+c2VuZF9tdXRleCk7Cj4+Cj4+ICAgICAgIHJldCA9IGN0Y2hfc2Vu ZChjdCwgY3RjaCwgYWN0aW9uLCBsZW4sIHJlc3BvbnNlX2J1ZiwgCj4+cmVzcG9uc2VfYnVmX3Np emUsCj4+Cj4+Cj4+PnN0YXRpYyBpbmxpbmUgdm9pZCBpbnRlbF9ndWNfbm90aWZ5KHN0cnVjdCBp bnRlbF9ndWMgKmd1YykKPj4+ewo+Pj4JZ3VjLT5ub3RpZnkoZ3VjKTsKPj4+ZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L3VjL2ludGVsX2d1Y19jdC5jIAo+Pj5iL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2d0L3VjL2ludGVsX2d1Y19jdC5jCj4+PmluZGV4IGI0OTExNTUxNzUxMC4u ZTUwZDk2OGIxNWQ1IDEwMDY0NAo+Pj4tLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC91Yy9p bnRlbF9ndWNfY3QuYwo+Pj4rKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC91Yy9pbnRlbF9n dWNfY3QuYwo+Pj5AQCAtMyw2ICszLDggQEAKPj4+ICogQ29weXJpZ2h0IMKpIDIwMTYtMjAxOSBJ bnRlbCBDb3Jwb3JhdGlvbgo+Pj4gKi8KPj4+KyNpbmNsdWRlIDxsaW51eC9jaXJjX2J1Zi5oPgo+ Pj4rCj4+PiNpbmNsdWRlICJpOTE1X2Rydi5oIgo+Pj4jaW5jbHVkZSAiaW50ZWxfZ3VjX2N0Lmgi Cj4+PkBAIC0xMiw2ICsxNCw4IEBACj4+PiNkZWZpbmUgQ1RfREVCVUdfRFJJVkVSKC4uLikJZG8g eyB9IHdoaWxlICgwKQo+Pj4jZW5kaWYKPj4+KyNkZWZpbmUgTUFYX1JFVFJZCQkweDEwMDAwMDAK Pj4+Kwo+Pj5zdHJ1Y3QgY3RfcmVxdWVzdCB7Cj4+PglzdHJ1Y3QgbGlzdF9oZWFkIGxpbms7Cj4+ Pgl1MzIgZmVuY2U7Cj4+PkBAIC00MCw3ICs0NCw4IEBAIHZvaWQgaW50ZWxfZ3VjX2N0X2luaXRf ZWFybHkoc3RydWN0IGludGVsX2d1Y19jdCAqY3QpCj4+PgkvKiB3ZSdyZSB1c2luZyBzdGF0aWMg Y2hhbm5lbCBvd25lcnMgKi8KPj4+CWN0LT5ob3N0X2NoYW5uZWwub3duZXIgPSBDVEJfT1dORVJf SE9TVDsKPj4+LQlzcGluX2xvY2tfaW5pdCgmY3QtPmxvY2spOwo+Pj4rCXNwaW5fbG9ja19pbml0 KCZjdC0+cmVxdWVzdF9sb2NrKTsKPj4+KwlzcGluX2xvY2tfaW5pdCgmY3QtPnNlbmRfbG9jayk7 Cj4+PglJTklUX0xJU1RfSEVBRCgmY3QtPnBlbmRpbmdfcmVxdWVzdHMpOwo+Pj4JSU5JVF9MSVNU X0hFQUQoJmN0LT5pbmNvbWluZ19yZXF1ZXN0cyk7Cj4+PglJTklUX1dPUksoJmN0LT53b3JrZXIs IGN0X2luY29taW5nX3JlcXVlc3Rfd29ya2VyX2Z1bmMpOwo+Pj5AQCAtMjkxLDcgKzI5Niw4IEBA IHN0YXRpYyB1MzIgY3RjaF9nZXRfbmV4dF9mZW5jZShzdHJ1Y3QgCj4+PmludGVsX2d1Y19jdF9j aGFubmVsICpjdGNoKQo+Pj5zdGF0aWMgaW50IGN0Yl93cml0ZShzdHJ1Y3QgaW50ZWxfZ3VjX2N0 X2J1ZmZlciAqY3RiLAo+Pj4JCSAgICAgY29uc3QgdTMyICphY3Rpb24sCj4+PgkJICAgICB1MzIg bGVuIC8qIGluIGR3b3JkcyAqLywKPj4+LQkJICAgICB1MzIgZmVuY2UsCj4+PisJCSAgICAgdTMy IGZlbmNlX3ZhbHVlLAo+Pj4rCQkgICAgIGJvb2wgZW5hYmxlX2ZlbmNlLAo+Pgo+Pm1heWJlIHdl IGNhbiBqdXN0IGd1YXJhbnRlZSB0aGF0IGZlbmNlPTAgd2lsbCBuZXZlciBiZSB1c2VkIGFzIGEg dmFsaWQKPj5mZW5jZSBpZCwgdGhlbiB0aGlzIGZsYWcgY291bGQgYmUgcmVwbGFjZWQgd2l0aCAo ZmVuY2UgIT0gMCkgY2hlY2suCj4+Cj4KPlllcywgYWdhaW4gc2VlbXMgcmVhc29uYWJsZS4gSW5p dGlhbGl6ZSBuZXh0X2ZlbmNlID0gMSwgdGhlbiBpbmNyZW1lbnQgYnkgMiBlYWNoCj50aW1lIGFu ZCB0aGlzIHdvcmtzLgo+Cj4+PgkJICAgICBib29sIHdhbnRfcmVzcG9uc2UpCj4+PnsKPj4+CXN0 cnVjdCBndWNfY3RfYnVmZmVyX2Rlc2MgKmRlc2MgPSBjdGItPmRlc2M7Cj4+PkBAIC0zMjgsMTgg KzMzNCwxOCBAQCBzdGF0aWMgaW50IGN0Yl93cml0ZShzdHJ1Y3QgCj4+PmludGVsX2d1Y19jdF9i dWZmZXIgKmN0YiwKPj4+CSAqIERXMis6IGFjdGlvbiBkYXRhCj4+PgkgKi8KPj4+CWhlYWRlciA9 IChsZW4gPDwgR1VDX0NUX01TR19MRU5fU0hJRlQpIHwKPj4+LQkJIChHVUNfQ1RfTVNHX1dSSVRF X0ZFTkNFX1RPX0RFU0MpIHwKPj4+KwkJIChlbmFibGVfZmVuY2UgPyBHVUNfQ1RfTVNHX1dSSVRF X0ZFTkNFX1RPX0RFU0MgOiAwKSB8Cj4+Cj4+SG1tLCBldmVuIGlmIHdlIGFzayBmdyB0byBkbyBu b3Qgd3JpdGUgYmFjayBmZW5jZSB0byB0aGUgZGVzY3JpcHRvciwKPj5JSVJDIGN1cnJlbnQgZmly bXdhcmUgd2lsbCB1bmNvbmRpdGlvbmFsbHkgd3JpdGUgYmFjayByZXR1cm4gc3RhdHVzCj4+b2Yg dGhpcyBub24tYmxvY2tpbmcgY2FsbCwgcG9zc2libHkgb3ZlcndyaXRpbmcgc3RhdHVzIG9mIHRo ZSBibG9ja2VkCj4+Y2FsbC4KPj4KPgo+WWVzLCBrbm93biBwcm9ibGVtIHdpdGggdGhlIGludGVy ZmFjZSB0aGF0IG5lZWRzIHRvIGJlIGZpeGVkLgo+Cj4+PgkJICh3YW50X3Jlc3BvbnNlID8gR1VD X0NUX01TR19TRU5EX1NUQVRVUyA6IDApIHwKPj4KPj5idHcsIGlmIHdlIHN3aXRjaCBhbGwgcmVx dWVzdHMgdG8gZXhwZWN0IHJlcGx5IHNlbmQgYmFjayBvdmVyIENUQiwKPj50aGVuIHdlIGNhbiBw b3NzaWJseSBkcm9wIHRoZSBzZW5kX211dGV4IGluIENUQiBwYXRocywgYW5kIGJsb2NrCj4+b25s eSB3aGVuIHRoZXJlIGlzIG5vIERPTlRfV0FJVCBmbGFnIGFuZCB3ZSBoYXZlIHRvIHdhaXQgZm9y IHJlc3BvbnNlLgo+Pgo+Cj5SYXRoZXIganVzdCB3YWl0IGZvciB0aGUgR3VDIHRvIGZpeCB0aGlz Lgo+Cj4+PgkJIChhY3Rpb25bMF0gPDwgR1VDX0NUX01TR19BQ1RJT05fU0hJRlQpOwo+Pj4JQ1Rf REVCVUdfRFJJVkVSKCJDVDogd3JpdGluZyAlKnBoICUqcGggJSpwaFxuIiwKPj4+LQkJCTQsICZo ZWFkZXIsIDQsICZmZW5jZSwKPj4+KwkJCTQsICZoZWFkZXIsIDQsICZmZW5jZV92YWx1ZSwKPj4+ CQkJNCAqIChsZW4gLSAxKSwgJmFjdGlvblsxXSk7Cj4+PgljbWRzW3RhaWxdID0gaGVhZGVyOwo+ Pj4JdGFpbCA9ICh0YWlsICsgMSkgJSBzaXplOwo+Pj4tCWNtZHNbdGFpbF0gPSBmZW5jZTsKPj4+ KwljbWRzW3RhaWxdID0gZmVuY2VfdmFsdWU7Cj4+Pgl0YWlsID0gKHRhaWwgKyAxKSAlIHNpemU7 Cj4+Pglmb3IgKGkgPSAxOyBpIDwgbGVuOyBpKyspIHsKPj4+QEAgLTQ0MCw2ICs0NDYsNDcgQEAg c3RhdGljIGludCB3YWl0X2Zvcl9jdF9yZXF1ZXN0X3VwZGF0ZShzdHJ1Y3QgCj4+PmN0X3JlcXVl c3QgKnJlcSwgdTMyICpzdGF0dXMpCj4+PglyZXR1cm4gZXJyOwo+Pj59Cj4+PitzdGF0aWMgaW5s aW5lIGJvb2wgY3RiX2hhc19yb29tKHN0cnVjdCBndWNfY3RfYnVmZmVyX2Rlc2MgKmRlc2MsIAo+ Pj51MzIgbGVuKQo+Pj4rewo+Pj4rCXUzMiBoZWFkID0gUkVBRF9PTkNFKGRlc2MtPmhlYWQpOwo+ Pj4rCXUzMiBzcGFjZTsKPj4+Kwo+Pj4rCXNwYWNlID0gQ0lSQ19TUEFDRShkZXNjLT50YWlsLCBo ZWFkLCBkZXNjLT5zaXplKTsKPj4+Kwo+Pj4rCXJldHVybiBzcGFjZSA+PSBsZW47Cj4+Pit9Cj4+ PisKPj4+K2ludCBpbnRlbF9ndWNfc2VuZF9uYihzdHJ1Y3QgaW50ZWxfZ3VjX2N0ICpjdCwKPj4+ KwkJICAgICAgY29uc3QgdTMyICphY3Rpb24sCj4+PisJCSAgICAgIHUzMiBsZW4pCj4+Pit7Cj4+ PisJc3RydWN0IGludGVsX2d1Y19jdF9jaGFubmVsICpjdGNoID0gJmN0LT5ob3N0X2NoYW5uZWw7 Cj4+PisJc3RydWN0IGludGVsX2d1Y19jdF9idWZmZXIgKmN0YiA9ICZjdGNoLT5jdGJzW0NUQl9T RU5EXTsKPj4+KwlzdHJ1Y3QgZ3VjX2N0X2J1ZmZlcl9kZXNjICpkZXNjID0gY3RiLT5kZXNjOwo+ Pj4rCWludCBlcnI7Cj4+PisKPj4+KwlHRU1fQlVHX09OKCFjdGNoLT5lbmFibGVkKTsKPj4+KwlH RU1fQlVHX09OKCFsZW4pOwo+Pj4rCUdFTV9CVUdfT04obGVuICYgfkdVQ19DVF9NU0dfTEVOX01B U0spOwo+Pj4rCWxvY2tkZXBfYXNzZXJ0X2hlbGQoJmN0LT5zZW5kX2xvY2spOwo+Pgo+PmhtbSwg ZG9lcyBpdCBtZWFuIHRoYXQgbm93IGl0J3MgY2FsbGVyIHJlc3BvbnNpYmlsaXR5IHRvIHNwaW5s b2NrCj4+b24gQ1QgcHJpdmF0ZSBsb2NrID8gVGhhdCBpcyBub3QgaG93IG90aGVyIGd1Y19zZW5k KCkgZnVuY3Rpb25zIHdvcmsuCj4+Cj4KPlllcywgdGhhdCBob3cgSSB3b3VsZCBsaWtlIHRoaXMg d29yayBhcyBJIGZlZWwgbGlrZSBpdCBnaXZlcyBtb3JlIGZsZXhhYmlsaXR5IHRvCj50aGUgY2Fs bGVyIG9uIHRoZSAtRUJVU1kgY2FzZS4gVGhlIGNhbGxlciBjYW4gY2FsbCBpbnRlbF9ndWNfc2Vu ZF9uYiBhZ2FpbiB3aGlsZQo+c3RpbGwgaG9sZGluZyB0aGUgbG9jayBvciBpdCByZWxlYXNlIGxv Y2sgdGhlIGFuZCB1c2UgYSBkaWZmZXJlbnQgZm9ybSBvZiBmbG93Cj5jb250cm9sLiBQZXJoYXBz IGxvY2tpbmcgLyB1bmxvY2tpbmcgc2hvdWxkIGJlIGV4cG9zZWQgdmlhIHN0YXRpYyBpbmxpbmVz IHJhdGhlcgo+dGhhbiB0aGUgY2FsbGVyIGRpcmVjdGx5IG1hbmlwdWxhdGluZyB0aGUgbG9jaz8K Pgo+Pj4rCj4+PisJaWYgKHVubGlrZWx5KCFjdGJfaGFzX3Jvb20oZGVzYywgKGxlbiArIDEpICog NCkpKSB7Cj4+PisJCWN0LT5yZXRyeSsrOwo+Pj4rCQlpZiAoY3QtPnJldHJ5ID49IE1BWF9SRVRS WSkKPj4+KwkJCXJldHVybiAtRURFQURMSzsKPj4+KwkJZWxzZQo+Pj4rCQkJcmV0dXJuIC1FQlVT WTsKPj4+Kwl9Cj4+PisKPj4+KwljdC0+cmV0cnkgPSAwOwo+Pj4rCWVyciA9IGN0Yl93cml0ZShj dGIsIGFjdGlvbiwgbGVuLCAwLCBmYWxzZSwgZmFsc2UpOwo+Pj4rCWlmICh1bmxpa2VseShlcnIp KQo+Pj4rCQlyZXR1cm4gZXJyOwo+Pj4rCj4+PisJaW50ZWxfZ3VjX25vdGlmeShjdF90b19ndWMo Y3QpKTsKPj4+KwlyZXR1cm4gMDsKPj4+K30KPj4+Kwo+Pj5zdGF0aWMgaW50IGN0Y2hfc2VuZChz dHJ1Y3QgaW50ZWxfZ3VjX2N0ICpjdCwKPj4+CQkgICAgIHN0cnVjdCBpbnRlbF9ndWNfY3RfY2hh bm5lbCAqY3RjaCwKPj4+CQkgICAgIGNvbnN0IHUzMiAqYWN0aW9uLAo+Pj5AQCAtNDYwLDE3ICs1 MDcsMzUgQEAgc3RhdGljIGludCBjdGNoX3NlbmQoc3RydWN0IGludGVsX2d1Y19jdCAqY3QsCj4+ PglHRU1fQlVHX09OKGxlbiAmIH5HVUNfQ1RfTVNHX0xFTl9NQVNLKTsKPj4+CUdFTV9CVUdfT04o IXJlc3BvbnNlX2J1ZiAmJiByZXNwb25zZV9idWZfc2l6ZSk7Cj4+PisJLyoKPj4+KwkgKiBXZSB1 c2UgYSBsYXp5IHNwaW4gd2FpdCBsb29wIGhlcmUgYXMgd2UgYmVsaWV2ZSB0aGF0IGlmIHRoZSBD VAo+Pj4rCSAqIGJ1ZmZlcnMgYXJlIHNpemVkIGNvcnJlY3RseSB0aGUgZmxvdyBjb250cm9sIGNv bmRpdGlvbiBzaG91bGQgYmUKPj4+KwkgKiByYXJlLgo+Pj4rCSAqLwo+Pj4rcmV0cnk6Cj4+PisJ c3Bpbl9sb2NrX2lycXNhdmUoJmN0LT5zZW5kX2xvY2ssIGZsYWdzKTsKPj4+KwlpZiAodW5saWtl bHkoIWN0Yl9oYXNfcm9vbShkZXNjLCAobGVuICsgMSkgKiA0KSkpIHsKPj4+KwkJc3Bpbl91bmxv Y2tfaXJxcmVzdG9yZSgmY3QtPnNlbmRfbG9jaywgZmxhZ3MpOwo+Pj4rCQljdC0+cmV0cnkrKzsK Pj4+KwkJaWYgKGN0LT5yZXRyeSA+PSBNQVhfUkVUUlkpCj4+PisJCQlyZXR1cm4gLUVERUFETEs7 Cj4+Cj4+SSdtIG5vdCBzdXJlIHdoYXQncyBiZXR0ZXI6IGhhdmUgc2VjcmV0IGRlYWRsb2NrIGhh cmQgdG8gcmVwcm9kdWNlLAo+Pm9yIGRlYWRsb2NrcyBlYXNpZXIgdG8gY2F0Y2ggdGhhdCBoZWxw cyBpbXByb3ZlIHRvIGJlIGRlYWRsb2NrLWNsZWFuCj4+Cj4KPlRoaXMgaXMgY292ZXJpbmcgdGhl IGNhc2Ugd2hlcmUgdGhlIGhhcyBkaWVkIGFuZCB0byBhdm9pZCBkZWFkbG9jay4gRXZlbnR1YWxs eQo+d2Ugd2lsbCBoYXZlIHNvbWUgR3VDIGhlYWx0aCBjaGVjayBjb2RlIHRoYXQgd2lsbCB0cmln Z2VyIGEgZnVsbCBHUFUgcmVzZXQgaWYKPnRoZSBHdUMgaGFzIGRpZWQuIFdlIG5lZWQgYSB3YXkg Zm9yIGNvZGUgc3Bpbm5pbmcgb24gdGhlIENUQnMgdG8gZXhpdC4KPgo+SSd2ZSBhbHJlYWR5IHR3 ZWFrZWQgdGhpcyBjb2RlIGxvY2FsbHkgYSBiaXQgdG8gdXNlIGFuIGF0b21pYyB0b28gd2l0aCB0 aGUgaWRlYQo+YmVpbmcgdGhlIEd1QyBoZWFsdGggY2hlY2sgY29kZSBjYW4gc2V0IHRoaXMgdmFs dWUgdG8gaGF2ZSBhbGwgY29kZSBzcGlubmluZyBvbgo+Q1RCcyBpbW1lZGlhdGVseSByZXR1cm4g LS1FREVBRExLIHdoZW4gdGhlIEd1QyBoYXMgZGllZC4KPgo+Pj4rCQljcHVfcmVsYXgoKTsKPj4+ KwkJZ290byByZXRyeTsKPj4+Kwl9Cj4+PisKPj4+KwljdC0+cmV0cnkgPSAwOwo+Pj4JZmVuY2Ug PSBjdGNoX2dldF9uZXh0X2ZlbmNlKGN0Y2gpOwo+Pj4JcmVxdWVzdC5mZW5jZSA9IGZlbmNlOwo+ Pj4JcmVxdWVzdC5zdGF0dXMgPSAwOwo+Pj4JcmVxdWVzdC5yZXNwb25zZV9sZW4gPSByZXNwb25z ZV9idWZfc2l6ZTsKPj4+CXJlcXVlc3QucmVzcG9uc2VfYnVmID0gcmVzcG9uc2VfYnVmOwo+Pj4t CXNwaW5fbG9ja19pcnFzYXZlKCZjdC0+bG9jaywgZmxhZ3MpOwo+Pj4rCXNwaW5fbG9jaygmY3Qt PnJlcXVlc3RfbG9jayk7Cj4+PglsaXN0X2FkZF90YWlsKCZyZXF1ZXN0LmxpbmssICZjdC0+cGVu ZGluZ19yZXF1ZXN0cyk7Cj4+Pi0Jc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmY3QtPmxvY2ssIGZs YWdzKTsKPj4+KwlzcGluX3VubG9jaygmY3QtPnJlcXVlc3RfbG9jayk7Cj4+Pi0JZXJyID0gY3Ri X3dyaXRlKGN0YiwgYWN0aW9uLCBsZW4sIGZlbmNlLCAhIXJlc3BvbnNlX2J1Zik7Cj4+PisJZXJy ID0gY3RiX3dyaXRlKGN0YiwgYWN0aW9uLCBsZW4sIGZlbmNlLCB0cnVlLCAhIXJlc3BvbnNlX2J1 Zik7Cj4+PisJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmY3QtPnNlbmRfbG9jaywgZmxhZ3MpOwo+ Pj4JaWYgKHVubGlrZWx5KGVycikpCj4+PgkJZ290byB1bmxpbms7Cj4+PkBAIC01MDEsOSArNTY2 LDkgQEAgc3RhdGljIGludCBjdGNoX3NlbmQoc3RydWN0IGludGVsX2d1Y19jdCAqY3QsCj4+Pgl9 Cj4+PnVubGluazoKPj4+LQlzcGluX2xvY2tfaXJxc2F2ZSgmY3QtPmxvY2ssIGZsYWdzKTsKPj4+ KwlzcGluX2xvY2tfaXJxc2F2ZSgmY3QtPnJlcXVlc3RfbG9jaywgZmxhZ3MpOwo+Pj4JbGlzdF9k ZWwoJnJlcXVlc3QubGluayk7Cj4+Pi0Jc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmY3QtPmxvY2ss IGZsYWdzKTsKPj4+KwlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZjdC0+cmVxdWVzdF9sb2NrLCBm bGFncyk7Cj4+PglyZXR1cm4gZXJyOwo+Pj59Cj4+PkBAIC02NTMsNyArNzE4LDcgQEAgc3RhdGlj IGludCBjdF9oYW5kbGVfcmVzcG9uc2Uoc3RydWN0IAo+Pj5pbnRlbF9ndWNfY3QgKmN0LCBjb25z dCB1MzIgKm1zZykKPj4+CUNUX0RFQlVHX0RSSVZFUigiQ1Q6IHJlc3BvbnNlIGZlbmNlICV1IHN0 YXR1cyAlI3hcbiIsIGZlbmNlLCBzdGF0dXMpOwo+Pj4tCXNwaW5fbG9jaygmY3QtPmxvY2spOwo+ Pj4rCXNwaW5fbG9jaygmY3QtPnJlcXVlc3RfbG9jayk7Cj4+PglsaXN0X2Zvcl9lYWNoX2VudHJ5 KHJlcSwgJmN0LT5wZW5kaW5nX3JlcXVlc3RzLCBsaW5rKSB7Cj4+PgkJaWYgKHVubGlrZWx5KGZl bmNlICE9IHJlcS0+ZmVuY2UpKSB7Cj4+PgkJCUNUX0RFQlVHX0RSSVZFUigiQ1Q6IHJlcXVlc3Qg JXUgYXdhaXRzIHJlc3BvbnNlXG4iLAo+Pj5AQCAtNjcyLDcgKzczNyw3IEBAIHN0YXRpYyBpbnQg Y3RfaGFuZGxlX3Jlc3BvbnNlKHN0cnVjdCAKPj4+aW50ZWxfZ3VjX2N0ICpjdCwgY29uc3QgdTMy ICptc2cpCj4+PgkJZm91bmQgPSB0cnVlOwo+Pj4JCWJyZWFrOwo+Pj4JfQo+Pj4tCXNwaW5fdW5s b2NrKCZjdC0+bG9jayk7Cj4+PisJc3Bpbl91bmxvY2soJmN0LT5yZXF1ZXN0X2xvY2spOwo+Pj4J aWYgKCFmb3VuZCkKPj4+CQlEUk1fRVJST1IoIkNUOiB1bnNvbGljaXRlZCByZXNwb25zZSAlKnBo XG4iLCA0ICogbXNnbGVuLCBtc2cpOwo+Pj5AQCAtNzEwLDEzICs3NzUsMTMgQEAgc3RhdGljIGJv b2wgCj4+PmN0X3Byb2Nlc3NfaW5jb21pbmdfcmVxdWVzdHMoc3RydWN0IGludGVsX2d1Y19jdCAq Y3QpCj4+Pgl1MzIgKnBheWxvYWQ7Cj4+Pglib29sIGRvbmU7Cj4+Pi0Jc3Bpbl9sb2NrX2lycXNh dmUoJmN0LT5sb2NrLCBmbGFncyk7Cj4+PisJc3Bpbl9sb2NrX2lycXNhdmUoJmN0LT5yZXF1ZXN0 X2xvY2ssIGZsYWdzKTsKPj4+CXJlcXVlc3QgPSBsaXN0X2ZpcnN0X2VudHJ5X29yX251bGwoJmN0 LT5pbmNvbWluZ19yZXF1ZXN0cywKPj4+CQkJCQkgICBzdHJ1Y3QgY3RfaW5jb21pbmdfcmVxdWVz dCwgbGluayk7Cj4+PglpZiAocmVxdWVzdCkKPj4+CQlsaXN0X2RlbCgmcmVxdWVzdC0+bGluayk7 Cj4+Pglkb25lID0gISFsaXN0X2VtcHR5KCZjdC0+aW5jb21pbmdfcmVxdWVzdHMpOwo+Pj4tCXNw aW5fdW5sb2NrX2lycXJlc3RvcmUoJmN0LT5sb2NrLCBmbGFncyk7Cj4+PisJc3Bpbl91bmxvY2tf aXJxcmVzdG9yZSgmY3QtPnJlcXVlc3RfbG9jaywgZmxhZ3MpOwo+Pj4JaWYgKCFyZXF1ZXN0KQo+ Pj4JCXJldHVybiB0cnVlOwo+Pj5AQCAtNzc3LDkgKzg0Miw5IEBAIHN0YXRpYyBpbnQgY3RfaGFu ZGxlX3JlcXVlc3Qoc3RydWN0IAo+Pj5pbnRlbF9ndWNfY3QgKmN0LCBjb25zdCB1MzIgKm1zZykK Pj4+CX0KPj4+CW1lbWNweShyZXF1ZXN0LT5tc2csIG1zZywgNCAqIG1zZ2xlbik7Cj4+Pi0Jc3Bp bl9sb2NrX2lycXNhdmUoJmN0LT5sb2NrLCBmbGFncyk7Cj4+PisJc3Bpbl9sb2NrX2lycXNhdmUo JmN0LT5yZXF1ZXN0X2xvY2ssIGZsYWdzKTsKPj4+CWxpc3RfYWRkX3RhaWwoJnJlcXVlc3QtPmxp bmssICZjdC0+aW5jb21pbmdfcmVxdWVzdHMpOwo+Pj4tCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUo JmN0LT5sb2NrLCBmbGFncyk7Cj4+PisJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmY3QtPnJlcXVl c3RfbG9jaywgZmxhZ3MpOwo+Pj4JcXVldWVfd29yayhzeXN0ZW1fdW5ib3VuZF93cSwgJmN0LT53 b3JrZXIpOwo+Pj4JcmV0dXJuIDA7Cj4+PmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9ndC91Yy9pbnRlbF9ndWNfY3QuaCAKPj4+Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC91Yy9p bnRlbF9ndWNfY3QuaAo+Pj5pbmRleCA3YzI0ZDgzZjVjMjQuLmJjNjcwYTc5NmJkOCAxMDA2NDQK Pj4+LS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvdWMvaW50ZWxfZ3VjX2N0LmgKPj4+Kysr IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvdWMvaW50ZWxfZ3VjX2N0LmgKPj4+QEAgLTYyLDgg KzYyLDExIEBAIHN0cnVjdCBpbnRlbF9ndWNfY3Qgewo+Pj4Jc3RydWN0IGludGVsX2d1Y19jdF9j aGFubmVsIGhvc3RfY2hhbm5lbDsKPj4+CS8qIG90aGVyIGNoYW5uZWxzIGFyZSB0YmQgKi8KPj4+ LQkvKiogQGxvY2s6IHByb3RlY3RzIHBlbmRpbmcgcmVxdWVzdHMgbGlzdCAqLwo+Pj4tCXNwaW5s b2NrX3QgbG9jazsKPj4+KwkvKiogQHJlcXVlc3RfbG9jazogcHJvdGVjdHMgcGVuZGluZyByZXF1 ZXN0cyBsaXN0ICovCj4+PisJc3BpbmxvY2tfdCByZXF1ZXN0X2xvY2s7Cj4+PisKPj4+KwkvKiog QHNlbmRfbG9jazogcHJvdGVjdHMgaDJnIGNoYW5uZWwgKi8KPj4+KwlzcGlubG9ja190IHNlbmRf bG9jazsKPj4+CS8qKiBAcGVuZGluZ19yZXF1ZXN0czogbGlzdCBvZiByZXF1ZXN0cyB3YWl0aW5n IGZvciByZXNwb25zZSAqLwo+Pj4Jc3RydWN0IGxpc3RfaGVhZCBwZW5kaW5nX3JlcXVlc3RzOwo+ Pj5AQCAtNzMsNiArNzYsOSBAQCBzdHJ1Y3QgaW50ZWxfZ3VjX2N0IHsKPj4+CS8qKiBAd29ya2Vy OiB3b3JrZXIgZm9yIGhhbmRsaW5nIGluY29taW5nIHJlcXVlc3RzICovCj4+PglzdHJ1Y3Qgd29y a19zdHJ1Y3Qgd29ya2VyOwo+Pj4rCj4+PisJLyoqIEByZXRyeTogdGhlIG51bWJlciBvZiB0aW1l cyBhIEgyRyBDVEIgaGFzIGJlZW4gcmV0cmllZCAqLwo+Pj4rCXUzMiByZXRyeTsKPj4+fTsKPj4+ dm9pZCBpbnRlbF9ndWNfY3RfaW5pdF9lYXJseShzdHJ1Y3QgaW50ZWxfZ3VjX2N0ICpjdCk7Cj4+ X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPj5JbnRlbC1n ZnggbWFpbGluZyBsaXN0Cj4+SW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+Pmh0dHBz Oi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cj5fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+SW50ZWwtZ2Z4IG1h aWxpbmcgbGlzdAo+SW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+aHR0cHM6Ly9saXN0 cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngKX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlz dApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0 b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4