From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: [PATCH] drm: Fix up drm_atomic_state_helper.[hc] extraction Date: Wed, 28 Nov 2018 11:07:28 +0100 Message-ID: <20181128100728.4674-1-daniel.vetter@ffwll.ch> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-ed1-x541.google.com (mail-ed1-x541.google.com [IPv6:2a00:1450:4864:20::541]) by gabe.freedesktop.org (Postfix) with ESMTPS id 1E4806E05E for ; Wed, 28 Nov 2018 10:07:36 +0000 (UTC) Received: by mail-ed1-x541.google.com with SMTP id h15so21579574edb.4 for ; Wed, 28 Nov 2018 02:07:36 -0800 (PST) List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: DRI Development Cc: Daniel Vetter , Intel Graphics Development , Daniel Vetter List-Id: intel-gfx@lists.freedesktop.org SSd2ZSBtaXNwbGFjZWQgdHdvIGZ1bmN0aW9ucyBieSBhY2NpZGVudDoKLSBkcm1fYXRvbWljX2hl bHBlcl9kdXBsaWNhdGVfc3RhdGUgaXMgcmVhbGx5IHBhcnQgb2YgdGhlCiAgcmVzdW1lL3N1c3Bl bmQvc2h1dGRvd24gZGV2aWNlLXdpZGUgaGVscGVycy4KLSBkcm1fYXRvbWljX2hlbHBlcl9sZWdh Y3lfZ2FtbWFfc2V0IGlzIHBhcnQgb2YgdGhlIGxlZ2FjeSBpb2N0bAogIGNvbXBhdCBoZWxwZXJz LgoKTW92ZSB0aGVtIGJvdGggYmFjay4KCkZpeGVzOiA5ZWY4YTlkYzRiMjEgKCJkcm06IEV4dHJh Y3QgZHJtX2F0b21pY19zdGF0ZV9oZWxwZXIuW2hjXSIpCkNjOiBWaWxsZSBTeXJqw6Rsw6QgPHZp bGxlLnN5cmphbGFAbGludXguaW50ZWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYW5pZWwgVmV0dGVy IDxkYW5pZWwudmV0dGVyQGludGVsLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21p Y19oZWxwZXIuYyAgICAgICB8IDE1NyArKysrKysrKysrKysrKysrKysrKysrCiBkcml2ZXJzL2dw dS9kcm0vZHJtX2F0b21pY19zdGF0ZV9oZWxwZXIuYyB8IDE1NyAtLS0tLS0tLS0tLS0tLS0tLS0t LS0tCiBpbmNsdWRlL2RybS9kcm1fYXRvbWljX2hlbHBlci5oICAgICAgICAgICB8ICAgNyArCiBp bmNsdWRlL2RybS9kcm1fYXRvbWljX3N0YXRlX2hlbHBlci5oICAgICB8ICAgNyAtCiA0IGZpbGVz IGNoYW5nZWQsIDE2NCBpbnNlcnRpb25zKCspLCAxNjQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWNfaGVscGVyLmMgYi9kcml2ZXJzL2dwdS9kcm0v ZHJtX2F0b21pY19oZWxwZXIuYwppbmRleCA5YjIyNzc0YTk4NjcuLmRlN2Q4NzJmOWYxYSAxMDA2 NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWNfaGVscGVyLmMKKysrIGIvZHJpdmVy cy9ncHUvZHJtL2RybV9hdG9taWNfaGVscGVyLmMKQEAgLTMxMzUsNiArMzEzNSw5MyBAQCB2b2lk IGRybV9hdG9taWNfaGVscGVyX3NodXRkb3duKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiB9CiBF WFBPUlRfU1lNQk9MKGRybV9hdG9taWNfaGVscGVyX3NodXRkb3duKTsKIAorLyoqCisgKiBkcm1f YXRvbWljX2hlbHBlcl9kdXBsaWNhdGVfc3RhdGUgLSBkdXBsaWNhdGUgYW4gYXRvbWljIHN0YXRl IG9iamVjdAorICogQGRldjogRFJNIGRldmljZQorICogQGN0eDogbG9jayBhY3F1aXNpdGlvbiBj b250ZXh0CisgKgorICogTWFrZXMgYSBjb3B5IG9mIHRoZSBjdXJyZW50IGF0b21pYyBzdGF0ZSBi eSBsb29waW5nIG92ZXIgYWxsIG9iamVjdHMgYW5kCisgKiBkdXBsaWNhdGluZyB0aGVpciByZXNw ZWN0aXZlIHN0YXRlcy4gVGhpcyBpcyB1c2VkIGZvciBleGFtcGxlIGJ5IHN1c3BlbmQvCisgKiBy ZXN1bWUgc3VwcG9ydCBjb2RlIHRvIHNhdmUgdGhlIHN0YXRlIHByaW9yIHRvIHN1c3BlbmQgc3Vj aCB0aGF0IGl0IGNhbgorICogYmUgcmVzdG9yZWQgdXBvbiByZXN1bWUuCisgKgorICogTm90ZSB0 aGF0IHRoaXMgdHJlYXRzIGF0b21pYyBzdGF0ZSBhcyBwZXJzaXN0ZW50IGJldHdlZW4gc2F2ZSBh bmQgcmVzdG9yZS4KKyAqIERyaXZlcnMgbXVzdCBtYWtlIHN1cmUgdGhhdCB0aGlzIGlzIHBvc3Np YmxlIGFuZCB3b24ndCByZXN1bHQgaW4gY29uZnVzaW9uCisgKiBvciBlcnJvbmVvdXMgYmVoYXZp b3VyLgorICoKKyAqIE5vdGUgdGhhdCBpZiBjYWxsZXJzIGhhdmVuJ3QgYWxyZWFkeSBhY3F1aXJl ZCBhbGwgbW9kZXNldCBsb2NrcyB0aGlzIG1pZ2h0CisgKiByZXR1cm4gLUVERUFETEssIHdoaWNo IG11c3QgYmUgaGFuZGxlZCBieSBjYWxsaW5nIGRybV9tb2Rlc2V0X2JhY2tvZmYoKS4KKyAqCisg KiBSZXR1cm5zOgorICogQSBwb2ludGVyIHRvIHRoZSBjb3B5IG9mIHRoZSBhdG9taWMgc3RhdGUg b2JqZWN0IG9uIHN1Y2Nlc3Mgb3IgYW4KKyAqIEVSUl9QVFIoKS1lbmNvZGVkIGVycm9yIGNvZGUg b24gZmFpbHVyZS4KKyAqCisgKiBTZWUgYWxzbzoKKyAqIGRybV9hdG9taWNfaGVscGVyX3N1c3Bl bmQoKSwgZHJtX2F0b21pY19oZWxwZXJfcmVzdW1lKCkKKyAqLworc3RydWN0IGRybV9hdG9taWNf c3RhdGUgKgorZHJtX2F0b21pY19oZWxwZXJfZHVwbGljYXRlX3N0YXRlKHN0cnVjdCBkcm1fZGV2 aWNlICpkZXYsCisJCQkJICBzdHJ1Y3QgZHJtX21vZGVzZXRfYWNxdWlyZV9jdHggKmN0eCkKK3sK KwlzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGU7CisJc3RydWN0IGRybV9jb25uZWN0b3Ig KmNvbm47CisJc3RydWN0IGRybV9jb25uZWN0b3JfbGlzdF9pdGVyIGNvbm5faXRlcjsKKwlzdHJ1 Y3QgZHJtX3BsYW5lICpwbGFuZTsKKwlzdHJ1Y3QgZHJtX2NydGMgKmNydGM7CisJaW50IGVyciA9 IDA7CisKKwlzdGF0ZSA9IGRybV9hdG9taWNfc3RhdGVfYWxsb2MoZGV2KTsKKwlpZiAoIXN0YXRl KQorCQlyZXR1cm4gRVJSX1BUUigtRU5PTUVNKTsKKworCXN0YXRlLT5hY3F1aXJlX2N0eCA9IGN0 eDsKKworCWRybV9mb3JfZWFjaF9jcnRjKGNydGMsIGRldikgeworCQlzdHJ1Y3QgZHJtX2NydGNf c3RhdGUgKmNydGNfc3RhdGU7CisKKwkJY3J0Y19zdGF0ZSA9IGRybV9hdG9taWNfZ2V0X2NydGNf c3RhdGUoc3RhdGUsIGNydGMpOworCQlpZiAoSVNfRVJSKGNydGNfc3RhdGUpKSB7CisJCQllcnIg PSBQVFJfRVJSKGNydGNfc3RhdGUpOworCQkJZ290byBmcmVlOworCQl9CisJfQorCisJZHJtX2Zv cl9lYWNoX3BsYW5lKHBsYW5lLCBkZXYpIHsKKwkJc3RydWN0IGRybV9wbGFuZV9zdGF0ZSAqcGxh bmVfc3RhdGU7CisKKwkJcGxhbmVfc3RhdGUgPSBkcm1fYXRvbWljX2dldF9wbGFuZV9zdGF0ZShz dGF0ZSwgcGxhbmUpOworCQlpZiAoSVNfRVJSKHBsYW5lX3N0YXRlKSkgeworCQkJZXJyID0gUFRS X0VSUihwbGFuZV9zdGF0ZSk7CisJCQlnb3RvIGZyZWU7CisJCX0KKwl9CisKKwlkcm1fY29ubmVj dG9yX2xpc3RfaXRlcl9iZWdpbihkZXYsICZjb25uX2l0ZXIpOworCWRybV9mb3JfZWFjaF9jb25u ZWN0b3JfaXRlcihjb25uLCAmY29ubl9pdGVyKSB7CisJCXN0cnVjdCBkcm1fY29ubmVjdG9yX3N0 YXRlICpjb25uX3N0YXRlOworCisJCWNvbm5fc3RhdGUgPSBkcm1fYXRvbWljX2dldF9jb25uZWN0 b3Jfc3RhdGUoc3RhdGUsIGNvbm4pOworCQlpZiAoSVNfRVJSKGNvbm5fc3RhdGUpKSB7CisJCQll cnIgPSBQVFJfRVJSKGNvbm5fc3RhdGUpOworCQkJZHJtX2Nvbm5lY3Rvcl9saXN0X2l0ZXJfZW5k KCZjb25uX2l0ZXIpOworCQkJZ290byBmcmVlOworCQl9CisJfQorCWRybV9jb25uZWN0b3JfbGlz dF9pdGVyX2VuZCgmY29ubl9pdGVyKTsKKworCS8qIGNsZWFyIHRoZSBhY3F1aXJlIGNvbnRleHQg c28gdGhhdCBpdCBpc24ndCBhY2NpZGVudGFsbHkgcmV1c2VkICovCisJc3RhdGUtPmFjcXVpcmVf Y3R4ID0gTlVMTDsKKworZnJlZToKKwlpZiAoZXJyIDwgMCkgeworCQlkcm1fYXRvbWljX3N0YXRl X3B1dChzdGF0ZSk7CisJCXN0YXRlID0gRVJSX1BUUihlcnIpOworCX0KKworCXJldHVybiBzdGF0 ZTsKK30KK0VYUE9SVF9TWU1CT0woZHJtX2F0b21pY19oZWxwZXJfZHVwbGljYXRlX3N0YXRlKTsK KwogLyoqCiAgKiBkcm1fYXRvbWljX2hlbHBlcl9zdXNwZW5kIC0gc3Vic3lzdGVtLWxldmVsIHN1 c3BlbmQgaGVscGVyCiAgKiBAZGV2OiBEUk0gZGV2aWNlCkBAIC0zNDE4LDMgKzM1MDUsNzMgQEAg aW50IGRybV9hdG9taWNfaGVscGVyX3BhZ2VfZmxpcF90YXJnZXQoc3RydWN0IGRybV9jcnRjICpj cnRjLAogCXJldHVybiByZXQ7CiB9CiBFWFBPUlRfU1lNQk9MKGRybV9hdG9taWNfaGVscGVyX3Bh Z2VfZmxpcF90YXJnZXQpOworCisvKioKKyAqIGRybV9hdG9taWNfaGVscGVyX2xlZ2FjeV9nYW1t YV9zZXQgLSBzZXQgdGhlIGxlZ2FjeSBnYW1tYSBjb3JyZWN0aW9uIHRhYmxlCisgKiBAY3J0Yzog Q1JUQyBvYmplY3QKKyAqIEByZWQ6IHJlZCBjb3JyZWN0aW9uIHRhYmxlCisgKiBAZ3JlZW46IGdy ZWVuIGNvcnJlY3Rpb24gdGFibGUKKyAqIEBibHVlOiBncmVlbiBjb3JyZWN0aW9uIHRhYmxlCisg KiBAc2l6ZTogc2l6ZSBvZiB0aGUgdGFibGVzCisgKiBAY3R4OiBsb2NrIGFjcXVpcmUgY29udGV4 dAorICoKKyAqIEltcGxlbWVudHMgc3VwcG9ydCBmb3IgbGVnYWN5IGdhbW1hIGNvcnJlY3Rpb24g dGFibGUgZm9yIGRyaXZlcnMKKyAqIHRoYXQgc3VwcG9ydCBjb2xvciBtYW5hZ2VtZW50IHRocm91 Z2ggdGhlIERFR0FNTUFfTFVUL0dBTU1BX0xVVAorICogcHJvcGVydGllcy4gU2VlIGRybV9jcnRj X2VuYWJsZV9jb2xvcl9tZ210KCkgYW5kIHRoZSBjb250YWluaW5nIGNoYXB0ZXIgZm9yCisgKiBo b3cgdGhlIGF0b21pYyBjb2xvciBtYW5hZ2VtZW50IGFuZCBnYW1tYSB0YWJsZXMgd29yay4KKyAq LworaW50IGRybV9hdG9taWNfaGVscGVyX2xlZ2FjeV9nYW1tYV9zZXQoc3RydWN0IGRybV9jcnRj ICpjcnRjLAorCQkJCSAgICAgICB1MTYgKnJlZCwgdTE2ICpncmVlbiwgdTE2ICpibHVlLAorCQkJ CSAgICAgICB1aW50MzJfdCBzaXplLAorCQkJCSAgICAgICBzdHJ1Y3QgZHJtX21vZGVzZXRfYWNx dWlyZV9jdHggKmN0eCkKK3sKKwlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY3J0Yy0+ZGV2Owor CXN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZTsKKwlzdHJ1Y3QgZHJtX2NydGNfc3RhdGUg KmNydGNfc3RhdGU7CisJc3RydWN0IGRybV9wcm9wZXJ0eV9ibG9iICpibG9iID0gTlVMTDsKKwlz dHJ1Y3QgZHJtX2NvbG9yX2x1dCAqYmxvYl9kYXRhOworCWludCBpLCByZXQgPSAwOworCWJvb2wg cmVwbGFjZWQ7CisKKwlzdGF0ZSA9IGRybV9hdG9taWNfc3RhdGVfYWxsb2MoY3J0Yy0+ZGV2KTsK KwlpZiAoIXN0YXRlKQorCQlyZXR1cm4gLUVOT01FTTsKKworCWJsb2IgPSBkcm1fcHJvcGVydHlf Y3JlYXRlX2Jsb2IoZGV2LAorCQkJCQlzaXplb2Yoc3RydWN0IGRybV9jb2xvcl9sdXQpICogc2l6 ZSwKKwkJCQkJTlVMTCk7CisJaWYgKElTX0VSUihibG9iKSkgeworCQlyZXQgPSBQVFJfRVJSKGJs b2IpOworCQlibG9iID0gTlVMTDsKKwkJZ290byBmYWlsOworCX0KKworCS8qIFByZXBhcmUgR0FN TUFfTFVUIHdpdGggdGhlIGxlZ2FjeSB2YWx1ZXMuICovCisJYmxvYl9kYXRhID0gYmxvYi0+ZGF0 YTsKKwlmb3IgKGkgPSAwOyBpIDwgc2l6ZTsgaSsrKSB7CisJCWJsb2JfZGF0YVtpXS5yZWQgPSBy ZWRbaV07CisJCWJsb2JfZGF0YVtpXS5ncmVlbiA9IGdyZWVuW2ldOworCQlibG9iX2RhdGFbaV0u Ymx1ZSA9IGJsdWVbaV07CisJfQorCisJc3RhdGUtPmFjcXVpcmVfY3R4ID0gY3R4OworCWNydGNf c3RhdGUgPSBkcm1fYXRvbWljX2dldF9jcnRjX3N0YXRlKHN0YXRlLCBjcnRjKTsKKwlpZiAoSVNf RVJSKGNydGNfc3RhdGUpKSB7CisJCXJldCA9IFBUUl9FUlIoY3J0Y19zdGF0ZSk7CisJCWdvdG8g ZmFpbDsKKwl9CisKKwkvKiBSZXNldCBERUdBTU1BX0xVVCBhbmQgQ1RNIHByb3BlcnRpZXMuICov CisJcmVwbGFjZWQgID0gZHJtX3Byb3BlcnR5X3JlcGxhY2VfYmxvYigmY3J0Y19zdGF0ZS0+ZGVn YW1tYV9sdXQsIE5VTEwpOworCXJlcGxhY2VkIHw9IGRybV9wcm9wZXJ0eV9yZXBsYWNlX2Jsb2Io JmNydGNfc3RhdGUtPmN0bSwgTlVMTCk7CisJcmVwbGFjZWQgfD0gZHJtX3Byb3BlcnR5X3JlcGxh Y2VfYmxvYigmY3J0Y19zdGF0ZS0+Z2FtbWFfbHV0LCBibG9iKTsKKwljcnRjX3N0YXRlLT5jb2xv cl9tZ210X2NoYW5nZWQgfD0gcmVwbGFjZWQ7CisKKwlyZXQgPSBkcm1fYXRvbWljX2NvbW1pdChz dGF0ZSk7CisKK2ZhaWw6CisJZHJtX2F0b21pY19zdGF0ZV9wdXQoc3RhdGUpOworCWRybV9wcm9w ZXJ0eV9ibG9iX3B1dChibG9iKTsKKwlyZXR1cm4gcmV0OworfQorRVhQT1JUX1NZTUJPTChkcm1f YXRvbWljX2hlbHBlcl9sZWdhY3lfZ2FtbWFfc2V0KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9kcm1fYXRvbWljX3N0YXRlX2hlbHBlci5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9t aWNfc3RhdGVfaGVscGVyLmMKaW5kZXggM2JhOTk2MDY5ZDY5Li42MGJkN2Q3MDhlMzUgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljX3N0YXRlX2hlbHBlci5jCisrKyBiL2Ry aXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljX3N0YXRlX2hlbHBlci5jCkBAIC0zOTMsOTMgKzM5Myw2 IEBAIGRybV9hdG9taWNfaGVscGVyX2Nvbm5lY3Rvcl9kdXBsaWNhdGVfc3RhdGUoc3RydWN0IGRy bV9jb25uZWN0b3IgKmNvbm5lY3RvcikKIH0KIEVYUE9SVF9TWU1CT0woZHJtX2F0b21pY19oZWxw ZXJfY29ubmVjdG9yX2R1cGxpY2F0ZV9zdGF0ZSk7CiAKLS8qKgotICogZHJtX2F0b21pY19oZWxw ZXJfZHVwbGljYXRlX3N0YXRlIC0gZHVwbGljYXRlIGFuIGF0b21pYyBzdGF0ZSBvYmplY3QKLSAq IEBkZXY6IERSTSBkZXZpY2UKLSAqIEBjdHg6IGxvY2sgYWNxdWlzaXRpb24gY29udGV4dAotICoK LSAqIE1ha2VzIGEgY29weSBvZiB0aGUgY3VycmVudCBhdG9taWMgc3RhdGUgYnkgbG9vcGluZyBv dmVyIGFsbCBvYmplY3RzIGFuZAotICogZHVwbGljYXRpbmcgdGhlaXIgcmVzcGVjdGl2ZSBzdGF0 ZXMuIFRoaXMgaXMgdXNlZCBmb3IgZXhhbXBsZSBieSBzdXNwZW5kLwotICogcmVzdW1lIHN1cHBv cnQgY29kZSB0byBzYXZlIHRoZSBzdGF0ZSBwcmlvciB0byBzdXNwZW5kIHN1Y2ggdGhhdCBpdCBj YW4KLSAqIGJlIHJlc3RvcmVkIHVwb24gcmVzdW1lLgotICoKLSAqIE5vdGUgdGhhdCB0aGlzIHRy ZWF0cyBhdG9taWMgc3RhdGUgYXMgcGVyc2lzdGVudCBiZXR3ZWVuIHNhdmUgYW5kIHJlc3RvcmUu Ci0gKiBEcml2ZXJzIG11c3QgbWFrZSBzdXJlIHRoYXQgdGhpcyBpcyBwb3NzaWJsZSBhbmQgd29u J3QgcmVzdWx0IGluIGNvbmZ1c2lvbgotICogb3IgZXJyb25lb3VzIGJlaGF2aW91ci4KLSAqCi0g KiBOb3RlIHRoYXQgaWYgY2FsbGVycyBoYXZlbid0IGFscmVhZHkgYWNxdWlyZWQgYWxsIG1vZGVz ZXQgbG9ja3MgdGhpcyBtaWdodAotICogcmV0dXJuIC1FREVBRExLLCB3aGljaCBtdXN0IGJlIGhh bmRsZWQgYnkgY2FsbGluZyBkcm1fbW9kZXNldF9iYWNrb2ZmKCkuCi0gKgotICogUmV0dXJuczoK LSAqIEEgcG9pbnRlciB0byB0aGUgY29weSBvZiB0aGUgYXRvbWljIHN0YXRlIG9iamVjdCBvbiBz dWNjZXNzIG9yIGFuCi0gKiBFUlJfUFRSKCktZW5jb2RlZCBlcnJvciBjb2RlIG9uIGZhaWx1cmUu Ci0gKgotICogU2VlIGFsc286Ci0gKiBkcm1fYXRvbWljX2hlbHBlcl9zdXNwZW5kKCksIGRybV9h dG9taWNfaGVscGVyX3Jlc3VtZSgpCi0gKi8KLXN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICoKLWRy bV9hdG9taWNfaGVscGVyX2R1cGxpY2F0ZV9zdGF0ZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAot CQkJCSAgc3RydWN0IGRybV9tb2Rlc2V0X2FjcXVpcmVfY3R4ICpjdHgpCi17Ci0Jc3RydWN0IGRy bV9hdG9taWNfc3RhdGUgKnN0YXRlOwotCXN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uOwotCXN0 cnVjdCBkcm1fY29ubmVjdG9yX2xpc3RfaXRlciBjb25uX2l0ZXI7Ci0Jc3RydWN0IGRybV9wbGFu ZSAqcGxhbmU7Ci0Jc3RydWN0IGRybV9jcnRjICpjcnRjOwotCWludCBlcnIgPSAwOwotCi0Jc3Rh dGUgPSBkcm1fYXRvbWljX3N0YXRlX2FsbG9jKGRldik7Ci0JaWYgKCFzdGF0ZSkKLQkJcmV0dXJu IEVSUl9QVFIoLUVOT01FTSk7Ci0KLQlzdGF0ZS0+YWNxdWlyZV9jdHggPSBjdHg7Ci0KLQlkcm1f Zm9yX2VhY2hfY3J0YyhjcnRjLCBkZXYpIHsKLQkJc3RydWN0IGRybV9jcnRjX3N0YXRlICpjcnRj X3N0YXRlOwotCi0JCWNydGNfc3RhdGUgPSBkcm1fYXRvbWljX2dldF9jcnRjX3N0YXRlKHN0YXRl LCBjcnRjKTsKLQkJaWYgKElTX0VSUihjcnRjX3N0YXRlKSkgewotCQkJZXJyID0gUFRSX0VSUihj cnRjX3N0YXRlKTsKLQkJCWdvdG8gZnJlZTsKLQkJfQotCX0KLQotCWRybV9mb3JfZWFjaF9wbGFu ZShwbGFuZSwgZGV2KSB7Ci0JCXN0cnVjdCBkcm1fcGxhbmVfc3RhdGUgKnBsYW5lX3N0YXRlOwot Ci0JCXBsYW5lX3N0YXRlID0gZHJtX2F0b21pY19nZXRfcGxhbmVfc3RhdGUoc3RhdGUsIHBsYW5l KTsKLQkJaWYgKElTX0VSUihwbGFuZV9zdGF0ZSkpIHsKLQkJCWVyciA9IFBUUl9FUlIocGxhbmVf c3RhdGUpOwotCQkJZ290byBmcmVlOwotCQl9Ci0JfQotCi0JZHJtX2Nvbm5lY3Rvcl9saXN0X2l0 ZXJfYmVnaW4oZGV2LCAmY29ubl9pdGVyKTsKLQlkcm1fZm9yX2VhY2hfY29ubmVjdG9yX2l0ZXIo Y29ubiwgJmNvbm5faXRlcikgewotCQlzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqY29ubl9z dGF0ZTsKLQotCQljb25uX3N0YXRlID0gZHJtX2F0b21pY19nZXRfY29ubmVjdG9yX3N0YXRlKHN0 YXRlLCBjb25uKTsKLQkJaWYgKElTX0VSUihjb25uX3N0YXRlKSkgewotCQkJZXJyID0gUFRSX0VS Uihjb25uX3N0YXRlKTsKLQkJCWRybV9jb25uZWN0b3JfbGlzdF9pdGVyX2VuZCgmY29ubl9pdGVy KTsKLQkJCWdvdG8gZnJlZTsKLQkJfQotCX0KLQlkcm1fY29ubmVjdG9yX2xpc3RfaXRlcl9lbmQo JmNvbm5faXRlcik7Ci0KLQkvKiBjbGVhciB0aGUgYWNxdWlyZSBjb250ZXh0IHNvIHRoYXQgaXQg aXNuJ3QgYWNjaWRlbnRhbGx5IHJldXNlZCAqLwotCXN0YXRlLT5hY3F1aXJlX2N0eCA9IE5VTEw7 Ci0KLWZyZWU6Ci0JaWYgKGVyciA8IDApIHsKLQkJZHJtX2F0b21pY19zdGF0ZV9wdXQoc3RhdGUp OwotCQlzdGF0ZSA9IEVSUl9QVFIoZXJyKTsKLQl9Ci0KLQlyZXR1cm4gc3RhdGU7Ci19Ci1FWFBP UlRfU1lNQk9MKGRybV9hdG9taWNfaGVscGVyX2R1cGxpY2F0ZV9zdGF0ZSk7Ci0KIC8qKgogICog X19kcm1fYXRvbWljX2hlbHBlcl9jb25uZWN0b3JfZGVzdHJveV9zdGF0ZSAtIHJlbGVhc2UgY29u bmVjdG9yIHN0YXRlCiAgKiBAc3RhdGU6IGNvbm5lY3RvciBzdGF0ZSBvYmplY3QgdG8gcmVsZWFz ZQpAQCAtNTE1LDc2ICs0MjgsNiBAQCB2b2lkIGRybV9hdG9taWNfaGVscGVyX2Nvbm5lY3Rvcl9k ZXN0cm95X3N0YXRlKHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IsCiB9CiBFWFBPUlRf U1lNQk9MKGRybV9hdG9taWNfaGVscGVyX2Nvbm5lY3Rvcl9kZXN0cm95X3N0YXRlKTsKIAotLyoq Ci0gKiBkcm1fYXRvbWljX2hlbHBlcl9sZWdhY3lfZ2FtbWFfc2V0IC0gc2V0IHRoZSBsZWdhY3kg Z2FtbWEgY29ycmVjdGlvbiB0YWJsZQotICogQGNydGM6IENSVEMgb2JqZWN0Ci0gKiBAcmVkOiBy ZWQgY29ycmVjdGlvbiB0YWJsZQotICogQGdyZWVuOiBncmVlbiBjb3JyZWN0aW9uIHRhYmxlCi0g KiBAYmx1ZTogZ3JlZW4gY29ycmVjdGlvbiB0YWJsZQotICogQHNpemU6IHNpemUgb2YgdGhlIHRh YmxlcwotICogQGN0eDogbG9jayBhY3F1aXJlIGNvbnRleHQKLSAqCi0gKiBJbXBsZW1lbnRzIHN1 cHBvcnQgZm9yIGxlZ2FjeSBnYW1tYSBjb3JyZWN0aW9uIHRhYmxlIGZvciBkcml2ZXJzCi0gKiB0 aGF0IHN1cHBvcnQgY29sb3IgbWFuYWdlbWVudCB0aHJvdWdoIHRoZSBERUdBTU1BX0xVVC9HQU1N QV9MVVQKLSAqIHByb3BlcnRpZXMuIFNlZSBkcm1fY3J0Y19lbmFibGVfY29sb3JfbWdtdCgpIGFu ZCB0aGUgY29udGFpbmluZyBjaGFwdGVyIGZvcgotICogaG93IHRoZSBhdG9taWMgY29sb3IgbWFu YWdlbWVudCBhbmQgZ2FtbWEgdGFibGVzIHdvcmsuCi0gKi8KLWludCBkcm1fYXRvbWljX2hlbHBl cl9sZWdhY3lfZ2FtbWFfc2V0KHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKLQkJCQkgICAgICAgdTE2 ICpyZWQsIHUxNiAqZ3JlZW4sIHUxNiAqYmx1ZSwKLQkJCQkgICAgICAgdWludDMyX3Qgc2l6ZSwK LQkJCQkgICAgICAgc3RydWN0IGRybV9tb2Rlc2V0X2FjcXVpcmVfY3R4ICpjdHgpCi17Ci0Jc3Ry dWN0IGRybV9kZXZpY2UgKmRldiA9IGNydGMtPmRldjsKLQlzdHJ1Y3QgZHJtX2F0b21pY19zdGF0 ZSAqc3RhdGU7Ci0Jc3RydWN0IGRybV9jcnRjX3N0YXRlICpjcnRjX3N0YXRlOwotCXN0cnVjdCBk cm1fcHJvcGVydHlfYmxvYiAqYmxvYiA9IE5VTEw7Ci0Jc3RydWN0IGRybV9jb2xvcl9sdXQgKmJs b2JfZGF0YTsKLQlpbnQgaSwgcmV0ID0gMDsKLQlib29sIHJlcGxhY2VkOwotCi0Jc3RhdGUgPSBk cm1fYXRvbWljX3N0YXRlX2FsbG9jKGNydGMtPmRldik7Ci0JaWYgKCFzdGF0ZSkKLQkJcmV0dXJu IC1FTk9NRU07Ci0KLQlibG9iID0gZHJtX3Byb3BlcnR5X2NyZWF0ZV9ibG9iKGRldiwKLQkJCQkJ c2l6ZW9mKHN0cnVjdCBkcm1fY29sb3JfbHV0KSAqIHNpemUsCi0JCQkJCU5VTEwpOwotCWlmIChJ U19FUlIoYmxvYikpIHsKLQkJcmV0ID0gUFRSX0VSUihibG9iKTsKLQkJYmxvYiA9IE5VTEw7Ci0J CWdvdG8gZmFpbDsKLQl9Ci0KLQkvKiBQcmVwYXJlIEdBTU1BX0xVVCB3aXRoIHRoZSBsZWdhY3kg dmFsdWVzLiAqLwotCWJsb2JfZGF0YSA9IGJsb2ItPmRhdGE7Ci0JZm9yIChpID0gMDsgaSA8IHNp emU7IGkrKykgewotCQlibG9iX2RhdGFbaV0ucmVkID0gcmVkW2ldOwotCQlibG9iX2RhdGFbaV0u Z3JlZW4gPSBncmVlbltpXTsKLQkJYmxvYl9kYXRhW2ldLmJsdWUgPSBibHVlW2ldOwotCX0KLQot CXN0YXRlLT5hY3F1aXJlX2N0eCA9IGN0eDsKLQljcnRjX3N0YXRlID0gZHJtX2F0b21pY19nZXRf Y3J0Y19zdGF0ZShzdGF0ZSwgY3J0Yyk7Ci0JaWYgKElTX0VSUihjcnRjX3N0YXRlKSkgewotCQly ZXQgPSBQVFJfRVJSKGNydGNfc3RhdGUpOwotCQlnb3RvIGZhaWw7Ci0JfQotCi0JLyogUmVzZXQg REVHQU1NQV9MVVQgYW5kIENUTSBwcm9wZXJ0aWVzLiAqLwotCXJlcGxhY2VkICA9IGRybV9wcm9w ZXJ0eV9yZXBsYWNlX2Jsb2IoJmNydGNfc3RhdGUtPmRlZ2FtbWFfbHV0LCBOVUxMKTsKLQlyZXBs YWNlZCB8PSBkcm1fcHJvcGVydHlfcmVwbGFjZV9ibG9iKCZjcnRjX3N0YXRlLT5jdG0sIE5VTEwp OwotCXJlcGxhY2VkIHw9IGRybV9wcm9wZXJ0eV9yZXBsYWNlX2Jsb2IoJmNydGNfc3RhdGUtPmdh bW1hX2x1dCwgYmxvYik7Ci0JY3J0Y19zdGF0ZS0+Y29sb3JfbWdtdF9jaGFuZ2VkIHw9IHJlcGxh Y2VkOwotCi0JcmV0ID0gZHJtX2F0b21pY19jb21taXQoc3RhdGUpOwotCi1mYWlsOgotCWRybV9h dG9taWNfc3RhdGVfcHV0KHN0YXRlKTsKLQlkcm1fcHJvcGVydHlfYmxvYl9wdXQoYmxvYik7Ci0J cmV0dXJuIHJldDsKLX0KLUVYUE9SVF9TWU1CT0woZHJtX2F0b21pY19oZWxwZXJfbGVnYWN5X2dh bW1hX3NldCk7Ci0KIC8qKgogICogX19kcm1fYXRvbWljX2hlbHBlcl9wcml2YXRlX2R1cGxpY2F0 ZV9zdGF0ZSAtIGNvcHkgYXRvbWljIHByaXZhdGUgc3RhdGUKICAqIEBvYmo6IENSVEMgb2JqZWN0 CmRpZmYgLS1naXQgYS9pbmNsdWRlL2RybS9kcm1fYXRvbWljX2hlbHBlci5oIGIvaW5jbHVkZS9k cm0vZHJtX2F0b21pY19oZWxwZXIuaAppbmRleCAyNWNhMDA5NzU2M2UuLjU4MjE0YmUzYmYzZCAx MDA2NDQKLS0tIGEvaW5jbHVkZS9kcm0vZHJtX2F0b21pY19oZWxwZXIuaAorKysgYi9pbmNsdWRl L2RybS9kcm1fYXRvbWljX2hlbHBlci5oCkBAIC0xMjcsNiArMTI3LDkgQEAgaW50IF9fZHJtX2F0 b21pY19oZWxwZXJfc2V0X2NvbmZpZyhzdHJ1Y3QgZHJtX21vZGVfc2V0ICpzZXQsCiBpbnQgZHJt X2F0b21pY19oZWxwZXJfZGlzYWJsZV9hbGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAkJCQkg IHN0cnVjdCBkcm1fbW9kZXNldF9hY3F1aXJlX2N0eCAqY3R4KTsKIHZvaWQgZHJtX2F0b21pY19o ZWxwZXJfc2h1dGRvd24oc3RydWN0IGRybV9kZXZpY2UgKmRldik7CitzdHJ1Y3QgZHJtX2F0b21p Y19zdGF0ZSAqCitkcm1fYXRvbWljX2hlbHBlcl9kdXBsaWNhdGVfc3RhdGUoc3RydWN0IGRybV9k ZXZpY2UgKmRldiwKKwkJCQkgIHN0cnVjdCBkcm1fbW9kZXNldF9hY3F1aXJlX2N0eCAqY3R4KTsK IHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpkcm1fYXRvbWljX2hlbHBlcl9zdXNwZW5kKHN0cnVj dCBkcm1fZGV2aWNlICpkZXYpOwogaW50IGRybV9hdG9taWNfaGVscGVyX2NvbW1pdF9kdXBsaWNh dGVkX3N0YXRlKHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSwKIAkJCQkJICAgICAgc3Ry dWN0IGRybV9tb2Rlc2V0X2FjcXVpcmVfY3R4ICpjdHgpOwpAQCAtMTQ1LDYgKzE0OCwxMCBAQCBp bnQgZHJtX2F0b21pY19oZWxwZXJfcGFnZV9mbGlwX3RhcmdldCgKIAkJCQl1aW50MzJfdCBmbGFn cywKIAkJCQl1aW50MzJfdCB0YXJnZXQsCiAJCQkJc3RydWN0IGRybV9tb2Rlc2V0X2FjcXVpcmVf Y3R4ICpjdHgpOworaW50IGRybV9hdG9taWNfaGVscGVyX2xlZ2FjeV9nYW1tYV9zZXQoc3RydWN0 IGRybV9jcnRjICpjcnRjLAorCQkJCSAgICAgICB1MTYgKnJlZCwgdTE2ICpncmVlbiwgdTE2ICpi bHVlLAorCQkJCSAgICAgICB1aW50MzJfdCBzaXplLAorCQkJCSAgICAgICBzdHJ1Y3QgZHJtX21v ZGVzZXRfYWNxdWlyZV9jdHggKmN0eCk7CiAKIC8qKgogICogZHJtX2F0b21pY19jcnRjX2Zvcl9l YWNoX3BsYW5lIC0gaXRlcmF0ZSBvdmVyIHBsYW5lcyBjdXJyZW50bHkgYXR0YWNoZWQgdG8gQ1JU QwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0vZHJtX2F0b21pY19zdGF0ZV9oZWxwZXIuaCBiL2lu Y2x1ZGUvZHJtL2RybV9hdG9taWNfc3RhdGVfaGVscGVyLmgKaW5kZXggNWI4MmNjZmRiNTAyLi42 NmM5MmNiZDhlMTYgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvZHJtL2RybV9hdG9taWNfc3RhdGVfaGVs cGVyLmgKKysrIGIvaW5jbHVkZS9kcm0vZHJtX2F0b21pY19zdGF0ZV9oZWxwZXIuaApAQCAtNjUs MTYgKzY1LDkgQEAgX19kcm1fYXRvbWljX2hlbHBlcl9jb25uZWN0b3JfZHVwbGljYXRlX3N0YXRl KHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IsCiAJCQkJCSAgIHN0cnVjdCBkcm1fY29u bmVjdG9yX3N0YXRlICpzdGF0ZSk7CiBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqCiBkcm1f YXRvbWljX2hlbHBlcl9jb25uZWN0b3JfZHVwbGljYXRlX3N0YXRlKHN0cnVjdCBkcm1fY29ubmVj dG9yICpjb25uZWN0b3IpOwotc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKgotZHJtX2F0b21pY19o ZWxwZXJfZHVwbGljYXRlX3N0YXRlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCi0JCQkJICBzdHJ1 Y3QgZHJtX21vZGVzZXRfYWNxdWlyZV9jdHggKmN0eCk7CiB2b2lkCiBfX2RybV9hdG9taWNfaGVs cGVyX2Nvbm5lY3Rvcl9kZXN0cm95X3N0YXRlKHN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpz dGF0ZSk7CiB2b2lkIGRybV9hdG9taWNfaGVscGVyX2Nvbm5lY3Rvcl9kZXN0cm95X3N0YXRlKHN0 cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IsCiAJCQkJCSAgc3RydWN0IGRybV9jb25uZWN0 b3Jfc3RhdGUgKnN0YXRlKTsKLWludCBkcm1fYXRvbWljX2hlbHBlcl9sZWdhY3lfZ2FtbWFfc2V0 KHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKLQkJCQkgICAgICAgdTE2ICpyZWQsIHUxNiAqZ3JlZW4s IHUxNiAqYmx1ZSwKLQkJCQkgICAgICAgdWludDMyX3Qgc2l6ZSwKLQkJCQkgICAgICAgc3RydWN0 IGRybV9tb2Rlc2V0X2FjcXVpcmVfY3R4ICpjdHgpOwogdm9pZCBfX2RybV9hdG9taWNfaGVscGVy X3ByaXZhdGVfb2JqX2R1cGxpY2F0ZV9zdGF0ZShzdHJ1Y3QgZHJtX3ByaXZhdGVfb2JqICpvYmos CiAJCQkJCQkgICAgIHN0cnVjdCBkcm1fcHJpdmF0ZV9zdGF0ZSAqc3RhdGUpOwotLSAKMi4xOS4x CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1n ZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9s aXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK