From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ben Widawsky Subject: Re: [PATCH 01/15] drm/i915: Copy user requested buffers into the error state Date: Mon, 27 Feb 2017 22:11:35 -0800 Message-ID: <20170228061135.GA5622@mail.bwidawsk.net> References: <20170223161830.26965-1-chris@chris-wilson.co.uk> <20170223161830.26965-2-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 mail.bwidawsk.net (zangief.bwidawsk.net [107.170.211.233]) by gabe.freedesktop.org (Postfix) with ESMTPS id A9DA46E0AF for ; Tue, 28 Feb 2017 06:11:41 +0000 (UTC) Content-Disposition: inline In-Reply-To: <20170223161830.26965-2-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 Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gMTctMDItMjMgMTY6MTg6MTYsIENocmlzIFdpbHNvbiB3cm90ZToKPkludHJvZHVjZSBhIG5l dyBleGVjb2JqZWN0LmZsYWcgKEVYRUNfT0JKRUNUX0NBUFRVUkUpIHRoYXQgdXNlcnNwYWNlIG1h eQo+dXNlIHRvIGluZGljYXRlIHRoYXQgaXQgd2FudHMgdGhlIGNvbnRlbnRzIG9mIHRoaXMgYnVm ZmVyIHByZXNlcnZlZCBpbgo+dGhlIGVycm9yIHN0YXRlICgvc3lzL2NsYXNzL2RybS9jYXJkTi9l cnJvcikgZm9sbG93aW5nIGEgR1BVIGhhbmcKPmludm9sdmluZyB0aGlzIGJhdGNoLgo+Cj5Vc2Ug dGhpcyBhdCB5b3VyIGRpc2NyZXRpb24sIHRoZSBjb250ZW50cyBvZiB0aGUgZXJyb3Igc3RhdGUu IGFsdGhvdWdoCj5jb21wcmVzc2VkLCBhcmUgYWxsb2NhdGVkIHdpdGggR0ZQX0FUT01JQyAoaS5l LiBsaW1pdGVkKSBhbmQga2VwdCBmb3IgYWxsCj5ldGVybml0eSAodW50aWwgdGhlIGVycm9yIHN0 YXRlIGlzIGRlc3Ryb3llZCkuCj4KPkJhc2VkIG9uIGFuIGVhcmxpZXIgcGF0Y2ggYnkgQmVuIFdp ZGF3c2t5IDxiZW5AYndpZGF3c2submV0Pgo+U2lnbmVkLW9mZi1ieTogQ2hyaXMgV2lsc29uIDxj aHJpc0BjaHJpcy13aWxzb24uY28udWs+Cj5DYzogQmVuIFdpZGF3c2t5IDxiZW5AYndpZGF3c2su bmV0Pgo+Q2M6IE1hdHQgVHVybmVyIDxtYXR0c3Q4OEBnbWFpbC5jb20+CgpIYXZlbid0IHRlc3Rl ZCBpdCBvciB1c2VkIGl0LCBidXQgSSB3YW50ZWQgaXQuCkFja2VkLWJ5OiBCZW4gV2lkYXdza3kg PGJlbkBid2lkYXdzay5uZXQ+Cgo+LS0tCj4gZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYu YyAgICAgICAgICAgIHwgIDEgKwo+IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggICAg ICAgICAgICB8ICAzICsrKwo+IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2V4ZWNidWZm ZXIuYyB8IDEyICsrKysrKysrKwo+IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX3JlcXVl c3QuYyAgICB8IDE2ICsrKysrKysrKysrKwo+IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2Vt X3JlcXVlc3QuaCAgICB8IDExICsrKysrKysrCj4gZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9n cHVfZXJyb3IuYyAgICAgIHwgNDAgKysrKysrKysrKysrKysrKysrKysrKysrKysrKystCj4gaW5j bHVkZS91YXBpL2RybS9pOTE1X2RybS5oICAgICAgICAgICAgICAgIHwgMTUgKysrKysrKysrKy0K PiA3IGZpbGVzIGNoYW5nZWQsIDk2IGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCj4KPmRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5jIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9kcnYuYwo+aW5kZXggNDA5ZmMzMmNlMmJkLi44NDJjNjJiOTZhODMgMTAw NjQ0Cj4tLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5jCj4rKysgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5jCj5AQCAtMzUzLDYgKzM1Myw3IEBAIHN0YXRpYyBpbnQg aTkxNV9nZXRwYXJhbShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAo+IAljYXNl IEk5MTVfUEFSQU1fSEFTX0VYRUNfQVNZTkM6Cj4gCWNhc2UgSTkxNV9QQVJBTV9IQVNfRVhFQ19G RU5DRToKPiAJY2FzZSBJOTE1X1BBUkFNX0hBU19FWEVDX0ZFTkNFX0RNQUJVRjoKPisJY2FzZSBJ OTE1X1BBUkFNX0hBU19FWEVDX0NBUFRVUkU6Cj4gCQkvKiBGb3IgdGhlIHRpbWUgYmVpbmcgYWxs IG9mIHRoZXNlIGFyZSBhbHdheXMgdHJ1ZTsKPiAJCSAqIGlmIHNvbWUgc3VwcG9ydGVkIGhhcmR3 YXJlIGRvZXMgbm90IGhhdmUgb25lIG9mIHRoZXNlCj4gCQkgKiBmZWF0dXJlcyB0aGlzIHZhbHVl IG5lZWRzIHRvIGJlIHByb3ZpZGVkIGZyb20KPmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+aW5kZXgg NDQwYTQ3MjViODdmLi4yY2MwMjUzZDZlZjcgMTAwNjQ0Cj4tLS0gYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2Rydi5oCj4rKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj5A QCAtMTAxOCw2ICsxMDE4LDkgQEAgc3RydWN0IGk5MTVfZ3B1X3N0YXRlIHsKPiAJCQl1MzIgKnBh Z2VzWzBdOwo+IAkJfSAqcmluZ2J1ZmZlciwgKmJhdGNoYnVmZmVyLCAqd2FfYmF0Y2hidWZmZXIs ICpjdHgsICpod3NfcGFnZTsKPgo+KwkJc3RydWN0IGRybV9pOTE1X2Vycm9yX29iamVjdCAqKnVz ZXJfYm87Cj4rCQlsb25nIHVzZXJfYm9fY291bnQ7Cj4rCj4gCQlzdHJ1Y3QgZHJtX2k5MTVfZXJy b3Jfb2JqZWN0ICp3YV9jdHg7Cj4KPiAJCXN0cnVjdCBkcm1faTkxNV9lcnJvcl9yZXF1ZXN0IHsK PmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9leGVjYnVmZmVyLmMg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9leGVjYnVmZmVyLmMKPmluZGV4IDNmMjc5 NjEzMTQxMC4uZThmZmUwYzlhMjBlIDEwMDY0NAo+LS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9nZW1fZXhlY2J1ZmZlci5jCj4rKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dl bV9leGVjYnVmZmVyLmMKPkBAIC0xMTEzLDYgKzExMTMsMTggQEAgaTkxNV9nZW1fZXhlY2J1ZmZl cl9tb3ZlX3RvX2dwdShzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSwKPiAJbGlzdF9m b3JfZWFjaF9lbnRyeSh2bWEsIHZtYXMsIGV4ZWNfbGlzdCkgewo+IAkJc3RydWN0IGRybV9pOTE1 X2dlbV9vYmplY3QgKm9iaiA9IHZtYS0+b2JqOwo+Cj4rCQlpZiAodm1hLT5leGVjX2VudHJ5LT5m bGFncyAmIEVYRUNfT0JKRUNUX0NBUFRVUkUpIHsKPisJCQlzdHJ1Y3QgaTkxNV9nZW1fY2FwdHVy ZV9saXN0ICpjYXB0dXJlOwo+Kwo+KwkJCWNhcHR1cmUgPSBrbWFsbG9jKHNpemVvZigqY2FwdHVy ZSksIEdGUF9LRVJORUwpOwo+KwkJCWlmICh1bmxpa2VseSghY2FwdHVyZSkpCj4rCQkJCXJldHVy biAtRU5PTUVNOwo+Kwo+KwkJCWNhcHR1cmUtPm5leHQgPSByZXEtPmNhcHR1cmVfbGlzdDsKPisJ CQljYXB0dXJlLT52bWEgPSB2bWE7Cj4rCQkJcmVxLT5jYXB0dXJlX2xpc3QgPSBjYXB0dXJlOwo+ KwkJfQo+Kwo+IAkJaWYgKHZtYS0+ZXhlY19lbnRyeS0+ZmxhZ3MgJiBFWEVDX09CSkVDVF9BU1lO QykKPiAJCQljb250aW51ZTsKPgo+ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZ2VtX3JlcXVlc3QuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX3JlcXVlc3Qu Ywo+aW5kZXggYWQ5ZDRjZTA3ZmI2Li4zYTE1OWNhYzIxNzIgMTAwNjQ0Cj4tLS0gYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9yZXF1ZXN0LmMKPisrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZ2VtX3JlcXVlc3QuYwo+QEAgLTI4Niw2ICsyODYsMTkgQEAgdm9pZCBpOTE1X2dl bV9yZXRpcmVfbm9vcChzdHJ1Y3QgaTkxNV9nZW1fYWN0aXZlICphY3RpdmUsCj4gCS8qIFNwYWNl IGxlZnQgaW50ZW50aW9uYWxseSBibGFuayAqLwo+IH0KPgo+K3N0YXRpYyB2b2lkIHJlcXVlc3Rf ZnJlZV9jYXB0dXJlX2xpc3Qoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXF1ZXN0KQo+ K3sKPisJc3RydWN0IGk5MTVfZ2VtX2NhcHR1cmVfbGlzdCAqY2FwdHVyZTsKPisKPisJY2FwdHVy ZSA9IHJlcXVlc3QtPmNhcHR1cmVfbGlzdDsKPisJd2hpbGUgKGNhcHR1cmUpIHsKPisJCXN0cnVj dCBpOTE1X2dlbV9jYXB0dXJlX2xpc3QgKm5leHQgPSBjYXB0dXJlLT5uZXh0Owo+Kwo+KwkJa2Zy ZWUoY2FwdHVyZSk7Cj4rCQljYXB0dXJlID0gbmV4dDsKPisJfQo+K30KPisKPiBzdGF0aWMgdm9p ZCBpOTE1X2dlbV9yZXF1ZXN0X3JldGlyZShzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJl cXVlc3QpCj4gewo+IAlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUgPSByZXF1ZXN0LT5l bmdpbmU7Cj5AQCAtMzIwLDYgKzMzMyw4IEBAIHN0YXRpYyB2b2lkIGk5MTVfZ2VtX3JlcXVlc3Rf cmV0aXJlKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxdWVzdCkKPiAJfQo+IAl1bnJl c2VydmVfc2Vxbm8ocmVxdWVzdC0+ZW5naW5lKTsKPgo+KwlyZXF1ZXN0X2ZyZWVfY2FwdHVyZV9s aXN0KHJlcXVlc3QpOwo+Kwo+IAkvKiBXYWxrIHRocm91Z2ggdGhlIGFjdGl2ZSBsaXN0LCBjYWxs aW5nIHJldGlyZSBvbiBlYWNoLiBUaGlzIGFsbG93cwo+IAkgKiBvYmplY3RzIHRvIHRyYWNrIHRo ZWlyIEdQVSBhY3Rpdml0eSBhbmQgbWFyayB0aGVtc2VsdmVzIGFzIGlkbGUKPiAJICogd2hlbiB0 aGVpciAqbGFzdCogYWN0aXZlIHJlcXVlc3QgaXMgY29tcGxldGVkICh1cGRhdGluZyBzdGF0ZQo+ QEAgLTYxNSw2ICs2MzAsNyBAQCBpOTE1X2dlbV9yZXF1ZXN0X2FsbG9jKHN0cnVjdCBpbnRlbF9l bmdpbmVfY3MgKmVuZ2luZSwKPiAJcmVxLT5nbG9iYWxfc2Vxbm8gPSAwOwo+IAlyZXEtPmZpbGVf cHJpdiA9IE5VTEw7Cj4gCXJlcS0+YmF0Y2ggPSBOVUxMOwo+KwlyZXEtPmNhcHR1cmVfbGlzdCA9 IE5VTEw7Cj4KPiAJLyoKPiAJICogUmVzZXJ2ZSBzcGFjZSBpbiB0aGUgcmluZyBidWZmZXIgZm9y IGFsbCB0aGUgY29tbWFuZHMgcmVxdWlyZWQgdG8KPmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2dlbV9yZXF1ZXN0LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dl bV9yZXF1ZXN0LmgKPmluZGV4IDBlZmVlODc5ZGYyMy4uY2MyNGE2YzcyNzQ4IDEwMDY0NAo+LS0t IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fcmVxdWVzdC5oCj4rKysgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9yZXF1ZXN0LmgKPkBAIC03Myw2ICs3MywxMSBAQCBzdHJ1 Y3QgaTkxNV9wcmlvdHJlZSB7Cj4gI2RlZmluZSBJOTE1X1BSSU9SSVRZX01JTiAoLUk5MTVfUFJJ T1JJVFlfTUFYKQo+IH07Cj4KPitzdHJ1Y3QgaTkxNV9nZW1fY2FwdHVyZV9saXN0IHsKPisJc3Ry dWN0IGk5MTVfZ2VtX2NhcHR1cmVfbGlzdCAqbmV4dDsKPisJc3RydWN0IGk5MTVfdm1hICp2bWE7 Cj4rfTsKPisKPiAvKioKPiAgKiBSZXF1ZXN0IHF1ZXVlIHN0cnVjdHVyZS4KPiAgKgo+QEAgLTE2 Nyw2ICsxNzIsMTIgQEAgc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0IHsKPiAJICogZXJyb3Ig c3RhdGUgZHVtcCBvbmx5KS4KPiAJICovCj4gCXN0cnVjdCBpOTE1X3ZtYSAqYmF0Y2g7Cj4rCS8q KiBBZGRpdGlvbmFsIGJ1ZmZlcnMgcmVxdWVzdGVkIGJ5IHVzZXJzcGFjZSB0byBiZSBjYXB0dXJl ZCB1cG9uCj4rCSAqIGEgR1BVIGhhbmcuIFRoZSB2bWEvb2JqIG9uIHRoaXMgbGlzdCBhcmUgcHJv dGVjdGVkIGJ5IHRoZWlyCj4rCSAqIGFjdGl2ZSByZWZlcmVuY2UgLSBhbGwgb2JqZWN0cyBvbiB0 aGlzIGxpc3QgbXVzdCBhbHNvIGJlCj4rCSAqIG9uIHRoZSBhY3RpdmVfbGlzdCAob2YgdGhlaXIg ZmluYWwgcmVxdWVzdCkuCj4rCSAqLwo+KwlzdHJ1Y3QgaTkxNV9nZW1fY2FwdHVyZV9saXN0ICpj YXB0dXJlX2xpc3Q7Cj4gCXN0cnVjdCBsaXN0X2hlYWQgYWN0aXZlX2xpc3Q7Cj4KPiAJLyoqIFRp bWUgYXQgd2hpY2ggdGhpcyByZXF1ZXN0IHdhcyBlbWl0dGVkLCBpbiBqaWZmaWVzLiAqLwo+ZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ3B1X2Vycm9yLmMgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X2dwdV9lcnJvci5jCj5pbmRleCAyYjFkMTU2NjgxOTIuLjc2ODU1 ZTFkODc5NSAxMDA2NDQKPi0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ3B1X2Vycm9y LmMKPisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ3B1X2Vycm9yLmMKPkBAIC03MDks NiArNzA5LDEwIEBAIGludCBpOTE1X2Vycm9yX3N0YXRlX3RvX3N0cihzdHJ1Y3QgZHJtX2k5MTVf ZXJyb3Jfc3RhdGVfYnVmICptLAo+IAkJCXByaW50X2Vycm9yX29iaihtLCBkZXZfcHJpdi0+ZW5n aW5lW2ldLCBOVUxMLCBvYmopOwo+IAkJfQo+Cj4rCQlmb3IgKGogPSAwOyBqIDwgZWUtPnVzZXJf Ym9fY291bnQ7IGorKykKPisJCQlwcmludF9lcnJvcl9vYmoobSwgZGV2X3ByaXYtPmVuZ2luZVtp XSwKPisJCQkJCSJ1c2VyIiwgZWUtPnVzZXJfYm9bal0pOwo+Kwo+IAkJaWYgKGVlLT5udW1fcmVx dWVzdHMpIHsKPiAJCQllcnJfcHJpbnRmKG0sICIlcyAtLS0gJWQgcmVxdWVzdHNcbiIsCj4gCQkJ CSAgIGRldl9wcml2LT5lbmdpbmVbaV0tPm5hbWUsCj5AQCAtODIyLDExICs4MjYsMTUgQEAgdm9p ZCBfX2k5MTVfZ3B1X3N0YXRlX2ZyZWUoc3RydWN0IGtyZWYgKmVycm9yX3JlZikKPiB7Cj4gCXN0 cnVjdCBpOTE1X2dwdV9zdGF0ZSAqZXJyb3IgPQo+IAkJY29udGFpbmVyX29mKGVycm9yX3JlZiwg dHlwZW9mKCplcnJvciksIHJlZik7Cj4tCWludCBpOwo+Kwlsb25nIGksIGo7Cj4KPiAJZm9yIChp ID0gMDsgaSA8IEFSUkFZX1NJWkUoZXJyb3ItPmVuZ2luZSk7IGkrKykgewo+IAkJc3RydWN0IGRy bV9pOTE1X2Vycm9yX2VuZ2luZSAqZWUgPSAmZXJyb3ItPmVuZ2luZVtpXTsKPgo+KwkJZm9yIChq ID0gMDsgaiA8IGVlLT51c2VyX2JvX2NvdW50OyBqKyspCj4rCQkJaTkxNV9lcnJvcl9vYmplY3Rf ZnJlZShlZS0+dXNlcl9ib1tqXSk7Cj4rCQlrZnJlZShlZS0+dXNlcl9ibyk7Cj4rCj4gCQlpOTE1 X2Vycm9yX29iamVjdF9mcmVlKGVlLT5iYXRjaGJ1ZmZlcik7Cj4gCQlpOTE1X2Vycm9yX29iamVj dF9mcmVlKGVlLT53YV9iYXRjaGJ1ZmZlcik7Cj4gCQlpOTE1X2Vycm9yX29iamVjdF9mcmVlKGVl LT5yaW5nYnVmZmVyKTsKPkBAIC0xMzQzLDYgKzEzNTEsMzUgQEAgc3RhdGljIHZvaWQgcmVjb3Jk X2NvbnRleHQoc3RydWN0IGRybV9pOTE1X2Vycm9yX2NvbnRleHQgKmUsCj4gCWUtPmFjdGl2ZSA9 IGN0eC0+YWN0aXZlX2NvdW50Owo+IH0KPgo+K3N0YXRpYyB2b2lkIHJlcXVlc3RfcmVjb3JkX3Vz ZXJfYm8oc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXF1ZXN0LAo+KwkJCQkgICBzdHJ1 Y3QgZHJtX2k5MTVfZXJyb3JfZW5naW5lICplZSkKPit7Cj4rCXN0cnVjdCBpOTE1X2dlbV9jYXB0 dXJlX2xpc3QgKmM7Cj4rCXN0cnVjdCBkcm1faTkxNV9lcnJvcl9vYmplY3QgKipibzsKPisJbG9u ZyBjb3VudDsKPisKPisJY291bnQgPSAwOwo+Kwlmb3IgKGMgPSByZXF1ZXN0LT5jYXB0dXJlX2xp c3Q7IGM7IGMgPSBjLT5uZXh0KQo+KwkJY291bnQrKzsKPisKPisJYm8gPSBOVUxMOwo+KwlpZiAo Y291bnQpCj4rCQlibyA9IGtjYWxsb2MoY291bnQsIHNpemVvZigqYm8pLCBHRlBfQVRPTUlDKTsK PisJaWYgKCFibykKPisJCXJldHVybjsKPisKPisJY291bnQgPSAwOwo+Kwlmb3IgKGMgPSByZXF1 ZXN0LT5jYXB0dXJlX2xpc3Q7IGM7IGMgPSBjLT5uZXh0KSB7Cj4rCQlib1tjb3VudF0gPSBpOTE1 X2Vycm9yX29iamVjdF9jcmVhdGUocmVxdWVzdC0+aTkxNSwgYy0+dm1hKTsKPisJCWlmICghYm9b Y291bnRdKQo+KwkJCWJyZWFrOwo+KwkJY291bnQrKzsKPisJfQo+Kwo+KwllZS0+dXNlcl9ibyA9 IGJvOwo+KwllZS0+dXNlcl9ib19jb3VudCA9IGNvdW50Owo+K30KPisKPiBzdGF0aWMgdm9pZCBp OTE1X2dlbV9yZWNvcmRfcmluZ3Moc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ IAkJCQkgIHN0cnVjdCBpOTE1X2dwdV9zdGF0ZSAqZXJyb3IpCj4gewo+QEAgLTEzODksNiArMTQy Niw3IEBAIHN0YXRpYyB2b2lkIGk5MTVfZ2VtX3JlY29yZF9yaW5ncyhzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYsCj4gCQkJCWVlLT53YV9iYXRjaGJ1ZmZlciA9Cj4gCQkJCQlpOTE1 X2Vycm9yX29iamVjdF9jcmVhdGUoZGV2X3ByaXYsCj4gCQkJCQkJCQkgZW5naW5lLT5zY3JhdGNo KTsKPisJCQlyZXF1ZXN0X3JlY29yZF91c2VyX2JvKHJlcXVlc3QsIGVlKTsKPgo+IAkJCWVlLT5j dHggPQo+IAkJCQlpOTE1X2Vycm9yX29iamVjdF9jcmVhdGUoZGV2X3ByaXYsCj5kaWZmIC0tZ2l0 IGEvaW5jbHVkZS91YXBpL2RybS9pOTE1X2RybS5oIGIvaW5jbHVkZS91YXBpL2RybS9pOTE1X2Ry bS5oCj5pbmRleCBlYmM3NjQxYjUyNTIuLjllZGE4NDlkZjY4MCAxMDA2NDQKPi0tLSBhL2luY2x1 ZGUvdWFwaS9kcm0vaTkxNV9kcm0uaAo+KysrIGIvaW5jbHVkZS91YXBpL2RybS9pOTE1X2RybS5o Cj5AQCAtNDE4LDYgKzQxOCwxMiBAQCB0eXBlZGVmIHN0cnVjdCBkcm1faTkxNV9pcnFfd2FpdCB7 Cj4gICovCj4gI2RlZmluZSBJOTE1X1BBUkFNX0hBU19FWEVDX0ZFTkNFX0RNQUJVRiA0NQo+Cj4r LyogUXVlcnkgd2hldGhlciBEUk1fSTkxNV9HRU1fRVhFQ0JVRkZFUjIgc3VwcG9ydHMgdGhlIGFi aWxpdHkgdG8gY2FwdHVyZQo+KyAqIHVzZXIgc3BlY2lmaWVkIGJ1ZmZmZXJzIGZvciBwb3N0LW1v cnRlbSBkZWJ1Z2dpbmcgb2YgR1BVIGhhbmdzLiBTZWUKPisgKiBFWEVDX09CSkVDVF9DQVBUVVJF Lgo+KyAqLwo+KyNkZWZpbmUgSTkxNV9QQVJBTV9IQVNfRVhFQ19DQVBUVVJFCSA0Ngo+Kwo+IHR5 cGVkZWYgc3RydWN0IGRybV9pOTE1X2dldHBhcmFtIHsKPiAJX19zMzIgcGFyYW07Cj4gCS8qCj5A QCAtNzc5LDggKzc4NSwxNSBAQCBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX2V4ZWNfb2JqZWN0MiB7Cj4g ICogSTkxNV9QQVJBTV9IQVNfRVhFQ19GRU5DRSB0byBvcmRlciBleGVjYnVmcyBhbmQgZXhlY3V0 ZSB0aGVtIGFzeW5jaHJvbm91c2x5Lgo+ICAqLwo+ICNkZWZpbmUgRVhFQ19PQkpFQ1RfQVNZTkMJ CSgxPDw2KQo+Ky8qIFJlcXVlc3QgdGhhdCB0aGUgY29udGVudHMgb2YgdGhpcyBleGVjb2JqZWN0 IGJlIGNvcGllZCBpbnRvIHRoZSBlcnJvcgo+KyAqIHN0YXRlIHVwb24gYSBHUFUgaGFuZyBpbnZv bHZpbmcgdGhpcyBiYXRjaCBmb3IgcG9zdC1tb3J0ZW0gZGVidWdnaW5nLgo+KyAqIFRoZXNlIGJ1 ZmZlcnMgYXJlIHJlY29yZGVkIGluIG5vIHBhcnRpY3VsYXIgb3JkZXIgYXMgInVzZXIiIGluCj4r ICogL3N5cy9jbGFzcy9kcm0vY2FyZE4vZXJyb3IuIFF1ZXJ5IEk5MTVfUEFSQU1fSEFTX0VYRUNf Q0FQVFVSRSB0byBzZWUKPisgKiBpZiB0aGUga2VybmVsIHN1cHBvcnRzIHRoaXMgZmxhZy4KPisg Ki8KPisjZGVmaW5lIEVYRUNfT0JKRUNUX0NBUFRVUkUJCSgxPDw3KQo+IC8qIEFsbCByZW1haW5p bmcgYml0cyBhcmUgTUJaIGFuZCBSRVNFUlZFRCBGT1IgRlVUVVJFIFVTRSAqLwo+LSNkZWZpbmUg X19FWEVDX09CSkVDVF9VTktOT1dOX0ZMQUdTIC0oRVhFQ19PQkpFQ1RfQVNZTkM8PDEpCj4rI2Rl ZmluZSBfX0VYRUNfT0JKRUNUX1VOS05PV05fRkxBR1MgLShFWEVDX09CSkVDVF9DQVBUVVJFPDwx KQo+IAlfX3U2NCBmbGFnczsKPgo+IAl1bmlvbiB7Cj4tLSAKPjIuMTEuMAo+Cl9fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxp c3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNr dG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=