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: Wed, 5 Jun 2019 16:06:47 +0000 Message-ID: <1559750793-16608-4-git-send-email-Oak.Zeng@amd.com> References: <1559750793-16608-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: <1559750793-16608-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: "Zhao, Yong" , "Kuehling, Felix" , "Freehill, Chris" , "Zeng, Oak" , "Liu, Alex" SW50cm9kdWNlIGEgbmV3IG1xZCBhbGxvY2F0aW9uIGludGVyZmFjZSBhbmQgc3BsaXQgdGhlIG9y aWdpbmFsDQppbml0X21xZCBmdW5jdGlvbiBpbnRvIHR3byBmdW5jdGlvbnM6IGFsbG9jYXRlX21x ZCBhbmQgaW5pdF9tcWQuDQpUaGlzIGlzIHByZXBhcmF0aW9uIHdvcmsgdG8gZml4IGEgY2lyY3Vs YXIgbG9jayBkZXBlbmRlbmN5Lg0KDQpDaGFuZ2UtSWQ6IEkyNmU1M2VlMWFiY2RkNjg4YWQxMWQz NWI0MzNkYTc3ZTNmYTFiZWU3DQpTaWduZWQtb2ZmLWJ5OiBPYWsgWmVuZyA8T2FrLlplbmdAYW1k LmNvbT4NCi0tLQ0KIC4uLi9ncHUvZHJtL2FtZC9hbWRrZmQva2ZkX2RldmljZV9xdWV1ZV9tYW5h Z2VyLmMgIHwgMTYgKysrKysrKystLS0NCiBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGtmZC9rZmRf a2VybmVsX3F1ZXVlLmMgICAgICB8ICA4ICsrKysrLQ0KIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1k a2ZkL2tmZF9tcWRfbWFuYWdlci5jICAgICAgIHwgIDIgKy0NCiBkcml2ZXJzL2dwdS9kcm0vYW1k L2FtZGtmZC9rZmRfbXFkX21hbmFnZXIuaCAgICAgICB8ICA4ICsrKystLQ0KIGRyaXZlcnMvZ3B1 L2RybS9hbWQvYW1ka2ZkL2tmZF9tcWRfbWFuYWdlcl9jaWsuYyAgIHwgMzEgKysrKysrKystLS0t LS0tLS0tLS0tLQ0KIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1ka2ZkL2tmZF9tcWRfbWFuYWdlcl92 OS5jICAgIHwgMzEgKysrKysrKystLS0tLS0tLS0tLS0tLQ0KIGRyaXZlcnMvZ3B1L2RybS9hbWQv YW1ka2ZkL2tmZF9tcWRfbWFuYWdlcl92aS5jICAgIHwgMzEgKysrKysrKystLS0tLS0tLS0tLS0t LQ0KIDcgZmlsZXMgY2hhbmdlZCwgNTkgaW5zZXJ0aW9ucygrKSwgNjggZGVsZXRpb25zKC0pDQoN CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGtmZC9rZmRfZGV2aWNlX3F1ZXVl X21hbmFnZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1ka2ZkL2tmZF9kZXZpY2VfcXVldWVf bWFuYWdlci5jDQppbmRleCAzYzA0MmViLi43ODdiNWJlIDEwMDY0NA0KLS0tIGEvZHJpdmVycy9n cHUvZHJtL2FtZC9hbWRrZmQva2ZkX2RldmljZV9xdWV1ZV9tYW5hZ2VyLmMNCisrKyBiL2RyaXZl cnMvZ3B1L2RybS9hbWQvYW1ka2ZkL2tmZF9kZXZpY2VfcXVldWVfbWFuYWdlci5jDQpAQCAtMzE5 LDEwICszMTksMTMgQEAgc3RhdGljIGludCBjcmVhdGVfcXVldWVfbm9jcHNjaChzdHJ1Y3QgZGV2 aWNlX3F1ZXVlX21hbmFnZXIgKmRxbSwNCiAJaWYgKHJldHZhbCkNCiAJCWdvdG8gb3V0X2RlYWxs b2NhdGVfaHFkOw0KIA0KLQlyZXR2YWwgPSBtcWRfbWdyLT5pbml0X21xZChtcWRfbWdyLCAmcS0+ bXFkLCAmcS0+bXFkX21lbV9vYmosDQorCXEtPm1xZF9tZW1fb2JqID0gbXFkX21nci0+YWxsb2Nh dGVfbXFkKG1xZF9tZ3ItPmRldiwgJnEtPnByb3BlcnRpZXMpOw0KKwlpZiAoIXEtPm1xZF9tZW1f b2JqKQ0KKwkJZ290byBvdXRfZGVhbGxvY2F0ZV9kb29yYmVsbDsNCisJcmV0dmFsID0gbXFkX21n ci0+aW5pdF9tcWQobXFkX21nciwgJnEtPm1xZCwgcS0+bXFkX21lbV9vYmosDQogCQkJCSZxLT5n YXJ0X21xZF9hZGRyLCAmcS0+cHJvcGVydGllcyk7DQogCWlmIChyZXR2YWwpDQotCQlnb3RvIG91 dF9kZWFsbG9jYXRlX2Rvb3JiZWxsOw0KKwkJZ290byBvdXRfdW5pbml0X21xZDsNCiANCiAJaWYg KHEtPnByb3BlcnRpZXMuaXNfYWN0aXZlKSB7DQogDQpAQCAtMTE2MCwxMCArMTE2MywxMyBAQCBz dGF0aWMgaW50IGNyZWF0ZV9xdWV1ZV9jcHNjaChzdHJ1Y3QgZGV2aWNlX3F1ZXVlX21hbmFnZXIg KmRxbSwgc3RydWN0IHF1ZXVlICpxLA0KIAkJZHFtLT5hc2ljX29wcy5pbml0X3NkbWFfdm0oZHFt LCBxLCBxcGQpOw0KIAlxLT5wcm9wZXJ0aWVzLnRiYV9hZGRyID0gcXBkLT50YmFfYWRkcjsNCiAJ cS0+cHJvcGVydGllcy50bWFfYWRkciA9IHFwZC0+dG1hX2FkZHI7DQotCXJldHZhbCA9IG1xZF9t Z3ItPmluaXRfbXFkKG1xZF9tZ3IsICZxLT5tcWQsICZxLT5tcWRfbWVtX29iaiwNCisJcS0+bXFk X21lbV9vYmogPSBtcWRfbWdyLT5hbGxvY2F0ZV9tcWQobXFkX21nci0+ZGV2LCAmcS0+cHJvcGVy dGllcyk7DQorCWlmICghcS0+bXFkX21lbV9vYmopDQorCQlnb3RvIG91dF9kZWFsbG9jYXRlX2Rv b3JiZWxsOw0KKwlyZXR2YWwgPSBtcWRfbWdyLT5pbml0X21xZChtcWRfbWdyLCAmcS0+bXFkLCBx LT5tcWRfbWVtX29iaiwNCiAJCQkJJnEtPmdhcnRfbXFkX2FkZHIsICZxLT5wcm9wZXJ0aWVzKTsN CiAJaWYgKHJldHZhbCkNCi0JCWdvdG8gb3V0X2RlYWxsb2NhdGVfZG9vcmJlbGw7DQorCQlnb3Rv IG91dF9kZWFsbG9jYXRlX21xZDsNCiANCiAJZHFtX2xvY2soZHFtKTsNCiANCkBAIC0xMTkxLDYg KzExOTcsOCBAQCBzdGF0aWMgaW50IGNyZWF0ZV9xdWV1ZV9jcHNjaChzdHJ1Y3QgZGV2aWNlX3F1 ZXVlX21hbmFnZXIgKmRxbSwgc3RydWN0IHF1ZXVlICpxLA0KIAlkcW1fdW5sb2NrKGRxbSk7DQog CXJldHVybiByZXR2YWw7DQogDQorb3V0X2RlYWxsb2NhdGVfbXFkOg0KKwltcWRfbWdyLT51bmlu aXRfbXFkKG1xZF9tZ3IsIHEtPm1xZCwgcS0+bXFkX21lbV9vYmopOw0KIG91dF9kZWFsbG9jYXRl X2Rvb3JiZWxsOg0KIAlkZWFsbG9jYXRlX2Rvb3JiZWxsKHFwZCwgcSk7DQogb3V0X2RlYWxsb2Nh dGVfc2RtYV9xdWV1ZToNCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGtmZC9r ZmRfa2VybmVsX3F1ZXVlLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGtmZC9rZmRfa2VybmVs X3F1ZXVlLmMNCmluZGV4IDFjYzAzYjMuLjY0YzhmZmUgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL2dw dS9kcm0vYW1kL2FtZGtmZC9rZmRfa2VybmVsX3F1ZXVlLmMNCisrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9hbWQvYW1ka2ZkL2tmZF9rZXJuZWxfcXVldWUuYw0KQEAgLTEzMiw4ICsxMzIsMTIgQEAgc3Rh dGljIGJvb2wgaW5pdGlhbGl6ZShzdHJ1Y3Qga2VybmVsX3F1ZXVlICprcSwgc3RydWN0IGtmZF9k ZXYgKmRldiwNCiAJa3EtPnF1ZXVlLT5kZXZpY2UgPSBkZXY7DQogCWtxLT5xdWV1ZS0+cHJvY2Vz cyA9IGtmZF9nZXRfcHJvY2VzcyhjdXJyZW50KTsNCiANCisJa3EtPnF1ZXVlLT5tcWRfbWVtX29i aiA9IGtxLT5tcWRfbWdyLT5hbGxvY2F0ZV9tcWQoa3EtPm1xZF9tZ3ItPmRldiwNCisJCQkJCSZr cS0+cXVldWUtPnByb3BlcnRpZXMpOw0KKwlpZiAoIWtxLT5xdWV1ZS0+bXFkX21lbV9vYmopDQor CQlnb3RvIGVycl9hbGxvY2F0ZV9tcWQ7DQogCXJldHZhbCA9IGtxLT5tcWRfbWdyLT5pbml0X21x ZChrcS0+bXFkX21nciwgJmtxLT5xdWV1ZS0+bXFkLA0KLQkJCQkJJmtxLT5xdWV1ZS0+bXFkX21l bV9vYmosDQorCQkJCQlrcS0+cXVldWUtPm1xZF9tZW1fb2JqLA0KIAkJCQkJJmtxLT5xdWV1ZS0+ Z2FydF9tcWRfYWRkciwNCiAJCQkJCSZrcS0+cXVldWUtPnByb3BlcnRpZXMpOw0KIAlpZiAocmV0 dmFsICE9IDApDQpAQCAtMTY1LDYgKzE2OSw4IEBAIHN0YXRpYyBib29sIGluaXRpYWxpemUoc3Ry dWN0IGtlcm5lbF9xdWV1ZSAqa3EsIHN0cnVjdCBrZmRfZGV2ICpkZXYsDQogCXJldHVybiB0cnVl Ow0KIGVycl9hbGxvY19mZW5jZToNCiBlcnJfaW5pdF9tcWQ6DQorCWtxLT5tcWRfbWdyLT51bmlu aXRfbXFkKGtxLT5tcWRfbWdyLCBrcS0+cXVldWUtPm1xZCwga3EtPnF1ZXVlLT5tcWRfbWVtX29i aik7DQorZXJyX2FsbG9jYXRlX21xZDoNCiAJdW5pbml0X3F1ZXVlKGtxLT5xdWV1ZSk7DQogZXJy X2luaXRfcXVldWU6DQogCWtmZF9ndHRfc2FfZnJlZShkZXYsIGtxLT53cHRyX21lbSk7DQpkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRrZmQva2ZkX21xZF9tYW5hZ2VyLmMgYi9k cml2ZXJzL2dwdS9kcm0vYW1kL2FtZGtmZC9rZmRfbXFkX21hbmFnZXIuYw0KaW5kZXggY2MwNGIz NjIuLmI0ZjMwNWEgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGtmZC9rZmRf bXFkX21hbmFnZXIuYw0KKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRrZmQva2ZkX21xZF9t YW5hZ2VyLmMNCkBAIC00NSw3ICs0NSw3IEBAIGludCBwaXBlX3ByaW9yaXR5X21hcFtdID0gew0K IAlLRkRfUElQRV9QUklPUklUWV9DU19ISUdIDQogfTsNCiANCi1zdHJ1Y3Qga2ZkX21lbV9vYmog KmFsbG9jYXRlX2hpcV9tcWQoc3RydWN0IGtmZF9kZXYgKmRldikNCitzdHJ1Y3Qga2ZkX21lbV9v YmogKmFsbG9jYXRlX2hpcV9tcWQoc3RydWN0IGtmZF9kZXYgKmRldiwgc3RydWN0IHF1ZXVlX3By b3BlcnRpZXMgKnEpDQogew0KIAlzdHJ1Y3Qga2ZkX21lbV9vYmogKm1xZF9tZW1fb2JqID0gTlVM TDsNCiANCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGtmZC9rZmRfbXFkX21h bmFnZXIuaCBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1ka2ZkL2tmZF9tcWRfbWFuYWdlci5oDQpp bmRleCA2NmI4YzY3Li44NjY3OTkwIDEwMDY0NA0KLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9h bWRrZmQva2ZkX21xZF9tYW5hZ2VyLmgNCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1ka2Zk L2tmZF9tcWRfbWFuYWdlci5oDQpAQCAtNjQsOCArNjQsMTEgQEANCiAgKi8NCiBleHRlcm4gaW50 IHBpcGVfcHJpb3JpdHlfbWFwW107DQogc3RydWN0IG1xZF9tYW5hZ2VyIHsNCisJc3RydWN0IGtm ZF9tZW1fb2JqKgkoKmFsbG9jYXRlX21xZCkoc3RydWN0IGtmZF9kZXYgKmtmZCwNCisJCXN0cnVj dCBxdWV1ZV9wcm9wZXJ0aWVzICpxKTsNCisNCiAJaW50CSgqaW5pdF9tcWQpKHN0cnVjdCBtcWRf bWFuYWdlciAqbW0sIHZvaWQgKiptcWQsDQotCQkJc3RydWN0IGtmZF9tZW1fb2JqICoqbXFkX21l bV9vYmosIHVpbnQ2NF90ICpnYXJ0X2FkZHIsDQorCQkJc3RydWN0IGtmZF9tZW1fb2JqICptcWRf bWVtX29iaiwgdWludDY0X3QgKmdhcnRfYWRkciwNCiAJCQlzdHJ1Y3QgcXVldWVfcHJvcGVydGll cyAqcSk7DQogDQogCWludAkoKmxvYWRfbXFkKShzdHJ1Y3QgbXFkX21hbmFnZXIgKm1tLCB2b2lk ICptcWQsDQpAQCAtMTAyLDcgKzEwNSw4IEBAIHN0cnVjdCBtcWRfbWFuYWdlciB7DQogCXVpbnQz Ml90IG1xZF9zaXplOw0KIH07DQogDQotc3RydWN0IGtmZF9tZW1fb2JqICphbGxvY2F0ZV9oaXFf bXFkKHN0cnVjdCBrZmRfZGV2ICpkZXYpOw0KK3N0cnVjdCBrZmRfbWVtX29iaiAqYWxsb2NhdGVf aGlxX21xZChzdHJ1Y3Qga2ZkX2RldiAqZGV2LA0KKwkJCQlzdHJ1Y3QgcXVldWVfcHJvcGVydGll cyAqcSk7DQogDQogc3RydWN0IGtmZF9tZW1fb2JqICphbGxvY2F0ZV9zZG1hX21xZChzdHJ1Y3Qg a2ZkX2RldiAqZGV2LA0KIAkJCQkJc3RydWN0IHF1ZXVlX3Byb3BlcnRpZXMgKnEpOw0KZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1ka2ZkL2tmZF9tcWRfbWFuYWdlcl9jaWsuYyBi L2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1ka2ZkL2tmZF9tcWRfbWFuYWdlcl9jaWsuYw0KaW5kZXgg ZTkxMTQzOC4uYmJlODA4ZCAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1ka2Zk L2tmZF9tcWRfbWFuYWdlcl9jaWsuYw0KKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRrZmQv a2ZkX21xZF9tYW5hZ2VyX2Npay5jDQpAQCAtNzcsOSArNzcsNiBAQCBzdGF0aWMgc3RydWN0IGtm ZF9tZW1fb2JqICphbGxvY2F0ZV9tcWQoc3RydWN0IGtmZF9kZXYgKmtmZCwNCiB7DQogCXN0cnVj dCBrZmRfbWVtX29iaiAqbXFkX21lbV9vYmo7DQogDQotCWlmIChxLT50eXBlID09IEtGRF9RVUVV RV9UWVBFX0hJUSkNCi0JCXJldHVybiBhbGxvY2F0ZV9oaXFfbXFkKGtmZCk7DQotDQogCWlmIChr ZmRfZ3R0X3NhX2FsbG9jYXRlKGtmZCwgc2l6ZW9mKHN0cnVjdCBjaWtfbXFkKSwNCiAJCQkmbXFk X21lbV9vYmopKQ0KIAkJcmV0dXJuIE5VTEw7DQpAQCAtODgsMjAgKzg1LDE1IEBAIHN0YXRpYyBz dHJ1Y3Qga2ZkX21lbV9vYmogKmFsbG9jYXRlX21xZChzdHJ1Y3Qga2ZkX2RldiAqa2ZkLA0KIH0N CiANCiBzdGF0aWMgaW50IGluaXRfbXFkKHN0cnVjdCBtcWRfbWFuYWdlciAqbW0sIHZvaWQgKipt cWQsDQotCQlzdHJ1Y3Qga2ZkX21lbV9vYmogKiptcWRfbWVtX29iaiwgdWludDY0X3QgKmdhcnRf YWRkciwNCisJCXN0cnVjdCBrZmRfbWVtX29iaiAqbXFkX21lbV9vYmosIHVpbnQ2NF90ICpnYXJ0 X2FkZHIsDQogCQlzdHJ1Y3QgcXVldWVfcHJvcGVydGllcyAqcSkNCiB7DQogCXVpbnQ2NF90IGFk ZHI7DQogCXN0cnVjdCBjaWtfbXFkICptOw0KIAlpbnQgcmV0dmFsOw0KLQlzdHJ1Y3Qga2ZkX2Rl diAqa2ZkID0gbW0tPmRldjsNCi0NCi0JKm1xZF9tZW1fb2JqID0gYWxsb2NhdGVfbXFkKGtmZCwg cSk7DQotCWlmICghKm1xZF9tZW1fb2JqKQ0KLQkJcmV0dXJuIC1FTk9NRU07DQogDQotCW0gPSAo c3RydWN0IGNpa19tcWQgKikgKCptcWRfbWVtX29iaiktPmNwdV9wdHI7DQotCWFkZHIgPSAoKm1x ZF9tZW1fb2JqKS0+Z3B1X2FkZHI7DQorCW0gPSAoc3RydWN0IGNpa19tcWQgKikgbXFkX21lbV9v YmotPmNwdV9wdHI7DQorCWFkZHIgPSBtcWRfbWVtX29iai0+Z3B1X2FkZHI7DQogDQogCW1lbXNl dChtLCAwLCBBTElHTihzaXplb2Yoc3RydWN0IGNpa19tcWQpLCAyNTYpKTsNCiANCkBAIC0xNTAs MjQgKzE0MiwxOSBAQCBzdGF0aWMgaW50IGluaXRfbXFkKHN0cnVjdCBtcWRfbWFuYWdlciAqbW0s IHZvaWQgKiptcWQsDQogfQ0KIA0KIHN0YXRpYyBpbnQgaW5pdF9tcWRfc2RtYShzdHJ1Y3QgbXFk X21hbmFnZXIgKm1tLCB2b2lkICoqbXFkLA0KLQkJCXN0cnVjdCBrZmRfbWVtX29iaiAqKm1xZF9t ZW1fb2JqLCB1aW50NjRfdCAqZ2FydF9hZGRyLA0KKwkJCXN0cnVjdCBrZmRfbWVtX29iaiAqbXFk X21lbV9vYmosIHVpbnQ2NF90ICpnYXJ0X2FkZHIsDQogCQkJc3RydWN0IHF1ZXVlX3Byb3BlcnRp ZXMgKnEpDQogew0KIAlpbnQgcmV0dmFsOw0KIAlzdHJ1Y3QgY2lrX3NkbWFfcmxjX3JlZ2lzdGVy cyAqbTsNCi0Jc3RydWN0IGtmZF9kZXYgKmRldiA9IG1tLT5kZXY7DQotDQotCSptcWRfbWVtX29i aiA9IGFsbG9jYXRlX3NkbWFfbXFkKGRldiwgcSk7DQotCWlmICghKm1xZF9tZW1fb2JqKQ0KLQkJ cmV0dXJuIC1FTk9NRU07DQogDQotCW0gPSAoc3RydWN0IGNpa19zZG1hX3JsY19yZWdpc3RlcnMg KikgKCptcWRfbWVtX29iaiktPmNwdV9wdHI7DQorCW0gPSAoc3RydWN0IGNpa19zZG1hX3JsY19y ZWdpc3RlcnMgKikgbXFkX21lbV9vYmotPmNwdV9wdHI7DQogDQogCW1lbXNldChtLCAwLCBzaXpl b2Yoc3RydWN0IGNpa19zZG1hX3JsY19yZWdpc3RlcnMpKTsNCiANCiAJKm1xZCA9IG07DQogCWlm IChnYXJ0X2FkZHIpDQotCQkqZ2FydF9hZGRyID0gKCptcWRfbWVtX29iaiktPmdwdV9hZGRyOw0K KwkJKmdhcnRfYWRkciA9IG1xZF9tZW1fb2JqLT5ncHVfYWRkcjsNCiANCiAJcmV0dmFsID0gbW0t PnVwZGF0ZV9tcWQobW0sIG0sIHEpOw0KIA0KQEAgLTMyNyw3ICszMTQsNyBAQCBzdGF0aWMgYm9v bCBpc19vY2N1cGllZF9zZG1hKHN0cnVjdCBtcWRfbWFuYWdlciAqbW0sIHZvaWQgKm1xZCwNCiAg Ki8NCiANCiBzdGF0aWMgaW50IGluaXRfbXFkX2hpcShzdHJ1Y3QgbXFkX21hbmFnZXIgKm1tLCB2 b2lkICoqbXFkLA0KLQkJc3RydWN0IGtmZF9tZW1fb2JqICoqbXFkX21lbV9vYmosIHVpbnQ2NF90 ICpnYXJ0X2FkZHIsDQorCQlzdHJ1Y3Qga2ZkX21lbV9vYmogKm1xZF9tZW1fb2JqLCB1aW50NjRf dCAqZ2FydF9hZGRyLA0KIAkJc3RydWN0IHF1ZXVlX3Byb3BlcnRpZXMgKnEpDQogew0KIAlyZXR1 cm4gaW5pdF9tcWQobW0sIG1xZCwgbXFkX21lbV9vYmosIGdhcnRfYWRkciwgcSk7DQpAQCAtMzk5 LDYgKzM4Niw3IEBAIHN0cnVjdCBtcWRfbWFuYWdlciAqbXFkX21hbmFnZXJfaW5pdF9jaWsoZW51 bSBLRkRfTVFEX1RZUEUgdHlwZSwNCiAJc3dpdGNoICh0eXBlKSB7DQogCWNhc2UgS0ZEX01RRF9U WVBFX0NQOg0KIAljYXNlIEtGRF9NUURfVFlQRV9DT01QVVRFOg0KKwkJbXFkLT5hbGxvY2F0ZV9t cWQgPSBhbGxvY2F0ZV9tcWQ7DQogCQltcWQtPmluaXRfbXFkID0gaW5pdF9tcWQ7DQogCQltcWQt PnVuaW5pdF9tcWQgPSB1bmluaXRfbXFkOw0KIAkJbXFkLT5sb2FkX21xZCA9IGxvYWRfbXFkOw0K QEAgLTQxMSw2ICszOTksNyBAQCBzdHJ1Y3QgbXFkX21hbmFnZXIgKm1xZF9tYW5hZ2VyX2luaXRf Y2lrKGVudW0gS0ZEX01RRF9UWVBFIHR5cGUsDQogI2VuZGlmDQogCQlicmVhazsNCiAJY2FzZSBL RkRfTVFEX1RZUEVfSElROg0KKwkJbXFkLT5hbGxvY2F0ZV9tcWQgPSBhbGxvY2F0ZV9oaXFfbXFk Ow0KIAkJbXFkLT5pbml0X21xZCA9IGluaXRfbXFkX2hpcTsNCiAJCW1xZC0+dW5pbml0X21xZCA9 IHVuaW5pdF9tcWRfaGlxX3NkbWE7DQogCQltcWQtPmxvYWRfbXFkID0gbG9hZF9tcWQ7DQpAQCAt NDIzLDYgKzQxMiw3IEBAIHN0cnVjdCBtcWRfbWFuYWdlciAqbXFkX21hbmFnZXJfaW5pdF9jaWso ZW51bSBLRkRfTVFEX1RZUEUgdHlwZSwNCiAjZW5kaWYNCiAJCWJyZWFrOw0KIAljYXNlIEtGRF9N UURfVFlQRV9ESVE6DQorCQltcWQtPmFsbG9jYXRlX21xZCA9IGFsbG9jYXRlX2hpcV9tcWQ7DQog CQltcWQtPmluaXRfbXFkID0gaW5pdF9tcWRfaGlxOw0KIAkJbXFkLT51bmluaXRfbXFkID0gdW5p bml0X21xZDsNCiAJCW1xZC0+bG9hZF9tcWQgPSBsb2FkX21xZDsNCkBAIC00MzUsNiArNDI1LDcg QEAgc3RydWN0IG1xZF9tYW5hZ2VyICptcWRfbWFuYWdlcl9pbml0X2NpayhlbnVtIEtGRF9NUURf VFlQRSB0eXBlLA0KICNlbmRpZg0KIAkJYnJlYWs7DQogCWNhc2UgS0ZEX01RRF9UWVBFX1NETUE6 DQorCQltcWQtPmFsbG9jYXRlX21xZCA9IGFsbG9jYXRlX3NkbWFfbXFkOw0KIAkJbXFkLT5pbml0 X21xZCA9IGluaXRfbXFkX3NkbWE7DQogCQltcWQtPnVuaW5pdF9tcWQgPSB1bmluaXRfbXFkX2hp cV9zZG1hOw0KIAkJbXFkLT5sb2FkX21xZCA9IGxvYWRfbXFkX3NkbWE7DQpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRrZmQva2ZkX21xZF9tYW5hZ2VyX3Y5LmMgYi9kcml2ZXJz L2dwdS9kcm0vYW1kL2FtZGtmZC9rZmRfbXFkX21hbmFnZXJfdjkuYw0KaW5kZXggODE4OTQ0Yi4u NTcyY2M2YSAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1ka2ZkL2tmZF9tcWRf bWFuYWdlcl92OS5jDQorKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGtmZC9rZmRfbXFkX21h bmFnZXJfdjkuYw0KQEAgLTc5LDkgKzc5LDYgQEAgc3RhdGljIHN0cnVjdCBrZmRfbWVtX29iaiAq YWxsb2NhdGVfbXFkKHN0cnVjdCBrZmRfZGV2ICprZmQsDQogCWludCByZXR2YWw7DQogCXN0cnVj dCBrZmRfbWVtX29iaiAqbXFkX21lbV9vYmogPSBOVUxMOw0KIA0KLQlpZiAocS0+dHlwZSA9PSBL RkRfUVVFVUVfVFlQRV9ISVEpDQotCQlyZXR1cm4gYWxsb2NhdGVfaGlxX21xZChrZmQpOw0KLQ0K IAkvKiBGcm9tIFY5LCAgZm9yIENXU1IsIHRoZSBjb250cm9sIHN0YWNrIGlzIGxvY2F0ZWQgb24g dGhlIG5leHQgcGFnZQ0KIAkgKiBib3VuZGFyeSBhZnRlciB0aGUgbXFkLCB3ZSB3aWxsIHVzZSB0 aGUgZ3R0IGFsbG9jYXRpb24gZnVuY3Rpb24NCiAJICogaW5zdGVhZCBvZiBzdWItYWxsb2NhdGlv biBmdW5jdGlvbi4NCkBAIC0xMTEsMjAgKzEwOCwxNSBAQCBzdGF0aWMgc3RydWN0IGtmZF9tZW1f b2JqICphbGxvY2F0ZV9tcWQoc3RydWN0IGtmZF9kZXYgKmtmZCwNCiB9DQogDQogc3RhdGljIGlu dCBpbml0X21xZChzdHJ1Y3QgbXFkX21hbmFnZXIgKm1tLCB2b2lkICoqbXFkLA0KLQkJCXN0cnVj dCBrZmRfbWVtX29iaiAqKm1xZF9tZW1fb2JqLCB1aW50NjRfdCAqZ2FydF9hZGRyLA0KKwkJCXN0 cnVjdCBrZmRfbWVtX29iaiAqbXFkX21lbV9vYmosIHVpbnQ2NF90ICpnYXJ0X2FkZHIsDQogCQkJ c3RydWN0IHF1ZXVlX3Byb3BlcnRpZXMgKnEpDQogew0KIAlpbnQgcmV0dmFsOw0KIAl1aW50NjRf dCBhZGRyOw0KIAlzdHJ1Y3QgdjlfbXFkICptOw0KLQlzdHJ1Y3Qga2ZkX2RldiAqa2ZkID0gbW0t PmRldjsNCiANCi0JKm1xZF9tZW1fb2JqID0gYWxsb2NhdGVfbXFkKGtmZCwgcSk7DQotCWlmICgh Km1xZF9tZW1fb2JqKQ0KLQkJcmV0dXJuIC1FTk9NRU07DQotDQotCW0gPSAoc3RydWN0IHY5X21x ZCAqKSAoKm1xZF9tZW1fb2JqKS0+Y3B1X3B0cjsNCi0JYWRkciA9ICgqbXFkX21lbV9vYmopLT5n cHVfYWRkcjsNCisJbSA9IChzdHJ1Y3QgdjlfbXFkICopIG1xZF9tZW1fb2JqLT5jcHVfcHRyOw0K KwlhZGRyID0gbXFkX21lbV9vYmotPmdwdV9hZGRyOw0KIA0KIAltZW1zZXQobSwgMCwgc2l6ZW9m KHN0cnVjdCB2OV9tcWQpKTsNCiANCkBAIC0zMTIsNyArMzA0LDcgQEAgc3RhdGljIGludCBnZXRf d2F2ZV9zdGF0ZShzdHJ1Y3QgbXFkX21hbmFnZXIgKm1tLCB2b2lkICptcWQsDQogfQ0KIA0KIHN0 YXRpYyBpbnQgaW5pdF9tcWRfaGlxKHN0cnVjdCBtcWRfbWFuYWdlciAqbW0sIHZvaWQgKiptcWQs DQotCQkJc3RydWN0IGtmZF9tZW1fb2JqICoqbXFkX21lbV9vYmosIHVpbnQ2NF90ICpnYXJ0X2Fk ZHIsDQorCQkJc3RydWN0IGtmZF9tZW1fb2JqICptcWRfbWVtX29iaiwgdWludDY0X3QgKmdhcnRf YWRkciwNCiAJCQlzdHJ1Y3QgcXVldWVfcHJvcGVydGllcyAqcSkNCiB7DQogCXN0cnVjdCB2OV9t cWQgKm07DQpAQCAtMzQ1LDI0ICszMzcsMTkgQEAgc3RhdGljIGludCB1cGRhdGVfbXFkX2hpcShz dHJ1Y3QgbXFkX21hbmFnZXIgKm1tLCB2b2lkICptcWQsDQogfQ0KIA0KIHN0YXRpYyBpbnQgaW5p dF9tcWRfc2RtYShzdHJ1Y3QgbXFkX21hbmFnZXIgKm1tLCB2b2lkICoqbXFkLA0KLQkJc3RydWN0 IGtmZF9tZW1fb2JqICoqbXFkX21lbV9vYmosIHVpbnQ2NF90ICpnYXJ0X2FkZHIsDQorCQlzdHJ1 Y3Qga2ZkX21lbV9vYmogKm1xZF9tZW1fb2JqLCB1aW50NjRfdCAqZ2FydF9hZGRyLA0KIAkJc3Ry dWN0IHF1ZXVlX3Byb3BlcnRpZXMgKnEpDQogew0KIAlpbnQgcmV0dmFsOw0KIAlzdHJ1Y3Qgdjlf c2RtYV9tcWQgKm07DQotCXN0cnVjdCBrZmRfZGV2ICpkZXYgPSBtbS0+ZGV2Ow0KLQ0KLQkqbXFk X21lbV9vYmogPSBhbGxvY2F0ZV9zZG1hX21xZChkZXYsIHEpOw0KLQlpZiAoISptcWRfbWVtX29i aikNCi0JCXJldHVybiAtRU5PTUVNOw0KIA0KLQltID0gKHN0cnVjdCB2OV9zZG1hX21xZCAqKSAo Km1xZF9tZW1fb2JqKS0+Y3B1X3B0cjsNCisJbSA9IChzdHJ1Y3Qgdjlfc2RtYV9tcWQgKikgbXFk X21lbV9vYmotPmNwdV9wdHI7DQogDQogCW1lbXNldChtLCAwLCBzaXplb2Yoc3RydWN0IHY5X3Nk bWFfbXFkKSk7DQogDQogCSptcWQgPSBtOw0KIAlpZiAoZ2FydF9hZGRyKQ0KLQkJKmdhcnRfYWRk ciA9ICgqbXFkX21lbV9vYmopLT5ncHVfYWRkcjsNCisJCSpnYXJ0X2FkZHIgPSBtcWRfbWVtX29i ai0+Z3B1X2FkZHI7DQogDQogCXJldHZhbCA9IG1tLT51cGRhdGVfbXFkKG1tLCBtLCBxKTsNCiAN CkBAIC00NjIsNiArNDQ5LDcgQEAgc3RydWN0IG1xZF9tYW5hZ2VyICptcWRfbWFuYWdlcl9pbml0 X3Y5KGVudW0gS0ZEX01RRF9UWVBFIHR5cGUsDQogCXN3aXRjaCAodHlwZSkgew0KIAljYXNlIEtG RF9NUURfVFlQRV9DUDoNCiAJY2FzZSBLRkRfTVFEX1RZUEVfQ09NUFVURToNCisJCW1xZC0+YWxs b2NhdGVfbXFkID0gYWxsb2NhdGVfbXFkOw0KIAkJbXFkLT5pbml0X21xZCA9IGluaXRfbXFkOw0K IAkJbXFkLT51bmluaXRfbXFkID0gdW5pbml0X21xZDsNCiAJCW1xZC0+bG9hZF9tcWQgPSBsb2Fk X21xZDsNCkBAIC00NzUsNiArNDYzLDcgQEAgc3RydWN0IG1xZF9tYW5hZ2VyICptcWRfbWFuYWdl cl9pbml0X3Y5KGVudW0gS0ZEX01RRF9UWVBFIHR5cGUsDQogI2VuZGlmDQogCQlicmVhazsNCiAJ Y2FzZSBLRkRfTVFEX1RZUEVfSElROg0KKwkJbXFkLT5hbGxvY2F0ZV9tcWQgPSBhbGxvY2F0ZV9o aXFfbXFkOw0KIAkJbXFkLT5pbml0X21xZCA9IGluaXRfbXFkX2hpcTsNCiAJCW1xZC0+dW5pbml0 X21xZCA9IHVuaW5pdF9tcWRfaGlxX3NkbWE7DQogCQltcWQtPmxvYWRfbXFkID0gbG9hZF9tcWQ7 DQpAQCAtNDg3LDYgKzQ3Niw3IEBAIHN0cnVjdCBtcWRfbWFuYWdlciAqbXFkX21hbmFnZXJfaW5p dF92OShlbnVtIEtGRF9NUURfVFlQRSB0eXBlLA0KICNlbmRpZg0KIAkJYnJlYWs7DQogCWNhc2Ug S0ZEX01RRF9UWVBFX0RJUToNCisJCW1xZC0+YWxsb2NhdGVfbXFkID0gYWxsb2NhdGVfaGlxX21x ZDsNCiAJCW1xZC0+aW5pdF9tcWQgPSBpbml0X21xZF9oaXE7DQogCQltcWQtPnVuaW5pdF9tcWQg PSB1bmluaXRfbXFkOw0KIAkJbXFkLT5sb2FkX21xZCA9IGxvYWRfbXFkOw0KQEAgLTQ5OSw2ICs0 ODksNyBAQCBzdHJ1Y3QgbXFkX21hbmFnZXIgKm1xZF9tYW5hZ2VyX2luaXRfdjkoZW51bSBLRkRf TVFEX1RZUEUgdHlwZSwNCiAjZW5kaWYNCiAJCWJyZWFrOw0KIAljYXNlIEtGRF9NUURfVFlQRV9T RE1BOg0KKwkJbXFkLT5hbGxvY2F0ZV9tcWQgPSBhbGxvY2F0ZV9zZG1hX21xZDsNCiAJCW1xZC0+ aW5pdF9tcWQgPSBpbml0X21xZF9zZG1hOw0KIAkJbXFkLT51bmluaXRfbXFkID0gdW5pbml0X21x ZF9oaXFfc2RtYTsNCiAJCW1xZC0+bG9hZF9tcWQgPSBsb2FkX21xZF9zZG1hOw0KZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1ka2ZkL2tmZF9tcWRfbWFuYWdlcl92aS5jIGIvZHJp dmVycy9ncHUvZHJtL2FtZC9hbWRrZmQva2ZkX21xZF9tYW5hZ2VyX3ZpLmMNCmluZGV4IDAwZTZh NTkuLjQzMTg5OWYgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGtmZC9rZmRf bXFkX21hbmFnZXJfdmkuYw0KKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRrZmQva2ZkX21x ZF9tYW5hZ2VyX3ZpLmMNCkBAIC04MCw5ICs4MCw2IEBAIHN0YXRpYyBzdHJ1Y3Qga2ZkX21lbV9v YmogKmFsbG9jYXRlX21xZChzdHJ1Y3Qga2ZkX2RldiAqa2ZkLA0KIHsNCiAJc3RydWN0IGtmZF9t ZW1fb2JqICptcWRfbWVtX29iajsNCiANCi0JaWYgKHEtPnR5cGUgPT0gS0ZEX1FVRVVFX1RZUEVf SElRKQ0KLQkJcmV0dXJuIGFsbG9jYXRlX2hpcV9tcWQoa2ZkKTsNCi0NCiAJaWYgKGtmZF9ndHRf c2FfYWxsb2NhdGUoa2ZkLCBzaXplb2Yoc3RydWN0IHZpX21xZCksDQogCQkJJm1xZF9tZW1fb2Jq KSkNCiAJCXJldHVybiBOVUxMOw0KQEAgLTkxLDIwICs4OCwxNSBAQCBzdGF0aWMgc3RydWN0IGtm ZF9tZW1fb2JqICphbGxvY2F0ZV9tcWQoc3RydWN0IGtmZF9kZXYgKmtmZCwNCiB9DQogDQogc3Rh dGljIGludCBpbml0X21xZChzdHJ1Y3QgbXFkX21hbmFnZXIgKm1tLCB2b2lkICoqbXFkLA0KLQkJ CXN0cnVjdCBrZmRfbWVtX29iaiAqKm1xZF9tZW1fb2JqLCB1aW50NjRfdCAqZ2FydF9hZGRyLA0K KwkJCXN0cnVjdCBrZmRfbWVtX29iaiAqbXFkX21lbV9vYmosIHVpbnQ2NF90ICpnYXJ0X2FkZHIs DQogCQkJc3RydWN0IHF1ZXVlX3Byb3BlcnRpZXMgKnEpDQogew0KIAlpbnQgcmV0dmFsOw0KIAl1 aW50NjRfdCBhZGRyOw0KIAlzdHJ1Y3QgdmlfbXFkICptOw0KLQlzdHJ1Y3Qga2ZkX2RldiAqa2Zk ID0gbW0tPmRldjsNCi0NCi0JKm1xZF9tZW1fb2JqID0gYWxsb2NhdGVfbXFkKGtmZCwgcSk7DQot CWlmICghKm1xZF9tZW1fb2JqKQ0KLQkJcmV0dXJuIC1FTk9NRU07DQogDQotCW0gPSAoc3RydWN0 IHZpX21xZCAqKSAoKm1xZF9tZW1fb2JqKS0+Y3B1X3B0cjsNCi0JYWRkciA9ICgqbXFkX21lbV9v YmopLT5ncHVfYWRkcjsNCisJbSA9IChzdHJ1Y3QgdmlfbXFkICopIG1xZF9tZW1fb2JqLT5jcHVf cHRyOw0KKwlhZGRyID0gbXFkX21lbV9vYmotPmdwdV9hZGRyOw0KIA0KIAltZW1zZXQobSwgMCwg c2l6ZW9mKHN0cnVjdCB2aV9tcWQpKTsNCiANCkBAIC0zMTAsNyArMzAyLDcgQEAgc3RhdGljIGlu dCBnZXRfd2F2ZV9zdGF0ZShzdHJ1Y3QgbXFkX21hbmFnZXIgKm1tLCB2b2lkICptcWQsDQogfQ0K IA0KIHN0YXRpYyBpbnQgaW5pdF9tcWRfaGlxKHN0cnVjdCBtcWRfbWFuYWdlciAqbW0sIHZvaWQg KiptcWQsDQotCQkJc3RydWN0IGtmZF9tZW1fb2JqICoqbXFkX21lbV9vYmosIHVpbnQ2NF90ICpn YXJ0X2FkZHIsDQorCQkJc3RydWN0IGtmZF9tZW1fb2JqICptcWRfbWVtX29iaiwgdWludDY0X3Qg KmdhcnRfYWRkciwNCiAJCQlzdHJ1Y3QgcXVldWVfcHJvcGVydGllcyAqcSkNCiB7DQogCXN0cnVj dCB2aV9tcWQgKm07DQpAQCAtMzQyLDI0ICszMzQsMTkgQEAgc3RhdGljIGludCB1cGRhdGVfbXFk X2hpcShzdHJ1Y3QgbXFkX21hbmFnZXIgKm1tLCB2b2lkICptcWQsDQogfQ0KIA0KIHN0YXRpYyBp bnQgaW5pdF9tcWRfc2RtYShzdHJ1Y3QgbXFkX21hbmFnZXIgKm1tLCB2b2lkICoqbXFkLA0KLQkJ c3RydWN0IGtmZF9tZW1fb2JqICoqbXFkX21lbV9vYmosIHVpbnQ2NF90ICpnYXJ0X2FkZHIsDQor CQlzdHJ1Y3Qga2ZkX21lbV9vYmogKm1xZF9tZW1fb2JqLCB1aW50NjRfdCAqZ2FydF9hZGRyLA0K IAkJc3RydWN0IHF1ZXVlX3Byb3BlcnRpZXMgKnEpDQogew0KIAlpbnQgcmV0dmFsOw0KIAlzdHJ1 Y3Qgdmlfc2RtYV9tcWQgKm07DQotCXN0cnVjdCBrZmRfZGV2ICpkZXYgPSBtbS0+ZGV2Ow0KLQ0K LQkqbXFkX21lbV9vYmogPSBhbGxvY2F0ZV9zZG1hX21xZChkZXYsIHEpOw0KLQlpZiAoISptcWRf bWVtX29iaikNCi0JCXJldHVybiAtRU5PTUVNOw0KIA0KLQltID0gKHN0cnVjdCB2aV9zZG1hX21x ZCAqKSAoKm1xZF9tZW1fb2JqKS0+Y3B1X3B0cjsNCisJbSA9IChzdHJ1Y3Qgdmlfc2RtYV9tcWQg KikgbXFkX21lbV9vYmotPmNwdV9wdHI7DQogDQogCW1lbXNldChtLCAwLCBzaXplb2Yoc3RydWN0 IHZpX3NkbWFfbXFkKSk7DQogDQogCSptcWQgPSBtOw0KIAlpZiAoZ2FydF9hZGRyKQ0KLQkJKmdh cnRfYWRkciA9ICgqbXFkX21lbV9vYmopLT5ncHVfYWRkcjsNCisJCSpnYXJ0X2FkZHIgPSBtcWRf bWVtX29iai0+Z3B1X2FkZHI7DQogDQogCXJldHZhbCA9IG1tLT51cGRhdGVfbXFkKG1tLCBtLCBx KTsNCiANCkBAIC00NTgsNiArNDQ1LDcgQEAgc3RydWN0IG1xZF9tYW5hZ2VyICptcWRfbWFuYWdl cl9pbml0X3ZpKGVudW0gS0ZEX01RRF9UWVBFIHR5cGUsDQogCXN3aXRjaCAodHlwZSkgew0KIAlj YXNlIEtGRF9NUURfVFlQRV9DUDoNCiAJY2FzZSBLRkRfTVFEX1RZUEVfQ09NUFVURToNCisJCW1x ZC0+YWxsb2NhdGVfbXFkID0gYWxsb2NhdGVfbXFkOw0KIAkJbXFkLT5pbml0X21xZCA9IGluaXRf bXFkOw0KIAkJbXFkLT51bmluaXRfbXFkID0gdW5pbml0X21xZDsNCiAJCW1xZC0+bG9hZF9tcWQg PSBsb2FkX21xZDsNCkBAIC00NzEsNiArNDU5LDcgQEAgc3RydWN0IG1xZF9tYW5hZ2VyICptcWRf bWFuYWdlcl9pbml0X3ZpKGVudW0gS0ZEX01RRF9UWVBFIHR5cGUsDQogI2VuZGlmDQogCQlicmVh azsNCiAJY2FzZSBLRkRfTVFEX1RZUEVfSElROg0KKwkJbXFkLT5hbGxvY2F0ZV9tcWQgPSBhbGxv Y2F0ZV9oaXFfbXFkOw0KIAkJbXFkLT5pbml0X21xZCA9IGluaXRfbXFkX2hpcTsNCiAJCW1xZC0+ dW5pbml0X21xZCA9IHVuaW5pdF9tcWRfaGlxX3NkbWE7DQogCQltcWQtPmxvYWRfbXFkID0gbG9h ZF9tcWQ7DQpAQCAtNDgzLDYgKzQ3Miw3IEBAIHN0cnVjdCBtcWRfbWFuYWdlciAqbXFkX21hbmFn ZXJfaW5pdF92aShlbnVtIEtGRF9NUURfVFlQRSB0eXBlLA0KICNlbmRpZg0KIAkJYnJlYWs7DQog CWNhc2UgS0ZEX01RRF9UWVBFX0RJUToNCisJCW1xZC0+YWxsb2NhdGVfbXFkID0gYWxsb2NhdGVf aGlxX21xZDsNCiAJCW1xZC0+aW5pdF9tcWQgPSBpbml0X21xZF9oaXE7DQogCQltcWQtPnVuaW5p dF9tcWQgPSB1bmluaXRfbXFkOw0KIAkJbXFkLT5sb2FkX21xZCA9IGxvYWRfbXFkOw0KQEAgLTQ5 NSw2ICs0ODUsNyBAQCBzdHJ1Y3QgbXFkX21hbmFnZXIgKm1xZF9tYW5hZ2VyX2luaXRfdmkoZW51 bSBLRkRfTVFEX1RZUEUgdHlwZSwNCiAjZW5kaWYNCiAJCWJyZWFrOw0KIAljYXNlIEtGRF9NUURf VFlQRV9TRE1BOg0KKwkJbXFkLT5hbGxvY2F0ZV9tcWQgPSBhbGxvY2F0ZV9zZG1hX21xZDsNCiAJ CW1xZC0+aW5pdF9tcWQgPSBpbml0X21xZF9zZG1hOw0KIAkJbXFkLT51bmluaXRfbXFkID0gdW5p bml0X21xZF9oaXFfc2RtYTsNCiAJCW1xZC0+bG9hZF9tcWQgPSBsb2FkX21xZF9zZG1hOw0KLS0g DQoyLjcuNA0KDQpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f XwphbWQtZ2Z4IG1haWxpbmcgbGlzdAphbWQtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRw czovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2FtZC1nZng=