From mboxrd@z Thu Jan 1 00:00:00 1970 From: Saeed Mahameed Subject: [PATCH mlx5-next 3/6] net/mlx5: E-Switch, Replace host_params event with functions_changed event Date: Wed, 29 May 2019 22:50:34 +0000 Message-ID: <20190529224949.18194-4-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" , Vu Pham , Parav Pandit , Bodong Wang List-Id: linux-rdma@vger.kernel.org RnJvbTogVnUgUGhhbSA8dnVodW9uZ0BtZWxsYW5veC5jb20+DQoNClRvIHN1cHBvcnQgc3Jpb3Yg b24gYSBFLVN3aXRjaCBtYW5hZ2VyLCBudW1fdmZzIGFyZSBxdWVyaWVkDQp0byB0aGUgZmlybXdh cmUgd2hlbmV2ZXIgRS1Td2l0Y2ggbWFuYWdlciBpcyBub3RpZmllZCBieQ0KZXN3X2Z1bmN0aW9u c19jaGFuZ2VkIGV2ZW50Lg0KDQpSZXBsYWNlIGhvc3RfcGFyYW1zIGV2ZW50IHdpdGggZXN3X2Z1 bmN0aW9uc19jaGFuZ2VkIGV2ZW50IHRoYXQgcmVmbGVjdHMNCm1vcmUgYXBwcm9wcmlhdGUgbmFt aW5nLg0KDQpXaGlsZSBhdCBpdCwgYWxzbyBjb3JyZWN0IG51bV92ZnMgdHlwZSBmcm9tIGludCB0 byB1MTYgYXMgZXhwZWN0ZWQgYnkNCnRoZSBmdW5jdGlvbiBtbHg1X2Vzd19xdWVyeV9mdW5jdGlv bnMoKS4NCg0KU2lnbmVkLW9mZi1ieTogVnUgUGhhbSA8dnVodW9uZ0BtZWxsYW5veC5jb20+DQpS ZXZpZXdlZC1ieTogUGFyYXYgUGFuZGl0IDxwYXJhdkBtZWxsYW5veC5jb20+DQpSZXZpZXdlZC1i eTogQm9kb25nIFdhbmcgPGJvZG9uZ0BtZWxsYW5veC5jb20+DQpTaWduZWQtb2ZmLWJ5OiBTYWVl ZCBNYWhhbWVlZCA8c2FlZWRtQG1lbGxhbm94LmNvbT4NCi0tLQ0KIGRyaXZlcnMvbmV0L2V0aGVy bmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYyB8ICA0ICstDQogLi4uL25ldC9ldGhlcm5ldC9t ZWxsYW5veC9tbHg1L2NvcmUvZWNwZi5jICAgIHwgMjcgLS0tLS0tLS0NCiAuLi4vbmV0L2V0aGVy bmV0L21lbGxhbm94L21seDUvY29yZS9lY3BmLmggICAgfCAgNCAtLQ0KIGRyaXZlcnMvbmV0L2V0 aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lcS5jICB8ICAzICstDQogLi4uL25ldC9ldGhlcm5l dC9tZWxsYW5veC9tbHg1L2NvcmUvZXN3aXRjaC5jIHwgMzIgKysrKysrKystDQogLi4uL25ldC9l dGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZXN3aXRjaC5oIHwgIDYgKy0NCiAuLi4vbWVsbGFu b3gvbWx4NS9jb3JlL2Vzd2l0Y2hfb2ZmbG9hZHMuYyAgICAgfCA2OSArKysrKysrKysrKy0tLS0t LS0tDQogLi4uL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZXZlbnRzLmMgIHwgIDQg Ky0NCiBpbmNsdWRlL2xpbnV4L21seDUvZGV2aWNlLmggICAgICAgICAgICAgICAgICAgfCAgMiAr LQ0KIGluY2x1ZGUvbGludXgvbWx4NS9tbHg1X2lmYy5oICAgICAgICAgICAgICAgICB8ICA2ICst DQogMTAgZmlsZXMgY2hhbmdlZCwgODYgaW5zZXJ0aW9ucygrKSwgNzEgZGVsZXRpb25zKC0pDQoN CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21k LmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMNCmluZGV4 IDkzN2JhNGJjYjA1Ni4uN2QzYWVjOThlMzFmIDEwMDY0NA0KLS0tIGEvZHJpdmVycy9uZXQvZXRo ZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jDQorKysgYi9kcml2ZXJzL25ldC9ldGhlcm5l dC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMNCkBAIC0zMTYsNyArMzE2LDcgQEAgc3RhdGljIGlu dCBtbHg1X2ludGVybmFsX2Vycl9yZXRfdmFsdWUoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwg dTE2IG9wLA0KIAljYXNlIE1MWDVfQ01EX09QX0RFU1RST1lfR0VORVJBTF9PQkpFQ1Q6DQogCWNh c2UgTUxYNV9DTURfT1BfREVBTExPQ19NRU1JQzoNCiAJY2FzZSBNTFg1X0NNRF9PUF9QQUdFX0ZB VUxUX1JFU1VNRToNCi0JY2FzZSBNTFg1X0NNRF9PUF9RVUVSWV9IT1NUX1BBUkFNUzoNCisJY2Fz ZSBNTFg1X0NNRF9PUF9RVUVSWV9FU1dfRlVOQ1RJT05TOg0KIAkJcmV0dXJuIE1MWDVfQ01EX1NU QVRfT0s7DQogDQogCWNhc2UgTUxYNV9DTURfT1BfUVVFUllfSENBX0NBUDoNCkBAIC02MjgsNyAr NjI4LDcgQEAgY29uc3QgY2hhciAqbWx4NV9jb21tYW5kX3N0cihpbnQgY29tbWFuZCkNCiAJTUxY NV9DT01NQU5EX1NUUl9DQVNFKFFVRVJZX01PRElGWV9IRUFERVJfQ09OVEVYVCk7DQogCU1MWDVf Q09NTUFORF9TVFJfQ0FTRShBTExPQ19NRU1JQyk7DQogCU1MWDVfQ09NTUFORF9TVFJfQ0FTRShE RUFMTE9DX01FTUlDKTsNCi0JTUxYNV9DT01NQU5EX1NUUl9DQVNFKFFVRVJZX0hPU1RfUEFSQU1T KTsNCisJTUxYNV9DT01NQU5EX1NUUl9DQVNFKFFVRVJZX0VTV19GVU5DVElPTlMpOw0KIAlkZWZh dWx0OiByZXR1cm4gInVua25vd24gY29tbWFuZCBvcGNvZGUiOw0KIAl9DQogfQ0KZGlmZiAtLWdp dCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lY3BmLmMgYi9kcml2 ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZWNwZi5jDQppbmRleCA0NzQ2ZjJk MjhmYjYuLjFiY2Y4YjhmOTcxMyAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21l bGxhbm94L21seDUvY29yZS9lY3BmLmMNCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxh bm94L21seDUvY29yZS9lY3BmLmMNCkBAIC04MywzMCArODMsMyBAQCB2b2lkIG1seDVfZWNfY2xl YW51cChzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2KQ0KIA0KIAltbHg1X3BlZXJfcGZfY2xlYW51 cChkZXYpOw0KIH0NCi0NCi1zdGF0aWMgaW50IG1seDVfcXVlcnlfaG9zdF9wYXJhbXNfY29udGV4 dChzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LA0KLQkJCQkJICB1MzIgKm91dCwgaW50IG91dGxl bikNCi17DQotCXUzMiBpbltNTFg1X1NUX1NaX0RXKHF1ZXJ5X2hvc3RfcGFyYW1zX2luKV0gPSB7 fTsNCi0NCi0JTUxYNV9TRVQocXVlcnlfaG9zdF9wYXJhbXNfaW4sIGluLCBvcGNvZGUsDQotCQkg TUxYNV9DTURfT1BfUVVFUllfSE9TVF9QQVJBTVMpOw0KLQ0KLQlyZXR1cm4gbWx4NV9jbWRfZXhl YyhkZXYsIGluLCBzaXplb2YoaW4pLCBvdXQsIG91dGxlbik7DQotfQ0KLQ0KLWludCBtbHg1X3F1 ZXJ5X2hvc3RfcGFyYW1zX251bV92ZnMoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwgaW50ICpu dW1fdmYpDQotew0KLQl1MzIgb3V0W01MWDVfU1RfU1pfRFcocXVlcnlfaG9zdF9wYXJhbXNfb3V0 KV0gPSB7fTsNCi0JaW50IGVycjsNCi0NCi0JZXJyID0gbWx4NV9xdWVyeV9ob3N0X3BhcmFtc19j b250ZXh0KGRldiwgb3V0LCBzaXplb2Yob3V0KSk7DQotCWlmIChlcnIpDQotCQlyZXR1cm4gZXJy Ow0KLQ0KLQkqbnVtX3ZmID0gTUxYNV9HRVQocXVlcnlfaG9zdF9wYXJhbXNfb3V0LCBvdXQsDQot CQkJICAgaG9zdF9wYXJhbXNfY29udGV4dC5ob3N0X251bV9vZl92ZnMpOw0KLQltbHg1X2NvcmVf ZGJnKGRldiwgImhvc3RfbnVtX29mX3ZmcyAlZFxuIiwgKm51bV92Zik7DQotDQotCXJldHVybiAw Ow0KLX0NCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2Nv cmUvZWNwZi5oIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VjcGYu aA0KaW5kZXggMzQ2MzcyZGYyMThmLi5kM2Q3YTAwYTAyYWMgMTAwNjQ0DQotLS0gYS9kcml2ZXJz L25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZWNwZi5oDQorKysgYi9kcml2ZXJzL25l dC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZWNwZi5oDQpAQCAtMTYsNyArMTYsNiBAQCBl bnVtIHsNCiBib29sIG1seDVfcmVhZF9lbWJlZGRlZF9jcHUoc3RydWN0IG1seDVfY29yZV9kZXYg KmRldik7DQogaW50IG1seDVfZWNfaW5pdChzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2KTsNCiB2 b2lkIG1seDVfZWNfY2xlYW51cChzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2KTsNCi1pbnQgbWx4 NV9xdWVyeV9ob3N0X3BhcmFtc19udW1fdmZzKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsIGlu dCAqbnVtX3ZmKTsNCiANCiAjZWxzZSAgLyogQ09ORklHX01MWDVfRVNXSVRDSCAqLw0KIA0KQEAg LTI0LDkgKzIzLDYgQEAgc3RhdGljIGlubGluZSBib29sDQogbWx4NV9yZWFkX2VtYmVkZGVkX2Nw dShzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2KSB7IHJldHVybiBmYWxzZTsgfQ0KIHN0YXRpYyBp bmxpbmUgaW50IG1seDVfZWNfaW5pdChzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2KSB7IHJldHVy biAwOyB9DQogc3RhdGljIGlubGluZSB2b2lkIG1seDVfZWNfY2xlYW51cChzdHJ1Y3QgbWx4NV9j b3JlX2RldiAqZGV2KSB7fQ0KLXN0YXRpYyBpbmxpbmUgaW50DQotbWx4NV9xdWVyeV9ob3N0X3Bh cmFtc19udW1fdmZzKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsIGludCAqbnVtX3ZmKQ0KLXsg cmV0dXJuIC1FT1BOT1RTVVBQOyB9DQogDQogI2VuZGlmIC8qIENPTkZJR19NTFg1X0VTV0lUQ0gg Ki8NCiANCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2Nv cmUvZXEuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lcS5jDQpp bmRleCAyMzg4M2QxZmEyMmYuLjA1MmJkNzBlNGFhNiAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvbmV0 L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lcS5jDQorKysgYi9kcml2ZXJzL25ldC9ldGhl cm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZXEuYw0KQEAgLTUzNCw3ICs1MzQsOCBAQCBzdGF0aWMg dTY0IGdhdGhlcl9hc3luY19ldmVudHNfbWFzayhzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2KQ0K IAkJYXN5bmNfZXZlbnRfbWFzayB8PSAoMXVsbCA8PCBNTFg1X0VWRU5UX1RZUEVfTU9OSVRPUl9D T1VOVEVSKTsNCiANCiAJaWYgKG1seDVfY29yZV9pc19lY3BmX2Vzd19tYW5hZ2VyKGRldikpDQot CQlhc3luY19ldmVudF9tYXNrIHw9ICgxdWxsIDw8IE1MWDVfRVZFTlRfVFlQRV9IT1NUX1BBUkFN U19DSEFOR0UpOw0KKwkJYXN5bmNfZXZlbnRfbWFzayB8PQ0KKwkJCSgxdWxsIDw8IE1MWDVfRVZF TlRfVFlQRV9FU1dfRlVOQ1RJT05TX0NIQU5HRUQpOw0KIA0KIAlyZXR1cm4gYXN5bmNfZXZlbnRf bWFzazsNCiB9DQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4 NS9jb3JlL2Vzd2l0Y2guYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29y ZS9lc3dpdGNoLmMNCmluZGV4IDllYTBjY2ZlNWVmNS4uZDg5MzUyMzI5NjRhIDEwMDY0NA0KLS0t IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2Vzd2l0Y2guYw0KKysr IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2Vzd2l0Y2guYw0KQEAg LTE2ODYsMTMgKzE2ODYsNDEgQEAgc3RhdGljIGludCBlc3dpdGNoX3Zwb3J0X2V2ZW50KHN0cnVj dCBub3RpZmllcl9ibG9jayAqbmIsDQogCXJldHVybiBOT1RJRllfT0s7DQogfQ0KIA0KK3N0YXRp YyBpbnQgcXVlcnlfZXN3X2Z1bmN0aW9ucyhzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LA0KKwkJ CSAgICAgICB1MzIgKm91dCwgaW50IG91dGxlbikNCit7DQorCXUzMiBpbltNTFg1X1NUX1NaX0RX KHF1ZXJ5X2Vzd19mdW5jdGlvbnNfaW4pXSA9IHswfTsNCisNCisJTUxYNV9TRVQocXVlcnlfZXN3 X2Z1bmN0aW9uc19pbiwgaW4sIG9wY29kZSwNCisJCSBNTFg1X0NNRF9PUF9RVUVSWV9FU1dfRlVO Q1RJT05TKTsNCisNCisJcmV0dXJuIG1seDVfY21kX2V4ZWMoZGV2LCBpbiwgc2l6ZW9mKGluKSwg b3V0LCBvdXRsZW4pOw0KK30NCisNCitpbnQgbWx4NV9lc3dfcXVlcnlfZnVuY3Rpb25zKHN0cnVj dCBtbHg1X2NvcmVfZGV2ICpkZXYsIHUxNiAqbnVtX3ZmcykNCit7DQorCXUzMiBvdXRbTUxYNV9T VF9TWl9EVyhxdWVyeV9lc3dfZnVuY3Rpb25zX291dCldID0gezB9Ow0KKwlpbnQgZXJyOw0KKw0K KwllcnIgPSBxdWVyeV9lc3dfZnVuY3Rpb25zKGRldiwgb3V0LCBzaXplb2Yob3V0KSk7DQorCWlm IChlcnIpDQorCQlyZXR1cm4gZXJyOw0KKw0KKwkqbnVtX3ZmcyA9IE1MWDVfR0VUKHF1ZXJ5X2Vz d19mdW5jdGlvbnNfb3V0LCBvdXQsDQorCQkJICAgIGhvc3RfcGFyYW1zX2NvbnRleHQuaG9zdF9u dW1fb2ZfdmZzKTsNCisJZXN3X2RlYnVnKGRldiwgImhvc3RfbnVtX29mX3Zmcz0lZFxuIiwgKm51 bV92ZnMpOw0KKw0KKwlyZXR1cm4gMDsNCit9DQorDQogLyogUHVibGljIEUtU3dpdGNoIEFQSSAq Lw0KICNkZWZpbmUgRVNXX0FMTE9XRUQoZXN3KSAoKGVzdykgJiYgTUxYNV9FU1dJVENIX01BTkFH RVIoKGVzdyktPmRldikpDQogDQogaW50IG1seDVfZXN3aXRjaF9lbmFibGVfc3Jpb3Yoc3RydWN0 IG1seDVfZXN3aXRjaCAqZXN3LCBpbnQgbnZmcywgaW50IG1vZGUpDQogew0KLQlpbnQgdmZfbnZw b3J0cyA9IDAsIHRvdGFsX252cG9ydHMgPSAwOw0KIAlzdHJ1Y3QgbWx4NV92cG9ydCAqdnBvcnQ7 DQorCWludCB0b3RhbF9udnBvcnRzID0gMDsNCisJdTE2IHZmX252cG9ydHMgPSAwOw0KIAlpbnQg ZXJyOw0KIAlpbnQgaSwgZW5hYmxlZF9ldmVudHM7DQogDQpAQCAtMTcxMiw3ICsxNzQwLDcgQEAg aW50IG1seDVfZXN3aXRjaF9lbmFibGVfc3Jpb3Yoc3RydWN0IG1seDVfZXN3aXRjaCAqZXN3LCBp bnQgbnZmcywgaW50IG1vZGUpDQogDQogCWlmIChtb2RlID09IFNSSU9WX09GRkxPQURTKSB7DQog CQlpZiAobWx4NV9jb3JlX2lzX2VjcGZfZXN3X21hbmFnZXIoZXN3LT5kZXYpKSB7DQotCQkJZXJy ID0gbWx4NV9xdWVyeV9ob3N0X3BhcmFtc19udW1fdmZzKGVzdy0+ZGV2LCAmdmZfbnZwb3J0cyk7 DQorCQkJZXJyID0gbWx4NV9lc3dfcXVlcnlfZnVuY3Rpb25zKGVzdy0+ZGV2LCAmdmZfbnZwb3J0 cyk7DQogCQkJaWYgKGVycikNCiAJCQkJcmV0dXJuIGVycjsNCiAJCQl0b3RhbF9udnBvcnRzID0g ZXN3LT50b3RhbF92cG9ydHM7DQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVs bGFub3gvbWx4NS9jb3JlL2Vzd2l0Y2guaCBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94 L21seDUvY29yZS9lc3dpdGNoLmgNCmluZGV4IGVkM2ZhZDY4OWVjOS4uMzIwZGQ4M2RkMzAxIDEw MDY0NA0KLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2Vzd2l0 Y2guaA0KKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2Vzd2l0 Y2guaA0KQEAgLTE5MCw3ICsxOTAsNyBAQCBzdHJ1Y3QgbWx4NV9ob3N0X3dvcmsgew0KIAlzdHJ1 Y3QgbWx4NV9lc3dpdGNoCSplc3c7DQogfTsNCiANCi1zdHJ1Y3QgbWx4NV9ob3N0X2luZm8gew0K K3N0cnVjdCBtbHg1X2Vzd19mdW5jdGlvbnMgew0KIAlzdHJ1Y3QgbWx4NV9uYgkJbmI7DQogCXUx NgkJCW51bV92ZnM7DQogfTsNCkBAIC0yMTksNyArMjE5LDcgQEAgc3RydWN0IG1seDVfZXN3aXRj aCB7DQogCWludCAgICAgICAgICAgICAgICAgICAgIG1vZGU7DQogCWludCAgICAgICAgICAgICAg ICAgICAgIG52cG9ydHM7DQogCXUxNiAgICAgICAgICAgICAgICAgICAgIG1hbmFnZXJfdnBvcnQ7 DQotCXN0cnVjdCBtbHg1X2hvc3RfaW5mbwlob3N0X2luZm87DQorCXN0cnVjdCBtbHg1X2Vzd19m dW5jdGlvbnMgZXN3X2Z1bmNzOw0KIH07DQogDQogdm9pZCBlc3dfb2ZmbG9hZHNfY2xlYW51cChz dHJ1Y3QgbWx4NV9lc3dpdGNoICplc3cpOw0KQEAgLTM4Niw2ICszODYsOCBAQCBib29sIG1seDVf ZXN3X2xhZ19wcmVyZXEoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldjAsDQogYm9vbCBtbHg1X2Vz d19tdWx0aXBhdGhfcHJlcmVxKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYwLA0KIAkJCSAgICAg ICBzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2MSk7DQogDQoraW50IG1seDVfZXN3X3F1ZXJ5X2Z1 bmN0aW9ucyhzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LCB1MTYgKm51bV92ZnMpOw0KKw0KICNk ZWZpbmUgTUxYNV9ERUJVR19FU1dJVENIX01BU0sgQklUKDMpDQogDQogI2RlZmluZSBlc3dfaW5m byhfX2RldiwgZm9ybWF0LCAuLi4pCQkJXA0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVy bmV0L21lbGxhbm94L21seDUvY29yZS9lc3dpdGNoX29mZmxvYWRzLmMgYi9kcml2ZXJzL25ldC9l dGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZXN3aXRjaF9vZmZsb2Fkcy5jDQppbmRleCBlMDlh ZTI3NDg1ZWUuLjgzNjg5Njc4YjQwMCAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0 L21lbGxhbm94L21seDUvY29yZS9lc3dpdGNoX29mZmxvYWRzLmMNCisrKyBiL2RyaXZlcnMvbmV0 L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lc3dpdGNoX29mZmxvYWRzLmMNCkBAIC00MSw3 ICs0MSw2IEBADQogI2luY2x1ZGUgImVuLmgiDQogI2luY2x1ZGUgImZzX2NvcmUuaCINCiAjaW5j bHVkZSAibGliL2RldmNvbS5oIg0KLSNpbmNsdWRlICJlY3BmLmgiDQogI2luY2x1ZGUgImxpYi9l cS5oIg0KIA0KIC8qIFRoZXJlIGFyZSB0d28gbWF0Y2gtYWxsIG1pc3MgZmxvd3MsIG9uZSBmb3Ig dW5pY2FzdCBkc3QgbWFjIGFuZA0KQEAgLTE3ODIsNTcgKzE3ODEsNzkgQEAgc3RhdGljIHZvaWQg ZXN3X29mZmxvYWRzX3N0ZWVyaW5nX2NsZWFudXAoc3RydWN0IG1seDVfZXN3aXRjaCAqZXN3KQ0K IAkJZXN3X3ByaW9fdGFnX2FjbHNfY2xlYW51cChlc3cpOw0KIH0NCiANCi1zdGF0aWMgdm9pZCBl c3dfaG9zdF9wYXJhbXNfZXZlbnRfaGFuZGxlcihzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspDQor c3RhdGljIHZvaWQgZXN3X2Z1bmN0aW9uc19jaGFuZ2VkX2V2ZW50X2hhbmRsZXIoc3RydWN0IHdv cmtfc3RydWN0ICp3b3JrKQ0KIHsNCiAJc3RydWN0IG1seDVfaG9zdF93b3JrICpob3N0X3dvcms7 DQogCXN0cnVjdCBtbHg1X2Vzd2l0Y2ggKmVzdzsNCi0JaW50IGVyciwgbnVtX3ZmID0gMDsNCisJ dTE2IG51bV92ZnMgPSAwOw0KKwlpbnQgZXJyOw0KIA0KIAlob3N0X3dvcmsgPSBjb250YWluZXJf b2Yod29yaywgc3RydWN0IG1seDVfaG9zdF93b3JrLCB3b3JrKTsNCiAJZXN3ID0gaG9zdF93b3Jr LT5lc3c7DQogDQotCWVyciA9IG1seDVfcXVlcnlfaG9zdF9wYXJhbXNfbnVtX3Zmcyhlc3ctPmRl diwgJm51bV92Zik7DQotCWlmIChlcnIgfHwgbnVtX3ZmID09IGVzdy0+aG9zdF9pbmZvLm51bV92 ZnMpDQorCWVyciA9IG1seDVfZXN3X3F1ZXJ5X2Z1bmN0aW9ucyhlc3ctPmRldiwgJm51bV92ZnMp Ow0KKwlpZiAoZXJyIHx8IG51bV92ZnMgPT0gZXN3LT5lc3dfZnVuY3MubnVtX3ZmcykNCiAJCWdv dG8gb3V0Ow0KIA0KIAkvKiBOdW1iZXIgb2YgVkZzIGNhbiBvbmx5IGNoYW5nZSBmcm9tICIwIHRv IHgiIG9yICJ4IHRvIDAiLiAqLw0KLQlpZiAoZXN3LT5ob3N0X2luZm8ubnVtX3ZmcyA+IDApIHsN Ci0JCWVzd19vZmZsb2Fkc191bmxvYWRfdmZfcmVwcyhlc3csIGVzdy0+aG9zdF9pbmZvLm51bV92 ZnMpOw0KKwlpZiAoZXN3LT5lc3dfZnVuY3MubnVtX3ZmcyA+IDApIHsNCisJCWVzd19vZmZsb2Fk c191bmxvYWRfdmZfcmVwcyhlc3csIGVzdy0+ZXN3X2Z1bmNzLm51bV92ZnMpOw0KIAl9IGVsc2Ug ew0KLQkJZXJyID0gZXN3X29mZmxvYWRzX2xvYWRfdmZfcmVwcyhlc3csIG51bV92Zik7DQorCQll cnIgPSBlc3dfb2ZmbG9hZHNfbG9hZF92Zl9yZXBzKGVzdywgbnVtX3Zmcyk7DQogDQogCQlpZiAo ZXJyKQ0KIAkJCWdvdG8gb3V0Ow0KIAl9DQogDQotCWVzdy0+aG9zdF9pbmZvLm51bV92ZnMgPSBu dW1fdmY7DQorCWVzdy0+ZXN3X2Z1bmNzLm51bV92ZnMgPSBudW1fdmZzOw0KIA0KIG91dDoNCiAJ a2ZyZWUoaG9zdF93b3JrKTsNCiB9DQogDQotc3RhdGljIGludCBlc3dfaG9zdF9wYXJhbXNfZXZl bnQoc3RydWN0IG5vdGlmaWVyX2Jsb2NrICpuYiwNCi0JCQkJIHVuc2lnbmVkIGxvbmcgdHlwZSwg dm9pZCAqZGF0YSkNCitzdGF0aWMgaW50IGVzd19mdW5jdGlvbnNfY2hhbmdlZF9ldmVudChzdHJ1 Y3Qgbm90aWZpZXJfYmxvY2sgKm5iLA0KKwkJCQkgICAgICAgdW5zaWduZWQgbG9uZyB0eXBlLCB2 b2lkICpkYXRhKQ0KIHsNCisJc3RydWN0IG1seDVfZXN3X2Z1bmN0aW9ucyAqZXN3X2Z1bmNzOw0K IAlzdHJ1Y3QgbWx4NV9ob3N0X3dvcmsgKmhvc3Rfd29yazsNCi0Jc3RydWN0IG1seDVfaG9zdF9p bmZvICpob3N0X2luZm87DQogCXN0cnVjdCBtbHg1X2Vzd2l0Y2ggKmVzdzsNCiANCiAJaG9zdF93 b3JrID0ga3phbGxvYyhzaXplb2YoKmhvc3Rfd29yayksIEdGUF9BVE9NSUMpOw0KIAlpZiAoIWhv c3Rfd29yaykNCiAJCXJldHVybiBOT1RJRllfRE9ORTsNCiANCi0JaG9zdF9pbmZvID0gbWx4NV9u Yl9jb2YobmIsIHN0cnVjdCBtbHg1X2hvc3RfaW5mbywgbmIpOw0KLQllc3cgPSBjb250YWluZXJf b2YoaG9zdF9pbmZvLCBzdHJ1Y3QgbWx4NV9lc3dpdGNoLCBob3N0X2luZm8pOw0KKwllc3dfZnVu Y3MgPSBtbHg1X25iX2NvZihuYiwgc3RydWN0IG1seDVfZXN3X2Z1bmN0aW9ucywgbmIpOw0KKwll c3cgPSBjb250YWluZXJfb2YoZXN3X2Z1bmNzLCBzdHJ1Y3QgbWx4NV9lc3dpdGNoLCBlc3dfZnVu Y3MpOw0KIA0KIAlob3N0X3dvcmstPmVzdyA9IGVzdzsNCiANCi0JSU5JVF9XT1JLKCZob3N0X3dv cmstPndvcmssIGVzd19ob3N0X3BhcmFtc19ldmVudF9oYW5kbGVyKTsNCisJSU5JVF9XT1JLKCZo b3N0X3dvcmstPndvcmssIGVzd19mdW5jdGlvbnNfY2hhbmdlZF9ldmVudF9oYW5kbGVyKTsNCiAJ cXVldWVfd29yayhlc3ctPndvcmtfcXVldWUsICZob3N0X3dvcmstPndvcmspOw0KIA0KIAlyZXR1 cm4gTk9USUZZX09LOw0KIH0NCiANCitzdGF0aWMgdm9pZCBlc3dfZnVuY3Rpb25zX2NoYW5nZWRf ZXZlbnRfaW5pdChzdHJ1Y3QgbWx4NV9lc3dpdGNoICplc3csDQorCQkJCQkgICAgIHUxNiB2Zl9u dnBvcnRzKQ0KK3sNCisJaWYgKCFtbHg1X2NvcmVfaXNfZWNwZl9lc3dfbWFuYWdlcihlc3ctPmRl dikpDQorCQlyZXR1cm47DQorDQorCU1MWDVfTkJfSU5JVCgmZXN3LT5lc3dfZnVuY3MubmIsIGVz d19mdW5jdGlvbnNfY2hhbmdlZF9ldmVudCwNCisJCSAgICAgRVNXX0ZVTkNUSU9OU19DSEFOR0VE KTsNCisJbWx4NV9lcV9ub3RpZmllcl9yZWdpc3Rlcihlc3ctPmRldiwgJmVzdy0+ZXN3X2Z1bmNz Lm5iKTsNCisJZXN3LT5lc3dfZnVuY3MubnVtX3ZmcyA9IHZmX252cG9ydHM7DQorfQ0KKw0KK3N0 YXRpYyB2b2lkIGVzd19mdW5jdGlvbnNfY2hhbmdlZF9ldmVudF9jbGVhbnVwKHN0cnVjdCBtbHg1 X2Vzd2l0Y2ggKmVzdykNCit7DQorCWlmICghbWx4NV9jb3JlX2lzX2VjcGZfZXN3X21hbmFnZXIo ZXN3LT5kZXYpKQ0KKwkJcmV0dXJuOw0KKw0KKwltbHg1X2VxX25vdGlmaWVyX3VucmVnaXN0ZXIo ZXN3LT5kZXYsICZlc3ctPmVzd19mdW5jcy5uYik7DQorCWZsdXNoX3dvcmtxdWV1ZShlc3ctPndv cmtfcXVldWUpOw0KK30NCisNCiBpbnQgZXN3X29mZmxvYWRzX2luaXQoc3RydWN0IG1seDVfZXN3 aXRjaCAqZXN3LCBpbnQgdmZfbnZwb3J0cywNCiAJCSAgICAgIGludCB0b3RhbF9udnBvcnRzKQ0K IHsNCkBAIC0xODQ4LDEyICsxODY5LDcgQEAgaW50IGVzd19vZmZsb2Fkc19pbml0KHN0cnVjdCBt bHg1X2Vzd2l0Y2ggKmVzdywgaW50IHZmX252cG9ydHMsDQogDQogCWVzd19vZmZsb2Fkc19kZXZj b21faW5pdChlc3cpOw0KIA0KLQlpZiAobWx4NV9jb3JlX2lzX2VjcGZfZXN3X21hbmFnZXIoZXN3 LT5kZXYpKSB7DQotCQlNTFg1X05CX0lOSVQoJmVzdy0+aG9zdF9pbmZvLm5iLCBlc3dfaG9zdF9w YXJhbXNfZXZlbnQsDQotCQkJICAgICBIT1NUX1BBUkFNU19DSEFOR0UpOw0KLQkJbWx4NV9lcV9u b3RpZmllcl9yZWdpc3Rlcihlc3ctPmRldiwgJmVzdy0+aG9zdF9pbmZvLm5iKTsNCi0JCWVzdy0+ aG9zdF9pbmZvLm51bV92ZnMgPSB2Zl9udnBvcnRzOw0KLQl9DQorCWVzd19mdW5jdGlvbnNfY2hh bmdlZF9ldmVudF9pbml0KGVzdywgdmZfbnZwb3J0cyk7DQogDQogCW1seDVfcmRtYV9lbmFibGVf cm9jZShlc3ctPmRldik7DQogDQpAQCAtMTg4NywxMyArMTkwMywxMiBAQCB2b2lkIGVzd19vZmZs b2Fkc19jbGVhbnVwKHN0cnVjdCBtbHg1X2Vzd2l0Y2ggKmVzdykNCiB7DQogCXUxNiBudW1fdmZz Ow0KIA0KLQlpZiAobWx4NV9jb3JlX2lzX2VjcGZfZXN3X21hbmFnZXIoZXN3LT5kZXYpKSB7DQot CQltbHg1X2VxX25vdGlmaWVyX3VucmVnaXN0ZXIoZXN3LT5kZXYsICZlc3ctPmhvc3RfaW5mby5u Yik7DQotCQlmbHVzaF93b3JrcXVldWUoZXN3LT53b3JrX3F1ZXVlKTsNCi0JCW51bV92ZnMgPSBl c3ctPmhvc3RfaW5mby5udW1fdmZzOw0KLQl9IGVsc2Ugew0KKwllc3dfZnVuY3Rpb25zX2NoYW5n ZWRfZXZlbnRfY2xlYW51cChlc3cpOw0KKw0KKwlpZiAobWx4NV9jb3JlX2lzX2VjcGZfZXN3X21h bmFnZXIoZXN3LT5kZXYpKQ0KKwkJbnVtX3ZmcyA9IGVzdy0+ZXN3X2Z1bmNzLm51bV92ZnM7DQor CWVsc2UNCiAJCW51bV92ZnMgPSBlc3ctPmRldi0+cHJpdi5zcmlvdi5udW1fdmZzOw0KLQl9DQog DQogCW1seDVfcmRtYV9kaXNhYmxlX3JvY2UoZXN3LT5kZXYpOw0KIAllc3dfb2ZmbG9hZHNfZGV2 Y29tX2NsZWFudXAoZXN3KTsNCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxs YW5veC9tbHg1L2NvcmUvZXZlbnRzLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9t bHg1L2NvcmUvZXZlbnRzLmMNCmluZGV4IGE4MWU4ZDIxNjhkOC4uOGJjZjM0MjZiOWM2IDEwMDY0 NA0KLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2V2ZW50cy5j DQorKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZXZlbnRzLmMN CkBAIC0xMDgsOCArMTA4LDggQEAgc3RhdGljIGNvbnN0IGNoYXIgKmVxZV90eXBlX3N0cih1OCB0 eXBlKQ0KIAkJcmV0dXJuICJNTFg1X0VWRU5UX1RZUEVfU1RBTExfRVZFTlQiOw0KIAljYXNlIE1M WDVfRVZFTlRfVFlQRV9DTUQ6DQogCQlyZXR1cm4gIk1MWDVfRVZFTlRfVFlQRV9DTUQiOw0KLQlj YXNlIE1MWDVfRVZFTlRfVFlQRV9IT1NUX1BBUkFNU19DSEFOR0U6DQotCQlyZXR1cm4gIk1MWDVf RVZFTlRfVFlQRV9IT1NUX1BBUkFNU19DSEFOR0UiOw0KKwljYXNlIE1MWDVfRVZFTlRfVFlQRV9F U1dfRlVOQ1RJT05TX0NIQU5HRUQ6DQorCQlyZXR1cm4gIk1MWDVfRVZFTlRfVFlQRV9FU1dfRlVO Q1RJT05TX0NIQU5HRUQiOw0KIAljYXNlIE1MWDVfRVZFTlRfVFlQRV9QQUdFX1JFUVVFU1Q6DQog CQlyZXR1cm4gIk1MWDVfRVZFTlRfVFlQRV9QQUdFX1JFUVVFU1QiOw0KIAljYXNlIE1MWDVfRVZF TlRfVFlQRV9QQUdFX0ZBVUxUOg0KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvbWx4NS9kZXZp Y2UuaCBiL2luY2x1ZGUvbGludXgvbWx4NS9kZXZpY2UuaA0KaW5kZXggZmMyYjZlODA3ZjA2Li41 ZTc2MDA2N2FjNDEgMTAwNjQ0DQotLS0gYS9pbmNsdWRlL2xpbnV4L21seDUvZGV2aWNlLmgNCisr KyBiL2luY2x1ZGUvbGludXgvbWx4NS9kZXZpY2UuaA0KQEAgLTM0Miw3ICszNDIsNyBAQCBlbnVt IG1seDVfZXZlbnQgew0KIAlNTFg1X0VWRU5UX1RZUEVfUEFHRV9GQVVMVAkgICA9IDB4YywNCiAJ TUxYNV9FVkVOVF9UWVBFX05JQ19WUE9SVF9DSEFOR0UgICA9IDB4ZCwNCiANCi0JTUxYNV9FVkVO VF9UWVBFX0hPU1RfUEFSQU1TX0NIQU5HRSA9IDB4ZSwNCisJTUxYNV9FVkVOVF9UWVBFX0VTV19G VU5DVElPTlNfQ0hBTkdFRCA9IDB4ZSwNCiANCiAJTUxYNV9FVkVOVF9UWVBFX0RDVF9EUkFJTkVE ICAgICAgICA9IDB4MWMsDQogDQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9tbHg1L21seDVf aWZjLmggYi9pbmNsdWRlL2xpbnV4L21seDUvbWx4NV9pZmMuaA0KaW5kZXggZmVhYTkwOWJmMTRm Li4wNzgwMjQyYTc1N2EgMTAwNjQ0DQotLS0gYS9pbmNsdWRlL2xpbnV4L21seDUvbWx4NV9pZmMu aA0KKysrIGIvaW5jbHVkZS9saW51eC9tbHg1L21seDVfaWZjLmgNCkBAIC0xNTUsNyArMTU1LDcg QEAgZW51bSB7DQogCU1MWDVfQ01EX09QX1FVRVJZX1hSUV9EQ19QQVJBTVNfRU5UUlkgICAgID0g MHg3MjUsDQogCU1MWDVfQ01EX09QX1NFVF9YUlFfRENfUEFSQU1TX0VOVFJZICAgICAgID0gMHg3 MjYsDQogCU1MWDVfQ01EX09QX1FVRVJZX1hSUV9FUlJPUl9QQVJBTVMgICAgICAgID0gMHg3Mjcs DQotCU1MWDVfQ01EX09QX1FVRVJZX0hPU1RfUEFSQU1TICAgICAgICAgICAgID0gMHg3NDAsDQor CU1MWDVfQ01EX09QX1FVRVJZX0VTV19GVU5DVElPTlMgICAgICAgICAgID0gMHg3NDAsDQogCU1M WDVfQ01EX09QX1FVRVJZX1ZQT1JUX1NUQVRFICAgICAgICAgICAgID0gMHg3NTAsDQogCU1MWDVf Q01EX09QX01PRElGWV9WUE9SVF9TVEFURSAgICAgICAgICAgID0gMHg3NTEsDQogCU1MWDVfQ01E X09QX1FVRVJZX0VTV19WUE9SVF9DT05URVhUICAgICAgID0gMHg3NTIsDQpAQCAtOTcyMSw3ICs5 NzIxLDcgQEAgc3RydWN0IG1seDVfaWZjX2hvc3RfcGFyYW1zX2NvbnRleHRfYml0cyB7DQogCXU4 ICAgICAgICAgcmVzZXJ2ZWRfYXRfODBbMHgxODBdOw0KIH07DQogDQotc3RydWN0IG1seDVfaWZj X3F1ZXJ5X2hvc3RfcGFyYW1zX2luX2JpdHMgew0KK3N0cnVjdCBtbHg1X2lmY19xdWVyeV9lc3df ZnVuY3Rpb25zX2luX2JpdHMgew0KIAl1OCAgICAgICAgIG9wY29kZVsweDEwXTsNCiAJdTggICAg ICAgICByZXNlcnZlZF9hdF8xMFsweDEwXTsNCiANCkBAIC05NzMxLDcgKzk3MzEsNyBAQCBzdHJ1 Y3QgbWx4NV9pZmNfcXVlcnlfaG9zdF9wYXJhbXNfaW5fYml0cyB7DQogCXU4ICAgICAgICAgcmVz ZXJ2ZWRfYXRfNDBbMHg0MF07DQogfTsNCiANCi1zdHJ1Y3QgbWx4NV9pZmNfcXVlcnlfaG9zdF9w YXJhbXNfb3V0X2JpdHMgew0KK3N0cnVjdCBtbHg1X2lmY19xdWVyeV9lc3dfZnVuY3Rpb25zX291 dF9iaXRzIHsNCiAJdTggICAgICAgICBzdGF0dXNbMHg4XTsNCiAJdTggICAgICAgICByZXNlcnZl ZF9hdF84WzB4MThdOw0KIA0KLS0gDQoyLjIxLjANCg0K