From mboxrd@z Thu Jan 1 00:00:00 1970 From: Dhinakaran Pandiyan Subject: [PATCH v5 4/8] drm: Add driver-private objects to atomic state Date: Wed, 22 Mar 2017 15:30:49 -0700 Message-ID: <1490221849-11073-1-git-send-email-dhinakaran.pandiyan@intel.com> References: Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: 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 ZQpzYW1lIHN0YXRlIGFycmF5LgoKdjQ6IEF2b2lkIHJlZHVuZGFudCBOVUxMIGNoZWNrcyB3aGVu IHByaXZhdGVfb2JqcyBhcnJheSBpcyBlbXB0eSAoTWFhcnRlbikKdjM6IE1hY3JvIGFsaWdubWVu dCAoQ2hyaXMpCnYyOiBBZGRlZCBkb2NzIGFuZCBuZXcgaXRlcmF0b3IgdG8gZmlsdGVyIHByaXZh dGUgb2JqZWN0cyAoRGFuaWVsKQoKQWNrZWQtYnk6IEhhcnJ5IFdlbnRsYW5kIDxoYXJyeS53ZW50 bGFuZEBhbWQuY29tPgpTdWdnZXN0ZWQtYnk6IERhbmllbCBWZXR0ZXIgPGRhbmllbC52ZXR0ZXJA ZmZ3bGwuY2g+ClNpZ25lZC1vZmYtYnk6IERoaW5ha2FyYW4gUGFuZGl5YW4gPGRoaW5ha2FyYW4u cGFuZGl5YW5AaW50ZWwuY29tPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljLmMgICAg ICAgIHwgNjkgKysrKysrKysrKysrKysrKysrKysrKysrKysrCiBkcml2ZXJzL2dwdS9kcm0vZHJt X2F0b21pY19oZWxwZXIuYyB8ICA1ICsrCiBpbmNsdWRlL2RybS9kcm1fYXRvbWljLmggICAgICAg ICAgICB8IDkzICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIDMgZmlsZXMg Y2hhbmdlZCwgMTY3IGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v ZHJtX2F0b21pYy5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWMuYwppbmRleCA5Yjg5MmFm Li5lNTkwMTQ4IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pYy5jCisrKyBi L2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljLmMKQEAgLTU3LDYgKzU3LDcgQEAgdm9pZCBkcm1f YXRvbWljX3N0YXRlX2RlZmF1bHRfcmVsZWFzZShzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3Rh dGUpCiAJa2ZyZWUoc3RhdGUtPmNvbm5lY3RvcnMpOwogCWtmcmVlKHN0YXRlLT5jcnRjcyk7CiAJ a2ZyZWUoc3RhdGUtPnBsYW5lcyk7CisJa2ZyZWUoc3RhdGUtPnByaXZhdGVfb2Jqcyk7CiB9CiBF WFBPUlRfU1lNQk9MKGRybV9hdG9taWNfc3RhdGVfZGVmYXVsdF9yZWxlYXNlKTsKIApAQCAtMTg0 LDYgKzE4NSwyMSBAQCB2b2lkIGRybV9hdG9taWNfc3RhdGVfZGVmYXVsdF9jbGVhcihzdHJ1Y3Qg ZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUpCiAJCXN0YXRlLT5wbGFuZXNbaV0ucHRyID0gTlVMTDsK IAkJc3RhdGUtPnBsYW5lc1tpXS5zdGF0ZSA9IE5VTEw7CiAJfQorCisJZm9yIChpID0gMDsgaSA8 IHN0YXRlLT5udW1fcHJpdmF0ZV9vYmpzOyBpKyspIHsKKwkJdm9pZCAqcHJpdmF0ZV9vYmogPSBz dGF0ZS0+cHJpdmF0ZV9vYmpzW2ldLm9iajsKKwkJdm9pZCAqb2JqX3N0YXRlID0gc3RhdGUtPnBy aXZhdGVfb2Jqc1tpXS5vYmpfc3RhdGU7CisKKwkJaWYgKCFwcml2YXRlX29iaikKKwkJCWNvbnRp bnVlOworCisJCXN0YXRlLT5wcml2YXRlX29ianNbaV0uZnVuY3MtPmRlc3Ryb3lfc3RhdGUob2Jq X3N0YXRlKTsKKwkJc3RhdGUtPnByaXZhdGVfb2Jqc1tpXS5vYmogPSBOVUxMOworCQlzdGF0ZS0+ cHJpdmF0ZV9vYmpzW2ldLm9ial9zdGF0ZSA9IE5VTEw7CisJCXN0YXRlLT5wcml2YXRlX29ianNb aV0uZnVuY3MgPSBOVUxMOworCX0KKwlzdGF0ZS0+bnVtX3ByaXZhdGVfb2JqcyA9IDA7CisKIH0K IEVYUE9SVF9TWU1CT0woZHJtX2F0b21pY19zdGF0ZV9kZWZhdWx0X2NsZWFyKTsKIApAQCAtOTc4 LDYgKzk5NCw1OSBAQCBzdGF0aWMgdm9pZCBkcm1fYXRvbWljX3BsYW5lX3ByaW50X3N0YXRlKHN0 cnVjdCBkcm1fcHJpbnRlciAqcCwKIH0KIAogLyoqCisgKiBkcm1fYXRvbWljX2dldF9wcml2YXRl X29ial9zdGF0ZSAtIGdldCBwcml2YXRlIG9iamVjdCBzdGF0ZQorICogQHN0YXRlOiBnbG9iYWwg YXRvbWljIHN0YXRlCisgKiBAb2JqOiBwcml2YXRlIG9iamVjdCB0byBnZXQgdGhlIHN0YXRlIGZv cgorICogQGZ1bmNzOiBwb2ludGVyIHRvIHRoZSBzdHJ1Y3Qgb2YgZnVuY3Rpb24gcG9pbnRlcnMg dGhhdCBpZGVudGlmeSB0aGUgb2JqZWN0CisgKiB0eXBlCisgKgorICogVGhpcyBmdW5jdGlvbiBy ZXR1cm5zIHRoZSBwcml2YXRlIG9iamVjdCBzdGF0ZSBmb3IgdGhlIGdpdmVuIHByaXZhdGUgb2Jq ZWN0LAorICogYWxsb2NhdGluZyB0aGUgc3RhdGUgaWYgbmVlZGVkLiBJdCBkb2VzIG5vdCBncmFi IGFueSBsb2NrcyBhcyB0aGUgY2FsbGVyIGlzCisgKiBleHBlY3RlZCB0byBjYXJlIG9mIGFueSBy ZXF1aXJlZCBsb2NraW5nLgorICoKKyAqIFJFVFVSTlM6CisgKgorICogRWl0aGVyIHRoZSBhbGxv Y2F0ZWQgc3RhdGUgb3IgdGhlIGVycm9yIGNvZGUgZW5jb2RlZCBpbnRvIGEgcG9pbnRlci4KKyAq Lwordm9pZCAqCitkcm1fYXRvbWljX2dldF9wcml2YXRlX29ial9zdGF0ZShzdHJ1Y3QgZHJtX2F0 b21pY19zdGF0ZSAqc3RhdGUsIHZvaWQgKm9iaiwKKwkJCSAgICAgIGNvbnN0IHN0cnVjdCBkcm1f cHJpdmF0ZV9zdGF0ZV9mdW5jcyAqZnVuY3MpCit7CisJaW50IGluZGV4LCBudW1fb2JqcywgaTsK KwlzaXplX3Qgc2l6ZTsKKwlzdHJ1Y3QgX19kcm1fcHJpdmF0ZV9vYmpzX3N0YXRlICphcnI7CisK Kwlmb3IgKGkgPSAwOyBpIDwgc3RhdGUtPm51bV9wcml2YXRlX29ianM7IGkrKykKKwkJaWYgKG9i aiA9PSBzdGF0ZS0+cHJpdmF0ZV9vYmpzW2ldLm9iaiAmJgorCQkgICAgc3RhdGUtPnByaXZhdGVf b2Jqc1tpXS5vYmpfc3RhdGUpCisJCQlyZXR1cm4gc3RhdGUtPnByaXZhdGVfb2Jqc1tpXS5vYmpf c3RhdGU7CisKKwludW1fb2JqcyA9IHN0YXRlLT5udW1fcHJpdmF0ZV9vYmpzICsgMTsKKwlzaXpl ID0gc2l6ZW9mKCpzdGF0ZS0+cHJpdmF0ZV9vYmpzKSAqIG51bV9vYmpzOworCWFyciA9IGtyZWFs bG9jKHN0YXRlLT5wcml2YXRlX29ianMsIHNpemUsIEdGUF9LRVJORUwpOworCWlmICghYXJyKQor CQlyZXR1cm4gRVJSX1BUUigtRU5PTUVNKTsKKworCXN0YXRlLT5wcml2YXRlX29ianMgPSBhcnI7 CisJaW5kZXggPSBzdGF0ZS0+bnVtX3ByaXZhdGVfb2JqczsKKwltZW1zZXQoJnN0YXRlLT5wcml2 YXRlX29ianNbaW5kZXhdLCAwLCBzaXplb2YoKnN0YXRlLT5wcml2YXRlX29ianMpKTsKKworCXN0 YXRlLT5wcml2YXRlX29ianNbaW5kZXhdLm9ial9zdGF0ZSA9IGZ1bmNzLT5kdXBsaWNhdGVfc3Rh dGUoc3RhdGUsIG9iaik7CisJaWYgKCFzdGF0ZS0+cHJpdmF0ZV9vYmpzW2luZGV4XS5vYmpfc3Rh dGUpCisJCXJldHVybiBFUlJfUFRSKC1FTk9NRU0pOworCisJc3RhdGUtPnByaXZhdGVfb2Jqc1tp bmRleF0ub2JqID0gb2JqOworCXN0YXRlLT5wcml2YXRlX29ianNbaW5kZXhdLmZ1bmNzID0gZnVu Y3M7CisJc3RhdGUtPm51bV9wcml2YXRlX29ianMgPSBudW1fb2JqczsKKworCURSTV9ERUJVR19B VE9NSUMoIkFkZGVkIG5ldyBwcml2YXRlIG9iamVjdCBzdGF0ZSAlcCB0byAlcFxuIiwKKwkJCSBz dGF0ZS0+cHJpdmF0ZV9vYmpzW2luZGV4XS5vYmpfc3RhdGUsIHN0YXRlKTsKKworCXJldHVybiBz dGF0ZS0+cHJpdmF0ZV9vYmpzW2luZGV4XS5vYmpfc3RhdGU7Cit9CitFWFBPUlRfU1lNQk9MKGRy bV9hdG9taWNfZ2V0X3ByaXZhdGVfb2JqX3N0YXRlKTsKKworLyoqCiAgKiBkcm1fYXRvbWljX2dl dF9jb25uZWN0b3Jfc3RhdGUgLSBnZXQgY29ubmVjdG9yIHN0YXRlCiAgKiBAc3RhdGU6IGdsb2Jh bCBhdG9taWMgc3RhdGUgb2JqZWN0CiAgKiBAY29ubmVjdG9yOiBjb25uZWN0b3IgdG8gZ2V0IHN0 YXRlIG9iamVjdCBmb3IKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljX2hl bHBlci5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWNfaGVscGVyLmMKaW5kZXggNGUyNmI3 My4uMTQwMzMzNCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWNfaGVscGVy LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWNfaGVscGVyLmMKQEAgLTIwMDEsNiAr MjAwMSw4IEBAIHZvaWQgZHJtX2F0b21pY19oZWxwZXJfc3dhcF9zdGF0ZShzdHJ1Y3QgZHJtX2F0 b21pY19zdGF0ZSAqc3RhdGUsCiAJc3RydWN0IGRybV9wbGFuZSAqcGxhbmU7CiAJc3RydWN0IGRy bV9wbGFuZV9zdGF0ZSAqb2xkX3BsYW5lX3N0YXRlLCAqbmV3X3BsYW5lX3N0YXRlOwogCXN0cnVj dCBkcm1fY3J0Y19jb21taXQgKmNvbW1pdDsKKwl2b2lkICpvYmosICpvYmpfc3RhdGU7CisJY29u c3Qgc3RydWN0IGRybV9wcml2YXRlX3N0YXRlX2Z1bmNzICpmdW5jczsKIAogCWlmIChzdGFsbCkg ewogCQlmb3JfZWFjaF9uZXdfY3J0Y19pbl9zdGF0ZShzdGF0ZSwgY3J0YywgbmV3X2NydGNfc3Rh dGUsIGkpIHsKQEAgLTIwNjEsNiArMjA2Myw5IEBAIHZvaWQgZHJtX2F0b21pY19oZWxwZXJfc3dh cF9zdGF0ZShzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUsCiAJCXN0YXRlLT5wbGFuZXNb aV0uc3RhdGUgPSBvbGRfcGxhbmVfc3RhdGU7CiAJCXBsYW5lLT5zdGF0ZSA9IG5ld19wbGFuZV9z dGF0ZTsKIAl9CisKKwlfX2Zvcl9lYWNoX3ByaXZhdGVfb2JqKHN0YXRlLCBvYmosIG9ial9zdGF0 ZSwgaSwgZnVuY3MpCisJCWZ1bmNzLT5zd2FwX3N0YXRlKG9iaiwgJnN0YXRlLT5wcml2YXRlX29i anNbaV0ub2JqX3N0YXRlKTsKIH0KIEVYUE9SVF9TWU1CT0woZHJtX2F0b21pY19oZWxwZXJfc3dh cF9zdGF0ZSk7CiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHJtL2RybV9hdG9taWMuaCBiL2luY2x1 ZGUvZHJtL2RybV9hdG9taWMuaAppbmRleCAwMTQ3YTA0Li5jMTdkYTM5IDEwMDY0NAotLS0gYS9p bmNsdWRlL2RybS9kcm1fYXRvbWljLmgKKysrIGIvaW5jbHVkZS9kcm0vZHJtX2F0b21pYy5oCkBA IC0xNTUsNiArMTU1LDUzIEBAIHN0cnVjdCBfX2RybV9jb25ubmVjdG9yc19zdGF0ZSB7CiB9Owog CiAvKioKKyAqIHN0cnVjdCBkcm1fcHJpdmF0ZV9zdGF0ZV9mdW5jcyAtIGF0b21pYyBzdGF0ZSBm dW5jdGlvbnMgZm9yIHByaXZhdGUgb2JqZWN0cworICoKKyAqIFRoZXNlIGhvb2tzIGFyZSB1c2Vk IGJ5IGF0b21pYyBoZWxwZXJzIHRvIGNyZWF0ZSwgc3dhcCBhbmQgZGVzdHJveSBzdGF0ZXMgb2YK KyAqIHByaXZhdGUgb2JqZWN0cy4gVGhlIHN0cnVjdHVyZSBpdHNlbGYgaXMgdXNlZCBhcyBhIHZ0 YWJsZSB0byBpZGVudGlmeSB0aGUKKyAqIGFzc29jaWF0ZWQgcHJpdmF0ZSBvYmplY3QgdHlwZS4g RWFjaCBwcml2YXRlIG9iamVjdCB0eXBlIHRoYXQgbmVlZHMgdG8gYmUKKyAqIGFkZGVkIHRvIHRo ZSBhdG9taWMgc3RhdGVzIGlzIGV4cGVjdGVkIHRvIGhhdmUgYW4gaW1wbGVtZW50YXRpb24gb2Yg dGhlc2UKKyAqIGhvb2tzIGFuZCBwYXNzIGEgcG9pbnRlciB0byBpdCdzIGRybV9wcml2YXRlX3N0 YXRlX2Z1bmNzIHN0cnVjdCB0bworICogZHJtX2F0b21pY19nZXRfcHJpdmF0ZV9vYmpfc3RhdGUo KS4KKyAqLworc3RydWN0IGRybV9wcml2YXRlX3N0YXRlX2Z1bmNzIHsKKwkvKioKKwkgKiBAZHVw bGljYXRlX3N0YXRlOgorCSAqCisJICogRHVwbGljYXRlIHRoZSBjdXJyZW50IHN0YXRlIG9mIHRo ZSBwcml2YXRlIG9iamVjdCBhbmQgcmV0dXJuIGl0LiBJdAorCSAqIGlzIGFuIGVycm9yIHRvIGNh bGwgdGhpcyBiZWZvcmUgb2JqLT5zdGF0ZSBoYXMgYmVlbiBpbml0aWFsaXplZC4KKwkgKgorCSAq IFJFVFVSTlM6CisJICoKKwkgKiBEdXBsaWNhdGVkIGF0b21pYyBzdGF0ZSBvciBOVUxMIHdoZW4g b2JqLT5zdGF0ZSBpcyBub3QKKwkgKiBpbml0aWFsaXplZCBvciBhbGxvY2F0aW9uIGZhaWxlZC4K KwkgKi8KKwl2b2lkICooKmR1cGxpY2F0ZV9zdGF0ZSkoc3RydWN0IGRybV9hdG9taWNfc3RhdGUg KnN0YXRlLCB2b2lkICpvYmopOworCisJLyoqCisJICogQHN3YXBfc3RhdGU6CisJICoKKwkgKiBU aGlzIGZ1bmN0aW9uIHN3YXBzIHRoZSBleGlzdGluZyBzdGF0ZSBvZiBhIHByaXZhdGUgb2JqZWN0 IEBvYmogd2l0aAorCSAqIGl0J3MgbmV3bHkgY3JlYXRlZCBzdGF0ZSwgdGhlIHBvaW50ZXIgdG8g d2hpY2ggaXMgcGFzc2VkIGFzCisJICogQG9ial9zdGF0ZV9wdHIuCisJICovCisJdm9pZCAoKnN3 YXBfc3RhdGUpKHZvaWQgKm9iaiwgdm9pZCAqKm9ial9zdGF0ZV9wdHIpOworCisJLyoqCisJICog QGRlc3Ryb3lfc3RhdGU6CisJICoKKwkgKiBGcmVlcyB0aGUgcHJpdmF0ZSBvYmplY3Qgc3RhdGUg Y3JlYXRlZCB3aXRoIEBkdXBsaWNhdGVfc3RhdGUuCisJICovCisJdm9pZCAoKmRlc3Ryb3lfc3Rh dGUpKHZvaWQgKm9ial9zdGF0ZSk7Cit9OworCitzdHJ1Y3QgX19kcm1fcHJpdmF0ZV9vYmpzX3N0 YXRlIHsKKwl2b2lkICpvYmo7CisJdm9pZCAqb2JqX3N0YXRlOworCWNvbnN0IHN0cnVjdCBkcm1f cHJpdmF0ZV9zdGF0ZV9mdW5jcyAqZnVuY3M7Cit9OworCisvKioKICAqIHN0cnVjdCBkcm1fYXRv bWljX3N0YXRlIC0gdGhlIGdsb2JhbCBzdGF0ZSBvYmplY3QgZm9yIGF0b21pYyB1cGRhdGVzCiAg KiBAcmVmOiBjb3VudCBvZiBhbGwgcmVmZXJlbmNlcyB0byB0aGlzIHN0YXRlICh3aWxsIG5vdCBi ZSBmcmVlZCB1bnRpbCB6ZXJvKQogICogQGRldjogcGFyZW50IERSTSBkZXZpY2UKQEAgLTE2NSw2 ICsyMTIsOCBAQCBzdHJ1Y3QgX19kcm1fY29ubm5lY3RvcnNfc3RhdGUgewogICogQGNydGNzOiBw b2ludGVyIHRvIGFycmF5IG9mIENSVEMgcG9pbnRlcnMKICAqIEBudW1fY29ubmVjdG9yOiBzaXpl IG9mIHRoZSBAY29ubmVjdG9ycyBhbmQgQGNvbm5lY3Rvcl9zdGF0ZXMgYXJyYXlzCiAgKiBAY29u bmVjdG9yczogcG9pbnRlciB0byBhcnJheSBvZiBzdHJ1Y3R1cmVzIHdpdGggcGVyLWNvbm5lY3Rv ciBkYXRhCisgKiBAbnVtX3ByaXZhdGVfb2Jqczogc2l6ZSBvZiB0aGUgQHByaXZhdGVfb2JqcyBh cnJheQorICogQHByaXZhdGVfb2JqczogcG9pbnRlciB0byBhcnJheSBvZiBwcml2YXRlIG9iamVj dCBwb2ludGVycwogICogQGFjcXVpcmVfY3R4OiBhY3F1aXJlIGNvbnRleHQgZm9yIHRoaXMgYXRv bWljIG1vZGVzZXQgc3RhdGUgdXBkYXRlCiAgKi8KIHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlIHsK QEAgLTE3OCw2ICsyMjcsOCBAQCBzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSB7CiAJc3RydWN0IF9f ZHJtX2NydGNzX3N0YXRlICpjcnRjczsKIAlpbnQgbnVtX2Nvbm5lY3RvcjsKIAlzdHJ1Y3QgX19k cm1fY29ubm5lY3RvcnNfc3RhdGUgKmNvbm5lY3RvcnM7CisJaW50IG51bV9wcml2YXRlX29ianM7 CisJc3RydWN0IF9fZHJtX3ByaXZhdGVfb2Jqc19zdGF0ZSAqcHJpdmF0ZV9vYmpzOwogCiAJc3Ry dWN0IGRybV9tb2Rlc2V0X2FjcXVpcmVfY3R4ICphY3F1aXJlX2N0eDsKIApAQCAtMjcwLDYgKzMy MSwxMSBAQCBpbnQgZHJtX2F0b21pY19jb25uZWN0b3Jfc2V0X3Byb3BlcnR5KHN0cnVjdCBkcm1f Y29ubmVjdG9yICpjb25uZWN0b3IsCiAJCXN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpzdGF0 ZSwgc3RydWN0IGRybV9wcm9wZXJ0eSAqcHJvcGVydHksCiAJCXVpbnQ2NF90IHZhbCk7CiAKK3Zv aWQgKiBfX211c3RfY2hlY2sKK2RybV9hdG9taWNfZ2V0X3ByaXZhdGVfb2JqX3N0YXRlKHN0cnVj dCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSwKKwkJCSAgICAgIHZvaWQgKm9iaiwKKwkJCSAgICAg IGNvbnN0IHN0cnVjdCBkcm1fcHJpdmF0ZV9zdGF0ZV9mdW5jcyAqZnVuY3MpOworCiAvKioKICAq IGRybV9hdG9taWNfZ2V0X2V4aXN0aW5nX2NydGNfc3RhdGUgLSBnZXQgY3J0YyBzdGF0ZSwgaWYg aXQgZXhpc3RzCiAgKiBAc3RhdGU6IGdsb2JhbCBhdG9taWMgc3RhdGUgb2JqZWN0CkBAIC01OTgs NiArNjU0LDQzIEBAIHZvaWQgZHJtX3N0YXRlX2R1bXAoc3RydWN0IGRybV9kZXZpY2UgKmRldiwg c3RydWN0IGRybV9wcmludGVyICpwKTsKIAkJZm9yX2VhY2hfaWYgKHBsYW5lKQogCiAvKioKKyAq IF9fZm9yX2VhY2hfcHJpdmF0ZV9vYmogLSBpdGVyYXRlIG92ZXIgYWxsIHByaXZhdGUgb2JqZWN0 cworICogQF9fc3RhdGU6IHRoZSBhdG9taWMgc3RhdGUKKyAqCisgKiBUaGlzIG1hY3JvIGl0ZXJh dGVzIG92ZXIgdGhlIGFycmF5IGNvbnRhaW5pbmcgcHJpdmF0ZSBvYmplY3QgZGF0YSBpbiBhdG9t aWMKKyAqIHN0YXRlCisgKi8KKyNkZWZpbmUgX19mb3JfZWFjaF9wcml2YXRlX29iaihfX3N0YXRl LCBvYmosIG9ial9zdGF0ZSwgX19pLCBfX2Z1bmNzKQlcCisJZm9yICgoX19pKSA9IDA7CQkJCQkJ CVwKKwkgICAgIChfX2kpIDwgKF9fc3RhdGUpLT5udW1fcHJpdmF0ZV9vYmpzICYmCQkJXAorCSAg ICAgKChvYmopID0gKF9fc3RhdGUpLT5wcml2YXRlX29ianNbX19pXS5vYmosCQkJXAorCSAgICAg IChfX2Z1bmNzKSA9IChfX3N0YXRlKS0+cHJpdmF0ZV9vYmpzW19faV0uZnVuY3MsCQlcCisJICAg ICAgKG9ial9zdGF0ZSkgPSAoX19zdGF0ZSktPnByaXZhdGVfb2Jqc1tfX2ldLm9ial9zdGF0ZSwJ XAorCSAgICAgIDEpOwkJCQkJCQlcCisJICAgICAoX19pKSsrKQkJCQkJCQlcCisJCWZvcl9lYWNo X2lmIChfX2Z1bmNzKQorCisvKioKKyAqIGZvcl9lYWNoX3ByaXZhdGVfb2JqIC0gaXRlcmF0ZSBv dmVyIGEgc3BlY2lmeSB0eXBlIG9mIHByaXZhdGUgb2JqZWN0CisgKiBAX19zdGF0ZTogdGhlIGF0 b21pYyBzdGF0ZQorICogQG9ial9mdW5jczogZnVuY3Rpb24gdGFibGUgdG8gZmlsdGVyIHRoZSBw cml2YXRlIG9iamVjdHMKKyAqCisgKiBUaGlzIG1hY3JvIGl0ZXJhdGVzIG92ZXIgdGhlIHByaXZh dGUgb2JqZWN0cyBzdGF0ZSBhcnJheSB3aGlsZSBmaWx0ZXJpbmcgdGhlCisgKiBvYmplY3RzIGJh c2VkIG9uIHRoZSB2ZnVuYyB0YWJsZSB0aGF0IGlzIHBhc3NlZCBhcyBAb2JqX2Z1bmNzLiBOZXcg bWFjcm9zCisgKiBjYW4gYmUgY3JlYXRlZCBieSBwYXNzaW5nIGluIHRoZSB2ZnVuYyB0YWJsZSBh c3NvY2lhdGVkIHdpdGggYSBzcGVjaWZpYworICogcHJpdmF0ZSBvYmplY3QuCisgKi8KKyNkZWZp bmUgZm9yX2VhY2hfcHJpdmF0ZV9vYmooX19zdGF0ZSwgb2JqX2Z1bmNzLCBvYmosIG9ial9zdGF0 ZSwgX19pLCBfX2Z1bmNzKQlcCisJZm9yICgoX19pKSA9IDA7CQkJCQkJCVwKKwkgICAgIChfX2kp IDwgKF9fc3RhdGUpLT5udW1fcHJpdmF0ZV9vYmpzICYmCQkJXAorCSAgICAgKChvYmopID0gKF9f c3RhdGUpLT5wcml2YXRlX29ianNbX19pXS5vYmosCQkJXAorCSAgICAgIChfX2Z1bmNzKSA9IChf X3N0YXRlKS0+cHJpdmF0ZV9vYmpzW19faV0uZnVuY3MsCQlcCisJICAgICAgKG9ial9zdGF0ZSkg PSAoX19zdGF0ZSktPnByaXZhdGVfb2Jqc1tfX2ldLm9ial9zdGF0ZSwJXAorCSAgICAgIDEpOwkJ CQkJCQlcCisJICAgICAoX19pKSsrKQkJCQkJCQlcCisJCWZvcl9lYWNoX2lmIChfX2Z1bmNzID09 IG9ial9mdW5jcykKKworLyoqCiAgKiBkcm1fYXRvbWljX2NydGNfbmVlZHNfbW9kZXNldCAtIGNv bXB1dGUgY29tYmluZWQgbW9kZXNldCBuZWVkCiAgKiBAc3RhdGU6ICZkcm1fY3J0Y19zdGF0ZSBm b3IgdGhlIENSVEMKICAqCi0tIAoyLjcuNAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMu ZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlz dGluZm8vaW50ZWwtZ2Z4Cg==