From mboxrd@z Thu Jan 1 00:00:00 1970 From: Dhinakaran Pandiyan Subject: [PATCH v3 4/8] drm: Add driver-private objects to atomic state Date: Wed, 8 Feb 2017 22:38:07 -0800 Message-ID: <1486622291-3524-5-git-send-email-dhinakaran.pandiyan@intel.com> References: <1486622291-3524-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: <1486622291-3524-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: Daniel Vetter , dri-devel@lists.freedesktop.org, Dhinakaran Pandiyan , Alex Deucher , Harry Wentland , Maarten Lankhorst , Ben Skeggs List-Id: intel-gfx@lists.freedesktop.org SXQgaXMgbmVjZXNzYXJ5IHRvIHRyYWNrIHN0YXRlcyBmb3Igb2JqZWN0cyBvdGhlciB0aGFuIGNv bm5lY3RvciwgY3J0YwphbmQgcGxhbmUgZm9yIGF0b21pYyBtb2Rlc2V0cy4gQnV0IGFkZGluZyBv YmplY3RzIGxpa2UgRFAgTVNUIGxpbmsKYmFuZHdpZHRoIHRvIGRybV9hdG9taWNfc3RhdGUgd291 bGQgbWVhbiB0aGF0IGEgbm9uLWNvcmUgb2JqZWN0IHdpbGwgYmUKbW9kaWZpZWQgYnkgdGhlIGNv cmUgaGVscGVyIGZ1bmN0aW9ucyBmb3Igc3dhcHBpbmcgYW5kIGNsZWFyaW5nCml0J3Mgc3RhdGUu IFNvLCBsZXRzIGFkZCB2b2lkICogb2JqZWN0cyBhbmQgaGVscGVyIGZ1bmN0aW9ucyB0aGF0IG9w ZXJhdGUKb24gdm9pZCAqIHR5cGVzIHRvIGtlZXAgdGhlc2Ugb2JqZWN0cyBhbmQgc3RhdGVzIHBy aXZhdGUgdG8gdGhlIGNvcmUuCkRyaXZlcnMgY2FuIHRoZW4gaW1wbGVtZW50IHNwZWNpZmljIGZ1 bmN0aW9ucyB0byBzd2FwIGFuZCBjbGVhciBzdGF0ZXMuClRoZSBvdGhlciBhZHZhbnRhZ2UgaGF2 aW5nIGp1c3Qgdm9pZCAqIGZvciB0aGVzZSBvYmplY3RzIGluCmRybV9hdG9taWNfc3RhdGUgaXMg dGhhdCBvYmplY3RzIG9mIGRpZmZlcmVudCB0eXBlcyBjYW4gYmUgbWFuYWdlZCBpbiB0aGUKc2Ft ZSBzdGF0ZSBhcnJheS4KCnYyOiBBZGRlZCBkb2NzIGFuZCBuZXcgaXRlcmF0b3IgdG8gZmlsdGVy IHByaXZhdGUgb2JqZWN0cyAoRGFuaWVsKQoKU3VnZ2VzdGVkLWJ5OiBEYW5pZWwgVmV0dGVyIDxk YW5pZWwudmV0dGVyQGZmd2xsLmNoPgpTaWduZWQtb2ZmLWJ5OiBEaGluYWthcmFuIFBhbmRpeWFu IDxkaGluYWthcmFuLnBhbmRpeWFuQGludGVsLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vZHJt X2F0b21pYy5jICAgICAgICB8IDY4ICsrKysrKysrKysrKysrKysrKysrKysrKysrKwogZHJpdmVy cy9ncHUvZHJtL2RybV9hdG9taWNfaGVscGVyLmMgfCAgNSArKwogaW5jbHVkZS9kcm0vZHJtX2F0 b21pYy5oICAgICAgICAgICAgfCA5MSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrCiAzIGZpbGVzIGNoYW5nZWQsIDE2NCBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2RybV9hdG9taWMuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljLmMK aW5kZXggYTU2NzMxMC4uMWE5ZmZlOCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9h dG9taWMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pYy5jCkBAIC01Nyw2ICs1Nyw3 IEBAIHZvaWQgZHJtX2F0b21pY19zdGF0ZV9kZWZhdWx0X3JlbGVhc2Uoc3RydWN0IGRybV9hdG9t aWNfc3RhdGUgKnN0YXRlKQogCWtmcmVlKHN0YXRlLT5jb25uZWN0b3JzKTsKIAlrZnJlZShzdGF0 ZS0+Y3J0Y3MpOwogCWtmcmVlKHN0YXRlLT5wbGFuZXMpOworCWtmcmVlKHN0YXRlLT5wcml2YXRl X29ianMpOwogfQogRVhQT1JUX1NZTUJPTChkcm1fYXRvbWljX3N0YXRlX2RlZmF1bHRfcmVsZWFz ZSk7CiAKQEAgLTE4NCw2ICsxODUsMjAgQEAgdm9pZCBkcm1fYXRvbWljX3N0YXRlX2RlZmF1bHRf Y2xlYXIoc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlKQogCQlzdGF0ZS0+cGxhbmVzW2ld LnB0ciA9IE5VTEw7CiAJCXN0YXRlLT5wbGFuZXNbaV0uc3RhdGUgPSBOVUxMOwogCX0KKworCWZv ciAoaSA9IDA7IGkgPCBzdGF0ZS0+bnVtX3ByaXZhdGVfb2JqczsgaSsrKSB7CisJCXZvaWQgKnBy aXZhdGVfb2JqID0gc3RhdGUtPnByaXZhdGVfb2Jqc1tpXS5vYmo7CisJCXZvaWQgKm9ial9zdGF0 ZSA9IHN0YXRlLT5wcml2YXRlX29ianNbaV0ub2JqX3N0YXRlOworCisJCWlmICghcHJpdmF0ZV9v YmopCisJCQljb250aW51ZTsKKworCQlzdGF0ZS0+cHJpdmF0ZV9vYmpzW2ldLmZ1bmNzLT5kZXN0 cm95X3N0YXRlKG9ial9zdGF0ZSk7CisJCXN0YXRlLT5wcml2YXRlX29ianNbaV0ub2JqID0gTlVM TDsKKwkJc3RhdGUtPnByaXZhdGVfb2Jqc1tpXS5vYmpfc3RhdGUgPSBOVUxMOworCQlzdGF0ZS0+ cHJpdmF0ZV9vYmpzW2ldLmZ1bmNzID0gTlVMTDsKKwl9CisKIH0KIEVYUE9SVF9TWU1CT0woZHJt X2F0b21pY19zdGF0ZV9kZWZhdWx0X2NsZWFyKTsKIApAQCAtOTc0LDYgKzk4OSw1OSBAQCBzdGF0 aWMgdm9pZCBkcm1fYXRvbWljX3BsYW5lX3ByaW50X3N0YXRlKHN0cnVjdCBkcm1fcHJpbnRlciAq cCwKIH0KIAogLyoqCisgKiBkcm1fYXRvbWljX2dldF9wcml2YXRlX29ial9zdGF0ZSAtIGdldCBw cml2YXRlIG9iamVjdCBzdGF0ZQorICogQHN0YXRlOiBnbG9iYWwgYXRvbWljIHN0YXRlCisgKiBA b2JqOiBwcml2YXRlIG9iamVjdCB0byBnZXQgdGhlIHN0YXRlIGZvcgorICogQGZ1bmNzOiBwb2lu dGVyIHRvIHRoZSBzdHJ1Y3Qgb2YgZnVuY3Rpb24gcG9pbnRlcnMgdGhhdCBpZGVudGlmeSB0aGUg b2JqZWN0CisgKiB0eXBlCisgKgorICogVGhpcyBmdW5jdGlvbiByZXR1cm5zIHRoZSBwcml2YXRl IG9iamVjdCBzdGF0ZSBmb3IgdGhlIGdpdmVuIHByaXZhdGUgb2JqZWN0LAorICogYWxsb2NhdGlu ZyB0aGUgc3RhdGUgaWYgbmVlZGVkLiBJdCBkb2VzIG5vdCBncmFiIGFueSBsb2NrcyBhcyB0aGUg Y2FsbGVyIGlzCisgKiBleHBlY3RlZCB0byBjYXJlIG9mIGFueSByZXF1aXJlZCBsb2NraW5nLgor ICoKKyAqIFJFVFVSTlM6CisgKgorICogRWl0aGVyIHRoZSBhbGxvY2F0ZWQgc3RhdGUgb3IgdGhl IGVycm9yIGNvZGUgZW5jb2RlZCBpbnRvIGEgcG9pbnRlci4KKyAqLwordm9pZCAqCitkcm1fYXRv bWljX2dldF9wcml2YXRlX29ial9zdGF0ZShzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUs IHZvaWQgKm9iaiwKKwkJCSAgICAgIGNvbnN0IHN0cnVjdCBkcm1fcHJpdmF0ZV9zdGF0ZV9mdW5j cyAqZnVuY3MpCit7CisJaW50IGluZGV4LCBudW1fb2JqcywgaTsKKwlzaXplX3Qgc2l6ZTsKKwlz dHJ1Y3QgX19kcm1fcHJpdmF0ZV9vYmpzX3N0YXRlICphcnI7CisKKwlmb3IgKGkgPSAwOyBpIDwg c3RhdGUtPm51bV9wcml2YXRlX29ianM7IGkrKykKKwkJaWYgKG9iaiA9PSBzdGF0ZS0+cHJpdmF0 ZV9vYmpzW2ldLm9iaiAmJgorCQkgICAgc3RhdGUtPnByaXZhdGVfb2Jqc1tpXS5vYmpfc3RhdGUp CisJCQlyZXR1cm4gc3RhdGUtPnByaXZhdGVfb2Jqc1tpXS5vYmpfc3RhdGU7CisKKwludW1fb2Jq cyA9IHN0YXRlLT5udW1fcHJpdmF0ZV9vYmpzICsgMTsKKwlzaXplID0gc2l6ZW9mKCpzdGF0ZS0+ cHJpdmF0ZV9vYmpzKSAqIG51bV9vYmpzOworCWFyciA9IGtyZWFsbG9jKHN0YXRlLT5wcml2YXRl X29ianMsIHNpemUsIEdGUF9LRVJORUwpOworCWlmICghYXJyKQorCQlyZXR1cm4gRVJSX1BUUigt RU5PTUVNKTsKKworCXN0YXRlLT5wcml2YXRlX29ianMgPSBhcnI7CisJaW5kZXggPSBzdGF0ZS0+ bnVtX3ByaXZhdGVfb2JqczsKKwltZW1zZXQoJnN0YXRlLT5wcml2YXRlX29ianNbaW5kZXhdLCAw LCBzaXplb2YoKnN0YXRlLT5wcml2YXRlX29ianMpKTsKKworCXN0YXRlLT5wcml2YXRlX29ianNb aW5kZXhdLm9ial9zdGF0ZSA9IGZ1bmNzLT5kdXBsaWNhdGVfc3RhdGUoc3RhdGUsIG9iaik7CisJ aWYgKCFzdGF0ZS0+cHJpdmF0ZV9vYmpzW2luZGV4XS5vYmpfc3RhdGUpCisJCXJldHVybiBFUlJf UFRSKC1FTk9NRU0pOworCisJc3RhdGUtPnByaXZhdGVfb2Jqc1tpbmRleF0ub2JqID0gb2JqOwor CXN0YXRlLT5wcml2YXRlX29ianNbaW5kZXhdLmZ1bmNzID0gZnVuY3M7CisJc3RhdGUtPm51bV9w cml2YXRlX29ianMgPSBudW1fb2JqczsKKworCURSTV9ERUJVR19BVE9NSUMoIkFkZGVkIG5ldyBw cml2YXRlIG9iamVjdCBzdGF0ZSAlcCB0byAlcFxuIiwKKwkJCSBzdGF0ZS0+cHJpdmF0ZV9vYmpz W2luZGV4XS5vYmpfc3RhdGUsIHN0YXRlKTsKKworCXJldHVybiBzdGF0ZS0+cHJpdmF0ZV9vYmpz W2luZGV4XS5vYmpfc3RhdGU7Cit9CitFWFBPUlRfU1lNQk9MKGRybV9hdG9taWNfZ2V0X3ByaXZh dGVfb2JqX3N0YXRlKTsKKworLyoqCiAgKiBkcm1fYXRvbWljX2dldF9jb25uZWN0b3Jfc3RhdGUg LSBnZXQgY29ubmVjdG9yIHN0YXRlCiAgKiBAc3RhdGU6IGdsb2JhbCBhdG9taWMgc3RhdGUgb2Jq ZWN0CiAgKiBAY29ubmVjdG9yOiBjb25uZWN0b3IgdG8gZ2V0IHN0YXRlIG9iamVjdCBmb3IKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljX2hlbHBlci5jIGIvZHJpdmVycy9n cHUvZHJtL2RybV9hdG9taWNfaGVscGVyLmMKaW5kZXggM2E0MzgzZi4uODc5NTA4OCAxMDA2NDQK LS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWNfaGVscGVyLmMKKysrIGIvZHJpdmVycy9n cHUvZHJtL2RybV9hdG9taWNfaGVscGVyLmMKQEAgLTE5ODMsNiArMTk4Myw4IEBAIHZvaWQgZHJt X2F0b21pY19oZWxwZXJfc3dhcF9zdGF0ZShzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUs CiAJc3RydWN0IGRybV9wbGFuZSAqcGxhbmU7CiAJc3RydWN0IGRybV9wbGFuZV9zdGF0ZSAqcGxh bmVfc3RhdGU7CiAJc3RydWN0IGRybV9jcnRjX2NvbW1pdCAqY29tbWl0OworCXZvaWQgKm9iaiwg Km9ial9zdGF0ZTsKKwljb25zdCBzdHJ1Y3QgZHJtX3ByaXZhdGVfc3RhdGVfZnVuY3MgKmZ1bmNz OwogCiAJaWYgKHN0YWxsKSB7CiAJCWZvcl9lYWNoX2NydGNfaW5fc3RhdGUoc3RhdGUsIGNydGMs IGNydGNfc3RhdGUsIGkpIHsKQEAgLTIwMzEsNiArMjAzMyw5IEBAIHZvaWQgZHJtX2F0b21pY19o ZWxwZXJfc3dhcF9zdGF0ZShzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUsCiAJCXN3YXAo c3RhdGUtPnBsYW5lc1tpXS5zdGF0ZSwgcGxhbmUtPnN0YXRlKTsKIAkJcGxhbmUtPnN0YXRlLT5z dGF0ZSA9IE5VTEw7CiAJfQorCisJX19mb3JfZWFjaF9wcml2YXRlX29iaihzdGF0ZSwgb2JqLCBv Ympfc3RhdGUsIGksIGZ1bmNzKQorCQlmdW5jcy0+c3dhcF9zdGF0ZShvYmosICZzdGF0ZS0+cHJp dmF0ZV9vYmpzW2ldLm9ial9zdGF0ZSk7CiB9CiBFWFBPUlRfU1lNQk9MKGRybV9hdG9taWNfaGVs cGVyX3N3YXBfc3RhdGUpOwogCmRpZmYgLS1naXQgYS9pbmNsdWRlL2RybS9kcm1fYXRvbWljLmgg Yi9pbmNsdWRlL2RybS9kcm1fYXRvbWljLmgKaW5kZXggMDUyYWIxNi4uY2FmYTQwNCAxMDA2NDQK LS0tIGEvaW5jbHVkZS9kcm0vZHJtX2F0b21pYy5oCisrKyBiL2luY2x1ZGUvZHJtL2RybV9hdG9t aWMuaApAQCAtMTU1LDYgKzE1NSw1MyBAQCBzdHJ1Y3QgX19kcm1fY29ubm5lY3RvcnNfc3RhdGUg ewogfTsKIAogLyoqCisgKiBzdHJ1Y3QgZHJtX3ByaXZhdGVfc3RhdGVfZnVuY3MgLSBhdG9taWMg c3RhdGUgZnVuY3Rpb25zIGZvciBwcml2YXRlIG9iamVjdHMKKyAqCisgKiBUaGVzZSBob29rcyBh cmUgdXNlZCBieSBhdG9taWMgaGVscGVycyB0byBjcmVhdGUsIHN3YXAgYW5kIGRlc3Ryb3kgc3Rh dGVzIG9mCisgKiBwcml2YXRlIG9iamVjdHMuIFRoZSBzdHJ1Y3R1cmUgaXRzZWxmIGlzIHVzZWQg YXMgYSB2dGFibGUgdG8gaWRlbnRpZnkgdGhlCisgKiBhc3NvY2lhdGVkIHByaXZhdGUgb2JqZWN0 IHR5cGUuIEVhY2ggcHJpdmF0ZSBvYmplY3QgdHlwZSB0aGF0IG5lZWRzIHRvIGJlCisgKiBhZGRl ZCB0byB0aGUgYXRvbWljIHN0YXRlcyBpcyBleHBlY3RlZCB0byBoYXZlIGFuIGltcGxlbWVudGF0 aW9uIG9mIHRoZXNlCisgKiBob29rcyBhbmQgcGFzcyBhIHBvaW50ZXIgdG8gaXQncyBkcm1fcHJp dmF0ZV9zdGF0ZV9mdW5jcyBzdHJ1Y3QgdG8KKyAqIGRybV9hdG9taWNfZ2V0X3ByaXZhdGVfb2Jq X3N0YXRlKCkuCisgKi8KK3N0cnVjdCBkcm1fcHJpdmF0ZV9zdGF0ZV9mdW5jcyB7CisJLyoqCisJ ICogQGR1cGxpY2F0ZV9zdGF0ZToKKwkgKgorCSAqIER1cGxpY2F0ZSB0aGUgY3VycmVudCBzdGF0 ZSBvZiB0aGUgcHJpdmF0ZSBvYmplY3QgYW5kIHJldHVybiBpdC4gSXQKKwkgKiBpcyBhbiBlcnJv ciB0byBjYWxsIHRoaXMgYmVmb3JlIG9iai0+c3RhdGUgaGFzIGJlZW4gaW5pdGlhbGl6ZWQuCisJ ICoKKwkgKiBSRVRVUk5TOgorCSAqCisJICogRHVwbGljYXRlZCBhdG9taWMgc3RhdGUgb3IgTlVM TCB3aGVuIG9iai0+c3RhdGUgaXMgbm90CisJICogaW5pdGlhbGl6ZWQgb3IgYWxsb2NhdGlvbiBm YWlsZWQuCisJICovCisJdm9pZCAqKCpkdXBsaWNhdGVfc3RhdGUpKHN0cnVjdCBkcm1fYXRvbWlj X3N0YXRlICpzdGF0ZSwgdm9pZCAqb2JqKTsKKworCS8qKgorCSAqIEBzd2FwX3N0YXRlOgorCSAq CisJICogVGhpcyBmdW5jdGlvbiBzd2FwcyB0aGUgZXhpc3Rpbmcgc3RhdGUgb2YgYSBwcml2YXRl IG9iamVjdCBAb2JqIHdpdGgKKwkgKiBpdCdzIG5ld2x5IGNyZWF0ZWQgc3RhdGUsIHRoZSBwb2lu dGVyIHRvIHdoaWNoIGlzIHBhc3NlZCBhcworCSAqIEBvYmpfc3RhdGVfcHRyLgorCSAqLworCXZv aWQgKCpzd2FwX3N0YXRlKSh2b2lkICpvYmosIHZvaWQgKipvYmpfc3RhdGVfcHRyKTsKKworCS8q KgorCSAqIEBkZXN0cm95X3N0YXRlOgorCSAqCisJICogRnJlZXMgdGhlIHByaXZhdGUgb2JqZWN0 IHN0YXRlIGNyZWF0ZWQgd2l0aCBAZHVwbGljYXRlX3N0YXRlLgorCSAqLworCXZvaWQgKCpkZXN0 cm95X3N0YXRlKSh2b2lkICpvYmpfc3RhdGUpOworfTsKKworc3RydWN0IF9fZHJtX3ByaXZhdGVf b2Jqc19zdGF0ZSB7CisJdm9pZCAqb2JqOworCXZvaWQgKm9ial9zdGF0ZTsKKwljb25zdCBzdHJ1 Y3QgZHJtX3ByaXZhdGVfc3RhdGVfZnVuY3MgKmZ1bmNzOworfTsKKworLyoqCiAgKiBzdHJ1Y3Qg ZHJtX2F0b21pY19zdGF0ZSAtIHRoZSBnbG9iYWwgc3RhdGUgb2JqZWN0IGZvciBhdG9taWMgdXBk YXRlcwogICogQHJlZjogY291bnQgb2YgYWxsIHJlZmVyZW5jZXMgdG8gdGhpcyBzdGF0ZSAod2ls bCBub3QgYmUgZnJlZWQgdW50aWwgemVybykKICAqIEBkZXY6IHBhcmVudCBEUk0gZGV2aWNlCkBA IC0xNjUsNiArMjEyLDggQEAgc3RydWN0IF9fZHJtX2Nvbm5uZWN0b3JzX3N0YXRlIHsKICAqIEBj cnRjczogcG9pbnRlciB0byBhcnJheSBvZiBDUlRDIHBvaW50ZXJzCiAgKiBAbnVtX2Nvbm5lY3Rv cjogc2l6ZSBvZiB0aGUgQGNvbm5lY3RvcnMgYW5kIEBjb25uZWN0b3Jfc3RhdGVzIGFycmF5cwog ICogQGNvbm5lY3RvcnM6IHBvaW50ZXIgdG8gYXJyYXkgb2Ygc3RydWN0dXJlcyB3aXRoIHBlci1j b25uZWN0b3IgZGF0YQorICogQG51bV9wcml2YXRlX29ianM6IHNpemUgb2YgdGhlIEBwcml2YXRl X29ianMgYXJyYXkKKyAqIEBwcml2YXRlX29ianM6IHBvaW50ZXIgdG8gYXJyYXkgb2YgcHJpdmF0 ZSBvYmplY3QgcG9pbnRlcnMKICAqIEBhY3F1aXJlX2N0eDogYWNxdWlyZSBjb250ZXh0IGZvciB0 aGlzIGF0b21pYyBtb2Rlc2V0IHN0YXRlIHVwZGF0ZQogICovCiBzdHJ1Y3QgZHJtX2F0b21pY19z dGF0ZSB7CkBAIC0xNzgsNiArMjI3LDggQEAgc3RydWN0IGRybV9hdG9taWNfc3RhdGUgewogCXN0 cnVjdCBfX2RybV9jcnRjc19zdGF0ZSAqY3J0Y3M7CiAJaW50IG51bV9jb25uZWN0b3I7CiAJc3Ry dWN0IF9fZHJtX2Nvbm5uZWN0b3JzX3N0YXRlICpjb25uZWN0b3JzOworCWludCBudW1fcHJpdmF0 ZV9vYmpzOworCXN0cnVjdCBfX2RybV9wcml2YXRlX29ianNfc3RhdGUgKnByaXZhdGVfb2JqczsK IAogCXN0cnVjdCBkcm1fbW9kZXNldF9hY3F1aXJlX2N0eCAqYWNxdWlyZV9jdHg7CiAKQEAgLTI3 MCw2ICszMjEsMTEgQEAgaW50IGRybV9hdG9taWNfY29ubmVjdG9yX3NldF9wcm9wZXJ0eShzdHJ1 Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLAogCQlzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0 ZSAqc3RhdGUsIHN0cnVjdCBkcm1fcHJvcGVydHkgKnByb3BlcnR5LAogCQl1aW50NjRfdCB2YWwp OwogCit2b2lkICogX19tdXN0X2NoZWNrCitkcm1fYXRvbWljX2dldF9wcml2YXRlX29ial9zdGF0 ZShzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUsCisJCQkgICAgICB2b2lkICpvYmosCisJ CQkgICAgICBjb25zdCBzdHJ1Y3QgZHJtX3ByaXZhdGVfc3RhdGVfZnVuY3MgKmZ1bmNzKTsKKwog LyoqCiAgKiBkcm1fYXRvbWljX2dldF9leGlzdGluZ19jcnRjX3N0YXRlIC0gZ2V0IGNydGMgc3Rh dGUsIGlmIGl0IGV4aXN0cwogICogQHN0YXRlOiBnbG9iYWwgYXRvbWljIHN0YXRlIG9iamVjdApA QCAtNDE1LDYgKzQ3MSw0MSBAQCB2b2lkIGRybV9zdGF0ZV9kdW1wKHN0cnVjdCBkcm1fZGV2aWNl ICpkZXYsIHN0cnVjdCBkcm1fcHJpbnRlciAqcCk7CiAJCWZvcl9lYWNoX2lmIChwbGFuZV9zdGF0 ZSkKIAogLyoqCisgKiBfX2Zvcl9lYWNoX3ByaXZhdGVfb2JqIC0gaXRlcmF0ZSBvdmVyIGFsbCBw cml2YXRlIG9iamVjdHMKKyAqIEBfX3N0YXRlOiB0aGUgYXRvbWljIHN0YXRlCisgKgorICogVGhp cyBtYWNybyBpdGVyYXRlcyBvdmVyIHRoZSBhcnJheSBjb250YWluaW5nIHByaXZhdGUgb2JqZWN0 IGRhdGEgaW4gYXRvbWljCisgKiBzdGF0ZQorICovCisjZGVmaW5lIF9fZm9yX2VhY2hfcHJpdmF0 ZV9vYmooX19zdGF0ZSwgb2JqLCBvYmpfc3RhdGUsIF9faSwgX19mdW5jcykJXAorCWZvciAoKF9f aSkgPSAwOwkJCQkJCQlcCisJICAgICAoX19pKSA8IChfX3N0YXRlKS0+bnVtX3ByaXZhdGVfb2Jq cyAmJgkJCVwKKwkgICAgICgob2JqKSA9IChfX3N0YXRlKS0+cHJpdmF0ZV9vYmpzW19faV0ub2Jq LAkJCVwKKwkgICAgIChfX2Z1bmNzKSA9IChfX3N0YXRlKS0+cHJpdmF0ZV9vYmpzW19faV0uZnVu Y3MsCQlcCisJICAgICAob2JqX3N0YXRlKSA9IChfX3N0YXRlKS0+cHJpdmF0ZV9vYmpzW19faV0u b2JqX3N0YXRlLCAxKTsJXAorCSAgICAgKF9faSkrKykJCQkJCQkJXAorCQlmb3JfZWFjaF9pZiAo X19mdW5jcykKKworLyoqCisgKiBmb3JfZWFjaF9wcml2YXRlX29iaiAtIGl0ZXJhdGUgb3ZlciBh IHNwZWNpZnkgdHlwZSBvZiBwcml2YXRlIG9iamVjdAorICogQF9fc3RhdGU6IHRoZSBhdG9taWMg c3RhdGUKKyAqIEBvYmpfZnVuY3M6IGZ1bmN0aW9uIHRhYmxlIHRvIGZpbHRlciB0aGUgcHJpdmF0 ZSBvYmplY3RzCisgKgorICogVGhpcyBtYWNybyBpdGVyYXRlcyBvdmVyIHRoZSBwcml2YXRlIG9i amVjdHMgc3RhdGUgYXJyYXkgd2hpbGUgZmlsdGVyaW5nIHRoZQorICogb2JqZWN0cyBiYXNlZCBv biB0aGUgdmZ1bmMgdGFibGUgdGhhdCBpcyBwYXNzZWQgYXMgQG9ial9mdW5jcy4gTmV3IG1hY3Jv cworICogY2FuIGJlIGNyZWF0ZWQgYnkgcGFzc2luZyBpbiB0aGUgdmZ1bmMgdGFibGUgYXNzb2Np YXRlZCB3aXRoIGEgc3BlY2lmaWMKKyAqIHByaXZhdGUgb2JqZWN0LgorICovCisjZGVmaW5lIGZv cl9lYWNoX3ByaXZhdGVfb2JqKF9fc3RhdGUsIG9ial9mdW5jcywgb2JqLCBvYmpfc3RhdGUsIF9f aSwgX19mdW5jcykJXAorCWZvciAoKF9faSkgPSAwOwkJCQkJCQlcCisJICAgICAoX19pKSA8IChf X3N0YXRlKS0+bnVtX3ByaXZhdGVfb2JqcyAmJgkJCVwKKwkgICAgICgob2JqKSA9IChfX3N0YXRl KS0+cHJpdmF0ZV9vYmpzW19faV0ub2JqLAkJCVwKKwkgICAgIChfX2Z1bmNzKSA9IChfX3N0YXRl KS0+cHJpdmF0ZV9vYmpzW19faV0uZnVuY3MsCQlcCisJICAgICAob2JqX3N0YXRlKSA9IChfX3N0 YXRlKS0+cHJpdmF0ZV9vYmpzW19faV0ub2JqX3N0YXRlLCAxKTsJXAorCSAgICAgKF9faSkrKykJ CQkJCQkJXAorCQlmb3JfZWFjaF9pZiAoX19mdW5jcyA9PSBvYmpfZnVuY3MpCisKKy8qKgogICog ZHJtX2F0b21pY19jcnRjX25lZWRzX21vZGVzZXQgLSBjb21wdXRlIGNvbWJpbmVkIG1vZGVzZXQg bmVlZAogICogQHN0YXRlOiAmZHJtX2NydGNfc3RhdGUgZm9yIHRoZSBDUlRDCiAgKgotLSAKMi43 LjQKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVs LWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczov L2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=