From mboxrd@z Thu Jan 1 00:00:00 1970 From: Saeed Mahameed Subject: [PATCH mlx5-next 6/6] {IB,net}/mlx5: Constify rep ops functions pointers Date: Wed, 29 May 2019 22:50:41 +0000 Message-ID: <20190529224949.18194-7-saeedm@mellanox.com> References: <20190529224949.18194-1-saeedm@mellanox.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20190529224949.18194-1-saeedm@mellanox.com> Content-Language: en-US Sender: netdev-owner@vger.kernel.org To: Saeed Mahameed , Leon Romanovsky Cc: "netdev@vger.kernel.org" , "linux-rdma@vger.kernel.org" , Parav Pandit , Mark Bloch List-Id: linux-rdma@vger.kernel.org RnJvbTogUGFyYXYgUGFuZGl0IDxwYXJhdkBtZWxsYW5veC5jb20+DQoNCkN1cnJlbnRseSBmb3Ig ZXZlcnkgcmVwcmVzZW50b3IgdHlwZSBhbmQgZm9yIGV2ZXJ5IHNpbmdsZSB2cG9ydCwNCnJlcHJl c2VudGVyIGZ1bmN0aW9uIHBvaW50ZXJzIGNvcHkgaXMgc3RvcmVkIGV2ZW4gdGhvdWdoIHRoZXkg ZG9uJ3QNCmNoYW5nZSBmcm9tIG9uZSB0byBvdGhlciB2cG9ydC4NCg0KQWRkaXRpb25hbGx5IHBy aXYgZGF0YSBlbnRyeSBmb3IgdGhlIHJlcCBpcyBub3QgcGFzc2VkIGR1cmluZw0KcmVnaXN0cmF0 aW9uLCBidXQgaXRzIGNvcGllZC4gSXQgaXMgdXNlZCAoc2V0IGFuZCBjbGVhcmVkKSBieSB0aGUg dXNlcg0Kb2YgdGhlIHJlcHMuDQoNCkFzIHdlIHdhbnQgdG8gc2NhbGUgdnBvcnRzLCB0byBzaW1w bGlmeSBhbmQgYWxzbyB0byBzcGxpdCBjb25zdGFudHMNCmZyb20gZGF0YSwNCg0KMS4gUmVuYW1l IG1seDVfZXN3aXRjaF9yZXBfaWYgdG8gbWx4NV9lc3dpdGNoX3JlcF9vcHMgYXMgdG8gbWF0Y2gg X29wcw0KcHJlZml4IHdpdGggb3RoZXIgc3RhbmRhcmQgbmV0ZGV2LCBpYmRldiBvcHMuDQoyLiBD b25zdGlmeSB0aGUgSUIgYW5kIEV0aGVybmV0IHJlcCBvcHMgc3RydWN0dXJlLg0KMy4gSW5zdGVh ZCBvZiBzdG9yaW5nIGNvcHkgb2YgYWxsIHJlcCBmdW5jdGlvbiBwb2ludGVycywgc3RvcmUgY29w eQ0KcGVyIGVzd2l0Y2ggcmVwIHR5cGUuDQo0LiBTcGxpdCBkYXRhIGFuZCBmdW5jdGlvbiBwb2lu dGVycyB0byBtbHg1X2Vzd2l0Y2hfcmVwX29wcyBhbmQNCm1seDVfZXN3aXRjaF9yZXBfZGF0YS4N Cg0KU2lnbmVkLW9mZi1ieTogUGFyYXYgUGFuZGl0IDxwYXJhdkBtZWxsYW5veC5jb20+DQpSZXZp ZXdlZC1ieTogTWFyayBCbG9jaCA8bWFya2JAbWVsbGFub3guY29tPg0KU2lnbmVkLW9mZi1ieTog U2FlZWQgTWFoYW1lZWQgPHNhZWVkbUBtZWxsYW5veC5jb20+DQotLS0NCiBkcml2ZXJzL2luZmlu aWJhbmQvaHcvbWx4NS9pYl9yZXAuYyAgICAgICAgICAgfCAxOSArKysrKy0tLS0tDQogZHJpdmVy cy9pbmZpbmliYW5kL2h3L21seDUvaWJfcmVwLmggICAgICAgICAgIHwgIDIgKy0NCiAuLi4vbmV0 L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9yZXAuYyAgfCAxNSArKysrLS0tLQ0KIC4u Li9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX3JlcC5oICB8ICAyICstDQogLi4u L25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZXN3aXRjaC5oIHwgIDEgKw0KIC4uLi9t ZWxsYW5veC9tbHg1L2NvcmUvZXN3aXRjaF9vZmZsb2Fkcy5jICAgICB8IDM4ICsrKysrKysrKy0t LS0tLS0tLS0NCiBpbmNsdWRlL2xpbnV4L21seDUvZXN3aXRjaC5oICAgICAgICAgICAgICAgICAg fCAyMCArKysrKy0tLS0tDQogNyBmaWxlcyBjaGFuZ2VkLCA0OSBpbnNlcnRpb25zKCspLCA0OCBk ZWxldGlvbnMoLSkNCg0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5maW5pYmFuZC9ody9tbHg1L2li X3JlcC5jIGIvZHJpdmVycy9pbmZpbmliYW5kL2h3L21seDUvaWJfcmVwLmMNCmluZGV4IGNiY2M0 MGQ3NzZiOS4uMjJlNjUxY2I1NTM0IDEwMDY0NA0KLS0tIGEvZHJpdmVycy9pbmZpbmliYW5kL2h3 L21seDUvaWJfcmVwLmMNCisrKyBiL2RyaXZlcnMvaW5maW5pYmFuZC9ody9tbHg1L2liX3JlcC5j DQpAQCAtNjAsNyArNjAsNyBAQCBtbHg1X2liX3Zwb3J0X3JlcF9sb2FkKHN0cnVjdCBtbHg1X2Nv cmVfZGV2ICpkZXYsIHN0cnVjdCBtbHg1X2Vzd2l0Y2hfcmVwICpyZXApDQogCWlmICghX19tbHg1 X2liX2FkZChpYmRldiwgcHJvZmlsZSkpDQogCQlyZXR1cm4gLUVJTlZBTDsNCiANCi0JcmVwLT5y ZXBfaWZbUkVQX0lCXS5wcml2ID0gaWJkZXY7DQorCXJlcC0+cmVwX2RhdGFbUkVQX0lCXS5wcml2 ID0gaWJkZXY7DQogDQogCXJldHVybiAwOw0KIH0NCkBAIC03MCwxMyArNzAsMTMgQEAgbWx4NV9p Yl92cG9ydF9yZXBfdW5sb2FkKHN0cnVjdCBtbHg1X2Vzd2l0Y2hfcmVwICpyZXApDQogew0KIAlz dHJ1Y3QgbWx4NV9pYl9kZXYgKmRldjsNCiANCi0JaWYgKCFyZXAtPnJlcF9pZltSRVBfSUJdLnBy aXYgfHwNCisJaWYgKCFyZXAtPnJlcF9kYXRhW1JFUF9JQl0ucHJpdiB8fA0KIAkgICAgcmVwLT52 cG9ydCAhPSBNTFg1X1ZQT1JUX1VQTElOSykNCiAJCXJldHVybjsNCiANCiAJZGV2ID0gbWx4NV9p Yl9yZXBfdG9fZGV2KHJlcCk7DQogCV9fbWx4NV9pYl9yZW1vdmUoZGV2LCBkZXYtPnByb2ZpbGUs IE1MWDVfSUJfU1RBR0VfTUFYKTsNCi0JcmVwLT5yZXBfaWZbUkVQX0lCXS5wcml2ID0gTlVMTDsN CisJcmVwLT5yZXBfZGF0YVtSRVBfSUJdLnByaXYgPSBOVUxMOw0KIH0NCiANCiBzdGF0aWMgdm9p ZCAqbWx4NV9pYl92cG9ydF9nZXRfcHJvdG9fZGV2KHN0cnVjdCBtbHg1X2Vzd2l0Y2hfcmVwICpy ZXApDQpAQCAtODQsMTYgKzg0LDE3IEBAIHN0YXRpYyB2b2lkICptbHg1X2liX3Zwb3J0X2dldF9w cm90b19kZXYoc3RydWN0IG1seDVfZXN3aXRjaF9yZXAgKnJlcCkNCiAJcmV0dXJuIG1seDVfaWJf cmVwX3RvX2RldihyZXApOw0KIH0NCiANCitzdGF0aWMgY29uc3Qgc3RydWN0IG1seDVfZXN3aXRj aF9yZXBfb3BzIHJlcF9vcHMgPSB7DQorCS5sb2FkID0gbWx4NV9pYl92cG9ydF9yZXBfbG9hZCwN CisJLnVubG9hZCA9IG1seDVfaWJfdnBvcnRfcmVwX3VubG9hZCwNCisJLmdldF9wcm90b19kZXYg PSBtbHg1X2liX3Zwb3J0X2dldF9wcm90b19kZXYsDQorfTsNCisNCiB2b2lkIG1seDVfaWJfcmVn aXN0ZXJfdnBvcnRfcmVwcyhzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqbWRldikNCiB7DQogCXN0cnVj dCBtbHg1X2Vzd2l0Y2ggKmVzdyA9IG1kZXYtPnByaXYuZXN3aXRjaDsNCi0Jc3RydWN0IG1seDVf ZXN3aXRjaF9yZXBfaWYgcmVwX2lmID0ge307DQotDQotCXJlcF9pZi5sb2FkID0gbWx4NV9pYl92 cG9ydF9yZXBfbG9hZDsNCi0JcmVwX2lmLnVubG9hZCA9IG1seDVfaWJfdnBvcnRfcmVwX3VubG9h ZDsNCi0JcmVwX2lmLmdldF9wcm90b19kZXYgPSBtbHg1X2liX3Zwb3J0X2dldF9wcm90b19kZXY7 DQogDQotCW1seDVfZXN3aXRjaF9yZWdpc3Rlcl92cG9ydF9yZXBzKGVzdywgJnJlcF9pZiwgUkVQ X0lCKTsNCisJbWx4NV9lc3dpdGNoX3JlZ2lzdGVyX3Zwb3J0X3JlcHMoZXN3LCAmcmVwX29wcywg UkVQX0lCKTsNCiB9DQogDQogdm9pZCBtbHg1X2liX3VucmVnaXN0ZXJfdnBvcnRfcmVwcyhzdHJ1 Y3QgbWx4NV9jb3JlX2RldiAqbWRldikNCmRpZmYgLS1naXQgYS9kcml2ZXJzL2luZmluaWJhbmQv aHcvbWx4NS9pYl9yZXAuaCBiL2RyaXZlcnMvaW5maW5pYmFuZC9ody9tbHg1L2liX3JlcC5oDQpp bmRleCBjOTk1MTAyYjAyNzYuLjIyYWRjZTJkNjc5NSAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvaW5m aW5pYmFuZC9ody9tbHg1L2liX3JlcC5oDQorKysgYi9kcml2ZXJzL2luZmluaWJhbmQvaHcvbWx4 NS9pYl9yZXAuaA0KQEAgLTcyLDYgKzcyLDYgQEAgc3RydWN0IG5ldF9kZXZpY2UgKm1seDVfaWJf Z2V0X3JlcF9uZXRkZXYoc3RydWN0IG1seDVfZXN3aXRjaCAqZXN3LA0KIHN0YXRpYyBpbmxpbmUN CiBzdHJ1Y3QgbWx4NV9pYl9kZXYgKm1seDVfaWJfcmVwX3RvX2RldihzdHJ1Y3QgbWx4NV9lc3dp dGNoX3JlcCAqcmVwKQ0KIHsNCi0JcmV0dXJuIHJlcC0+cmVwX2lmW1JFUF9JQl0ucHJpdjsNCisJ cmV0dXJuIHJlcC0+cmVwX2RhdGFbUkVQX0lCXS5wcml2Ow0KIH0NCiAjZW5kaWYgLyogX19NTFg1 X0lCX1JFUF9IX18gKi8NCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5v eC9tbHg1L2NvcmUvZW5fcmVwLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1 L2NvcmUvZW5fcmVwLmMNCmluZGV4IDkxZTI0ZjFjZWFkOC4uMzNmOGY5OTY4MWE1IDEwMDY0NA0K LS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX3JlcC5jDQor KysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fcmVwLmMNCkBA IC0xNzUyLDcgKzE3NTIsNyBAQCBtbHg1ZV92cG9ydF9yZXBfbG9hZChzdHJ1Y3QgbWx4NV9jb3Jl X2RldiAqZGV2LCBzdHJ1Y3QgbWx4NV9lc3dpdGNoX3JlcCAqcmVwKQ0KIAl9DQogDQogCXJwcml2 LT5uZXRkZXYgPSBuZXRkZXY7DQotCXJlcC0+cmVwX2lmW1JFUF9FVEhdLnByaXYgPSBycHJpdjsN CisJcmVwLT5yZXBfZGF0YVtSRVBfRVRIXS5wcml2ID0gcnByaXY7DQogCUlOSVRfTElTVF9IRUFE KCZycHJpdi0+dnBvcnRfc3FzX2xpc3QpOw0KIA0KIAlpZiAocmVwLT52cG9ydCA9PSBNTFg1X1ZQ T1JUX1VQTElOSykgew0KQEAgLTE4MjYsMTYgKzE4MjYsMTcgQEAgc3RhdGljIHZvaWQgKm1seDVl X3Zwb3J0X3JlcF9nZXRfcHJvdG9fZGV2KHN0cnVjdCBtbHg1X2Vzd2l0Y2hfcmVwICpyZXApDQog CXJldHVybiBycHJpdi0+bmV0ZGV2Ow0KIH0NCiANCitzdGF0aWMgY29uc3Qgc3RydWN0IG1seDVf ZXN3aXRjaF9yZXBfb3BzIHJlcF9vcHMgPSB7DQorCS5sb2FkID0gbWx4NWVfdnBvcnRfcmVwX2xv YWQsDQorCS51bmxvYWQgPSBtbHg1ZV92cG9ydF9yZXBfdW5sb2FkLA0KKwkuZ2V0X3Byb3RvX2Rl diA9IG1seDVlX3Zwb3J0X3JlcF9nZXRfcHJvdG9fZGV2DQorfTsNCisNCiB2b2lkIG1seDVlX3Jl cF9yZWdpc3Rlcl92cG9ydF9yZXBzKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICptZGV2KQ0KIHsNCiAJ c3RydWN0IG1seDVfZXN3aXRjaCAqZXN3ID0gbWRldi0+cHJpdi5lc3dpdGNoOw0KLQlzdHJ1Y3Qg bWx4NV9lc3dpdGNoX3JlcF9pZiByZXBfaWYgPSB7fTsNCi0NCi0JcmVwX2lmLmxvYWQgPSBtbHg1 ZV92cG9ydF9yZXBfbG9hZDsNCi0JcmVwX2lmLnVubG9hZCA9IG1seDVlX3Zwb3J0X3JlcF91bmxv YWQ7DQotCXJlcF9pZi5nZXRfcHJvdG9fZGV2ID0gbWx4NWVfdnBvcnRfcmVwX2dldF9wcm90b19k ZXY7DQogDQotCW1seDVfZXN3aXRjaF9yZWdpc3Rlcl92cG9ydF9yZXBzKGVzdywgJnJlcF9pZiwg UkVQX0VUSCk7DQorCW1seDVfZXN3aXRjaF9yZWdpc3Rlcl92cG9ydF9yZXBzKGVzdywgJnJlcF9v cHMsIFJFUF9FVEgpOw0KIH0NCiANCiB2b2lkIG1seDVlX3JlcF91bnJlZ2lzdGVyX3Zwb3J0X3Jl cHMoc3RydWN0IG1seDVfY29yZV9kZXYgKm1kZXYpDQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQv ZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX3JlcC5oIGIvZHJpdmVycy9uZXQvZXRoZXJu ZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX3JlcC5oDQppbmRleCBjNDBjMDI1YWZkOTkuLmUzNDU3 M2ZkODhjMSAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUv Y29yZS9lbl9yZXAuaA0KKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9j b3JlL2VuX3JlcC5oDQpAQCAtOTEsNyArOTEsNyBAQCBzdHJ1Y3QgbWx4NWVfcmVwX3ByaXYgew0K IHN0YXRpYyBpbmxpbmUNCiBzdHJ1Y3QgbWx4NWVfcmVwX3ByaXYgKm1seDVlX3JlcF90b19yZXBf cHJpdihzdHJ1Y3QgbWx4NV9lc3dpdGNoX3JlcCAqcmVwKQ0KIHsNCi0JcmV0dXJuIHJlcC0+cmVw X2lmW1JFUF9FVEhdLnByaXY7DQorCXJldHVybiByZXAtPnJlcF9kYXRhW1JFUF9FVEhdLnByaXY7 DQogfQ0KIA0KIHN0cnVjdCBtbHg1ZV9uZWlnaCB7DQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQv ZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2Vzd2l0Y2guaCBiL2RyaXZlcnMvbmV0L2V0aGVy bmV0L21lbGxhbm94L21seDUvY29yZS9lc3dpdGNoLmgNCmluZGV4IGI1MjQ4MTNjY2NhYy4uMTM1 ZDlhMjliYmRmIDEwMDY0NA0KLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4 NS9jb3JlL2Vzd2l0Y2guaA0KKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4 NS9jb3JlL2Vzd2l0Y2guaA0KQEAgLTE3Myw2ICsxNzMsNyBAQCBzdHJ1Y3QgbWx4NV9lc3dfb2Zm bG9hZCB7DQogCXN0cnVjdCBtdXRleCBwZWVyX211dGV4Ow0KIAlERUNMQVJFX0hBU0hUQUJMRShl bmNhcF90YmwsIDgpOw0KIAlERUNMQVJFX0hBU0hUQUJMRShtb2RfaGRyX3RibCwgOCk7DQorCWNv bnN0IHN0cnVjdCBtbHg1X2Vzd2l0Y2hfcmVwX29wcyAqcmVwX29wc1tOVU1fUkVQX1RZUEVTXTsN CiAJdTggaW5saW5lX21vZGU7DQogCXU2NCBudW1fZmxvd3M7DQogCXU4IGVuY2FwOw0KZGlmZiAt LWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lc3dpdGNoX29m ZmxvYWRzLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZXN3aXRj aF9vZmZsb2Fkcy5jDQppbmRleCAwNWNiMmZmZmQ4ODcuLmQ2MjQ2ZWUwNDJmYSAxMDA2NDQNCi0t LSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lc3dpdGNoX29mZmxv YWRzLmMNCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lc3dp dGNoX29mZmxvYWRzLmMNCkBAIC0zMzIsNyArMzMyLDcgQEAgc3RhdGljIGludCBlc3dfc2V0X2ds b2JhbF92bGFuX3BvcChzdHJ1Y3QgbWx4NV9lc3dpdGNoICplc3csIHU4IHZhbCkNCiAJZXN3X2Rl YnVnKGVzdy0+ZGV2LCAiJXMgYXBwbHlpbmcgZ2xvYmFsICVzIHBvbGljeVxuIiwgX19mdW5jX18s IHZhbCA/ICJwb3AiIDogIm5vbmUiKTsNCiAJZm9yICh2Zl92cG9ydCA9IDE7IHZmX3Zwb3J0IDwg ZXN3LT5lbmFibGVkX3Zwb3J0czsgdmZfdnBvcnQrKykgew0KIAkJcmVwID0gJmVzdy0+b2ZmbG9h ZHMudnBvcnRfcmVwc1t2Zl92cG9ydF07DQotCQlpZiAoYXRvbWljX3JlYWQoJnJlcC0+cmVwX2lm W1JFUF9FVEhdLnN0YXRlKSAhPSBSRVBfTE9BREVEKQ0KKwkJaWYgKGF0b21pY19yZWFkKCZyZXAt PnJlcF9kYXRhW1JFUF9FVEhdLnN0YXRlKSAhPSBSRVBfTE9BREVEKQ0KIAkJCWNvbnRpbnVlOw0K IA0KIAkJZXJyID0gX19tbHg1X2Vzd2l0Y2hfc2V0X3Zwb3J0X3ZsYW4oZXN3LCByZXAtPnZwb3J0 LCAwLCAwLCB2YWwpOw0KQEAgLTEyNzYsNyArMTI3Niw3IEBAIGludCBlc3dfb2ZmbG9hZHNfaW5p dF9yZXBzKHN0cnVjdCBtbHg1X2Vzd2l0Y2ggKmVzdykNCiAJCWV0aGVyX2FkZHJfY29weShyZXAt Pmh3X2lkLCBod19pZCk7DQogDQogCQlmb3IgKHJlcF90eXBlID0gMDsgcmVwX3R5cGUgPCBOVU1f UkVQX1RZUEVTOyByZXBfdHlwZSsrKQ0KLQkJCWF0b21pY19zZXQoJnJlcC0+cmVwX2lmW3JlcF90 eXBlXS5zdGF0ZSwNCisJCQlhdG9taWNfc2V0KCZyZXAtPnJlcF9kYXRhW3JlcF90eXBlXS5zdGF0 ZSwNCiAJCQkJICAgUkVQX1VOUkVHSVNURVJFRCk7DQogCX0NCiANCkBAIC0xMjg2LDkgKzEyODYs OSBAQCBpbnQgZXN3X29mZmxvYWRzX2luaXRfcmVwcyhzdHJ1Y3QgbWx4NV9lc3dpdGNoICplc3cp DQogc3RhdGljIHZvaWQgX19lc3dfb2ZmbG9hZHNfdW5sb2FkX3JlcChzdHJ1Y3QgbWx4NV9lc3dp dGNoICplc3csDQogCQkJCSAgICAgIHN0cnVjdCBtbHg1X2Vzd2l0Y2hfcmVwICpyZXAsIHU4IHJl cF90eXBlKQ0KIHsNCi0JaWYgKGF0b21pY19jbXB4Y2hnKCZyZXAtPnJlcF9pZltyZXBfdHlwZV0u c3RhdGUsDQorCWlmIChhdG9taWNfY21weGNoZygmcmVwLT5yZXBfZGF0YVtyZXBfdHlwZV0uc3Rh dGUsDQogCQkJICAgUkVQX0xPQURFRCwgUkVQX1JFR0lTVEVSRUQpID09IFJFUF9MT0FERUQpDQot CQlyZXAtPnJlcF9pZltyZXBfdHlwZV0udW5sb2FkKHJlcCk7DQorCQllc3ctPm9mZmxvYWRzLnJl cF9vcHNbcmVwX3R5cGVdLT51bmxvYWQocmVwKTsNCiB9DQogDQogc3RhdGljIHZvaWQgX191bmxv YWRfcmVwc19zcGVjaWFsX3Zwb3J0KHN0cnVjdCBtbHg1X2Vzd2l0Y2ggKmVzdywgdTggcmVwX3R5 cGUpDQpAQCAtMTM0OSwxMSArMTM0OSwxMSBAQCBzdGF0aWMgaW50IF9fZXN3X29mZmxvYWRzX2xv YWRfcmVwKHN0cnVjdCBtbHg1X2Vzd2l0Y2ggKmVzdywNCiB7DQogCWludCBlcnIgPSAwOw0KIA0K LQlpZiAoYXRvbWljX2NtcHhjaGcoJnJlcC0+cmVwX2lmW3JlcF90eXBlXS5zdGF0ZSwNCisJaWYg KGF0b21pY19jbXB4Y2hnKCZyZXAtPnJlcF9kYXRhW3JlcF90eXBlXS5zdGF0ZSwNCiAJCQkgICBS RVBfUkVHSVNURVJFRCwgUkVQX0xPQURFRCkgPT0gUkVQX1JFR0lTVEVSRUQpIHsNCi0JCWVyciA9 IHJlcC0+cmVwX2lmW3JlcF90eXBlXS5sb2FkKGVzdy0+ZGV2LCByZXApOw0KKwkJZXJyID0gZXN3 LT5vZmZsb2Fkcy5yZXBfb3BzW3JlcF90eXBlXS0+bG9hZChlc3ctPmRldiwgcmVwKTsNCiAJCWlm IChlcnIpDQotCQkJYXRvbWljX3NldCgmcmVwLT5yZXBfaWZbcmVwX3R5cGVdLnN0YXRlLA0KKwkJ CWF0b21pY19zZXQoJnJlcC0+cmVwX2RhdGFbcmVwX3R5cGVdLnN0YXRlLA0KIAkJCQkgICBSRVBf UkVHSVNURVJFRCk7DQogCX0NCiANCkBAIC0yMjE2LDIxICsyMjE2LDE3IEBAIGludCBtbHg1X2Rl dmxpbmtfZXN3aXRjaF9lbmNhcF9tb2RlX2dldChzdHJ1Y3QgZGV2bGluayAqZGV2bGluaywgdTgg KmVuY2FwKQ0KIH0NCiANCiB2b2lkIG1seDVfZXN3aXRjaF9yZWdpc3Rlcl92cG9ydF9yZXBzKHN0 cnVjdCBtbHg1X2Vzd2l0Y2ggKmVzdywNCi0JCQkJICAgICAgc3RydWN0IG1seDVfZXN3aXRjaF9y ZXBfaWYgKl9fcmVwX2lmLA0KKwkJCQkgICAgICBjb25zdCBzdHJ1Y3QgbWx4NV9lc3dpdGNoX3Jl cF9vcHMgKm9wcywNCiAJCQkJICAgICAgdTggcmVwX3R5cGUpDQogew0KLQlzdHJ1Y3QgbWx4NV9l c3dpdGNoX3JlcF9pZiAqcmVwX2lmOw0KKwlzdHJ1Y3QgbWx4NV9lc3dpdGNoX3JlcF9kYXRhICpy ZXBfZGF0YTsNCiAJc3RydWN0IG1seDVfZXN3aXRjaF9yZXAgKnJlcDsNCiAJaW50IGk7DQogDQor CWVzdy0+b2ZmbG9hZHMucmVwX29wc1tyZXBfdHlwZV0gPSBvcHM7DQogCW1seDVfZXN3X2Zvcl9h bGxfcmVwcyhlc3csIGksIHJlcCkgew0KLQkJcmVwX2lmID0gJnJlcC0+cmVwX2lmW3JlcF90eXBl XTsNCi0JCXJlcF9pZi0+bG9hZCAgID0gX19yZXBfaWYtPmxvYWQ7DQotCQlyZXBfaWYtPnVubG9h ZCA9IF9fcmVwX2lmLT51bmxvYWQ7DQotCQlyZXBfaWYtPmdldF9wcm90b19kZXYgPSBfX3JlcF9p Zi0+Z2V0X3Byb3RvX2RldjsNCi0JCXJlcF9pZi0+cHJpdiA9IF9fcmVwX2lmLT5wcml2Ow0KLQ0K LQkJYXRvbWljX3NldCgmcmVwX2lmLT5zdGF0ZSwgUkVQX1JFR0lTVEVSRUQpOw0KKwkJcmVwX2Rh dGEgPSAmcmVwLT5yZXBfZGF0YVtyZXBfdHlwZV07DQorCQlhdG9taWNfc2V0KCZyZXBfZGF0YS0+ c3RhdGUsIFJFUF9SRUdJU1RFUkVEKTsNCiAJfQ0KIH0NCiBFWFBPUlRfU1lNQk9MKG1seDVfZXN3 aXRjaF9yZWdpc3Rlcl92cG9ydF9yZXBzKTsNCkBAIC0yMjQ1LDcgKzIyNDEsNyBAQCB2b2lkIG1s eDVfZXN3aXRjaF91bnJlZ2lzdGVyX3Zwb3J0X3JlcHMoc3RydWN0IG1seDVfZXN3aXRjaCAqZXN3 LCB1OCByZXBfdHlwZSkNCiAJCV9fdW5sb2FkX3JlcHNfYWxsX3Zwb3J0KGVzdywgbWF4X3ZmLCBy ZXBfdHlwZSk7DQogDQogCW1seDVfZXN3X2Zvcl9hbGxfcmVwcyhlc3csIGksIHJlcCkNCi0JCWF0 b21pY19zZXQoJnJlcC0+cmVwX2lmW3JlcF90eXBlXS5zdGF0ZSwgUkVQX1VOUkVHSVNURVJFRCk7 DQorCQlhdG9taWNfc2V0KCZyZXAtPnJlcF9kYXRhW3JlcF90eXBlXS5zdGF0ZSwgUkVQX1VOUkVH SVNURVJFRCk7DQogfQ0KIEVYUE9SVF9TWU1CT0wobWx4NV9lc3dpdGNoX3VucmVnaXN0ZXJfdnBv cnRfcmVwcyk7DQogDQpAQCAtMjI1NCw3ICsyMjUwLDcgQEAgdm9pZCAqbWx4NV9lc3dpdGNoX2dl dF91cGxpbmtfcHJpdihzdHJ1Y3QgbWx4NV9lc3dpdGNoICplc3csIHU4IHJlcF90eXBlKQ0KIAlz dHJ1Y3QgbWx4NV9lc3dpdGNoX3JlcCAqcmVwOw0KIA0KIAlyZXAgPSBtbHg1X2Vzd2l0Y2hfZ2V0 X3JlcChlc3csIE1MWDVfVlBPUlRfVVBMSU5LKTsNCi0JcmV0dXJuIHJlcC0+cmVwX2lmW3JlcF90 eXBlXS5wcml2Ow0KKwlyZXR1cm4gcmVwLT5yZXBfZGF0YVtyZXBfdHlwZV0ucHJpdjsNCiB9DQog DQogdm9pZCAqbWx4NV9lc3dpdGNoX2dldF9wcm90b19kZXYoc3RydWN0IG1seDVfZXN3aXRjaCAq ZXN3LA0KQEAgLTIyNjUsOSArMjI2MSw5IEBAIHZvaWQgKm1seDVfZXN3aXRjaF9nZXRfcHJvdG9f ZGV2KHN0cnVjdCBtbHg1X2Vzd2l0Y2ggKmVzdywNCiANCiAJcmVwID0gbWx4NV9lc3dpdGNoX2dl dF9yZXAoZXN3LCB2cG9ydCk7DQogDQotCWlmIChhdG9taWNfcmVhZCgmcmVwLT5yZXBfaWZbcmVw X3R5cGVdLnN0YXRlKSA9PSBSRVBfTE9BREVEICYmDQotCSAgICByZXAtPnJlcF9pZltyZXBfdHlw ZV0uZ2V0X3Byb3RvX2RldikNCi0JCXJldHVybiByZXAtPnJlcF9pZltyZXBfdHlwZV0uZ2V0X3By b3RvX2RldihyZXApOw0KKwlpZiAoYXRvbWljX3JlYWQoJnJlcC0+cmVwX2RhdGFbcmVwX3R5cGVd LnN0YXRlKSA9PSBSRVBfTE9BREVEICYmDQorCSAgICBlc3ctPm9mZmxvYWRzLnJlcF9vcHNbcmVw X3R5cGVdLT5nZXRfcHJvdG9fZGV2KQ0KKwkJcmV0dXJuIGVzdy0+b2ZmbG9hZHMucmVwX29wc1ty ZXBfdHlwZV0tPmdldF9wcm90b19kZXYocmVwKTsNCiAJcmV0dXJuIE5VTEw7DQogfQ0KIEVYUE9S VF9TWU1CT0wobWx4NV9lc3dpdGNoX2dldF9wcm90b19kZXYpOw0KZGlmZiAtLWdpdCBhL2luY2x1 ZGUvbGludXgvbWx4NS9lc3dpdGNoLmggYi9pbmNsdWRlL2xpbnV4L21seDUvZXN3aXRjaC5oDQpp bmRleCAwY2E3N2RkMTQyOWMuLmQ4MWVlNGRmMTgxYyAxMDA2NDQNCi0tLSBhL2luY2x1ZGUvbGlu dXgvbWx4NS9lc3dpdGNoLmgNCisrKyBiL2luY2x1ZGUvbGludXgvbWx4NS9lc3dpdGNoLmgNCkBA IC0yOSwxNyArMjksMTkgQEAgZW51bSB7DQogfTsNCiANCiBzdHJ1Y3QgbWx4NV9lc3dpdGNoX3Jl cDsNCi1zdHJ1Y3QgbWx4NV9lc3dpdGNoX3JlcF9pZiB7DQotCWludAkJICAgICAgICgqbG9hZCko c3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwNCi0JCQkJICAgICAgIHN0cnVjdCBtbHg1X2Vzd2l0 Y2hfcmVwICpyZXApOw0KLQl2b2lkCQkgICAgICAgKCp1bmxvYWQpKHN0cnVjdCBtbHg1X2Vzd2l0 Y2hfcmVwICpyZXApOw0KLQl2b2lkCQkgICAgICAgKigqZ2V0X3Byb3RvX2Rldikoc3RydWN0IG1s eDVfZXN3aXRjaF9yZXAgKnJlcCk7DQotCXZvaWQJCQkqcHJpdjsNCi0JYXRvbWljX3QJCXN0YXRl Ow0KK3N0cnVjdCBtbHg1X2Vzd2l0Y2hfcmVwX29wcyB7DQorCWludCAoKmxvYWQpKHN0cnVjdCBt bHg1X2NvcmVfZGV2ICpkZXYsIHN0cnVjdCBtbHg1X2Vzd2l0Y2hfcmVwICpyZXApOw0KKwl2b2lk ICgqdW5sb2FkKShzdHJ1Y3QgbWx4NV9lc3dpdGNoX3JlcCAqcmVwKTsNCisJdm9pZCAqKCpnZXRf cHJvdG9fZGV2KShzdHJ1Y3QgbWx4NV9lc3dpdGNoX3JlcCAqcmVwKTsNCit9Ow0KKw0KK3N0cnVj dCBtbHg1X2Vzd2l0Y2hfcmVwX2RhdGEgew0KKwl2b2lkICpwcml2Ow0KKwlhdG9taWNfdCBzdGF0 ZTsNCiB9Ow0KIA0KIHN0cnVjdCBtbHg1X2Vzd2l0Y2hfcmVwIHsNCi0Jc3RydWN0IG1seDVfZXN3 aXRjaF9yZXBfaWYgcmVwX2lmW05VTV9SRVBfVFlQRVNdOw0KKwlzdHJ1Y3QgbWx4NV9lc3dpdGNo X3JlcF9kYXRhIHJlcF9kYXRhW05VTV9SRVBfVFlQRVNdOw0KIAl1MTYJCSAgICAgICB2cG9ydDsN CiAJdTgJCSAgICAgICBod19pZFtFVEhfQUxFTl07DQogCXUxNgkJICAgICAgIHZsYW47DQpAQCAt NDcsNyArNDksNyBAQCBzdHJ1Y3QgbWx4NV9lc3dpdGNoX3JlcCB7DQogfTsNCiANCiB2b2lkIG1s eDVfZXN3aXRjaF9yZWdpc3Rlcl92cG9ydF9yZXBzKHN0cnVjdCBtbHg1X2Vzd2l0Y2ggKmVzdywN Ci0JCQkJICAgICAgc3RydWN0IG1seDVfZXN3aXRjaF9yZXBfaWYgKnJlcF9pZiwNCisJCQkJICAg ICAgY29uc3Qgc3RydWN0IG1seDVfZXN3aXRjaF9yZXBfb3BzICpvcHMsDQogCQkJCSAgICAgIHU4 IHJlcF90eXBlKTsNCiB2b2lkIG1seDVfZXN3aXRjaF91bnJlZ2lzdGVyX3Zwb3J0X3JlcHMoc3Ry dWN0IG1seDVfZXN3aXRjaCAqZXN3LCB1OCByZXBfdHlwZSk7DQogdm9pZCAqbWx4NV9lc3dpdGNo X2dldF9wcm90b19kZXYoc3RydWN0IG1seDVfZXN3aXRjaCAqZXN3LA0KLS0gDQoyLjIxLjANCg0K