From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: Re: [PATCH 13/16] drm/i915: Add selftests for i915_gem_request Date: Fri, 9 Dec 2016 15:51:12 +0000 Message-ID: <0e080907-6caa-af59-efaf-e2f19f910318@linux.intel.com> References: <20161207135833.32740-1-chris@chris-wilson.co.uk> <20161207135833.32740-14-chris@chris-wilson.co.uk> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by gabe.freedesktop.org (Postfix) with ESMTPS id 05E576EA30 for ; Fri, 9 Dec 2016 15:51:16 +0000 (UTC) In-Reply-To: <20161207135833.32740-14-chris@chris-wilson.co.uk> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Chris Wilson , intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org Ck9uIDA3LzEyLzIwMTYgMTM6NTgsIENocmlzIFdpbHNvbiB3cm90ZToKPiBTaW1wbGUgc3RhcnRp bmcgcG9pbnQgZm9yIGFkZGluZyBzZWx0ZXN0cyBmb3IgaTkxNV9nZW1fcmVxdWVzdCwgZmlyc3QK PiBtb2NrIGEgZGV2aWNlICh3aXRoIGVuZ2luZXMgYW5kIGNvbnRleHRzKSB0aGF0IGFsbG93cyB1 cyB0byBjb25zdHJ1Y3QKPiBhbmQgZXhlY3V0ZSBhIHJlcXVlc3QsIGFsb25nIHdpdGggd2FpdGlu ZyBmb3IgdGhlIHJlcXVlc3QgdG8gY29tcGxldGUuCj4KPiBTaWduZWQtb2ZmLWJ5OiBDaHJpcyBX aWxzb24gPGNocmlzQGNocmlzLXdpbHNvbi5jby51az4KPiAtLS0KPiAgZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9nZW1fcmVxdWVzdC5jICAgIHwgNDAyICsrKysrKysrKysrKysrKysrKysrKysr KysrKysrCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfbW9ja19zZWxmdGVzdHMuaCB8ICAg MSArCj4gIDIgZmlsZXMgY2hhbmdlZCwgNDAzIGluc2VydGlvbnMoKykKPgo+IGRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9yZXF1ZXN0LmMgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2dlbV9yZXF1ZXN0LmMKPiBpbmRleCA4ODFiZWQ1MzQ3ZmIuLjY1NTM0NTdh ZGM3NyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9yZXF1ZXN0 LmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9yZXF1ZXN0LmMKPiBAQCAt MTIwOCwzICsxMjA4LDQwNSBAQCB2b2lkIGk5MTVfZ2VtX3JldGlyZV9yZXF1ZXN0cyhzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gIAlmb3JfZWFjaF9lbmdpbmUoZW5naW5lLCBk ZXZfcHJpdiwgaWQpCj4gIAkJZW5naW5lX3JldGlyZV9yZXF1ZXN0cyhlbmdpbmUpOwo+ICB9Cj4g Kwo+ICsjaWYgSVNfRU5BQkxFRChDT05GSUdfRFJNX0k5MTVfU0VMRlRFU1QpCj4gKyNpbmNsdWRl ICJpOTE1X3NlbGZ0ZXN0LmgiCj4gKwo+ICtzdHJ1Y3QgbW9ja19lbmdpbmUgewo+ICsJc3RydWN0 IGludGVsX2VuZ2luZV9jcyBiYXNlOwo+ICsKPiArCXNwaW5sb2NrX3QgaHdfbG9jazsKPiArCXN0 cnVjdCBsaXN0X2hlYWQgaHdfcXVldWU7Cj4gKwlzdHJ1Y3QgdGltZXJfbGlzdCBod19kZWxheTsK PiArfTsKPiArCj4gK3N0cnVjdCBtb2NrX3JlcXVlc3Qgewo+ICsJc3RydWN0IGRybV9pOTE1X2dl bV9yZXF1ZXN0IGJhc2U7Cj4gKwo+ICsJc3RydWN0IGxpc3RfaGVhZCBsaW5rOwo+ICsJdW5zaWdu ZWQgbG9uZyBkZWxheTsKPiArfTsKPiArCj4gK3N0YXRpYyB2b2lkIG1vY2tfc2Vxbm9fYWR2YW5j ZShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUsIHUzMiBzZXFubykKPiArewo+ICsJaW50 ZWxfd3JpdGVfc3RhdHVzX3BhZ2UoZW5naW5lLCBJOTE1X0dFTV9IV1NfSU5ERVgsIHNlcW5vKTsK PiArCWludGVsX2VuZ2luZV93YWtldXAoZW5naW5lKTsKPiArfQo+ICsKPiArc3RhdGljIHZvaWQg aHdfZGVsYXlfY29tcGxldGUodW5zaWduZWQgbG9uZyBkYXRhKQo+ICt7Cj4gKwlzdHJ1Y3QgbW9j a19lbmdpbmUgKmVuZ2luZSA9ICh0eXBlb2YoZW5naW5lKSlkYXRhOwo+ICsJc3RydWN0IG1vY2tf cmVxdWVzdCAqcmVxdWVzdDsKPiArCj4gKwlzcGluX2xvY2soJmVuZ2luZS0+aHdfbG9jayk7Cj4g KwlyZXF1ZXN0ID0gbGlzdF9maXJzdF9lbnRyeV9vcl9udWxsKCZlbmdpbmUtPmh3X3F1ZXVlLAo+ ICsJCQkJCSAgIHR5cGVvZigqcmVxdWVzdCksCj4gKwkJCQkJICAgbGluayk7Cj4gKwlpZiAocmVx dWVzdCkgewo+ICsJCWxpc3RfZGVsKCZyZXF1ZXN0LT5saW5rKTsKPiArCQltb2NrX3NlcW5vX2Fk dmFuY2UoJmVuZ2luZS0+YmFzZSwgcmVxdWVzdC0+YmFzZS5nbG9iYWxfc2Vxbm8pOwo+ICsJfQo+ ICsKPiArCXJlcXVlc3QgPSBsaXN0X2ZpcnN0X2VudHJ5X29yX251bGwoJmVuZ2luZS0+aHdfcXVl dWUsCj4gKwkJCQkJICAgdHlwZW9mKCpyZXF1ZXN0KSwKPiArCQkJCQkgICBsaW5rKTsKPiArCWlm IChyZXF1ZXN0KQo+ICsJCW1vZF90aW1lcigmZW5naW5lLT5od19kZWxheSwgamlmZmllcyArIHJl cXVlc3QtPmRlbGF5KTsKPiArCXNwaW5fdW5sb2NrKCZlbmdpbmUtPmh3X2xvY2spOwo+ICt9Cj4g Kwo+ICtzdGF0aWMgdm9pZCBtb2NrX2VuZ2luZV9mbHVzaChzdHJ1Y3QgaW50ZWxfZW5naW5lX2Nz ICplbmdpbmUpCj4gK3sKPiArCXN0cnVjdCBtb2NrX2VuZ2luZSAqbW9jayA9Cj4gKwkJY29udGFp bmVyX29mKGVuZ2luZSwgdHlwZW9mKCptb2NrKSwgYmFzZSk7Cj4gKwlzdHJ1Y3QgbW9ja19yZXF1 ZXN0ICpyZXF1ZXN0LCAqcm47Cj4gKwo+ICsJZGVsX3RpbWVyX3N5bmMoJm1vY2stPmh3X2RlbGF5 KTsKPiArCj4gKwlzcGluX2xvY2tfaXJxKCZtb2NrLT5od19sb2NrKTsKPiArCWxpc3RfZm9yX2Vh Y2hfZW50cnlfc2FmZShyZXF1ZXN0LCBybiwgJm1vY2stPmh3X3F1ZXVlLCBsaW5rKSB7Cj4gKwkJ bGlzdF9kZWxfaW5pdCgmcmVxdWVzdC0+bGluayk7Cj4gKwkJbW9ja19zZXFub19hZHZhbmNlKCZt b2NrLT5iYXNlLCByZXF1ZXN0LT5iYXNlLmdsb2JhbF9zZXFubyk7Cj4gKwl9Cj4gKwlzcGluX3Vu bG9ja19pcnEoJm1vY2stPmh3X2xvY2spOwo+ICt9Cj4gKwo+ICtzdGF0aWMgaW50IG1vY2tfY29u dGV4dF9waW4oc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lLAo+ICsJCQkgICAgc3RydWN0 IGk5MTVfZ2VtX2NvbnRleHQgKmN0eCkKPiArewo+ICsJaTkxNV9nZW1fY29udGV4dF9nZXQoY3R4 KTsKPiArCXJldHVybiAwOwo+ICt9Cj4gKwo+ICtzdGF0aWMgdm9pZCBtb2NrX2NvbnRleHRfdW5w aW4oc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lLAo+ICsJCQkgICAgICAgc3RydWN0IGk5 MTVfZ2VtX2NvbnRleHQgKmN0eCkKPiArewo+ICsJaTkxNV9nZW1fY29udGV4dF9wdXQoY3R4KTsK PiArfQo+ICsKPiArc3RhdGljIGludCBtb2NrX3JlcXVlc3RfYWxsb2Moc3RydWN0IGRybV9pOTE1 X2dlbV9yZXF1ZXN0ICpyZXF1ZXN0KQo+ICt7Cj4gKwlyZXF1ZXN0LT5yaW5nID0gcmVxdWVzdC0+ ZW5naW5lLT5idWZmZXI7Cj4gKwlyZXR1cm4gMDsKPiArfQo+ICsKPiArc3RhdGljIGludCBtb2Nr X2VtaXRfZmx1c2goc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXF1ZXN0LAo+ICsJCQkg ICB1bnNpZ25lZCBpbnQgZmxhZ3MpCj4gK3sKPiArCXJldHVybiAwOwo+ICt9Cj4gKwo+ICtzdGF0 aWMgdm9pZCBtb2NrX2VtaXRfYnJlYWRjcnVtYihzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3Qg KnJlcXVlc3QsCj4gKwkJCQkgdTMyICpmbGFncykKPiArewo+ICt9Cj4gKwo+ICtzdGF0aWMgdm9p ZCBtb2NrX3N1Ym1pdF9yZXF1ZXN0KHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxdWVz dCkKPiArewo+ICsJc3RydWN0IG1vY2tfcmVxdWVzdCAqbW9jayA9IGNvbnRhaW5lcl9vZihyZXF1 ZXN0LCB0eXBlb2YoKm1vY2spLCBiYXNlKTsKPiArCXN0cnVjdCBtb2NrX2VuZ2luZSAqZW5naW5l ID0KPiArCQljb250YWluZXJfb2YocmVxdWVzdC0+ZW5naW5lLCB0eXBlb2YoKmVuZ2luZSksIGJh c2UpOwo+ICsKPiArCWk5MTVfZ2VtX3JlcXVlc3Rfc3VibWl0KHJlcXVlc3QpOwo+ICsKPiArCXNw aW5fbG9ja19pcnEoJmVuZ2luZS0+aHdfbG9jayk7Cj4gKwlsaXN0X2FkZF90YWlsKCZtb2NrLT5s aW5rLCAmZW5naW5lLT5od19xdWV1ZSk7Cj4gKwlpZiAobGlzdF9maXJzdF9lbnRyeSgmZW5naW5l LT5od19xdWV1ZSwgdHlwZW9mKCptb2NrKSwgbGluaykgPT0gbW9jaykKPiArCQltb2RfdGltZXIo JmVuZ2luZS0+aHdfZGVsYXksIGppZmZpZXMgKyBtb2NrLT5kZWxheSk7Cj4gKwlzcGluX3VubG9j a19pcnEoJmVuZ2luZS0+aHdfbG9jayk7Cj4gK30KPiArCj4gK3N0YXRpYyBzdHJ1Y3QgZHJtX2k5 MTVfZ2VtX3JlcXVlc3QgKgo+ICttb2NrX3JlcXVlc3Qoc3RydWN0IGludGVsX2VuZ2luZV9jcyAq ZW5naW5lLAo+ICsJICAgICBzdHJ1Y3QgaTkxNV9nZW1fY29udGV4dCAqY29udGV4dCwKPiArCSAg ICAgdW5zaWduZWQgbG9uZyBkZWxheSkKPiArewo+ICsJc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1 ZXN0ICpyZXF1ZXN0Owo+ICsJc3RydWN0IG1vY2tfcmVxdWVzdCAqbW9jazsKPiArCj4gKwlyZXF1 ZXN0ID0gaTkxNV9nZW1fcmVxdWVzdF9hbGxvYyhlbmdpbmUsIGNvbnRleHQpOwo+ICsJaWYgKCFy ZXF1ZXN0KQo+ICsJCXJldHVybiBOVUxMOwo+ICsKPiArCW1vY2sgPSBjb250YWluZXJfb2YocmVx dWVzdCwgdHlwZW9mKCptb2NrKSwgYmFzZSk7Cj4gKwlJTklUX0xJU1RfSEVBRCgmbW9jay0+bGlu ayk7Cj4gKwltb2NrLT5kZWxheSA9IGRlbGF5OwoKSG93IGFib3V0IGp1c3Q6Cgptb2NrID0gKHN0 cnVjdCBtb2NrX3JlcXVlc3QgKilpOTE1X2dlbV9yZXF1ZXN0X2FsbG9jKC4uLikKCj8KCkJvdGgg dmVyc2lvbnMgYXJlIGVxdWFsbHkgY29uZnVzaW5nIHVudGlsIHRoZSByZWFkZXIgZmlndXJlcyBv dXQgdGhlIAprbWVtIGNhY2hlIHNpemUgaXMgY29ycmVjdC4gRG9lc24ndCBtYXR0ZXIgcmVhbGx5 LCBqdXN0IHRoaW5raW5nIG91dCAKbG91ZC4gOikKCj4gKwo+ICsJcmV0dXJuICZtb2NrLT5iYXNl Owo+ICt9Cj4gKwo+ICtzdGF0aWMgc3RydWN0IGludGVsX3JpbmcgKm1vY2tfcmluZyhzdHJ1Y3Qg aW50ZWxfZW5naW5lX2NzICplbmdpbmUpCj4gK3sKPiArCXN0cnVjdCBpbnRlbF9yaW5nICpyaW5n Owo+ICsKPiArCXJpbmcgPSBremFsbG9jKHNpemVvZigqcmluZykgKyA0MDk2LCBHRlBfS0VSTkVM KTsKPiArCWlmICghcmluZykKPiArCQlyZXR1cm4gTlVMTDsKPiArCj4gKwlyaW5nLT5lbmdpbmUg PSBlbmdpbmU7Cj4gKwlyaW5nLT5zaXplID0gNDA5NjsKPiArCXJpbmctPmVmZmVjdGl2ZV9zaXpl ID0gcmluZy0+c2l6ZTsKPiArCXJpbmctPnZhZGRyID0gKHZvaWQgKikocmluZyArIDEpOwo+ICsK PiArCUlOSVRfTElTVF9IRUFEKCZyaW5nLT5yZXF1ZXN0X2xpc3QpOwo+ICsJcmluZy0+bGFzdF9y ZXRpcmVkX2hlYWQgPSAtMTsKPiArCWludGVsX3JpbmdfdXBkYXRlX3NwYWNlKHJpbmcpOwo+ICsK PiArCXJldHVybiByaW5nOwo+ICt9Cj4gKwo+ICtzdGF0aWMgc3RydWN0IGludGVsX2VuZ2luZV9j cyAqbW9ja19lbmdpbmUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsCj4gKwkJCQkJICAg Y29uc3QgY2hhciAqbmFtZSkKPiArewo+ICsJc3RydWN0IG1vY2tfZW5naW5lICplbmdpbmU7Cj4g KwlzdGF0aWMgaW50IGlkOwo+ICsKPiArCWVuZ2luZSA9IGt6YWxsb2Moc2l6ZW9mKCplbmdpbmUp ICsgNDA5NiwgR0ZQX0tFUk5FTCk7Cj4gKwlpZiAoIWVuZ2luZSkKPiArCQlyZXR1cm4gTlVMTDsK PiArCj4gKwllbmdpbmUtPmJhc2UuYnVmZmVyID0gbW9ja19yaW5nKCZlbmdpbmUtPmJhc2UpOwo+ ICsJaWYgKCFlbmdpbmUtPmJhc2UuYnVmZmVyKSB7Cj4gKwkJa2ZyZWUoZW5naW5lKTsKPiArCQly ZXR1cm4gTlVMTDsKPiArCX0KPiArCj4gKwkvKiBtaW5pbWFsIGVuZ2luZSBzZXR1cCBmb3IgcmVx dWVzdHMgKi8KPiArCWVuZ2luZS0+YmFzZS5pOTE1ID0gaTkxNTsKPiArCWVuZ2luZS0+YmFzZS5u YW1lID0gbmFtZTsKPiArCWVuZ2luZS0+YmFzZS5pZCA9IGlkKys7Cj4gKwllbmdpbmUtPmJhc2Uu c3RhdHVzX3BhZ2UucGFnZV9hZGRyID0gKHZvaWQgKikoZW5naW5lICsgMSk7Cj4gKwo+ICsJZW5n aW5lLT5iYXNlLmNvbnRleHRfcGluID0gbW9ja19jb250ZXh0X3BpbjsKPiArCWVuZ2luZS0+YmFz ZS5jb250ZXh0X3VucGluID0gbW9ja19jb250ZXh0X3VucGluOwo+ICsJZW5naW5lLT5iYXNlLnJl cXVlc3RfYWxsb2MgPSBtb2NrX3JlcXVlc3RfYWxsb2M7Cj4gKwllbmdpbmUtPmJhc2UuZW1pdF9m bHVzaCA9IG1vY2tfZW1pdF9mbHVzaDsKPiArCWVuZ2luZS0+YmFzZS5lbWl0X2JyZWFkY3J1bWIg PSBtb2NrX2VtaXRfYnJlYWRjcnVtYjsKPiArCWVuZ2luZS0+YmFzZS5zdWJtaXRfcmVxdWVzdCA9 IG1vY2tfc3VibWl0X3JlcXVlc3Q7Cj4gKwo+ICsJZW5naW5lLT5iYXNlLnRpbWVsaW5lID0KPiAr CQkmaTkxNS0+Z3QuZ2xvYmFsX3RpbWVsaW5lLmVuZ2luZVtlbmdpbmUtPmJhc2UuaWRdOwo+ICsK PiArCS8qIG1pbmltYWwgYnJlYWRjcnVtYnMgaW5pdCAqLwo+ICsJc3Bpbl9sb2NrX2luaXQoJmVu Z2luZS0+YmFzZS5icmVhZGNydW1icy5sb2NrKTsKPiArCWVuZ2luZS0+YmFzZS5icmVhZGNydW1i cy5tb2NrID0gdHJ1ZTsKPiArCj4gKwkvKiBmYWtlIGh3IHF1ZXVlICovCj4gKwlzcGluX2xvY2tf aW5pdCgmZW5naW5lLT5od19sb2NrKTsKPiArCXNldHVwX3RpbWVyKCZlbmdpbmUtPmh3X2RlbGF5 LAo+ICsJCSAgICBod19kZWxheV9jb21wbGV0ZSwKPiArCQkgICAgKHVuc2lnbmVkIGxvbmcpZW5n aW5lKTsKPiArCUlOSVRfTElTVF9IRUFEKCZlbmdpbmUtPmh3X3F1ZXVlKTsKPiArCj4gKwlyZXR1 cm4gJmVuZ2luZS0+YmFzZTsKPiArfQo+ICsKPiArc3RhdGljIHZvaWQgbW9ja19lbmdpbmVfZnJl ZShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCj4gK3sKPiArCWlmIChlbmdpbmUtPmxh c3RfY29udGV4dCkKPiArCQllbmdpbmUtPmNvbnRleHRfdW5waW4oZW5naW5lLCBlbmdpbmUtPmxh c3RfY29udGV4dCk7Cj4gKwo+ICsJa2ZyZWUoZW5naW5lLT5idWZmZXIpOwo+ICsJa2ZyZWUoZW5n aW5lKTsKPiArfQo+ICsKPiArc3RhdGljIHZvaWQgbW9ja19wcGd0dF9jbGVhbnVwKHN0cnVjdCBp OTE1X2FkZHJlc3Nfc3BhY2UgKnZtKQo+ICt7Cj4gK30KPiArCj4gK3N0YXRpYyBzdHJ1Y3QgaTkx NV9od19wcGd0dCAqCj4gK21vY2tfcHBndHQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUs Cj4gKwkgICBjb25zdCBjaGFyICpuYW1lKQo+ICt7Cj4gKwlzdHJ1Y3QgaTkxNV9od19wcGd0dCAq cHBndHQ7Cj4gKwo+ICsJcHBndHQgPSBremFsbG9jKHNpemVvZigqcHBndHQpLCBHRlBfS0VSTkVM KTsKPiArCWlmICghcHBndHQpCj4gKwkJcmV0dXJuIE5VTEw7Cj4gKwo+ICsJa3JlZl9pbml0KCZw cGd0dC0+cmVmKTsKPiArCj4gKwlJTklUX0xJU1RfSEVBRCgmcHBndHQtPmJhc2UuYWN0aXZlX2xp c3QpOwo+ICsJSU5JVF9MSVNUX0hFQUQoJnBwZ3R0LT5iYXNlLmluYWN0aXZlX2xpc3QpOwo+ICsJ SU5JVF9MSVNUX0hFQUQoJnBwZ3R0LT5iYXNlLnVuYm91bmRfbGlzdCk7Cj4gKwo+ICsJSU5JVF9M SVNUX0hFQUQoJnBwZ3R0LT5iYXNlLmdsb2JhbF9saW5rKTsKPiArCWRybV9tbV9pbml0KCZwcGd0 dC0+YmFzZS5tbSwgMCwgfjApOwo+ICsJaTkxNV9nZW1fdGltZWxpbmVfaW5pdChpOTE1LCAmcHBn dHQtPmJhc2UudGltZWxpbmUsIG5hbWUpOwo+ICsKPiArCXBwZ3R0LT5iYXNlLmNsZWFudXAgPSBt b2NrX3BwZ3R0X2NsZWFudXA7Cj4gKwo+ICsJcmV0dXJuIHBwZ3R0Owo+ICt9Cj4gKwo+ICtzdGF0 aWMgc3RydWN0IGk5MTVfZ2VtX2NvbnRleHQgKgo+ICttb2NrX2NvbnRleHQoc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmk5MTUsCj4gKwkgICAgIGNvbnN0IGNoYXIgKm5hbWUpCj4gK3sKPiArCXN0 cnVjdCBpOTE1X2dlbV9jb250ZXh0ICpjdHg7Cj4gKwlpbnQgcmV0Owo+ICsKPiArCWN0eCA9IGt6 YWxsb2Moc2l6ZW9mKCpjdHgpLCBHRlBfS0VSTkVMKTsKPiArCWlmICghY3R4KQo+ICsJCXJldHVy biBOVUxMOwo+ICsKPiArCWtyZWZfaW5pdCgmY3R4LT5yZWYpOwo+ICsJSU5JVF9MSVNUX0hFQUQo JmN0eC0+bGluayk7Cj4gKwljdHgtPm5hbWUgPSBuYW1lID8ga3N0cmR1cChuYW1lLCBHRlBfS0VS TkVMKSA6IE5VTEw7Cj4gKwljdHgtPmk5MTUgPSBpOTE1Owo+ICsKPiArCXJldCA9IGlkYV9zaW1w bGVfZ2V0KCZpOTE1LT5jb250ZXh0X2h3X2lkYSwKPiArCQkJICAgICAwLCBNQVhfQ09OVEVYVF9I V19JRCwgR0ZQX0tFUk5FTCk7Cj4gKwlpZiAocmV0IDwgMCkgewo+ICsJCWtmcmVlKGN0eCk7Cj4g KwkJcmV0dXJuIE5VTEw7Cj4gKwl9Cj4gKwljdHgtPmh3X2lkID0gcmV0Owo+ICsKPiArCWlmIChu YW1lKSB7Cj4gKwkJY3R4LT5wcGd0dCA9IG1vY2tfcHBndHQoaTkxNSwgbmFtZSk7Cj4gKwkJaWYg KCFjdHgtPnBwZ3R0KSB7Cj4gKwkJCWtmcmVlKGN0eCk7Cj4gKwkJCXJldHVybiBOVUxMOwo+ICsJ CX0KPiArCX0KPiArCj4gKwlyZXR1cm4gY3R4Owo+ICt9Cj4gKwo+ICtzdGF0aWMgdm9pZCBtb2Nr X3JldGlyZV93b3JrX2hhbmRsZXIoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQo+ICt7Cj4gK30K PiArCj4gK3N0YXRpYyB2b2lkIG1vY2tfaWRsZV93b3JrX2hhbmRsZXIoc3RydWN0IHdvcmtfc3Ry dWN0ICp3b3JrKQo+ICt7Cj4gK30KPiArCj4gK3N0YXRpYyBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqbW9ja19kZXZpY2Uodm9pZCkKPiArewo+ICsJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5 MTU7Cj4gKwo+ICsJaTkxNSA9IGt6YWxsb2Moc2l6ZW9mKCppOTE1KSwgR0ZQX0tFUk5FTCk7Cj4g KwlpZiAoIWk5MTUpCj4gKwkJcmV0dXJuIE5VTEw7Cj4gKwo+ICsJbXV0ZXhfaW5pdCgmaTkxNS0+ ZHJtLnN0cnVjdF9tdXRleCk7Cj4gKwo+ICsJaW5pdF93YWl0cXVldWVfaGVhZCgmaTkxNS0+Z3B1 X2Vycm9yLndhaXRfcXVldWUpOwo+ICsJaW5pdF93YWl0cXVldWVfaGVhZCgmaTkxNS0+Z3B1X2Vy cm9yLnJlc2V0X3F1ZXVlKTsKPiArCj4gKwlpZGFfaW5pdCgmaTkxNS0+Y29udGV4dF9od19pZGEp Owo+ICsKPiArCUlOSVRfREVMQVlFRF9XT1JLKCZpOTE1LT5ndC5yZXRpcmVfd29yaywgbW9ja19y ZXRpcmVfd29ya19oYW5kbGVyKTsKPiArCUlOSVRfREVMQVlFRF9XT1JLKCZpOTE1LT5ndC5pZGxl X3dvcmssIG1vY2tfaWRsZV93b3JrX2hhbmRsZXIpOwo+ICsKPiArCUlOSVRfTElTVF9IRUFEKCZp OTE1LT5ndC50aW1lbGluZXMpOwo+ICsJaTkxNS0+Z3QuYXdha2UgPSB0cnVlOwo+ICsKPiArCW11 dGV4X2xvY2soJmk5MTUtPmRybS5zdHJ1Y3RfbXV0ZXgpOwo+ICsJaTkxNV9nZW1fdGltZWxpbmVf aW5pdF9fZ2xvYmFsKGk5MTUpOwo+ICsJaTkxNV9nZW1fdGltZWxpbmVfaW5pdChpOTE1LCAmaTkx NS0+Z2d0dC5iYXNlLnRpbWVsaW5lLCAibW9jayIpOwo+ICsJbXV0ZXhfdW5sb2NrKCZpOTE1LT5k cm0uc3RydWN0X211dGV4KTsKPiArCj4gKwlpOTE1LT5yZXF1ZXN0cyA9IEtNRU1fQ0FDSEUobW9j a19yZXF1ZXN0LAo+ICsJCQkJICAgIFNMQUJfSFdDQUNIRV9BTElHTiB8Cj4gKwkJCQkgICAgU0xB Ql9SRUNMQUlNX0FDQ09VTlQgfAo+ICsJCQkJICAgIFNMQUJfREVTVFJPWV9CWV9SQ1UpOwo+ICsJ aWYgKCFpOTE1LT5yZXF1ZXN0cykKPiArCQlnb3RvIGVycl9kZXZpY2U7Cj4gKwo+ICsJaTkxNS0+ ZGVwZW5kZW5jaWVzID0gS01FTV9DQUNIRShpOTE1X2RlcGVuZGVuY3ksCj4gKwkJCQkJU0xBQl9I V0NBQ0hFX0FMSUdOIHwKPiArCQkJCQlTTEFCX1JFQ0xBSU1fQUNDT1VOVCk7Cj4gKwlpZiAoIWk5 MTUtPmRlcGVuZGVuY2llcykKPiArCQlnb3RvIGVycl9yZXF1ZXN0czsKPiArCj4gKwlta3dyaXRl X2RldmljZV9pbmZvKGk5MTUpLT5yaW5nX21hc2sgPSBCSVQoMCk7Cj4gKwlpOTE1LT5lbmdpbmVb UkNTXSA9IG1vY2tfZW5naW5lKGk5MTUsICJtb2NrIik7Cj4gKwlpZiAoIWk5MTUtPmVuZ2luZVtS Q1NdKQo+ICsJCWdvdG8gZXJyX2RlcGVuZGVuY2llczsKPiArCj4gKwlpOTE1LT5rZXJuZWxfY29u dGV4dCA9IG1vY2tfY29udGV4dChpOTE1LCBOVUxMKTsKPiArCWlmICghaTkxNS0+a2VybmVsX2Nv bnRleHQpCj4gKwkJZ290byBlcnJfZW5naW5lOwo+ICsKPiArCXJldHVybiBpOTE1Owo+ICsKPiAr ZXJyX2VuZ2luZToKPiArCW1vY2tfZW5naW5lX2ZyZWUoaTkxNS0+ZW5naW5lW1JDU10pOwo+ICtl cnJfZGVwZW5kZW5jaWVzOgo+ICsJa21lbV9jYWNoZV9kZXN0cm95KGk5MTUtPmRlcGVuZGVuY2ll cyk7Cj4gK2Vycl9yZXF1ZXN0czoKPiArCWttZW1fY2FjaGVfZGVzdHJveShpOTE1LT5yZXF1ZXN0 cyk7Cj4gK2Vycl9kZXZpY2U6Cj4gKwlrZnJlZShpOTE1KTsKPiArCXJldHVybiBOVUxMOwo+ICt9 Cj4gKwo+ICtzdGF0aWMgdm9pZCBtb2NrX2RldmljZV9mcmVlKHN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICppOTE1KQo+ICt7Cj4gKwlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmU7Cj4gKwll bnVtIGludGVsX2VuZ2luZV9pZCBpZDsKPiArCj4gKwlmb3JfZWFjaF9lbmdpbmUoZW5naW5lLCBp OTE1LCBpZCkKPiArCQltb2NrX2VuZ2luZV9mbHVzaChlbmdpbmUpOwo+ICsKPiArCW11dGV4X2xv Y2soJmk5MTUtPmRybS5zdHJ1Y3RfbXV0ZXgpOwo+ICsJaTkxNV9nZW1fcmV0aXJlX3JlcXVlc3Rz KGk5MTUpOwo+ICsJbXV0ZXhfdW5sb2NrKCZpOTE1LT5kcm0uc3RydWN0X211dGV4KTsKPiArCj4g KwljYW5jZWxfZGVsYXllZF93b3JrX3N5bmMoJmk5MTUtPmd0LnJldGlyZV93b3JrKTsKPiArCWNh bmNlbF9kZWxheWVkX3dvcmtfc3luYygmaTkxNS0+Z3QuaWRsZV93b3JrKTsKPiArCj4gKwltdXRl eF9sb2NrKCZpOTE1LT5kcm0uc3RydWN0X211dGV4KTsKPiArCWZvcl9lYWNoX2VuZ2luZShlbmdp bmUsIGk5MTUsIGlkKQo+ICsJCW1vY2tfZW5naW5lX2ZyZWUoZW5naW5lKTsKPiArCj4gKwlpOTE1 X2dlbV9jb250ZXh0X2ZpbmkoaTkxNSk7Cj4gKwo+ICsJaTkxNV9nZW1fdGltZWxpbmVfZmluaSgm aTkxNS0+Z2d0dC5iYXNlLnRpbWVsaW5lKTsKPiArCWk5MTVfZ2VtX3RpbWVsaW5lX2ZpbmkoJmk5 MTUtPmd0Lmdsb2JhbF90aW1lbGluZSk7Cj4gKwltdXRleF91bmxvY2soJmk5MTUtPmRybS5zdHJ1 Y3RfbXV0ZXgpOwo+ICsKPiArCWttZW1fY2FjaGVfZGVzdHJveShpOTE1LT5kZXBlbmRlbmNpZXMp Owo+ICsJa21lbV9jYWNoZV9kZXN0cm95KGk5MTUtPnJlcXVlc3RzKTsKPiArCj4gKwlrZnJlZShp OTE1KTsKPiArfQo+ICsKPiArc3RhdGljIGludCBpZ3RfYWRkX3JlcXVlc3Qodm9pZCAqaWdub3Jl KQo+ICt7Cj4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNTsKPiArCXN0cnVjdCBkcm1f aTkxNV9nZW1fcmVxdWVzdCAqcmVxdWVzdDsKPiArCWludCBlcnIgPSAtRU5PTUVNOwo+ICsKPiAr CWk5MTUgPSBtb2NrX2RldmljZSgpOwo+ICsJaWYgKCFpOTE1KQo+ICsJCWdvdG8gb3V0Owo+ICsK PiArCW11dGV4X2xvY2soJmk5MTUtPmRybS5zdHJ1Y3RfbXV0ZXgpOwo+ICsJcmVxdWVzdCA9IG1v Y2tfcmVxdWVzdChpOTE1LT5lbmdpbmVbUkNTXSwKPiArCQkJICAgICAgIGk5MTUtPmtlcm5lbF9j b250ZXh0LAo+ICsJCQkgICAgICAgSFogLyAxMCk7Cj4gKwlpZiAoIXJlcXVlc3QpCj4gKwkJZ290 byBvdXRfdW5sb2NrOwo+ICsKPiArCWk5MTVfYWRkX3JlcXVlc3QocmVxdWVzdCk7Cj4gKwo+ICsJ ZXJyID0gMDsKPiArb3V0X3VubG9jazoKPiArCW11dGV4X3VubG9jaygmaTkxNS0+ZHJtLnN0cnVj dF9tdXRleCk7Cj4gKwltb2NrX2RldmljZV9mcmVlKGk5MTUpOwo+ICtvdXQ6Cj4gKwlyZXR1cm4g ZXJyOwo+ICt9Cj4gKwo+ICtpbnQgaTkxNV9nZW1fcmVxdWVzdF9zZWxmdGVzdCh2b2lkKQo+ICt7 Cj4gKwlzdGF0aWMgY29uc3Qgc3RydWN0IGk5MTVfc3VidGVzdCB0ZXN0c1tdID0gewo+ICsJCVNV QlRFU1QoaWd0X2FkZF9yZXF1ZXN0KSwKPiArCX07Cj4gKwo+ICsJcmV0dXJuIGk5MTVfc3VidGVz dHModGVzdHMsIE5VTEwpOwo+ICt9Cj4gKyNlbmRpZgo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X21vY2tfc2VsZnRlc3RzLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X21vY2tfc2VsZnRlc3RzLmgKPiBpbmRleCAxNjAzZmQzNWQxOTAuLjlmZjM3OWIxOGMyMCAx MDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X21vY2tfc2VsZnRlc3RzLmgK PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X21vY2tfc2VsZnRlc3RzLmgKPiBAQCAt OCw1ICs4LDYgQEAKPiAgICoKPiAgICogVGVzdHMgYXJlIGV4ZWN1dGVkIGluIHJldmVyc2Ugb3Jk ZXIgYnkgaWd0L2Rydl9zZWxmdGVzdAo+ICAgKi8KPiArc2VsZnRlc3QocmVxdWVzdHMsIGk5MTVf Z2VtX3JlcXVlc3Rfc2VsZnRlc3QpCj4gIHNlbGZ0ZXN0KGJyZWFkY3J1bWJzLCBpbnRlbF9icmVh ZGNydW1ic19zZWxmdGVzdCkKPiAgc2VsZnRlc3Qoc2FuaXR5Y2hlY2ssIGk5MTVfbW9ja19zYW5p dHljaGVjaykgLyoga2VlcCBsYXN0ICovCj4KCkl0IGxvb2tzIHRpZHkgZW5vdWdoLiBJIHRydXN0 IHlvdSdsbCBydW4gaXQgdGhyb3VnaCB0aGUgZnVsbCBtZW1vcnkgCmRlYnVnZ2luZyBhcnNlbmFs IGp1c3QgdG8gZG91YmxlLWNoZWNrIGl0IGRvZXNuJ3QgbGVhayBhbnl0aGluZy4gQnV0IGl0IAps b29rcyBPSyB0byBtZS4KClJldmlld2VkLWJ5OiBUdnJ0a28gVXJzdWxpbiA8dHZydGtvLnVyc3Vs aW5AaW50ZWwuY29tPgoKUmVnYXJkcywKClR2cnRrbwpfX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBs aXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1h bi9saXN0aW5mby9pbnRlbC1nZngK