From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tomas Elf Subject: Re: [PATCH 28/53] drm/i915: Update queue_flip() to do explicit request management Date: Thu, 05 Mar 2015 19:29:27 +0000 Message-ID: <54F8AE97.3060000@intel.com> References: <1423828140-10653-1-git-send-email-John.C.Harrison@Intel.com> <1424366285-29232-1-git-send-email-John.C.Harrison@Intel.com> <1424366285-29232-29-git-send-email-John.C.Harrison@Intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by gabe.freedesktop.org (Postfix) with ESMTP id A008B6E008 for ; Thu, 5 Mar 2015 11:29:29 -0800 (PST) In-Reply-To: <1424366285-29232-29-git-send-email-John.C.Harrison@Intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: John.C.Harrison@Intel.com, Intel-GFX@Lists.FreeDesktop.Org List-Id: intel-gfx@lists.freedesktop.org T24gMTkvMDIvMjAxNSAxNzoxNywgSm9obi5DLkhhcnJpc29uQEludGVsLmNvbSB3cm90ZToKPiBG cm9tOiBKb2huIEhhcnJpc29uIDxKb2huLkMuSGFycmlzb25ASW50ZWwuY29tPgo+Cj4gVXBkYXRl ZCB0aGUgZGlzcGxheSBwYWdlIGZsaXAgY29kZSB0byBkbyBleHBsaWNpdCByZXF1ZXN0IGNyZWF0 aW9uIGFuZAo+IHN1Ym1pc3Npb24gcmF0aGVyIHRoYW4gcmVseWluZyBvbiB0aGUgT0xSIGFuZCBq dXN0IGhvcGluZyB0aGF0IHRoZSByZXF1ZXN0Cj4gYWN0dWFsbHkgZ2V0cyBzdWJtaXR0ZWQgYXQg c29tZSByYW5kb20gcG9pbnQuCj4KPiBUaGUgc2VxdWVuY2UgaXMgbm93IHRvIGNyZWF0ZSBhIHJl cXVlc3QsIHF1ZXVlIHRoZSB3b3JrIHRvIHRoZSByaW5nLCBhc3NpZ24gdGhlCj4ga25vd24gcmVx dWVzdCB0byB0aGUgZmxpcCBxdWV1ZSB3b3JrIGl0ZW0gdGhlbiBhY3R1YWxseSBzdWJtaXQgdGhl IHdvcmsgYW5kIHBvc3QKPiB0aGUgcmVxdWVzdC4KPgo+IEZvcjogVklaLTUxMTUKPiBTaWduZWQt b2ZmLWJ5OiBKb2huIEhhcnJpc29uIDxKb2huLkMuSGFycmlzb25ASW50ZWwuY29tPgo+IC0tLQo+ ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCAgICAgICAgIHwgICAgMiArLQo+ICAg ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jICAgIHwgICA0MyArKysrKysrKysr KysrKysrKysrKy0tLS0tLS0tLS0tCj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5n YnVmZmVyLmMgfCAgICAyICstCj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVm ZmVyLmggfCAgICAxIC0KPiAgIDQgZmlsZXMgY2hhbmdlZCwgMzAgaW5zZXJ0aW9ucygrKSwgMTgg ZGVsZXRpb25zKC0pCj4KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9k cnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiBpbmRleCBlOWNjMzQzLi4z NGZkMzM4IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiAr KysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4gQEAgLTU2MCw3ICs1NjAsNyBA QCBzdHJ1Y3QgZHJtX2k5MTVfZGlzcGxheV9mdW5jcyB7Cj4gICAJaW50ICgqcXVldWVfZmxpcCko c3RydWN0IGRybV9kZXZpY2UgKmRldiwgc3RydWN0IGRybV9jcnRjICpjcnRjLAo+ICAgCQkJICBz dHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiwKPiAgIAkJCSAgc3RydWN0IGRybV9pOTE1X2dlbV9v YmplY3QgKm9iaiwKPiAtCQkJICBzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nLAo+ICsJCQkg IHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxLAo+ICAgCQkJICB1aW50MzJfdCBmbGFn cyk7Cj4gICAJdm9pZCAoKnVwZGF0ZV9wcmltYXJ5X3BsYW5lKShzdHJ1Y3QgZHJtX2NydGMgKmNy dGMsCj4gICAJCQkJICAgICBzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiwKPiBkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZGlzcGxheS5jCj4gaW5kZXggM2IwZmU5Zi4uYzMyYmMwYyAxMDA2NDQKPiAt LS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPiArKysgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPiBAQCAtOTI1MSw5ICs5MjUxLDEwIEBAIHN0 YXRpYyBpbnQgaW50ZWxfZ2VuMl9xdWV1ZV9mbGlwKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4g ICAJCQkJIHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKPiAgIAkJCQkgc3RydWN0IGRybV9mcmFtZWJ1 ZmZlciAqZmIsCj4gICAJCQkJIHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmosCj4gLQkJ CQkgc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZywKPiArCQkJCSBzdHJ1Y3QgZHJtX2k5MTVf Z2VtX3JlcXVlc3QgKnJlcSwKPiAgIAkJCQkgdWludDMyX3QgZmxhZ3MpCj4gICB7Cj4gKwlzdHJ1 Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nID0gcmVxLT5yaW5nOwo+ICAgCXN0cnVjdCBpbnRlbF9j cnRjICppbnRlbF9jcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjKTsKPiAgIAl1MzIgZmxpcF9tYXNr Owo+ICAgCWludCByZXQ7Cj4gQEAgLTkyNzgsNyArOTI3OSw2IEBAIHN0YXRpYyBpbnQgaW50ZWxf Z2VuMl9xdWV1ZV9mbGlwKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gICAJaW50ZWxfcmluZ19l bWl0KHJpbmcsIDApOyAvKiBhdXggZGlzcGxheSBiYXNlIGFkZHJlc3MsIHVudXNlZCAqLwo+Cj4g ICAJaW50ZWxfbWFya19wYWdlX2ZsaXBfYWN0aXZlKGludGVsX2NydGMpOwo+IC0JX19pbnRlbF9y aW5nX2FkdmFuY2UocmluZyk7Cj4gICAJcmV0dXJuIDA7Cj4gICB9Cj4KPiBAQCAtOTI4Niw5ICs5 Mjg2LDEwIEBAIHN0YXRpYyBpbnQgaW50ZWxfZ2VuM19xdWV1ZV9mbGlwKHN0cnVjdCBkcm1fZGV2 aWNlICpkZXYsCj4gICAJCQkJIHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKPiAgIAkJCQkgc3RydWN0 IGRybV9mcmFtZWJ1ZmZlciAqZmIsCj4gICAJCQkJIHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0 ICpvYmosCj4gLQkJCQkgc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZywKPiArCQkJCSBzdHJ1 Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSwKPiAgIAkJCQkgdWludDMyX3QgZmxhZ3MpCj4g ICB7Cj4gKwlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nID0gcmVxLT5yaW5nOwo+ICAgCXN0 cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjKTsKPiAgIAl1 MzIgZmxpcF9tYXNrOwo+ICAgCWludCByZXQ7Cj4gQEAgLTkzMTAsNyArOTMxMSw2IEBAIHN0YXRp YyBpbnQgaW50ZWxfZ2VuM19xdWV1ZV9mbGlwKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gICAJ aW50ZWxfcmluZ19lbWl0KHJpbmcsIE1JX05PT1ApOwo+Cj4gICAJaW50ZWxfbWFya19wYWdlX2Zs aXBfYWN0aXZlKGludGVsX2NydGMpOwo+IC0JX19pbnRlbF9yaW5nX2FkdmFuY2UocmluZyk7Cj4g ICAJcmV0dXJuIDA7Cj4gICB9Cj4KPiBAQCAtOTMxOCw5ICs5MzE4LDEwIEBAIHN0YXRpYyBpbnQg aW50ZWxfZ2VuNF9xdWV1ZV9mbGlwKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gICAJCQkJIHN0 cnVjdCBkcm1fY3J0YyAqY3J0YywKPiAgIAkJCQkgc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIs Cj4gICAJCQkJIHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmosCj4gLQkJCQkgc3RydWN0 IGludGVsX2VuZ2luZV9jcyAqcmluZywKPiArCQkJCSBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVl c3QgKnJlcSwKPiAgIAkJCQkgdWludDMyX3QgZmxhZ3MpCj4gICB7Cj4gKwlzdHJ1Y3QgaW50ZWxf ZW5naW5lX2NzICpyaW5nID0gcmVxLT5yaW5nOwo+ICAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7Cj4gICAJc3RydWN0IGludGVsX2NydGMgKmlu dGVsX2NydGMgPSB0b19pbnRlbF9jcnRjKGNydGMpOwo+ICAgCXVpbnQzMl90IHBmLCBwaXBlc3Jj Owo+IEBAIC05MzQ5LDcgKzkzNTAsNiBAQCBzdGF0aWMgaW50IGludGVsX2dlbjRfcXVldWVfZmxp cChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ICAgCWludGVsX3JpbmdfZW1pdChyaW5nLCBwZiB8 IHBpcGVzcmMpOwo+Cj4gICAJaW50ZWxfbWFya19wYWdlX2ZsaXBfYWN0aXZlKGludGVsX2NydGMp Owo+IC0JX19pbnRlbF9yaW5nX2FkdmFuY2UocmluZyk7Cj4gICAJcmV0dXJuIDA7Cj4gICB9Cj4K PiBAQCAtOTM1Nyw5ICs5MzU3LDEwIEBAIHN0YXRpYyBpbnQgaW50ZWxfZ2VuNl9xdWV1ZV9mbGlw KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gICAJCQkJIHN0cnVjdCBkcm1fY3J0YyAqY3J0YywK PiAgIAkJCQkgc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIsCj4gICAJCQkJIHN0cnVjdCBkcm1f aTkxNV9nZW1fb2JqZWN0ICpvYmosCj4gLQkJCQkgc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmlu ZywKPiArCQkJCSBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSwKPiAgIAkJCQkgdWlu dDMyX3QgZmxhZ3MpCj4gICB7Cj4gKwlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nID0gcmVx LT5yaW5nOwo+ICAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2 X3ByaXZhdGU7Cj4gICAJc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMgPSB0b19pbnRlbF9j cnRjKGNydGMpOwo+ICAgCXVpbnQzMl90IHBmLCBwaXBlc3JjOwo+IEBAIC05Mzg1LDcgKzkzODYs NiBAQCBzdGF0aWMgaW50IGludGVsX2dlbjZfcXVldWVfZmxpcChzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2LAo+ICAgCWludGVsX3JpbmdfZW1pdChyaW5nLCBwZiB8IHBpcGVzcmMpOwo+Cj4gICAJaW50 ZWxfbWFya19wYWdlX2ZsaXBfYWN0aXZlKGludGVsX2NydGMpOwo+IC0JX19pbnRlbF9yaW5nX2Fk dmFuY2UocmluZyk7Cj4gICAJcmV0dXJuIDA7Cj4gICB9Cj4KPiBAQCAtOTM5Myw5ICs5MzkzLDEw IEBAIHN0YXRpYyBpbnQgaW50ZWxfZ2VuN19xdWV1ZV9mbGlwKHN0cnVjdCBkcm1fZGV2aWNlICpk ZXYsCj4gICAJCQkJIHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKPiAgIAkJCQkgc3RydWN0IGRybV9m cmFtZWJ1ZmZlciAqZmIsCj4gICAJCQkJIHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmos Cj4gLQkJCQkgc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZywKPiArCQkJCSBzdHJ1Y3QgZHJt X2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSwKPiAgIAkJCQkgdWludDMyX3QgZmxhZ3MpCj4gICB7Cj4g KwlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nID0gcmVxLT5yaW5nOwo+ICAgCXN0cnVjdCBp bnRlbF9jcnRjICppbnRlbF9jcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjKTsKPiAgIAl1aW50MzJf dCBwbGFuZV9iaXQgPSAwOwo+ICAgCWludCBsZW4sIHJldDsKPiBAQCAtOTQ4MCw3ICs5NDgxLDYg QEAgc3RhdGljIGludCBpbnRlbF9nZW43X3F1ZXVlX2ZsaXAoc3RydWN0IGRybV9kZXZpY2UgKmRl diwKPiAgIAlpbnRlbF9yaW5nX2VtaXQocmluZywgKE1JX05PT1ApKTsKPgo+ICAgCWludGVsX21h cmtfcGFnZV9mbGlwX2FjdGl2ZShpbnRlbF9jcnRjKTsKPiAtCV9faW50ZWxfcmluZ19hZHZhbmNl KHJpbmcpOwo+ICAgCXJldHVybiAwOwo+ICAgfQo+Cj4gQEAgLTk2MzYsNyArOTYzNiw3IEBAIHN0 YXRpYyBpbnQgaW50ZWxfZGVmYXVsdF9xdWV1ZV9mbGlwKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYs Cj4gICAJCQkJICAgIHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKPiAgIAkJCQkgICAgc3RydWN0IGRy bV9mcmFtZWJ1ZmZlciAqZmIsCj4gICAJCQkJICAgIHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0 ICpvYmosCj4gLQkJCQkgICAgc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZywKPiArCQkJCSAg ICBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSwKPiAgIAkJCQkgICAgdWludDMyX3Qg ZmxhZ3MpCj4gICB7Cj4gICAJcmV0dXJuIC1FTk9ERVY7Cj4gQEAgLTk3MTUsNiArOTcxNSw3IEBA IHN0YXRpYyBpbnQgaW50ZWxfY3J0Y19wYWdlX2ZsaXAoc3RydWN0IGRybV9jcnRjICpjcnRjLAo+ ICAgCWVudW0gcGlwZSBwaXBlID0gaW50ZWxfY3J0Yy0+cGlwZTsKPiAgIAlzdHJ1Y3QgaW50ZWxf dW5waW5fd29yayAqd29yazsKPiAgIAlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nOwo+ICsJ c3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXF1ZXN0Owo+ICAgCWludCByZXQ7Cj4KPiAg IAkvKgo+IEBAIC05ODI4LDEzICs5ODI5LDIwIEBAIHN0YXRpYyBpbnQgaW50ZWxfY3J0Y19wYWdl X2ZsaXAoc3RydWN0IGRybV9jcnRjICpjcnRjLAo+ICAgCQlpOTE1X2dlbV9yZXF1ZXN0X2Fzc2ln bigmd29yay0+ZmxpcF9xdWV1ZWRfcmVxLAo+ICAgCQkJCQlvYmotPmxhc3Rfd3JpdGVfcmVxKTsK PiAgIAl9IGVsc2Ugewo+IC0JCXJldCA9IGRldl9wcml2LT5kaXNwbGF5LnF1ZXVlX2ZsaXAoZGV2 LCBjcnRjLCBmYiwgb2JqLCByaW5nLAo+IC0JCQkJCQkgICBwYWdlX2ZsaXBfZmxhZ3MpOwo+ICsJ CXJldCA9IGRldl9wcml2LT5ndC5hbGxvY19yZXF1ZXN0KHJpbmcsIHJpbmctPmRlZmF1bHRfY29u dGV4dCwgJnJlcXVlc3QpOwo+ICAgCQlpZiAocmV0KQo+ICAgCQkJZ290byBjbGVhbnVwX3VucGlu Owo+Cj4gLQkJaTkxNV9nZW1fcmVxdWVzdF9hc3NpZ24oJndvcmstPmZsaXBfcXVldWVkX3JlcSwK PiAtCQkJCQlpbnRlbF9yaW5nX2dldF9yZXF1ZXN0KHJpbmcpKTsKPiArCQlyZXQgPSBkZXZfcHJp di0+ZGlzcGxheS5xdWV1ZV9mbGlwKGRldiwgY3J0YywgZmIsIG9iaiwgcmVxdWVzdCwKPiArCQkJ CQkJICAgcGFnZV9mbGlwX2ZsYWdzKTsKPiArCQlpZiAocmV0KQo+ICsJCQlnb3RvIGNsZWFudXBf cmVxdWVzdDsKPiArCj4gKwkJaTkxNV9nZW1fcmVxdWVzdF9hc3NpZ24oJndvcmstPmZsaXBfcXVl dWVkX3JlcSwgcmVxdWVzdCk7Cj4gKwo+ICsJCXJldCA9IGk5MTVfYWRkX3JlcXVlc3Rfbm9fZmx1 c2gocmVxdWVzdC0+cmluZyk7Cj4gKwkJaWYgKHJldCkKPiArCQkJZ290byBjbGVhbnVwX3JlcXVl c3RfYXNzaWduOwo+ICAgCX0KPgo+ICAgCXdvcmstPmZsaXBfcXVldWVkX3ZibGFuayA9IGRybV92 YmxhbmtfY291bnQoZGV2LCBpbnRlbF9jcnRjLT5waXBlKTsKPiBAQCAtOTg1MSw2ICs5ODU5LDEx IEBAIHN0YXRpYyBpbnQgaW50ZWxfY3J0Y19wYWdlX2ZsaXAoc3RydWN0IGRybV9jcnRjICpjcnRj LAo+Cj4gICAJcmV0dXJuIDA7Cj4KPiArY2xlYW51cF9yZXF1ZXN0X2Fzc2lnbjoKPiArCWk5MTVf Z2VtX3JlcXVlc3RfYXNzaWduKCZ3b3JrLT5mbGlwX3F1ZXVlZF9yZXEsIE5VTEwpOwo+ICtjbGVh bnVwX3JlcXVlc3Q6Cj4gKwlpOTE1X2dlbV9yZXF1ZXN0X3VucmVmZXJlbmNlKHJlcXVlc3QpOwo+ ICsKPiAgIGNsZWFudXBfdW5waW46Cj4gICAJaW50ZWxfdW5waW5fZmJfb2JqKG9iaik7Cj4gICBj bGVhbnVwX3BlbmRpbmc6Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X3JpbmdidWZmZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuYwo+ IGluZGV4IGVmYjE3MjkuLjE4ZDEyYTUgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfcmluZ2J1ZmZlci5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf cmluZ2J1ZmZlci5jCj4gQEAgLTgxLDcgKzgxLDcgQEAgYm9vbCBpbnRlbF9yaW5nX3N0b3BwZWQo c3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZykKPiAgIAlyZXR1cm4gZGV2X3ByaXYtPmdwdV9l cnJvci5zdG9wX3JpbmdzICYgaW50ZWxfcmluZ19mbGFnKHJpbmcpOwo+ICAgfQo+Cj4gLXZvaWQg X19pbnRlbF9yaW5nX2FkdmFuY2Uoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZykKPiArc3Rh dGljIHZvaWQgX19pbnRlbF9yaW5nX2FkdmFuY2Uoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmlu ZykKPiAgIHsKPiAgIAlzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmluZ2J1ZiA9IHJpbmctPmJ1 ZmZlcjsKPiAgIAlyaW5nYnVmLT50YWlsICY9IHJpbmdidWYtPnNpemUgLSAxOwo+IGRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmggYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmgKPiBpbmRleCBjMzJmNWExLi4yNWQ1ZWRlIDEw MDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuaAo+ICsr KyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuaAo+IEBAIC00MTAsNyAr NDEwLDYgQEAgaW50IF9faW50ZWxfcmluZ19zcGFjZShpbnQgaGVhZCwgaW50IHRhaWwsIGludCBz aXplKTsKPiAgIHZvaWQgaW50ZWxfcmluZ191cGRhdGVfc3BhY2Uoc3RydWN0IGludGVsX3Jpbmdi dWZmZXIgKnJpbmdidWYpOwo+ICAgaW50IGludGVsX3Jpbmdfc3BhY2Uoc3RydWN0IGludGVsX3Jp bmdidWZmZXIgKnJpbmdidWYpOwo+ICAgYm9vbCBpbnRlbF9yaW5nX3N0b3BwZWQoc3RydWN0IGlu dGVsX2VuZ2luZV9jcyAqcmluZyk7Cj4gLXZvaWQgX19pbnRlbF9yaW5nX2FkdmFuY2Uoc3RydWN0 IGludGVsX2VuZ2luZV9jcyAqcmluZyk7Cj4KPiAgIGludCBfX211c3RfY2hlY2sgaW50ZWxfcmlu Z19pZGxlKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcpOwo+ICAgdm9pZCBpbnRlbF9yaW5n X2luaXRfc2Vxbm8oc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZywgdTMyIHNlcW5vKTsKPgoK Q291bGQgeW91IHBlcmhhcHMgbWFrZSBhIHNtYWxsIG5vdGUgaW4gdGhlIGNvbW1pdCBtZXNzYWdl IHRvIGNsYXJpZnkgd2h5IAp5b3UgcmVtb3ZlIF9faW50ZWxfcmluZ19hZHZhbmNlIGV2ZXJ5d2hl cmU/IEFmdGVyIGRpc2N1c3NpbmcgaXQgd2l0aCB5b3UgCkkgdW5kZXJzdG9vZCB0aGF0IGl0J3Mg YmVjYXVzZSB3ZSBhbHJlYWR5IGRvIHRoZSBjb3JyZXNwb25kaW5nIG9wZXJhdGlvbiAKaW4gaTkx NV9hZGRfcmVxdWVzdF9ub19mbHVzaCB0aGF0IGlzIGFkZGVkIHRvIGludGVsX2NydGNfcGFnZV9m bGlwIGJ1dCAKc2luY2UgdGhlc2UgcGllY2VzIG9mIGNvZGUgYXJlIHNvIGZhciBmcm9tIGVhY2gg b3RoZXIgaXQncyBub3QgZW50aXJlbHkgCm9idmlvdXMgZnJvbSB0aGUgc3RhcnQgdGhhdCB0aGV5 IGhhdmUgc29tZXRoaW5nIHRvIGRvIHdpdGggZWFjaCBvdGhlci4KCk9yIGFtIEkgdGhlIG9ubHkg b25lIHdobyB0aGlua3MgdGhpcyBpcyBub3QgdHJpdmlhbD8KClRoYW5rcywKVG9tYXMKCl9fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWls aW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMuZnJl ZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==