From mboxrd@z Thu Jan 1 00:00:00 1970 From: Saeed Mahameed Subject: [PATCH V2 mlx5-next 06/11] net/mlx5: Pass flow steering objects to fs_cmd Date: Mon, 29 Apr 2019 18:14:10 +0000 Message-ID: <20190429181326.6262-7-saeedm@mellanox.com> References: <20190429181326.6262-1-saeedm@mellanox.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20190429181326.6262-1-saeedm@mellanox.com> Content-Language: en-US Sender: netdev-owner@vger.kernel.org To: Saeed Mahameed , Leon Romanovsky Cc: Jason Gunthorpe , "netdev@vger.kernel.org" , "linux-rdma@vger.kernel.org" , Maor Gottlieb List-Id: linux-rdma@vger.kernel.org RnJvbTogTWFvciBHb3R0bGllYiA8bWFvcmdAbWVsbGFub3guY29tPg0KDQpQYXNzIHRoZSBmbG93 IHN0ZWVyaW5nIG9iamVjdHMgaW5zdGVhZCBvZiB0aGVpciBhdHRyaWJ1dGVzDQp0byBmc19jbWQg aW4gb3JkZXIgdG8gZGVjcmVhc2UgbnVtYmVyIG9mIGFyZ3VtZW50cyBhbmQgaW4NCmFkZGl0aW9u IGl0IHdpbGwgYmUgdXNlZCB0byB1cGRhdGUgb2JqZWN0IGZpZWxkcy4NClBhc3MgdGhlIGZsb3cg c3RlZXJpbmcgcm9vdCBuYW1lc3BhY2UgaW5zdGVhZCBvZiB0aGUgZGV2aWNlDQpzbyB3aWxsIGhh dmUgY29udGV4dCB0byB0aGUgbmFtZXNwYWNlIGluIHRoZSBmc19jbWQgbGF5ZXIuDQoNClNpZ25l ZC1vZmYtYnk6IE1hb3IgR290dGxpZWIgPG1hb3JnQG1lbGxhbm94LmNvbT4NClNpZ25lZC1vZmYt Ynk6IFNhZWVkIE1haGFtZWVkIDxzYWVlZG1AbWVsbGFub3guY29tPg0KLS0tDQogLi4uL2V0aGVy bmV0L21lbGxhbm94L21seDUvY29yZS9mcGdhL2lwc2VjLmMgIHwgODYgKysrKysrKystLS0tLS0t LQ0KIC4uLi9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2ZzX2NtZC5jICB8IDk5ICsr KysrKysrKystLS0tLS0tLS0NCiAuLi4vbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9m c19jbWQuaCAgfCAzMyArKystLS0tDQogLi4uL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2Nv cmUvZnNfY29yZS5jIHwgNDIgKysrKy0tLS0NCiA0IGZpbGVzIGNoYW5nZWQsIDEyOCBpbnNlcnRp b25zKCspLCAxMzIgZGVsZXRpb25zKC0pDQoNCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhl cm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZnBnYS9pcHNlYy5jIGIvZHJpdmVycy9uZXQvZXRoZXJu ZXQvbWVsbGFub3gvbWx4NS9jb3JlL2ZwZ2EvaXBzZWMuYw0KaW5kZXggNWEyMmM1ODc0ZjNiLi41 MmM0N2QzZGQ1YTUgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9t bHg1L2NvcmUvZnBnYS9pcHNlYy5jDQorKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5v eC9tbHg1L2NvcmUvZnBnYS9pcHNlYy5jDQpAQCAtOTg5LDMyICs5ODksMzMgQEAgc3RhdGljIGVu dW0gZnNfZmxvd190YWJsZV90eXBlIGVncmVzc190b19mc19mdChib29sIGVncmVzcykNCiAJcmV0 dXJuIGVncmVzcyA/IEZTX0ZUX05JQ19UWCA6IEZTX0ZUX05JQ19SWDsNCiB9DQogDQotc3RhdGlj IGludCBmcGdhX2lwc2VjX2ZzX2NyZWF0ZV9mbG93X2dyb3VwKHN0cnVjdCBtbHg1X2NvcmVfZGV2 ICpkZXYsDQorc3RhdGljIGludCBmcGdhX2lwc2VjX2ZzX2NyZWF0ZV9mbG93X2dyb3VwKHN0cnVj dCBtbHg1X2Zsb3dfcm9vdF9uYW1lc3BhY2UgKm5zLA0KIAkJCQkJICAgc3RydWN0IG1seDVfZmxv d190YWJsZSAqZnQsDQogCQkJCQkgICB1MzIgKmluLA0KLQkJCQkJICAgdW5zaWduZWQgaW50ICpn cm91cF9pZCwNCisJCQkJCSAgIHN0cnVjdCBtbHg1X2Zsb3dfZ3JvdXAgKmZnLA0KIAkJCQkJICAg Ym9vbCBpc19lZ3Jlc3MpDQogew0KLQlpbnQgKCpjcmVhdGVfZmxvd19ncm91cCkoc3RydWN0IG1s eDVfY29yZV9kZXYgKmRldiwNCisJaW50ICgqY3JlYXRlX2Zsb3dfZ3JvdXApKHN0cnVjdCBtbHg1 X2Zsb3dfcm9vdF9uYW1lc3BhY2UgKm5zLA0KIAkJCQkgc3RydWN0IG1seDVfZmxvd190YWJsZSAq ZnQsIHUzMiAqaW4sDQotCQkJCSB1bnNpZ25lZCBpbnQgKmdyb3VwX2lkKSA9DQorCQkJCSBzdHJ1 Y3QgbWx4NV9mbG93X2dyb3VwICpmZykgPQ0KIAkJbWx4NV9mc19jbWRfZ2V0X2RlZmF1bHQoZWdy ZXNzX3RvX2ZzX2Z0KGlzX2VncmVzcykpLT5jcmVhdGVfZmxvd19ncm91cDsNCiAJY2hhciAqbWlz Y19wYXJhbXNfYyA9IE1MWDVfQUREUl9PRihjcmVhdGVfZmxvd19ncm91cF9pbiwgaW4sDQogCQkJ CQkgICBtYXRjaF9jcml0ZXJpYS5taXNjX3BhcmFtZXRlcnMpOw0KKwlzdHJ1Y3QgbWx4NV9jb3Jl X2RldiAqZGV2ID0gbnMtPmRldjsNCiAJdTMyIHNhdmVkX291dGVyX2VzcF9zcGlfbWFzazsNCiAJ dTggbWF0Y2hfY3JpdGVyaWFfZW5hYmxlOw0KIAlpbnQgcmV0Ow0KIA0KIAlpZiAoTUxYNV9DQVBf RkxPV1RBQkxFKGRldiwNCiAJCQkgICAgICAgZmxvd190YWJsZV9wcm9wZXJ0aWVzX25pY19yZWNl aXZlLmZ0X2ZpZWxkX3N1cHBvcnQub3V0ZXJfZXNwX3NwaSkpDQotCQlyZXR1cm4gY3JlYXRlX2Zs b3dfZ3JvdXAoZGV2LCBmdCwgaW4sIGdyb3VwX2lkKTsNCisJCXJldHVybiBjcmVhdGVfZmxvd19n cm91cChucywgZnQsIGluLCBmZyk7DQogDQogCW1hdGNoX2NyaXRlcmlhX2VuYWJsZSA9DQogCQlN TFg1X0dFVChjcmVhdGVfZmxvd19ncm91cF9pbiwgaW4sIG1hdGNoX2NyaXRlcmlhX2VuYWJsZSk7 DQogCXNhdmVkX291dGVyX2VzcF9zcGlfbWFzayA9DQogCQlNTFg1X0dFVChmdGVfbWF0Y2hfc2V0 X21pc2MsIG1pc2NfcGFyYW1zX2MsIG91dGVyX2VzcF9zcGkpOw0KIAlpZiAoIW1hdGNoX2NyaXRl cmlhX2VuYWJsZSB8fCAhc2F2ZWRfb3V0ZXJfZXNwX3NwaV9tYXNrKQ0KLQkJcmV0dXJuIGNyZWF0 ZV9mbG93X2dyb3VwKGRldiwgZnQsIGluLCBncm91cF9pZCk7DQorCQlyZXR1cm4gY3JlYXRlX2Zs b3dfZ3JvdXAobnMsIGZ0LCBpbiwgZmcpOw0KIA0KIAlNTFg1X1NFVChmdGVfbWF0Y2hfc2V0X21p c2MsIG1pc2NfcGFyYW1zX2MsIG91dGVyX2VzcF9zcGksIDApOw0KIA0KQEAgLTEwMjMsNyArMTAy NCw3IEBAIHN0YXRpYyBpbnQgZnBnYV9pcHNlY19mc19jcmVhdGVfZmxvd19ncm91cChzdHJ1Y3Qg bWx4NV9jb3JlX2RldiAqZGV2LA0KIAkJTUxYNV9TRVQoY3JlYXRlX2Zsb3dfZ3JvdXBfaW4sIGlu LCBtYXRjaF9jcml0ZXJpYV9lbmFibGUsDQogCQkJIG1hdGNoX2NyaXRlcmlhX2VuYWJsZSAmIH5N TFg1X01BVENIX01JU0NfUEFSQU1FVEVSUyk7DQogDQotCXJldCA9IGNyZWF0ZV9mbG93X2dyb3Vw KGRldiwgZnQsIGluLCBncm91cF9pZCk7DQorCXJldCA9IGNyZWF0ZV9mbG93X2dyb3VwKG5zLCBm dCwgaW4sIGZnKTsNCiANCiAJTUxYNV9TRVQoZnRlX21hdGNoX3NldF9taXNjLCBtaXNjX3BhcmFt c19jLCBvdXRlcl9lc3Bfc3BpLCBzYXZlZF9vdXRlcl9lc3Bfc3BpX21hc2spOw0KIAlNTFg1X1NF VChjcmVhdGVfZmxvd19ncm91cF9pbiwgaW4sIG1hdGNoX2NyaXRlcmlhX2VuYWJsZSwgbWF0Y2hf Y3JpdGVyaWFfZW5hYmxlKTsNCkBAIC0xMDMxLDE3ICsxMDMyLDE4IEBAIHN0YXRpYyBpbnQgZnBn YV9pcHNlY19mc19jcmVhdGVfZmxvd19ncm91cChzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LA0K IAlyZXR1cm4gcmV0Ow0KIH0NCiANCi1zdGF0aWMgaW50IGZwZ2FfaXBzZWNfZnNfY3JlYXRlX2Z0 ZShzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LA0KK3N0YXRpYyBpbnQgZnBnYV9pcHNlY19mc19j cmVhdGVfZnRlKHN0cnVjdCBtbHg1X2Zsb3dfcm9vdF9uYW1lc3BhY2UgKm5zLA0KIAkJCQkgICAg c3RydWN0IG1seDVfZmxvd190YWJsZSAqZnQsDQogCQkJCSAgICBzdHJ1Y3QgbWx4NV9mbG93X2dy b3VwICpmZywNCiAJCQkJICAgIHN0cnVjdCBmc19mdGUgKmZ0ZSwNCiAJCQkJICAgIGJvb2wgaXNf ZWdyZXNzKQ0KIHsNCi0JaW50ICgqY3JlYXRlX2Z0ZSkoc3RydWN0IG1seDVfY29yZV9kZXYgKmRl diwNCisJaW50ICgqY3JlYXRlX2Z0ZSkoc3RydWN0IG1seDVfZmxvd19yb290X25hbWVzcGFjZSAq bnMsDQogCQkJICBzdHJ1Y3QgbWx4NV9mbG93X3RhYmxlICpmdCwNCiAJCQkgIHN0cnVjdCBtbHg1 X2Zsb3dfZ3JvdXAgKmZnLA0KIAkJCSAgc3RydWN0IGZzX2Z0ZSAqZnRlKSA9DQogCQltbHg1X2Zz X2NtZF9nZXRfZGVmYXVsdChlZ3Jlc3NfdG9fZnNfZnQoaXNfZWdyZXNzKSktPmNyZWF0ZV9mdGU7 DQorCXN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYgPSBucy0+ZGV2Ow0KIAlzdHJ1Y3QgbWx4NV9m cGdhX2RldmljZSAqZmRldiA9IGRldi0+ZnBnYTsNCiAJc3RydWN0IG1seDVfZnBnYV9pcHNlYyAq Zmlwc2VjID0gZmRldi0+aXBzZWM7DQogCXN0cnVjdCBtbHg1X2ZwZ2FfaXBzZWNfcnVsZSAqcnVs ZTsNCkBAIC0xMDUzLDcgKzEwNTUsNyBAQCBzdGF0aWMgaW50IGZwZ2FfaXBzZWNfZnNfY3JlYXRl X2Z0ZShzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LA0KIAkgICAgIShmdGUtPmFjdGlvbi5hY3Rp b24gJg0KIAkgICAgICAoTUxYNV9GTE9XX0NPTlRFWFRfQUNUSU9OX0VOQ1JZUFQgfA0KIAkgICAg ICAgTUxYNV9GTE9XX0NPTlRFWFRfQUNUSU9OX0RFQ1JZUFQpKSkNCi0JCXJldHVybiBjcmVhdGVf ZnRlKGRldiwgZnQsIGZnLCBmdGUpOw0KKwkJcmV0dXJuIGNyZWF0ZV9mdGUobnMsIGZ0LCBmZywg ZnRlKTsNCiANCiAJcnVsZSA9IGt6YWxsb2Moc2l6ZW9mKCpydWxlKSwgR0ZQX0tFUk5FTCk7DQog CWlmICghcnVsZSkNCkBAIC0xMDcwLDcgKzEwNzIsNyBAQCBzdGF0aWMgaW50IGZwZ2FfaXBzZWNf ZnNfY3JlYXRlX2Z0ZShzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LA0KIAlXQVJOX09OKHJ1bGVf aW5zZXJ0KGZpcHNlYywgcnVsZSkpOw0KIA0KIAltb2RpZnlfc3BlY19tYWlsYm94KGRldiwgZnRl LCAmbWJveF9tb2QpOw0KLQlyZXQgPSBjcmVhdGVfZnRlKGRldiwgZnQsIGZnLCBmdGUpOw0KKwly ZXQgPSBjcmVhdGVfZnRlKG5zLCBmdCwgZmcsIGZ0ZSk7DQogCXJlc3RvcmVfc3BlY19tYWlsYm94 KGZ0ZSwgJm1ib3hfbW9kKTsNCiAJaWYgKHJldCkgew0KIAkJX3J1bGVfZGVsZXRlKGZpcHNlYywg cnVsZSk7DQpAQCAtMTA4MSwxOSArMTA4MywyMCBAQCBzdGF0aWMgaW50IGZwZ2FfaXBzZWNfZnNf Y3JlYXRlX2Z0ZShzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LA0KIAlyZXR1cm4gcmV0Ow0KIH0N CiANCi1zdGF0aWMgaW50IGZwZ2FfaXBzZWNfZnNfdXBkYXRlX2Z0ZShzdHJ1Y3QgbWx4NV9jb3Jl X2RldiAqZGV2LA0KK3N0YXRpYyBpbnQgZnBnYV9pcHNlY19mc191cGRhdGVfZnRlKHN0cnVjdCBt bHg1X2Zsb3dfcm9vdF9uYW1lc3BhY2UgKm5zLA0KIAkJCQkgICAgc3RydWN0IG1seDVfZmxvd190 YWJsZSAqZnQsDQotCQkJCSAgICB1bnNpZ25lZCBpbnQgZ3JvdXBfaWQsDQorCQkJCSAgICBzdHJ1 Y3QgbWx4NV9mbG93X2dyb3VwICpmZywNCiAJCQkJICAgIGludCBtb2RpZnlfbWFzaywNCiAJCQkJ ICAgIHN0cnVjdCBmc19mdGUgKmZ0ZSwNCiAJCQkJICAgIGJvb2wgaXNfZWdyZXNzKQ0KIHsNCi0J aW50ICgqdXBkYXRlX2Z0ZSkoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwNCisJaW50ICgqdXBk YXRlX2Z0ZSkoc3RydWN0IG1seDVfZmxvd19yb290X25hbWVzcGFjZSAqbnMsDQogCQkJICBzdHJ1 Y3QgbWx4NV9mbG93X3RhYmxlICpmdCwNCi0JCQkgIHVuc2lnbmVkIGludCBncm91cF9pZCwNCisJ CQkgIHN0cnVjdCBtbHg1X2Zsb3dfZ3JvdXAgKmZnLA0KIAkJCSAgaW50IG1vZGlmeV9tYXNrLA0K IAkJCSAgc3RydWN0IGZzX2Z0ZSAqZnRlKSA9DQogCQltbHg1X2ZzX2NtZF9nZXRfZGVmYXVsdChl Z3Jlc3NfdG9fZnNfZnQoaXNfZWdyZXNzKSktPnVwZGF0ZV9mdGU7DQorCXN0cnVjdCBtbHg1X2Nv cmVfZGV2ICpkZXYgPSBucy0+ZGV2Ow0KIAlib29sIGlzX2VzcCA9IGZ0ZS0+YWN0aW9uLmVzcF9p ZDsNCiAJc3RydWN0IG1haWxib3hfbW9kIG1ib3hfbW9kOw0KIAlpbnQgcmV0Ow0KQEAgLTExMDIs MjQgKzExMDUsMjUgQEAgc3RhdGljIGludCBmcGdhX2lwc2VjX2ZzX3VwZGF0ZV9mdGUoc3RydWN0 IG1seDVfY29yZV9kZXYgKmRldiwNCiAJICAgICEoZnRlLT5hY3Rpb24uYWN0aW9uICYNCiAJICAg ICAgKE1MWDVfRkxPV19DT05URVhUX0FDVElPTl9FTkNSWVBUIHwNCiAJICAgICAgIE1MWDVfRkxP V19DT05URVhUX0FDVElPTl9ERUNSWVBUKSkpDQotCQlyZXR1cm4gdXBkYXRlX2Z0ZShkZXYsIGZ0 LCBncm91cF9pZCwgbW9kaWZ5X21hc2ssIGZ0ZSk7DQorCQlyZXR1cm4gdXBkYXRlX2Z0ZShucywg ZnQsIGZnLCBtb2RpZnlfbWFzaywgZnRlKTsNCiANCiAJbW9kaWZ5X3NwZWNfbWFpbGJveChkZXYs IGZ0ZSwgJm1ib3hfbW9kKTsNCi0JcmV0ID0gdXBkYXRlX2Z0ZShkZXYsIGZ0LCBncm91cF9pZCwg bW9kaWZ5X21hc2ssIGZ0ZSk7DQorCXJldCA9IHVwZGF0ZV9mdGUobnMsIGZ0LCBmZywgbW9kaWZ5 X21hc2ssIGZ0ZSk7DQogCXJlc3RvcmVfc3BlY19tYWlsYm94KGZ0ZSwgJm1ib3hfbW9kKTsNCiAN CiAJcmV0dXJuIHJldDsNCiB9DQogDQotc3RhdGljIGludCBmcGdhX2lwc2VjX2ZzX2RlbGV0ZV9m dGUoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwNCitzdGF0aWMgaW50IGZwZ2FfaXBzZWNfZnNf ZGVsZXRlX2Z0ZShzdHJ1Y3QgbWx4NV9mbG93X3Jvb3RfbmFtZXNwYWNlICpucywNCiAJCQkJICAg IHN0cnVjdCBtbHg1X2Zsb3dfdGFibGUgKmZ0LA0KIAkJCQkgICAgc3RydWN0IGZzX2Z0ZSAqZnRl LA0KIAkJCQkgICAgYm9vbCBpc19lZ3Jlc3MpDQogew0KLQlpbnQgKCpkZWxldGVfZnRlKShzdHJ1 Y3QgbWx4NV9jb3JlX2RldiAqZGV2LA0KKwlpbnQgKCpkZWxldGVfZnRlKShzdHJ1Y3QgbWx4NV9m bG93X3Jvb3RfbmFtZXNwYWNlICpucywNCiAJCQkgIHN0cnVjdCBtbHg1X2Zsb3dfdGFibGUgKmZ0 LA0KIAkJCSAgc3RydWN0IGZzX2Z0ZSAqZnRlKSA9DQogCQltbHg1X2ZzX2NtZF9nZXRfZGVmYXVs dChlZ3Jlc3NfdG9fZnNfZnQoaXNfZWdyZXNzKSktPmRlbGV0ZV9mdGU7DQorCXN0cnVjdCBtbHg1 X2NvcmVfZGV2ICpkZXYgPSBucy0+ZGV2Ow0KIAlzdHJ1Y3QgbWx4NV9mcGdhX2RldmljZSAqZmRl diA9IGRldi0+ZnBnYTsNCiAJc3RydWN0IG1seDVfZnBnYV9pcHNlYyAqZmlwc2VjID0gZmRldi0+ aXBzZWM7DQogCXN0cnVjdCBtbHg1X2ZwZ2FfaXBzZWNfcnVsZSAqcnVsZTsNCkBAIC0xMTMxLDcg KzExMzUsNyBAQCBzdGF0aWMgaW50IGZwZ2FfaXBzZWNfZnNfZGVsZXRlX2Z0ZShzdHJ1Y3QgbWx4 NV9jb3JlX2RldiAqZGV2LA0KIAkgICAgIShmdGUtPmFjdGlvbi5hY3Rpb24gJg0KIAkgICAgICAo TUxYNV9GTE9XX0NPTlRFWFRfQUNUSU9OX0VOQ1JZUFQgfA0KIAkgICAgICAgTUxYNV9GTE9XX0NP TlRFWFRfQUNUSU9OX0RFQ1JZUFQpKSkNCi0JCXJldHVybiBkZWxldGVfZnRlKGRldiwgZnQsIGZ0 ZSk7DQorCQlyZXR1cm4gZGVsZXRlX2Z0ZShucywgZnQsIGZ0ZSk7DQogDQogCXJ1bGUgPSBydWxl X3NlYXJjaChmaXBzZWMsIGZ0ZSk7DQogCWlmICghcnVsZSkNCkBAIC0xMTQxLDg0ICsxMTQ1LDg0 IEBAIHN0YXRpYyBpbnQgZnBnYV9pcHNlY19mc19kZWxldGVfZnRlKHN0cnVjdCBtbHg1X2NvcmVf ZGV2ICpkZXYsDQogCXJ1bGVfZGVsZXRlKGZpcHNlYywgcnVsZSk7DQogDQogCW1vZGlmeV9zcGVj X21haWxib3goZGV2LCBmdGUsICZtYm94X21vZCk7DQotCXJldCA9IGRlbGV0ZV9mdGUoZGV2LCBm dCwgZnRlKTsNCisJcmV0ID0gZGVsZXRlX2Z0ZShucywgZnQsIGZ0ZSk7DQogCXJlc3RvcmVfc3Bl Y19tYWlsYm94KGZ0ZSwgJm1ib3hfbW9kKTsNCiANCiAJcmV0dXJuIHJldDsNCiB9DQogDQogc3Rh dGljIGludA0KLW1seDVfZnBnYV9pcHNlY19mc19jcmVhdGVfZmxvd19ncm91cF9lZ3Jlc3Moc3Ry dWN0IG1seDVfY29yZV9kZXYgKmRldiwNCittbHg1X2ZwZ2FfaXBzZWNfZnNfY3JlYXRlX2Zsb3df Z3JvdXBfZWdyZXNzKHN0cnVjdCBtbHg1X2Zsb3dfcm9vdF9uYW1lc3BhY2UgKm5zLA0KIAkJCQkJ ICAgIHN0cnVjdCBtbHg1X2Zsb3dfdGFibGUgKmZ0LA0KIAkJCQkJICAgIHUzMiAqaW4sDQotCQkJ CQkgICAgdW5zaWduZWQgaW50ICpncm91cF9pZCkNCisJCQkJCSAgICBzdHJ1Y3QgbWx4NV9mbG93 X2dyb3VwICpmZykNCiB7DQotCXJldHVybiBmcGdhX2lwc2VjX2ZzX2NyZWF0ZV9mbG93X2dyb3Vw KGRldiwgZnQsIGluLCBncm91cF9pZCwgdHJ1ZSk7DQorCXJldHVybiBmcGdhX2lwc2VjX2ZzX2Ny ZWF0ZV9mbG93X2dyb3VwKG5zLCBmdCwgaW4sIGZnLCB0cnVlKTsNCiB9DQogDQogc3RhdGljIGlu dA0KLW1seDVfZnBnYV9pcHNlY19mc19jcmVhdGVfZnRlX2VncmVzcyhzdHJ1Y3QgbWx4NV9jb3Jl X2RldiAqZGV2LA0KK21seDVfZnBnYV9pcHNlY19mc19jcmVhdGVfZnRlX2VncmVzcyhzdHJ1Y3Qg bWx4NV9mbG93X3Jvb3RfbmFtZXNwYWNlICpucywNCiAJCQkJICAgICBzdHJ1Y3QgbWx4NV9mbG93 X3RhYmxlICpmdCwNCiAJCQkJICAgICBzdHJ1Y3QgbWx4NV9mbG93X2dyb3VwICpmZywNCiAJCQkJ ICAgICBzdHJ1Y3QgZnNfZnRlICpmdGUpDQogew0KLQlyZXR1cm4gZnBnYV9pcHNlY19mc19jcmVh dGVfZnRlKGRldiwgZnQsIGZnLCBmdGUsIHRydWUpOw0KKwlyZXR1cm4gZnBnYV9pcHNlY19mc19j cmVhdGVfZnRlKG5zLCBmdCwgZmcsIGZ0ZSwgdHJ1ZSk7DQogfQ0KIA0KIHN0YXRpYyBpbnQNCi1t bHg1X2ZwZ2FfaXBzZWNfZnNfdXBkYXRlX2Z0ZV9lZ3Jlc3Moc3RydWN0IG1seDVfY29yZV9kZXYg KmRldiwNCittbHg1X2ZwZ2FfaXBzZWNfZnNfdXBkYXRlX2Z0ZV9lZ3Jlc3Moc3RydWN0IG1seDVf Zmxvd19yb290X25hbWVzcGFjZSAqbnMsDQogCQkJCSAgICAgc3RydWN0IG1seDVfZmxvd190YWJs ZSAqZnQsDQotCQkJCSAgICAgdW5zaWduZWQgaW50IGdyb3VwX2lkLA0KKwkJCQkgICAgIHN0cnVj dCBtbHg1X2Zsb3dfZ3JvdXAgKmZnLA0KIAkJCQkgICAgIGludCBtb2RpZnlfbWFzaywNCiAJCQkJ ICAgICBzdHJ1Y3QgZnNfZnRlICpmdGUpDQogew0KLQlyZXR1cm4gZnBnYV9pcHNlY19mc191cGRh dGVfZnRlKGRldiwgZnQsIGdyb3VwX2lkLCBtb2RpZnlfbWFzaywgZnRlLA0KKwlyZXR1cm4gZnBn YV9pcHNlY19mc191cGRhdGVfZnRlKG5zLCBmdCwgZmcsIG1vZGlmeV9tYXNrLCBmdGUsDQogCQkJ CQl0cnVlKTsNCiB9DQogDQogc3RhdGljIGludA0KLW1seDVfZnBnYV9pcHNlY19mc19kZWxldGVf ZnRlX2VncmVzcyhzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LA0KK21seDVfZnBnYV9pcHNlY19m c19kZWxldGVfZnRlX2VncmVzcyhzdHJ1Y3QgbWx4NV9mbG93X3Jvb3RfbmFtZXNwYWNlICpucywN CiAJCQkJICAgICBzdHJ1Y3QgbWx4NV9mbG93X3RhYmxlICpmdCwNCiAJCQkJICAgICBzdHJ1Y3Qg ZnNfZnRlICpmdGUpDQogew0KLQlyZXR1cm4gZnBnYV9pcHNlY19mc19kZWxldGVfZnRlKGRldiwg ZnQsIGZ0ZSwgdHJ1ZSk7DQorCXJldHVybiBmcGdhX2lwc2VjX2ZzX2RlbGV0ZV9mdGUobnMsIGZ0 LCBmdGUsIHRydWUpOw0KIH0NCiANCiBzdGF0aWMgaW50DQotbWx4NV9mcGdhX2lwc2VjX2ZzX2Ny ZWF0ZV9mbG93X2dyb3VwX2luZ3Jlc3Moc3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwNCittbHg1 X2ZwZ2FfaXBzZWNfZnNfY3JlYXRlX2Zsb3dfZ3JvdXBfaW5ncmVzcyhzdHJ1Y3QgbWx4NV9mbG93 X3Jvb3RfbmFtZXNwYWNlICpucywNCiAJCQkJCSAgICAgc3RydWN0IG1seDVfZmxvd190YWJsZSAq ZnQsDQogCQkJCQkgICAgIHUzMiAqaW4sDQotCQkJCQkgICAgIHVuc2lnbmVkIGludCAqZ3JvdXBf aWQpDQorCQkJCQkgICAgIHN0cnVjdCBtbHg1X2Zsb3dfZ3JvdXAgKmZnKQ0KIHsNCi0JcmV0dXJu IGZwZ2FfaXBzZWNfZnNfY3JlYXRlX2Zsb3dfZ3JvdXAoZGV2LCBmdCwgaW4sIGdyb3VwX2lkLCBm YWxzZSk7DQorCXJldHVybiBmcGdhX2lwc2VjX2ZzX2NyZWF0ZV9mbG93X2dyb3VwKG5zLCBmdCwg aW4sIGZnLCBmYWxzZSk7DQogfQ0KIA0KIHN0YXRpYyBpbnQNCi1tbHg1X2ZwZ2FfaXBzZWNfZnNf Y3JlYXRlX2Z0ZV9pbmdyZXNzKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsDQorbWx4NV9mcGdh X2lwc2VjX2ZzX2NyZWF0ZV9mdGVfaW5ncmVzcyhzdHJ1Y3QgbWx4NV9mbG93X3Jvb3RfbmFtZXNw YWNlICpucywNCiAJCQkJICAgICAgc3RydWN0IG1seDVfZmxvd190YWJsZSAqZnQsDQogCQkJCSAg ICAgIHN0cnVjdCBtbHg1X2Zsb3dfZ3JvdXAgKmZnLA0KIAkJCQkgICAgICBzdHJ1Y3QgZnNfZnRl ICpmdGUpDQogew0KLQlyZXR1cm4gZnBnYV9pcHNlY19mc19jcmVhdGVfZnRlKGRldiwgZnQsIGZn LCBmdGUsIGZhbHNlKTsNCisJcmV0dXJuIGZwZ2FfaXBzZWNfZnNfY3JlYXRlX2Z0ZShucywgZnQs IGZnLCBmdGUsIGZhbHNlKTsNCiB9DQogDQogc3RhdGljIGludA0KLW1seDVfZnBnYV9pcHNlY19m c191cGRhdGVfZnRlX2luZ3Jlc3Moc3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwNCittbHg1X2Zw Z2FfaXBzZWNfZnNfdXBkYXRlX2Z0ZV9pbmdyZXNzKHN0cnVjdCBtbHg1X2Zsb3dfcm9vdF9uYW1l c3BhY2UgKm5zLA0KIAkJCQkgICAgICBzdHJ1Y3QgbWx4NV9mbG93X3RhYmxlICpmdCwNCi0JCQkJ ICAgICAgdW5zaWduZWQgaW50IGdyb3VwX2lkLA0KKwkJCQkgICAgICBzdHJ1Y3QgbWx4NV9mbG93 X2dyb3VwICpmZywNCiAJCQkJICAgICAgaW50IG1vZGlmeV9tYXNrLA0KIAkJCQkgICAgICBzdHJ1 Y3QgZnNfZnRlICpmdGUpDQogew0KLQlyZXR1cm4gZnBnYV9pcHNlY19mc191cGRhdGVfZnRlKGRl diwgZnQsIGdyb3VwX2lkLCBtb2RpZnlfbWFzaywgZnRlLA0KKwlyZXR1cm4gZnBnYV9pcHNlY19m c191cGRhdGVfZnRlKG5zLCBmdCwgZmcsIG1vZGlmeV9tYXNrLCBmdGUsDQogCQkJCQlmYWxzZSk7 DQogfQ0KIA0KIHN0YXRpYyBpbnQNCi1tbHg1X2ZwZ2FfaXBzZWNfZnNfZGVsZXRlX2Z0ZV9pbmdy ZXNzKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsDQorbWx4NV9mcGdhX2lwc2VjX2ZzX2RlbGV0 ZV9mdGVfaW5ncmVzcyhzdHJ1Y3QgbWx4NV9mbG93X3Jvb3RfbmFtZXNwYWNlICpucywNCiAJCQkJ ICAgICAgc3RydWN0IG1seDVfZmxvd190YWJsZSAqZnQsDQogCQkJCSAgICAgIHN0cnVjdCBmc19m dGUgKmZ0ZSkNCiB7DQotCXJldHVybiBmcGdhX2lwc2VjX2ZzX2RlbGV0ZV9mdGUoZGV2LCBmdCwg ZnRlLCBmYWxzZSk7DQorCXJldHVybiBmcGdhX2lwc2VjX2ZzX2RlbGV0ZV9mdGUobnMsIGZ0LCBm dGUsIGZhbHNlKTsNCiB9DQogDQogc3RhdGljIHN0cnVjdCBtbHg1X2Zsb3dfY21kcyBmcGdhX2lw c2VjX2luZ3Jlc3M7DQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gv bWx4NS9jb3JlL2ZzX2NtZC5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9j b3JlL2ZzX2NtZC5jDQppbmRleCBjNDRjY2I2N2M0YTMuLmU4OTU1NWRhNDg1ZSAxMDA2NDQNCi0t LSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9mc19jbWQuYw0KKysr IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2ZzX2NtZC5jDQpAQCAt MzksNyArMzksNyBAQA0KICNpbmNsdWRlICJtbHg1X2NvcmUuaCINCiAjaW5jbHVkZSAiZXN3aXRj aC5oIg0KIA0KLXN0YXRpYyBpbnQgbWx4NV9jbWRfc3R1Yl91cGRhdGVfcm9vdF9mdChzdHJ1Y3Qg bWx4NV9jb3JlX2RldiAqZGV2LA0KK3N0YXRpYyBpbnQgbWx4NV9jbWRfc3R1Yl91cGRhdGVfcm9v dF9mdChzdHJ1Y3QgbWx4NV9mbG93X3Jvb3RfbmFtZXNwYWNlICpucywNCiAJCQkJCXN0cnVjdCBt bHg1X2Zsb3dfdGFibGUgKmZ0LA0KIAkJCQkJdTMyIHVuZGVybGF5X3FwbiwNCiAJCQkJCWJvb2wg ZGlzY29ubmVjdCkNCkBAIC00Nyw0NyArNDcsNDMgQEAgc3RhdGljIGludCBtbHg1X2NtZF9zdHVi X3VwZGF0ZV9yb290X2Z0KHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsDQogCXJldHVybiAwOw0K IH0NCiANCi1zdGF0aWMgaW50IG1seDVfY21kX3N0dWJfY3JlYXRlX2Zsb3dfdGFibGUoc3RydWN0 IG1seDVfY29yZV9kZXYgKmRldiwNCi0JCQkJCSAgIHUxNiB2cG9ydCwNCi0JCQkJCSAgIGVudW0g ZnNfZmxvd190YWJsZV9vcF9tb2Qgb3BfbW9kLA0KLQkJCQkJICAgZW51bSBmc19mbG93X3RhYmxl X3R5cGUgdHlwZSwNCi0JCQkJCSAgIHVuc2lnbmVkIGludCBsZXZlbCwNCitzdGF0aWMgaW50IG1s eDVfY21kX3N0dWJfY3JlYXRlX2Zsb3dfdGFibGUoc3RydWN0IG1seDVfZmxvd19yb290X25hbWVz cGFjZSAqbnMsDQorCQkJCQkgICBzdHJ1Y3QgbWx4NV9mbG93X3RhYmxlICpmdCwNCiAJCQkJCSAg IHVuc2lnbmVkIGludCBsb2dfc2l6ZSwNCi0JCQkJCSAgIHN0cnVjdCBtbHg1X2Zsb3dfdGFibGUg Km5leHRfZnQsDQotCQkJCQkgICB1bnNpZ25lZCBpbnQgKnRhYmxlX2lkLCB1MzIgZmxhZ3MpDQor CQkJCQkgICBzdHJ1Y3QgbWx4NV9mbG93X3RhYmxlICpuZXh0X2Z0KQ0KIHsNCiAJcmV0dXJuIDA7 DQogfQ0KIA0KLXN0YXRpYyBpbnQgbWx4NV9jbWRfc3R1Yl9kZXN0cm95X2Zsb3dfdGFibGUoc3Ry dWN0IG1seDVfY29yZV9kZXYgKmRldiwNCitzdGF0aWMgaW50IG1seDVfY21kX3N0dWJfZGVzdHJv eV9mbG93X3RhYmxlKHN0cnVjdCBtbHg1X2Zsb3dfcm9vdF9uYW1lc3BhY2UgKm5zLA0KIAkJCQkJ ICAgIHN0cnVjdCBtbHg1X2Zsb3dfdGFibGUgKmZ0KQ0KIHsNCiAJcmV0dXJuIDA7DQogfQ0KIA0K LXN0YXRpYyBpbnQgbWx4NV9jbWRfc3R1Yl9tb2RpZnlfZmxvd190YWJsZShzdHJ1Y3QgbWx4NV9j b3JlX2RldiAqZGV2LA0KK3N0YXRpYyBpbnQgbWx4NV9jbWRfc3R1Yl9tb2RpZnlfZmxvd190YWJs ZShzdHJ1Y3QgbWx4NV9mbG93X3Jvb3RfbmFtZXNwYWNlICpucywNCiAJCQkJCSAgIHN0cnVjdCBt bHg1X2Zsb3dfdGFibGUgKmZ0LA0KIAkJCQkJICAgc3RydWN0IG1seDVfZmxvd190YWJsZSAqbmV4 dF9mdCkNCiB7DQogCXJldHVybiAwOw0KIH0NCiANCi1zdGF0aWMgaW50IG1seDVfY21kX3N0dWJf Y3JlYXRlX2Zsb3dfZ3JvdXAoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwNCitzdGF0aWMgaW50 IG1seDVfY21kX3N0dWJfY3JlYXRlX2Zsb3dfZ3JvdXAoc3RydWN0IG1seDVfZmxvd19yb290X25h bWVzcGFjZSAqbnMsDQogCQkJCQkgICBzdHJ1Y3QgbWx4NV9mbG93X3RhYmxlICpmdCwNCiAJCQkJ CSAgIHUzMiAqaW4sDQotCQkJCQkgICB1bnNpZ25lZCBpbnQgKmdyb3VwX2lkKQ0KKwkJCQkJICAg c3RydWN0IG1seDVfZmxvd19ncm91cCAqZmcpDQogew0KIAlyZXR1cm4gMDsNCiB9DQogDQotc3Rh dGljIGludCBtbHg1X2NtZF9zdHViX2Rlc3Ryb3lfZmxvd19ncm91cChzdHJ1Y3QgbWx4NV9jb3Jl X2RldiAqZGV2LA0KK3N0YXRpYyBpbnQgbWx4NV9jbWRfc3R1Yl9kZXN0cm95X2Zsb3dfZ3JvdXAo c3RydWN0IG1seDVfZmxvd19yb290X25hbWVzcGFjZSAqbnMsDQogCQkJCQkgICAgc3RydWN0IG1s eDVfZmxvd190YWJsZSAqZnQsDQotCQkJCQkgICAgdW5zaWduZWQgaW50IGdyb3VwX2lkKQ0KKwkJ CQkJICAgIHN0cnVjdCBtbHg1X2Zsb3dfZ3JvdXAgKmZnKQ0KIHsNCiAJcmV0dXJuIDA7DQogfQ0K IA0KLXN0YXRpYyBpbnQgbWx4NV9jbWRfc3R1Yl9jcmVhdGVfZnRlKHN0cnVjdCBtbHg1X2NvcmVf ZGV2ICpkZXYsDQorc3RhdGljIGludCBtbHg1X2NtZF9zdHViX2NyZWF0ZV9mdGUoc3RydWN0IG1s eDVfZmxvd19yb290X25hbWVzcGFjZSAqbnMsDQogCQkJCSAgICBzdHJ1Y3QgbWx4NV9mbG93X3Rh YmxlICpmdCwNCiAJCQkJICAgIHN0cnVjdCBtbHg1X2Zsb3dfZ3JvdXAgKmdyb3VwLA0KIAkJCQkg ICAgc3RydWN0IGZzX2Z0ZSAqZnRlKQ0KQEAgLTk1LDI4ICs5MSwyOSBAQCBzdGF0aWMgaW50IG1s eDVfY21kX3N0dWJfY3JlYXRlX2Z0ZShzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LA0KIAlyZXR1 cm4gMDsNCiB9DQogDQotc3RhdGljIGludCBtbHg1X2NtZF9zdHViX3VwZGF0ZV9mdGUoc3RydWN0 IG1seDVfY29yZV9kZXYgKmRldiwNCitzdGF0aWMgaW50IG1seDVfY21kX3N0dWJfdXBkYXRlX2Z0 ZShzdHJ1Y3QgbWx4NV9mbG93X3Jvb3RfbmFtZXNwYWNlICpucywNCiAJCQkJICAgIHN0cnVjdCBt bHg1X2Zsb3dfdGFibGUgKmZ0LA0KLQkJCQkgICAgdW5zaWduZWQgaW50IGdyb3VwX2lkLA0KKwkJ CQkgICAgc3RydWN0IG1seDVfZmxvd19ncm91cCAqZ3JvdXAsDQogCQkJCSAgICBpbnQgbW9kaWZ5 X21hc2ssDQogCQkJCSAgICBzdHJ1Y3QgZnNfZnRlICpmdGUpDQogew0KIAlyZXR1cm4gLUVPUE5P VFNVUFA7DQogfQ0KIA0KLXN0YXRpYyBpbnQgbWx4NV9jbWRfc3R1Yl9kZWxldGVfZnRlKHN0cnVj dCBtbHg1X2NvcmVfZGV2ICpkZXYsDQorc3RhdGljIGludCBtbHg1X2NtZF9zdHViX2RlbGV0ZV9m dGUoc3RydWN0IG1seDVfZmxvd19yb290X25hbWVzcGFjZSAqbnMsDQogCQkJCSAgICBzdHJ1Y3Qg bWx4NV9mbG93X3RhYmxlICpmdCwNCiAJCQkJICAgIHN0cnVjdCBmc19mdGUgKmZ0ZSkNCiB7DQog CXJldHVybiAwOw0KIH0NCiANCi1zdGF0aWMgaW50IG1seDVfY21kX3VwZGF0ZV9yb290X2Z0KHN0 cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsDQorc3RhdGljIGludCBtbHg1X2NtZF91cGRhdGVfcm9v dF9mdChzdHJ1Y3QgbWx4NV9mbG93X3Jvb3RfbmFtZXNwYWNlICpucywNCiAJCQkJICAgc3RydWN0 IG1seDVfZmxvd190YWJsZSAqZnQsIHUzMiB1bmRlcmxheV9xcG4sDQogCQkJCSAgIGJvb2wgZGlz Y29ubmVjdCkNCiB7DQogCXUzMiBpbltNTFg1X1NUX1NaX0RXKHNldF9mbG93X3RhYmxlX3Jvb3Rf aW4pXSAgID0gezB9Ow0KIAl1MzIgb3V0W01MWDVfU1RfU1pfRFcoc2V0X2Zsb3dfdGFibGVfcm9v dF9vdXQpXSA9IHswfTsNCisJc3RydWN0IG1seDVfY29yZV9kZXYgKmRldiA9IG5zLT5kZXY7DQog DQogCWlmICgoTUxYNV9DQVBfR0VOKGRldiwgcG9ydF90eXBlKSA9PSBNTFg1X0NBUF9QT1JUX1RZ UEVfSUIpICYmDQogCSAgICB1bmRlcmxheV9xcG4gPT0gMCkNCkBAIC0xNDMsMjkgKzE0MCwyNiBA QCBzdGF0aWMgaW50IG1seDVfY21kX3VwZGF0ZV9yb290X2Z0KHN0cnVjdCBtbHg1X2NvcmVfZGV2 ICpkZXYsDQogCXJldHVybiBtbHg1X2NtZF9leGVjKGRldiwgaW4sIHNpemVvZihpbiksIG91dCwg c2l6ZW9mKG91dCkpOw0KIH0NCiANCi1zdGF0aWMgaW50IG1seDVfY21kX2NyZWF0ZV9mbG93X3Rh YmxlKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsDQotCQkJCSAgICAgIHUxNiB2cG9ydCwNCi0J CQkJICAgICAgZW51bSBmc19mbG93X3RhYmxlX29wX21vZCBvcF9tb2QsDQotCQkJCSAgICAgIGVu dW0gZnNfZmxvd190YWJsZV90eXBlIHR5cGUsDQotCQkJCSAgICAgIHVuc2lnbmVkIGludCBsZXZl bCwNCitzdGF0aWMgaW50IG1seDVfY21kX2NyZWF0ZV9mbG93X3RhYmxlKHN0cnVjdCBtbHg1X2Zs b3dfcm9vdF9uYW1lc3BhY2UgKm5zLA0KKwkJCQkgICAgICBzdHJ1Y3QgbWx4NV9mbG93X3RhYmxl ICpmdCwNCiAJCQkJICAgICAgdW5zaWduZWQgaW50IGxvZ19zaXplLA0KLQkJCQkgICAgICBzdHJ1 Y3QgbWx4NV9mbG93X3RhYmxlICpuZXh0X2Z0LA0KLQkJCQkgICAgICB1bnNpZ25lZCBpbnQgKnRh YmxlX2lkLCB1MzIgZmxhZ3MpDQorCQkJCSAgICAgIHN0cnVjdCBtbHg1X2Zsb3dfdGFibGUgKm5l eHRfZnQpDQogew0KLQlpbnQgZW5fZW5jYXAgPSAhIShmbGFncyAmIE1MWDVfRkxPV19UQUJMRV9U VU5ORUxfRU5fUkVGT1JNQVQpOw0KLQlpbnQgZW5fZGVjYXAgPSAhIShmbGFncyAmIE1MWDVfRkxP V19UQUJMRV9UVU5ORUxfRU5fREVDQVApOw0KKwlpbnQgZW5fZW5jYXAgPSAhIShmdC0+ZmxhZ3Mg JiBNTFg1X0ZMT1dfVEFCTEVfVFVOTkVMX0VOX1JFRk9STUFUKTsNCisJaW50IGVuX2RlY2FwID0g ISEoZnQtPmZsYWdzICYgTUxYNV9GTE9XX1RBQkxFX1RVTk5FTF9FTl9ERUNBUCk7DQogCXUzMiBv dXRbTUxYNV9TVF9TWl9EVyhjcmVhdGVfZmxvd190YWJsZV9vdXQpXSA9IHswfTsNCiAJdTMyIGlu W01MWDVfU1RfU1pfRFcoY3JlYXRlX2Zsb3dfdGFibGVfaW4pXSAgID0gezB9Ow0KKwlzdHJ1Y3Qg bWx4NV9jb3JlX2RldiAqZGV2ID0gbnMtPmRldjsNCiAJaW50IGVycjsNCiANCiAJTUxYNV9TRVQo Y3JlYXRlX2Zsb3dfdGFibGVfaW4sIGluLCBvcGNvZGUsDQogCQkgTUxYNV9DTURfT1BfQ1JFQVRF X0ZMT1dfVEFCTEUpOw0KIA0KLQlNTFg1X1NFVChjcmVhdGVfZmxvd190YWJsZV9pbiwgaW4sIHRh YmxlX3R5cGUsIHR5cGUpOw0KLQlNTFg1X1NFVChjcmVhdGVfZmxvd190YWJsZV9pbiwgaW4sIGZs b3dfdGFibGVfY29udGV4dC5sZXZlbCwgbGV2ZWwpOw0KKwlNTFg1X1NFVChjcmVhdGVfZmxvd190 YWJsZV9pbiwgaW4sIHRhYmxlX3R5cGUsIGZ0LT50eXBlKTsNCisJTUxYNV9TRVQoY3JlYXRlX2Zs b3dfdGFibGVfaW4sIGluLCBmbG93X3RhYmxlX2NvbnRleHQubGV2ZWwsIGZ0LT5sZXZlbCk7DQog CU1MWDVfU0VUKGNyZWF0ZV9mbG93X3RhYmxlX2luLCBpbiwgZmxvd190YWJsZV9jb250ZXh0Lmxv Z19zaXplLCBsb2dfc2l6ZSk7DQotCWlmICh2cG9ydCkgew0KLQkJTUxYNV9TRVQoY3JlYXRlX2Zs b3dfdGFibGVfaW4sIGluLCB2cG9ydF9udW1iZXIsIHZwb3J0KTsNCisJaWYgKGZ0LT52cG9ydCkg ew0KKwkJTUxYNV9TRVQoY3JlYXRlX2Zsb3dfdGFibGVfaW4sIGluLCB2cG9ydF9udW1iZXIsIGZ0 LT52cG9ydCk7DQogCQlNTFg1X1NFVChjcmVhdGVfZmxvd190YWJsZV9pbiwgaW4sIG90aGVyX3Zw b3J0LCAxKTsNCiAJfQ0KIA0KQEAgLTE3NCw3ICsxNjgsNyBAQCBzdGF0aWMgaW50IG1seDVfY21k X2NyZWF0ZV9mbG93X3RhYmxlKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsDQogCU1MWDVfU0VU KGNyZWF0ZV9mbG93X3RhYmxlX2luLCBpbiwgZmxvd190YWJsZV9jb250ZXh0LnJlZm9ybWF0X2Vu LA0KIAkJIGVuX2VuY2FwKTsNCiANCi0Jc3dpdGNoIChvcF9tb2QpIHsNCisJc3dpdGNoIChmdC0+ b3BfbW9kKSB7DQogCWNhc2UgRlNfRlRfT1BfTU9EX05PUk1BTDoNCiAJCWlmIChuZXh0X2Z0KSB7 DQogCQkJTUxYNV9TRVQoY3JlYXRlX2Zsb3dfdGFibGVfaW4sIGluLA0KQEAgLTE5NSwxNiArMTg5 LDE3IEBAIHN0YXRpYyBpbnQgbWx4NV9jbWRfY3JlYXRlX2Zsb3dfdGFibGUoc3RydWN0IG1seDVf Y29yZV9kZXYgKmRldiwNCiANCiAJZXJyID0gbWx4NV9jbWRfZXhlYyhkZXYsIGluLCBzaXplb2Yo aW4pLCBvdXQsIHNpemVvZihvdXQpKTsNCiAJaWYgKCFlcnIpDQotCQkqdGFibGVfaWQgPSBNTFg1 X0dFVChjcmVhdGVfZmxvd190YWJsZV9vdXQsIG91dCwNCi0JCQkJICAgICB0YWJsZV9pZCk7DQor CQlmdC0+aWQgPSBNTFg1X0dFVChjcmVhdGVfZmxvd190YWJsZV9vdXQsIG91dCwNCisJCQkJICB0 YWJsZV9pZCk7DQogCXJldHVybiBlcnI7DQogfQ0KIA0KLXN0YXRpYyBpbnQgbWx4NV9jbWRfZGVz dHJveV9mbG93X3RhYmxlKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsDQorc3RhdGljIGludCBt bHg1X2NtZF9kZXN0cm95X2Zsb3dfdGFibGUoc3RydWN0IG1seDVfZmxvd19yb290X25hbWVzcGFj ZSAqbnMsDQogCQkJCSAgICAgICBzdHJ1Y3QgbWx4NV9mbG93X3RhYmxlICpmdCkNCiB7DQogCXUz MiBpbltNTFg1X1NUX1NaX0RXKGRlc3Ryb3lfZmxvd190YWJsZV9pbildICAgPSB7MH07DQogCXUz MiBvdXRbTUxYNV9TVF9TWl9EVyhkZXN0cm95X2Zsb3dfdGFibGVfb3V0KV0gPSB7MH07DQorCXN0 cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYgPSBucy0+ZGV2Ow0KIA0KIAlNTFg1X1NFVChkZXN0cm95 X2Zsb3dfdGFibGVfaW4sIGluLCBvcGNvZGUsDQogCQkgTUxYNV9DTURfT1BfREVTVFJPWV9GTE9X X1RBQkxFKTsNCkBAIC0yMTgsMTIgKzIxMywxMyBAQCBzdGF0aWMgaW50IG1seDVfY21kX2Rlc3Ry b3lfZmxvd190YWJsZShzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LA0KIAlyZXR1cm4gbWx4NV9j bWRfZXhlYyhkZXYsIGluLCBzaXplb2YoaW4pLCBvdXQsIHNpemVvZihvdXQpKTsNCiB9DQogDQot c3RhdGljIGludCBtbHg1X2NtZF9tb2RpZnlfZmxvd190YWJsZShzdHJ1Y3QgbWx4NV9jb3JlX2Rl diAqZGV2LA0KK3N0YXRpYyBpbnQgbWx4NV9jbWRfbW9kaWZ5X2Zsb3dfdGFibGUoc3RydWN0IG1s eDVfZmxvd19yb290X25hbWVzcGFjZSAqbnMsDQogCQkJCSAgICAgIHN0cnVjdCBtbHg1X2Zsb3df dGFibGUgKmZ0LA0KIAkJCQkgICAgICBzdHJ1Y3QgbWx4NV9mbG93X3RhYmxlICpuZXh0X2Z0KQ0K IHsNCiAJdTMyIGluW01MWDVfU1RfU1pfRFcobW9kaWZ5X2Zsb3dfdGFibGVfaW4pXSAgID0gezB9 Ow0KIAl1MzIgb3V0W01MWDVfU1RfU1pfRFcobW9kaWZ5X2Zsb3dfdGFibGVfb3V0KV0gPSB7MH07 DQorCXN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYgPSBucy0+ZGV2Ow0KIA0KIAlNTFg1X1NFVCht b2RpZnlfZmxvd190YWJsZV9pbiwgaW4sIG9wY29kZSwNCiAJCSBNTFg1X0NNRF9PUF9NT0RJRllf RkxPV19UQUJMRSk7DQpAQCAtMjYzLDEzICsyNTksMTQgQEAgc3RhdGljIGludCBtbHg1X2NtZF9t b2RpZnlfZmxvd190YWJsZShzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LA0KIAlyZXR1cm4gbWx4 NV9jbWRfZXhlYyhkZXYsIGluLCBzaXplb2YoaW4pLCBvdXQsIHNpemVvZihvdXQpKTsNCiB9DQog DQotc3RhdGljIGludCBtbHg1X2NtZF9jcmVhdGVfZmxvd19ncm91cChzdHJ1Y3QgbWx4NV9jb3Jl X2RldiAqZGV2LA0KK3N0YXRpYyBpbnQgbWx4NV9jbWRfY3JlYXRlX2Zsb3dfZ3JvdXAoc3RydWN0 IG1seDVfZmxvd19yb290X25hbWVzcGFjZSAqbnMsDQogCQkJCSAgICAgIHN0cnVjdCBtbHg1X2Zs b3dfdGFibGUgKmZ0LA0KIAkJCQkgICAgICB1MzIgKmluLA0KLQkJCQkgICAgICB1bnNpZ25lZCBp bnQgKmdyb3VwX2lkKQ0KKwkJCQkgICAgICBzdHJ1Y3QgbWx4NV9mbG93X2dyb3VwICpmZykNCiB7 DQogCXUzMiBvdXRbTUxYNV9TVF9TWl9EVyhjcmVhdGVfZmxvd19ncm91cF9vdXQpXSA9IHswfTsN CiAJaW50IGlubGVuID0gTUxYNV9TVF9TWl9CWVRFUyhjcmVhdGVfZmxvd19ncm91cF9pbik7DQor CXN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYgPSBucy0+ZGV2Ow0KIAlpbnQgZXJyOw0KIA0KIAlN TFg1X1NFVChjcmVhdGVfZmxvd19ncm91cF9pbiwgaW4sIG9wY29kZSwNCkBAIC0yODMsMjMgKzI4 MCwyNCBAQCBzdGF0aWMgaW50IG1seDVfY21kX2NyZWF0ZV9mbG93X2dyb3VwKHN0cnVjdCBtbHg1 X2NvcmVfZGV2ICpkZXYsDQogDQogCWVyciA9IG1seDVfY21kX2V4ZWMoZGV2LCBpbiwgaW5sZW4s IG91dCwgc2l6ZW9mKG91dCkpOw0KIAlpZiAoIWVycikNCi0JCSpncm91cF9pZCA9IE1MWDVfR0VU KGNyZWF0ZV9mbG93X2dyb3VwX291dCwgb3V0LA0KLQkJCQkgICAgIGdyb3VwX2lkKTsNCisJCWZn LT5pZCA9IE1MWDVfR0VUKGNyZWF0ZV9mbG93X2dyb3VwX291dCwgb3V0LA0KKwkJCQkgIGdyb3Vw X2lkKTsNCiAJcmV0dXJuIGVycjsNCiB9DQogDQotc3RhdGljIGludCBtbHg1X2NtZF9kZXN0cm95 X2Zsb3dfZ3JvdXAoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwNCitzdGF0aWMgaW50IG1seDVf Y21kX2Rlc3Ryb3lfZmxvd19ncm91cChzdHJ1Y3QgbWx4NV9mbG93X3Jvb3RfbmFtZXNwYWNlICpu cywNCiAJCQkJICAgICAgIHN0cnVjdCBtbHg1X2Zsb3dfdGFibGUgKmZ0LA0KLQkJCQkgICAgICAg dW5zaWduZWQgaW50IGdyb3VwX2lkKQ0KKwkJCQkgICAgICAgc3RydWN0IG1seDVfZmxvd19ncm91 cCAqZmcpDQogew0KIAl1MzIgb3V0W01MWDVfU1RfU1pfRFcoZGVzdHJveV9mbG93X2dyb3VwX291 dCldID0gezB9Ow0KIAl1MzIgaW5bTUxYNV9TVF9TWl9EVyhkZXN0cm95X2Zsb3dfZ3JvdXBfaW4p XSAgID0gezB9Ow0KKwlzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2ID0gbnMtPmRldjsNCiANCiAJ TUxYNV9TRVQoZGVzdHJveV9mbG93X2dyb3VwX2luLCBpbiwgb3Bjb2RlLA0KIAkJIE1MWDVfQ01E X09QX0RFU1RST1lfRkxPV19HUk9VUCk7DQogCU1MWDVfU0VUKGRlc3Ryb3lfZmxvd19ncm91cF9p biwgaW4sIHRhYmxlX3R5cGUsIGZ0LT50eXBlKTsNCiAJTUxYNV9TRVQoZGVzdHJveV9mbG93X2dy b3VwX2luLCBpbiwgdGFibGVfaWQsIGZ0LT5pZCk7DQotCU1MWDVfU0VUKGRlc3Ryb3lfZmxvd19n cm91cF9pbiwgaW4sIGdyb3VwX2lkLCBncm91cF9pZCk7DQorCU1MWDVfU0VUKGRlc3Ryb3lfZmxv d19ncm91cF9pbiwgaW4sIGdyb3VwX2lkLCBmZy0+aWQpOw0KIAlpZiAoZnQtPnZwb3J0KSB7DQog CQlNTFg1X1NFVChkZXN0cm95X2Zsb3dfZ3JvdXBfaW4sIGluLCB2cG9ydF9udW1iZXIsIGZ0LT52 cG9ydCk7DQogCQlNTFg1X1NFVChkZXN0cm95X2Zsb3dfZ3JvdXBfaW4sIGluLCBvdGhlcl92cG9y dCwgMSk7DQpAQCAtNTA1LDIzICs1MDMsMjUgQEAgc3RhdGljIGludCBtbHg1X2NtZF9zZXRfZnRl KHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsDQogCXJldHVybiBlcnI7DQogfQ0KIA0KLXN0YXRp YyBpbnQgbWx4NV9jbWRfY3JlYXRlX2Z0ZShzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LA0KK3N0 YXRpYyBpbnQgbWx4NV9jbWRfY3JlYXRlX2Z0ZShzdHJ1Y3QgbWx4NV9mbG93X3Jvb3RfbmFtZXNw YWNlICpucywNCiAJCQkgICAgICAgc3RydWN0IG1seDVfZmxvd190YWJsZSAqZnQsDQogCQkJICAg ICAgIHN0cnVjdCBtbHg1X2Zsb3dfZ3JvdXAgKmdyb3VwLA0KIAkJCSAgICAgICBzdHJ1Y3QgZnNf ZnRlICpmdGUpDQogew0KKwlzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2ID0gbnMtPmRldjsNCiAJ dW5zaWduZWQgaW50IGdyb3VwX2lkID0gZ3JvdXAtPmlkOw0KIA0KIAlyZXR1cm4gbWx4NV9jbWRf c2V0X2Z0ZShkZXYsIDAsIDAsIGZ0LCBncm91cF9pZCwgZnRlKTsNCiB9DQogDQotc3RhdGljIGlu dCBtbHg1X2NtZF91cGRhdGVfZnRlKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsDQorc3RhdGlj IGludCBtbHg1X2NtZF91cGRhdGVfZnRlKHN0cnVjdCBtbHg1X2Zsb3dfcm9vdF9uYW1lc3BhY2Ug Km5zLA0KIAkJCSAgICAgICBzdHJ1Y3QgbWx4NV9mbG93X3RhYmxlICpmdCwNCi0JCQkgICAgICAg dW5zaWduZWQgaW50IGdyb3VwX2lkLA0KKwkJCSAgICAgICBzdHJ1Y3QgbWx4NV9mbG93X2dyb3Vw ICpmZywNCiAJCQkgICAgICAgaW50IG1vZGlmeV9tYXNrLA0KIAkJCSAgICAgICBzdHJ1Y3QgZnNf ZnRlICpmdGUpDQogew0KIAlpbnQgb3Btb2Q7DQorCXN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYg PSBucy0+ZGV2Ow0KIAlpbnQgYXRvbWljX21vZF9jYXAgPSBNTFg1X0NBUF9GTE9XVEFCTEUoZGV2 LA0KIAkJCQkJCWZsb3dfdGFibGVfcHJvcGVydGllc19uaWNfcmVjZWl2ZS4NCiAJCQkJCQlmbG93 X21vZGlmeV9lbik7DQpAQCAtNTI5LDE1ICs1MjksMTYgQEAgc3RhdGljIGludCBtbHg1X2NtZF91 cGRhdGVfZnRlKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsDQogCQlyZXR1cm4gLUVPUE5PVFNV UFA7DQogCW9wbW9kID0gMTsNCiANCi0JcmV0dXJuCW1seDVfY21kX3NldF9mdGUoZGV2LCBvcG1v ZCwgbW9kaWZ5X21hc2ssIGZ0LCBncm91cF9pZCwgZnRlKTsNCisJcmV0dXJuCW1seDVfY21kX3Nl dF9mdGUoZGV2LCBvcG1vZCwgbW9kaWZ5X21hc2ssIGZ0LCBmZy0+aWQsIGZ0ZSk7DQogfQ0KIA0K LXN0YXRpYyBpbnQgbWx4NV9jbWRfZGVsZXRlX2Z0ZShzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2 LA0KK3N0YXRpYyBpbnQgbWx4NV9jbWRfZGVsZXRlX2Z0ZShzdHJ1Y3QgbWx4NV9mbG93X3Jvb3Rf bmFtZXNwYWNlICpucywNCiAJCQkgICAgICAgc3RydWN0IG1seDVfZmxvd190YWJsZSAqZnQsDQog CQkJICAgICAgIHN0cnVjdCBmc19mdGUgKmZ0ZSkNCiB7DQogCXUzMiBvdXRbTUxYNV9TVF9TWl9E VyhkZWxldGVfZnRlX291dCldID0gezB9Ow0KIAl1MzIgaW5bTUxYNV9TVF9TWl9EVyhkZWxldGVf ZnRlX2luKV0gICA9IHswfTsNCisJc3RydWN0IG1seDVfY29yZV9kZXYgKmRldiA9IG5zLT5kZXY7 DQogDQogCU1MWDVfU0VUKGRlbGV0ZV9mdGVfaW4sIGluLCBvcGNvZGUsIE1MWDVfQ01EX09QX0RF TEVURV9GTE9XX1RBQkxFX0VOVFJZKTsNCiAJTUxYNV9TRVQoZGVsZXRlX2Z0ZV9pbiwgaW4sIHRh YmxlX3R5cGUsIGZ0LT50eXBlKTsNCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9t ZWxsYW5veC9tbHg1L2NvcmUvZnNfY21kLmggYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5v eC9tbHg1L2NvcmUvZnNfY21kLmgNCmluZGV4IDYyMjhiYTdiZmExYS4uZTM0MGY5YWYyZjVhIDEw MDY0NA0KLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2ZzX2Nt ZC5oDQorKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZnNfY21k LmgNCkBAIC0zNiw0NSArMzYsNDIgQEANCiAjaW5jbHVkZSAiZnNfY29yZS5oIg0KIA0KIHN0cnVj dCBtbHg1X2Zsb3dfY21kcyB7DQotCWludCAoKmNyZWF0ZV9mbG93X3RhYmxlKShzdHJ1Y3QgbWx4 NV9jb3JlX2RldiAqZGV2LA0KLQkJCQkgdTE2IHZwb3J0LA0KLQkJCQkgZW51bSBmc19mbG93X3Rh YmxlX29wX21vZCBvcF9tb2QsDQotCQkJCSBlbnVtIGZzX2Zsb3dfdGFibGVfdHlwZSB0eXBlLA0K LQkJCQkgdW5zaWduZWQgaW50IGxldmVsLCB1bnNpZ25lZCBpbnQgbG9nX3NpemUsDQotCQkJCSBz dHJ1Y3QgbWx4NV9mbG93X3RhYmxlICpuZXh0X2Z0LA0KLQkJCQkgdW5zaWduZWQgaW50ICp0YWJs ZV9pZCwgdTMyIGZsYWdzKTsNCi0JaW50ICgqZGVzdHJveV9mbG93X3RhYmxlKShzdHJ1Y3QgbWx4 NV9jb3JlX2RldiAqZGV2LA0KKwlpbnQgKCpjcmVhdGVfZmxvd190YWJsZSkoc3RydWN0IG1seDVf Zmxvd19yb290X25hbWVzcGFjZSAqbnMsDQorCQkJCSBzdHJ1Y3QgbWx4NV9mbG93X3RhYmxlICpm dCwNCisJCQkJIHVuc2lnbmVkIGludCBsb2dfc2l6ZSwNCisJCQkJIHN0cnVjdCBtbHg1X2Zsb3df dGFibGUgKm5leHRfZnQpOw0KKwlpbnQgKCpkZXN0cm95X2Zsb3dfdGFibGUpKHN0cnVjdCBtbHg1 X2Zsb3dfcm9vdF9uYW1lc3BhY2UgKm5zLA0KIAkJCQkgIHN0cnVjdCBtbHg1X2Zsb3dfdGFibGUg KmZ0KTsNCiANCi0JaW50ICgqbW9kaWZ5X2Zsb3dfdGFibGUpKHN0cnVjdCBtbHg1X2NvcmVfZGV2 ICpkZXYsDQorCWludCAoKm1vZGlmeV9mbG93X3RhYmxlKShzdHJ1Y3QgbWx4NV9mbG93X3Jvb3Rf bmFtZXNwYWNlICpucywNCiAJCQkJIHN0cnVjdCBtbHg1X2Zsb3dfdGFibGUgKmZ0LA0KIAkJCQkg c3RydWN0IG1seDVfZmxvd190YWJsZSAqbmV4dF9mdCk7DQogDQotCWludCAoKmNyZWF0ZV9mbG93 X2dyb3VwKShzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LA0KKwlpbnQgKCpjcmVhdGVfZmxvd19n cm91cCkoc3RydWN0IG1seDVfZmxvd19yb290X25hbWVzcGFjZSAqbnMsDQogCQkJCSBzdHJ1Y3Qg bWx4NV9mbG93X3RhYmxlICpmdCwNCiAJCQkJIHUzMiAqaW4sDQotCQkJCSB1bnNpZ25lZCBpbnQg Kmdyb3VwX2lkKTsNCisJCQkJIHN0cnVjdCBtbHg1X2Zsb3dfZ3JvdXAgKmZnKTsNCiANCi0JaW50 ICgqZGVzdHJveV9mbG93X2dyb3VwKShzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LA0KKwlpbnQg KCpkZXN0cm95X2Zsb3dfZ3JvdXApKHN0cnVjdCBtbHg1X2Zsb3dfcm9vdF9uYW1lc3BhY2UgKm5z LA0KIAkJCQkgIHN0cnVjdCBtbHg1X2Zsb3dfdGFibGUgKmZ0LA0KLQkJCQkgIHVuc2lnbmVkIGlu dCBncm91cF9pZCk7DQorCQkJCSAgc3RydWN0IG1seDVfZmxvd19ncm91cCAqZmcpOw0KIA0KLQlp bnQgKCpjcmVhdGVfZnRlKShzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LA0KKwlpbnQgKCpjcmVh dGVfZnRlKShzdHJ1Y3QgbWx4NV9mbG93X3Jvb3RfbmFtZXNwYWNlICpucywNCiAJCQkgIHN0cnVj dCBtbHg1X2Zsb3dfdGFibGUgKmZ0LA0KIAkJCSAgc3RydWN0IG1seDVfZmxvd19ncm91cCAqZmcs DQogCQkJICBzdHJ1Y3QgZnNfZnRlICpmdGUpOw0KIA0KLQlpbnQgKCp1cGRhdGVfZnRlKShzdHJ1 Y3QgbWx4NV9jb3JlX2RldiAqZGV2LA0KKwlpbnQgKCp1cGRhdGVfZnRlKShzdHJ1Y3QgbWx4NV9m bG93X3Jvb3RfbmFtZXNwYWNlICpucywNCiAJCQkgIHN0cnVjdCBtbHg1X2Zsb3dfdGFibGUgKmZ0 LA0KLQkJCSAgdW5zaWduZWQgaW50IGdyb3VwX2lkLA0KKwkJCSAgc3RydWN0IG1seDVfZmxvd19n cm91cCAqZmcsDQogCQkJICBpbnQgbW9kaWZ5X21hc2ssDQogCQkJICBzdHJ1Y3QgZnNfZnRlICpm dGUpOw0KIA0KLQlpbnQgKCpkZWxldGVfZnRlKShzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LA0K KwlpbnQgKCpkZWxldGVfZnRlKShzdHJ1Y3QgbWx4NV9mbG93X3Jvb3RfbmFtZXNwYWNlICpucywN CiAJCQkgIHN0cnVjdCBtbHg1X2Zsb3dfdGFibGUgKmZ0LA0KIAkJCSAgc3RydWN0IGZzX2Z0ZSAq ZnRlKTsNCiANCi0JaW50ICgqdXBkYXRlX3Jvb3RfZnQpKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpk ZXYsDQorCWludCAoKnVwZGF0ZV9yb290X2Z0KShzdHJ1Y3QgbWx4NV9mbG93X3Jvb3RfbmFtZXNw YWNlICpucywNCiAJCQkgICAgICBzdHJ1Y3QgbWx4NV9mbG93X3RhYmxlICpmdCwNCiAJCQkgICAg ICB1MzIgdW5kZXJsYXlfcXBuLA0KIAkJCSAgICAgIGJvb2wgZGlzY29ubmVjdCk7DQpkaWZmIC0t Z2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2ZzX2NvcmUuYyBi L2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9mc19jb3JlLmMNCmluZGV4 IDlmY2VmN2UzYjg2ZC4uNjAyNGRmODIxNzM0IDEwMDY0NA0KLS0tIGEvZHJpdmVycy9uZXQvZXRo ZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2ZzX2NvcmUuYw0KKysrIGIvZHJpdmVycy9uZXQvZXRo ZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2ZzX2NvcmUuYw0KQEAgLTQwMyw3ICs0MDMsNyBAQCBz dGF0aWMgdm9pZCBkZWxfaHdfZmxvd190YWJsZShzdHJ1Y3QgZnNfbm9kZSAqbm9kZSkNCiAJdHJh Y2VfbWx4NV9mc19kZWxfZnQoZnQpOw0KIA0KIAlpZiAobm9kZS0+YWN0aXZlKSB7DQotCQllcnIg PSByb290LT5jbWRzLT5kZXN0cm95X2Zsb3dfdGFibGUoZGV2LCBmdCk7DQorCQllcnIgPSByb290 LT5jbWRzLT5kZXN0cm95X2Zsb3dfdGFibGUocm9vdCwgZnQpOw0KIAkJaWYgKGVycikNCiAJCQlt bHg1X2NvcmVfd2FybihkZXYsICJmbG93IHN0ZWVyaW5nIGNhbid0IGRlc3Ryb3kgZnRcbiIpOw0K IAl9DQpAQCAtNDM1LDcgKzQzNSw3IEBAIHN0YXRpYyB2b2lkIG1vZGlmeV9mdGUoc3RydWN0IGZz X2Z0ZSAqZnRlKQ0KIAlkZXYgPSBnZXRfZGV2KCZmdGUtPm5vZGUpOw0KIA0KIAlyb290ID0gZmlu ZF9yb290KCZmdC0+bm9kZSk7DQotCWVyciA9IHJvb3QtPmNtZHMtPnVwZGF0ZV9mdGUoZGV2LCBm dCwgZmctPmlkLCBmdGUtPm1vZGlmeV9tYXNrLCBmdGUpOw0KKwllcnIgPSByb290LT5jbWRzLT51 cGRhdGVfZnRlKHJvb3QsIGZ0LCBmZywgZnRlLT5tb2RpZnlfbWFzaywgZnRlKTsNCiAJaWYgKGVy cikNCiAJCW1seDVfY29yZV93YXJuKGRldiwNCiAJCQkgICAgICAgIiVzIGNhbid0IGRlbCBydWxl IGZnIGlkPSVkIGZ0ZV9pbmRleD0lZFxuIiwNCkBAIC00OTIsNyArNDkyLDcgQEAgc3RhdGljIHZv aWQgZGVsX2h3X2Z0ZShzdHJ1Y3QgZnNfbm9kZSAqbm9kZSkNCiAJZGV2ID0gZ2V0X2RldigmZnQt Pm5vZGUpOw0KIAlyb290ID0gZmluZF9yb290KCZmdC0+bm9kZSk7DQogCWlmIChub2RlLT5hY3Rp dmUpIHsNCi0JCWVyciA9IHJvb3QtPmNtZHMtPmRlbGV0ZV9mdGUoZGV2LCBmdCwgZnRlKTsNCisJ CWVyciA9IHJvb3QtPmNtZHMtPmRlbGV0ZV9mdGUocm9vdCwgZnQsIGZ0ZSk7DQogCQlpZiAoZXJy KQ0KIAkJCW1seDVfY29yZV93YXJuKGRldiwNCiAJCQkJICAgICAgICJmbG93IHN0ZWVyaW5nIGNh bid0IGRlbGV0ZSBmdGUgaW4gaW5kZXggJWQgb2YgZmxvdyBncm91cCBpZCAlZFxuIiwNCkBAIC01 MzIsNyArNTMyLDcgQEAgc3RhdGljIHZvaWQgZGVsX2h3X2Zsb3dfZ3JvdXAoc3RydWN0IGZzX25v ZGUgKm5vZGUpDQogCXRyYWNlX21seDVfZnNfZGVsX2ZnKGZnKTsNCiANCiAJcm9vdCA9IGZpbmRf cm9vdCgmZnQtPm5vZGUpOw0KLQlpZiAoZmctPm5vZGUuYWN0aXZlICYmIHJvb3QtPmNtZHMtPmRl c3Ryb3lfZmxvd19ncm91cChkZXYsIGZ0LCBmZy0+aWQpKQ0KKwlpZiAoZmctPm5vZGUuYWN0aXZl ICYmIHJvb3QtPmNtZHMtPmRlc3Ryb3lfZmxvd19ncm91cChyb290LCBmdCwgZmcpKQ0KIAkJbWx4 NV9jb3JlX3dhcm4oZGV2LCAiZmxvdyBzdGVlcmluZyBjYW4ndCBkZXN0cm95IGZnICVkIG9mIGZ0 ICVkXG4iLA0KIAkJCSAgICAgICBmZy0+aWQsIGZ0LT5pZCk7DQogfQ0KQEAgLTc4Myw3ICs3ODMs NyBAQCBzdGF0aWMgaW50IGNvbm5lY3RfZnRzX2luX3ByaW8oc3RydWN0IG1seDVfY29yZV9kZXYg KmRldiwNCiANCiAJZnNfZm9yX2VhY2hfZnQoaXRlciwgcHJpbykgew0KIAkJaSsrOw0KLQkJZXJy ID0gcm9vdC0+Y21kcy0+bW9kaWZ5X2Zsb3dfdGFibGUoZGV2LCBpdGVyLCBmdCk7DQorCQllcnIg PSByb290LT5jbWRzLT5tb2RpZnlfZmxvd190YWJsZShyb290LCBpdGVyLCBmdCk7DQogCQlpZiAo ZXJyKSB7DQogCQkJbWx4NV9jb3JlX3dhcm4oZGV2LCAiRmFpbGVkIHRvIG1vZGlmeSBmbG93IHRh YmxlICVkXG4iLA0KIAkJCQkgICAgICAgaXRlci0+aWQpOw0KQEAgLTgzMSwxMSArODMxLDExIEBA IHN0YXRpYyBpbnQgdXBkYXRlX3Jvb3RfZnRfY3JlYXRlKHN0cnVjdCBtbHg1X2Zsb3dfdGFibGUg KmZ0LCBzdHJ1Y3QgZnNfcHJpbw0KIAlpZiAobGlzdF9lbXB0eSgmcm9vdC0+dW5kZXJsYXlfcXBu cykpIHsNCiAJCS8qIERvbid0IHNldCBhbnkgUVBOICh6ZXJvKSBpbiBjYXNlIFFQTiBsaXN0IGlz IGVtcHR5ICovDQogCQlxcG4gPSAwOw0KLQkJZXJyID0gcm9vdC0+Y21kcy0+dXBkYXRlX3Jvb3Rf ZnQocm9vdC0+ZGV2LCBmdCwgcXBuLCBmYWxzZSk7DQorCQllcnIgPSByb290LT5jbWRzLT51cGRh dGVfcm9vdF9mdChyb290LCBmdCwgcXBuLCBmYWxzZSk7DQogCX0gZWxzZSB7DQogCQlsaXN0X2Zv cl9lYWNoX2VudHJ5KHVxcCwgJnJvb3QtPnVuZGVybGF5X3FwbnMsIGxpc3QpIHsNCiAJCQlxcG4g PSB1cXAtPnFwbjsNCi0JCQllcnIgPSByb290LT5jbWRzLT51cGRhdGVfcm9vdF9mdChyb290LT5k ZXYsIGZ0LA0KKwkJCWVyciA9IHJvb3QtPmNtZHMtPnVwZGF0ZV9yb290X2Z0KHJvb3QsIGZ0LA0K IAkJCQkJCQkgcXBuLCBmYWxzZSk7DQogCQkJaWYgKGVycikNCiAJCQkJYnJlYWs7DQpAQCAtODcx LDcgKzg3MSw3IEBAIHN0YXRpYyBpbnQgX21seDVfbW9kaWZ5X3J1bGVfZGVzdGluYXRpb24oc3Ry dWN0IG1seDVfZmxvd19ydWxlICpydWxlLA0KIA0KIAltZW1jcHkoJnJ1bGUtPmRlc3RfYXR0ciwg ZGVzdCwgc2l6ZW9mKCpkZXN0KSk7DQogCXJvb3QgPSBmaW5kX3Jvb3QoJmZ0LT5ub2RlKTsNCi0J ZXJyID0gcm9vdC0+Y21kcy0+dXBkYXRlX2Z0ZShnZXRfZGV2KCZmdC0+bm9kZSksIGZ0LCBmZy0+ aWQsDQorCWVyciA9IHJvb3QtPmNtZHMtPnVwZGF0ZV9mdGUocm9vdCwgZnQsIGZnLA0KIAkJCQkg ICAgIG1vZGlmeV9tYXNrLCBmdGUpOw0KIAl1cF93cml0ZV9yZWZfbm9kZSgmZnRlLT5ub2RlLCBm YWxzZSk7DQogDQpAQCAtMTAxMyw5ICsxMDEzLDcgQEAgc3RhdGljIHN0cnVjdCBtbHg1X2Zsb3df dGFibGUgKl9fbWx4NV9jcmVhdGVfZmxvd190YWJsZShzdHJ1Y3QgbWx4NV9mbG93X25hbWVzcGEN CiAJdHJlZV9pbml0X25vZGUoJmZ0LT5ub2RlLCBkZWxfaHdfZmxvd190YWJsZSwgZGVsX3N3X2Zs b3dfdGFibGUpOw0KIAlsb2dfdGFibGVfc3ogPSBmdC0+bWF4X2Z0ZSA/IGlsb2cyKGZ0LT5tYXhf ZnRlKSA6IDA7DQogCW5leHRfZnQgPSBmaW5kX25leHRfY2hhaW5lZF9mdChmc19wcmlvKTsNCi0J ZXJyID0gcm9vdC0+Y21kcy0+Y3JlYXRlX2Zsb3dfdGFibGUocm9vdC0+ZGV2LCBmdC0+dnBvcnQs IGZ0LT5vcF9tb2QsDQotCQkJCQkgICAgZnQtPnR5cGUsIGZ0LT5sZXZlbCwgbG9nX3RhYmxlX3N6 LA0KLQkJCQkJICAgIG5leHRfZnQsICZmdC0+aWQsIGZ0LT5mbGFncyk7DQorCWVyciA9IHJvb3Qt PmNtZHMtPmNyZWF0ZV9mbG93X3RhYmxlKHJvb3QsIGZ0LCBsb2dfdGFibGVfc3osIG5leHRfZnQp Ow0KIAlpZiAoZXJyKQ0KIAkJZ290byBmcmVlX2Z0Ow0KIA0KQEAgLTEwMzIsNyArMTAzMCw3IEBA IHN0YXRpYyBzdHJ1Y3QgbWx4NV9mbG93X3RhYmxlICpfX21seDVfY3JlYXRlX2Zsb3dfdGFibGUo c3RydWN0IG1seDVfZmxvd19uYW1lc3BhDQogCXRyYWNlX21seDVfZnNfYWRkX2Z0KGZ0KTsNCiAJ cmV0dXJuIGZ0Ow0KIGRlc3Ryb3lfZnQ6DQotCXJvb3QtPmNtZHMtPmRlc3Ryb3lfZmxvd190YWJs ZShyb290LT5kZXYsIGZ0KTsNCisJcm9vdC0+Y21kcy0+ZGVzdHJveV9mbG93X3RhYmxlKHJvb3Qs IGZ0KTsNCiBmcmVlX2Z0Og0KIAlrZnJlZShmdCk7DQogdW5sb2NrX3Jvb3Q6DQpAQCAtMTExNCw3 ICsxMTEyLDYgQEAgc3RydWN0IG1seDVfZmxvd19ncm91cCAqbWx4NV9jcmVhdGVfZmxvd19ncm91 cChzdHJ1Y3QgbWx4NV9mbG93X3RhYmxlICpmdCwNCiAJCQkJICAgc3RhcnRfZmxvd19pbmRleCk7 DQogCWludCBlbmRfaW5kZXggPSBNTFg1X0dFVChjcmVhdGVfZmxvd19ncm91cF9pbiwgZmdfaW4s DQogCQkJCSBlbmRfZmxvd19pbmRleCk7DQotCXN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYgPSBn ZXRfZGV2KCZmdC0+bm9kZSk7DQogCXN0cnVjdCBtbHg1X2Zsb3dfZ3JvdXAgKmZnOw0KIAlpbnQg ZXJyOw0KIA0KQEAgLTExMjksNyArMTEyNiw3IEBAIHN0cnVjdCBtbHg1X2Zsb3dfZ3JvdXAgKm1s eDVfY3JlYXRlX2Zsb3dfZ3JvdXAoc3RydWN0IG1seDVfZmxvd190YWJsZSAqZnQsDQogCWlmIChJ U19FUlIoZmcpKQ0KIAkJcmV0dXJuIGZnOw0KIA0KLQllcnIgPSByb290LT5jbWRzLT5jcmVhdGVf Zmxvd19ncm91cChkZXYsIGZ0LCBmZ19pbiwgJmZnLT5pZCk7DQorCWVyciA9IHJvb3QtPmNtZHMt PmNyZWF0ZV9mbG93X2dyb3VwKHJvb3QsIGZ0LCBmZ19pbiwgZmcpOw0KIAlpZiAoZXJyKSB7DQog CQl0cmVlX3B1dF9ub2RlKCZmZy0+bm9kZSwgZmFsc2UpOw0KIAkJcmV0dXJuIEVSUl9QVFIoZXJy KTsNCkBAIC0xMjY5LDExICsxMjY2LDkgQEAgYWRkX3J1bGVfZnRlKHN0cnVjdCBmc19mdGUgKmZ0 ZSwNCiAJZnNfZ2V0X29iaihmdCwgZmctPm5vZGUucGFyZW50KTsNCiAJcm9vdCA9IGZpbmRfcm9v dCgmZmctPm5vZGUpOw0KIAlpZiAoIShmdGUtPnN0YXR1cyAmIEZTX0ZURV9TVEFUVVNfRVhJU1RJ TkcpKQ0KLQkJZXJyID0gcm9vdC0+Y21kcy0+Y3JlYXRlX2Z0ZShnZXRfZGV2KCZmdC0+bm9kZSks DQotCQkJCQkgICAgIGZ0LCBmZywgZnRlKTsNCisJCWVyciA9IHJvb3QtPmNtZHMtPmNyZWF0ZV9m dGUocm9vdCwgZnQsIGZnLCBmdGUpOw0KIAllbHNlDQotCQllcnIgPSByb290LT5jbWRzLT51cGRh dGVfZnRlKGdldF9kZXYoJmZ0LT5ub2RlKSwgZnQsIGZnLT5pZCwNCi0JCQkJCQkgICAgIG1vZGlm eV9tYXNrLCBmdGUpOw0KKwkJZXJyID0gcm9vdC0+Y21kcy0+dXBkYXRlX2Z0ZShyb290LCBmdCwg ZmcsIG1vZGlmeV9tYXNrLCBmdGUpOw0KIAlpZiAoZXJyKQ0KIAkJZ290byBmcmVlX2hhbmRsZTsN CiANCkBAIC0xMzM5LDcgKzEzMzQsNiBAQCBzdGF0aWMgaW50IGNyZWF0ZV9hdXRvX2Zsb3dfZ3Jv dXAoc3RydWN0IG1seDVfZmxvd190YWJsZSAqZnQsDQogCQkJCSAgc3RydWN0IG1seDVfZmxvd19n cm91cCAqZmcpDQogew0KIAlzdHJ1Y3QgbWx4NV9mbG93X3Jvb3RfbmFtZXNwYWNlICpyb290ID0g ZmluZF9yb290KCZmdC0+bm9kZSk7DQotCXN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYgPSBnZXRf ZGV2KCZmdC0+bm9kZSk7DQogCWludCBpbmxlbiA9IE1MWDVfU1RfU1pfQllURVMoY3JlYXRlX2Zs b3dfZ3JvdXBfaW4pOw0KIAl2b2lkICptYXRjaF9jcml0ZXJpYV9hZGRyOw0KIAl1OCBzcmNfZXN3 X293bmVyX21hc2tfb247DQpAQCAtMTM2OSw3ICsxMzYzLDcgQEAgc3RhdGljIGludCBjcmVhdGVf YXV0b19mbG93X2dyb3VwKHN0cnVjdCBtbHg1X2Zsb3dfdGFibGUgKmZ0LA0KIAltZW1jcHkobWF0 Y2hfY3JpdGVyaWFfYWRkciwgZmctPm1hc2subWF0Y2hfY3JpdGVyaWEsDQogCSAgICAgICBzaXpl b2YoZmctPm1hc2subWF0Y2hfY3JpdGVyaWEpKTsNCiANCi0JZXJyID0gcm9vdC0+Y21kcy0+Y3Jl YXRlX2Zsb3dfZ3JvdXAoZGV2LCBmdCwgaW4sICZmZy0+aWQpOw0KKwllcnIgPSByb290LT5jbWRz LT5jcmVhdGVfZmxvd19ncm91cChyb290LCBmdCwgaW4sIGZnKTsNCiAJaWYgKCFlcnIpIHsNCiAJ CWZnLT5ub2RlLmFjdGl2ZSA9IHRydWU7DQogCQl0cmFjZV9tbHg1X2ZzX2FkZF9mZyhmZyk7DQpA QCAtMTk0MSwxMiArMTkzNSwxMiBAQCBzdGF0aWMgaW50IHVwZGF0ZV9yb290X2Z0X2Rlc3Ryb3ko c3RydWN0IG1seDVfZmxvd190YWJsZSAqZnQpDQogCWlmIChsaXN0X2VtcHR5KCZyb290LT51bmRl cmxheV9xcG5zKSkgew0KIAkJLyogRG9uJ3Qgc2V0IGFueSBRUE4gKHplcm8pIGluIGNhc2UgUVBO IGxpc3QgaXMgZW1wdHkgKi8NCiAJCXFwbiA9IDA7DQotCQllcnIgPSByb290LT5jbWRzLT51cGRh dGVfcm9vdF9mdChyb290LT5kZXYsIG5ld19yb290X2Z0LA0KKwkJZXJyID0gcm9vdC0+Y21kcy0+ dXBkYXRlX3Jvb3RfZnQocm9vdCwgbmV3X3Jvb3RfZnQsDQogCQkJCQkJIHFwbiwgZmFsc2UpOw0K IAl9IGVsc2Ugew0KIAkJbGlzdF9mb3JfZWFjaF9lbnRyeSh1cXAsICZyb290LT51bmRlcmxheV9x cG5zLCBsaXN0KSB7DQogCQkJcXBuID0gdXFwLT5xcG47DQotCQkJZXJyID0gcm9vdC0+Y21kcy0+ dXBkYXRlX3Jvb3RfZnQocm9vdC0+ZGV2LA0KKwkJCWVyciA9IHJvb3QtPmNtZHMtPnVwZGF0ZV9y b290X2Z0KHJvb3QsDQogCQkJCQkJCSBuZXdfcm9vdF9mdCwgcXBuLA0KIAkJCQkJCQkgZmFsc2Up Ow0KIAkJCWlmIChlcnIpDQpAQCAtMjc2Miw3ICsyNzU2LDcgQEAgaW50IG1seDVfZnNfYWRkX3J4 X3VuZGVybGF5X3FwbihzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LCB1MzIgdW5kZXJsYXlfcXBu KQ0KIAkJZ290byB1cGRhdGVfZnRfZmFpbDsNCiAJfQ0KIA0KLQllcnIgPSByb290LT5jbWRzLT51 cGRhdGVfcm9vdF9mdChkZXYsIHJvb3QtPnJvb3RfZnQsIHVuZGVybGF5X3FwbiwNCisJZXJyID0g cm9vdC0+Y21kcy0+dXBkYXRlX3Jvb3RfZnQocm9vdCwgcm9vdC0+cm9vdF9mdCwgdW5kZXJsYXlf cXBuLA0KIAkJCQkJIGZhbHNlKTsNCiAJaWYgKGVycikgew0KIAkJbWx4NV9jb3JlX3dhcm4oZGV2 LCAiRmFpbGVkIGFkZGluZyB1bmRlcmxheSBRUE4gKCV1KSB0byByb290IEZUIGVyciglZClcbiIs DQpAQCAtMjgwNiw3ICsyODAwLDcgQEAgaW50IG1seDVfZnNfcmVtb3ZlX3J4X3VuZGVybGF5X3Fw bihzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LCB1MzIgdW5kZXJsYXlfcXBuKQ0KIAkJZ290byBv dXQ7DQogCX0NCiANCi0JZXJyID0gcm9vdC0+Y21kcy0+dXBkYXRlX3Jvb3RfZnQoZGV2LCByb290 LT5yb290X2Z0LCB1bmRlcmxheV9xcG4sDQorCWVyciA9IHJvb3QtPmNtZHMtPnVwZGF0ZV9yb290 X2Z0KHJvb3QsIHJvb3QtPnJvb3RfZnQsIHVuZGVybGF5X3FwbiwNCiAJCQkJCSB0cnVlKTsNCiAJ aWYgKGVycikNCiAJCW1seDVfY29yZV93YXJuKGRldiwgIkZhaWxlZCByZW1vdmluZyB1bmRlcmxh eSBRUE4gKCV1KSBmcm9tIHJvb3QgRlQgZXJyKCVkKVxuIiwNCi0tIA0KMi4yMC4xDQoNCg==