From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from omzsmtpe01.verizonbusiness.com ([199.249.25.210]:48900 "EHLO omzsmtpe01.verizonbusiness.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751198AbdFDIMZ (ORCPT ); Sun, 4 Jun 2017 04:12:25 -0400 From: "Levin, Alexander (Sasha Levin)" Cc: =?utf-8?B?U3RlZmFuIEJyw7xucw==?= , "David S . Miller" , "Levin, Alexander (Sasha Levin)" To: "stable@vger.kernel.org" Subject: [PATCH for v4.9 LTS 018/111] sierra_net: Add support for IPv6 and Dual-Stack Link Sense Indications Date: Sun, 4 Jun 2017 08:11:56 +0000 Message-ID: <20170604081123.19462-18-alexander.levin@verizon.com> References: <20170604081123.19462-1-alexander.levin@verizon.com> In-Reply-To: <20170604081123.19462-1-alexander.levin@verizon.com> Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-ID: <4D3E335FA1605B4FBEAE1850350698C8@vzwcorp.com> Content-Transfer-Encoding: base64 MIME-Version: 1.0 Sender: stable-owner@vger.kernel.org List-ID: RnJvbTogU3RlZmFuIEJyw7xucyA8c3RlZmFuLmJydWVuc0Byd3RoLWFhY2hlbi5kZT4NCg0KWyBV cHN0cmVhbSBjb21taXQgNWE3MDM0OGUxMTg3YzViZjFjYmQwZWM1MTg0M2YzNmJlZmVkMWMyZCBd DQoNCklmIGEgY29udGV4dCBpcyBjb25maWd1cmVkIGFzIGR1YWxzdGFjayAoIklQdjR2NiIpLCB0 aGUgbW9kZW0gaW5kaWNhdGVzDQp0aGUgY29udGV4dCBhY3RpdmF0aW9uIHdpdGggYSBzbGlnaHRs eSBkaWZmZXJlbnQgaW5kaWNhdGlvbiBtZXNzYWdlLg0KVGhlIGR1YWwtc3RhY2sgaW5kaWNhdGlv biBvbWl0cyB0aGUgbGlua190eXBlIChJUHY0L3Y2KSBhbmQgYWRkcw0KYWRkaXRpb25hbCBhZGRy ZXNzIGZpZWxkcy4NCklQdjYgTFNJcyBhcmUgaWRlbnRpY2FsIHRvIElQdjQgTFNJcywgYnV0IGhh dmUgYSBkaWZmZXJlbnQgbGluayB0eXBlLg0KDQpTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gQnLDvG5z IDxzdGVmYW4uYnJ1ZW5zQHJ3dGgtYWFjaGVuLmRlPg0KUmV2aWV3ZWQtYnk6IEJqw7hybiBNb3Jr IDxiam9ybkBtb3JrLm5vPg0KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBk YXZlbWxvZnQubmV0Pg0KU2lnbmVkLW9mZi1ieTogU2FzaGEgTGV2aW4gPGFsZXhhbmRlci5sZXZp bkB2ZXJpem9uLmNvbT4NCi0tLQ0KIGRyaXZlcnMvbmV0L3VzYi9zaWVycmFfbmV0LmMgfCAxMDEg KysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLQ0KIDEgZmlsZSBjaGFu Z2VkLCA2NiBpbnNlcnRpb25zKCspLCAzNSBkZWxldGlvbnMoLSkNCg0KZGlmZiAtLWdpdCBhL2Ry aXZlcnMvbmV0L3VzYi9zaWVycmFfbmV0LmMgYi9kcml2ZXJzL25ldC91c2Ivc2llcnJhX25ldC5j DQppbmRleCBkOTk3ZDI0Nzk4ZjAuLjBiNWE4NGM5MDIyYyAxMDA2NDQNCi0tLSBhL2RyaXZlcnMv bmV0L3VzYi9zaWVycmFfbmV0LmMNCisrKyBiL2RyaXZlcnMvbmV0L3VzYi9zaWVycmFfbmV0LmMN CkBAIC03Myw4ICs3Myw2IEBAIHN0YXRpYwlhdG9taWNfdCBpZmFjZV9jb3VudGVyID0gQVRPTUlD X0lOSVQoMCk7DQogLyogUHJpdmF0ZSBkYXRhIHN0cnVjdHVyZSAqLw0KIHN0cnVjdCBzaWVycmFf bmV0X2RhdGEgew0KIA0KLQl1OCBldGhyX2hkcl90bXBsW0VUSF9ITEVOXTsgLyogZXRoZXJuZXQg aGVhZGVyIHRlbXBsYXRlIGZvciByeCdkIHBrdHMgKi8NCi0NCiAJdTE2IGxpbmtfdXA7CQkvKiBh aXIgbGluayB1cCBvciBkb3duICovDQogCXU4IHR4X2hkcl90ZW1wbGF0ZVs0XTsJLyogcGFydCBv ZiBISVAgaGRyIGZvciB0eCdkIHBhY2tldHMgKi8NCiANCkBAIC0xMjIsNiArMTIwLDcgQEAgc3Ry dWN0IHBhcmFtIHsNCiANCiAvKiBMU0kgUHJvdG9jb2wgdHlwZXMgKi8NCiAjZGVmaW5lIFNJRVJS QV9ORVRfUFJPVE9DT0xfVU1UUyAgICAgIDB4MDENCisjZGVmaW5lIFNJRVJSQV9ORVRfUFJPVE9D T0xfVU1UU19EUyAgIDB4MDQNCiAvKiBMU0kgQ292ZXJhZ2UgKi8NCiAjZGVmaW5lIFNJRVJSQV9O RVRfQ09WRVJBR0VfTk9ORSAgICAgIDB4MDANCiAjZGVmaW5lIFNJRVJSQV9ORVRfQ09WRVJBR0Vf Tk9QQUNLRVQgIDB4MDENCkBAIC0xMjksNyArMTI4LDggQEAgc3RydWN0IHBhcmFtIHsNCiAvKiBM U0kgU2Vzc2lvbiAqLw0KICNkZWZpbmUgU0lFUlJBX05FVF9TRVNTSU9OX0lETEUgICAgICAgMHgw MA0KIC8qIExTSSBMaW5rIHR5cGVzICovDQotI2RlZmluZSBTSUVSUkFfTkVUX0FTX0xJTktfVFlQ RV9JUHY0ICAweDAwDQorI2RlZmluZSBTSUVSUkFfTkVUX0FTX0xJTktfVFlQRV9JUFY0ICAweDAw DQorI2RlZmluZSBTSUVSUkFfTkVUX0FTX0xJTktfVFlQRV9JUFY2ICAweDAyDQogDQogc3RydWN0 IGxzaV91bXRzIHsNCiAJdTggcHJvdG9jb2w7DQpAQCAtMTM3LDkgKzEzNywxNCBAQCBzdHJ1Y3Qg bHNpX3VtdHMgew0KIAlfX2JlMTYgbGVuZ3RoOw0KIAkvKiBldmVudHVhbGx5IHVzZSBhIHVuaW9u IGZvciB0aGUgcmVzdCAtIGFzc3VtZSB1bXRzIGZvciBub3cgKi8NCiAJdTggY292ZXJhZ2U7DQot CXU4IHVudXNlZDJbNDFdOw0KKwl1OCBuZXR3b3JrX2xlbjsgLyogbmV0d29yayBuYW1lIGxlbiAq Lw0KKwl1OCBuZXR3b3JrWzQwXTsgLyogbmV0d29yayBuYW1lIChVQ1MyLCBiaWdlbmRpYW4pICov DQogCXU4IHNlc3Npb25fc3RhdGU7DQogCXU4IHVudXNlZDNbMzNdOw0KK30gX19wYWNrZWQ7DQor DQorc3RydWN0IGxzaV91bXRzX3NpbmdsZSB7DQorCXN0cnVjdCBsc2lfdW10cyBsc2k7DQogCXU4 IGxpbmtfdHlwZTsNCiAJdTggcGRwX2FkZHJfbGVuOyAvKiBOVy1zdXBwbGllZCBQRFAgYWRkcmVz cyBsZW4gKi8NCiAJdTggcGRwX2FkZHJbMTZdOyAvKiBOVy1zdXBwbGllZCBQRFAgYWRkcmVzcyAo YmlnZW5kaWFuKSkgKi8NCkBAIC0xNTgsMTAgKzE2MywzMSBAQCBzdHJ1Y3QgbHNpX3VtdHMgew0K IAl1OCByZXNlcnZlZFs4XTsNCiB9IF9fcGFja2VkOw0KIA0KK3N0cnVjdCBsc2lfdW10c19kdWFs IHsNCisJc3RydWN0IGxzaV91bXRzIGxzaTsNCisJdTggcGRwX2FkZHI0X2xlbjsgLyogTlctc3Vw cGxpZWQgUERQIElQdjQgYWRkcmVzcyBsZW4gKi8NCisJdTggcGRwX2FkZHI0WzRdOyAgLyogTlct c3VwcGxpZWQgUERQIElQdjQgYWRkcmVzcyAoYmlnZW5kaWFuKSkgKi8NCisJdTggcGRwX2FkZHI2 X2xlbjsgLyogTlctc3VwcGxpZWQgUERQIElQdjYgYWRkcmVzcyBsZW4gKi8NCisJdTggcGRwX2Fk ZHI2WzE2XTsgLyogTlctc3VwcGxpZWQgUERQIElQdjYgYWRkcmVzcyAoYmlnZW5kaWFuKSkgKi8N CisJdTggdW51c2VkNFsyM107DQorCXU4IGRuczFfYWRkcjRfbGVuOyAvKiBOVy1zdXBwbGllZCAx c3QgRE5TIHY0IGFkZHJlc3MgbGVuIChiaWdlbmRpYW4pICovDQorCXU4IGRuczFfYWRkcjRbNF07 ICAvKiBOVy1zdXBwbGllZCAxc3QgRE5TIHY0IGFkZHJlc3MgKi8NCisJdTggZG5zMV9hZGRyNl9s ZW47IC8qIE5XLXN1cHBsaWVkIDFzdCBETlMgdjYgYWRkcmVzcyBsZW4gKi8NCisJdTggZG5zMV9h ZGRyNlsxNl07IC8qIE5XLXN1cHBsaWVkIDFzdCBETlMgdjYgYWRkcmVzcyAoYmlnZW5kaWFuKSov DQorCXU4IGRuczJfYWRkcjRfbGVuOyAvKiBOVy1zdXBwbGllZCAybmQgRE5TIHY0IGFkZHJlc3Mg bGVuIChiaWdlbmRpYW4pICovDQorCXU4IGRuczJfYWRkcjRbNF07ICAvKiBOVy1zdXBwbGllZCAy bmQgRE5TIHY0IGFkZHJlc3MgKi8NCisJdTggZG5zMl9hZGRyNl9sZW47IC8qIE5XLXN1cHBsaWVk IDJuZCBETlMgdjYgYWRkcmVzcyBsZW4gKi8NCisJdTggZG5zMl9hZGRyNlsxNl07IC8qIE5XLXN1 cHBsaWVkIDJuZCBETlMgdjYgYWRkcmVzcyAoYmlnZW5kaWFuKSovDQorCXU4IHVudXNlZDVbNjhd Ow0KK30gX19wYWNrZWQ7DQorDQogI2RlZmluZSBTSUVSUkFfTkVUX0xTSV9DT01NT05fTEVOICAg ICAgNA0KLSNkZWZpbmUgU0lFUlJBX05FVF9MU0lfVU1UU19MRU4gICAgICAgIChzaXplb2Yoc3Ry dWN0IGxzaV91bXRzKSkNCisjZGVmaW5lIFNJRVJSQV9ORVRfTFNJX1VNVFNfTEVOICAgICAgICAo c2l6ZW9mKHN0cnVjdCBsc2lfdW10c19zaW5nbGUpKQ0KICNkZWZpbmUgU0lFUlJBX05FVF9MU0lf VU1UU19TVEFUVVNfTEVOIFwNCiAJKFNJRVJSQV9ORVRfTFNJX1VNVFNfTEVOIC0gU0lFUlJBX05F VF9MU0lfQ09NTU9OX0xFTikNCisjZGVmaW5lIFNJRVJSQV9ORVRfTFNJX1VNVFNfRFNfTEVOICAg ICAoc2l6ZW9mKHN0cnVjdCBsc2lfdW10c19kdWFsKSkNCisjZGVmaW5lIFNJRVJSQV9ORVRfTFNJ X1VNVFNfRFNfU1RBVFVTX0xFTiBcDQorCShTSUVSUkFfTkVUX0xTSV9VTVRTX0RTX0xFTiAtIFNJ RVJSQV9ORVRfTFNJX0NPTU1PTl9MRU4pDQogDQogLyogRm9yd2FyZCBkZWZpbml0aW9ucyAqLw0K IHN0YXRpYyB2b2lkIHNpZXJyYV9zeW5jX3RpbWVyKHVuc2lnbmVkIGxvbmcgc3luY2RhdGEpOw0K QEAgLTE5MSwxMCArMjE3LDExIEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBzaWVycmFfbmV0X3NldF9w cml2YXRlKHN0cnVjdCB1c2JuZXQgKmRldiwNCiAJZGV2LT5kYXRhWzBdID0gKHVuc2lnbmVkIGxv bmcpcHJpdjsNCiB9DQogDQotLyogaXMgcGFja2V0IElQdjQgKi8NCisvKiBpcyBwYWNrZXQgSVB2 NC9JUHY2ICovDQogc3RhdGljIGlubGluZSBpbnQgaXNfaXAoc3RydWN0IHNrX2J1ZmYgKnNrYikN CiB7DQotCXJldHVybiBza2ItPnByb3RvY29sID09IGNwdV90b19iZTE2KEVUSF9QX0lQKTsNCisJ cmV0dXJuIHNrYi0+cHJvdG9jb2wgPT0gY3B1X3RvX2JlMTYoRVRIX1BfSVApIHx8DQorCSAgICAg ICBza2ItPnByb3RvY29sID09IGNwdV90b19iZTE2KEVUSF9QX0lQVjYpOw0KIH0NCiANCiAvKg0K QEAgLTM1MCwxOCArMzc3LDExIEBAIHN0YXRpYyBpbmxpbmUgaW50IHNpZXJyYV9uZXRfaXNfdmFs aWRfYWRkcmxlbih1OCBsZW4pDQogc3RhdGljIGludCBzaWVycmFfbmV0X3BhcnNlX2xzaShzdHJ1 Y3QgdXNibmV0ICpkZXYsIGNoYXIgKmRhdGEsIGludCBkYXRhbGVuKQ0KIHsNCiAJc3RydWN0IGxz aV91bXRzICpsc2kgPSAoc3RydWN0IGxzaV91bXRzICopZGF0YTsNCisJdTMyIGV4cGVjdGVkX2xl bmd0aDsNCiANCi0JaWYgKGRhdGFsZW4gPCBzaXplb2Yoc3RydWN0IGxzaV91bXRzKSkgew0KLQkJ bmV0ZGV2X2VycihkZXYtPm5ldCwgIiVzOiBEYXRhIGxlbmd0aCAlZCwgZXhwICVadVxuIiwNCi0J CQkJX19mdW5jX18sIGRhdGFsZW4sDQotCQkJCXNpemVvZihzdHJ1Y3QgbHNpX3VtdHMpKTsNCi0J CXJldHVybiAtMTsNCi0JfQ0KLQ0KLQlpZiAobHNpLT5sZW5ndGggIT0gY3B1X3RvX2JlMTYoU0lF UlJBX05FVF9MU0lfVU1UU19TVEFUVVNfTEVOKSkgew0KLQkJbmV0ZGV2X2VycihkZXYtPm5ldCwg IiVzOiBMU0lfVU1UU19TVEFUVVNfTEVOICVkLCBleHAgJXVcbiIsDQotCQkJCV9fZnVuY19fLCBi ZTE2X3RvX2NwdShsc2ktPmxlbmd0aCksDQotCQkJCSh1MzIpU0lFUlJBX05FVF9MU0lfVU1UU19T VEFUVVNfTEVOKTsNCisJaWYgKGRhdGFsZW4gPCBzaXplb2Yoc3RydWN0IGxzaV91bXRzX3Npbmds ZSkpIHsNCisJCW5ldGRldl9lcnIoZGV2LT5uZXQsICIlczogRGF0YSBsZW5ndGggJWQsIGV4cCA+ PSAlWnVcbiIsDQorCQkJICAgX19mdW5jX18sIGRhdGFsZW4sIHNpemVvZihzdHJ1Y3QgbHNpX3Vt dHNfc2luZ2xlKSk7DQogCQlyZXR1cm4gLTE7DQogCX0NCiANCkBAIC0zNzMsMjIgKzM5MywzNCBA QCBzdGF0aWMgaW50IHNpZXJyYV9uZXRfcGFyc2VfbHNpKHN0cnVjdCB1c2JuZXQgKmRldiwgY2hh ciAqZGF0YSwgaW50IGRhdGFsZW4pDQogCX0NCiANCiAJLyogVmFsaWRhdGUgdGhlIHByb3RvY29s ICAtIG9ubHkgc3VwcG9ydCBVTVRTIGZvciBub3cgKi8NCi0JaWYgKGxzaS0+cHJvdG9jb2wgIT0g U0lFUlJBX05FVF9QUk9UT0NPTF9VTVRTKSB7DQorCWlmIChsc2ktPnByb3RvY29sID09IFNJRVJS QV9ORVRfUFJPVE9DT0xfVU1UUykgew0KKwkJc3RydWN0IGxzaV91bXRzX3NpbmdsZSAqc2luZ2xl ID0gKHN0cnVjdCBsc2lfdW10c19zaW5nbGUgKilsc2k7DQorDQorCQkvKiBWYWxpZGF0ZSB0aGUg bGluayB0eXBlICovDQorCQlpZiAoc2luZ2xlLT5saW5rX3R5cGUgIT0gU0lFUlJBX05FVF9BU19M SU5LX1RZUEVfSVBWNCAmJg0KKwkJICAgIHNpbmdsZS0+bGlua190eXBlICE9IFNJRVJSQV9ORVRf QVNfTElOS19UWVBFX0lQVjYpIHsNCisJCQluZXRkZXZfZXJyKGRldi0+bmV0LCAiTGluayB0eXBl IHVuc3VwcG9ydGVkOiAweCUwMnhcbiIsDQorCQkJCSAgIHNpbmdsZS0+bGlua190eXBlKTsNCisJ CQlyZXR1cm4gLTE7DQorCQl9DQorCQlleHBlY3RlZF9sZW5ndGggPSBTSUVSUkFfTkVUX0xTSV9V TVRTX1NUQVRVU19MRU47DQorCX0gZWxzZSBpZiAobHNpLT5wcm90b2NvbCA9PSBTSUVSUkFfTkVU X1BST1RPQ09MX1VNVFNfRFMpIHsNCisJCWV4cGVjdGVkX2xlbmd0aCA9IFNJRVJSQV9ORVRfTFNJ X1VNVFNfRFNfU1RBVFVTX0xFTjsNCisJfSBlbHNlIHsNCiAJCW5ldGRldl9lcnIoZGV2LT5uZXQs ICJQcm90b2NvbCB1bnN1cHBvcnRlZCwgMHglMDJ4XG4iLA0KLQkJCWxzaS0+cHJvdG9jb2wpOw0K KwkJCSAgIGxzaS0+cHJvdG9jb2wpOw0KIAkJcmV0dXJuIC0xOw0KIAl9DQogDQotCS8qIFZhbGlk YXRlIHRoZSBsaW5rIHR5cGUgKi8NCi0JaWYgKGxzaS0+bGlua190eXBlICE9IFNJRVJSQV9ORVRf QVNfTElOS19UWVBFX0lQdjQpIHsNCi0JCW5ldGRldl9lcnIoZGV2LT5uZXQsICJMaW5rIHR5cGUg dW5zdXBwb3J0ZWQ6IDB4JTAyeFxuIiwNCi0JCQlsc2ktPmxpbmtfdHlwZSk7DQorCWlmIChiZTE2 X3RvX2NwdShsc2ktPmxlbmd0aCkgIT0gZXhwZWN0ZWRfbGVuZ3RoKSB7DQorCQluZXRkZXZfZXJy KGRldi0+bmV0LCAiJXM6IExTSV9VTVRTX1NUQVRVU19MRU4gJWQsIGV4cCAldVxuIiwNCisJCQkg ICBfX2Z1bmNfXywgYmUxNl90b19jcHUobHNpLT5sZW5ndGgpLCBleHBlY3RlZF9sZW5ndGgpOw0K IAkJcmV0dXJuIC0xOw0KIAl9DQogDQogCS8qIFZhbGlkYXRlIHRoZSBjb3ZlcmFnZSAqLw0KLQlp ZiAobHNpLT5jb3ZlcmFnZSA9PSBTSUVSUkFfTkVUX0NPVkVSQUdFX05PTkUNCi0JICAgfHwgbHNp LT5jb3ZlcmFnZSA9PSBTSUVSUkFfTkVUX0NPVkVSQUdFX05PUEFDS0VUKSB7DQorCWlmIChsc2kt PmNvdmVyYWdlID09IFNJRVJSQV9ORVRfQ09WRVJBR0VfTk9ORSB8fA0KKwkgICAgbHNpLT5jb3Zl cmFnZSA9PSBTSUVSUkFfTkVUX0NPVkVSQUdFX05PUEFDS0VUKSB7DQogCQluZXRkZXZfZXJyKGRl di0+bmV0LCAiTm8gY292ZXJhZ2UsIDB4JTAyeFxuIiwgbHNpLT5jb3ZlcmFnZSk7DQogCQlyZXR1 cm4gMDsNCiAJfQ0KQEAgLTY2Miw3ICs2OTQsNiBAQCBzdGF0aWMgaW50IHNpZXJyYV9uZXRfYmlu ZChzdHJ1Y3QgdXNibmV0ICpkZXYsIHN0cnVjdCB1c2JfaW50ZXJmYWNlICppbnRmKQ0KIAl1OAlu dW1lbmRwb2ludHM7DQogCXUxNglmd2F0dHIgPSAwOw0KIAlpbnQJc3RhdHVzOw0KLQlzdHJ1Y3Qg ZXRoaGRyICpldGg7DQogCXN0cnVjdCBzaWVycmFfbmV0X2RhdGEgKnByaXY7DQogCXN0YXRpYyBj b25zdCB1OCBzeW5jX3RtcGxhdGVbc2l6ZW9mKHByaXYtPnN5bmNfbXNnKV0gPSB7DQogCQkweDAw LCAweDAwLCBTSUVSUkFfTkVUX0hJUF9NU1lOQ19JRCwgMHgwMH07DQpAQCAtNzAwLDExICs3MzEs NiBAQCBzdGF0aWMgaW50IHNpZXJyYV9uZXRfYmluZChzdHJ1Y3QgdXNibmV0ICpkZXYsIHN0cnVj dCB1c2JfaW50ZXJmYWNlICppbnRmKQ0KIAlkZXYtPm5ldC0+ZGV2X2FkZHJbRVRIX0FMRU4tMl0g PSBhdG9taWNfaW5jX3JldHVybigmaWZhY2VfY291bnRlcik7DQogCWRldi0+bmV0LT5kZXZfYWRk cltFVEhfQUxFTi0xXSA9IGlmYWNlbnVtOw0KIA0KLQkvKiB3ZSB3aWxsIGhhdmUgdG8gbWFudWZh Y3R1cmUgZXRoZXJuZXQgaGVhZGVycywgcHJlcGFyZSB0ZW1wbGF0ZSAqLw0KLQlldGggPSAoc3Ry dWN0IGV0aGhkciAqKXByaXYtPmV0aHJfaGRyX3RtcGw7DQotCW1lbWNweSgmZXRoLT5oX2Rlc3Qs IGRldi0+bmV0LT5kZXZfYWRkciwgRVRIX0FMRU4pOw0KLQlldGgtPmhfcHJvdG8gPSBjcHVfdG9f YmUxNihFVEhfUF9JUCk7DQotDQogCS8qIHByZXBhcmUgc2h1dGRvd24gbWVzc2FnZSB0ZW1wbGF0 ZSAqLw0KIAltZW1jcHkocHJpdi0+c2hkd25fbXNnLCBzaGR3bl90bXBsYXRlLCBzaXplb2YocHJp di0+c2hkd25fbXNnKSk7DQogCS8qIHNldCBjb250ZXh0IGluZGV4IGluaXRpYWxseSB0byAwIC0g cHJlcGFyZXMgdHggaGRyIHRlbXBsYXRlICovDQpAQCAtODMzLDkgKzg1OSwxNCBAQCBzdGF0aWMg aW50IHNpZXJyYV9uZXRfcnhfZml4dXAoc3RydWN0IHVzYm5ldCAqZGV2LCBzdHJ1Y3Qgc2tfYnVm ZiAqc2tiKQ0KIA0KIAkJc2tiX3B1bGwoc2tiLCBoaC5oZHJsZW4pOw0KIA0KLQkJLyogV2UgYXJl IGdvaW5nIHRvIGFjY2VwdCB0aGlzIHBhY2tldCwgcHJlcGFyZSBpdCAqLw0KLQkJbWVtY3B5KHNr Yi0+ZGF0YSwgc2llcnJhX25ldF9nZXRfcHJpdmF0ZShkZXYpLT5ldGhyX2hkcl90bXBsLA0KLQkJ CUVUSF9ITEVOKTsNCisJCS8qIFdlIGFyZSBnb2luZyB0byBhY2NlcHQgdGhpcyBwYWNrZXQsIHBy ZXBhcmUgaXQuDQorCQkgKiBJbiBjYXNlIHByb3RvY29sIGlzIElQdjYsIGtlZXAgaXQsIG90aGVy d2lzZSBmb3JjZSBJUHY0Lg0KKwkJICovDQorCQlza2JfcmVzZXRfbWFjX2hlYWRlcihza2IpOw0K KwkJaWYgKGV0aF9oZHIoc2tiKS0+aF9wcm90byAhPSBjcHVfdG9fYmUxNihFVEhfUF9JUFY2KSkN CisJCQlldGhfaGRyKHNrYiktPmhfcHJvdG8gPSBjcHVfdG9fYmUxNihFVEhfUF9JUCk7DQorCQll dGhfemVyb19hZGRyKGV0aF9oZHIoc2tiKS0+aF9zb3VyY2UpOw0KKwkJbWVtY3B5KGV0aF9oZHIo c2tiKS0+aF9kZXN0LCBkZXYtPm5ldC0+ZGV2X2FkZHIsIEVUSF9BTEVOKTsNCiANCiAJCS8qIExh c3QgcGFja2V0IGluIGJhdGNoIGhhbmRsZWQgYnkgdXNibmV0ICovDQogCQlpZiAoaGgucGF5bG9h ZF9sZW4ud29yZCA9PSBza2ItPmxlbikNCi0tIA0KMi4xMS4wDQo=