From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chris Wilson Subject: [PATCH 1/5] drm/i915: Move intel_prepare_plane_fb() and intel_cleanup_plane_fb() Date: Tue, 15 Nov 2016 08:58:13 +0000 Message-ID: <20161115085817.4210-1-chris@chris-wilson.co.uk> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wm0-x243.google.com (mail-wm0-x243.google.com [IPv6:2a00:1450:400c:c09::243]) by gabe.freedesktop.org (Postfix) with ESMTPS id 2F5AF6E153 for ; Tue, 15 Nov 2016 08:58:22 +0000 (UTC) Received: by mail-wm0-x243.google.com with SMTP id m203so23392708wma.3 for ; Tue, 15 Nov 2016 00:58:22 -0800 (PST) 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 List-Id: intel-gfx@lists.freedesktop.org SW4gdGhlIG5leHQgcGF0Y2gsIGEgZmV3IHJlYXJyYW5nZW1lbnRzIGFyZSBtYWRlIHRvIG1ha2Ug dGhlc2Ugc3RhdGljLgpGaXJzdCwgd2UgbW92ZSB0aGVtIHNvIHRoZSBjaGFuZ2VzIGFyZSBub3Qg bG9zdCBpbiB0aGUgbm9pc2UuCgpTaWduZWQtb2ZmLWJ5OiBDaHJpcyBXaWxzb24gPGNocmlzQGNo cmlzLXdpbHNvbi5jby51az4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5 LmMgfCAyNTUgKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0KIGRyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2Rydi5oICAgICB8ICAgMiArCiAyIGZpbGVzIGNoYW5nZWQsIDEzMCBp bnNlcnRpb25zKCspLCAxMjcgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlz cGxheS5jCmluZGV4IGNiOTM3N2RlNDU2ZS4uOGUwNGYzMWJmMTJlIDEwMDY0NAotLS0gYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfZGlzcGxheS5jCkBAIC0xNDE0NCw2ICsxNDE0NCwxMzQgQEAgc3RhdGljIGludCBp bnRlbF9hdG9taWNfY2hlY2soc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAlyZXR1cm4gY2FsY193 YXRlcm1hcmtfZGF0YShzdGF0ZSk7CiB9CiAKKy8qKgorICogaW50ZWxfcHJlcGFyZV9wbGFuZV9m YiAtIFByZXBhcmUgZmIgZm9yIHVzYWdlIG9uIHBsYW5lCisgKiBAcGxhbmU6IGRybSBwbGFuZSB0 byBwcmVwYXJlIGZvcgorICogQGZiOiBmcmFtZWJ1ZmZlciB0byBwcmVwYXJlIGZvciBwcmVzZW50 YXRpb24KKyAqCisgKiBQcmVwYXJlcyBhIGZyYW1lYnVmZmVyIGZvciB1c2FnZSBvbiBhIGRpc3Bs YXkgcGxhbmUuICBHZW5lcmFsbHkgdGhpcworICogaW52b2x2ZXMgcGlubmluZyB0aGUgdW5kZXJs eWluZyBvYmplY3QgYW5kIHVwZGF0aW5nIHRoZSBmcm9udGJ1ZmZlciB0cmFja2luZworICogYml0 cy4gIFNvbWUgb2xkZXIgcGxhdGZvcm1zIG5lZWQgc3BlY2lhbCBwaHlzaWNhbCBhZGRyZXNzIGhh bmRsaW5nIGZvcgorICogY3Vyc29yIHBsYW5lcy4KKyAqCisgKiBNdXN0IGJlIGNhbGxlZCB3aXRo IHN0cnVjdF9tdXRleCBoZWxkLgorICoKKyAqIFJldHVybnMgMCBvbiBzdWNjZXNzLCBuZWdhdGl2 ZSBlcnJvciBjb2RlIG9uIGZhaWx1cmUuCisgKi8KK2ludAoraW50ZWxfcHJlcGFyZV9wbGFuZV9m YihzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKKwkJICAgICAgIHN0cnVjdCBkcm1fcGxhbmVfc3Rh dGUgKm5ld19zdGF0ZSkKK3sKKwlzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICppbnRlbF9zdGF0 ZSA9CisJCXRvX2ludGVsX2F0b21pY19zdGF0ZShuZXdfc3RhdGUtPnN0YXRlKTsKKwlzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KHBsYW5lLT5kZXYpOworCXN0cnVj dCBkcm1fZnJhbWVidWZmZXIgKmZiID0gbmV3X3N0YXRlLT5mYjsKKwlzdHJ1Y3QgZHJtX2k5MTVf Z2VtX29iamVjdCAqb2JqID0gaW50ZWxfZmJfb2JqKGZiKTsKKwlzdHJ1Y3QgZHJtX2k5MTVfZ2Vt X29iamVjdCAqb2xkX29iaiA9IGludGVsX2ZiX29iaihwbGFuZS0+c3RhdGUtPmZiKTsKKwlpbnQg cmV0OworCisJaWYgKCFvYmogJiYgIW9sZF9vYmopCisJCXJldHVybiAwOworCisJaWYgKG9sZF9v YmopIHsKKwkJc3RydWN0IGRybV9jcnRjX3N0YXRlICpjcnRjX3N0YXRlID0KKwkJCWRybV9hdG9t aWNfZ2V0X2V4aXN0aW5nX2NydGNfc3RhdGUobmV3X3N0YXRlLT5zdGF0ZSwKKwkJCQkJCQkgICBw bGFuZS0+c3RhdGUtPmNydGMpOworCisJCS8qIEJpZyBIYW1tZXIsIHdlIGFsc28gbmVlZCB0byBl bnN1cmUgdGhhdCBhbnkgcGVuZGluZworCQkgKiBNSV9XQUlUX0ZPUl9FVkVOVCBpbnNpZGUgYSB1 c2VyIGJhdGNoIGJ1ZmZlciBvbiB0aGUKKwkJICogY3VycmVudCBzY2Fub3V0IGlzIHJldGlyZWQg YmVmb3JlIHVucGlubmluZyB0aGUgb2xkCisJCSAqIGZyYW1lYnVmZmVyLiBOb3RlIHRoYXQgd2Ug cmVseSBvbiB1c2Vyc3BhY2UgcmVuZGVyaW5nCisJCSAqIGludG8gdGhlIGJ1ZmZlciBhdHRhY2hl ZCB0byB0aGUgcGlwZSB0aGV5IGFyZSB3YWl0aW5nCisJCSAqIG9uLiBJZiBub3QsIHVzZXJzcGFj ZSBnZW5lcmF0ZXMgYSBHUFUgaGFuZyB3aXRoIElQRUhSCisJCSAqIHBvaW50IHRvIHRoZSBNSV9X QUlUX0ZPUl9FVkVOVC4KKwkJICoKKwkJICogVGhpcyBzaG91bGQgb25seSBmYWlsIHVwb24gYSBo dW5nIEdQVSwgaW4gd2hpY2ggY2FzZSB3ZQorCQkgKiBjYW4gc2FmZWx5IGNvbnRpbnVlLgorCQkg Ki8KKwkJaWYgKG5lZWRzX21vZGVzZXQoY3J0Y19zdGF0ZSkpIHsKKwkJCXJldCA9IGk5MTVfc3df ZmVuY2VfYXdhaXRfcmVzZXJ2YXRpb24oJmludGVsX3N0YXRlLT5jb21taXRfcmVhZHksCisJCQkJ CQkJICAgICAgb2xkX29iai0+cmVzdiwgTlVMTCwKKwkJCQkJCQkgICAgICBmYWxzZSwgMCwKKwkJ CQkJCQkgICAgICBHRlBfS0VSTkVMKTsKKwkJCWlmIChyZXQgPCAwKQorCQkJCXJldHVybiByZXQ7 CisJCX0KKwl9CisKKwlpZiAobmV3X3N0YXRlLT5mZW5jZSkgeyAvKiBleHBsaWNpdCBmZW5jaW5n ICovCisJCXJldCA9IGk5MTVfc3dfZmVuY2VfYXdhaXRfZG1hX2ZlbmNlKCZpbnRlbF9zdGF0ZS0+ Y29tbWl0X3JlYWR5LAorCQkJCQkJICAgIG5ld19zdGF0ZS0+ZmVuY2UsCisJCQkJCQkgICAgSTkx NV9GRU5DRV9USU1FT1VULAorCQkJCQkJICAgIEdGUF9LRVJORUwpOworCQlpZiAocmV0IDwgMCkK KwkJCXJldHVybiByZXQ7CisJfQorCisJaWYgKCFvYmopCisJCXJldHVybiAwOworCisJaWYgKCFu ZXdfc3RhdGUtPmZlbmNlKSB7IC8qIGltcGxpY2l0IGZlbmNpbmcgKi8KKwkJcmV0ID0gaTkxNV9z d19mZW5jZV9hd2FpdF9yZXNlcnZhdGlvbigmaW50ZWxfc3RhdGUtPmNvbW1pdF9yZWFkeSwKKwkJ CQkJCSAgICAgIG9iai0+cmVzdiwgTlVMTCwKKwkJCQkJCSAgICAgIGZhbHNlLCBJOTE1X0ZFTkNF X1RJTUVPVVQsCisJCQkJCQkgICAgICBHRlBfS0VSTkVMKTsKKwkJaWYgKHJldCA8IDApCisJCQly ZXR1cm4gcmV0OworCisJCWk5MTVfZ2VtX29iamVjdF93YWl0X3ByaW9yaXR5KG9iaiwgMCwgSTkx NV9QUklPUklUWV9ESVNQTEFZKTsKKwl9CisKKwlpZiAocGxhbmUtPnR5cGUgPT0gRFJNX1BMQU5F X1RZUEVfQ1VSU09SICYmCisJICAgIElOVEVMX0lORk8oZGV2X3ByaXYpLT5jdXJzb3JfbmVlZHNf cGh5c2ljYWwpIHsKKwkJaW50IGFsaWduID0gSVNfSTgzMChkZXZfcHJpdikgPyAxNiAqIDEwMjQg OiAyNTY7CisJCXJldCA9IGk5MTVfZ2VtX29iamVjdF9hdHRhY2hfcGh5cyhvYmosIGFsaWduKTsK KwkJaWYgKHJldCkgeworCQkJRFJNX0RFQlVHX0tNUygiZmFpbGVkIHRvIGF0dGFjaCBwaHlzIG9i amVjdFxuIik7CisJCQlyZXR1cm4gcmV0OworCQl9CisJfSBlbHNlIHsKKwkJc3RydWN0IGk5MTVf dm1hICp2bWE7CisKKwkJdm1hID0gaW50ZWxfcGluX2FuZF9mZW5jZV9mYl9vYmooZmIsIG5ld19z dGF0ZS0+cm90YXRpb24pOworCQlpZiAoSVNfRVJSKHZtYSkpIHsKKwkJCURSTV9ERUJVR19LTVMo ImZhaWxlZCB0byBwaW4gb2JqZWN0XG4iKTsKKwkJCXJldHVybiBQVFJfRVJSKHZtYSk7CisJCX0K Kwl9CisKKwlyZXR1cm4gMDsKK30KKworLyoqCisgKiBpbnRlbF9jbGVhbnVwX3BsYW5lX2ZiIC0g Q2xlYW5zIHVwIGFuIGZiIGFmdGVyIHBsYW5lIHVzZQorICogQHBsYW5lOiBkcm0gcGxhbmUgdG8g Y2xlYW4gdXAgZm9yCisgKiBAZmI6IG9sZCBmcmFtZWJ1ZmZlciB0aGF0IHdhcyBvbiBwbGFuZQor ICoKKyAqIENsZWFucyB1cCBhIGZyYW1lYnVmZmVyIHRoYXQgaGFzIGp1c3QgYmVlbiByZW1vdmVk IGZyb20gYSBwbGFuZS4KKyAqCisgKiBNdXN0IGJlIGNhbGxlZCB3aXRoIHN0cnVjdF9tdXRleCBo ZWxkLgorICovCit2b2lkCitpbnRlbF9jbGVhbnVwX3BsYW5lX2ZiKHN0cnVjdCBkcm1fcGxhbmUg KnBsYW5lLAorCQkgICAgICAgc3RydWN0IGRybV9wbGFuZV9zdGF0ZSAqb2xkX3N0YXRlKQorewor CXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUocGxhbmUtPmRldik7 CisJc3RydWN0IGludGVsX3BsYW5lX3N0YXRlICpvbGRfaW50ZWxfc3RhdGU7CisJc3RydWN0IGRy bV9pOTE1X2dlbV9vYmplY3QgKm9sZF9vYmogPSBpbnRlbF9mYl9vYmoob2xkX3N0YXRlLT5mYik7 CisJc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiA9IGludGVsX2ZiX29iaihwbGFuZS0+ c3RhdGUtPmZiKTsKKworCW9sZF9pbnRlbF9zdGF0ZSA9IHRvX2ludGVsX3BsYW5lX3N0YXRlKG9s ZF9zdGF0ZSk7CisKKwlpZiAoIW9iaiAmJiAhb2xkX29iaikKKwkJcmV0dXJuOworCisJaWYgKG9s ZF9vYmogJiYgKHBsYW5lLT50eXBlICE9IERSTV9QTEFORV9UWVBFX0NVUlNPUiB8fAorCSAgICAh SU5URUxfSU5GTyhkZXZfcHJpdiktPmN1cnNvcl9uZWVkc19waHlzaWNhbCkpCisJCWludGVsX3Vu cGluX2ZiX29iaihvbGRfc3RhdGUtPmZiLCBvbGRfc3RhdGUtPnJvdGF0aW9uKTsKK30KKworCiBz dGF0aWMgaW50IGludGVsX2F0b21pY19wcmVwYXJlX2NvbW1pdChzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2LAogCQkJCSAgICAgICBzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUpCiB7CkBAIC0x NDcxNiwxMzMgKzE0ODQ0LDYgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fY3J0Y19mdW5jcyBp bnRlbF9jcnRjX2Z1bmNzID0gewogCS5hdG9taWNfZGVzdHJveV9zdGF0ZSA9IGludGVsX2NydGNf ZGVzdHJveV9zdGF0ZSwKIH07CiAKLS8qKgotICogaW50ZWxfcHJlcGFyZV9wbGFuZV9mYiAtIFBy ZXBhcmUgZmIgZm9yIHVzYWdlIG9uIHBsYW5lCi0gKiBAcGxhbmU6IGRybSBwbGFuZSB0byBwcmVw YXJlIGZvcgotICogQGZiOiBmcmFtZWJ1ZmZlciB0byBwcmVwYXJlIGZvciBwcmVzZW50YXRpb24K LSAqCi0gKiBQcmVwYXJlcyBhIGZyYW1lYnVmZmVyIGZvciB1c2FnZSBvbiBhIGRpc3BsYXkgcGxh bmUuICBHZW5lcmFsbHkgdGhpcwotICogaW52b2x2ZXMgcGlubmluZyB0aGUgdW5kZXJseWluZyBv YmplY3QgYW5kIHVwZGF0aW5nIHRoZSBmcm9udGJ1ZmZlciB0cmFja2luZwotICogYml0cy4gIFNv bWUgb2xkZXIgcGxhdGZvcm1zIG5lZWQgc3BlY2lhbCBwaHlzaWNhbCBhZGRyZXNzIGhhbmRsaW5n IGZvcgotICogY3Vyc29yIHBsYW5lcy4KLSAqCi0gKiBNdXN0IGJlIGNhbGxlZCB3aXRoIHN0cnVj dF9tdXRleCBoZWxkLgotICoKLSAqIFJldHVybnMgMCBvbiBzdWNjZXNzLCBuZWdhdGl2ZSBlcnJv ciBjb2RlIG9uIGZhaWx1cmUuCi0gKi8KLWludAotaW50ZWxfcHJlcGFyZV9wbGFuZV9mYihzdHJ1 Y3QgZHJtX3BsYW5lICpwbGFuZSwKLQkJICAgICAgIHN0cnVjdCBkcm1fcGxhbmVfc3RhdGUgKm5l d19zdGF0ZSkKLXsKLQlzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICppbnRlbF9zdGF0ZSA9Ci0J CXRvX2ludGVsX2F0b21pY19zdGF0ZShuZXdfc3RhdGUtPnN0YXRlKTsKLQlzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KHBsYW5lLT5kZXYpOwotCXN0cnVjdCBkcm1f ZnJhbWVidWZmZXIgKmZiID0gbmV3X3N0YXRlLT5mYjsKLQlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29i amVjdCAqb2JqID0gaW50ZWxfZmJfb2JqKGZiKTsKLQlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVj dCAqb2xkX29iaiA9IGludGVsX2ZiX29iaihwbGFuZS0+c3RhdGUtPmZiKTsKLQlpbnQgcmV0Owot Ci0JaWYgKCFvYmogJiYgIW9sZF9vYmopCi0JCXJldHVybiAwOwotCi0JaWYgKG9sZF9vYmopIHsK LQkJc3RydWN0IGRybV9jcnRjX3N0YXRlICpjcnRjX3N0YXRlID0KLQkJCWRybV9hdG9taWNfZ2V0 X2V4aXN0aW5nX2NydGNfc3RhdGUobmV3X3N0YXRlLT5zdGF0ZSwKLQkJCQkJCQkgICBwbGFuZS0+ c3RhdGUtPmNydGMpOwotCi0JCS8qIEJpZyBIYW1tZXIsIHdlIGFsc28gbmVlZCB0byBlbnN1cmUg dGhhdCBhbnkgcGVuZGluZwotCQkgKiBNSV9XQUlUX0ZPUl9FVkVOVCBpbnNpZGUgYSB1c2VyIGJh dGNoIGJ1ZmZlciBvbiB0aGUKLQkJICogY3VycmVudCBzY2Fub3V0IGlzIHJldGlyZWQgYmVmb3Jl IHVucGlubmluZyB0aGUgb2xkCi0JCSAqIGZyYW1lYnVmZmVyLiBOb3RlIHRoYXQgd2UgcmVseSBv biB1c2Vyc3BhY2UgcmVuZGVyaW5nCi0JCSAqIGludG8gdGhlIGJ1ZmZlciBhdHRhY2hlZCB0byB0 aGUgcGlwZSB0aGV5IGFyZSB3YWl0aW5nCi0JCSAqIG9uLiBJZiBub3QsIHVzZXJzcGFjZSBnZW5l cmF0ZXMgYSBHUFUgaGFuZyB3aXRoIElQRUhSCi0JCSAqIHBvaW50IHRvIHRoZSBNSV9XQUlUX0ZP Ul9FVkVOVC4KLQkJICoKLQkJICogVGhpcyBzaG91bGQgb25seSBmYWlsIHVwb24gYSBodW5nIEdQ VSwgaW4gd2hpY2ggY2FzZSB3ZQotCQkgKiBjYW4gc2FmZWx5IGNvbnRpbnVlLgotCQkgKi8KLQkJ aWYgKG5lZWRzX21vZGVzZXQoY3J0Y19zdGF0ZSkpIHsKLQkJCXJldCA9IGk5MTVfc3dfZmVuY2Vf YXdhaXRfcmVzZXJ2YXRpb24oJmludGVsX3N0YXRlLT5jb21taXRfcmVhZHksCi0JCQkJCQkJICAg ICAgb2xkX29iai0+cmVzdiwgTlVMTCwKLQkJCQkJCQkgICAgICBmYWxzZSwgMCwKLQkJCQkJCQkg ICAgICBHRlBfS0VSTkVMKTsKLQkJCWlmIChyZXQgPCAwKQotCQkJCXJldHVybiByZXQ7Ci0JCX0K LQl9Ci0KLQlpZiAobmV3X3N0YXRlLT5mZW5jZSkgeyAvKiBleHBsaWNpdCBmZW5jaW5nICovCi0J CXJldCA9IGk5MTVfc3dfZmVuY2VfYXdhaXRfZG1hX2ZlbmNlKCZpbnRlbF9zdGF0ZS0+Y29tbWl0 X3JlYWR5LAotCQkJCQkJICAgIG5ld19zdGF0ZS0+ZmVuY2UsCi0JCQkJCQkgICAgSTkxNV9GRU5D RV9USU1FT1VULAotCQkJCQkJICAgIEdGUF9LRVJORUwpOwotCQlpZiAocmV0IDwgMCkKLQkJCXJl dHVybiByZXQ7Ci0JfQotCi0JaWYgKCFvYmopCi0JCXJldHVybiAwOwotCi0JaWYgKCFuZXdfc3Rh dGUtPmZlbmNlKSB7IC8qIGltcGxpY2l0IGZlbmNpbmcgKi8KLQkJcmV0ID0gaTkxNV9zd19mZW5j ZV9hd2FpdF9yZXNlcnZhdGlvbigmaW50ZWxfc3RhdGUtPmNvbW1pdF9yZWFkeSwKLQkJCQkJCSAg ICAgIG9iai0+cmVzdiwgTlVMTCwKLQkJCQkJCSAgICAgIGZhbHNlLCBJOTE1X0ZFTkNFX1RJTUVP VVQsCi0JCQkJCQkgICAgICBHRlBfS0VSTkVMKTsKLQkJaWYgKHJldCA8IDApCi0JCQlyZXR1cm4g cmV0OwotCi0JCWk5MTVfZ2VtX29iamVjdF93YWl0X3ByaW9yaXR5KG9iaiwgMCwgSTkxNV9QUklP UklUWV9ESVNQTEFZKTsKLQl9Ci0KLQlpZiAocGxhbmUtPnR5cGUgPT0gRFJNX1BMQU5FX1RZUEVf Q1VSU09SICYmCi0JICAgIElOVEVMX0lORk8oZGV2X3ByaXYpLT5jdXJzb3JfbmVlZHNfcGh5c2lj YWwpIHsKLQkJaW50IGFsaWduID0gSVNfSTgzMChkZXZfcHJpdikgPyAxNiAqIDEwMjQgOiAyNTY7 Ci0JCXJldCA9IGk5MTVfZ2VtX29iamVjdF9hdHRhY2hfcGh5cyhvYmosIGFsaWduKTsKLQkJaWYg KHJldCkgewotCQkJRFJNX0RFQlVHX0tNUygiZmFpbGVkIHRvIGF0dGFjaCBwaHlzIG9iamVjdFxu Iik7Ci0JCQlyZXR1cm4gcmV0OwotCQl9Ci0JfSBlbHNlIHsKLQkJc3RydWN0IGk5MTVfdm1hICp2 bWE7Ci0KLQkJdm1hID0gaW50ZWxfcGluX2FuZF9mZW5jZV9mYl9vYmooZmIsIG5ld19zdGF0ZS0+ cm90YXRpb24pOwotCQlpZiAoSVNfRVJSKHZtYSkpIHsKLQkJCURSTV9ERUJVR19LTVMoImZhaWxl ZCB0byBwaW4gb2JqZWN0XG4iKTsKLQkJCXJldHVybiBQVFJfRVJSKHZtYSk7Ci0JCX0KLQl9Ci0K LQlyZXR1cm4gMDsKLX0KLQotLyoqCi0gKiBpbnRlbF9jbGVhbnVwX3BsYW5lX2ZiIC0gQ2xlYW5z IHVwIGFuIGZiIGFmdGVyIHBsYW5lIHVzZQotICogQHBsYW5lOiBkcm0gcGxhbmUgdG8gY2xlYW4g dXAgZm9yCi0gKiBAZmI6IG9sZCBmcmFtZWJ1ZmZlciB0aGF0IHdhcyBvbiBwbGFuZQotICoKLSAq IENsZWFucyB1cCBhIGZyYW1lYnVmZmVyIHRoYXQgaGFzIGp1c3QgYmVlbiByZW1vdmVkIGZyb20g YSBwbGFuZS4KLSAqCi0gKiBNdXN0IGJlIGNhbGxlZCB3aXRoIHN0cnVjdF9tdXRleCBoZWxkLgot ICovCi12b2lkCi1pbnRlbF9jbGVhbnVwX3BsYW5lX2ZiKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5l LAotCQkgICAgICAgc3RydWN0IGRybV9wbGFuZV9zdGF0ZSAqb2xkX3N0YXRlKQotewotCXN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUocGxhbmUtPmRldik7Ci0Jc3Ry dWN0IGludGVsX3BsYW5lX3N0YXRlICpvbGRfaW50ZWxfc3RhdGU7Ci0Jc3RydWN0IGRybV9pOTE1 X2dlbV9vYmplY3QgKm9sZF9vYmogPSBpbnRlbF9mYl9vYmoob2xkX3N0YXRlLT5mYik7Ci0Jc3Ry dWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiA9IGludGVsX2ZiX29iaihwbGFuZS0+c3RhdGUt PmZiKTsKLQotCW9sZF9pbnRlbF9zdGF0ZSA9IHRvX2ludGVsX3BsYW5lX3N0YXRlKG9sZF9zdGF0 ZSk7Ci0KLQlpZiAoIW9iaiAmJiAhb2xkX29iaikKLQkJcmV0dXJuOwotCi0JaWYgKG9sZF9vYmog JiYgKHBsYW5lLT50eXBlICE9IERSTV9QTEFORV9UWVBFX0NVUlNPUiB8fAotCSAgICAhSU5URUxf SU5GTyhkZXZfcHJpdiktPmN1cnNvcl9uZWVkc19waHlzaWNhbCkpCi0JCWludGVsX3VucGluX2Zi X29iaihvbGRfc3RhdGUtPmZiLCBvbGRfc3RhdGUtPnJvdGF0aW9uKTsKLX0KLQogaW50CiBza2xf bWF4X3NjYWxlKHN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjLCBzdHJ1Y3QgaW50ZWxfY3J0 Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKaW5kZXggNzUy NTJlY2FhNjEzLi40Y2I4MjU0YzY2ZGQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2Rydi5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCkBAIC03 NzIsNiArNzcyLDggQEAgc3RydWN0IGludGVsX3BsYW5lIHsKIAlpbnQgbWF4X2Rvd25zY2FsZTsK IAl1aW50MzJfdCBmcm9udGJ1ZmZlcl9iaXQ7CiAKKwlzdHJ1Y3QgaTkxNV9zd19mZW5jZSAqbGFz dF9jb21taXQ7CisKIAkvKiBTaW5jZSB3ZSBuZWVkIHRvIGNoYW5nZSB0aGUgd2F0ZXJtYXJrcyBi ZWZvcmUvYWZ0ZXIKIAkgKiBlbmFibGluZy9kaXNhYmxpbmcgdGhlIHBsYW5lcywgd2UgbmVlZCB0 byBzdG9yZSB0aGUgcGFyYW1ldGVycyBoZXJlCiAJICogYXMgdGhlIG90aGVyIHBpZWNlcyBvZiB0 aGUgc3RydWN0IG1heSBub3QgcmVmbGVjdCB0aGUgdmFsdWVzIHdlIHdhbnQKLS0gCjIuMTAuMgoK X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4 IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlz dHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==