From mboxrd@z Thu Jan 1 00:00:00 1970 From: Dhinakaran Pandiyan Subject: [PATCH v5 1/5] drm: Add driver-private objects to atomic state Date: Thu, 30 Mar 2017 01:42:06 -0700 Message-ID: <1490863330-5359-2-git-send-email-dhinakaran.pandiyan@intel.com> References: <1490863330-5359-1-git-send-email-dhinakaran.pandiyan@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1490863330-5359-1-git-send-email-dhinakaran.pandiyan@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: intel-gfx@lists.freedesktop.org Cc: Archit Taneja , Daniel Vetter , dri-devel@lists.freedesktop.org, "Pandiyan, Dhinakaran" , Harry Wentland List-Id: dri-devel@lists.freedesktop.org RnJvbTogIlBhbmRpeWFuLCBEaGluYWthcmFuIiA8ZGhpbmFrYXJhbi5wYW5kaXlhbkBpbnRlbC5j b20+CgpJdCBpcyBuZWNlc3NhcnkgdG8gdHJhY2sgc3RhdGVzIGZvciBvYmplY3RzIG90aGVyIHRo YW4gY29ubmVjdG9yLCBjcnRjCmFuZCBwbGFuZSBmb3IgYXRvbWljIG1vZGVzZXRzLiBCdXQgYWRk aW5nIG9iamVjdHMgbGlrZSBEUCBNU1QgbGluawpiYW5kd2lkdGggdG8gZHJtX2F0b21pY19zdGF0 ZSB3b3VsZCBtZWFuIHRoYXQgYSBub24tY29yZSBvYmplY3Qgd2lsbCBiZQptb2RpZmllZCBieSB0 aGUgY29yZSBoZWxwZXIgZnVuY3Rpb25zIGZvciBzd2FwcGluZyBhbmQgY2xlYXJpbmcKaXQncyBz dGF0ZS4gU28sIGxldHMgYWRkIHZvaWQgKiBvYmplY3RzIGFuZCBoZWxwZXIgZnVuY3Rpb25zIHRo YXQgb3BlcmF0ZQpvbiB2b2lkICogdHlwZXMgdG8ga2VlcCB0aGVzZSBvYmplY3RzIGFuZCBzdGF0 ZXMgcHJpdmF0ZSB0byB0aGUgY29yZS4KRHJpdmVycyBjYW4gdGhlbiBpbXBsZW1lbnQgc3BlY2lm aWMgZnVuY3Rpb25zIHRvIHN3YXAgYW5kIGNsZWFyIHN0YXRlcy4KVGhlIG90aGVyIGFkdmFudGFn ZSBoYXZpbmcganVzdCB2b2lkICogZm9yIHRoZXNlIG9iamVjdHMgaW4KZHJtX2F0b21pY19zdGF0 ZSBpcyB0aGF0IG9iamVjdHMgb2YgZGlmZmVyZW50IHR5cGVzIGNhbiBiZSBtYW5hZ2VkIGluIHRo ZQpzYW1lIHN0YXRlIGFycmF5LgoKdjU6IFJlbW92ZSBtb3JlIE5VTEwgY2hlY2tzIChNYWFydGVu KQp2NDogQXZvaWQgcmVkdW5kYW50IE5VTEwgY2hlY2tzIHdoZW4gcHJpdmF0ZV9vYmpzIGFycmF5 IGlzIGVtcHR5IChNYWFydGVuKQp2MzogTWFjcm8gYWxpZ25tZW50IChDaHJpcykKdjI6IEFkZGVk IGRvY3MgYW5kIG5ldyBpdGVyYXRvciB0byBmaWx0ZXIgcHJpdmF0ZSBvYmplY3RzIChEYW5pZWwp CgpDYzogRGFuaWVsIFZldHRlciA8ZGFuaWVsLnZldHRlckBmZndsbC5jaD4KQ2M6IE1hYXJ0ZW4g TGFua2hvcnN0IDxtYWFydGVuLmxhbmtob3JzdEBsaW51eC5pbnRlbC5jb20+CkNjOiBBcmNoaXQg VGFuZWphIDxhcmNoaXR0QGNvZGVhdXJvcmEub3JnPgpDYzogQ2hyaXMgV2lsc29uIDxjaHJpc0Bj aHJpcy13aWxzb24uY28udWs+CkNjOiBIYXJyeSBXZW50bGFuZCA8SGFycnkud2VudGxhbmRAYW1k LmNvbT4KCkFja2VkLWJ5OiBIYXJyeSBXZW50bGFuZCA8aGFycnkud2VudGxhbmRAYW1kLmNvbT4K U3VnZ2VzdGVkLWJ5OiBEYW5pZWwgVmV0dGVyIDxkYW5pZWwudmV0dGVyQGZmd2xsLmNoPgpTaWdu ZWQtb2ZmLWJ5OiBEaGluYWthcmFuIFBhbmRpeWFuIDxkaGluYWthcmFuLnBhbmRpeWFuQGludGVs LmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pYy5jICAgICAgICB8IDY1ICsrKysr KysrKysrKysrKysrKysrKysrKysrCiBkcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pY19oZWxwZXIu YyB8ICA1ICsrCiBpbmNsdWRlL2RybS9kcm1fYXRvbWljLmggICAgICAgICAgICB8IDkyICsrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIDMgZmlsZXMgY2hhbmdlZCwgMTYyIGlu c2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pYy5jIGIv ZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWMuYwppbmRleCA5Yjg5MmFmLi40ZDM3MDE5IDEwMDY0 NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pYy5jCisrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9kcm1fYXRvbWljLmMKQEAgLTU3LDYgKzU3LDcgQEAgdm9pZCBkcm1fYXRvbWljX3N0YXRlX2Rl ZmF1bHRfcmVsZWFzZShzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUpCiAJa2ZyZWUoc3Rh dGUtPmNvbm5lY3RvcnMpOwogCWtmcmVlKHN0YXRlLT5jcnRjcyk7CiAJa2ZyZWUoc3RhdGUtPnBs YW5lcyk7CisJa2ZyZWUoc3RhdGUtPnByaXZhdGVfb2Jqcyk7CiB9CiBFWFBPUlRfU1lNQk9MKGRy bV9hdG9taWNfc3RhdGVfZGVmYXVsdF9yZWxlYXNlKTsKIApAQCAtMTg0LDYgKzE4NSwxNyBAQCB2 b2lkIGRybV9hdG9taWNfc3RhdGVfZGVmYXVsdF9jbGVhcihzdHJ1Y3QgZHJtX2F0b21pY19zdGF0 ZSAqc3RhdGUpCiAJCXN0YXRlLT5wbGFuZXNbaV0ucHRyID0gTlVMTDsKIAkJc3RhdGUtPnBsYW5l c1tpXS5zdGF0ZSA9IE5VTEw7CiAJfQorCisJZm9yIChpID0gMDsgaSA8IHN0YXRlLT5udW1fcHJp dmF0ZV9vYmpzOyBpKyspIHsKKwkJdm9pZCAqb2JqX3N0YXRlID0gc3RhdGUtPnByaXZhdGVfb2Jq c1tpXS5vYmpfc3RhdGU7CisKKwkJc3RhdGUtPnByaXZhdGVfb2Jqc1tpXS5mdW5jcy0+ZGVzdHJv eV9zdGF0ZShvYmpfc3RhdGUpOworCQlzdGF0ZS0+cHJpdmF0ZV9vYmpzW2ldLm9iaiA9IE5VTEw7 CisJCXN0YXRlLT5wcml2YXRlX29ianNbaV0ub2JqX3N0YXRlID0gTlVMTDsKKwkJc3RhdGUtPnBy aXZhdGVfb2Jqc1tpXS5mdW5jcyA9IE5VTEw7CisJfQorCXN0YXRlLT5udW1fcHJpdmF0ZV9vYmpz ID0gMDsKKwogfQogRVhQT1JUX1NZTUJPTChkcm1fYXRvbWljX3N0YXRlX2RlZmF1bHRfY2xlYXIp OwogCkBAIC05NzgsNiArOTkwLDU5IEBAIHN0YXRpYyB2b2lkIGRybV9hdG9taWNfcGxhbmVfcHJp bnRfc3RhdGUoc3RydWN0IGRybV9wcmludGVyICpwLAogfQogCiAvKioKKyAqIGRybV9hdG9taWNf Z2V0X3ByaXZhdGVfb2JqX3N0YXRlIC0gZ2V0IHByaXZhdGUgb2JqZWN0IHN0YXRlCisgKiBAc3Rh dGU6IGdsb2JhbCBhdG9taWMgc3RhdGUKKyAqIEBvYmo6IHByaXZhdGUgb2JqZWN0IHRvIGdldCB0 aGUgc3RhdGUgZm9yCisgKiBAZnVuY3M6IHBvaW50ZXIgdG8gdGhlIHN0cnVjdCBvZiBmdW5jdGlv biBwb2ludGVycyB0aGF0IGlkZW50aWZ5IHRoZSBvYmplY3QKKyAqIHR5cGUKKyAqCisgKiBUaGlz IGZ1bmN0aW9uIHJldHVybnMgdGhlIHByaXZhdGUgb2JqZWN0IHN0YXRlIGZvciB0aGUgZ2l2ZW4g cHJpdmF0ZSBvYmplY3QsCisgKiBhbGxvY2F0aW5nIHRoZSBzdGF0ZSBpZiBuZWVkZWQuIEl0IGRv ZXMgbm90IGdyYWIgYW55IGxvY2tzIGFzIHRoZSBjYWxsZXIgaXMKKyAqIGV4cGVjdGVkIHRvIGNh cmUgb2YgYW55IHJlcXVpcmVkIGxvY2tpbmcuCisgKgorICogUkVUVVJOUzoKKyAqCisgKiBFaXRo ZXIgdGhlIGFsbG9jYXRlZCBzdGF0ZSBvciB0aGUgZXJyb3IgY29kZSBlbmNvZGVkIGludG8gYSBw b2ludGVyLgorICovCit2b2lkICoKK2RybV9hdG9taWNfZ2V0X3ByaXZhdGVfb2JqX3N0YXRlKHN0 cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSwgdm9pZCAqb2JqLAorCQkJICAgICAgY29uc3Qg c3RydWN0IGRybV9wcml2YXRlX3N0YXRlX2Z1bmNzICpmdW5jcykKK3sKKwlpbnQgaW5kZXgsIG51 bV9vYmpzLCBpOworCXNpemVfdCBzaXplOworCXN0cnVjdCBfX2RybV9wcml2YXRlX29ianNfc3Rh dGUgKmFycjsKKworCWZvciAoaSA9IDA7IGkgPCBzdGF0ZS0+bnVtX3ByaXZhdGVfb2JqczsgaSsr KQorCQlpZiAob2JqID09IHN0YXRlLT5wcml2YXRlX29ianNbaV0ub2JqICYmCisJCSAgICBzdGF0 ZS0+cHJpdmF0ZV9vYmpzW2ldLm9ial9zdGF0ZSkKKwkJCXJldHVybiBzdGF0ZS0+cHJpdmF0ZV9v YmpzW2ldLm9ial9zdGF0ZTsKKworCW51bV9vYmpzID0gc3RhdGUtPm51bV9wcml2YXRlX29ianMg KyAxOworCXNpemUgPSBzaXplb2YoKnN0YXRlLT5wcml2YXRlX29ianMpICogbnVtX29ianM7CisJ YXJyID0ga3JlYWxsb2Moc3RhdGUtPnByaXZhdGVfb2Jqcywgc2l6ZSwgR0ZQX0tFUk5FTCk7CisJ aWYgKCFhcnIpCisJCXJldHVybiBFUlJfUFRSKC1FTk9NRU0pOworCisJc3RhdGUtPnByaXZhdGVf b2JqcyA9IGFycjsKKwlpbmRleCA9IHN0YXRlLT5udW1fcHJpdmF0ZV9vYmpzOworCW1lbXNldCgm c3RhdGUtPnByaXZhdGVfb2Jqc1tpbmRleF0sIDAsIHNpemVvZigqc3RhdGUtPnByaXZhdGVfb2Jq cykpOworCisJc3RhdGUtPnByaXZhdGVfb2Jqc1tpbmRleF0ub2JqX3N0YXRlID0gZnVuY3MtPmR1 cGxpY2F0ZV9zdGF0ZShzdGF0ZSwgb2JqKTsKKwlpZiAoIXN0YXRlLT5wcml2YXRlX29ianNbaW5k ZXhdLm9ial9zdGF0ZSkKKwkJcmV0dXJuIEVSUl9QVFIoLUVOT01FTSk7CisKKwlzdGF0ZS0+cHJp dmF0ZV9vYmpzW2luZGV4XS5vYmogPSBvYmo7CisJc3RhdGUtPnByaXZhdGVfb2Jqc1tpbmRleF0u ZnVuY3MgPSBmdW5jczsKKwlzdGF0ZS0+bnVtX3ByaXZhdGVfb2JqcyA9IG51bV9vYmpzOworCisJ RFJNX0RFQlVHX0FUT01JQygiQWRkZWQgbmV3IHByaXZhdGUgb2JqZWN0IHN0YXRlICVwIHRvICVw XG4iLAorCQkJIHN0YXRlLT5wcml2YXRlX29ianNbaW5kZXhdLm9ial9zdGF0ZSwgc3RhdGUpOwor CisJcmV0dXJuIHN0YXRlLT5wcml2YXRlX29ianNbaW5kZXhdLm9ial9zdGF0ZTsKK30KK0VYUE9S VF9TWU1CT0woZHJtX2F0b21pY19nZXRfcHJpdmF0ZV9vYmpfc3RhdGUpOworCisvKioKICAqIGRy bV9hdG9taWNfZ2V0X2Nvbm5lY3Rvcl9zdGF0ZSAtIGdldCBjb25uZWN0b3Igc3RhdGUKICAqIEBz dGF0ZTogZ2xvYmFsIGF0b21pYyBzdGF0ZSBvYmplY3QKICAqIEBjb25uZWN0b3I6IGNvbm5lY3Rv ciB0byBnZXQgc3RhdGUgb2JqZWN0IGZvcgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2Ry bV9hdG9taWNfaGVscGVyLmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pY19oZWxwZXIuYwpp bmRleCBjNDUzOGM1Li5kMTQwOTRkIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0 b21pY19oZWxwZXIuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pY19oZWxwZXIuYwpA QCAtMjAwMSw2ICsyMDAxLDggQEAgdm9pZCBkcm1fYXRvbWljX2hlbHBlcl9zd2FwX3N0YXRlKHN0 cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSwKIAlzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZTsK IAlzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRlICpvbGRfcGxhbmVfc3RhdGUsICpuZXdfcGxhbmVfc3Rh dGU7CiAJc3RydWN0IGRybV9jcnRjX2NvbW1pdCAqY29tbWl0OworCXZvaWQgKm9iaiwgKm9ial9z dGF0ZTsKKwljb25zdCBzdHJ1Y3QgZHJtX3ByaXZhdGVfc3RhdGVfZnVuY3MgKmZ1bmNzOwogCiAJ aWYgKHN0YWxsKSB7CiAJCWZvcl9lYWNoX25ld19jcnRjX2luX3N0YXRlKHN0YXRlLCBjcnRjLCBu ZXdfY3J0Y19zdGF0ZSwgaSkgewpAQCAtMjA2MSw2ICsyMDYzLDkgQEAgdm9pZCBkcm1fYXRvbWlj X2hlbHBlcl9zd2FwX3N0YXRlKHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSwKIAkJc3Rh dGUtPnBsYW5lc1tpXS5zdGF0ZSA9IG9sZF9wbGFuZV9zdGF0ZTsKIAkJcGxhbmUtPnN0YXRlID0g bmV3X3BsYW5lX3N0YXRlOwogCX0KKworCV9fZm9yX2VhY2hfcHJpdmF0ZV9vYmooc3RhdGUsIG9i aiwgb2JqX3N0YXRlLCBpLCBmdW5jcykKKwkJZnVuY3MtPnN3YXBfc3RhdGUob2JqLCAmc3RhdGUt PnByaXZhdGVfb2Jqc1tpXS5vYmpfc3RhdGUpOwogfQogRVhQT1JUX1NZTUJPTChkcm1fYXRvbWlj X2hlbHBlcl9zd2FwX3N0YXRlKTsKIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0vZHJtX2F0b21p Yy5oIGIvaW5jbHVkZS9kcm0vZHJtX2F0b21pYy5oCmluZGV4IGZkMzNlZDUuLjU0YTkyMDcgMTAw NjQ0Ci0tLSBhL2luY2x1ZGUvZHJtL2RybV9hdG9taWMuaAorKysgYi9pbmNsdWRlL2RybS9kcm1f YXRvbWljLmgKQEAgLTE1NSw2ICsxNTUsNTMgQEAgc3RydWN0IF9fZHJtX2Nvbm5uZWN0b3JzX3N0 YXRlIHsKIH07CiAKIC8qKgorICogc3RydWN0IGRybV9wcml2YXRlX3N0YXRlX2Z1bmNzIC0gYXRv bWljIHN0YXRlIGZ1bmN0aW9ucyBmb3IgcHJpdmF0ZSBvYmplY3RzCisgKgorICogVGhlc2UgaG9v a3MgYXJlIHVzZWQgYnkgYXRvbWljIGhlbHBlcnMgdG8gY3JlYXRlLCBzd2FwIGFuZCBkZXN0cm95 IHN0YXRlcyBvZgorICogcHJpdmF0ZSBvYmplY3RzLiBUaGUgc3RydWN0dXJlIGl0c2VsZiBpcyB1 c2VkIGFzIGEgdnRhYmxlIHRvIGlkZW50aWZ5IHRoZQorICogYXNzb2NpYXRlZCBwcml2YXRlIG9i amVjdCB0eXBlLiBFYWNoIHByaXZhdGUgb2JqZWN0IHR5cGUgdGhhdCBuZWVkcyB0byBiZQorICog YWRkZWQgdG8gdGhlIGF0b21pYyBzdGF0ZXMgaXMgZXhwZWN0ZWQgdG8gaGF2ZSBhbiBpbXBsZW1l bnRhdGlvbiBvZiB0aGVzZQorICogaG9va3MgYW5kIHBhc3MgYSBwb2ludGVyIHRvIGl0J3MgZHJt X3ByaXZhdGVfc3RhdGVfZnVuY3Mgc3RydWN0IHRvCisgKiBkcm1fYXRvbWljX2dldF9wcml2YXRl X29ial9zdGF0ZSgpLgorICovCitzdHJ1Y3QgZHJtX3ByaXZhdGVfc3RhdGVfZnVuY3MgeworCS8q KgorCSAqIEBkdXBsaWNhdGVfc3RhdGU6CisJICoKKwkgKiBEdXBsaWNhdGUgdGhlIGN1cnJlbnQg c3RhdGUgb2YgdGhlIHByaXZhdGUgb2JqZWN0IGFuZCByZXR1cm4gaXQuIEl0CisJICogaXMgYW4g ZXJyb3IgdG8gY2FsbCB0aGlzIGJlZm9yZSBvYmotPnN0YXRlIGhhcyBiZWVuIGluaXRpYWxpemVk LgorCSAqCisJICogUkVUVVJOUzoKKwkgKgorCSAqIER1cGxpY2F0ZWQgYXRvbWljIHN0YXRlIG9y IE5VTEwgd2hlbiBvYmotPnN0YXRlIGlzIG5vdAorCSAqIGluaXRpYWxpemVkIG9yIGFsbG9jYXRp b24gZmFpbGVkLgorCSAqLworCXZvaWQgKigqZHVwbGljYXRlX3N0YXRlKShzdHJ1Y3QgZHJtX2F0 b21pY19zdGF0ZSAqc3RhdGUsIHZvaWQgKm9iaik7CisKKwkvKioKKwkgKiBAc3dhcF9zdGF0ZToK KwkgKgorCSAqIFRoaXMgZnVuY3Rpb24gc3dhcHMgdGhlIGV4aXN0aW5nIHN0YXRlIG9mIGEgcHJp dmF0ZSBvYmplY3QgQG9iaiB3aXRoCisJICogaXQncyBuZXdseSBjcmVhdGVkIHN0YXRlLCB0aGUg cG9pbnRlciB0byB3aGljaCBpcyBwYXNzZWQgYXMKKwkgKiBAb2JqX3N0YXRlX3B0ci4KKwkgKi8K Kwl2b2lkICgqc3dhcF9zdGF0ZSkodm9pZCAqb2JqLCB2b2lkICoqb2JqX3N0YXRlX3B0cik7CisK KwkvKioKKwkgKiBAZGVzdHJveV9zdGF0ZToKKwkgKgorCSAqIEZyZWVzIHRoZSBwcml2YXRlIG9i amVjdCBzdGF0ZSBjcmVhdGVkIHdpdGggQGR1cGxpY2F0ZV9zdGF0ZS4KKwkgKi8KKwl2b2lkICgq ZGVzdHJveV9zdGF0ZSkodm9pZCAqb2JqX3N0YXRlKTsKK307CisKK3N0cnVjdCBfX2RybV9wcml2 YXRlX29ianNfc3RhdGUgeworCXZvaWQgKm9iajsKKwl2b2lkICpvYmpfc3RhdGU7CisJY29uc3Qg c3RydWN0IGRybV9wcml2YXRlX3N0YXRlX2Z1bmNzICpmdW5jczsKK307CisKKy8qKgogICogc3Ry dWN0IGRybV9hdG9taWNfc3RhdGUgLSB0aGUgZ2xvYmFsIHN0YXRlIG9iamVjdCBmb3IgYXRvbWlj IHVwZGF0ZXMKICAqIEByZWY6IGNvdW50IG9mIGFsbCByZWZlcmVuY2VzIHRvIHRoaXMgc3RhdGUg KHdpbGwgbm90IGJlIGZyZWVkIHVudGlsIHplcm8pCiAgKiBAZGV2OiBwYXJlbnQgRFJNIGRldmlj ZQpAQCAtMTY1LDYgKzIxMiw4IEBAIHN0cnVjdCBfX2RybV9jb25ubmVjdG9yc19zdGF0ZSB7CiAg KiBAY3J0Y3M6IHBvaW50ZXIgdG8gYXJyYXkgb2YgQ1JUQyBwb2ludGVycwogICogQG51bV9jb25u ZWN0b3I6IHNpemUgb2YgdGhlIEBjb25uZWN0b3JzIGFuZCBAY29ubmVjdG9yX3N0YXRlcyBhcnJh eXMKICAqIEBjb25uZWN0b3JzOiBwb2ludGVyIHRvIGFycmF5IG9mIHN0cnVjdHVyZXMgd2l0aCBw ZXItY29ubmVjdG9yIGRhdGEKKyAqIEBudW1fcHJpdmF0ZV9vYmpzOiBzaXplIG9mIHRoZSBAcHJp dmF0ZV9vYmpzIGFycmF5CisgKiBAcHJpdmF0ZV9vYmpzOiBwb2ludGVyIHRvIGFycmF5IG9mIHBy aXZhdGUgb2JqZWN0IHBvaW50ZXJzCiAgKiBAYWNxdWlyZV9jdHg6IGFjcXVpcmUgY29udGV4dCBm b3IgdGhpcyBhdG9taWMgbW9kZXNldCBzdGF0ZSB1cGRhdGUKICAqLwogc3RydWN0IGRybV9hdG9t aWNfc3RhdGUgewpAQCAtMTc4LDYgKzIyNyw4IEBAIHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlIHsK IAlzdHJ1Y3QgX19kcm1fY3J0Y3Nfc3RhdGUgKmNydGNzOwogCWludCBudW1fY29ubmVjdG9yOwog CXN0cnVjdCBfX2RybV9jb25ubmVjdG9yc19zdGF0ZSAqY29ubmVjdG9yczsKKwlpbnQgbnVtX3By aXZhdGVfb2JqczsKKwlzdHJ1Y3QgX19kcm1fcHJpdmF0ZV9vYmpzX3N0YXRlICpwcml2YXRlX29i anM7CiAKIAlzdHJ1Y3QgZHJtX21vZGVzZXRfYWNxdWlyZV9jdHggKmFjcXVpcmVfY3R4OwogCkBA IC0yNzAsNiArMzIxLDExIEBAIGludCBkcm1fYXRvbWljX2Nvbm5lY3Rvcl9zZXRfcHJvcGVydHko c3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciwKIAkJc3RydWN0IGRybV9jb25uZWN0b3Jf c3RhdGUgKnN0YXRlLCBzdHJ1Y3QgZHJtX3Byb3BlcnR5ICpwcm9wZXJ0eSwKIAkJdWludDY0X3Qg dmFsKTsKIAordm9pZCAqIF9fbXVzdF9jaGVjaworZHJtX2F0b21pY19nZXRfcHJpdmF0ZV9vYmpf c3RhdGUoc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlLAorCQkJICAgICAgdm9pZCAqb2Jq LAorCQkJICAgICAgY29uc3Qgc3RydWN0IGRybV9wcml2YXRlX3N0YXRlX2Z1bmNzICpmdW5jcyk7 CisKIC8qKgogICogZHJtX2F0b21pY19nZXRfZXhpc3RpbmdfY3J0Y19zdGF0ZSAtIGdldCBjcnRj IHN0YXRlLCBpZiBpdCBleGlzdHMKICAqIEBzdGF0ZTogZ2xvYmFsIGF0b21pYyBzdGF0ZSBvYmpl Y3QKQEAgLTc1NSw2ICs4MTEsNDIgQEAgdm9pZCBkcm1fc3RhdGVfZHVtcChzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2LCBzdHJ1Y3QgZHJtX3ByaW50ZXIgKnApOwogCQlmb3JfZWFjaF9pZiAocGxhbmUp CiAKIC8qKgorICogX19mb3JfZWFjaF9wcml2YXRlX29iaiAtIGl0ZXJhdGUgb3ZlciBhbGwgcHJp dmF0ZSBvYmplY3RzCisgKiBAX19zdGF0ZTogdGhlIGF0b21pYyBzdGF0ZQorICoKKyAqIFRoaXMg bWFjcm8gaXRlcmF0ZXMgb3ZlciB0aGUgYXJyYXkgY29udGFpbmluZyBwcml2YXRlIG9iamVjdCBk YXRhIGluIGF0b21pYworICogc3RhdGUKKyAqLworI2RlZmluZSBfX2Zvcl9lYWNoX3ByaXZhdGVf b2JqKF9fc3RhdGUsIG9iaiwgb2JqX3N0YXRlLCBfX2ksIF9fZnVuY3MpCVwKKwlmb3IgKChfX2kp ID0gMDsJCQkJCQkJXAorCSAgICAgKF9faSkgPCAoX19zdGF0ZSktPm51bV9wcml2YXRlX29ianMg JiYJCQlcCisJICAgICAoKG9iaikgPSAoX19zdGF0ZSktPnByaXZhdGVfb2Jqc1tfX2ldLm9iaiwJ CQlcCisJICAgICAgKF9fZnVuY3MpID0gKF9fc3RhdGUpLT5wcml2YXRlX29ianNbX19pXS5mdW5j cywJCVwKKwkgICAgICAob2JqX3N0YXRlKSA9IChfX3N0YXRlKS0+cHJpdmF0ZV9vYmpzW19faV0u b2JqX3N0YXRlLAlcCisJICAgICAgMSk7CQkJCQkJCVwKKwkgICAgIChfX2kpKyspCQkJCQkJCVwK KworLyoqCisgKiBmb3JfZWFjaF9wcml2YXRlX29iaiAtIGl0ZXJhdGUgb3ZlciBhIHNwZWNpZnkg dHlwZSBvZiBwcml2YXRlIG9iamVjdAorICogQF9fc3RhdGU6IHRoZSBhdG9taWMgc3RhdGUKKyAq IEBvYmpfZnVuY3M6IGZ1bmN0aW9uIHRhYmxlIHRvIGZpbHRlciB0aGUgcHJpdmF0ZSBvYmplY3Rz CisgKgorICogVGhpcyBtYWNybyBpdGVyYXRlcyBvdmVyIHRoZSBwcml2YXRlIG9iamVjdHMgc3Rh dGUgYXJyYXkgd2hpbGUgZmlsdGVyaW5nIHRoZQorICogb2JqZWN0cyBiYXNlZCBvbiB0aGUgdmZ1 bmMgdGFibGUgdGhhdCBpcyBwYXNzZWQgYXMgQG9ial9mdW5jcy4gTmV3IG1hY3JvcworICogY2Fu IGJlIGNyZWF0ZWQgYnkgcGFzc2luZyBpbiB0aGUgdmZ1bmMgdGFibGUgYXNzb2NpYXRlZCB3aXRo IGEgc3BlY2lmaWMKKyAqIHByaXZhdGUgb2JqZWN0LgorICovCisjZGVmaW5lIGZvcl9lYWNoX3By aXZhdGVfb2JqKF9fc3RhdGUsIG9ial9mdW5jcywgb2JqLCBvYmpfc3RhdGUsIF9faSwgX19mdW5j cykJXAorCWZvciAoKF9faSkgPSAwOwkJCQkJCQlcCisJICAgICAoX19pKSA8IChfX3N0YXRlKS0+ bnVtX3ByaXZhdGVfb2JqcyAmJgkJCVwKKwkgICAgICgob2JqKSA9IChfX3N0YXRlKS0+cHJpdmF0 ZV9vYmpzW19faV0ub2JqLAkJCVwKKwkgICAgICAoX19mdW5jcykgPSAoX19zdGF0ZSktPnByaXZh dGVfb2Jqc1tfX2ldLmZ1bmNzLAkJXAorCSAgICAgIChvYmpfc3RhdGUpID0gKF9fc3RhdGUpLT5w cml2YXRlX29ianNbX19pXS5vYmpfc3RhdGUsCVwKKwkgICAgICAxKTsJCQkJCQkJXAorCSAgICAg KF9faSkrKykJCQkJCQkJXAorCQlmb3JfZWFjaF9pZiAoX19mdW5jcyA9PSBvYmpfZnVuY3MpCisK Ky8qKgogICogZHJtX2F0b21pY19jcnRjX25lZWRzX21vZGVzZXQgLSBjb21wdXRlIGNvbWJpbmVk IG1vZGVzZXQgbmVlZAogICogQHN0YXRlOiAmZHJtX2NydGNfc3RhdGUgZm9yIHRoZSBDUlRDCiAg KgotLSAKMi43LjQKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9y ZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdm eAo=