From mboxrd@z Thu Jan 1 00:00:00 1970 From: Saeed Mahameed Subject: [PATCH mlx5-next 07/16] net/mlx5: Separate IRQ request/free from EQ life cycle Date: Mon, 10 Jun 2019 23:38:25 +0000 Message-ID: <20190610233733.12155-8-saeedm@mellanox.com> References: <20190610233733.12155-1-saeedm@mellanox.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20190610233733.12155-1-saeedm@mellanox.com> Content-Language: en-US Sender: netdev-owner@vger.kernel.org To: Saeed Mahameed , Leon Romanovsky Cc: "linux-rdma@vger.kernel.org" , "netdev@vger.kernel.org" , Yuval Avnery , Parav Pandit List-Id: linux-rdma@vger.kernel.org RnJvbTogWXV2YWwgQXZuZXJ5IDx5dXZhbGF2QG1lbGxhbm94LmNvbT4NCg0KSW5zdGVhZCBvZiBy ZXF1ZXN0aW5nIElSUSB3aXRoIGVxIGNyZWF0aW9uLCBJUlFzIHdpbGwgYmUgcmVxdWVzdGVkDQpi ZWZvcmUgRVEgdGFibGUgY3JlYXRpb24uDQpJbnN0ZWFkIG9mIGZyZWVpbmcgdGhlIElSUXMgYWZ0 ZXIgRVEgZGVzdHJveSwgZnJlZSBJUlFzIGFmdGVyIGVxDQp0YWJsZSBkZXN0cm95Lg0KDQpTaWdu ZWQtb2ZmLWJ5OiBZdXZhbCBBdm5lcnkgPHl1dmFsYXZAbWVsbGFub3guY29tPg0KUmV2aWV3ZWQt Ynk6IFBhcmF2IFBhbmRpdCA8cGFyYXZAbWVsbGFub3guY29tPg0KU2lnbmVkLW9mZi1ieTogU2Fl ZWQgTWFoYW1lZWQgPHNhZWVkbUBtZWxsYW5veC5jb20+DQotLS0NCiBkcml2ZXJzL2luZmluaWJh bmQvaHcvbWx4NS9vZHAuYyAgICAgICAgICAgICB8ICAgMiArLQ0KIGRyaXZlcnMvbmV0L2V0aGVy bmV0L21lbGxhbm94L21seDUvY29yZS9lcS5jIHwgMTIxICsrKysrKysrKysrKystLS0tLS0NCiBp bmNsdWRlL2xpbnV4L21seDUvZXEuaCAgICAgICAgICAgICAgICAgICAgICB8ICAgMyArLQ0KIDMg ZmlsZXMgY2hhbmdlZCwgODQgaW5zZXJ0aW9ucygrKSwgNDIgZGVsZXRpb25zKC0pDQoNCmRpZmYg LS1naXQgYS9kcml2ZXJzL2luZmluaWJhbmQvaHcvbWx4NS9vZHAuYyBiL2RyaXZlcnMvaW5maW5p YmFuZC9ody9tbHg1L29kcC5jDQppbmRleCBhYzQwYTRmZDU1OTguLjdjZTdjNWJmZTY4NSAxMDA2 NDQNCi0tLSBhL2RyaXZlcnMvaW5maW5pYmFuZC9ody9tbHg1L29kcC5jDQorKysgYi9kcml2ZXJz L2luZmluaWJhbmQvaHcvbWx4NS9vZHAuYw0KQEAgLTE1NjIsNyArMTU2Miw3IEBAIG1seDVfaWJf Y3JlYXRlX3BmX2VxKHN0cnVjdCBtbHg1X2liX2RldiAqZGV2LCBzdHJ1Y3QgbWx4NV9pYl9wZl9l cSAqZXEpDQogCQkubmVudCA9IE1MWDVfSUJfTlVNX1BGX0VRRSwNCiAJCS5uYiA9ICZlcS0+aXJx X25iLA0KIAl9Ow0KLQllcS0+Y29yZSA9IG1seDVfZXFfY3JlYXRlX2dlbmVyaWMoZGV2LT5tZGV2 LCAibWx4NV9pYl9wYWdlX2ZhdWx0X2VxIiwgJnBhcmFtKTsNCisJZXEtPmNvcmUgPSBtbHg1X2Vx X2NyZWF0ZV9nZW5lcmljKGRldi0+bWRldiwgJnBhcmFtKTsNCiAJaWYgKElTX0VSUihlcS0+Y29y ZSkpIHsNCiAJCWVyciA9IFBUUl9FUlIoZXEtPmNvcmUpOw0KIAkJZ290byBlcnJfd3E7DQpkaWZm IC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VxLmMgYi9k cml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZXEuYw0KaW5kZXggNTkwYzBm ZWZhYTI1Li5mMTg3MTY5Y2JlNzYgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9t ZWxsYW5veC9tbHg1L2NvcmUvZXEuYw0KKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFu b3gvbWx4NS9jb3JlL2VxLmMNCkBAIC0xMzQsNiArMTM0LDY0IEBAIHN0YXRpYyBpcnFyZXR1cm5f dCBtbHg1X2lycV9pbnRfaGFuZGxlcihpbnQgaXJxLCB2b2lkICpuaCkNCiAJcmV0dXJuIElSUV9I QU5ETEVEOw0KIH0NCiANCitzdGF0aWMgdm9pZCBpcnFfc2V0X25hbWUoY2hhciAqbmFtZSwgaW50 IHZlY2lkeCkNCit7DQorCXN3aXRjaCAodmVjaWR4KSB7DQorCWNhc2UgTUxYNV9FUV9DTURfSURY Og0KKwkJc25wcmludGYobmFtZSwgTUxYNV9NQVhfSVJRX05BTUUsICJtbHg1X2NtZF9lcSIpOw0K KwkJYnJlYWs7DQorCWNhc2UgTUxYNV9FUV9BU1lOQ19JRFg6DQorCQlzbnByaW50ZihuYW1lLCBN TFg1X01BWF9JUlFfTkFNRSwgIm1seDVfYXN5bmNfZXEiKTsNCisJCWJyZWFrOw0KKwljYXNlIE1M WDVfRVFfUEFHRVJFUV9JRFg6DQorCQlzbnByaW50ZihuYW1lLCBNTFg1X01BWF9JUlFfTkFNRSwg Im1seDVfcGFnZXNfZXEiKTsNCisJCWJyZWFrOw0KKwljYXNlIE1MWDVfRVFfUEZBVUxUX0lEWDoN CisJCXNucHJpbnRmKG5hbWUsIE1MWDVfTUFYX0lSUV9OQU1FLCAibWx4NV9pYl9wYWdlX2ZhdWx0 X2VxIik7DQorCQlicmVhazsNCisJZGVmYXVsdDoNCisJCXNucHJpbnRmKG5hbWUsIE1MWDVfTUFY X0lSUV9OQU1FLCAibWx4NV9jb21wJWQiLA0KKwkJCSB2ZWNpZHggLSBNTFg1X0VRX1ZFQ19DT01Q X0JBU0UpOw0KKwkJYnJlYWs7DQorCX0NCit9DQorDQorc3RhdGljIGludCByZXF1ZXN0X2lycXMo c3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwgaW50IG52ZWMpDQorew0KKwlzdHJ1Y3QgbWx4NV9w cml2ICpwcml2ID0gJmRldi0+cHJpdjsNCisJc3RydWN0IG1seDVfZXFfdGFibGUgKmVxX3RhYmxl Ow0KKwljaGFyIG5hbWVbTUxYNV9NQVhfSVJRX05BTUVdOw0KKwlpbnQgZXJyOw0KKwlpbnQgaTsN CisNCisJZXFfdGFibGUgPSBwcml2LT5lcV90YWJsZTsNCisJZm9yIChpID0gMDsgaSA8IG52ZWM7 IGkrKykgew0KKwkJc3RydWN0IG1seDVfaXJxX2luZm8gKmlycV9pbmZvID0gJmVxX3RhYmxlLT5p cnFfaW5mb1tpXTsNCisJCWludCBpcnFuID0gcGNpX2lycV92ZWN0b3IoZGV2LT5wZGV2LCBpKTsN CisNCisJCWlycV9zZXRfbmFtZShuYW1lLCBpKTsNCisJCUFUT01JQ19JTklUX05PVElGSUVSX0hF QUQoJmlycV9pbmZvLT5uaCk7DQorCQlzbnByaW50ZihpcnFfaW5mby0+bmFtZSwgTUxYNV9NQVhf SVJRX05BTUUsDQorCQkJICIlc0BwY2k6JXMiLCBuYW1lLCBwY2lfbmFtZShkZXYtPnBkZXYpKTsN CisJCWVyciA9IHJlcXVlc3RfaXJxKGlycW4sIG1seDVfaXJxX2ludF9oYW5kbGVyLCAwLCBpcnFf aW5mby0+bmFtZSwNCisJCQkJICAmaXJxX2luZm8tPm5oKTsNCisJCWlmIChlcnIpIHsNCisJCQlt bHg1X2NvcmVfZXJyKGRldiwgIkZhaWxlZCB0byByZXF1ZXN0IGlycVxuIik7DQorCQkJZ290byBl cnJfcmVxdWVzdF9pcnE7DQorCQl9DQorCX0NCisJcmV0dXJuIDA7DQorDQorZXJyX3JlcXVlc3Rf aXJxOg0KKwlmb3IgKDsgaSA+PSAwOyBpLS0pIHsNCisJCXN0cnVjdCBtbHg1X2lycV9pbmZvICpp cnFfaW5mbyA9ICZlcV90YWJsZS0+aXJxX2luZm9baV07DQorCQlpbnQgaXJxbiA9IHBjaV9pcnFf dmVjdG9yKGRldi0+cGRldiwgaSk7DQorDQorCQlmcmVlX2lycShpcnFuLCAmaXJxX2luZm8tPm5o KTsNCisJfQ0KKwlyZXR1cm4gIGVycjsNCit9DQorDQogc3RhdGljIGludCBtbHg1X2NtZF9kZXN0 cm95X2VxKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsIHU4IGVxbikNCiB7DQogCXUzMiBvdXRb TUxYNV9TVF9TWl9EVyhkZXN0cm95X2VxX291dCldID0gezB9Ow0KQEAgLTI3OCwxNCArMzM2LDEy IEBAIHN0YXRpYyB2b2lkIGluaXRfZXFfYnVmKHN0cnVjdCBtbHg1X2VxICplcSkNCiB9DQogDQog c3RhdGljIGludA0KLWNyZWF0ZV9tYXBfZXEoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwgc3Ry dWN0IG1seDVfZXEgKmVxLCBjb25zdCBjaGFyICpuYW1lLA0KK2NyZWF0ZV9tYXBfZXEoc3RydWN0 IG1seDVfY29yZV9kZXYgKmRldiwgc3RydWN0IG1seDVfZXEgKmVxLA0KIAkgICAgICBzdHJ1Y3Qg bWx4NV9lcV9wYXJhbSAqcGFyYW0pDQogew0KLQlzdHJ1Y3QgbWx4NV9lcV90YWJsZSAqZXFfdGFi bGUgPSBkZXYtPnByaXYuZXFfdGFibGU7DQogCXN0cnVjdCBtbHg1X2NxX3RhYmxlICpjcV90YWJs ZSA9ICZlcS0+Y3FfdGFibGU7DQogCXUzMiBvdXRbTUxYNV9TVF9TWl9EVyhjcmVhdGVfZXFfb3V0 KV0gPSB7MH07DQogCXN0cnVjdCBtbHg1X3ByaXYgKnByaXYgPSAmZGV2LT5wcml2Ow0KLQlzdHJ1 Y3QgbWx4NV9pcnFfaW5mbyAqaXJxX2luZm87DQogCXU4IHZlY2lkeCA9IHBhcmFtLT5pbmRleDsN CiAJX19iZTY0ICpwYXM7DQogCXZvaWQgKmVxYzsNCkBAIC0zMzUsMTEgKzM5MSw2IEBAIGNyZWF0 ZV9tYXBfZXEoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwgc3RydWN0IG1seDVfZXEgKmVxLCBj b25zdCBjaGFyICpuYW1lLA0KIAlpZiAoZXJyKQ0KIAkJZ290byBlcnJfaW47DQogDQotCWlycV9p bmZvID0gbWx4NV9pcnFfZ2V0KGRldiwgdmVjaWR4KTsNCi0JQVRPTUlDX0lOSVRfTk9USUZJRVJf SEVBRCgmaXJxX2luZm8tPm5oKTsNCi0Jc25wcmludGYoaXJxX2luZm8tPm5hbWUsIE1MWDVfTUFY X0lSUV9OQU1FLA0KLQkJICIlc0BwY2k6JXMiLCBuYW1lLCBwY2lfbmFtZShkZXYtPnBkZXYpKTsN Ci0NCiAJZXEtPnZlY2lkeCA9IHZlY2lkeDsNCiAJZXEtPmVxbiA9IE1MWDVfR0VUKGNyZWF0ZV9l cV9vdXQsIG91dCwgZXFfbnVtYmVyKTsNCiAJZXEtPmlycW4gPSBwY2lfaXJxX3ZlY3RvcihkZXYt PnBkZXYsIHZlY2lkeCk7DQpAQCAtMzQ3LDE1ICszOTgsMTAgQEAgY3JlYXRlX21hcF9lcShzdHJ1 Y3QgbWx4NV9jb3JlX2RldiAqZGV2LCBzdHJ1Y3QgbWx4NV9lcSAqZXEsIGNvbnN0IGNoYXIgKm5h bWUsDQogCWVxLT5kb29yYmVsbCA9IHByaXYtPnVhci0+bWFwICsgTUxYNV9FUV9ET09SQkVMX09G RlNFVDsNCiAJZXEtPmlycV9uYiA9IHBhcmFtLT5uYjsNCiANCi0JZXJyID0gcmVxdWVzdF9pcnEo ZXEtPmlycW4sIG1seDVfaXJxX2ludF9oYW5kbGVyLCAwLCBpcnFfaW5mby0+bmFtZSwNCi0JCQkg ICZpcnFfaW5mby0+bmgpOw0KKwllcnIgPSBtbHg1X2lycV9hdHRhY2hfbmIobWx4NV9pcnFfZ2V0 KGRldiwgdmVjaWR4KSwgcGFyYW0tPm5iKTsNCiAJaWYgKGVycikNCiAJCWdvdG8gZXJyX2VxOw0K IA0KLQllcnIgPSBtbHg1X2lycV9hdHRhY2hfbmIoaXJxX2luZm8sIHBhcmFtLT5uYik7DQotCWlm IChlcnIpDQotCQlnb3RvIGVycl9pcnE7DQotDQogCWVyciA9IG1seDVfZGVidWdfZXFfYWRkKGRl diwgZXEpOw0KIAlpZiAoZXJyKQ0KIAkJZ290byBlcnJfZGV0YWNoOw0KQEAgLTM2OCwxMCArNDE0 LDcgQEAgY3JlYXRlX21hcF9lcShzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LCBzdHJ1Y3QgbWx4 NV9lcSAqZXEsIGNvbnN0IGNoYXIgKm5hbWUsDQogCXJldHVybiAwOw0KIA0KIGVycl9kZXRhY2g6 DQotCW1seDVfaXJxX2RldGFjaF9uYihpcnFfaW5mbywgcGFyYW0tPm5iKTsNCi0NCi1lcnJfaXJx Og0KLQlmcmVlX2lycShlcS0+aXJxbiwgJmVxX3RhYmxlLT5pcnFfaW5mb1t2ZWNpZHhdLm5oKTsN CisJbWx4NV9pcnFfZGV0YWNoX25iKG1seDVfaXJxX2dldChkZXYsIHZlY2lkeCksIGVxLT5pcnFf bmIpOw0KIA0KIGVycl9lcToNCiAJbWx4NV9jbWRfZGVzdHJveV9lcShkZXYsIGVxLT5lcW4pOw0K QEAgLTM4NiwxOSArNDI5LDE0IEBAIGNyZWF0ZV9tYXBfZXEoc3RydWN0IG1seDVfY29yZV9kZXYg KmRldiwgc3RydWN0IG1seDVfZXEgKmVxLCBjb25zdCBjaGFyICpuYW1lLA0KIA0KIHN0YXRpYyBp bnQgZGVzdHJveV91bm1hcF9lcShzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LCBzdHJ1Y3QgbWx4 NV9lcSAqZXEpDQogew0KLQlzdHJ1Y3QgbWx4NV9lcV90YWJsZSAqZXFfdGFibGUgPSBkZXYtPnBy aXYuZXFfdGFibGU7DQotCXN0cnVjdCBtbHg1X2lycV9pbmZvICppcnFfaW5mbzsNCiAJaW50IGVy cjsNCiANCi0JaXJxX2luZm8gPSAmZXFfdGFibGUtPmlycV9pbmZvW2VxLT52ZWNpZHhdOw0KLQ0K IAltbHg1X2RlYnVnX2VxX3JlbW92ZShkZXYsIGVxKTsNCiANCi0JZXJyID0gbWx4NV9pcnFfZGV0 YWNoX25iKGlycV9pbmZvLCBlcS0+aXJxX25iKTsNCisJZXJyID0gbWx4NV9pcnFfZGV0YWNoX25i KG1seDVfaXJxX2dldChkZXYsIGVxLT52ZWNpZHgpLCBlcS0+aXJxX25iKTsNCiAJaWYgKGVycikN CiAJCW1seDVfY29yZV93YXJuKGVxLT5kZXYsICJlcSBmYWlsZWQgdG8gZGV0YWNoIGZyb20gaXJx LiBlcnIgJWQiLA0KIAkJCSAgICAgICBlcnIpOw0KLQlmcmVlX2lycShlcS0+aXJxbiwgJmVxX3Rh YmxlLT5pcnFfaW5mb1tlcS0+dmVjaWR4XS5uaCk7DQogCWVyciA9IG1seDVfY21kX2Rlc3Ryb3lf ZXEoZGV2LCBlcS0+ZXFuKTsNCiAJaWYgKGVycikNCiAJCW1seDVfY29yZV93YXJuKGRldiwgImZh aWxlZCB0byBkZXN0cm95IGEgcHJldmlvdXNseSBjcmVhdGVkIGVxOiBlcW4gJWRcbiIsDQpAQCAt NDc5LDcgKzUxNyw3IEBAIHZvaWQgbWx4NV9lcV90YWJsZV9jbGVhbnVwKHN0cnVjdCBtbHg1X2Nv cmVfZGV2ICpkZXYpDQogDQogLyogQXN5bmMgRVFzICovDQogDQotc3RhdGljIGludCBjcmVhdGVf YXN5bmNfZXEoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwgY29uc3QgY2hhciAqbmFtZSwNCitz dGF0aWMgaW50IGNyZWF0ZV9hc3luY19lcShzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LA0KIAkJ CSAgIHN0cnVjdCBtbHg1X2VxICplcSwgc3RydWN0IG1seDVfZXFfcGFyYW0gKnBhcmFtKQ0KIHsN CiAJc3RydWN0IG1seDVfZXFfdGFibGUgKmVxX3RhYmxlID0gZGV2LT5wcml2LmVxX3RhYmxlOw0K QEAgLTQ5MSw3ICs1MjksNyBAQCBzdGF0aWMgaW50IGNyZWF0ZV9hc3luY19lcShzdHJ1Y3QgbWx4 NV9jb3JlX2RldiAqZGV2LCBjb25zdCBjaGFyICpuYW1lLA0KIAkJZ290byB1bmxvY2s7DQogCX0N CiANCi0JZXJyID0gY3JlYXRlX21hcF9lcShkZXYsIGVxLCBuYW1lLCBwYXJhbSk7DQorCWVyciA9 IGNyZWF0ZV9tYXBfZXEoZGV2LCBlcSwgcGFyYW0pOw0KIHVubG9jazoNCiAJbXV0ZXhfdW5sb2Nr KCZlcV90YWJsZS0+bG9jayk7DQogCXJldHVybiBlcnI7DQpAQCAtNTk2LDcgKzYzNCw3IEBAIHN0 YXRpYyBpbnQgY3JlYXRlX2FzeW5jX2VxcyhzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2KQ0KIAkJ Lm5lbnQgPSBNTFg1X05VTV9DTURfRVFFLA0KIAkJLm5iID0gJnRhYmxlLT5jbWRfZXEuaXJxX25i LA0KIAl9Ow0KLQllcnIgPSBjcmVhdGVfYXN5bmNfZXEoZGV2LCAibWx4NV9jbWRfZXEiLCAmdGFi bGUtPmNtZF9lcS5jb3JlLCAmcGFyYW0pOw0KKwllcnIgPSBjcmVhdGVfYXN5bmNfZXEoZGV2LCAm dGFibGUtPmNtZF9lcS5jb3JlLCAmcGFyYW0pOw0KIAlpZiAoZXJyKSB7DQogCQltbHg1X2NvcmVf d2FybihkZXYsICJmYWlsZWQgdG8gY3JlYXRlIGNtZCBFUSAlZFxuIiwgZXJyKTsNCiAJCWdvdG8g ZXJyMDsNCkBAIC02MTEsOCArNjQ5LDcgQEAgc3RhdGljIGludCBjcmVhdGVfYXN5bmNfZXFzKHN0 cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYpDQogCQkubmVudCA9IE1MWDVfTlVNX0FTWU5DX0VRRSwN CiAJCS5uYiA9ICZ0YWJsZS0+YXN5bmNfZXEuaXJxX25iLA0KIAl9Ow0KLQllcnIgPSBjcmVhdGVf YXN5bmNfZXEoZGV2LCAibWx4NV9hc3luY19lcSIsDQotCQkJICAgICAgJnRhYmxlLT5hc3luY19l cS5jb3JlLCAmcGFyYW0pOw0KKwllcnIgPSBjcmVhdGVfYXN5bmNfZXEoZGV2LCAmdGFibGUtPmFz eW5jX2VxLmNvcmUsICZwYXJhbSk7DQogCWlmIChlcnIpIHsNCiAJCW1seDVfY29yZV93YXJuKGRl diwgImZhaWxlZCB0byBjcmVhdGUgYXN5bmMgRVEgJWRcbiIsIGVycik7DQogCQlnb3RvIGVycjE7 DQpAQCAtNjI1LDggKzY2Miw3IEBAIHN0YXRpYyBpbnQgY3JlYXRlX2FzeW5jX2VxcyhzdHJ1Y3Qg bWx4NV9jb3JlX2RldiAqZGV2KQ0KIAkJLm5lbnQgPSAvKiBUT0RPOiBzcmlvdiBtYXhfdmYgKyAq LyAxLA0KIAkJLm5iID0gJnRhYmxlLT5wYWdlc19lcS5pcnFfbmIsDQogCX07DQotCWVyciA9IGNy ZWF0ZV9hc3luY19lcShkZXYsICJtbHg1X3BhZ2VzX2VxIiwNCi0JCQkgICAgICAmdGFibGUtPnBh Z2VzX2VxLmNvcmUsICZwYXJhbSk7DQorCWVyciA9IGNyZWF0ZV9hc3luY19lcShkZXYsICZ0YWJs ZS0+cGFnZXNfZXEuY29yZSwgJnBhcmFtKTsNCiAJaWYgKGVycikgew0KIAkJbWx4NV9jb3JlX3dh cm4oZGV2LCAiZmFpbGVkIHRvIGNyZWF0ZSBwYWdlcyBFUSAlZFxuIiwgZXJyKTsNCiAJCWdvdG8g ZXJyMjsNCkBAIC02ODksNyArNzI1LDcgQEAgdm9pZCBtbHg1X2VxX3N5bmNocm9uaXplX2NtZF9p cnEoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldikNCiAgKiBOZWVkZWQgRm9yIFJETUEgT0RQIEVR IGZvciBub3cNCiAgKi8NCiBzdHJ1Y3QgbWx4NV9lcSAqDQotbWx4NV9lcV9jcmVhdGVfZ2VuZXJp YyhzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LCBjb25zdCBjaGFyICpuYW1lLA0KK21seDVfZXFf Y3JlYXRlX2dlbmVyaWMoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwNCiAJCSAgICAgICBzdHJ1 Y3QgbWx4NV9lcV9wYXJhbSAqcGFyYW0pDQogew0KIAlzdHJ1Y3QgbWx4NV9lcSAqZXEgPSBrdnph bGxvYyhzaXplb2YoKmVxKSwgR0ZQX0tFUk5FTCk7DQpAQCAtNjk4LDcgKzczNCw3IEBAIG1seDVf ZXFfY3JlYXRlX2dlbmVyaWMoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwgY29uc3QgY2hhciAq bmFtZSwNCiAJaWYgKCFlcSkNCiAJCXJldHVybiBFUlJfUFRSKC1FTk9NRU0pOw0KIA0KLQllcnIg PSBjcmVhdGVfYXN5bmNfZXEoZGV2LCBuYW1lLCBlcSwgcGFyYW0pOw0KKwllcnIgPSBjcmVhdGVf YXN5bmNfZXEoZGV2LCBlcSwgcGFyYW0pOw0KIAlpZiAoZXJyKSB7DQogCQlrdmZyZWUoZXEpOw0K IAkJZXEgPSBFUlJfUFRSKGVycik7DQpAQCAtODQ1LDcgKzg4MSw2IEBAIHN0YXRpYyB2b2lkIGRl c3Ryb3lfY29tcF9lcXMoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldikNCiBzdGF0aWMgaW50IGNy ZWF0ZV9jb21wX2VxcyhzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2KQ0KIHsNCiAJc3RydWN0IG1s eDVfZXFfdGFibGUgKnRhYmxlID0gZGV2LT5wcml2LmVxX3RhYmxlOw0KLQljaGFyIG5hbWVbTUxY NV9NQVhfSVJRX05BTUVdOw0KIAlzdHJ1Y3QgbWx4NV9lcV9jb21wICplcTsNCiAJaW50IG5jb21w X3ZlYzsNCiAJaW50IG5lbnQ7DQpAQCAtODc5LDcgKzkxNCw2IEBAIHN0YXRpYyBpbnQgY3JlYXRl X2NvbXBfZXFzKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYpDQogI2lmZGVmIENPTkZJR19SRlNf QUNDRUwNCiAJCWlycV9jcHVfcm1hcF9hZGQodGFibGUtPnJtYXAsIHBjaV9pcnFfdmVjdG9yKGRl di0+cGRldiwgdmVjaWR4KSk7DQogI2VuZGlmDQotCQlzbnByaW50ZihuYW1lLCBNTFg1X01BWF9J UlFfTkFNRSwgIm1seDVfY29tcCVkIiwgaSk7DQogCQllcS0+aXJxX25iLm5vdGlmaWVyX2NhbGwg PSBtbHg1X2VxX2NvbXBfaW50Ow0KIAkJcGFyYW0gPSAoc3RydWN0IG1seDVfZXFfcGFyYW0pIHsN CiAJCQkuaW5kZXggPSB2ZWNpZHgsDQpAQCAtODg3LDcgKzkyMSw3IEBAIHN0YXRpYyBpbnQgY3Jl YXRlX2NvbXBfZXFzKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYpDQogCQkJLm5lbnQgPSBuZW50 LA0KIAkJCS5uYiA9ICZlcS0+aXJxX25iLA0KIAkJfTsNCi0JCWVyciA9IGNyZWF0ZV9tYXBfZXEo ZGV2LCAmZXEtPmNvcmUsIG5hbWUsICZwYXJhbSk7DQorCQllcnIgPSBjcmVhdGVfbWFwX2VxKGRl diwgJmVxLT5jb3JlLCAmcGFyYW0pOw0KIAkJaWYgKGVycikgew0KIAkJCWtmcmVlKGVxKTsNCiAJ CQlnb3RvIGNsZWFuOw0KQEAgLTEwMTgsOCArMTA1MiwxNCBAQCBzdGF0aWMgaW50IGFsbG9jX2ly cV92ZWN0b3JzKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYpDQogDQogCXRhYmxlLT5udW1fY29t cF92ZWN0b3JzID0gbnZlYyAtIE1MWDVfRVFfVkVDX0NPTVBfQkFTRTsNCiANCisJZXJyID0gcmVx dWVzdF9pcnFzKGRldiwgbnZlYyk7DQorCWlmIChlcnIpDQorCQlnb3RvIGVycl9mcmVlX2lycXM7 DQorDQogCXJldHVybiAwOw0KIA0KK2Vycl9mcmVlX2lycXM6DQorCXBjaV9mcmVlX2lycV92ZWN0 b3JzKGRldi0+cGRldik7DQogZXJyX2ZyZWVfaXJxX2luZm86DQogCWtmcmVlKHRhYmxlLT5pcnFf aW5mbyk7DQogCXJldHVybiBlcnI7DQpAQCAtMTAyNywxMCArMTA2NywxMyBAQCBzdGF0aWMgaW50 IGFsbG9jX2lycV92ZWN0b3JzKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYpDQogDQogc3RhdGlj IHZvaWQgZnJlZV9pcnFfdmVjdG9ycyhzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2KQ0KIHsNCi0J c3RydWN0IG1seDVfcHJpdiAqcHJpdiA9ICZkZXYtPnByaXY7DQorCXN0cnVjdCBtbHg1X2VxX3Rh YmxlICp0YWJsZSA9IGRldi0+cHJpdi5lcV90YWJsZTsNCisJaW50IGk7DQogDQorCWZvciAoaSA9 IDA7IGkgPCB0YWJsZS0+bnVtX2NvbXBfdmVjdG9ycyArIE1MWDVfRVFfVkVDX0NPTVBfQkFTRTsg aSsrKQ0KKwkJZnJlZV9pcnEocGNpX2lycV92ZWN0b3IoZGV2LT5wZGV2LCBpKSwgJnRhYmxlLT5p cnFfaW5mb1tpXS5uaCk7DQogCXBjaV9mcmVlX2lycV92ZWN0b3JzKGRldi0+cGRldik7DQotCWtm cmVlKHByaXYtPmVxX3RhYmxlLT5pcnFfaW5mbyk7DQorCWtmcmVlKHRhYmxlLT5pcnFfaW5mbyk7 DQogfQ0KIA0KIGludCBtbHg1X2VxX3RhYmxlX2NyZWF0ZShzdHJ1Y3QgbWx4NV9jb3JlX2RldiAq ZGV2KQ0KQEAgLTEwMzksNyArMTA4Miw3IEBAIGludCBtbHg1X2VxX3RhYmxlX2NyZWF0ZShzdHJ1 Y3QgbWx4NV9jb3JlX2RldiAqZGV2KQ0KIA0KIAllcnIgPSBhbGxvY19pcnFfdmVjdG9ycyhkZXYp Ow0KIAlpZiAoZXJyKSB7DQotCQltbHg1X2NvcmVfZXJyKGRldiwgImFsbG9jIGlycSB2ZWN0b3Jz IGZhaWxlZFxuIik7DQorCQltbHg1X2NvcmVfZXJyKGRldiwgIkZhaWxlZCB0byBjcmVhdGUgSVJR IHZlY3RvcnNcbiIpOw0KIAkJcmV0dXJuIGVycjsNCiAJfQ0KIA0KZGlmZiAtLWdpdCBhL2luY2x1 ZGUvbGludXgvbWx4NS9lcS5oIGIvaW5jbHVkZS9saW51eC9tbHg1L2VxLmgNCmluZGV4IDc5MDlm MWZmMTk3Yy4uNzNhYjY1OGFmNzY0IDEwMDY0NA0KLS0tIGEvaW5jbHVkZS9saW51eC9tbHg1L2Vx LmgNCisrKyBiL2luY2x1ZGUvbGludXgvbWx4NS9lcS5oDQpAQCAtMzAsOCArMzAsNyBAQCBzdHJ1 Y3QgbWx4NV9lcV9wYXJhbSB7DQogfTsNCiANCiBzdHJ1Y3QgbWx4NV9lcSAqDQotbWx4NV9lcV9j cmVhdGVfZ2VuZXJpYyhzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LCBjb25zdCBjaGFyICpuYW1l LA0KLQkJICAgICAgIHN0cnVjdCBtbHg1X2VxX3BhcmFtICpwYXJhbSk7DQorbWx4NV9lcV9jcmVh dGVfZ2VuZXJpYyhzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LCBzdHJ1Y3QgbWx4NV9lcV9wYXJh bSAqcGFyYW0pOw0KIGludA0KIG1seDVfZXFfZGVzdHJveV9nZW5lcmljKHN0cnVjdCBtbHg1X2Nv cmVfZGV2ICpkZXYsIHN0cnVjdCBtbHg1X2VxICplcSk7DQogDQotLSANCjIuMjEuMA0KDQo=