From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: [PATCH] drm/atomic: Refcounting for plane_state->fb Date: Tue, 4 Nov 2014 22:57:55 +0100 Message-ID: <1415138275-10109-1-git-send-email-daniel.vetter@ffwll.ch> References: <1414934370-11924-18-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-f179.google.com (mail-wi0-f179.google.com [209.85.212.179]) by gabe.freedesktop.org (Postfix) with ESMTP id 798266E587 for ; Tue, 4 Nov 2014 13:57:47 -0800 (PST) Received: by mail-wi0-f179.google.com with SMTP id h11so355007wiw.6 for ; Tue, 04 Nov 2014 13:57:46 -0800 (PST) In-Reply-To: <1414934370-11924-18-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 IGVudHJ5IHBvaW50IHdoaWNoIHVwZGF0ZXMKcGxhbmUtPmZiLgoKdjI6IFVwZGF0ZSBrZXJuZWxk b2MgLSBjb3B5cGFzdGEgZmFpbC4KClNpZ25lZC1vZmYtYnk6IERhbmllbCBWZXR0ZXIgPGRhbmll bC52ZXR0ZXJAaW50ZWwuY29tPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljLmMgICAg ICAgIHwgMjggKysrKysrKysrKysrKysrKysrKysrKysrKysrKwogZHJpdmVycy9ncHUvZHJtL2Ry bV9hdG9taWNfaGVscGVyLmMgfCAyNSArKysrKysrKysrKysrKysrKysrLS0tLS0tCiBkcml2ZXJz L2dwdS9kcm0vZHJtX2NydGNfaGVscGVyLmMgICB8ICA3ICsrKystLS0KIGRyaXZlcnMvZ3B1L2Ry bS9kcm1fcGxhbmVfaGVscGVyLmMgIHwgMTQgKysrKysrKy0tLS0tLS0KIGluY2x1ZGUvZHJtL2Ry bV9hdG9taWMuaCAgICAgICAgICAgIHwgIDIgKysKIDUgZmlsZXMgY2hhbmdlZCwgNjAgaW5zZXJ0 aW9ucygrKSwgMTYgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2Ry bV9hdG9taWMuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljLmMKaW5kZXggYmYzY2RjMjEz M2U0Li5iNzFlOTIwMGIyM2QgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWlj LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWMuYwpAQCAtMzY2LDYgKzM2NiwzNCBA QCBkcm1fYXRvbWljX3NldF9jcnRjX2Zvcl9wbGFuZShzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRlICpw bGFuZV9zdGF0ZSwKIEVYUE9SVF9TWU1CT0woZHJtX2F0b21pY19zZXRfY3J0Y19mb3JfcGxhbmUp OwogCiAvKioKKyAqIGRybV9hdG9taWNfc2V0X2ZiX2Zvcl9wbGFuZSAtIHNldCBjcnRjIGZvciBw bGFuZQorICogQHBsYW5lX3N0YXRlOiBhdG9taWMgc3RhdGUgb2JqZWN0IGZvciB0aGUgcGxhbmUK KyAqIEBmYjogZmIgdG8gdXNlIGZvciB0aGUgcGxhbmUKKyAqCisgKiBDaGFuZ2luZyB0aGUgYXNz aWduZWQgZnJhbWVidWZmZXIgZm9yIGEgcGxhbmUgcmVxdWlyZXMgdXMgdG8gZ3JhYiBhIHJlZmVy ZW5jZQorICogdG8gdGhlIG5ldyBmYiBhbmQgZHJvcCB0aGUgcmVmZXJlbmNlIHRvIHRoZSBvbGQg ZmIsIGlmIHRoZXJlIGlzIG9uZS4gVGhpcworICogZnVuY3Rpb24gdGFrZXMgY2FyZSBvZiBhbGwg dGhlc2UgZGV0YWlscyBiZXNpZGVzIHVwZGF0aW5nIHRoZSBwb2ludGVyIGluIHRoZQorICogc3Rh dGUgb2JqZWN0IGl0c2VsZi4KKyAqLwordm9pZAorZHJtX2F0b21pY19zZXRfZmJfZm9yX3BsYW5l KHN0cnVjdCBkcm1fcGxhbmVfc3RhdGUgKnBsYW5lX3N0YXRlLAorCQkJICAgIHN0cnVjdCBkcm1f ZnJhbWVidWZmZXIgKmZiKQoreworCWlmIChwbGFuZV9zdGF0ZS0+ZmIpCisJCWRybV9mcmFtZWJ1 ZmZlcl91bnJlZmVyZW5jZShwbGFuZV9zdGF0ZS0+ZmIpOworCWlmIChmYikKKwkJZHJtX2ZyYW1l YnVmZmVyX3JlZmVyZW5jZShmYik7CisJcGxhbmVfc3RhdGUtPmZiID0gZmI7CisKKwlpZiAoZmIp CisJCURSTV9ERUJVR19LTVMoIlNldCBbRkI6JWRdIGZvciBwbGFuZSBzdGF0ZSAlcFxuIiwKKwkJ CSAgICAgIGZiLT5iYXNlLmlkLCBwbGFuZV9zdGF0ZSk7CisJZWxzZQorCQlEUk1fREVCVUdfS01T KCJTZXQgW05PRkJdIGZvciBwbGFuZSBzdGF0ZSAlcFxuIiwgcGxhbmVfc3RhdGUpOworfQorRVhQ T1JUX1NZTUJPTChkcm1fYXRvbWljX3NldF9mYl9mb3JfcGxhbmUpOworCisvKioKICAqIGRybV9h dG9taWNfc2V0X2NydGNfZm9yX2Nvbm5lY3RvciAtIHNldCBjcnRjIGZvciBjb25uZWN0b3IKICAq IEBjb25uX3N0YXRlOiBhdG9taWMgc3RhdGUgb2JqZWN0IGZvciB0aGUgY29ubmVjdG9yCiAgKiBA Y3J0YzogY3J0YyB0byB1c2UgZm9yIHRoZSBjb25uZWN0b3IKZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9kcm1fYXRvbWljX2hlbHBlci5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWNf aGVscGVyLmMKaW5kZXggYmJjNDFjOWIzY2ZjLi44NTFjYzZjMDRiMjIgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljX2hlbHBlci5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9k cm1fYXRvbWljX2hlbHBlci5jCkBAIC0xMTc1LDcgKzExNzUsNyBAQCByZXRyeToKIAl9CiAKIAlk cm1fYXRvbWljX3NldF9jcnRjX2Zvcl9wbGFuZShwbGFuZV9zdGF0ZSwgY3J0Yyk7Ci0JcGxhbmVf c3RhdGUtPmZiID0gZmI7CisJZHJtX2F0b21pY19zZXRfZmJfZm9yX3BsYW5lKHBsYW5lX3N0YXRl LCBmYik7CiAJcGxhbmVfc3RhdGUtPmNydGNfeCA9IGNydGNfeDsKIAlwbGFuZV9zdGF0ZS0+Y3J0 Y195ID0gY3J0Y195OwogCXBsYW5lX3N0YXRlLT5jcnRjX2ggPSBjcnRjX2g7CkBAIC0xMjQyLDcg KzEyNDIsNyBAQCByZXRyeToKIAl9CiAKIAlkcm1fYXRvbWljX3NldF9jcnRjX2Zvcl9wbGFuZShw bGFuZV9zdGF0ZSwgTlVMTCk7Ci0JcGxhbmVfc3RhdGUtPmZiID0gTlVMTDsKKwlkcm1fYXRvbWlj X3NldF9mYl9mb3JfcGxhbmUocGxhbmVfc3RhdGUsIE5VTEwpOwogCXBsYW5lX3N0YXRlLT5jcnRj X3ggPSAwOwogCXBsYW5lX3N0YXRlLT5jcnRjX3kgPSAwOwogCXBsYW5lX3N0YXRlLT5jcnRjX2gg PSAwOwpAQCAtMTQwMiw3ICsxNDAyLDcgQEAgcmV0cnk6CiAJfQogCiAJZHJtX2F0b21pY19zZXRf Y3J0Y19mb3JfcGxhbmUocHJpbWFyeV9zdGF0ZSwgY3J0Yyk7Ci0JcHJpbWFyeV9zdGF0ZS0+ZmIg PSBzZXQtPmZiOworCWRybV9hdG9taWNfc2V0X2ZiX2Zvcl9wbGFuZShwcmltYXJ5X3N0YXRlLCBz ZXQtPmZiKTsKIAlwcmltYXJ5X3N0YXRlLT5jcnRjX3ggPSAwOwogCXByaW1hcnlfc3RhdGUtPmNy dGNfeSA9IDA7CiAJcHJpbWFyeV9zdGF0ZS0+Y3J0Y19oID0gc2V0LT5tb2RlLT52ZGlzcGxheTsK QEAgLTE2OTUsNyArMTY5NSw3IEBAIHJldHJ5OgogCX0KIAogCWRybV9hdG9taWNfc2V0X2NydGNf Zm9yX3BsYW5lKHBsYW5lX3N0YXRlLCBjcnRjKTsKLQlwbGFuZV9zdGF0ZS0+ZmIgPSBmYjsKKwlk cm1fYXRvbWljX3NldF9mYl9mb3JfcGxhbmUocGxhbmVfc3RhdGUsIGZiKTsKIAogCXJldCA9IGRy bV9hdG9taWNfYXN5bmNfY29tbWl0KHN0YXRlKTsKIAlpZiAocmV0ID09IC1FREVBRExLKQpAQCAt MTgwOSw2ICsxODA5LDkgQEAgRVhQT1JUX1NZTUJPTChkcm1fYXRvbWljX2hlbHBlcl9jcnRjX2Rl c3Ryb3lfc3RhdGUpOwogICovCiB2b2lkIGRybV9hdG9taWNfaGVscGVyX3BsYW5lX3Jlc2V0KHN0 cnVjdCBkcm1fcGxhbmUgKnBsYW5lKQogeworCWlmIChwbGFuZS0+c3RhdGUgJiYgcGxhbmUtPnN0 YXRlLT5mYikKKwkJZHJtX2ZyYW1lYnVmZmVyX3VucmVmZXJlbmNlKHBsYW5lLT5zdGF0ZS0+ZmIp OworCiAJa2ZyZWUocGxhbmUtPnN0YXRlKTsKIAlwbGFuZS0+c3RhdGUgPSBremFsbG9jKHNpemVv ZigqcGxhbmUtPnN0YXRlKSwgR0ZQX0tFUk5FTCk7CiB9CkBAIC0xODI0LDEwICsxODI3LDE3IEBA IEVYUE9SVF9TWU1CT0woZHJtX2F0b21pY19oZWxwZXJfcGxhbmVfcmVzZXQpOwogc3RydWN0IGRy bV9wbGFuZV9zdGF0ZSAqCiBkcm1fYXRvbWljX2hlbHBlcl9wbGFuZV9kdXBsaWNhdGVfc3RhdGUo c3RydWN0IGRybV9wbGFuZSAqcGxhbmUpCiB7CisJc3RydWN0IGRybV9wbGFuZV9zdGF0ZSAqc3Rh dGU7CisKIAlpZiAoV0FSTl9PTighcGxhbmUtPnN0YXRlKSkKIAkJcmV0dXJuIE5VTEw7CiAKLQly ZXR1cm4ga21lbWR1cChwbGFuZS0+c3RhdGUsIHNpemVvZigqcGxhbmUtPnN0YXRlKSwgR0ZQX0tF Uk5FTCk7CisJc3RhdGUgPSBrbWVtZHVwKHBsYW5lLT5zdGF0ZSwgc2l6ZW9mKCpwbGFuZS0+c3Rh dGUpLCBHRlBfS0VSTkVMKTsKKworCWlmIChzdGF0ZSAmJiBzdGF0ZS0+ZmIpCisJCWRybV9mcmFt ZWJ1ZmZlcl9yZWZlcmVuY2Uoc3RhdGUtPmZiKTsKKworCXJldHVybiBzdGF0ZTsKIH0KIEVYUE9S VF9TWU1CT0woZHJtX2F0b21pY19oZWxwZXJfcGxhbmVfZHVwbGljYXRlX3N0YXRlKTsKIApAQCAt MTg0MCw4ICsxODUwLDExIEBAIEVYUE9SVF9TWU1CT0woZHJtX2F0b21pY19oZWxwZXJfcGxhbmVf ZHVwbGljYXRlX3N0YXRlKTsKICAqIHN1YmNsYXNzZWQgcGxhbmUgc3RhdGUgc3RydWN0dXJlLgog ICovCiB2b2lkIGRybV9hdG9taWNfaGVscGVyX3BsYW5lX2Rlc3Ryb3lfc3RhdGUoc3RydWN0IGRy bV9wbGFuZSAqcGxhbmUsCi0JCQkJCSAgc3RydWN0IGRybV9wbGFuZV9zdGF0ZSAqc3RhdGUpCisJ CQkJCSAgIHN0cnVjdCBkcm1fcGxhbmVfc3RhdGUgKnN0YXRlKQogeworCWlmIChzdGF0ZS0+ZmIp CisJCWRybV9mcmFtZWJ1ZmZlcl91bnJlZmVyZW5jZShzdGF0ZS0+ZmIpOworCiAJa2ZyZWUoc3Rh dGUpOwogfQogRVhQT1JUX1NZTUJPTChkcm1fYXRvbWljX2hlbHBlcl9wbGFuZV9kZXN0cm95X3N0 YXRlKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fY3J0Y19oZWxwZXIuYyBiL2Ry aXZlcnMvZ3B1L2RybS9kcm1fY3J0Y19oZWxwZXIuYwppbmRleCAzMzE5NWU5YWRhYWIuLmQ1NTI3 MDg0MDlkZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9jcnRjX2hlbHBlci5jCisr KyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fY3J0Y19oZWxwZXIuYwpAQCAtMzQsMTEgKzM0LDEzIEBA CiAjaW5jbHVkZSA8bGludXgvbW9kdWxlcGFyYW0uaD4KIAogI2luY2x1ZGUgPGRybS9kcm1QLmg+ CisjaW5jbHVkZSA8ZHJtL2RybV9hdG9taWMuaD4KICNpbmNsdWRlIDxkcm0vZHJtX2NydGMuaD4K ICNpbmNsdWRlIDxkcm0vZHJtX2ZvdXJjYy5oPgogI2luY2x1ZGUgPGRybS9kcm1fY3J0Y19oZWxw ZXIuaD4KICNpbmNsdWRlIDxkcm0vZHJtX2ZiX2hlbHBlci5oPgogI2luY2x1ZGUgPGRybS9kcm1f cGxhbmVfaGVscGVyLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9hdG9taWNfaGVscGVyLmg+CiAjaW5j bHVkZSA8ZHJtL2RybV9lZGlkLmg+CiAKIC8qKgpAQCAtOTk4LDE1ICsxMDAwLDE0IEBAIGludCBk cm1faGVscGVyX2NydGNfbW9kZV9zZXRfYmFzZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMsIGludCB4 LCBpbnQgeSwKIAlpZiAocGxhbmUtPmZ1bmNzLT5hdG9taWNfZHVwbGljYXRlX3N0YXRlKQogCQlw bGFuZV9zdGF0ZSA9IHBsYW5lLT5mdW5jcy0+YXRvbWljX2R1cGxpY2F0ZV9zdGF0ZShwbGFuZSk7 CiAJZWxzZSBpZiAocGxhbmUtPnN0YXRlKQotCQlwbGFuZV9zdGF0ZSA9IGttZW1kdXAocGxhbmUt PnN0YXRlLCBzaXplb2YoKnBsYW5lX3N0YXRlKSwKLQkJCQkgICAgICBHRlBfS0VSTkVMKTsKKwkJ cGxhbmVfc3RhdGUgPSBkcm1fYXRvbWljX2hlbHBlcl9wbGFuZV9kdXBsaWNhdGVfc3RhdGUocGxh bmUpOwogCWVsc2UKIAkJcGxhbmVfc3RhdGUgPSBremFsbG9jKHNpemVvZigqcGxhbmVfc3RhdGUp LCBHRlBfS0VSTkVMKTsKIAlpZiAoIXBsYW5lX3N0YXRlKQogCQlyZXR1cm4gLUVOT01FTTsKIAog CXBsYW5lX3N0YXRlLT5jcnRjID0gY3J0YzsKLQlwbGFuZV9zdGF0ZS0+ZmIgPSBjcnRjLT5wcmlt YXJ5LT5mYjsKKwlkcm1fYXRvbWljX3NldF9mYl9mb3JfcGxhbmUocGxhbmVfc3RhdGUsIGNydGMt PnByaW1hcnktPmZiKTsKIAlwbGFuZV9zdGF0ZS0+Y3J0Y194ID0gMDsKIAlwbGFuZV9zdGF0ZS0+ Y3J0Y195ID0gMDsKIAlwbGFuZV9zdGF0ZS0+Y3J0Y19oID0gY3J0Yy0+bW9kZS52ZGlzcGxheTsK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fcGxhbmVfaGVscGVyLmMgYi9kcml2ZXJz L2dwdS9kcm0vZHJtX3BsYW5lX2hlbHBlci5jCmluZGV4IGRmNjk1MjJiMWYwZS4uNDk3MTA0ZGYx MTJiIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX3BsYW5lX2hlbHBlci5jCisrKyBi L2RyaXZlcnMvZ3B1L2RybS9kcm1fcGxhbmVfaGVscGVyLmMKQEAgLTI3LDcgKzI3LDkgQEAKICNp bmNsdWRlIDxkcm0vZHJtUC5oPgogI2luY2x1ZGUgPGRybS9kcm1fcGxhbmVfaGVscGVyLmg+CiAj aW5jbHVkZSA8ZHJtL2RybV9yZWN0Lmg+CisjaW5jbHVkZSA8ZHJtL2RybV9hdG9taWMuaD4KICNp bmNsdWRlIDxkcm0vZHJtX2NydGNfaGVscGVyLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9hdG9taWNf aGVscGVyLmg+CiAKICNkZWZpbmUgU1VCUElYRUxfTUFTSyAweGZmZmYKIApAQCAtNDYyLDcgKzQ2 NCw3IEBAIGZhaWw6CiAJCWlmIChwbGFuZS0+ZnVuY3MtPmF0b21pY19kZXN0cm95X3N0YXRlKQog CQkJcGxhbmUtPmZ1bmNzLT5hdG9taWNfZGVzdHJveV9zdGF0ZShwbGFuZSwgcGxhbmVfc3RhdGUp OwogCQllbHNlCi0JCQlrZnJlZShwbGFuZV9zdGF0ZSk7CisJCQlkcm1fYXRvbWljX2hlbHBlcl9w bGFuZV9kZXN0cm95X3N0YXRlKHBsYW5lLCBwbGFuZV9zdGF0ZSk7CiAJfQogCiAJcmV0dXJuIHJl dDsKQEAgLTUwMywxNSArNTA1LDE0IEBAIGludCBkcm1fcGxhbmVfaGVscGVyX3VwZGF0ZShzdHJ1 Y3QgZHJtX3BsYW5lICpwbGFuZSwgc3RydWN0IGRybV9jcnRjICpjcnRjLAogCWlmIChwbGFuZS0+ ZnVuY3MtPmF0b21pY19kdXBsaWNhdGVfc3RhdGUpCiAJCXBsYW5lX3N0YXRlID0gcGxhbmUtPmZ1 bmNzLT5hdG9taWNfZHVwbGljYXRlX3N0YXRlKHBsYW5lKTsKIAllbHNlIGlmIChwbGFuZS0+c3Rh dGUpCi0JCXBsYW5lX3N0YXRlID0ga21lbWR1cChwbGFuZS0+c3RhdGUsIHNpemVvZigqcGxhbmVf c3RhdGUpLAotCQkJCSAgICAgIEdGUF9LRVJORUwpOworCQlwbGFuZV9zdGF0ZSA9IGRybV9hdG9t aWNfaGVscGVyX3BsYW5lX2R1cGxpY2F0ZV9zdGF0ZShwbGFuZSk7CiAJZWxzZQogCQlwbGFuZV9z dGF0ZSA9IGt6YWxsb2Moc2l6ZW9mKCpwbGFuZV9zdGF0ZSksIEdGUF9LRVJORUwpOwogCWlmICgh cGxhbmVfc3RhdGUpCiAJCXJldHVybiAtRU5PTUVNOwogCiAJcGxhbmVfc3RhdGUtPmNydGMgPSBj cnRjOwotCXBsYW5lX3N0YXRlLT5mYiA9IGZiOworCWRybV9hdG9taWNfc2V0X2ZiX2Zvcl9wbGFu ZShwbGFuZV9zdGF0ZSwgZmIpOwogCXBsYW5lX3N0YXRlLT5jcnRjX3ggPSBjcnRjX3g7CiAJcGxh bmVfc3RhdGUtPmNydGNfeSA9IGNydGNfeTsKIAlwbGFuZV9zdGF0ZS0+Y3J0Y19oID0gY3J0Y19o OwpAQCAtNTUwLDE1ICs1NTEsMTQgQEAgaW50IGRybV9wbGFuZV9oZWxwZXJfZGlzYWJsZShzdHJ1 Y3QgZHJtX3BsYW5lICpwbGFuZSkKIAlpZiAocGxhbmUtPmZ1bmNzLT5hdG9taWNfZHVwbGljYXRl X3N0YXRlKQogCQlwbGFuZV9zdGF0ZSA9IHBsYW5lLT5mdW5jcy0+YXRvbWljX2R1cGxpY2F0ZV9z dGF0ZShwbGFuZSk7CiAJZWxzZSBpZiAocGxhbmUtPnN0YXRlKQotCQlwbGFuZV9zdGF0ZSA9IGtt ZW1kdXAocGxhbmUtPnN0YXRlLCBzaXplb2YoKnBsYW5lX3N0YXRlKSwKLQkJCQkgICAgICBHRlBf S0VSTkVMKTsKKwkJcGxhbmVfc3RhdGUgPSBkcm1fYXRvbWljX2hlbHBlcl9wbGFuZV9kdXBsaWNh dGVfc3RhdGUocGxhbmUpOwogCWVsc2UKIAkJcGxhbmVfc3RhdGUgPSBremFsbG9jKHNpemVvZigq cGxhbmVfc3RhdGUpLCBHRlBfS0VSTkVMKTsKIAlpZiAoIXBsYW5lX3N0YXRlKQogCQlyZXR1cm4g LUVOT01FTTsKIAogCXBsYW5lX3N0YXRlLT5jcnRjID0gTlVMTDsKLQlwbGFuZV9zdGF0ZS0+ZmIg PSBOVUxMOworCWRybV9hdG9taWNfc2V0X2ZiX2Zvcl9wbGFuZShwbGFuZV9zdGF0ZSwgTlVMTCk7 CiAKIAlyZXR1cm4gZHJtX3BsYW5lX2hlbHBlcl9jb21taXQocGxhbmUsIHBsYW5lX3N0YXRlLCBw bGFuZS0+ZmIpOwogfQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0vZHJtX2F0b21pYy5oIGIvaW5j bHVkZS9kcm0vZHJtX2F0b21pYy5oCmluZGV4IDc1MzgxMjAzNGU3MS4uNTJkOTI5ODEyMDlmIDEw MDY0NAotLS0gYS9pbmNsdWRlL2RybS9kcm1fYXRvbWljLmgKKysrIGIvaW5jbHVkZS9kcm0vZHJt X2F0b21pYy5oCkBAIC00NSw2ICs0NSw4IEBAIGRybV9hdG9taWNfZ2V0X2Nvbm5lY3Rvcl9zdGF0 ZShzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUsCiAKIGludCBkcm1fYXRvbWljX3NldF9j cnRjX2Zvcl9wbGFuZShzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRlICpwbGFuZV9zdGF0ZSwKIAkJCQkg IHN0cnVjdCBkcm1fY3J0YyAqY3J0Yyk7Cit2b2lkIGRybV9hdG9taWNfc2V0X2ZiX2Zvcl9wbGFu ZShzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRlICpwbGFuZV9zdGF0ZSwKKwkJCQkgc3RydWN0IGRybV9m cmFtZWJ1ZmZlciAqZmIpOwogaW50IGRybV9hdG9taWNfc2V0X2NydGNfZm9yX2Nvbm5lY3Rvcihz dHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqY29ubl9zdGF0ZSwKIAkJCQkgICAgICBzdHJ1Y3Qg ZHJtX2NydGMgKmNydGMpOwogaW50Ci0tIAoyLjEuMQoKX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxA bGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1h bi9saXN0aW5mby9kcmktZGV2ZWwK