From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Anders K. Pedersen | Cohaesio" Subject: [PATCH v4 libnftnl] introduce rt expression Date: Fri, 28 Oct 2016 05:55:33 +0000 Message-ID: <1477634132.1059.29.camel@cohaesio.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 To: "netfilter-devel@vger.kernel.org" , "pablo@netfilter.org" Return-path: Received: from bender.cohaesio.com ([212.97.128.130]:36828 "EHLO mail.cohaesio.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751795AbcJ1Fzh (ORCPT ); Fri, 28 Oct 2016 01:55:37 -0400 Content-Language: en-US Content-ID: Sender: netfilter-devel-owner@vger.kernel.org List-ID: RnJvbTogQW5kZXJzIEsuIFBlZGVyc2VuIDxha3BAY29oYWVzaW8uY29tPg0KDQpJbnRyb2R1Y2Ug c3VwcG9ydCBmb3IgcnQgZXhwcmVzc2lvbiBmb3Igcm91dGluZyByZWxhdGVkIGRhdGEgYXMgaW1w bGVtZW50ZWQNCmluIGtlcm5lbC4NCg0KU2lnbmVkLW9mZi1ieTogQW5kZXJzIEsuIFBlZGVyc2Vu IDxha3BAY29oYWVzaW8uY29tPg0KLS0tDQp2NA0KLSBkcm9wIE5GVEFfUlRfRkFNSUxZIGluIGZh dm9yIG9mIHNlcGFyYXRlIE5GVF9SVF9ORVhUSE9QNCBhbmQNCiAgTkZUX1JUX05FWFRIT1A2DQp2 Mw0KLSBubyBjaGFuZ2VzDQp2Mg0KLSBmaXggY29tbWVudHMgZm9yIGVudW0gbmZ0X3J0X2tleXMN Cg0KIGluY2x1ZGUvbGlibmZ0bmwvZXhwci5oICAgICAgICAgICAgIHwgIDEwICsrDQogaW5jbHVk ZS9saW51eC9uZXRmaWx0ZXIvbmZfdGFibGVzLmggfCAgMjcgKysrKw0KIHNyYy9NYWtlZmlsZS5h bSAgICAgICAgICAgICAgICAgICAgIHwgICAxICsNCiBzcmMvZXhwci9ydC5jICAgICAgICAgICAg ICAgICAgICAgICB8IDI0MyArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysNCiBz cmMvZXhwcl9vcHMuYyAgICAgICAgICAgICAgICAgICAgICB8ICAgMiArDQogNSBmaWxlcyBjaGFu Z2VkLCAyODMgaW5zZXJ0aW9ucygrKQ0KDQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saWJuZnRubC9l eHByLmggYi9pbmNsdWRlL2xpYm5mdG5sL2V4cHIuaA0KaW5kZXggZWRmODZhOS4uNjI0NTIwNyAx MDA2NDQNCi0tLSBhL2luY2x1ZGUvbGlibmZ0bmwvZXhwci5oDQorKysgYi9pbmNsdWRlL2xpYm5m dG5sL2V4cHIuaA0KQEAgLTY0LDYgKzY0LDExIEBAIGVudW0gew0KIH07DQogDQogZW51bSB7DQor CU5GVE5MX0VYUFJfUlRfS0VZCT0gTkZUTkxfRVhQUl9CQVNFLA0KKwlORlROTF9FWFBSX1JUX0RS RUcsDQorfTsNCisNCitlbnVtIHsNCiAJTkZUTkxfRVhQUl9DTVBfU1JFRwk9IE5GVE5MX0VYUFJf QkFTRSwNCiAJTkZUTkxfRVhQUl9DTVBfT1AsDQogCU5GVE5MX0VYUFJfQ01QX0RBVEEsDQpAQCAt MjcyLDYgKzI3NywxMSBAQCBlbnVtIHsNCiB9Ow0KIA0KIGVudW0gew0KKwlORlRfRVhQUl9SVF9L RVkJCT0gTkZUX1JVTEVfRVhQUl9BVFRSX0JBU0UsDQorCU5GVF9FWFBSX1JUX0RSRUcsDQorfTsN CisNCitlbnVtIHsNCiAJTkZUX0VYUFJfQ01QX1NSRUcJPSBORlRfUlVMRV9FWFBSX0FUVFJfQkFT RSwNCiAJTkZUX0VYUFJfQ01QX09QLA0KIAlORlRfRVhQUl9DTVBfREFUQSwNCmRpZmYgLS1naXQg YS9pbmNsdWRlL2xpbnV4L25ldGZpbHRlci9uZl90YWJsZXMuaCBiL2luY2x1ZGUvbGludXgvbmV0 ZmlsdGVyL25mX3RhYmxlcy5oDQppbmRleCAzMGUzYjIxLi5mMzk2MjkzIDEwMDY0NA0KLS0tIGEv aW5jbHVkZS9saW51eC9uZXRmaWx0ZXIvbmZfdGFibGVzLmgNCisrKyBiL2luY2x1ZGUvbGludXgv bmV0ZmlsdGVyL25mX3RhYmxlcy5oDQpAQCAtNzUzLDYgKzc1MywxOSBAQCBlbnVtIG5mdF9tZXRh X2tleXMgew0KIH07DQogDQogLyoqDQorICogZW51bSBuZnRfcnRfa2V5cyAtIG5mX3RhYmxlcyBy b3V0aW5nIGV4cHJlc3Npb24ga2V5cw0KKyAqDQorICogQE5GVF9SVF9DTEFTU0lEOiByZWFsbSB2 YWx1ZSBvZiBwYWNrZXQncyByb3V0ZSAoc2tiLT5kc3QtPnRjbGFzc2lkKQ0KKyAqIEBORlRfUlRf TkVYVEhPUDQ6IHJvdXRpbmcgbmV4dGhvcCBmb3IgSVB2NA0KKyAqIEBORlRfUlRfTkVYVEhPUDY6 IHJvdXRpbmcgbmV4dGhvcCBmb3IgSVB2Ng0KKyAqLw0KK2VudW0gbmZ0X3J0X2tleXMgew0KKwlO RlRfUlRfQ0xBU1NJRCwNCisJTkZUX1JUX05FWFRIT1A0LA0KKwlORlRfUlRfTkVYVEhPUDYsDQor fTsNCisNCisvKioNCiAgKiBlbnVtIG5mdF9oYXNoX2F0dHJpYnV0ZXMgLSBuZl90YWJsZXMgaGFz aCBleHByZXNzaW9uIG5ldGxpbmsgYXR0cmlidXRlcw0KICAqDQogICogQE5GVEFfSEFTSF9TUkVH OiBzb3VyY2UgcmVnaXN0ZXIgKE5MQV9VMzIpDQpAQCAtNzkxLDYgKzgwNCwyMCBAQCBlbnVtIG5m dF9tZXRhX2F0dHJpYnV0ZXMgew0KICNkZWZpbmUgTkZUQV9NRVRBX01BWAkJKF9fTkZUQV9NRVRB X01BWCAtIDEpDQogDQogLyoqDQorICogZW51bSBuZnRfcnRfYXR0cmlidXRlcyAtIG5mX3RhYmxl cyByb3V0aW5nIGV4cHJlc3Npb24gbmV0bGluayBhdHRyaWJ1dGVzDQorICoNCisgKiBATkZUQV9S VF9EUkVHOiBkZXN0aW5hdGlvbiByZWdpc3RlciAoTkxBX1UzMikNCisgKiBATkZUQV9SVF9LRVk6 IHJvdXRpbmcgZGF0YSBpdGVtIHRvIGxvYWQgKE5MQV9VMzI6IG5mdF9ydF9rZXlzKQ0KKyAqLw0K K2VudW0gbmZ0X3J0X2F0dHJpYnV0ZXMgew0KKwlORlRBX1JUX1VOU1BFQywNCisJTkZUQV9SVF9E UkVHLA0KKwlORlRBX1JUX0tFWSwNCisJX19ORlRBX1JUX01BWA0KK307DQorI2RlZmluZSBORlRB X1JUX01BWAkJKF9fTkZUQV9SVF9NQVggLSAxKQ0KKw0KKy8qKg0KICAqIGVudW0gbmZ0X2N0X2tl eXMgLSBuZl90YWJsZXMgY3QgZXhwcmVzc2lvbiBrZXlzDQogICoNCiAgKiBATkZUX0NUX1NUQVRF OiBjb25udHJhY2sgc3RhdGUgKGJpdG1hc2sgb2YgZW51bSBpcF9jb25udHJhY2tfaW5mbykNCmRp ZmYgLS1naXQgYS9zcmMvTWFrZWZpbGUuYW0gYi9zcmMvTWFrZWZpbGUuYW0NCmluZGV4IGVhYzdh NTYuLjRiMjU0NzAgMTAwNjQ0DQotLS0gYS9zcmMvTWFrZWZpbGUuYW0NCisrKyBiL3NyYy9NYWtl ZmlsZS5hbQ0KQEAgLTQ0LDYgKzQ0LDcgQEAgbGlibmZ0bmxfbGFfU09VUkNFUyA9IHV0aWxzLmMJ CVwNCiAJCSAgICAgIGV4cHIvcXVldWUuYwlcDQogCQkgICAgICBleHByL3F1b3RhLmMJXA0KIAkJ ICAgICAgZXhwci9yZWplY3QuYwlcDQorCQkgICAgICBleHByL3J0LmMJCVwNCiAJCSAgICAgIGV4 cHIvdGFyZ2V0LmMJXA0KIAkJICAgICAgZXhwci9tYXNxLmMJXA0KIAkJICAgICAgZXhwci9yZWRp ci5jCVwNCmRpZmYgLS1naXQgYS9zcmMvZXhwci9ydC5jIGIvc3JjL2V4cHIvcnQuYw0KbmV3IGZp bGUgbW9kZSAxMDA2NDQNCmluZGV4IDAwMDAwMDAuLjUwODhlNjYNCi0tLSAvZGV2L251bGwNCisr KyBiL3NyYy9leHByL3J0LmMNCkBAIC0wLDAgKzEsMjQzIEBADQorLyoNCisgKiBDb3B5cmlnaHQg KGMpIDIwMTYgQW5kZXJzIEsuIFBlZGVyc2VuIDxha3BAY29oYWVzaW8uY29tPg0KKyAqDQorICog VGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFu ZC9vciBtb2RpZnkNCisgKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1 YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZA0KKyAqIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5k YXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yDQorICogKGF0IHlvdXIg b3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4NCisgKi8NCisNCisjaW5jbHVkZSA8c3RkaW8uaD4N CisjaW5jbHVkZSA8c3RkaW50Lmg+DQorI2luY2x1ZGUgPHN0cmluZy5oPg0KKyNpbmNsdWRlIDxh cnBhL2luZXQuaD4NCisjaW5jbHVkZSA8ZXJybm8uaD4NCisjaW5jbHVkZSA8bGludXgvbmV0Zmls dGVyL25mX3RhYmxlcy5oPg0KKw0KKyNpbmNsdWRlICJpbnRlcm5hbC5oIg0KKyNpbmNsdWRlIDxs aWJtbmwvbGlibW5sLmg+DQorI2luY2x1ZGUgPGxpYm5mdG5sL2V4cHIuaD4NCisjaW5jbHVkZSA8 bGlibmZ0bmwvcnVsZS5oPg0KKw0KKyNpZm5kZWYgTkZUX1JUX01BWA0KKyNkZWZpbmUgTkZUX1JU X01BWCAoTkZUX1JUX05FWFRIT1A2ICsgMSkNCisjZW5kaWYNCisNCitzdHJ1Y3QgbmZ0bmxfZXhw cl9ydCB7DQorCWVudW0gbmZ0X3J0X2tleXMJa2V5Ow0KKwllbnVtIG5mdF9yZWdpc3RlcnMJZHJl ZzsNCit9Ow0KKw0KK3N0YXRpYyBpbnQNCituZnRubF9leHByX3J0X3NldChzdHJ1Y3QgbmZ0bmxf ZXhwciAqZSwgdWludDE2X3QgdHlwZSwNCisJCSAgICAgICBjb25zdCB2b2lkICpkYXRhLCB1aW50 MzJfdCBkYXRhX2xlbikNCit7DQorCXN0cnVjdCBuZnRubF9leHByX3J0ICpydCA9IG5mdG5sX2V4 cHJfZGF0YShlKTsNCisNCisJc3dpdGNoICh0eXBlKSB7DQorCWNhc2UgTkZUTkxfRVhQUl9SVF9L RVk6DQorCQlydC0+a2V5ID0gKigodWludDMyX3QgKilkYXRhKTsNCisJCWJyZWFrOw0KKwljYXNl IE5GVE5MX0VYUFJfUlRfRFJFRzoNCisJCXJ0LT5kcmVnID0gKigodWludDMyX3QgKilkYXRhKTsN CisJCWJyZWFrOw0KKwlkZWZhdWx0Og0KKwkJcmV0dXJuIC0xOw0KKwl9DQorCXJldHVybiAwOw0K K30NCisNCitzdGF0aWMgY29uc3Qgdm9pZCAqDQorbmZ0bmxfZXhwcl9ydF9nZXQoY29uc3Qgc3Ry dWN0IG5mdG5sX2V4cHIgKmUsIHVpbnQxNl90IHR5cGUsDQorCQkgICAgICAgdWludDMyX3QgKmRh dGFfbGVuKQ0KK3sNCisJc3RydWN0IG5mdG5sX2V4cHJfcnQgKnJ0ID0gbmZ0bmxfZXhwcl9kYXRh KGUpOw0KKw0KKwlzd2l0Y2ggKHR5cGUpIHsNCisJY2FzZSBORlROTF9FWFBSX1JUX0tFWToNCisJ CSpkYXRhX2xlbiA9IHNpemVvZihydC0+a2V5KTsNCisJCXJldHVybiAmcnQtPmtleTsNCisJY2Fz ZSBORlROTF9FWFBSX1JUX0RSRUc6DQorCQkqZGF0YV9sZW4gPSBzaXplb2YocnQtPmRyZWcpOw0K KwkJcmV0dXJuICZydC0+ZHJlZzsNCisJfQ0KKwlyZXR1cm4gTlVMTDsNCit9DQorDQorc3RhdGlj IGludCBuZnRubF9leHByX3J0X2NiKGNvbnN0IHN0cnVjdCBubGF0dHIgKmF0dHIsIHZvaWQgKmRh dGEpDQorew0KKwljb25zdCBzdHJ1Y3QgbmxhdHRyICoqdGIgPSBkYXRhOw0KKwlpbnQgdHlwZSA9 IG1ubF9hdHRyX2dldF90eXBlKGF0dHIpOw0KKw0KKwlpZiAobW5sX2F0dHJfdHlwZV92YWxpZChh dHRyLCBORlRBX1JUX01BWCkgPCAwKQ0KKwkJcmV0dXJuIE1OTF9DQl9PSzsNCisNCisJc3dpdGNo ICh0eXBlKSB7DQorCWNhc2UgTkZUQV9SVF9LRVk6DQorCWNhc2UgTkZUQV9SVF9EUkVHOg0KKwkJ aWYgKG1ubF9hdHRyX3ZhbGlkYXRlKGF0dHIsIE1OTF9UWVBFX1UzMikgPCAwKQ0KKwkJCWFiaV9i cmVha2FnZSgpOw0KKwkJYnJlYWs7DQorCX0NCisNCisJdGJbdHlwZV0gPSBhdHRyOw0KKwlyZXR1 cm4gTU5MX0NCX09LOw0KK30NCisNCitzdGF0aWMgdm9pZA0KK25mdG5sX2V4cHJfcnRfYnVpbGQo c3RydWN0IG5sbXNnaGRyICpubGgsIGNvbnN0IHN0cnVjdCBuZnRubF9leHByICplKQ0KK3sNCisJ c3RydWN0IG5mdG5sX2V4cHJfcnQgKnJ0ID0gbmZ0bmxfZXhwcl9kYXRhKGUpOw0KKw0KKwlpZiAo ZS0+ZmxhZ3MgJiAoMSA8PCBORlROTF9FWFBSX1JUX0tFWSkpDQorCQltbmxfYXR0cl9wdXRfdTMy KG5saCwgTkZUQV9SVF9LRVksIGh0b25sKHJ0LT5rZXkpKTsNCisJaWYgKGUtPmZsYWdzICYgKDEg PDwgTkZUTkxfRVhQUl9SVF9EUkVHKSkNCisJCW1ubF9hdHRyX3B1dF91MzIobmxoLCBORlRBX1JU X0RSRUcsIGh0b25sKHJ0LT5kcmVnKSk7DQorfQ0KKw0KK3N0YXRpYyBpbnQNCituZnRubF9leHBy X3J0X3BhcnNlKHN0cnVjdCBuZnRubF9leHByICplLCBzdHJ1Y3QgbmxhdHRyICphdHRyKQ0KK3sN CisJc3RydWN0IG5mdG5sX2V4cHJfcnQgKnJ0ID0gbmZ0bmxfZXhwcl9kYXRhKGUpOw0KKwlzdHJ1 Y3QgbmxhdHRyICp0YltORlRBX1JUX01BWCsxXSA9IHt9Ow0KKw0KKwlpZiAobW5sX2F0dHJfcGFy c2VfbmVzdGVkKGF0dHIsIG5mdG5sX2V4cHJfcnRfY2IsIHRiKSA8IDApDQorCQlyZXR1cm4gLTE7 DQorDQorCWlmICh0YltORlRBX1JUX0tFWV0pIHsNCisJCXJ0LT5rZXkgPSBudG9obChtbmxfYXR0 cl9nZXRfdTMyKHRiW05GVEFfUlRfS0VZXSkpOw0KKwkJZS0+ZmxhZ3MgfD0gKDEgPDwgTkZUTkxf RVhQUl9SVF9LRVkpOw0KKwl9DQorCWlmICh0YltORlRBX1JUX0RSRUddKSB7DQorCQlydC0+ZHJl ZyA9IG50b2hsKG1ubF9hdHRyX2dldF91MzIodGJbTkZUQV9SVF9EUkVHXSkpOw0KKwkJZS0+Zmxh Z3MgfD0gKDEgPDwgTkZUTkxfRVhQUl9SVF9EUkVHKTsNCisJfQ0KKw0KKwlyZXR1cm4gMDsNCit9 DQorDQorc3RhdGljIGNvbnN0IGNoYXIgKnJ0X2tleTJzdHJfYXJyYXlbTkZUX1JUX01BWF0gPSB7 DQorCVtORlRfUlRfQ0xBU1NJRF0JPSAiY2xhc3NpZCIsDQorCVtORlRfUlRfTkVYVEhPUDRdCT0g Im5leHRob3A0IiwNCisJW05GVF9SVF9ORVhUSE9QNl0JPSAibmV4dGhvcDYiLA0KK307DQorDQor c3RhdGljIGNvbnN0IGNoYXIgKnJ0X2tleTJzdHIodWludDhfdCBrZXkpDQorew0KKwlpZiAoa2V5 IDwgTkZUX1JUX01BWCkNCisJCXJldHVybiBydF9rZXkyc3RyX2FycmF5W2tleV07DQorDQorCXJl dHVybiAidW5rbm93biI7DQorfQ0KKw0KK3N0YXRpYyBpbmxpbmUgaW50IHN0cjJydF9rZXkoY29u c3QgY2hhciAqc3RyKQ0KK3sNCisJaW50IGk7DQorDQorCWZvciAoaSA9IDA7IGkgPCBORlRfUlRf TUFYOyBpKyspIHsNCisJCWlmIChzdHJjbXAoc3RyLCBydF9rZXkyc3RyX2FycmF5W2ldKSA9PSAw KQ0KKwkJCXJldHVybiBpOw0KKwl9DQorDQorCWVycm5vID0gRUlOVkFMOw0KKwlyZXR1cm4gLTE7 DQorfQ0KKw0KK3N0YXRpYyBpbnQgbmZ0bmxfZXhwcl9ydF9qc29uX3BhcnNlKHN0cnVjdCBuZnRu bF9leHByICplLCBqc29uX3QgKnJvb3QsDQorCQkJCSAgICBzdHJ1Y3QgbmZ0bmxfcGFyc2VfZXJy ICplcnIpDQorew0KKyNpZmRlZiBKU09OX1BBUlNJTkcNCisJY29uc3QgY2hhciAqdmFsX3N0cjsN CisJdWludDMyX3QgcmVnOw0KKwlpbnQgdmFsMzI7DQorDQorCXZhbF9zdHIgPSBuZnRubF9qYW5z c29uX3BhcnNlX3N0cihyb290LCAia2V5IiwgZXJyKTsNCisJaWYgKHZhbF9zdHIgIT0gTlVMTCkg ew0KKwkJdmFsMzIgPSBzdHIycnRfa2V5KHZhbF9zdHIpOw0KKwkJaWYgKHZhbDMyID49IDApDQor CQkJbmZ0bmxfZXhwcl9zZXRfdTMyKGUsIE5GVE5MX0VYUFJfUlRfS0VZLCB2YWwzMik7DQorCX0N CisNCisJaWYgKG5mdG5sX2phbnNzb25fbm9kZV9leGlzdChyb290LCAiZHJlZyIpKSB7DQorCQlp ZiAobmZ0bmxfamFuc3Nvbl9wYXJzZV9yZWcocm9vdCwgImRyZWciLCBORlROTF9UWVBFX1UzMiwg JnJlZywNCisJCQkJCSAgZXJyKSA9PSAwKQ0KKwkJCW5mdG5sX2V4cHJfc2V0X3UzMihlLCBORlRO TF9FWFBSX1JUX0RSRUcsIHJlZyk7DQorCX0NCisNCisJcmV0dXJuIDA7DQorI2Vsc2UNCisJZXJy bm8gPSBFT1BOT1RTVVBQOw0KKwlyZXR1cm4gLTE7DQorI2VuZGlmDQorfQ0KKw0KK3N0YXRpYyBp bnQNCituZnRubF9leHByX3J0X3NucHJpbnRmX2RlZmF1bHQoY2hhciAqYnVmLCBzaXplX3QgbGVu LA0KKwkJCSAgICAgICBjb25zdCBzdHJ1Y3QgbmZ0bmxfZXhwciAqZSkNCit7DQorCXN0cnVjdCBu ZnRubF9leHByX3J0ICpydCA9IG5mdG5sX2V4cHJfZGF0YShlKTsNCisNCisJaWYgKGUtPmZsYWdz ICYgKDEgPDwgTkZUTkxfRVhQUl9SVF9EUkVHKSkgew0KKwkJcmV0dXJuIHNucHJpbnRmKGJ1Ziwg bGVuLCAibG9hZCAlcyA9PiByZWcgJXUgIiwNCisJCQkJcnRfa2V5MnN0cihydC0+a2V5KSwgcnQt PmRyZWcpOw0KKwl9DQorCXJldHVybiAwOw0KK30NCisNCitzdGF0aWMgaW50IG5mdG5sX2V4cHJf cnRfZXhwb3J0KGNoYXIgKmJ1Ziwgc2l6ZV90IHNpemUsDQorCQkJCSAgY29uc3Qgc3RydWN0IG5m dG5sX2V4cHIgKmUsIGludCB0eXBlKQ0KK3sNCisJc3RydWN0IG5mdG5sX2V4cHJfcnQgKnJ0ID0g bmZ0bmxfZXhwcl9kYXRhKGUpOw0KKwlORlROTF9CVUZfSU5JVChiLCBidWYsIHNpemUpOw0KKw0K KwlpZiAoZS0+ZmxhZ3MgJiAoMSA8PCBORlROTF9FWFBSX1JUX0RSRUcpKQ0KKwkJbmZ0bmxfYnVm X3UzMigmYiwgdHlwZSwgcnQtPmRyZWcsIERSRUcpOw0KKwlpZiAoZS0+ZmxhZ3MgJiAoMSA8PCBO RlROTF9FWFBSX1JUX0tFWSkpDQorCQluZnRubF9idWZfc3RyKCZiLCB0eXBlLCBydF9rZXkyc3Ry KHJ0LT5rZXkpLCBLRVkpOw0KKw0KKwlyZXR1cm4gbmZ0bmxfYnVmX2RvbmUoJmIpOw0KK30NCisN CitzdGF0aWMgaW50DQorbmZ0bmxfZXhwcl9ydF9zbnByaW50ZihjaGFyICpidWYsIHNpemVfdCBs ZW4sIHVpbnQzMl90IHR5cGUsDQorCQkgICAgICAgdWludDMyX3QgZmxhZ3MsIGNvbnN0IHN0cnVj dCBuZnRubF9leHByICplKQ0KK3sNCisJc3dpdGNoICh0eXBlKSB7DQorCWNhc2UgTkZUTkxfT1VU UFVUX0RFRkFVTFQ6DQorCQlyZXR1cm4gbmZ0bmxfZXhwcl9ydF9zbnByaW50Zl9kZWZhdWx0KGJ1 ZiwgbGVuLCBlKTsNCisJY2FzZSBORlROTF9PVVRQVVRfWE1MOg0KKwljYXNlIE5GVE5MX09VVFBV VF9KU09OOg0KKwkJcmV0dXJuIG5mdG5sX2V4cHJfcnRfZXhwb3J0KGJ1ZiwgbGVuLCBlLCB0eXBl KTsNCisJZGVmYXVsdDoNCisJCWJyZWFrOw0KKwl9DQorCXJldHVybiAtMTsNCit9DQorDQorc3Rh dGljIGJvb2wgbmZ0bmxfZXhwcl9ydF9jbXAoY29uc3Qgc3RydWN0IG5mdG5sX2V4cHIgKmUxLA0K KwkJCSAgICAgIGNvbnN0IHN0cnVjdCBuZnRubF9leHByICplMikNCit7DQorCXN0cnVjdCBuZnRu bF9leHByX3J0ICpyMSA9IG5mdG5sX2V4cHJfZGF0YShlMSk7DQorCXN0cnVjdCBuZnRubF9leHBy X3J0ICpyMiA9IG5mdG5sX2V4cHJfZGF0YShlMik7DQorCWJvb2wgZXEgPSB0cnVlOw0KKw0KKwlp ZiAoZTEtPmZsYWdzICYgKDEgPDwgTkZUTkxfRVhQUl9SVF9LRVkpKQ0KKwkJZXEgJj0gKHIxLT5r ZXkgPT0gcjItPmtleSk7DQorCWlmIChlMS0+ZmxhZ3MgJiAoMSA8PCBORlROTF9FWFBSX1JUX0RS RUcpKQ0KKwkJZXEgJj0gKHIxLT5kcmVnID09IHIyLT5kcmVnKTsNCisNCisJcmV0dXJuIGVxOw0K K30NCisNCitzdHJ1Y3QgZXhwcl9vcHMgZXhwcl9vcHNfcnQgPSB7DQorCS5uYW1lCQk9ICJydCIs DQorCS5hbGxvY19sZW4JPSBzaXplb2Yoc3RydWN0IG5mdG5sX2V4cHJfcnQpLA0KKwkubWF4X2F0 dHIJPSBORlRBX1JUX01BWCwNCisJLmNtcAkJPSBuZnRubF9leHByX3J0X2NtcCwNCisJLnNldAkJ PSBuZnRubF9leHByX3J0X3NldCwNCisJLmdldAkJPSBuZnRubF9leHByX3J0X2dldCwNCisJLnBh cnNlCQk9IG5mdG5sX2V4cHJfcnRfcGFyc2UsDQorCS5idWlsZAkJPSBuZnRubF9leHByX3J0X2J1 aWxkLA0KKwkuc25wcmludGYJPSBuZnRubF9leHByX3J0X3NucHJpbnRmLA0KKwkuanNvbl9wYXJz ZQk9IG5mdG5sX2V4cHJfcnRfanNvbl9wYXJzZSwNCit9Ow0KZGlmZiAtLWdpdCBhL3NyYy9leHBy X29wcy5jIGIvc3JjL2V4cHJfb3BzLmMNCmluZGV4IDk2YjFmOGQuLmEyZGU5Y2QgMTAwNjQ0DQot LS0gYS9zcmMvZXhwcl9vcHMuYw0KKysrIGIvc3JjL2V4cHJfb3BzLmMNCkBAIC0yNSw2ICsyNSw3 IEBAIGV4dGVybiBzdHJ1Y3QgZXhwcl9vcHMgZXhwcl9vcHNfcGF5bG9hZDsNCiBleHRlcm4gc3Ry dWN0IGV4cHJfb3BzIGV4cHJfb3BzX3JhbmdlOw0KIGV4dGVybiBzdHJ1Y3QgZXhwcl9vcHMgZXhw cl9vcHNfcmVkaXI7DQogZXh0ZXJuIHN0cnVjdCBleHByX29wcyBleHByX29wc19yZWplY3Q7DQor ZXh0ZXJuIHN0cnVjdCBleHByX29wcyBleHByX29wc19ydDsNCiBleHRlcm4gc3RydWN0IGV4cHJf b3BzIGV4cHJfb3BzX3F1ZXVlOw0KIGV4dGVybiBzdHJ1Y3QgZXhwcl9vcHMgZXhwcl9vcHNfcXVv dGE7DQogZXh0ZXJuIHN0cnVjdCBleHByX29wcyBleHByX29wc190YXJnZXQ7DQpAQCAtNTgsNiAr NTksNyBAQCBzdGF0aWMgc3RydWN0IGV4cHJfb3BzICpleHByX29wc1tdID0gew0KIAkmZXhwcl9v cHNfcmFuZ2UsDQogCSZleHByX29wc19yZWRpciwNCiAJJmV4cHJfb3BzX3JlamVjdCwNCisJJmV4 cHJfb3BzX3J0LA0KIAkmZXhwcl9vcHNfcXVldWUsDQogCSZleHByX29wc19xdW90YSwNCiAJJmV4 cHJfb3BzX3RhcmdldCwNCg==