From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: [PATCH 17/17] drm/atomic: Refcounting for plane_state->fb Date: Sun, 2 Nov 2014 14:19:30 +0100 Message-ID: <1414934370-11924-18-git-send-email-daniel.vetter@ffwll.ch> References: <1414934370-11924-1-git-send-email-daniel.vetter@ffwll.ch> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wi0-f177.google.com (mail-wi0-f177.google.com [209.85.212.177]) by gabe.freedesktop.org (Postfix) with ESMTP id 4F1D56EA10 for ; Sun, 2 Nov 2014 05:19:54 -0800 (PST) Received: by mail-wi0-f177.google.com with SMTP id ex7so4432785wid.10 for ; Sun, 02 Nov 2014 05:19:53 -0800 (PST) In-Reply-To: <1414934370-11924-1-git-send-email-daniel.vetter@ffwll.ch> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: DRI Development Cc: Daniel Vetter , Intel Graphics Development , Daniel Vetter List-Id: dri-devel@lists.freedesktop.org U28gbXkgb3JpZ2luYWwgcGxhbiB3YXMgdGhhdCB0aGUgZHJtIGNvcmUgcmVmY291bnRzIGZyYW1l YnVmZmVycyBsaWtlCndpdGggdGhlIGxlZ2FjeSBpb2N0bHMuIEJ1dCB0aGF0IGRvZXNuJ3Qgd29y ayBmb3IgYSBidW5jaCBvZiByZWFzb25zOgoKLSBTdGF0ZSBvYmplY3RzIG1pZ2h0IGxpdmUgbG9u Z2VyIHRoYW4gdW50aWwgdGhlIG5leHQgZmIgY2hhbmdlCiAgaGFwcGVucyBmb3IgYSBwbGFuZS4g Rm9yIGV4YW1wbGUgZGVsYXllZCBjbGVhbnVwIHdvcmsgb25seSBoYXBwZW5zCiAgX2FmdGVyXyB0 aGUgcGFnZWZsaXAgaW9jdGwgaGFzIGNvbXBsZXRlZC4gU28gdGhpcyBkZWZpbml0ZWx5IGRvZXNu J3QKICB3b3JrIHdpdGhvdXQgdGhlIHBsYW5lIHN0YXRlIGhvbGRpbmcgaXRzIG93biByZWZlcm5j ZXMuCgotIFRoZSBvdGhlciBpc3N1ZSBpcyB0cmFuc2l0aW9uIGZyb20gbGVnYWN5IHRvIGF0b21p YyBpbXBsZW1lbnRhdGlvbnMsCiAgd2hlcmUgdGhlIGRyaXZlciB3b3JrcyB1bmRlciBhIG1peCBv ZiBib3RoIHdvcmxkcy4gV2hpY2ggbWVhbnMKICBsZWdhY3kgcGF0aHMgbWlnaHQgbm90IHByb3Bl cmx5IHVwZGF0ZSB0aGUgLT5mYiBwb2ludGVyIHVuZGVyCiAgcGxhbmUtPnN0YXRlLT5mYi4gV2hp Y2ggaXMgYSBiaXQgYSBwcm9ibGVtIHdoZW4gdGhlbiBzb21lb25lIGNvbWVzCiAgYXJvdW5kIGFu ZCBfZG9lc18gdHJ5IHRvIGNsZWFuIGl0IHVwIHdoZW4gaXQncyBsb25nIGdvbmUuCgpUaGUgc2Vj b25kIGlzc3VlIGlzIGp1c3QgYSBiaXQgYSB0cmFuc2l0aW9uIGJ1Zywgc2luY2UgZHJpdmVycyBz aG91bGQKdXBkYXRlIHBsYW5lLT5zdGF0ZS0+ZmIgaW4gYWxsIHRoZSBwYXRocyB0aGF0IGFyZW4n dCBjb252ZXJ0ZWQgeWV0LgpCdXQgYSBiaXQgbW9yZSByb2J1c3RuZXNzIGZvciB0aGUgdHJhbnNp dGlvbiBjYW50JyBodXJ0IC0gd2UgcHVsbApzaW1pbGFyIHRyaWNrcyB3aXRoIGNsZWFuaW5nIHVw IHRoZSBvbGQgZmIgaW4gdGhlIHRyYW5zaXRpb25hbCBoZWxwZXJzCmFscmVhZHkuCgpUaGUgcGF0 dGVybiBmb3IgZHJpdmVycyB0aGF0IHRyYW5zaXRpb24gaXMKCglpZiAocGxhbmUtPnN0YXRlKQoJ CWRybV9hdG9taWNfc2V0X2ZiX2Zvcl9wbGFuZShwbGFuZS0+c3RhdGUsIHBsYW5lLT5mYik7Cgpp bnNlcnRlZCBhZnRlciB0aGUgZmIgdXBkYXRlIGhhcyBsb2dpY2FsbHkgY29tcGxldGVkIGF0IHRo ZSBlbmQgb2YKLT5zZXRfY29uZmlnIChvciAtPnNldF9iYXNlL21vZGVfc2V0IGlmIHVzaW5nIHRo ZSBjcnRjIGhlbHBlcnMpLAotPnBhZ2VfZmxpcCwgLT51cGRhdGVfcGxhbmUgb3IgYW55IG90aGVy IGVudHJ5IHBvaW50IHdoaWNoIHVwZGF0ZXMKcGxhbmUtPmZiLgoKU2lnbmVkLW9mZi1ieTogRGFu aWVsIFZldHRlciA8ZGFuaWVsLnZldHRlckBpbnRlbC5jb20+Ci0tLQogZHJpdmVycy9ncHUvZHJt L2RybV9hdG9taWMuYyAgICAgICAgfCAyNyArKysrKysrKysrKysrKysrKysrKysrKysrKysKIGRy aXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljX2hlbHBlci5jIHwgMjUgKysrKysrKysrKysrKysrKysr Ky0tLS0tLQogZHJpdmVycy9ncHUvZHJtL2RybV9jcnRjX2hlbHBlci5jICAgfCAgNyArKysrLS0t CiBkcml2ZXJzL2dwdS9kcm0vZHJtX3BsYW5lX2hlbHBlci5jICB8IDE0ICsrKysrKystLS0tLS0t CiBpbmNsdWRlL2RybS9kcm1fYXRvbWljLmggICAgICAgICAgICB8ICAyICsrCiA1IGZpbGVzIGNo YW5nZWQsIDU5IGluc2VydGlvbnMoKyksIDE2IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljLmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pYy5j CmluZGV4IGM2ZGI4YTQ4Y2FkNi4uYWYzNDMyMWI2NzVkIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dw dS9kcm0vZHJtX2F0b21pYy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljLmMKQEAg LTM2Niw2ICszNjYsMzMgQEAgZHJtX2F0b21pY19zZXRfY3J0Y19mb3JfcGxhbmUoc3RydWN0IGRy bV9wbGFuZV9zdGF0ZSAqcGxhbmVfc3RhdGUsCiBFWFBPUlRfU1lNQk9MKGRybV9hdG9taWNfc2V0 X2NydGNfZm9yX3BsYW5lKTsKIAogLyoqCisgKiBkcm1fYXRvbWljX3NldF9mYl9mb3JfcGxhbmUg LSBzZXQgY3J0YyBmb3IgcGxhbmUKKyAqIEBwbGFuZV9zdGF0ZTogYXRvbWljIHN0YXRlIG9iamVj dCBmb3IgdGhlIHBsYW5lCisgKiBAZmI6IGZiIHRvIHVzZSBmb3IgdGhlIHBsYW5lCisgKgorICog Q2hhbmdpbmcgdGhlIGFzc2lnbmVkIGNydGMgZm9yIGEgcGxhbmUgcmVxdWlyZXMgdXMgdG8gZ3Jh YiB0aGUgbG9jayBhbmQgc3RhdGUKKyAqIGZvciB0aGUgbmV3IGNydGMsIGFzIG5lZWRlZC4gVGhp cyBmdW5jdGlvbiB0YWtlcyBjYXJlIG9mIGFsbCB0aGVzZSBkZXRhaWxzCisgKiBiZXNpZGVzIHVw ZGF0aW5nIHRoZSBwb2ludGVyIGluIHRoZSBzdGF0ZSBvYmplY3QgaXRzZWxmLgorICovCit2b2lk Citkcm1fYXRvbWljX3NldF9mYl9mb3JfcGxhbmUoc3RydWN0IGRybV9wbGFuZV9zdGF0ZSAqcGxh bmVfc3RhdGUsCisJCQkgICAgc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIpCit7CisJaWYgKHBs YW5lX3N0YXRlLT5mYikKKwkJZHJtX2ZyYW1lYnVmZmVyX3VucmVmZXJlbmNlKHBsYW5lX3N0YXRl LT5mYik7CisJaWYgKGZiKQorCQlkcm1fZnJhbWVidWZmZXJfcmVmZXJlbmNlKGZiKTsKKwlwbGFu ZV9zdGF0ZS0+ZmIgPSBmYjsKKworCWlmIChmYikKKwkJRFJNX0RFQlVHX0tNUygiU2V0IFtGQjol ZF0gZm9yIHBsYW5lIHN0YXRlICVwXG4iLAorCQkJICAgICAgZmItPmJhc2UuaWQsIHBsYW5lX3N0 YXRlKTsKKwllbHNlCisJCURSTV9ERUJVR19LTVMoIlNldCBbTk9GQl0gZm9yIHBsYW5lIHN0YXRl ICVwXG4iLCBwbGFuZV9zdGF0ZSk7Cit9CitFWFBPUlRfU1lNQk9MKGRybV9hdG9taWNfc2V0X2Zi X2Zvcl9wbGFuZSk7CisKKy8qKgogICogZHJtX2F0b21pY19zZXRfY3J0Y19mb3JfY29ubmVjdG9y IC0gc2V0IGNydGMgZm9yIGNvbm5lY3RvcgogICogQGNvbm5fc3RhdGU6IGF0b21pYyBzdGF0ZSBv YmplY3QgZm9yIHRoZSBjb25uZWN0b3IKICAqIEBjcnRjOiBjcnRjIHRvIHVzZSBmb3IgdGhlIGNv bm5lY3RvcgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWNfaGVscGVyLmMg Yi9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pY19oZWxwZXIuYwppbmRleCBkMGNhNjgxZDYzMjYu LmE1ZGU2MGZhZWRmZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWNfaGVs cGVyLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWNfaGVscGVyLmMKQEAgLTExNzUs NyArMTE3NSw3IEBAIHJldHJ5OgogCX0KIAogCWRybV9hdG9taWNfc2V0X2NydGNfZm9yX3BsYW5l KHBsYW5lX3N0YXRlLCBjcnRjKTsKLQlwbGFuZV9zdGF0ZS0+ZmIgPSBmYjsKKwlkcm1fYXRvbWlj X3NldF9mYl9mb3JfcGxhbmUocGxhbmVfc3RhdGUsIGZiKTsKIAlwbGFuZV9zdGF0ZS0+Y3J0Y194 ID0gY3J0Y194OwogCXBsYW5lX3N0YXRlLT5jcnRjX3kgPSBjcnRjX3k7CiAJcGxhbmVfc3RhdGUt PmNydGNfaCA9IGNydGNfaDsKQEAgLTEyNDIsNyArMTI0Miw3IEBAIHJldHJ5OgogCX0KIAogCWRy bV9hdG9taWNfc2V0X2NydGNfZm9yX3BsYW5lKHBsYW5lX3N0YXRlLCBOVUxMKTsKLQlwbGFuZV9z dGF0ZS0+ZmIgPSBOVUxMOworCWRybV9hdG9taWNfc2V0X2ZiX2Zvcl9wbGFuZShwbGFuZV9zdGF0 ZSwgTlVMTCk7CiAJcGxhbmVfc3RhdGUtPmNydGNfeCA9IDA7CiAJcGxhbmVfc3RhdGUtPmNydGNf eSA9IDA7CiAJcGxhbmVfc3RhdGUtPmNydGNfaCA9IDA7CkBAIC0xNDAyLDcgKzE0MDIsNyBAQCBy ZXRyeToKIAl9CiAKIAlkcm1fYXRvbWljX3NldF9jcnRjX2Zvcl9wbGFuZShwcmltYXJ5X3N0YXRl LCBjcnRjKTsKLQlwcmltYXJ5X3N0YXRlLT5mYiA9IHNldC0+ZmI7CisJZHJtX2F0b21pY19zZXRf ZmJfZm9yX3BsYW5lKHByaW1hcnlfc3RhdGUsIHNldC0+ZmIpOwogCXByaW1hcnlfc3RhdGUtPmNy dGNfeCA9IDA7CiAJcHJpbWFyeV9zdGF0ZS0+Y3J0Y195ID0gMDsKIAlwcmltYXJ5X3N0YXRlLT5j cnRjX2ggPSBzZXQtPm1vZGUtPnZkaXNwbGF5OwpAQCAtMTY5NSw3ICsxNjk1LDcgQEAgcmV0cnk6 CiAJfQogCiAJZHJtX2F0b21pY19zZXRfY3J0Y19mb3JfcGxhbmUocGxhbmVfc3RhdGUsIGNydGMp OwotCXBsYW5lX3N0YXRlLT5mYiA9IGZiOworCWRybV9hdG9taWNfc2V0X2ZiX2Zvcl9wbGFuZShw bGFuZV9zdGF0ZSwgZmIpOwogCiAJcmV0ID0gZHJtX2F0b21pY19hc3luY19jb21taXQoc3RhdGUp OwogCWlmIChyZXQgPT0gLUVERUFETEspCkBAIC0xODA5LDYgKzE4MDksOSBAQCBFWFBPUlRfU1lN Qk9MKGRybV9hdG9taWNfaGVscGVyX2NydGNfZGVzdHJveV9zdGF0ZSk7CiAgKi8KIHZvaWQgZHJt X2F0b21pY19oZWxwZXJfcGxhbmVfcmVzZXQoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUpCiB7CisJ aWYgKHBsYW5lLT5zdGF0ZSAmJiBwbGFuZS0+c3RhdGUtPmZiKQorCQlkcm1fZnJhbWVidWZmZXJf dW5yZWZlcmVuY2UocGxhbmUtPnN0YXRlLT5mYik7CisKIAlrZnJlZShwbGFuZS0+c3RhdGUpOwog CXBsYW5lLT5zdGF0ZSA9IGt6YWxsb2Moc2l6ZW9mKCpwbGFuZS0+c3RhdGUpLCBHRlBfS0VSTkVM KTsKIH0KQEAgLTE4MjQsMTAgKzE4MjcsMTcgQEAgRVhQT1JUX1NZTUJPTChkcm1fYXRvbWljX2hl bHBlcl9wbGFuZV9yZXNldCk7CiBzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRlICoKIGRybV9hdG9taWNf aGVscGVyX3BsYW5lX2R1cGxpY2F0ZV9zdGF0ZShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSkKIHsK KwlzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRlICpzdGF0ZTsKKwogCWlmIChXQVJOX09OKCFwbGFuZS0+ c3RhdGUpKQogCQlyZXR1cm4gTlVMTDsKIAotCXJldHVybiBrbWVtZHVwKHBsYW5lLT5zdGF0ZSwg c2l6ZW9mKCpwbGFuZS0+c3RhdGUpLCBHRlBfS0VSTkVMKTsKKwlzdGF0ZSA9IGttZW1kdXAocGxh bmUtPnN0YXRlLCBzaXplb2YoKnBsYW5lLT5zdGF0ZSksIEdGUF9LRVJORUwpOworCisJaWYgKHN0 YXRlICYmIHN0YXRlLT5mYikKKwkJZHJtX2ZyYW1lYnVmZmVyX3JlZmVyZW5jZShzdGF0ZS0+ZmIp OworCisJcmV0dXJuIHN0YXRlOwogfQogRVhQT1JUX1NZTUJPTChkcm1fYXRvbWljX2hlbHBlcl9w bGFuZV9kdXBsaWNhdGVfc3RhdGUpOwogCkBAIC0xODQwLDggKzE4NTAsMTEgQEAgRVhQT1JUX1NZ TUJPTChkcm1fYXRvbWljX2hlbHBlcl9wbGFuZV9kdXBsaWNhdGVfc3RhdGUpOwogICogc3ViY2xh c3NlZCBwbGFuZSBzdGF0ZSBzdHJ1Y3R1cmUuCiAgKi8KIHZvaWQgZHJtX2F0b21pY19oZWxwZXJf cGxhbmVfZGVzdHJveV9zdGF0ZShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKLQkJCQkJICBzdHJ1 Y3QgZHJtX3BsYW5lX3N0YXRlICpzdGF0ZSkKKwkJCQkJICAgc3RydWN0IGRybV9wbGFuZV9zdGF0 ZSAqc3RhdGUpCiB7CisJaWYgKHN0YXRlLT5mYikKKwkJZHJtX2ZyYW1lYnVmZmVyX3VucmVmZXJl bmNlKHN0YXRlLT5mYik7CisKIAlrZnJlZShzdGF0ZSk7CiB9CiBFWFBPUlRfU1lNQk9MKGRybV9h dG9taWNfaGVscGVyX3BsYW5lX2Rlc3Ryb3lfc3RhdGUpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2RybV9jcnRjX2hlbHBlci5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9jcnRjX2hlbHBl ci5jCmluZGV4IDMzMTk1ZTlhZGFhYi4uZDU1MjcwODQwOWRlIDEwMDY0NAotLS0gYS9kcml2ZXJz L2dwdS9kcm0vZHJtX2NydGNfaGVscGVyLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9jcnRj X2hlbHBlci5jCkBAIC0zNCwxMSArMzQsMTMgQEAKICNpbmNsdWRlIDxsaW51eC9tb2R1bGVwYXJh bS5oPgogCiAjaW5jbHVkZSA8ZHJtL2RybVAuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX2F0b21pYy5o PgogI2luY2x1ZGUgPGRybS9kcm1fY3J0Yy5oPgogI2luY2x1ZGUgPGRybS9kcm1fZm91cmNjLmg+ CiAjaW5jbHVkZSA8ZHJtL2RybV9jcnRjX2hlbHBlci5oPgogI2luY2x1ZGUgPGRybS9kcm1fZmJf aGVscGVyLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9wbGFuZV9oZWxwZXIuaD4KKyNpbmNsdWRlIDxk cm0vZHJtX2F0b21pY19oZWxwZXIuaD4KICNpbmNsdWRlIDxkcm0vZHJtX2VkaWQuaD4KIAogLyoq CkBAIC05OTgsMTUgKzEwMDAsMTQgQEAgaW50IGRybV9oZWxwZXJfY3J0Y19tb2RlX3NldF9iYXNl KHN0cnVjdCBkcm1fY3J0YyAqY3J0YywgaW50IHgsIGludCB5LAogCWlmIChwbGFuZS0+ZnVuY3Mt PmF0b21pY19kdXBsaWNhdGVfc3RhdGUpCiAJCXBsYW5lX3N0YXRlID0gcGxhbmUtPmZ1bmNzLT5h dG9taWNfZHVwbGljYXRlX3N0YXRlKHBsYW5lKTsKIAllbHNlIGlmIChwbGFuZS0+c3RhdGUpCi0J CXBsYW5lX3N0YXRlID0ga21lbWR1cChwbGFuZS0+c3RhdGUsIHNpemVvZigqcGxhbmVfc3RhdGUp LAotCQkJCSAgICAgIEdGUF9LRVJORUwpOworCQlwbGFuZV9zdGF0ZSA9IGRybV9hdG9taWNfaGVs cGVyX3BsYW5lX2R1cGxpY2F0ZV9zdGF0ZShwbGFuZSk7CiAJZWxzZQogCQlwbGFuZV9zdGF0ZSA9 IGt6YWxsb2Moc2l6ZW9mKCpwbGFuZV9zdGF0ZSksIEdGUF9LRVJORUwpOwogCWlmICghcGxhbmVf c3RhdGUpCiAJCXJldHVybiAtRU5PTUVNOwogCiAJcGxhbmVfc3RhdGUtPmNydGMgPSBjcnRjOwot CXBsYW5lX3N0YXRlLT5mYiA9IGNydGMtPnByaW1hcnktPmZiOworCWRybV9hdG9taWNfc2V0X2Zi X2Zvcl9wbGFuZShwbGFuZV9zdGF0ZSwgY3J0Yy0+cHJpbWFyeS0+ZmIpOwogCXBsYW5lX3N0YXRl LT5jcnRjX3ggPSAwOwogCXBsYW5lX3N0YXRlLT5jcnRjX3kgPSAwOwogCXBsYW5lX3N0YXRlLT5j cnRjX2ggPSBjcnRjLT5tb2RlLnZkaXNwbGF5OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2RybV9wbGFuZV9oZWxwZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fcGxhbmVfaGVscGVyLmMK aW5kZXggZGY2OTUyMmIxZjBlLi40OTcxMDRkZjExMmIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9kcm1fcGxhbmVfaGVscGVyLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9wbGFuZV9o ZWxwZXIuYwpAQCAtMjcsNyArMjcsOSBAQAogI2luY2x1ZGUgPGRybS9kcm1QLmg+CiAjaW5jbHVk ZSA8ZHJtL2RybV9wbGFuZV9oZWxwZXIuaD4KICNpbmNsdWRlIDxkcm0vZHJtX3JlY3QuaD4KKyNp bmNsdWRlIDxkcm0vZHJtX2F0b21pYy5oPgogI2luY2x1ZGUgPGRybS9kcm1fY3J0Y19oZWxwZXIu aD4KKyNpbmNsdWRlIDxkcm0vZHJtX2F0b21pY19oZWxwZXIuaD4KIAogI2RlZmluZSBTVUJQSVhF TF9NQVNLIDB4ZmZmZgogCkBAIC00NjIsNyArNDY0LDcgQEAgZmFpbDoKIAkJaWYgKHBsYW5lLT5m dW5jcy0+YXRvbWljX2Rlc3Ryb3lfc3RhdGUpCiAJCQlwbGFuZS0+ZnVuY3MtPmF0b21pY19kZXN0 cm95X3N0YXRlKHBsYW5lLCBwbGFuZV9zdGF0ZSk7CiAJCWVsc2UKLQkJCWtmcmVlKHBsYW5lX3N0 YXRlKTsKKwkJCWRybV9hdG9taWNfaGVscGVyX3BsYW5lX2Rlc3Ryb3lfc3RhdGUocGxhbmUsIHBs YW5lX3N0YXRlKTsKIAl9CiAKIAlyZXR1cm4gcmV0OwpAQCAtNTAzLDE1ICs1MDUsMTQgQEAgaW50 IGRybV9wbGFuZV9oZWxwZXJfdXBkYXRlKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLCBzdHJ1Y3Qg ZHJtX2NydGMgKmNydGMsCiAJaWYgKHBsYW5lLT5mdW5jcy0+YXRvbWljX2R1cGxpY2F0ZV9zdGF0 ZSkKIAkJcGxhbmVfc3RhdGUgPSBwbGFuZS0+ZnVuY3MtPmF0b21pY19kdXBsaWNhdGVfc3RhdGUo cGxhbmUpOwogCWVsc2UgaWYgKHBsYW5lLT5zdGF0ZSkKLQkJcGxhbmVfc3RhdGUgPSBrbWVtZHVw KHBsYW5lLT5zdGF0ZSwgc2l6ZW9mKCpwbGFuZV9zdGF0ZSksCi0JCQkJICAgICAgR0ZQX0tFUk5F TCk7CisJCXBsYW5lX3N0YXRlID0gZHJtX2F0b21pY19oZWxwZXJfcGxhbmVfZHVwbGljYXRlX3N0 YXRlKHBsYW5lKTsKIAllbHNlCiAJCXBsYW5lX3N0YXRlID0ga3phbGxvYyhzaXplb2YoKnBsYW5l X3N0YXRlKSwgR0ZQX0tFUk5FTCk7CiAJaWYgKCFwbGFuZV9zdGF0ZSkKIAkJcmV0dXJuIC1FTk9N RU07CiAKIAlwbGFuZV9zdGF0ZS0+Y3J0YyA9IGNydGM7Ci0JcGxhbmVfc3RhdGUtPmZiID0gZmI7 CisJZHJtX2F0b21pY19zZXRfZmJfZm9yX3BsYW5lKHBsYW5lX3N0YXRlLCBmYik7CiAJcGxhbmVf c3RhdGUtPmNydGNfeCA9IGNydGNfeDsKIAlwbGFuZV9zdGF0ZS0+Y3J0Y195ID0gY3J0Y195Owog CXBsYW5lX3N0YXRlLT5jcnRjX2ggPSBjcnRjX2g7CkBAIC01NTAsMTUgKzU1MSwxNCBAQCBpbnQg ZHJtX3BsYW5lX2hlbHBlcl9kaXNhYmxlKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lKQogCWlmIChw bGFuZS0+ZnVuY3MtPmF0b21pY19kdXBsaWNhdGVfc3RhdGUpCiAJCXBsYW5lX3N0YXRlID0gcGxh bmUtPmZ1bmNzLT5hdG9taWNfZHVwbGljYXRlX3N0YXRlKHBsYW5lKTsKIAllbHNlIGlmIChwbGFu ZS0+c3RhdGUpCi0JCXBsYW5lX3N0YXRlID0ga21lbWR1cChwbGFuZS0+c3RhdGUsIHNpemVvZigq cGxhbmVfc3RhdGUpLAotCQkJCSAgICAgIEdGUF9LRVJORUwpOworCQlwbGFuZV9zdGF0ZSA9IGRy bV9hdG9taWNfaGVscGVyX3BsYW5lX2R1cGxpY2F0ZV9zdGF0ZShwbGFuZSk7CiAJZWxzZQogCQlw bGFuZV9zdGF0ZSA9IGt6YWxsb2Moc2l6ZW9mKCpwbGFuZV9zdGF0ZSksIEdGUF9LRVJORUwpOwog CWlmICghcGxhbmVfc3RhdGUpCiAJCXJldHVybiAtRU5PTUVNOwogCiAJcGxhbmVfc3RhdGUtPmNy dGMgPSBOVUxMOwotCXBsYW5lX3N0YXRlLT5mYiA9IE5VTEw7CisJZHJtX2F0b21pY19zZXRfZmJf Zm9yX3BsYW5lKHBsYW5lX3N0YXRlLCBOVUxMKTsKIAogCXJldHVybiBkcm1fcGxhbmVfaGVscGVy X2NvbW1pdChwbGFuZSwgcGxhbmVfc3RhdGUsIHBsYW5lLT5mYik7CiB9CmRpZmYgLS1naXQgYS9p bmNsdWRlL2RybS9kcm1fYXRvbWljLmggYi9pbmNsdWRlL2RybS9kcm1fYXRvbWljLmgKaW5kZXgg NzUzODEyMDM0ZTcxLi41MmQ5Mjk4MTIwOWYgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvZHJtL2RybV9h dG9taWMuaAorKysgYi9pbmNsdWRlL2RybS9kcm1fYXRvbWljLmgKQEAgLTQ1LDYgKzQ1LDggQEAg ZHJtX2F0b21pY19nZXRfY29ubmVjdG9yX3N0YXRlKHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpz dGF0ZSwKIAogaW50IGRybV9hdG9taWNfc2V0X2NydGNfZm9yX3BsYW5lKHN0cnVjdCBkcm1fcGxh bmVfc3RhdGUgKnBsYW5lX3N0YXRlLAogCQkJCSAgc3RydWN0IGRybV9jcnRjICpjcnRjKTsKK3Zv aWQgZHJtX2F0b21pY19zZXRfZmJfZm9yX3BsYW5lKHN0cnVjdCBkcm1fcGxhbmVfc3RhdGUgKnBs YW5lX3N0YXRlLAorCQkJCSBzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYik7CiBpbnQgZHJtX2F0 b21pY19zZXRfY3J0Y19mb3JfY29ubmVjdG9yKHN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpj b25uX3N0YXRlLAogCQkJCSAgICAgIHN0cnVjdCBkcm1fY3J0YyAqY3J0Yyk7CiBpbnQKLS0gCjIu MS4xCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmkt ZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cDov L2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=