From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Zeng, Oak" Subject: [PATCH 4/6] drm/amdkfd: Separate mqd allocation and initialization Date: Tue, 4 Jun 2019 02:52:47 +0000 Message-ID: <1559616755-13116-4-git-send-email-Oak.Zeng@amd.com> References: <1559616755-13116-1-git-send-email-Oak.Zeng@amd.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1559616755-13116-1-git-send-email-Oak.Zeng-5C7GfCeVMHo@public.gmane.org> Content-Language: en-US List-Id: Discussion list for AMD gfx List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: amd-gfx-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "amd-gfx" To: "amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org" Cc: "Kuehling, Felix" , "Zeng, Oak" SW50cm9kdWNlIGEgbmV3IG1xZCBhbGxvY2F0aW9uIGludGVyZmFjZSBhbmQgc3BsaXQgdGhlIG9y aWdpbmFsDQppbml0X21xZCBmdW5jdGlvbiBpbnRvIHR3byBmdW5jdGlvbnM6IGFsbG9jYXRlX21x ZCBhbmQgaW5pdF9tcWQuDQpUaGlzIGlzIHByZXBhcmF0aW9uIHdvcmsgdG8gZml4IGEgY2lyY3Vs YXIgbG9jayBkZXBlbmRlbmN5Lg0KDQpDaGFuZ2UtSWQ6IEkyNmU1M2VlMWFiY2RkNjg4YWQxMWQz NWI0MzNkYTc3ZTNmYTFiZWU3DQpTaWduZWQtb2ZmLWJ5OiBPYWsgWmVuZyA8T2FrLlplbmdAYW1k LmNvbT4NCi0tLQ0KIC4uLi9ncHUvZHJtL2FtZC9hbWRrZmQva2ZkX2RldmljZV9xdWV1ZV9tYW5h Z2VyLmMgIHwgMTYgKysrKysrKystLS0NCiBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGtmZC9rZmRf a2VybmVsX3F1ZXVlLmMgICAgICB8ICA4ICsrKysrLQ0KIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1k a2ZkL2tmZF9tcWRfbWFuYWdlci5jICAgICAgIHwgIDIgKy0NCiBkcml2ZXJzL2dwdS9kcm0vYW1k L2FtZGtmZC9rZmRfbXFkX21hbmFnZXIuaCAgICAgICB8ICA4ICsrKystLQ0KIGRyaXZlcnMvZ3B1 L2RybS9hbWQvYW1ka2ZkL2tmZF9tcWRfbWFuYWdlcl9jaWsuYyAgIHwgMzEgKysrKysrKystLS0t LS0tLS0tLS0tLQ0KIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1ka2ZkL2tmZF9tcWRfbWFuYWdlcl92 OS5jICAgIHwgMzEgKysrKysrKystLS0tLS0tLS0tLS0tLQ0KIGRyaXZlcnMvZ3B1L2RybS9hbWQv YW1ka2ZkL2tmZF9tcWRfbWFuYWdlcl92aS5jICAgIHwgMzEgKysrKysrKystLS0tLS0tLS0tLS0t LQ0KIDcgZmlsZXMgY2hhbmdlZCwgNTkgaW5zZXJ0aW9ucygrKSwgNjggZGVsZXRpb25zKC0pDQoN CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGtmZC9rZmRfZGV2aWNlX3F1ZXVl X21hbmFnZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1ka2ZkL2tmZF9kZXZpY2VfcXVldWVf bWFuYWdlci5jDQppbmRleCBkYzM0ZTBlLi5kODExZjYzIDEwMDY0NA0KLS0tIGEvZHJpdmVycy9n cHUvZHJtL2FtZC9hbWRrZmQva2ZkX2RldmljZV9xdWV1ZV9tYW5hZ2VyLmMNCisrKyBiL2RyaXZl cnMvZ3B1L2RybS9hbWQvYW1ka2ZkL2tmZF9kZXZpY2VfcXVldWVfbWFuYWdlci5jDQpAQCAtMzIx LDEwICszMjEsMTMgQEAgc3RhdGljIGludCBjcmVhdGVfcXVldWVfbm9jcHNjaChzdHJ1Y3QgZGV2 aWNlX3F1ZXVlX21hbmFnZXIgKmRxbSwNCiAJaWYgKHJldHZhbCkNCiAJCWdvdG8gb3V0X2RlYWxs b2NhdGVfaHFkOw0KIA0KLQlyZXR2YWwgPSBtcWRfbWdyLT5pbml0X21xZChtcWRfbWdyLCAmcS0+ bXFkLCAmcS0+bXFkX21lbV9vYmosDQorCXEtPm1xZF9tZW1fb2JqID0gbXFkX21nci0+YWxsb2Nh dGVfbXFkKG1xZF9tZ3ItPmRldiwgJnEtPnByb3BlcnRpZXMpOw0KKwlpZiAoIXEtPm1xZF9tZW1f b2JqKQ0KKwkJZ290byBvdXRfZGVhbGxvY2F0ZV9kb29yYmVsbDsNCisJcmV0dmFsID0gbXFkX21n ci0+aW5pdF9tcWQobXFkX21nciwgJnEtPm1xZCwgcS0+bXFkX21lbV9vYmosDQogCQkJCSZxLT5n YXJ0X21xZF9hZGRyLCAmcS0+cHJvcGVydGllcyk7DQogCWlmIChyZXR2YWwpDQotCQlnb3RvIG91 dF9kZWFsbG9jYXRlX2Rvb3JiZWxsOw0KKwkJZ290byBvdXRfdW5pbml0X21xZDsNCiANCiAJaWYg KHEtPnByb3BlcnRpZXMuaXNfYWN0aXZlKSB7DQogDQpAQCAtMTE1NywxMCArMTE2MCwxMyBAQCBz dGF0aWMgaW50IGNyZWF0ZV9xdWV1ZV9jcHNjaChzdHJ1Y3QgZGV2aWNlX3F1ZXVlX21hbmFnZXIg KmRxbSwgc3RydWN0IHF1ZXVlICpxLA0KIAkJZHFtLT5hc2ljX29wcy5pbml0X3NkbWFfdm0oZHFt LCBxLCBxcGQpOw0KIAlxLT5wcm9wZXJ0aWVzLnRiYV9hZGRyID0gcXBkLT50YmFfYWRkcjsNCiAJ cS0+cHJvcGVydGllcy50bWFfYWRkciA9IHFwZC0+dG1hX2FkZHI7DQotCXJldHZhbCA9IG1xZF9t Z3ItPmluaXRfbXFkKG1xZF9tZ3IsICZxLT5tcWQsICZxLT5tcWRfbWVtX29iaiwNCisJcS0+bXFk X21lbV9vYmogPSBtcWRfbWdyLT5hbGxvY2F0ZV9tcWQobXFkX21nci0+ZGV2LCAmcS0+cHJvcGVy dGllcyk7DQorCWlmICghcS0+bXFkX21lbV9vYmopDQorCQlnb3RvIG91dF9kZWFsbG9jYXRlX2Rv b3JiZWxsOw0KKwlyZXR2YWwgPSBtcWRfbWdyLT5pbml0X21xZChtcWRfbWdyLCAmcS0+bXFkLCBx LT5tcWRfbWVtX29iaiwNCiAJCQkJJnEtPmdhcnRfbXFkX2FkZHIsICZxLT5wcm9wZXJ0aWVzKTsN CiAJaWYgKHJldHZhbCkNCi0JCWdvdG8gb3V0X2RlYWxsb2NhdGVfZG9vcmJlbGw7DQorCQlnb3Rv IG91dF9kZWFsbG9jYXRlX21xZDsNCiANCiAJZHFtX2xvY2soZHFtKTsNCiANCkBAIC0xMTg4LDYg KzExOTQsOCBAQCBzdGF0aWMgaW50IGNyZWF0ZV9xdWV1ZV9jcHNjaChzdHJ1Y3QgZGV2aWNlX3F1 ZXVlX21hbmFnZXIgKmRxbSwgc3RydWN0IHF1ZXVlICpxLA0KIAlkcW1fdW5sb2NrKGRxbSk7DQog CXJldHVybiByZXR2YWw7DQogDQorb3V0X2RlYWxsb2NhdGVfbXFkOg0KKwltcWRfbWdyLT51bmlu aXRfbXFkKG1xZF9tZ3IscS0+bXFkLCBxLT5tcWRfbWVtX29iaik7DQogb3V0X2RlYWxsb2NhdGVf ZG9vcmJlbGw6DQogCWRlYWxsb2NhdGVfZG9vcmJlbGwocXBkLCBxKTsNCiBvdXRfZGVhbGxvY2F0 ZV9zZG1hX3F1ZXVlOg0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1ka2ZkL2tm ZF9rZXJuZWxfcXVldWUuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1ka2ZkL2tmZF9rZXJuZWxf cXVldWUuYw0KaW5kZXggMWNjMDNiMy4uNjRjOGZmZSAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9hbWQvYW1ka2ZkL2tmZF9rZXJuZWxfcXVldWUuYw0KKysrIGIvZHJpdmVycy9ncHUvZHJt L2FtZC9hbWRrZmQva2ZkX2tlcm5lbF9xdWV1ZS5jDQpAQCAtMTMyLDggKzEzMiwxMiBAQCBzdGF0 aWMgYm9vbCBpbml0aWFsaXplKHN0cnVjdCBrZXJuZWxfcXVldWUgKmtxLCBzdHJ1Y3Qga2ZkX2Rl diAqZGV2LA0KIAlrcS0+cXVldWUtPmRldmljZSA9IGRldjsNCiAJa3EtPnF1ZXVlLT5wcm9jZXNz ID0ga2ZkX2dldF9wcm9jZXNzKGN1cnJlbnQpOw0KIA0KKwlrcS0+cXVldWUtPm1xZF9tZW1fb2Jq ID0ga3EtPm1xZF9tZ3ItPmFsbG9jYXRlX21xZChrcS0+bXFkX21nci0+ZGV2LA0KKwkJCQkJJmtx LT5xdWV1ZS0+cHJvcGVydGllcyk7DQorCWlmICgha3EtPnF1ZXVlLT5tcWRfbWVtX29iaikNCisJ CWdvdG8gZXJyX2FsbG9jYXRlX21xZDsNCiAJcmV0dmFsID0ga3EtPm1xZF9tZ3ItPmluaXRfbXFk KGtxLT5tcWRfbWdyLCAma3EtPnF1ZXVlLT5tcWQsDQotCQkJCQkma3EtPnF1ZXVlLT5tcWRfbWVt X29iaiwNCisJCQkJCWtxLT5xdWV1ZS0+bXFkX21lbV9vYmosDQogCQkJCQkma3EtPnF1ZXVlLT5n YXJ0X21xZF9hZGRyLA0KIAkJCQkJJmtxLT5xdWV1ZS0+cHJvcGVydGllcyk7DQogCWlmIChyZXR2 YWwgIT0gMCkNCkBAIC0xNjUsNiArMTY5LDggQEAgc3RhdGljIGJvb2wgaW5pdGlhbGl6ZShzdHJ1 Y3Qga2VybmVsX3F1ZXVlICprcSwgc3RydWN0IGtmZF9kZXYgKmRldiwNCiAJcmV0dXJuIHRydWU7 DQogZXJyX2FsbG9jX2ZlbmNlOg0KIGVycl9pbml0X21xZDoNCisJa3EtPm1xZF9tZ3ItPnVuaW5p dF9tcWQoa3EtPm1xZF9tZ3IsIGtxLT5xdWV1ZS0+bXFkLCBrcS0+cXVldWUtPm1xZF9tZW1fb2Jq KTsNCitlcnJfYWxsb2NhdGVfbXFkOg0KIAl1bmluaXRfcXVldWUoa3EtPnF1ZXVlKTsNCiBlcnJf aW5pdF9xdWV1ZToNCiAJa2ZkX2d0dF9zYV9mcmVlKGRldiwga3EtPndwdHJfbWVtKTsNCmRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGtmZC9rZmRfbXFkX21hbmFnZXIuYyBiL2Ry aXZlcnMvZ3B1L2RybS9hbWQvYW1ka2ZkL2tmZF9tcWRfbWFuYWdlci5jDQppbmRleCA5MzA3ODEx Li4zOTk2NzVjIDEwMDY0NA0KLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRrZmQva2ZkX21x ZF9tYW5hZ2VyLmMNCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1ka2ZkL2tmZF9tcWRfbWFu YWdlci5jDQpAQCAtMjUsNyArMjUsNyBAQA0KICNpbmNsdWRlICJhbWRncHVfYW1ka2ZkLmgiDQog I2luY2x1ZGUgImtmZF9kZXZpY2VfcXVldWVfbWFuYWdlci5oIg0KIA0KLXN0cnVjdCBrZmRfbWVt X29iaiAqYWxsb2NhdGVfaGlxX21xZChzdHJ1Y3Qga2ZkX2RldiAqZGV2KQ0KK3N0cnVjdCBrZmRf bWVtX29iaiAqYWxsb2NhdGVfaGlxX21xZChzdHJ1Y3Qga2ZkX2RldiAqZGV2LHN0cnVjdCBxdWV1 ZV9wcm9wZXJ0aWVzICpxKQ0KIHsNCiAJc3RydWN0IGtmZF9tZW1fb2JqICptcWRfbWVtX29iaiA9 IE5VTEw7DQogDQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRrZmQva2ZkX21x ZF9tYW5hZ2VyLmggYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGtmZC9rZmRfbXFkX21hbmFnZXIu aA0KaW5kZXggNTZhZjI1NmEuLjg2YzM0ZGQgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL2dwdS9kcm0v YW1kL2FtZGtmZC9rZmRfbXFkX21hbmFnZXIuaA0KKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9h bWRrZmQva2ZkX21xZF9tYW5hZ2VyLmgNCkBAIC02NCw4ICs2NCwxMSBAQA0KICAqLw0KIA0KIHN0 cnVjdCBtcWRfbWFuYWdlciB7DQorCXN0cnVjdCBrZmRfbWVtX29iaioJKCphbGxvY2F0ZV9tcWQp KHN0cnVjdCBrZmRfZGV2ICprZmQsDQorCQlzdHJ1Y3QgcXVldWVfcHJvcGVydGllcyAqcSk7DQor DQogCWludAkoKmluaXRfbXFkKShzdHJ1Y3QgbXFkX21hbmFnZXIgKm1tLCB2b2lkICoqbXFkLA0K LQkJCXN0cnVjdCBrZmRfbWVtX29iaiAqKm1xZF9tZW1fb2JqLCB1aW50NjRfdCAqZ2FydF9hZGRy LA0KKwkJCXN0cnVjdCBrZmRfbWVtX29iaiAqbXFkX21lbV9vYmosIHVpbnQ2NF90ICpnYXJ0X2Fk ZHIsDQogCQkJc3RydWN0IHF1ZXVlX3Byb3BlcnRpZXMgKnEpOw0KIA0KIAlpbnQJKCpsb2FkX21x ZCkoc3RydWN0IG1xZF9tYW5hZ2VyICptbSwgdm9pZCAqbXFkLA0KQEAgLTEwMiw3ICsxMDUsOCBA QCBzdHJ1Y3QgbXFkX21hbmFnZXIgew0KIAl1aW50MzJfdCBtcWRfc2l6ZTsNCiB9Ow0KIA0KLXN0 cnVjdCBrZmRfbWVtX29iaiAqYWxsb2NhdGVfaGlxX21xZChzdHJ1Y3Qga2ZkX2RldiAqZGV2KTsN CitzdHJ1Y3Qga2ZkX21lbV9vYmogKmFsbG9jYXRlX2hpcV9tcWQoc3RydWN0IGtmZF9kZXYgKmRl diwNCisJCQkJc3RydWN0IHF1ZXVlX3Byb3BlcnRpZXMgKnEpOw0KIA0KIHN0cnVjdCBrZmRfbWVt X29iaiAqYWxsb2NhdGVfc2RtYV9tcWQoc3RydWN0IGtmZF9kZXYgKmRldiwNCiAJCQkJCXN0cnVj dCBxdWV1ZV9wcm9wZXJ0aWVzICpxKTsNCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1k L2FtZGtmZC9rZmRfbXFkX21hbmFnZXJfY2lrLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGtm ZC9rZmRfbXFkX21hbmFnZXJfY2lrLmMNCmluZGV4IDZlODUwOWUuLmQ4YWMwNzggMTAwNjQ0DQot LS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGtmZC9rZmRfbXFkX21hbmFnZXJfY2lrLmMNCisr KyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1ka2ZkL2tmZF9tcWRfbWFuYWdlcl9jaWsuYw0KQEAg LTcxLDkgKzcxLDYgQEAgc3RhdGljIHN0cnVjdCBrZmRfbWVtX29iaiAqYWxsb2NhdGVfbXFkKHN0 cnVjdCBrZmRfZGV2ICprZmQsDQogew0KIAlzdHJ1Y3Qga2ZkX21lbV9vYmogKm1xZF9tZW1fb2Jq Ow0KIA0KLQlpZiAocS0+dHlwZSA9PSBLRkRfUVVFVUVfVFlQRV9ISVEpDQotCQlyZXR1cm4gYWxs b2NhdGVfaGlxX21xZChrZmQpOw0KLQ0KIAlpZiAoa2ZkX2d0dF9zYV9hbGxvY2F0ZShrZmQsIHNp emVvZihzdHJ1Y3QgY2lrX21xZCksDQogCQkJJm1xZF9tZW1fb2JqKSkNCiAJCXJldHVybiBOVUxM Ow0KQEAgLTgzLDIwICs4MCwxNSBAQCBzdGF0aWMgc3RydWN0IGtmZF9tZW1fb2JqICphbGxvY2F0 ZV9tcWQoc3RydWN0IGtmZF9kZXYgKmtmZCwNCiANCiANCiBzdGF0aWMgaW50IGluaXRfbXFkKHN0 cnVjdCBtcWRfbWFuYWdlciAqbW0sIHZvaWQgKiptcWQsDQotCQlzdHJ1Y3Qga2ZkX21lbV9vYmog KiptcWRfbWVtX29iaiwgdWludDY0X3QgKmdhcnRfYWRkciwNCisJCXN0cnVjdCBrZmRfbWVtX29i aiAqbXFkX21lbV9vYmosIHVpbnQ2NF90ICpnYXJ0X2FkZHIsDQogCQlzdHJ1Y3QgcXVldWVfcHJv cGVydGllcyAqcSkNCiB7DQogCXVpbnQ2NF90IGFkZHI7DQogCXN0cnVjdCBjaWtfbXFkICptOw0K IAlpbnQgcmV0dmFsOw0KLQlzdHJ1Y3Qga2ZkX2RldiAqa2ZkID0gbW0tPmRldjsNCi0NCi0JKm1x ZF9tZW1fb2JqID0gYWxsb2NhdGVfbXFkKGtmZCwgcSk7DQotCWlmICghKm1xZF9tZW1fb2JqKQ0K LQkJcmV0dXJuIC1FTk9NRU07DQogDQotCW0gPSAoc3RydWN0IGNpa19tcWQgKikgKCptcWRfbWVt X29iaiktPmNwdV9wdHI7DQotCWFkZHIgPSAoKm1xZF9tZW1fb2JqKS0+Z3B1X2FkZHI7DQorCW0g PSAoc3RydWN0IGNpa19tcWQgKikgbXFkX21lbV9vYmotPmNwdV9wdHI7DQorCWFkZHIgPSBtcWRf bWVtX29iai0+Z3B1X2FkZHI7DQogDQogCW1lbXNldChtLCAwLCBBTElHTihzaXplb2Yoc3RydWN0 IGNpa19tcWQpLCAyNTYpKTsNCiANCkBAIC0xNDYsMjQgKzEzOCwxOSBAQCBzdGF0aWMgaW50IGlu aXRfbXFkKHN0cnVjdCBtcWRfbWFuYWdlciAqbW0sIHZvaWQgKiptcWQsDQogfQ0KIA0KIHN0YXRp YyBpbnQgaW5pdF9tcWRfc2RtYShzdHJ1Y3QgbXFkX21hbmFnZXIgKm1tLCB2b2lkICoqbXFkLA0K LQkJCXN0cnVjdCBrZmRfbWVtX29iaiAqKm1xZF9tZW1fb2JqLCB1aW50NjRfdCAqZ2FydF9hZGRy LA0KKwkJCXN0cnVjdCBrZmRfbWVtX29iaiAqbXFkX21lbV9vYmosIHVpbnQ2NF90ICpnYXJ0X2Fk ZHIsDQogCQkJc3RydWN0IHF1ZXVlX3Byb3BlcnRpZXMgKnEpDQogew0KIAlpbnQgcmV0dmFsOw0K IAlzdHJ1Y3QgY2lrX3NkbWFfcmxjX3JlZ2lzdGVycyAqbTsNCi0Jc3RydWN0IGtmZF9kZXYgKmRl diA9IG1tLT5kZXY7DQotDQotCSptcWRfbWVtX29iaiA9IGFsbG9jYXRlX3NkbWFfbXFkKGRldiwg cSk7DQotCWlmICghKm1xZF9tZW1fb2JqKQ0KLQkJcmV0dXJuIC1FTk9NRU07DQogDQotCW0gPSAo c3RydWN0IGNpa19zZG1hX3JsY19yZWdpc3RlcnMgKikgKCptcWRfbWVtX29iaiktPmNwdV9wdHI7 DQorCW0gPSAoc3RydWN0IGNpa19zZG1hX3JsY19yZWdpc3RlcnMgKikgbXFkX21lbV9vYmotPmNw dV9wdHI7DQogDQogCW1lbXNldChtLCAwLCBzaXplb2Yoc3RydWN0IGNpa19zZG1hX3JsY19yZWdp c3RlcnMpKTsNCiANCiAJKm1xZCA9IG07DQogCWlmIChnYXJ0X2FkZHIpDQotCQkqZ2FydF9hZGRy ID0gKCptcWRfbWVtX29iaiktPmdwdV9hZGRyOw0KKwkJKmdhcnRfYWRkciA9IG1xZF9tZW1fb2Jq LT5ncHVfYWRkcjsNCiANCiAJcmV0dmFsID0gbW0tPnVwZGF0ZV9tcWQobW0sIG0sIHEpOw0KIA0K QEAgLTMyOCw3ICszMTUsNyBAQCBzdGF0aWMgYm9vbCBpc19vY2N1cGllZF9zZG1hKHN0cnVjdCBt cWRfbWFuYWdlciAqbW0sIHZvaWQgKm1xZCwNCiAgKi8NCiANCiBzdGF0aWMgaW50IGluaXRfbXFk X2hpcShzdHJ1Y3QgbXFkX21hbmFnZXIgKm1tLCB2b2lkICoqbXFkLA0KLQkJc3RydWN0IGtmZF9t ZW1fb2JqICoqbXFkX21lbV9vYmosIHVpbnQ2NF90ICpnYXJ0X2FkZHIsDQorCQlzdHJ1Y3Qga2Zk X21lbV9vYmogKm1xZF9tZW1fb2JqLCB1aW50NjRfdCAqZ2FydF9hZGRyLA0KIAkJc3RydWN0IHF1 ZXVlX3Byb3BlcnRpZXMgKnEpDQogew0KIAlyZXR1cm4gaW5pdF9tcWQobW0sIG1xZCwgbXFkX21l bV9vYmosIGdhcnRfYWRkciwgcSk7DQpAQCAtNDAyLDYgKzM4OSw3IEBAIHN0cnVjdCBtcWRfbWFu YWdlciAqbXFkX21hbmFnZXJfaW5pdF9jaWsoZW51bSBLRkRfTVFEX1RZUEUgdHlwZSwNCiAJc3dp dGNoICh0eXBlKSB7DQogCWNhc2UgS0ZEX01RRF9UWVBFX0NQOg0KIAljYXNlIEtGRF9NUURfVFlQ RV9DT01QVVRFOg0KKwkJbXFkLT5hbGxvY2F0ZV9tcWQgPSBhbGxvY2F0ZV9tcWQ7DQogCQltcWQt PmluaXRfbXFkID0gaW5pdF9tcWQ7DQogCQltcWQtPnVuaW5pdF9tcWQgPSB1bmluaXRfbXFkOw0K IAkJbXFkLT5sb2FkX21xZCA9IGxvYWRfbXFkOw0KQEAgLTQxNCw2ICs0MDIsNyBAQCBzdHJ1Y3Qg bXFkX21hbmFnZXIgKm1xZF9tYW5hZ2VyX2luaXRfY2lrKGVudW0gS0ZEX01RRF9UWVBFIHR5cGUs DQogI2VuZGlmDQogCQlicmVhazsNCiAJY2FzZSBLRkRfTVFEX1RZUEVfSElROg0KKwkJbXFkLT5h bGxvY2F0ZV9tcWQgPSBhbGxvY2F0ZV9oaXFfbXFkOw0KIAkJbXFkLT5pbml0X21xZCA9IGluaXRf bXFkX2hpcTsNCiAJCW1xZC0+dW5pbml0X21xZCA9IHVuaW5pdF9tcWRfaGlxX3NkbWE7DQogCQlt cWQtPmxvYWRfbXFkID0gbG9hZF9tcWQ7DQpAQCAtNDI2LDYgKzQxNSw3IEBAIHN0cnVjdCBtcWRf bWFuYWdlciAqbXFkX21hbmFnZXJfaW5pdF9jaWsoZW51bSBLRkRfTVFEX1RZUEUgdHlwZSwNCiAj ZW5kaWYNCiAJCWJyZWFrOw0KIAljYXNlIEtGRF9NUURfVFlQRV9ESVE6DQorCQltcWQtPmFsbG9j YXRlX21xZCA9IGFsbG9jYXRlX2hpcV9tcWQ7DQogCQltcWQtPmluaXRfbXFkID0gaW5pdF9tcWRf aGlxOw0KIAkJbXFkLT51bmluaXRfbXFkID0gdW5pbml0X21xZDsNCiAJCW1xZC0+bG9hZF9tcWQg PSBsb2FkX21xZDsNCkBAIC00MzgsNiArNDI4LDcgQEAgc3RydWN0IG1xZF9tYW5hZ2VyICptcWRf bWFuYWdlcl9pbml0X2NpayhlbnVtIEtGRF9NUURfVFlQRSB0eXBlLA0KICNlbmRpZg0KIAkJYnJl YWs7DQogCWNhc2UgS0ZEX01RRF9UWVBFX1NETUE6DQorCQltcWQtPmFsbG9jYXRlX21xZCA9IGFs bG9jYXRlX3NkbWFfbXFkOw0KIAkJbXFkLT5pbml0X21xZCA9IGluaXRfbXFkX3NkbWE7DQogCQlt cWQtPnVuaW5pdF9tcWQgPSB1bmluaXRfbXFkX2hpcV9zZG1hOw0KIAkJbXFkLT5sb2FkX21xZCA9 IGxvYWRfbXFkX3NkbWE7DQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRrZmQv a2ZkX21xZF9tYW5hZ2VyX3Y5LmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGtmZC9rZmRfbXFk X21hbmFnZXJfdjkuYw0KaW5kZXggNDc1MDMzOC4uYzQ4YTQ5NSAxMDA2NDQNCi0tLSBhL2RyaXZl cnMvZ3B1L2RybS9hbWQvYW1ka2ZkL2tmZF9tcWRfbWFuYWdlcl92OS5jDQorKysgYi9kcml2ZXJz L2dwdS9kcm0vYW1kL2FtZGtmZC9rZmRfbXFkX21hbmFnZXJfdjkuYw0KQEAgLTczLDkgKzczLDYg QEAgc3RhdGljIHN0cnVjdCBrZmRfbWVtX29iaiAqYWxsb2NhdGVfbXFkKHN0cnVjdCBrZmRfZGV2 ICprZmQsDQogCWludCByZXR2YWw7DQogCXN0cnVjdCBrZmRfbWVtX29iaiAqbXFkX21lbV9vYmog PSBOVUxMOw0KIA0KLQlpZiAocS0+dHlwZSA9PSBLRkRfUVVFVUVfVFlQRV9ISVEpDQotCQlyZXR1 cm4gYWxsb2NhdGVfaGlxX21xZChrZmQpOw0KLQ0KIAkvKiBGcm9tIFY5LCAgZm9yIENXU1IsIHRo ZSBjb250cm9sIHN0YWNrIGlzIGxvY2F0ZWQgb24gdGhlIG5leHQgcGFnZQ0KIAkgKiBib3VuZGFy eSBhZnRlciB0aGUgbXFkLCB3ZSB3aWxsIHVzZSB0aGUgZ3R0IGFsbG9jYXRpb24gZnVuY3Rpb24N CiAJICogaW5zdGVhZCBvZiBzdWItYWxsb2NhdGlvbiBmdW5jdGlvbi4NCkBAIC0xMDUsMjAgKzEw MiwxNSBAQCBzdGF0aWMgc3RydWN0IGtmZF9tZW1fb2JqICphbGxvY2F0ZV9tcWQoc3RydWN0IGtm ZF9kZXYgKmtmZCwNCiB9DQogDQogc3RhdGljIGludCBpbml0X21xZChzdHJ1Y3QgbXFkX21hbmFn ZXIgKm1tLCB2b2lkICoqbXFkLA0KLQkJCXN0cnVjdCBrZmRfbWVtX29iaiAqKm1xZF9tZW1fb2Jq LCB1aW50NjRfdCAqZ2FydF9hZGRyLA0KKwkJCXN0cnVjdCBrZmRfbWVtX29iaiAqbXFkX21lbV9v YmosIHVpbnQ2NF90ICpnYXJ0X2FkZHIsDQogCQkJc3RydWN0IHF1ZXVlX3Byb3BlcnRpZXMgKnEp DQogew0KIAlpbnQgcmV0dmFsOw0KIAl1aW50NjRfdCBhZGRyOw0KIAlzdHJ1Y3QgdjlfbXFkICpt Ow0KLQlzdHJ1Y3Qga2ZkX2RldiAqa2ZkID0gbW0tPmRldjsNCiANCi0JKm1xZF9tZW1fb2JqID0g YWxsb2NhdGVfbXFkKGtmZCwgcSk7DQotCWlmICghKm1xZF9tZW1fb2JqKQ0KLQkJcmV0dXJuIC1F Tk9NRU07DQotDQotCW0gPSAoc3RydWN0IHY5X21xZCAqKSAoKm1xZF9tZW1fb2JqKS0+Y3B1X3B0 cjsNCi0JYWRkciA9ICgqbXFkX21lbV9vYmopLT5ncHVfYWRkcjsNCisJbSA9IChzdHJ1Y3Qgdjlf bXFkICopIG1xZF9tZW1fb2JqLT5jcHVfcHRyOw0KKwlhZGRyID0gbXFkX21lbV9vYmotPmdwdV9h ZGRyOw0KIA0KIAltZW1zZXQobSwgMCwgc2l6ZW9mKHN0cnVjdCB2OV9tcWQpKTsNCiANCkBAIC0z MTEsNyArMzAzLDcgQEAgc3RhdGljIGludCBnZXRfd2F2ZV9zdGF0ZShzdHJ1Y3QgbXFkX21hbmFn ZXIgKm1tLCB2b2lkICptcWQsDQogfQ0KIA0KIHN0YXRpYyBpbnQgaW5pdF9tcWRfaGlxKHN0cnVj dCBtcWRfbWFuYWdlciAqbW0sIHZvaWQgKiptcWQsDQotCQkJc3RydWN0IGtmZF9tZW1fb2JqICoq bXFkX21lbV9vYmosIHVpbnQ2NF90ICpnYXJ0X2FkZHIsDQorCQkJc3RydWN0IGtmZF9tZW1fb2Jq ICptcWRfbWVtX29iaiwgdWludDY0X3QgKmdhcnRfYWRkciwNCiAJCQlzdHJ1Y3QgcXVldWVfcHJv cGVydGllcyAqcSkNCiB7DQogCXN0cnVjdCB2OV9tcWQgKm07DQpAQCAtMzQ0LDI0ICszMzYsMTkg QEAgc3RhdGljIGludCB1cGRhdGVfbXFkX2hpcShzdHJ1Y3QgbXFkX21hbmFnZXIgKm1tLCB2b2lk ICptcWQsDQogfQ0KIA0KIHN0YXRpYyBpbnQgaW5pdF9tcWRfc2RtYShzdHJ1Y3QgbXFkX21hbmFn ZXIgKm1tLCB2b2lkICoqbXFkLA0KLQkJc3RydWN0IGtmZF9tZW1fb2JqICoqbXFkX21lbV9vYmos IHVpbnQ2NF90ICpnYXJ0X2FkZHIsDQorCQlzdHJ1Y3Qga2ZkX21lbV9vYmogKm1xZF9tZW1fb2Jq LCB1aW50NjRfdCAqZ2FydF9hZGRyLA0KIAkJc3RydWN0IHF1ZXVlX3Byb3BlcnRpZXMgKnEpDQog ew0KIAlpbnQgcmV0dmFsOw0KIAlzdHJ1Y3Qgdjlfc2RtYV9tcWQgKm07DQotCXN0cnVjdCBrZmRf ZGV2ICpkZXYgPSBtbS0+ZGV2Ow0KLQ0KLQkqbXFkX21lbV9vYmogPSBhbGxvY2F0ZV9zZG1hX21x ZChkZXYsIHEpOw0KLQlpZiAoISptcWRfbWVtX29iaikNCi0JCXJldHVybiAtRU5PTUVNOw0KIA0K LQltID0gKHN0cnVjdCB2OV9zZG1hX21xZCAqKSAoKm1xZF9tZW1fb2JqKS0+Y3B1X3B0cjsNCisJ bSA9IChzdHJ1Y3Qgdjlfc2RtYV9tcWQgKikgbXFkX21lbV9vYmotPmNwdV9wdHI7DQogDQogCW1l bXNldChtLCAwLCBzaXplb2Yoc3RydWN0IHY5X3NkbWFfbXFkKSk7DQogDQogCSptcWQgPSBtOw0K IAlpZiAoZ2FydF9hZGRyKQ0KLQkJKmdhcnRfYWRkciA9ICgqbXFkX21lbV9vYmopLT5ncHVfYWRk cjsNCisJCSpnYXJ0X2FkZHIgPSBtcWRfbWVtX29iai0+Z3B1X2FkZHI7DQogDQogCXJldHZhbCA9 IG1tLT51cGRhdGVfbXFkKG1tLCBtLCBxKTsNCiANCkBAIC00NjQsNiArNDUxLDcgQEAgc3RydWN0 IG1xZF9tYW5hZ2VyICptcWRfbWFuYWdlcl9pbml0X3Y5KGVudW0gS0ZEX01RRF9UWVBFIHR5cGUs DQogCXN3aXRjaCAodHlwZSkgew0KIAljYXNlIEtGRF9NUURfVFlQRV9DUDoNCiAJY2FzZSBLRkRf TVFEX1RZUEVfQ09NUFVURToNCisJCW1xZC0+YWxsb2NhdGVfbXFkID0gYWxsb2NhdGVfbXFkOw0K IAkJbXFkLT5pbml0X21xZCA9IGluaXRfbXFkOw0KIAkJbXFkLT51bmluaXRfbXFkID0gdW5pbml0 X21xZDsNCiAJCW1xZC0+bG9hZF9tcWQgPSBsb2FkX21xZDsNCkBAIC00NzcsNiArNDY1LDcgQEAg c3RydWN0IG1xZF9tYW5hZ2VyICptcWRfbWFuYWdlcl9pbml0X3Y5KGVudW0gS0ZEX01RRF9UWVBF IHR5cGUsDQogI2VuZGlmDQogCQlicmVhazsNCiAJY2FzZSBLRkRfTVFEX1RZUEVfSElROg0KKwkJ bXFkLT5hbGxvY2F0ZV9tcWQgPSBhbGxvY2F0ZV9oaXFfbXFkOw0KIAkJbXFkLT5pbml0X21xZCA9 IGluaXRfbXFkX2hpcTsNCiAJCW1xZC0+dW5pbml0X21xZCA9IHVuaW5pdF9tcWRfaGlxX3NkbWE7 DQogCQltcWQtPmxvYWRfbXFkID0gbG9hZF9tcWQ7DQpAQCAtNDg5LDYgKzQ3OCw3IEBAIHN0cnVj dCBtcWRfbWFuYWdlciAqbXFkX21hbmFnZXJfaW5pdF92OShlbnVtIEtGRF9NUURfVFlQRSB0eXBl LA0KICNlbmRpZg0KIAkJYnJlYWs7DQogCWNhc2UgS0ZEX01RRF9UWVBFX0RJUToNCisJCW1xZC0+ YWxsb2NhdGVfbXFkID0gYWxsb2NhdGVfaGlxX21xZDsNCiAJCW1xZC0+aW5pdF9tcWQgPSBpbml0 X21xZF9oaXE7DQogCQltcWQtPnVuaW5pdF9tcWQgPSB1bmluaXRfbXFkOw0KIAkJbXFkLT5sb2Fk X21xZCA9IGxvYWRfbXFkOw0KQEAgLTUwMSw2ICs0OTEsNyBAQCBzdHJ1Y3QgbXFkX21hbmFnZXIg Km1xZF9tYW5hZ2VyX2luaXRfdjkoZW51bSBLRkRfTVFEX1RZUEUgdHlwZSwNCiAjZW5kaWYNCiAJ CWJyZWFrOw0KIAljYXNlIEtGRF9NUURfVFlQRV9TRE1BOg0KKwkJbXFkLT5hbGxvY2F0ZV9tcWQg PSBhbGxvY2F0ZV9zZG1hX21xZDsNCiAJCW1xZC0+aW5pdF9tcWQgPSBpbml0X21xZF9zZG1hOw0K IAkJbXFkLT51bmluaXRfbXFkID0gdW5pbml0X21xZF9oaXFfc2RtYTsNCiAJCW1xZC0+bG9hZF9t cWQgPSBsb2FkX21xZF9zZG1hOw0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1k a2ZkL2tmZF9tcWRfbWFuYWdlcl92aS5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRrZmQva2Zk X21xZF9tYW5hZ2VyX3ZpLmMNCmluZGV4IGI1NTBkZWE5Li5lMzkxMzk2IDEwMDY0NA0KLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRrZmQva2ZkX21xZF9tYW5hZ2VyX3ZpLmMNCisrKyBiL2Ry aXZlcnMvZ3B1L2RybS9hbWQvYW1ka2ZkL2tmZF9tcWRfbWFuYWdlcl92aS5jDQpAQCAtNzMsOSAr NzMsNiBAQCBzdGF0aWMgc3RydWN0IGtmZF9tZW1fb2JqICphbGxvY2F0ZV9tcWQoc3RydWN0IGtm ZF9kZXYgKmtmZCwNCiB7DQogCXN0cnVjdCBrZmRfbWVtX29iaiAqbXFkX21lbV9vYmo7DQogDQot CWlmIChxLT50eXBlID09IEtGRF9RVUVVRV9UWVBFX0hJUSkNCi0JCXJldHVybiBhbGxvY2F0ZV9o aXFfbXFkKGtmZCk7DQotDQogCWlmIChrZmRfZ3R0X3NhX2FsbG9jYXRlKGtmZCwgc2l6ZW9mKHN0 cnVjdCB2aV9tcWQpLA0KIAkJCSZtcWRfbWVtX29iaikpDQogCQlyZXR1cm4gTlVMTDsNCkBAIC04 NCwyMCArODEsMTUgQEAgc3RhdGljIHN0cnVjdCBrZmRfbWVtX29iaiAqYWxsb2NhdGVfbXFkKHN0 cnVjdCBrZmRfZGV2ICprZmQsDQogfQ0KIA0KIHN0YXRpYyBpbnQgaW5pdF9tcWQoc3RydWN0IG1x ZF9tYW5hZ2VyICptbSwgdm9pZCAqKm1xZCwNCi0JCQlzdHJ1Y3Qga2ZkX21lbV9vYmogKiptcWRf bWVtX29iaiwgdWludDY0X3QgKmdhcnRfYWRkciwNCisJCQlzdHJ1Y3Qga2ZkX21lbV9vYmogKm1x ZF9tZW1fb2JqLCB1aW50NjRfdCAqZ2FydF9hZGRyLA0KIAkJCXN0cnVjdCBxdWV1ZV9wcm9wZXJ0 aWVzICpxKQ0KIHsNCiAJaW50IHJldHZhbDsNCiAJdWludDY0X3QgYWRkcjsNCiAJc3RydWN0IHZp X21xZCAqbTsNCi0Jc3RydWN0IGtmZF9kZXYgKmtmZCA9IG1tLT5kZXY7DQotDQotCSptcWRfbWVt X29iaiA9IGFsbG9jYXRlX21xZChrZmQsIHEpOw0KLQlpZiAoISptcWRfbWVtX29iaikNCi0JCXJl dHVybiAtRU5PTUVNOw0KIA0KLQltID0gKHN0cnVjdCB2aV9tcWQgKikgKCptcWRfbWVtX29iaikt PmNwdV9wdHI7DQotCWFkZHIgPSAoKm1xZF9tZW1fb2JqKS0+Z3B1X2FkZHI7DQorCW0gPSAoc3Ry dWN0IHZpX21xZCAqKSBtcWRfbWVtX29iai0+Y3B1X3B0cjsNCisJYWRkciA9IG1xZF9tZW1fb2Jq LT5ncHVfYWRkcjsNCiANCiAJbWVtc2V0KG0sIDAsIHNpemVvZihzdHJ1Y3QgdmlfbXFkKSk7DQog DQpAQCAtMzA3LDcgKzI5OSw3IEBAIHN0YXRpYyBpbnQgZ2V0X3dhdmVfc3RhdGUoc3RydWN0IG1x ZF9tYW5hZ2VyICptbSwgdm9pZCAqbXFkLA0KIH0NCiANCiBzdGF0aWMgaW50IGluaXRfbXFkX2hp cShzdHJ1Y3QgbXFkX21hbmFnZXIgKm1tLCB2b2lkICoqbXFkLA0KLQkJCXN0cnVjdCBrZmRfbWVt X29iaiAqKm1xZF9tZW1fb2JqLCB1aW50NjRfdCAqZ2FydF9hZGRyLA0KKwkJCXN0cnVjdCBrZmRf bWVtX29iaiAqbXFkX21lbV9vYmosIHVpbnQ2NF90ICpnYXJ0X2FkZHIsDQogCQkJc3RydWN0IHF1 ZXVlX3Byb3BlcnRpZXMgKnEpDQogew0KIAlzdHJ1Y3QgdmlfbXFkICptOw0KQEAgLTMzOSwyNCAr MzMxLDE5IEBAIHN0YXRpYyBpbnQgdXBkYXRlX21xZF9oaXEoc3RydWN0IG1xZF9tYW5hZ2VyICpt bSwgdm9pZCAqbXFkLA0KIH0NCiANCiBzdGF0aWMgaW50IGluaXRfbXFkX3NkbWEoc3RydWN0IG1x ZF9tYW5hZ2VyICptbSwgdm9pZCAqKm1xZCwNCi0JCXN0cnVjdCBrZmRfbWVtX29iaiAqKm1xZF9t ZW1fb2JqLCB1aW50NjRfdCAqZ2FydF9hZGRyLA0KKwkJc3RydWN0IGtmZF9tZW1fb2JqICptcWRf bWVtX29iaiwgdWludDY0X3QgKmdhcnRfYWRkciwNCiAJCXN0cnVjdCBxdWV1ZV9wcm9wZXJ0aWVz ICpxKQ0KIHsNCiAJaW50IHJldHZhbDsNCiAJc3RydWN0IHZpX3NkbWFfbXFkICptOw0KLQlzdHJ1 Y3Qga2ZkX2RldiAqZGV2ID0gbW0tPmRldjsNCi0NCi0JKm1xZF9tZW1fb2JqID0gYWxsb2NhdGVf c2RtYV9tcWQoZGV2LCBxKTsNCi0JaWYgKCEqbXFkX21lbV9vYmopDQotCQlyZXR1cm4gLUVOT01F TTsNCiANCi0JbSA9IChzdHJ1Y3Qgdmlfc2RtYV9tcWQgKikgKCptcWRfbWVtX29iaiktPmNwdV9w dHI7DQorCW0gPSAoc3RydWN0IHZpX3NkbWFfbXFkICopIG1xZF9tZW1fb2JqLT5jcHVfcHRyOw0K IA0KIAltZW1zZXQobSwgMCwgc2l6ZW9mKHN0cnVjdCB2aV9zZG1hX21xZCkpOw0KIA0KIAkqbXFk ID0gbTsNCiAJaWYgKGdhcnRfYWRkcikNCi0JCSpnYXJ0X2FkZHIgPSAoKm1xZF9tZW1fb2JqKS0+ Z3B1X2FkZHI7DQorCQkqZ2FydF9hZGRyID0gbXFkX21lbV9vYmotPmdwdV9hZGRyOw0KIA0KIAly ZXR2YWwgPSBtbS0+dXBkYXRlX21xZChtbSwgbSwgcSk7DQogDQpAQCAtNDU4LDYgKzQ0NSw3IEBA IHN0cnVjdCBtcWRfbWFuYWdlciAqbXFkX21hbmFnZXJfaW5pdF92aShlbnVtIEtGRF9NUURfVFlQ RSB0eXBlLA0KIAlzd2l0Y2ggKHR5cGUpIHsNCiAJY2FzZSBLRkRfTVFEX1RZUEVfQ1A6DQogCWNh c2UgS0ZEX01RRF9UWVBFX0NPTVBVVEU6DQorCQltcWQtPmFsbG9jYXRlX21xZCA9IGFsbG9jYXRl X21xZDsNCiAJCW1xZC0+aW5pdF9tcWQgPSBpbml0X21xZDsNCiAJCW1xZC0+dW5pbml0X21xZCA9 IHVuaW5pdF9tcWQ7DQogCQltcWQtPmxvYWRfbXFkID0gbG9hZF9tcWQ7DQpAQCAtNDcxLDYgKzQ1 OSw3IEBAIHN0cnVjdCBtcWRfbWFuYWdlciAqbXFkX21hbmFnZXJfaW5pdF92aShlbnVtIEtGRF9N UURfVFlQRSB0eXBlLA0KICNlbmRpZg0KIAkJYnJlYWs7DQogCWNhc2UgS0ZEX01RRF9UWVBFX0hJ UToNCisJCW1xZC0+YWxsb2NhdGVfbXFkID0gYWxsb2NhdGVfaGlxX21xZDsNCiAJCW1xZC0+aW5p dF9tcWQgPSBpbml0X21xZF9oaXE7DQogCQltcWQtPnVuaW5pdF9tcWQgPSB1bmluaXRfbXFkX2hp cV9zZG1hOw0KIAkJbXFkLT5sb2FkX21xZCA9IGxvYWRfbXFkOw0KQEAgLTQ4Myw2ICs0NzIsNyBA QCBzdHJ1Y3QgbXFkX21hbmFnZXIgKm1xZF9tYW5hZ2VyX2luaXRfdmkoZW51bSBLRkRfTVFEX1RZ UEUgdHlwZSwNCiAjZW5kaWYNCiAJCWJyZWFrOw0KIAljYXNlIEtGRF9NUURfVFlQRV9ESVE6DQor CQltcWQtPmFsbG9jYXRlX21xZCA9IGFsbG9jYXRlX2hpcV9tcWQ7DQogCQltcWQtPmluaXRfbXFk ID0gaW5pdF9tcWRfaGlxOw0KIAkJbXFkLT51bmluaXRfbXFkID0gdW5pbml0X21xZDsNCiAJCW1x ZC0+bG9hZF9tcWQgPSBsb2FkX21xZDsNCkBAIC00OTUsNiArNDg1LDcgQEAgc3RydWN0IG1xZF9t YW5hZ2VyICptcWRfbWFuYWdlcl9pbml0X3ZpKGVudW0gS0ZEX01RRF9UWVBFIHR5cGUsDQogI2Vu ZGlmDQogCQlicmVhazsNCiAJY2FzZSBLRkRfTVFEX1RZUEVfU0RNQToNCisJCW1xZC0+YWxsb2Nh dGVfbXFkID0gYWxsb2NhdGVfc2RtYV9tcWQ7DQogCQltcWQtPmluaXRfbXFkID0gaW5pdF9tcWRf c2RtYTsNCiAJCW1xZC0+dW5pbml0X21xZCA9IHVuaW5pdF9tcWRfaGlxX3NkbWE7DQogCQltcWQt PmxvYWRfbXFkID0gbG9hZF9tcWRfc2RtYTsNCi0tIA0KMi43LjQNCg0KX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KYW1kLWdmeCBtYWlsaW5nIGxpc3QKYW1k LWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcv bWFpbG1hbi9saXN0aW5mby9hbWQtZ2Z4