From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paulo Zanoni Subject: Re: [PATCH 1/6] drm/i915/skl: Move per-pipe ddb allocations into crtc states Date: Wed, 05 Oct 2016 17:23:36 -0300 Message-ID: <1475699016.2381.55.camel@intel.com> References: <1475681598-12081-1-git-send-email-cpaul@redhat.com> <1475681598-12081-2-git-send-email-cpaul@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1475681598-12081-2-git-send-email-cpaul@redhat.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Lyude , intel-gfx@lists.freedesktop.org Cc: David Airlie , Daniel Vetter , linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org RW0gUXVhLCAyMDE2LTEwLTA1IMOgcyAxMTozMyAtMDQwMCwgTHl1ZGUgZXNjcmV2ZXU6Cj4gRmly c3QgcGFydCBvZiBjbGVhbmluZyB1cCBhbGwgb2YgdGhlIHNrbCB3YXRlcm1hcmsgY29kZS4gVGhp cyBtb3Zlcwo+IHRoZQo+IHN0cnVjdHVyZXMgZm9yIHN0b3JpbmcgdGhlIGRkYiBhbGxvY2F0aW9u cyBvZiBlYWNoIHBpcGUgaW50bwo+IGludGVsX2NydGNfc3RhdGUsIGFsb25nIHdpdGggbW92aW5n IHRoZSBzdHJ1Y3R1cmVzIGZvciBzdG9yaW5nIHRoZQo+IGN1cnJlbnQgZGRiIGFsbG9jYXRpb25z IGFjdGl2ZSBvbiBoYXJkd2FyZSBpbnRvIGludGVsX2NydGMuCj4gCj4gU2lnbmVkLW9mZi1ieTog THl1ZGUgPGNwYXVsQHJlZGhhdC5jb20+Cj4gQ2M6IE1hYXJ0ZW4gTGFua2hvcnN0IDxtYWFydGVu Lmxhbmtob3JzdEBsaW51eC5pbnRlbC5jb20+Cj4gQ2M6IFZpbGxlIFN5cmrDpGzDpCA8dmlsbGUu c3lyamFsYUBsaW51eC5pbnRlbC5jb20+Cj4gQ2M6IE1hdHQgUm9wZXIgPG1hdHRoZXcuZC5yb3Bl ckBpbnRlbC5jb20+Cj4gLS0tCj4gwqBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5owqDC oMKgwqDCoMKgfMKgwqAxIC0KPiDCoGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXku YyB8IDE2ICsrKysrKysrLS0tLS0tLQo+IMKgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2 LmjCoMKgwqDCoMKgfMKgwqA4ICsrKysrLS0tCj4gwqBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9wbS5jwqDCoMKgwqDCoMKgfCA0MCArKysrKysrKysrKysrKystLS0tLS0tLS0tLQo+IC0tLS0t LS0tLS0KPiDCoDQgZmlsZXMgY2hhbmdlZCwgMzAgaW5zZXJ0aW9ucygrKSwgMzUgZGVsZXRpb25z KC0pCj4gCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiBpbmRleCBmOGM2NmVlLi44NWU1NDFj IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiArKysgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4gQEAgLTE2MzYsNyArMTYzNiw2IEBAIHN0 YXRpYyBpbmxpbmUgYm9vbCBza2xfZGRiX2VudHJ5X2VxdWFsKGNvbnN0Cj4gc3RydWN0IHNrbF9k ZGJfZW50cnkgKmUxLAo+IMKgfQo+IMKgCj4gwqBzdHJ1Y3Qgc2tsX2RkYl9hbGxvY2F0aW9uIHsK PiAtCXN0cnVjdCBza2xfZGRiX2VudHJ5IHBpcGVbSTkxNV9NQVhfUElQRVNdOwo+IMKgCXN0cnVj dCBza2xfZGRiX2VudHJ5IHBsYW5lW0k5MTVfTUFYX1BJUEVTXVtJOTE1X01BWF9QTEFORVNdOwo+ IC8qIHBhY2tlZC91diAqLwo+IMKgCXN0cnVjdCBza2xfZGRiX2VudHJ5Cj4geV9wbGFuZVtJOTE1 X01BWF9QSVBFU11bSTkxNV9NQVhfUExBTkVTXTsKPiDCoH07Cj4gZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfZGlzcGxheS5jCj4gaW5kZXggYTM2NjY1Ni4uMTc3MzNhZiAxMDA2NDQKPiAtLS0gYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPiArKysgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPiBAQCAtMTQyMzUsMTIgKzE0MjM1LDExIEBAIHN0YXRp YyB2b2lkIHNrbF91cGRhdGVfY3J0Y3Moc3RydWN0Cj4gZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUs Cj4gwqAJCQnCoMKgwqDCoMKgdW5zaWduZWQgaW50ICpjcnRjX3ZibGFua19tYXNrKQo+IMKgewo+ IMKgCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBzdGF0ZS0+ZGV2Owo+IC0Jc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYpOwo+IMKgCXN0cnVjdCBpbnRlbF9h dG9taWNfc3RhdGUgKmludGVsX3N0YXRlID0KPiB0b19pbnRlbF9hdG9taWNfc3RhdGUoc3RhdGUp Owo+IMKgCXN0cnVjdCBkcm1fY3J0YyAqY3J0YzsKPiArCXN0cnVjdCBpbnRlbF9jcnRjICppbnRl bF9jcnRjOwo+IMKgCXN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqb2xkX2NydGNfc3RhdGU7Cj4gLQlz dHJ1Y3Qgc2tsX2RkYl9hbGxvY2F0aW9uICpuZXdfZGRiID0gJmludGVsX3N0YXRlLQo+ID53bV9y ZXN1bHRzLmRkYjsKPiAtCXN0cnVjdCBza2xfZGRiX2FsbG9jYXRpb24gKmN1cl9kZGIgPSAmZGV2 X3ByaXYtCj4gPndtLnNrbF9ody5kZGI7Cj4gKwlzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3N0 YXRlOwo+IMKgCXVuc2lnbmVkIGludCB1cGRhdGVkID0gMDsKPiDCoAlib29sIHByb2dyZXNzOwo+ IMKgCWVudW0gcGlwZSBwaXBlOwo+IEBAIC0xNDI1OCwxMiArMTQyNTcsMTQgQEAgc3RhdGljIHZv aWQgc2tsX3VwZGF0ZV9jcnRjcyhzdHJ1Y3QKPiBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSwKPiDC oAkJZm9yX2VhY2hfY3J0Y19pbl9zdGF0ZShzdGF0ZSwgY3J0Yywgb2xkX2NydGNfc3RhdGUsCj4g aSkgewo+IMKgCQkJYm9vbCB2Ymxfd2FpdCA9IGZhbHNlOwo+IMKgCQkJdW5zaWduZWQgaW50IGNt YXNrID0gZHJtX2NydGNfbWFzayhjcnRjKTsKPiAtCQkJcGlwZSA9IHRvX2ludGVsX2NydGMoY3J0 YyktPnBpcGU7Cj4gKwo+ICsJCQlpbnRlbF9jcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjKTsKPiAr CQkJY3N0YXRlID0gdG9faW50ZWxfY3J0Y19zdGF0ZShjcnRjLT5zdGF0ZSk7Cj4gKwkJCXBpcGUg PSBpbnRlbF9jcnRjLT5waXBlOwo+IMKgCj4gwqAJCQlpZiAodXBkYXRlZCAmIGNtYXNrIHx8ICFj cnRjLT5zdGF0ZS0+YWN0aXZlKQo+IMKgCQkJCWNvbnRpbnVlOwo+IC0JCQlpZiAoc2tsX2RkYl9h bGxvY2F0aW9uX292ZXJsYXBzKHN0YXRlLAo+IGN1cl9kZGIsIG5ld19kZGIsCj4gLQkJCQkJCQlw aXBlKSkKPiArCQkJaWYgKHNrbF9kZGJfYWxsb2NhdGlvbl9vdmVybGFwcyhzdGF0ZSwKPiBpbnRl bF9jcnRjKSkKPiDCoAkJCQljb250aW51ZTsKPiDCoAo+IMKgCQkJdXBkYXRlZCB8PSBjbWFzazsK PiBAQCAtMTQyNzQsNyArMTQyNzUsOCBAQCBzdGF0aWMgdm9pZCBza2xfdXBkYXRlX2NydGNzKHN0 cnVjdAo+IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlLAo+IMKgCQkJwqAqIHRoZW4gd2UgbmVlZCB0 byB3YWl0IGZvciBhIHZibGFuayB0byBwYXNzCj4gZm9yIHRoZQo+IMKgCQkJwqAqIG5ldyBkZGIg YWxsb2NhdGlvbiB0byB0YWtlIGVmZmVjdC4KPiDCoAkJCcKgKi8KPiAtCQkJaWYgKCFza2xfZGRi X2FsbG9jYXRpb25fZXF1YWxzKGN1cl9kZGIsCj4gbmV3X2RkYiwgcGlwZSkgJiYKPiArCQkJaWYg KCFza2xfZGRiX2VudHJ5X2VxdWFsKCZjc3RhdGUtCj4gPndtLnNrbC5kZGIsCj4gKwkJCQkJCcKg JmludGVsX2NydGMtCj4gPmh3X2RkYikgJiYKPiDCoAkJCcKgwqDCoMKgIWNydGMtPnN0YXRlLT5h Y3RpdmVfY2hhbmdlZCAmJgo+IMKgCQkJwqDCoMKgwqBpbnRlbF9zdGF0ZS0+d21fcmVzdWx0cy5k aXJ0eV9waXBlcyAhPQo+IHVwZGF0ZWQpCj4gwqAJCQkJdmJsX3dhaXQgPSB0cnVlOwo+IGRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+IGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPiBpbmRleCBmNDhlNzlhLi4zNWJhMjgyIDEwMDY0NAo+IC0t LSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4gKysrIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPiBAQCAtNDk2LDYgKzQ5Niw3IEBAIHN0cnVjdCBpbnRlbF9j cnRjX3dtX3N0YXRlIHsKPiDCoAkJc3RydWN0IHsKPiDCoAkJCS8qIGdlbjkrIG9ubHkgbmVlZHMg MS1zdGVwIHdtIHByb2dyYW1taW5nICovCj4gwqAJCQlzdHJ1Y3Qgc2tsX3BpcGVfd20gb3B0aW1h bDsKPiArCQkJc3RydWN0IHNrbF9kZGJfZW50cnkgZGRiOwo+IMKgCj4gwqAJCQkvKiBjYWNoZWQg cGxhbmUgZGF0YSByYXRlICovCj4gwqAJCQl1bnNpZ25lZCBwbGFuZV9kYXRhX3JhdGVbSTkxNV9N QVhfUExBTkVTXTsKPiBAQCAtNzMzLDYgKzczNCw5IEBAIHN0cnVjdCBpbnRlbF9jcnRjIHsKPiDC oAkJYm9vbCBjeHNyX2FsbG93ZWQ7Cj4gwqAJfSB3bTsKPiDCoAo+ICsJLyogZ2VuOSs6IGRkYiBh bGxvY2F0aW9uIGN1cnJlbnRseSBiZWluZyB1c2VkICovCj4gKwlzdHJ1Y3Qgc2tsX2RkYl9lbnRy eSBod19kZGI7Cj4gKwo+IMKgCWludCBzY2FubGluZV9vZmZzZXQ7Cj4gwqAKPiDCoAlzdHJ1Y3Qg ewo+IEBAIC0xNzU1LDkgKzE3NTksNyBAQCBib29sIHNrbF9kZGJfYWxsb2NhdGlvbl9lcXVhbHMo Y29uc3Qgc3RydWN0Cj4gc2tsX2RkYl9hbGxvY2F0aW9uICpvbGQsCj4gwqAJCQnCoMKgwqDCoMKg wqDCoGNvbnN0IHN0cnVjdCBza2xfZGRiX2FsbG9jYXRpb24gKm5ldywKPiDCoAkJCcKgwqDCoMKg wqDCoMKgZW51bSBwaXBlIHBpcGUpOwo+IMKgYm9vbCBza2xfZGRiX2FsbG9jYXRpb25fb3Zlcmxh cHMoc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlLAo+IC0JCQkJwqBjb25zdCBzdHJ1Y3Qg c2tsX2RkYl9hbGxvY2F0aW9uCj4gKm9sZCwKPiAtCQkJCcKgY29uc3Qgc3RydWN0IHNrbF9kZGJf YWxsb2NhdGlvbgo+ICpuZXcsCj4gLQkJCQnCoGVudW0gcGlwZSBwaXBlKTsKPiArCQkJCcKgc3Ry dWN0IGludGVsX2NydGMgKmludGVsX2NydGMpOwo+IMKgdm9pZCBza2xfd3JpdGVfY3Vyc29yX3dt KHN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjLAo+IMKgCQkJwqBjb25zdCBzdHJ1Y3Qgc2ts X3dtX3ZhbHVlcyAqd20pOwo+IMKgdm9pZCBza2xfd3JpdGVfcGxhbmVfd20oc3RydWN0IGludGVs X2NydGMgKmludGVsX2NydGMsCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX3BtLmMKPiBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMKPiBpbmRleCA3ZjE3 NDhhLi4wMzgzNTE2IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Bt LmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jCj4gQEAgLTMwNTgsNyAr MzA1OCw2IEBAIHNrbF9kZGJfZ2V0X3BpcGVfYWxsb2NhdGlvbl9saW1pdHMoc3RydWN0Cj4gZHJt X2RldmljZSAqZGV2LAo+IMKgCXN0cnVjdCBkcm1fY3J0YyAqZm9yX2NydGMgPSBjc3RhdGUtPmJh c2UuY3J0YzsKPiDCoAl1bnNpZ25lZCBpbnQgcGlwZV9zaXplLCBkZGJfc2l6ZTsKPiDCoAlpbnQg bnRoX2FjdGl2ZV9waXBlOwo+IC0JaW50IHBpcGUgPSB0b19pbnRlbF9jcnRjKGZvcl9jcnRjKS0+ cGlwZTsKPiDCoAo+IMKgCWlmIChXQVJOX09OKCFzdGF0ZSkgfHwgIWNzdGF0ZS0+YmFzZS5hY3Rp dmUpIHsKPiDCoAkJYWxsb2MtPnN0YXJ0ID0gMDsKPiBAQCAtMzA4Niw3ICszMDg1LDcgQEAgc2ts X2RkYl9nZXRfcGlwZV9hbGxvY2F0aW9uX2xpbWl0cyhzdHJ1Y3QKPiBkcm1fZGV2aWNlICpkZXYs Cj4gwqAJwqAqIHdlIGN1cnJlbnRseSBob2xkLgo+IMKgCcKgKi8KPiDCoAlpZiAoIWludGVsX3N0 YXRlLT5hY3RpdmVfcGlwZV9jaGFuZ2VzKSB7Cj4gLQkJKmFsbG9jID0gZGV2X3ByaXYtPndtLnNr bF9ody5kZGIucGlwZVtwaXBlXTsKPiArCQkqYWxsb2MgPSB0b19pbnRlbF9jcnRjKGZvcl9jcnRj KS0+aHdfZGRiOwo+IMKgCQlyZXR1cm47Cj4gwqAJfQo+IMKgCj4gQEAgLTMzNTQsNyArMzM1Myw3 IEBAIHNrbF9hbGxvY2F0ZV9waXBlX2RkYihzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZQo+ICpjc3Rh dGUsCj4gwqAJc3RydWN0IGRybV9wbGFuZSAqcGxhbmU7Cj4gwqAJc3RydWN0IGRybV9wbGFuZV9z dGF0ZSAqcHN0YXRlOwo+IMKgCWVudW0gcGlwZSBwaXBlID0gaW50ZWxfY3J0Yy0+cGlwZTsKPiAt CXN0cnVjdCBza2xfZGRiX2VudHJ5ICphbGxvYyA9ICZkZGItPnBpcGVbcGlwZV07Cj4gKwlzdHJ1 Y3Qgc2tsX2RkYl9lbnRyeSAqYWxsb2MgPSAmY3N0YXRlLT53bS5za2wuZGRiOwo+IMKgCXVpbnQx Nl90IGFsbG9jX3NpemUsIHN0YXJ0LCBjdXJzb3JfYmxvY2tzOwo+IMKgCXVpbnQxNl90ICptaW5p bXVtID0gY3N0YXRlLT53bS5za2wubWluaW11bV9ibG9ja3M7Cj4gwqAJdWludDE2X3QgKnlfbWlu aW11bSA9IGNzdGF0ZS0+d20uc2tsLm1pbmltdW1feV9ibG9ja3M7Cj4gQEAgLTMzNjYsNyArMzM2 NSw3IEBAIHNrbF9hbGxvY2F0ZV9waXBlX2RkYihzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZQo+ICpj c3RhdGUsCj4gwqAJCXJldHVybiAwOwo+IMKgCj4gwqAJaWYgKCFjc3RhdGUtPmJhc2UuYWN0aXZl KSB7Cj4gLQkJZGRiLT5waXBlW3BpcGVdLnN0YXJ0ID0gZGRiLT5waXBlW3BpcGVdLmVuZCA9IDA7 Cj4gKwkJbWVtc2V0KGFsbG9jLCAwLCBzaXplb2YoKmFsbG9jKSk7CgpOaXRwaWNrOiBJIHdvdWxk IGhhdmUga2VwdCB0aGUgZG91YmxlIGFzc2lnbm1lbnQgaGVyZSBpbnN0ZWFkIG9mCmNhbGxpbmcg bWVtc2V0OgphbGxvYy0+c3RhcnQgPSBhbGxvYy0+ZW5kID0gMDsKCkFueXdheSwgdGhpcyBjaHVu ayB3aWxsIGhhdmUgYSBzbWFsbCBjb25mbGljdCB3aXRoIG15IGN1cnJlbnQgbXVsdGktCnBpcGUg Zml4LCBhbmQgSSdkIGxpa2UgdG8gc2VlIHRoZSBtdWx0aS1waXBlIGZpeCBnZXQgbWVyZ2VkIGJl Zm9yZSB0aGlzCnNpbmNlIGl0IHdpbGwgbWFrZSBpdCBtdWNoIGVhc2llciB0byBiYWNrcG9ydCBp dCB0byBzdGFibGUgaWYgd2UgZG9uJ3QKaGF2ZSB5ZXQgYW5vdGhlciByb3VuZCBvZiBjb2RlIGNo dXJuIHNlcGFyYXRpbmcgc3RhYmxlIGZyb20gZGlucS4KCkFueXdheSwgdGhpcyBwYXRjaCBsb29r cyBjb3JyZWN0IGFuZCBhbmQgaXQgc2VlbXMgdGhlIG11bHRpLXBpcGUgZml4Cndvbid0IHJlcXVp cmUgYW55IGNoYW5nZSBiZXNpZGVzIHRoZSBzbWFsbCByZWJhc2UgYWJvdmUuIEknbSBzdGlsbApn b2luZyB0byB0ZXN0IHRoZSBzZXJpZXMgbGF0ZXIsIGJ1dCBJIHN1cHBvc2UgYSByZWJhc2VkIHZl cnNpb24gb2YgdGhpcwpwYXRjaCB3aWxsIGJlIHJlYWR5IHRvIGdldCBhIHJldmlld2VkLWJ5IHRh ZyBmcm9tIG1lLgoKCj4gwqAJCW1lbXNldChkZGItPnBsYW5lW3BpcGVdLCAwLCBzaXplb2YoZGRi LQo+ID5wbGFuZVtwaXBlXSkpOwo+IMKgCQltZW1zZXQoZGRiLT55X3BsYW5lW3BpcGVdLCAwLCBz aXplb2YoZGRiLQo+ID55X3BsYW5lW3BpcGVdKSk7Cj4gwqAJCXJldHVybiAwOwo+IEBAIC0zODk1 LDE0ICszODk0LDYgQEAgdm9pZCBza2xfd3JpdGVfY3Vyc29yX3dtKHN0cnVjdCBpbnRlbF9jcnRj Cj4gKmludGVsX2NydGMsCj4gwqAJCQnCoMKgwqDCoCZ3bS0+ZGRiLnBsYW5lW3BpcGVdW1BMQU5F X0NVUlNPUl0pOwo+IMKgfQo+IMKgCj4gLWJvb2wgc2tsX2RkYl9hbGxvY2F0aW9uX2VxdWFscyhj b25zdCBzdHJ1Y3Qgc2tsX2RkYl9hbGxvY2F0aW9uICpvbGQsCj4gLQkJCcKgwqDCoMKgwqDCoMKg Y29uc3Qgc3RydWN0IHNrbF9kZGJfYWxsb2NhdGlvbiAqbmV3LAo+IC0JCQnCoMKgwqDCoMKgwqDC oGVudW0gcGlwZSBwaXBlKQo+IC17Cj4gLQlyZXR1cm4gbmV3LT5waXBlW3BpcGVdLnN0YXJ0ID09 IG9sZC0+cGlwZVtwaXBlXS5zdGFydCAmJgo+IC0JwqDCoMKgwqDCoMKgwqBuZXctPnBpcGVbcGlw ZV0uZW5kID09IG9sZC0+cGlwZVtwaXBlXS5lbmQ7Cj4gLX0KPiAtCj4gwqBzdGF0aWMgaW5saW5l IGJvb2wgc2tsX2RkYl9lbnRyaWVzX292ZXJsYXAoY29uc3Qgc3RydWN0Cj4gc2tsX2RkYl9lbnRy eSAqYSwKPiDCoAkJCQkJwqDCoMKgY29uc3Qgc3RydWN0Cj4gc2tsX2RkYl9lbnRyeSAqYikKPiDC oHsKPiBAQCAtMzkxMCwyMiArMzkwMSwyMiBAQCBzdGF0aWMgaW5saW5lIGJvb2wKPiBza2xfZGRi X2VudHJpZXNfb3ZlcmxhcChjb25zdCBzdHJ1Y3Qgc2tsX2RkYl9lbnRyeSAqYSwKPiDCoH0KPiDC oAo+IMKgYm9vbCBza2xfZGRiX2FsbG9jYXRpb25fb3ZlcmxhcHMoc3RydWN0IGRybV9hdG9taWNf c3RhdGUgKnN0YXRlLAo+IC0JCQkJwqBjb25zdCBzdHJ1Y3Qgc2tsX2RkYl9hbGxvY2F0aW9uCj4g Km9sZCwKPiAtCQkJCcKgY29uc3Qgc3RydWN0IHNrbF9kZGJfYWxsb2NhdGlvbgo+ICpuZXcsCj4g LQkJCQnCoGVudW0gcGlwZSBwaXBlKQo+ICsJCQkJwqBzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxf Y3J0YykKPiDCoHsKPiAtCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBzdGF0ZS0+ZGV2Owo+IC0J c3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGM7Cj4gLQllbnVtIHBpcGUgb3RoZXJwOwo+ICsJ c3RydWN0IGRybV9jcnRjICpvdGhlcl9jcnRjOwo+ICsJc3RydWN0IGRybV9jcnRjX3N0YXRlICpv dGhlcl9jc3RhdGU7Cj4gKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqb3RoZXJfaW50ZWxfY3J0YzsKPiAr CWNvbnN0IHN0cnVjdCBza2xfZGRiX2VudHJ5ICpkZGIgPQo+ICsJCSZ0b19pbnRlbF9jcnRjX3N0 YXRlKGludGVsX2NydGMtPmJhc2Uuc3RhdGUpLQo+ID53bS5za2wuZGRiOwo+ICsJaW50IGk7Cj4g wqAKPiAtCWZvcl9lYWNoX2ludGVsX2NydGMoZGV2LCBpbnRlbF9jcnRjKSB7Cj4gLQkJb3RoZXJw ID0gaW50ZWxfY3J0Yy0+cGlwZTsKPiArCWZvcl9lYWNoX2NydGNfaW5fc3RhdGUoc3RhdGUsIG90 aGVyX2NydGMsIG90aGVyX2NzdGF0ZSwgaSkgewo+ICsJCW90aGVyX2ludGVsX2NydGMgPSB0b19p bnRlbF9jcnRjKG90aGVyX2NydGMpOwo+IMKgCj4gLQkJaWYgKG90aGVycCA9PSBwaXBlKQo+ICsJ CWlmIChvdGhlcl9pbnRlbF9jcnRjID09IGludGVsX2NydGMpCj4gwqAJCQljb250aW51ZTsKPiDC oAo+IC0JCWlmIChza2xfZGRiX2VudHJpZXNfb3ZlcmxhcCgmbmV3LT5waXBlW3BpcGVdLAo+IC0J CQkJCcKgwqDCoMKgJm9sZC0+cGlwZVtvdGhlcnBdKSkKPiArCQlpZiAoc2tsX2RkYl9lbnRyaWVz X292ZXJsYXAoZGRiLCAmb3RoZXJfaW50ZWxfY3J0Yy0KPiA+aHdfZGRiKSkKPiDCoAkJCXJldHVy biB0cnVlOwo+IMKgCX0KPiDCoAo+IEBAIC00MDg0LDcgKzQwNzUsNiBAQCBza2xfY29weV93bV9m b3JfcGlwZShzdHJ1Y3Qgc2tsX3dtX3ZhbHVlcyAqZHN0LAo+IMKgCW1lbWNweShkc3QtPnBsYW5l X3RyYW5zW3BpcGVdLCBzcmMtPnBsYW5lX3RyYW5zW3BpcGVdLAo+IMKgCcKgwqDCoMKgwqDCoMKg c2l6ZW9mKGRzdC0+cGxhbmVfdHJhbnNbcGlwZV0pKTsKPiDCoAo+IC0JZHN0LT5kZGIucGlwZVtw aXBlXSA9IHNyYy0+ZGRiLnBpcGVbcGlwZV07Cj4gwqAJbWVtY3B5KGRzdC0+ZGRiLnlfcGxhbmVb cGlwZV0sIHNyYy0+ZGRiLnlfcGxhbmVbcGlwZV0sCj4gwqAJwqDCoMKgwqDCoMKgwqBzaXplb2Yo ZHN0LT5kZGIueV9wbGFuZVtwaXBlXSkpOwo+IMKgCW1lbWNweShkc3QtPmRkYi5wbGFuZVtwaXBl XSwgc3JjLT5kZGIucGxhbmVbcGlwZV0sCj4gQEAgLTQxOTIsNiArNDE4Miw4IEBAIHN0YXRpYyB2 b2lkIHNrbF91cGRhdGVfd20oc3RydWN0IGRybV9jcnRjCj4gKmNydGMpCj4gwqAKPiDCoAlza2xf Y29weV93bV9mb3JfcGlwZShod192YWxzLCByZXN1bHRzLCBwaXBlKTsKPiDCoAo+ICsJaW50ZWxf Y3J0Yy0+aHdfZGRiID0gY3N0YXRlLT53bS5za2wuZGRiOwo+ICsKPiDCoAltdXRleF91bmxvY2so JmRldl9wcml2LT53bS53bV9tdXRleCk7Cj4gwqB9Cj4gwqAKX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1n ZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21h aWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==