From mboxrd@z Thu Jan 1 00:00:00 1970 From: Saeed Mahameed Subject: [PATCH mlx5-next 08/16] net/mlx5: Separate IRQ data from EQ table data Date: Mon, 10 Jun 2019 23:38:27 +0000 Message-ID: <20190610233733.12155-9-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 RnJvbTogWXV2YWwgQXZuZXJ5IDx5dXZhbGF2QG1lbGxhbm94LmNvbT4NCg0KSVJRIHRhYmxlIHNo b3VsZCBvbmx5IGV4aXN0IGZvciBtbHg1X2NvcmVfZGV2IGZvciBQRiBhbmQgVkYgb25seS4NCkVR IHRhYmxlIG9mIG1lZGlhdGVkIGRldmljZXMgc2hvdWxkIGhvbGQgYSBwb2ludGVyIHRvIHRoZSBJ UlEgdGFibGUNCm9mIHRoZSBwYXJlbnQgUENJIGRldmljZS4NCg0KU2lnbmVkLW9mZi1ieTogWXV2 YWwgQXZuZXJ5IDx5dXZhbGF2QG1lbGxhbm94LmNvbT4NClJldmlld2VkLWJ5OiBQYXJhdiBQYW5k aXQgPHBhcmF2QG1lbGxhbm94LmNvbT4NClNpZ25lZC1vZmYtYnk6IFNhZWVkIE1haGFtZWVkIDxz YWVlZG1AbWVsbGFub3guY29tPg0KLS0tDQogZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gv bWx4NS9jb3JlL2VxLmMgIHwgMTI1ICsrKysrKysrKysrKy0tLS0tLQ0KIC4uLi9uZXQvZXRoZXJu ZXQvbWVsbGFub3gvbWx4NS9jb3JlL21haW4uYyAgICB8ICAxMSArLQ0KIC4uLi9ldGhlcm5ldC9t ZWxsYW5veC9tbHg1L2NvcmUvbWx4NV9jb3JlLmggICB8ICAgMyArDQogaW5jbHVkZS9saW51eC9t bHg1L2RyaXZlci5oICAgICAgICAgICAgICAgICAgIHwgICAzICsNCiA0IGZpbGVzIGNoYW5nZWQs IDk4IGluc2VydGlvbnMoKyksIDQ0IGRlbGV0aW9ucygtKQ0KDQpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VxLmMgYi9kcml2ZXJzL25ldC9ldGhl cm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZXEuYw0KaW5kZXggZjE4NzE2OWNiZTc2Li5jZGZhMzVl YzAyZmEgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2Nv cmUvZXEuYw0KKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2Vx LmMNCkBAIC03Nyw2ICs3NywxNCBAQCBzdHJ1Y3QgbWx4NV9pcnFfaW5mbyB7DQogCWNoYXIgbmFt ZVtNTFg1X01BWF9JUlFfTkFNRV07DQogfTsNCiANCitzdHJ1Y3QgbWx4NV9pcnFfdGFibGUgew0K KwlzdHJ1Y3QgbWx4NV9pcnFfaW5mbyAqaXJxX2luZm87DQorCWludCBudmVjOw0KKyNpZmRlZiBD T05GSUdfUkZTX0FDQ0VMDQorCXN0cnVjdCBjcHVfcm1hcCAqcm1hcDsNCisjZW5kaWYNCit9Ow0K Kw0KIHN0cnVjdCBtbHg1X2VxX3RhYmxlIHsNCiAJc3RydWN0IGxpc3RfaGVhZCAgICAgICAgY29t cF9lcXNfbGlzdDsNCiAJc3RydWN0IG1seDVfZXFfYXN5bmMgICAgcGFnZXNfZXE7DQpAQCAtODks MTEgKzk3LDggQEAgc3RydWN0IG1seDVfZXFfdGFibGUgew0KIAlzdHJ1Y3QgbWx4NV9uYiAgICAg ICAgICBjcV9lcnJfbmI7DQogDQogCXN0cnVjdCBtdXRleCAgICAgICAgICAgIGxvY2s7IC8qIHN5 bmMgYXN5bmMgZXFzIGNyZWF0aW9ucyAqLw0KLQlpbnQJCQludW1fY29tcF92ZWN0b3JzOw0KLQlz dHJ1Y3QgbWx4NV9pcnFfaW5mbwkqaXJxX2luZm87DQotI2lmZGVmIENPTkZJR19SRlNfQUNDRUwN Ci0Jc3RydWN0IGNwdV9ybWFwICAgICAgICAgKnJtYXA7DQotI2VuZGlmDQorCWludAkJCW51bV9j b21wX2VxczsNCisJc3RydWN0IG1seDVfaXJxX3RhYmxlCSppcnFfdGFibGU7DQogfTsNCiANCiAj ZGVmaW5lIE1MWDVfQVNZTkNfRVZFTlRfTUFTSyAoKDF1bGwgPDwgTUxYNV9FVkVOVF9UWVBFX1BB VEhfTUlHKQkgICAgfCBcDQpAQCAtMTA5LDExICsxMTQsMzMgQEAgc3RydWN0IG1seDVfZXFfdGFi bGUgew0KIAkJCSAgICAgICAoMXVsbCA8PCBNTFg1X0VWRU5UX1RZUEVfU1JRX0xBU1RfV1FFKQkg ICAgfCBcDQogCQkJICAgICAgICgxdWxsIDw8IE1MWDVfRVZFTlRfVFlQRV9TUlFfUlFfTElNSVQp KQ0KIA0KK2ludCBtbHg1X2lycV90YWJsZV9pbml0KHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYp DQorew0KKwlzdHJ1Y3QgbWx4NV9pcnFfdGFibGUgKmlycV90YWJsZTsNCisNCisJaXJxX3RhYmxl ID0ga3Z6YWxsb2Moc2l6ZW9mKCppcnFfdGFibGUpLCBHRlBfS0VSTkVMKTsNCisJaWYgKCFpcnFf dGFibGUpDQorCQlyZXR1cm4gLUVOT01FTTsNCisNCisJZGV2LT5wcml2LmlycV90YWJsZSA9IGly cV90YWJsZTsNCisJcmV0dXJuIDA7DQorfQ0KKw0KK3ZvaWQgbWx4NV9pcnFfdGFibGVfY2xlYW51 cChzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2KQ0KK3sNCisJa3ZmcmVlKGRldi0+cHJpdi5pcnFf dGFibGUpOw0KK30NCisNCitzdGF0aWMgaW50IG1seDVfaXJxX2dldF9udW1fY29tcChzdHJ1Y3Qg bWx4NV9pcnFfdGFibGUgKnRhYmxlKQ0KK3sNCisJcmV0dXJuIHRhYmxlLT5udmVjIC0gTUxYNV9F UV9WRUNfQ09NUF9CQVNFOw0KK30NCisNCiBzdGF0aWMgc3RydWN0IG1seDVfaXJxX2luZm8gKm1s eDVfaXJxX2dldChzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LCBpbnQgdmVjaWR4KQ0KIHsNCi0J c3RydWN0IG1seDVfZXFfdGFibGUgKmVxX3RhYmxlID0gZGV2LT5wcml2LmVxX3RhYmxlOw0KKwlz dHJ1Y3QgbWx4NV9pcnFfdGFibGUgKmlycV90YWJsZSA9IGRldi0+cHJpdi5pcnFfdGFibGU7DQog DQotCXJldHVybiAmZXFfdGFibGUtPmlycV9pbmZvW3ZlY2lkeF07DQorCXJldHVybiAmaXJxX3Rh YmxlLT5pcnFfaW5mb1t2ZWNpZHhdOw0KIH0NCiANCiBzdGF0aWMgaW50IG1seDVfaXJxX2F0dGFj aF9uYihzdHJ1Y3QgbWx4NV9pcnFfaW5mbyAqaXJxLA0KQEAgLTE1OCwxNSArMTg1LDEyIEBAIHN0 YXRpYyB2b2lkIGlycV9zZXRfbmFtZShjaGFyICpuYW1lLCBpbnQgdmVjaWR4KQ0KIA0KIHN0YXRp YyBpbnQgcmVxdWVzdF9pcnFzKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsIGludCBudmVjKQ0K IHsNCi0Jc3RydWN0IG1seDVfcHJpdiAqcHJpdiA9ICZkZXYtPnByaXY7DQotCXN0cnVjdCBtbHg1 X2VxX3RhYmxlICplcV90YWJsZTsNCiAJY2hhciBuYW1lW01MWDVfTUFYX0lSUV9OQU1FXTsNCiAJ aW50IGVycjsNCiAJaW50IGk7DQogDQotCWVxX3RhYmxlID0gcHJpdi0+ZXFfdGFibGU7DQogCWZv ciAoaSA9IDA7IGkgPCBudmVjOyBpKyspIHsNCi0JCXN0cnVjdCBtbHg1X2lycV9pbmZvICppcnFf aW5mbyA9ICZlcV90YWJsZS0+aXJxX2luZm9baV07DQorCQlzdHJ1Y3QgbWx4NV9pcnFfaW5mbyAq aXJxX2luZm8gPSBtbHg1X2lycV9nZXQoZGV2LCBpKTsNCiAJCWludCBpcnFuID0gcGNpX2lycV92 ZWN0b3IoZGV2LT5wZGV2LCBpKTsNCiANCiAJCWlycV9zZXRfbmFtZShuYW1lLCBpKTsNCkBAIC0x ODQsNyArMjA4LDcgQEAgc3RhdGljIGludCByZXF1ZXN0X2lycXMoc3RydWN0IG1seDVfY29yZV9k ZXYgKmRldiwgaW50IG52ZWMpDQogDQogZXJyX3JlcXVlc3RfaXJxOg0KIAlmb3IgKDsgaSA+PSAw OyBpLS0pIHsNCi0JCXN0cnVjdCBtbHg1X2lycV9pbmZvICppcnFfaW5mbyA9ICZlcV90YWJsZS0+ aXJxX2luZm9baV07DQorCQlzdHJ1Y3QgbWx4NV9pcnFfaW5mbyAqaXJxX2luZm8gPSBtbHg1X2ly cV9nZXQoZGV2LCBpKTsNCiAJCWludCBpcnFuID0gcGNpX2lycV92ZWN0b3IoZGV2LT5wZGV2LCBp KTsNCiANCiAJCWZyZWVfaXJxKGlycW4sICZpcnFfaW5mby0+bmgpOw0KQEAgLTUwMSw2ICs1MjUs NyBAQCBpbnQgbWx4NV9lcV90YWJsZV9pbml0KHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYpDQog CWZvciAoaSA9IDA7IGkgPCBNTFg1X0VWRU5UX1RZUEVfTUFYOyBpKyspDQogCQlBVE9NSUNfSU5J VF9OT1RJRklFUl9IRUFEKCZlcV90YWJsZS0+bmhbaV0pOw0KIA0KKwllcV90YWJsZS0+aXJxX3Rh YmxlID0gZGV2LT5wcml2LmlycV90YWJsZTsNCiAJcmV0dXJuIDA7DQogDQoga3ZmcmVlX2VxX3Rh YmxlOg0KQEAgLTc5NiwxMCArODIxLDEzIEBAIEVYUE9SVF9TWU1CT0wobWx4NV9lcV91cGRhdGVf Y2kpOw0KIA0KIHN0YXRpYyBpbnQgc2V0X2NvbXBfaXJxX2FmZmluaXR5X2hpbnQoc3RydWN0IG1s eDVfY29yZV9kZXYgKm1kZXYsIGludCBpKQ0KIHsNCi0Jc3RydWN0IG1seDVfcHJpdiAqcHJpdiAg PSAmbWRldi0+cHJpdjsNCiAJaW50IHZlY2lkeCA9IE1MWDVfRVFfVkVDX0NPTVBfQkFTRSArIGk7 DQotCWludCBpcnEgPSBwY2lfaXJxX3ZlY3RvcihtZGV2LT5wZGV2LCB2ZWNpZHgpOw0KLQlzdHJ1 Y3QgbWx4NV9pcnFfaW5mbyAqaXJxX2luZm8gPSAmcHJpdi0+ZXFfdGFibGUtPmlycV9pbmZvW3Zl Y2lkeF07DQorCXN0cnVjdCBtbHg1X3ByaXYgKnByaXYgID0gJm1kZXYtPnByaXY7DQorCXN0cnVj dCBtbHg1X2lycV9pbmZvICppcnFfaW5mbzsNCisJaW50IGlycTsNCisNCisJaXJxX2luZm8gPSBt bHg1X2lycV9nZXQobWRldiwgdmVjaWR4KTsNCisJaXJxID0gcGNpX2lycV92ZWN0b3IobWRldi0+ cGRldiwgdmVjaWR4KTsNCiANCiAJaWYgKCF6YWxsb2NfY3B1bWFza192YXIoJmlycV9pbmZvLT5t YXNrLCBHRlBfS0VSTkVMKSkgew0KIAkJbWx4NV9jb3JlX3dhcm4obWRldiwgInphbGxvY19jcHVt YXNrX3ZhciBmYWlsZWQiKTsNCkBAIC04MTksMjAgKzg0NywyMiBAQCBzdGF0aWMgaW50IHNldF9j b21wX2lycV9hZmZpbml0eV9oaW50KHN0cnVjdCBtbHg1X2NvcmVfZGV2ICptZGV2LCBpbnQgaSkN CiBzdGF0aWMgdm9pZCBjbGVhcl9jb21wX2lycV9hZmZpbml0eV9oaW50KHN0cnVjdCBtbHg1X2Nv cmVfZGV2ICptZGV2LCBpbnQgaSkNCiB7DQogCWludCB2ZWNpZHggPSBNTFg1X0VRX1ZFQ19DT01Q X0JBU0UgKyBpOw0KLQlzdHJ1Y3QgbWx4NV9wcml2ICpwcml2ICA9ICZtZGV2LT5wcml2Ow0KLQlp bnQgaXJxID0gcGNpX2lycV92ZWN0b3IobWRldi0+cGRldiwgdmVjaWR4KTsNCi0Jc3RydWN0IG1s eDVfaXJxX2luZm8gKmlycV9pbmZvID0gJnByaXYtPmVxX3RhYmxlLT5pcnFfaW5mb1t2ZWNpZHhd Ow0KKwlzdHJ1Y3QgbWx4NV9pcnFfaW5mbyAqaXJxX2luZm87DQorCWludCBpcnE7DQogDQorCWly cV9pbmZvID0gbWx4NV9pcnFfZ2V0KG1kZXYsIHZlY2lkeCk7DQorCWlycSA9IHBjaV9pcnFfdmVj dG9yKG1kZXYtPnBkZXYsIHZlY2lkeCk7DQogCWlycV9zZXRfYWZmaW5pdHlfaGludChpcnEsIE5V TEwpOw0KIAlmcmVlX2NwdW1hc2tfdmFyKGlycV9pbmZvLT5tYXNrKTsNCiB9DQogDQogc3RhdGlj IGludCBzZXRfY29tcF9pcnFfYWZmaW5pdHlfaGludHMoc3RydWN0IG1seDVfY29yZV9kZXYgKm1k ZXYpDQogew0KKwlpbnQgbnZlYyA9IG1seDVfaXJxX2dldF9udW1fY29tcChtZGV2LT5wcml2Lmly cV90YWJsZSk7DQogCWludCBlcnI7DQogCWludCBpOw0KIA0KLQlmb3IgKGkgPSAwOyBpIDwgbWRl di0+cHJpdi5lcV90YWJsZS0+bnVtX2NvbXBfdmVjdG9yczsgaSsrKSB7DQorCWZvciAoaSA9IDA7 IGkgPCBudmVjOyBpKyspIHsNCiAJCWVyciA9IHNldF9jb21wX2lycV9hZmZpbml0eV9oaW50KG1k ZXYsIGkpOw0KIAkJaWYgKGVycikNCiAJCQlnb3RvIGVycl9vdXQ7DQpAQCAtODQ5LDkgKzg3OSwx MCBAQCBzdGF0aWMgaW50IHNldF9jb21wX2lycV9hZmZpbml0eV9oaW50cyhzdHJ1Y3QgbWx4NV9j b3JlX2RldiAqbWRldikNCiANCiBzdGF0aWMgdm9pZCBjbGVhcl9jb21wX2lycXNfYWZmaW5pdHlf aGludHMoc3RydWN0IG1seDVfY29yZV9kZXYgKm1kZXYpDQogew0KKwlpbnQgbnZlYyA9IG1seDVf aXJxX2dldF9udW1fY29tcChtZGV2LT5wcml2LmlycV90YWJsZSk7DQogCWludCBpOw0KIA0KLQlm b3IgKGkgPSAwOyBpIDwgbWRldi0+cHJpdi5lcV90YWJsZS0+bnVtX2NvbXBfdmVjdG9yczsgaSsr KQ0KKwlmb3IgKGkgPSAwOyBpIDwgbnZlYzsgaSsrKQ0KIAkJY2xlYXJfY29tcF9pcnFfYWZmaW5p dHlfaGludChtZGV2LCBpKTsNCiB9DQogDQpAQCAtODYzLDkgKzg5NCw5IEBAIHN0YXRpYyB2b2lk IGRlc3Ryb3lfY29tcF9lcXMoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldikNCiAJY2xlYXJfY29t cF9pcnFzX2FmZmluaXR5X2hpbnRzKGRldik7DQogDQogI2lmZGVmIENPTkZJR19SRlNfQUNDRUwN Ci0JaWYgKHRhYmxlLT5ybWFwKSB7DQotCQlmcmVlX2lycV9jcHVfcm1hcCh0YWJsZS0+cm1hcCk7 DQotCQl0YWJsZS0+cm1hcCA9IE5VTEw7DQorCWlmICh0YWJsZS0+aXJxX3RhYmxlLT5ybWFwKSB7 DQorCQlmcmVlX2lycV9jcHVfcm1hcCh0YWJsZS0+aXJxX3RhYmxlLT5ybWFwKTsNCisJCXRhYmxl LT5pcnFfdGFibGUtPnJtYXAgPSBOVUxMOw0KIAl9DQogI2VuZGlmDQogCWxpc3RfZm9yX2VhY2hf ZW50cnlfc2FmZShlcSwgbiwgJnRhYmxlLT5jb21wX2Vxc19saXN0LCBsaXN0KSB7DQpAQCAtODgy LDIwICs5MTMsMjAgQEAgc3RhdGljIGludCBjcmVhdGVfY29tcF9lcXMoc3RydWN0IG1seDVfY29y ZV9kZXYgKmRldikNCiB7DQogCXN0cnVjdCBtbHg1X2VxX3RhYmxlICp0YWJsZSA9IGRldi0+cHJp di5lcV90YWJsZTsNCiAJc3RydWN0IG1seDVfZXFfY29tcCAqZXE7DQotCWludCBuY29tcF92ZWM7 DQorCWludCBuY29tcF9lcXM7DQogCWludCBuZW50Ow0KIAlpbnQgZXJyOw0KIAlpbnQgaTsNCiAN CiAJSU5JVF9MSVNUX0hFQUQoJnRhYmxlLT5jb21wX2Vxc19saXN0KTsNCi0JbmNvbXBfdmVjID0g dGFibGUtPm51bV9jb21wX3ZlY3RvcnM7DQorCW5jb21wX2VxcyA9IHRhYmxlLT5udW1fY29tcF9l cXM7DQogCW5lbnQgPSBNTFg1X0NPTVBfRVFfU0laRTsNCiAjaWZkZWYgQ09ORklHX1JGU19BQ0NF TA0KLQl0YWJsZS0+cm1hcCA9IGFsbG9jX2lycV9jcHVfcm1hcChuY29tcF92ZWMpOw0KLQlpZiAo IXRhYmxlLT5ybWFwKQ0KKwl0YWJsZS0+aXJxX3RhYmxlLT5ybWFwID0gYWxsb2NfaXJxX2NwdV9y bWFwKG5jb21wX2Vxcyk7DQorCWlmICghdGFibGUtPmlycV90YWJsZS0+cm1hcCkNCiAJCXJldHVy biAtRU5PTUVNOw0KICNlbmRpZg0KLQlmb3IgKGkgPSAwOyBpIDwgbmNvbXBfdmVjOyBpKyspIHsN CisJZm9yIChpID0gMDsgaSA8IG5jb21wX2VxczsgaSsrKSB7DQogCQlpbnQgdmVjaWR4ID0gaSAr IE1MWDVfRVFfVkVDX0NPTVBfQkFTRTsNCiAJCXN0cnVjdCBtbHg1X2VxX3BhcmFtIHBhcmFtID0g e307DQogDQpAQCAtOTEyLDcgKzk0Myw4IEBAIHN0YXRpYyBpbnQgY3JlYXRlX2NvbXBfZXFzKHN0 cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYpDQogCQkJICAgICAodW5zaWduZWQgbG9uZykmZXEtPnRh c2tsZXRfY3R4KTsNCiANCiAjaWZkZWYgQ09ORklHX1JGU19BQ0NFTA0KLQkJaXJxX2NwdV9ybWFw X2FkZCh0YWJsZS0+cm1hcCwgcGNpX2lycV92ZWN0b3IoZGV2LT5wZGV2LCB2ZWNpZHgpKTsNCisJ CWlycV9jcHVfcm1hcF9hZGQodGFibGUtPmlycV90YWJsZS0+cm1hcCwNCisJCQkJIHBjaV9pcnFf dmVjdG9yKGRldi0+cGRldiwgdmVjaWR4KSk7DQogI2VuZGlmDQogCQllcS0+aXJxX25iLm5vdGlm aWVyX2NhbGwgPSBtbHg1X2VxX2NvbXBfaW50Ow0KIAkJcGFyYW0gPSAoc3RydWN0IG1seDVfZXFf cGFyYW0pIHsNCkBAIC05NjcsMjIgKzk5OSwyMyBAQCBFWFBPUlRfU1lNQk9MKG1seDVfdmVjdG9y MmVxbik7DQogDQogdW5zaWduZWQgaW50IG1seDVfY29tcF92ZWN0b3JzX2NvdW50KHN0cnVjdCBt bHg1X2NvcmVfZGV2ICpkZXYpDQogew0KLQlyZXR1cm4gZGV2LT5wcml2LmVxX3RhYmxlLT5udW1f Y29tcF92ZWN0b3JzOw0KKwlyZXR1cm4gZGV2LT5wcml2LmVxX3RhYmxlLT5udW1fY29tcF9lcXM7 DQogfQ0KIEVYUE9SVF9TWU1CT0wobWx4NV9jb21wX3ZlY3RvcnNfY291bnQpOw0KIA0KIHN0cnVj dCBjcHVtYXNrICoNCiBtbHg1X2NvbXBfaXJxX2dldF9hZmZpbml0eV9tYXNrKHN0cnVjdCBtbHg1 X2NvcmVfZGV2ICpkZXYsIGludCB2ZWN0b3IpDQogew0KLQkvKiBUT0RPOiBjb25zaWRlciBpcnFf Z2V0X2FmZmluaXR5X21hc2soaXJxKSAqLw0KLQlyZXR1cm4gZGV2LT5wcml2LmVxX3RhYmxlLT5p cnFfaW5mb1t2ZWN0b3IgKyBNTFg1X0VRX1ZFQ19DT01QX0JBU0VdLm1hc2s7DQorCWludCB2ZWNp ZHggPSB2ZWN0b3IgKyBNTFg1X0VRX1ZFQ19DT01QX0JBU0U7DQorDQorCXJldHVybiBkZXYtPnBy aXYuZXFfdGFibGUtPmlycV90YWJsZS0+aXJxX2luZm9bdmVjaWR4XS5tYXNrOw0KIH0NCiBFWFBP UlRfU1lNQk9MKG1seDVfY29tcF9pcnFfZ2V0X2FmZmluaXR5X21hc2spOw0KIA0KICNpZmRlZiBD T05GSUdfUkZTX0FDQ0VMDQogc3RydWN0IGNwdV9ybWFwICptbHg1X2VxX3RhYmxlX2dldF9ybWFw KHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYpDQogew0KLQlyZXR1cm4gZGV2LT5wcml2LmVxX3Rh YmxlLT5ybWFwOw0KKwlyZXR1cm4gZGV2LT5wcml2LmVxX3RhYmxlLT5pcnFfdGFibGUtPnJtYXA7 DQogfQ0KICNlbmRpZg0KIA0KQEAgLTEwMDgsMTYgKzEwNDEsMTcgQEAgdm9pZCBtbHg1X2NvcmVf ZXFfZnJlZV9pcnFzKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYpDQogCWNsZWFyX2NvbXBfaXJx c19hZmZpbml0eV9oaW50cyhkZXYpOw0KIA0KICNpZmRlZiBDT05GSUdfUkZTX0FDQ0VMDQotCWlm ICh0YWJsZS0+cm1hcCkgew0KLQkJZnJlZV9pcnFfY3B1X3JtYXAodGFibGUtPnJtYXApOw0KLQkJ dGFibGUtPnJtYXAgPSBOVUxMOw0KKwlpZiAodGFibGUtPmlycV90YWJsZS0+cm1hcCkgew0KKwkJ ZnJlZV9pcnFfY3B1X3JtYXAodGFibGUtPmlycV90YWJsZS0+cm1hcCk7DQorCQl0YWJsZS0+aXJx X3RhYmxlLT5ybWFwID0gTlVMTDsNCiAJfQ0KICNlbmRpZg0KIA0KIAltdXRleF9sb2NrKCZ0YWJs ZS0+bG9jayk7IC8qIHN5bmMgd2l0aCBjcmVhdGUvZGVzdHJveV9hc3luY19lcSAqLw0KLQltYXhf ZXFzID0gdGFibGUtPm51bV9jb21wX3ZlY3RvcnMgKyBNTFg1X0VRX1ZFQ19DT01QX0JBU0U7DQor CW1heF9lcXMgPSB0YWJsZS0+bnVtX2NvbXBfZXFzICsgTUxYNV9FUV9WRUNfQ09NUF9CQVNFOw0K IAlmb3IgKGkgPSBtYXhfZXFzIC0gMTsgaSA+PSAwOyBpLS0pIHsNCi0JCWZyZWVfaXJxKHBjaV9p cnFfdmVjdG9yKGRldi0+cGRldiwgaSksICZ0YWJsZS0+aXJxX2luZm9baV0ubmgpOw0KKwkJZnJl ZV9pcnEocGNpX2lycV92ZWN0b3IoZGV2LT5wZGV2LCBpKSwNCisJCQkgJm1seDVfaXJxX2dldChk ZXYsIGkpLT5uaCk7DQogCX0NCiAJbXV0ZXhfdW5sb2NrKCZ0YWJsZS0+bG9jayk7DQogCXBjaV9m cmVlX2lycV92ZWN0b3JzKGRldi0+cGRldik7DQpAQCAtMTAyNiw3ICsxMDYwLDcgQEAgdm9pZCBt bHg1X2NvcmVfZXFfZnJlZV9pcnFzKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYpDQogc3RhdGlj IGludCBhbGxvY19pcnFfdmVjdG9ycyhzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2KQ0KIHsNCiAJ c3RydWN0IG1seDVfcHJpdiAqcHJpdiA9ICZkZXYtPnByaXY7DQotCXN0cnVjdCBtbHg1X2VxX3Rh YmxlICp0YWJsZSA9IHByaXYtPmVxX3RhYmxlOw0KKwlzdHJ1Y3QgbWx4NV9pcnFfdGFibGUgKnRh YmxlID0gcHJpdi0+aXJxX3RhYmxlOw0KIAlpbnQgbnVtX2VxcyA9IE1MWDVfQ0FQX0dFTihkZXYs IG1heF9udW1fZXFzKSA/DQogCQkgICAgICBNTFg1X0NBUF9HRU4oZGV2LCBtYXhfbnVtX2Vxcykg Og0KIAkJICAgICAgMSA8PCBNTFg1X0NBUF9HRU4oZGV2LCBsb2dfbWF4X2VxKTsNCkBAIC0xMDUw LDcgKzEwODQsNyBAQCBzdGF0aWMgaW50IGFsbG9jX2lycV92ZWN0b3JzKHN0cnVjdCBtbHg1X2Nv cmVfZGV2ICpkZXYpDQogCQlnb3RvIGVycl9mcmVlX2lycV9pbmZvOw0KIAl9DQogDQotCXRhYmxl LT5udW1fY29tcF92ZWN0b3JzID0gbnZlYyAtIE1MWDVfRVFfVkVDX0NPTVBfQkFTRTsNCisJdGFi bGUtPm52ZWMgPSBudmVjOw0KIA0KIAllcnIgPSByZXF1ZXN0X2lycXMoZGV2LCBudmVjKTsNCiAJ aWYgKGVycikNCkBAIC0xMDY3LDE3ICsxMTAxLDE5IEBAIHN0YXRpYyBpbnQgYWxsb2NfaXJxX3Zl Y3RvcnMoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldikNCiANCiBzdGF0aWMgdm9pZCBmcmVlX2ly cV92ZWN0b3JzKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYpDQogew0KLQlzdHJ1Y3QgbWx4NV9l cV90YWJsZSAqdGFibGUgPSBkZXYtPnByaXYuZXFfdGFibGU7DQorCXN0cnVjdCBtbHg1X2lycV90 YWJsZSAqdGFibGUgPSBkZXYtPnByaXYuaXJxX3RhYmxlOw0KIAlpbnQgaTsNCiANCi0JZm9yIChp ID0gMDsgaSA8IHRhYmxlLT5udW1fY29tcF92ZWN0b3JzICsgTUxYNV9FUV9WRUNfQ09NUF9CQVNF OyBpKyspDQotCQlmcmVlX2lycShwY2lfaXJxX3ZlY3RvcihkZXYtPnBkZXYsIGkpLCAmdGFibGUt PmlycV9pbmZvW2ldLm5oKTsNCisJZm9yIChpID0gMDsgaSA8IHRhYmxlLT5udmVjOyBpKyspDQor CQlmcmVlX2lycShwY2lfaXJxX3ZlY3RvcihkZXYtPnBkZXYsIGkpLA0KKwkJCSAmbWx4NV9pcnFf Z2V0KGRldiwgaSktPm5oKTsNCiAJcGNpX2ZyZWVfaXJxX3ZlY3RvcnMoZGV2LT5wZGV2KTsNCiAJ a2ZyZWUodGFibGUtPmlycV9pbmZvKTsNCiB9DQogDQogaW50IG1seDVfZXFfdGFibGVfY3JlYXRl KHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYpDQogew0KKwlzdHJ1Y3QgbWx4NV9lcV90YWJsZSAq ZXFfdGFibGUgPSBkZXYtPnByaXYuZXFfdGFibGU7DQogCWludCBlcnI7DQogDQogCWVyciA9IGFs bG9jX2lycV92ZWN0b3JzKGRldik7DQpAQCAtMTA4Niw2ICsxMTIyLDkgQEAgaW50IG1seDVfZXFf dGFibGVfY3JlYXRlKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYpDQogCQlyZXR1cm4gZXJyOw0K IAl9DQogDQorCWVxX3RhYmxlLT5udW1fY29tcF9lcXMgPQ0KKwkJbWx4NV9pcnFfZ2V0X251bV9j b21wKGVxX3RhYmxlLT5pcnFfdGFibGUpOw0KKw0KIAllcnIgPSBjcmVhdGVfYXN5bmNfZXFzKGRl dik7DQogCWlmIChlcnIpIHsNCiAJCW1seDVfY29yZV9lcnIoZGV2LCAiRmFpbGVkIHRvIGNyZWF0 ZSBhc3luYyBFUXNcbiIpOw0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxh bm94L21seDUvY29yZS9tYWluLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1 L2NvcmUvbWFpbi5jDQppbmRleCA3MjBmNjViZmU2YTkuLmJlNzlkY2VlYTNjMyAxMDA2NDQNCi0t LSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9tYWluLmMNCisrKyBi L2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9tYWluLmMNCkBAIC04MDQs MTAgKzgwNCwxNiBAQCBzdGF0aWMgaW50IG1seDVfaW5pdF9vbmNlKHN0cnVjdCBtbHg1X2NvcmVf ZGV2ICpkZXYpDQogCQlnb3RvIGVycl9kZXZjb207DQogCX0NCiANCisJZXJyID0gbWx4NV9pcnFf dGFibGVfaW5pdChkZXYpOw0KKwlpZiAoZXJyKSB7DQorCQltbHg1X2NvcmVfZXJyKGRldiwgImZh aWxlZCB0byBpbml0aWFsaXplIGlycSB0YWJsZVxuIik7DQorCQlnb3RvIGVycl9kZXZjb207DQor CX0NCisNCiAJZXJyID0gbWx4NV9lcV90YWJsZV9pbml0KGRldik7DQogCWlmIChlcnIpIHsNCiAJ CW1seDVfY29yZV9lcnIoZGV2LCAiZmFpbGVkIHRvIGluaXRpYWxpemUgZXFcbiIpOw0KLQkJZ290 byBlcnJfZGV2Y29tOw0KKwkJZ290byBlcnJfaXJxX2NsZWFudXA7DQogCX0NCiANCiAJZXJyID0g bWx4NV9ldmVudHNfaW5pdChkZXYpOw0KQEAgLTg4Myw2ICs4ODksOCBAQCBzdGF0aWMgaW50IG1s eDVfaW5pdF9vbmNlKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYpDQogCW1seDVfZXZlbnRzX2Ns ZWFudXAoZGV2KTsNCiBlcnJfZXFfY2xlYW51cDoNCiAJbWx4NV9lcV90YWJsZV9jbGVhbnVwKGRl dik7DQorZXJyX2lycV9jbGVhbnVwOg0KKwltbHg1X2lycV90YWJsZV9jbGVhbnVwKGRldik7DQog ZXJyX2RldmNvbToNCiAJbWx4NV9kZXZjb21fdW5yZWdpc3Rlcl9kZXZpY2UoZGV2LT5wcml2LmRl dmNvbSk7DQogDQpAQCAtOTA1LDYgKzkxMyw3IEBAIHN0YXRpYyB2b2lkIG1seDVfY2xlYW51cF9v bmNlKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYpDQogCW1seDVfY3FfZGVidWdmc19jbGVhbnVw KGRldik7DQogCW1seDVfZXZlbnRzX2NsZWFudXAoZGV2KTsNCiAJbWx4NV9lcV90YWJsZV9jbGVh bnVwKGRldik7DQorCW1seDVfaXJxX3RhYmxlX2NsZWFudXAoZGV2KTsNCiAJbWx4NV9kZXZjb21f dW5yZWdpc3Rlcl9kZXZpY2UoZGV2LT5wcml2LmRldmNvbSk7DQogfQ0KIA0KZGlmZiAtLWdpdCBh L2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9tbHg1X2NvcmUuaCBiL2Ry aXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9tbHg1X2NvcmUuaA0KaW5kZXgg MjJlNjlkNDgxM2U0Li45MDc1MTVmM2JmYmIgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL25ldC9ldGhl cm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvbWx4NV9jb3JlLmgNCisrKyBiL2RyaXZlcnMvbmV0L2V0 aGVybmV0L21lbGxhbm94L21seDUvY29yZS9tbHg1X2NvcmUuaA0KQEAgLTE1Myw2ICsxNTMsOSBA QCBpbnQgbWx4NV9xdWVyeV9xY2FtX3JlZyhzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqbWRldiwgdTMy ICpxY2FtLA0KIHZvaWQgbWx4NV9sYWdfYWRkKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsIHN0 cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYpOw0KIHZvaWQgbWx4NV9sYWdfcmVtb3ZlKHN0cnVjdCBt bHg1X2NvcmVfZGV2ICpkZXYpOw0KIA0KK2ludCBtbHg1X2lycV90YWJsZV9pbml0KHN0cnVjdCBt bHg1X2NvcmVfZGV2ICpkZXYpOw0KK3ZvaWQgbWx4NV9pcnFfdGFibGVfY2xlYW51cChzdHJ1Y3Qg bWx4NV9jb3JlX2RldiAqZGV2KTsNCisNCiBpbnQgbWx4NV9ldmVudHNfaW5pdChzdHJ1Y3QgbWx4 NV9jb3JlX2RldiAqZGV2KTsNCiB2b2lkIG1seDVfZXZlbnRzX2NsZWFudXAoc3RydWN0IG1seDVf Y29yZV9kZXYgKmRldik7DQogdm9pZCBtbHg1X2V2ZW50c19zdGFydChzdHJ1Y3QgbWx4NV9jb3Jl X2RldiAqZGV2KTsNCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L21seDUvZHJpdmVyLmggYi9p bmNsdWRlL2xpbnV4L21seDUvZHJpdmVyLmgNCmluZGV4IDY0MTU1ZmUyMDFlZS4uZDhhYjYzMzQw NmMyIDEwMDY0NA0KLS0tIGEvaW5jbHVkZS9saW51eC9tbHg1L2RyaXZlci5oDQorKysgYi9pbmNs dWRlL2xpbnV4L21seDUvZHJpdmVyLmgNCkBAIC00OTIsNiArNDkyLDcgQEAgc3RydWN0IG1seDVf ZXN3aXRjaDsNCiBzdHJ1Y3QgbWx4NV9sYWc7DQogc3RydWN0IG1seDVfZGV2Y29tOw0KIHN0cnVj dCBtbHg1X2VxX3RhYmxlOw0KK3N0cnVjdCBtbHg1X2lycV90YWJsZTsNCiANCiBzdHJ1Y3QgbWx4 NV9yYXRlX2xpbWl0IHsNCiAJdTMyCQkJcmF0ZTsNCkBAIC01MjEsNiArNTIyLDggQEAgc3RydWN0 IG1seDVfY29yZV9yb2NlIHsNCiB9Ow0KIA0KIHN0cnVjdCBtbHg1X3ByaXYgew0KKwkvKiBJUlEg dGFibGUgdmFsaWQgb25seSBmb3IgcmVhbCBwY2kgZGV2aWNlcyBQRiBvciBWRiAqLw0KKwlzdHJ1 Y3QgbWx4NV9pcnFfdGFibGUgICAqaXJxX3RhYmxlOw0KIAlzdHJ1Y3QgbWx4NV9lcV90YWJsZQkq ZXFfdGFibGU7DQogDQogCS8qIHBhZ2VzIHN0dWZmICovDQotLSANCjIuMjEuMA0KDQo=