Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753697AbdHKRZ6 (ORCPT ); Fri, 11 Aug 2017 13:25:58 -0400 Received: from mail-ua0-f173.google.com ([209.85.217.173]:33911 "EHLO mail-ua0-f173.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752901AbdHKRZ4 (ORCPT ); Fri, 11 Aug 2017 13:25:56 -0400 MIME-Version: 1.0 In-Reply-To: References: From: Wei Wang Date: Fri, 11 Aug 2017 10:25:53 -0700 Message-ID: Subject: Re: unregister_netdevice: waiting for eth0 to become free. Usage count = 1 To: Cong Wang , John Stultz Cc: lkml , Network Development , Linux USB List , "David S. Miller" , Felipe Balbi , Martin KaFai Lau Content-Type: multipart/mixed; boundary="f403045e7c20033de905567d9be1" Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 19587 Lines: 290 --f403045e7c20033de905567d9be1 Content-Type: text/plain; charset="UTF-8" On Fri, Aug 11, 2017 at 9:48 AM, Cong Wang wrote: > Hi, > > On Thu, Aug 10, 2017 at 11:12 AM, John Stultz wrote: >> On Wed, Aug 9, 2017 at 10:41 PM, Wei Wang wrote: >>> Hi John, >>> >>> Is it possible to try the attached patch? >> >> Thanks so much for the quick turn around! >> >> So I dropped all the reverts you suggested, and applied this one >> against 4.13-rc4, but I'm still seeing the problematic behavior. > > Does the following one-line fix make a difference? > > diff --git a/net/ipv6/route.c b/net/ipv6/route.c > index a640fbcba15d..c145a35763a0 100644 > --- a/net/ipv6/route.c > +++ b/net/ipv6/route.c > @@ -141,7 +141,7 @@ static void rt6_uncached_list_del(struct rt6_info *rt) > struct uncached_list *ul = rt->rt6i_uncached_list; > > spin_lock_bh(&ul->lock); > - list_del(&rt->rt6i_uncached); > + list_del_init(&rt->rt6i_uncached); > spin_unlock_bh(&ul->lock); > } > } Thanks a lot Cong for proposing this fix. For the last few days, John has been helping me running debug image and we found out that the leaked dst is probably in addrconf.c. Martin and I are looking through the code and trying to put more debugs. John, If after Cong's fix, the issue still happens, could you help try the patch attached and collect all logs when you try the reproduce the issue? It would be great to have logs for both success case and the failure case. Thanks so much for your help. Wei --f403045e7c20033de905567d9be1 Content-Type: text/x-patch; charset="US-ASCII"; name="0001-ipv6-unregister_netdevice-debug.patch" Content-Disposition: attachment; filename="0001-ipv6-unregister_netdevice-debug.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_j6852d010 RnJvbSAwZmY1OTFlMDBlYWMxMzg4OGM1ZWU5Yzg0ZWU1MWIyODZiMjczODlkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBXZWkgV2FuZyA8d2Vpd2FuQGdvb2dsZS5jb20+CkRhdGU6IFRo dSwgMTAgQXVnIDIwMTcgMjE6MTI6MzIgLTA3MDAKU3ViamVjdDogW1BBVENIXSBpcHY2OiB1bnJl Z2lzdGVyX25ldGRldmljZSBkZWJ1ZwoKQ2hhbmdlLUlkOiBJOTdiMDQ0Yjk1N2ExNDZkZTQ4MGU1 NDI3MjEyYzFjZTgwYmMzZGQzYwotLS0KIGluY2x1ZGUvbmV0L2RzdC5oICAgICB8ICA3ICsrKysr KysKIGluY2x1ZGUvbmV0L2RzdF9vcHMuaCB8ICAxICsKIGluY2x1ZGUvbmV0L2lwNl9maWIuaCB8 IDEwICsrKysrKysrKysKIG5ldC9jb3JlL2Rldi5jICAgICAgICB8IDE2ICsrKysrKysrKysrKysr KwogbmV0L2NvcmUvZHN0LmMgICAgICAgIHwgMTAgKysrKysrKystLQogbmV0L2lwdjYvYWRkcmNv bmYuYyAgIHwgMjQgKysrKysrKysrKysrKysrKysrKy0tLQogbmV0L2lwdjYvcm91dGUuYyAgICAg IHwgNTUgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0t CiA3IGZpbGVzIGNoYW5nZWQsIDExNSBpbnNlcnRpb25zKCspLCA4IGRlbGV0aW9ucygtKQoKZGlm ZiAtLWdpdCBhL2luY2x1ZGUvbmV0L2RzdC5oIGIvaW5jbHVkZS9uZXQvZHN0LmgKaW5kZXggZjcz NjExZWM0MDE3Li40OGQ5ZjAzMjI0OTIgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbmV0L2RzdC5oCisr KyBiL2luY2x1ZGUvbmV0L2RzdC5oCkBAIC01Niw2ICs1NiwxMyBAQCBzdHJ1Y3QgZHN0X2VudHJ5 IHsKICNkZWZpbmUgRFNUX1hGUk1fVFVOTkVMCQkweDAwMjAKICNkZWZpbmUgRFNUX1hGUk1fUVVF VUUJCTB4MDA0MAogI2RlZmluZSBEU1RfTUVUQURBVEEJCTB4MDA4MAorI2RlZmluZSBSVEZfSUNN UFY2X0RTVAkJMHgwMTAwCisjZGVmaW5lIFJURl9BRERSQ09ORl9EU1QJMHgwMjAwCisjZGVmaW5l IFJURl9VTkNBQ0hFRF9EU1QJMHgwNDAwCisjZGVmaW5lIFJURl9DQUNIRV9EU1QJCTB4MDgwMAor I2RlZmluZSBSVEZfRklCNl9EU1QJCTB4MTAwMAorI2RlZmluZSBSVEZfUENQVV9EU1QJCTB4MjAw MAorCiAKIAlzaG9ydAkJCWVycm9yOwogCmRpZmYgLS1naXQgYS9pbmNsdWRlL25ldC9kc3Rfb3Bz LmggYi9pbmNsdWRlL25ldC9kc3Rfb3BzLmgKaW5kZXggYzg0YjMyODdlMzhiLi5lZWY3ZDZiNmYz Y2QgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbmV0L2RzdF9vcHMuaAorKysgYi9pbmNsdWRlL25ldC9k c3Rfb3BzLmgKQEAgLTM5LDYgKzM5LDcgQEAgc3RydWN0IGRzdF9vcHMgewogCXN0cnVjdCBrbWVt X2NhY2hlCSprbWVtX2NhY2hlcDsKIAogCXN0cnVjdCBwZXJjcHVfY291bnRlcglwY3B1Y19lbnRy aWVzIF9fX19jYWNoZWxpbmVfYWxpZ25lZF9pbl9zbXA7CisJdm9pZAkJCSgqZG9fYWNjb3VudCko c3RydWN0IGRzdF9lbnRyeSAqZHN0KTsKIH07CiAKIHN0YXRpYyBpbmxpbmUgaW50IGRzdF9lbnRy aWVzX2dldF9mYXN0KHN0cnVjdCBkc3Rfb3BzICpkc3QpCmRpZmYgLS1naXQgYS9pbmNsdWRlL25l dC9pcDZfZmliLmggYi9pbmNsdWRlL25ldC9pcDZfZmliLmgKaW5kZXggMWE4ODAwOGNjNmY1Li5h ZjM4MmQxMjNmNjMgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbmV0L2lwNl9maWIuaAorKysgYi9pbmNs dWRlL25ldC9pcDZfZmliLmgKQEAgLTIxNCw2ICsyMTQsMTYgQEAgc3RydWN0IHJ0Nl9zdGF0aXN0 aWNzIHsKIAlfX3UzMgkJZmliX3J0X2VudHJpZXM7CQkvKiBydCBlbnRyaWVzIGluIHRhYmxlCSov CiAJX191MzIJCWZpYl9ydF9jYWNoZTsJCS8qIGNhY2hlIHJvdXRlcwkJKi8KIAlfX3UzMgkJZmli X2Rpc2NhcmRlZF9yb3V0ZXM7CisJX191MzIJCWljbXB2Nl9kc3Q7CisJX191MzIJCWFkZHJjb25m X2RzdDsKKwlfX3UzMgkJZmliNl9kc3Q7CisJX191MzIJCWNhY2hlX2RzdDsKKwlfX3UzMgkJdW5j YWNoZWRfZHN0OworCV9fdTMyCQlwY3B1X2RzdDsKKwlfX3UzMgkJZGV2X2ZyZWVfZmliNjsKKwlf X3UzMgkJZGV2X2ZyZWVfdW5jYWNoZWQ7CisJX191MzIJCWRldl9mcmVlX2ljbXB2NjsKKwlfX3Uz MgkJZGV2X2ZyZWVfYWRkcmNvbmY7CiB9OwogCiAjZGVmaW5lIFJUTl9UTF9ST09UCTB4MDAwMQpk aWZmIC0tZ2l0IGEvbmV0L2NvcmUvZGV2LmMgYi9uZXQvY29yZS9kZXYuYwppbmRleCA4ZWE2YjRi NDI2MTEuLjVjNmZlYTc4MDAzZiAxMDA2NDQKLS0tIGEvbmV0L2NvcmUvZGV2LmMKKysrIGIvbmV0 L2NvcmUvZGV2LmMKQEAgLTEsMyArMSw0IEBACisKIC8qCiAgKiAgICAgIE5FVDMgICAgUHJvdG9j b2wgaW5kZXBlbmRlbnQgZGV2aWNlIHN1cHBvcnQgcm91dGluZXMuCiAgKgpAQCAtNzczOCw4ICs3 NzM5LDIzIEBAIHN0YXRpYyB2b2lkIG5ldGRldl93YWl0X2FsbHJlZnMoc3RydWN0IG5ldF9kZXZp Y2UgKmRldikKIHsKIAl1bnNpZ25lZCBsb25nIHJlYnJvYWRjYXN0X3RpbWUsIHdhcm5pbmdfdGlt ZTsKIAlpbnQgcmVmY250OworCXN0cnVjdCBuZXQgKm5ldCA9IGRldl9uZXQoZGV2KTsKIAogCWxp bmt3YXRjaF9mb3JnZXRfZGV2KGRldik7CisJcHJpbnRrKCIlczogZGV2X25hbWUgJXMsIGljbXB2 Nl9kc3QgJXUsIGFkZHJjb25mX2RzdCAldSwgZmliNl9kc3QgJXUsIHBjcHVfZHN0ICV1LCBjYWNo ZV9kc3QgJXUsIHVuY2FjaGVkX2xpc3QgJXUsIGRldl9mcmVlX2ZpYjYgJXUsIGRldl9mcmVlX3Vu Y2FjaGVkICV1LCBkZXZfZnJlZV9pY21wdjYgJXUsIGRldl9mcmVlX2FkZHJjb25mICV1LCBmaWJf cnRfZW50cmllcyAldVxuIiwgX19mdW5jX18sCisJICAgICAgIGRldi0+bmFtZSwKKwkgICAgICAg bmV0LT5pcHY2LnJ0Nl9zdGF0cy0+aWNtcHY2X2RzdCwKKwkgICAgICAgbmV0LT5pcHY2LnJ0Nl9z dGF0cy0+YWRkcmNvbmZfZHN0LAorCSAgICAgICBuZXQtPmlwdjYucnQ2X3N0YXRzLT5maWI2X2Rz dCwKKwkgICAgICAgbmV0LT5pcHY2LnJ0Nl9zdGF0cy0+cGNwdV9kc3QsCisJICAgICAgIG5ldC0+ aXB2Ni5ydDZfc3RhdHMtPmNhY2hlX2RzdCwKKwkgICAgICAgbmV0LT5pcHY2LnJ0Nl9zdGF0cy0+ dW5jYWNoZWRfZHN0LAorCSAgICAgICBuZXQtPmlwdjYucnQ2X3N0YXRzLT5kZXZfZnJlZV9maWI2 LAorCSAgICAgICBuZXQtPmlwdjYucnQ2X3N0YXRzLT5kZXZfZnJlZV91bmNhY2hlZCwKKwkgICAg ICAgbmV0LT5pcHY2LnJ0Nl9zdGF0cy0+ZGV2X2ZyZWVfaWNtcHY2LAorCSAgICAgICBuZXQtPmlw djYucnQ2X3N0YXRzLT5kZXZfZnJlZV9hZGRyY29uZiwKKwkgICAgICAgbmV0LT5pcHY2LnJ0Nl9z dGF0cy0+ZmliX3J0X2VudHJpZXMpOworCiAKIAlyZWJyb2FkY2FzdF90aW1lID0gd2FybmluZ190 aW1lID0gamlmZmllczsKIAlyZWZjbnQgPSBuZXRkZXZfcmVmY250X3JlYWQoZGV2KTsKZGlmZiAt LWdpdCBhL25ldC9jb3JlL2RzdC5jIGIvbmV0L2NvcmUvZHN0LmMKaW5kZXggMDBhYTk3MmFkMWEx Li44YzIwZGVlYzM5OGIgMTAwNjQ0Ci0tLSBhL25ldC9jb3JlL2RzdC5jCisrKyBiL25ldC9jb3Jl L2RzdC5jCkBAIC0xODQsOCArMTg0LDExIEBAIHZvaWQgZHN0X3JlbGVhc2Uoc3RydWN0IGRzdF9l bnRyeSAqZHN0KQogCQlpZiAodW5saWtlbHkobmV3cmVmY250IDwgMCkpCiAJCQluZXRfd2Fybl9y YXRlbGltaXRlZCgiJXM6IGRzdDolcCByZWZjbnQ6JWRcbiIsCiAJCQkJCSAgICAgX19mdW5jX18s IGRzdCwgbmV3cmVmY250KTsKLQkJaWYgKCFuZXdyZWZjbnQpCisJCWlmICghbmV3cmVmY250KSB7 CiAJCQljYWxsX3JjdSgmZHN0LT5yY3VfaGVhZCwgZHN0X2Rlc3Ryb3lfcmN1KTsKKwkJCWlmKGRz dC0+b3BzLT5kb19hY2NvdW50KQorCQkJCWRzdC0+b3BzLT5kb19hY2NvdW50KGRzdCk7CisJCX0K IAl9CiB9CiBFWFBPUlRfU1lNQk9MKGRzdF9yZWxlYXNlKTsKQEAgLTE5OSw4ICsyMDIsMTEgQEAg dm9pZCBkc3RfcmVsZWFzZV9pbW1lZGlhdGUoc3RydWN0IGRzdF9lbnRyeSAqZHN0KQogCQlpZiAo dW5saWtlbHkobmV3cmVmY250IDwgMCkpCiAJCQluZXRfd2Fybl9yYXRlbGltaXRlZCgiJXM6IGRz dDolcCByZWZjbnQ6JWRcbiIsCiAJCQkJCSAgICAgX19mdW5jX18sIGRzdCwgbmV3cmVmY250KTsK LQkJaWYgKCFuZXdyZWZjbnQpCisJCWlmICghbmV3cmVmY250KSB7CiAJCQlkc3RfZGVzdHJveShk c3QpOworCQkJaWYoZHN0LT5vcHMtPmRvX2FjY291bnQpCisJCQkJZHN0LT5vcHMtPmRvX2FjY291 bnQoZHN0KTsKKwkJfQogCX0KIH0KIEVYUE9SVF9TWU1CT0woZHN0X3JlbGVhc2VfaW1tZWRpYXRl KTsKZGlmZiAtLWdpdCBhL25ldC9pcHY2L2FkZHJjb25mLmMgYi9uZXQvaXB2Ni9hZGRyY29uZi5j CmluZGV4IDNjNDZlOTUxM2EzMS4uNDYyNTQyNTM3OGFlIDEwMDY0NAotLS0gYS9uZXQvaXB2Ni9h ZGRyY29uZi5jCisrKyBiL25ldC9pcHY2L2FkZHJjb25mLmMKQEAgLTk1LDcgKzk1LDcgQEAKICNp bmNsdWRlIDxsaW51eC9leHBvcnQuaD4KIAogLyogU2V0IHRvIDMgdG8gZ2V0IHRyYWNpbmcuLi4g Ki8KLSNkZWZpbmUgQUNPTkZfREVCVUcgMgorI2RlZmluZSBBQ09ORl9ERUJVRyAzCiAKICNpZiBB Q09ORl9ERUJVRyA+PSAzCiAjZGVmaW5lIEFEQkcoZm10LCAuLi4pIHByaW50ayhmbXQsICMjX19W QV9BUkdTX18pCkBAIC0xMDgsNiArMTA4LDggQEAKICNkZWZpbmUgSVBWNl9NQVhfU1RSTEVOIFwK IAlzaXplb2YoImZmZmY6ZmZmZjpmZmZmOmZmZmY6ZmZmZjpmZmZmOjI1NS4yNTUuMjU1LjI1NSIp CiAKK3N0YXRpYyBpbnQgbnVtX2lmYTsKKwogc3RhdGljIGlubGluZSB1MzIgY3N0YW1wX2RlbHRh KHVuc2lnbmVkIGxvbmcgY3N0YW1wKQogewogCXJldHVybiAoY3N0YW1wIC0gSU5JVElBTF9KSUZG SUVTKSAqIDEwMFVMIC8gSFo7CkBAIC05MjMsOSArOTI1LDExIEBAIHZvaWQgaW5ldDZfaWZhX2Zp bmlzaF9kZXN0cm95KHN0cnVjdCBpbmV0Nl9pZmFkZHIgKmlmcCkKIAkJcHJfd2FybigiRnJlZWlu ZyBhbGl2ZSBpbmV0NiBhZGRyZXNzICVwXG4iLCBpZnApOwogCQlyZXR1cm47CiAJfQorCXByaW50 aygiJXM6IGRzdCByZWZjbnQgJWQiLCBfX2Z1bmNfXywgYXRvbWljX3JlYWQoJihpZnAtPnJ0LT5k c3QuX19yZWZjbnQpKSk7CiAJaXA2X3J0X3B1dChpZnAtPnJ0KTsKIAogCWtmcmVlX3JjdShpZnAs IHJjdSk7CisJbnVtX2lmYS0tOwogfQogCiBzdGF0aWMgdm9pZApAQCAtMTAxNiw2ICsxMDIwLDgg QEAgaXB2Nl9hZGRfYWRkcihzdHJ1Y3QgaW5ldDZfZGV2ICppZGV2LCBjb25zdCBzdHJ1Y3QgaW42 X2FkZHIgKmFkZHIsCiAJCWdvdG8gb3V0OwogCX0KIAorCW51bV9pZmErKzsKKwogCXJ0ID0gYWRk cmNvbmZfZHN0X2FsbG9jKGlkZXYsIGFkZHIsIGZhbHNlKTsKIAlpZiAoSVNfRVJSKHJ0KSkgewog CQllcnIgPSBQVFJfRVJSKHJ0KTsKQEAgLTEwNzYsNiArMTA4Miw3IEBAIGlwdjZfYWRkX2FkZHIo c3RydWN0IGluZXQ2X2RldiAqaWRldiwgY29uc3Qgc3RydWN0IGluNl9hZGRyICphZGRyLAogCQlp bmV0NmFkZHJfbm90aWZpZXJfY2FsbF9jaGFpbihORVRERVZfVVAsIGlmYSk7CiAJZWxzZSB7CiAJ CWtmcmVlKGlmYSk7CisJCW51bV9pZmEtLTsKIAkJaW42X2Rldl9wdXQoaWRldik7CiAJCWlmYSA9 IEVSUl9QVFIoZXJyKTsKIAl9CkBAIC0zNTk4LDYgKzM2MDUsNyBAQCBzdGF0aWMgaW50IGFkZHJj b25mX2lmZG93bihzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBpbnQgaG93KQogCWludCBfa2VlcF9h ZGRyOwogCWJvb2wga2VlcF9hZGRyOwogCWludCBzdGF0ZSwgaTsKKwlpbnQgZXJyOwogCiAJQVNT RVJUX1JUTkwoKTsKIApAQCAtMzY3OSwxMiArMzY4NywxNCBAQCBzdGF0aWMgaW50IGFkZHJjb25m X2lmZG93bihzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBpbnQgaG93KQogCQlzcGluX3VubG9ja19i aCgmaWZhLT5sb2NrKTsKIAkJaW42X2lmYV9wdXQoaWZhKTsKIAkJd3JpdGVfbG9ja19iaCgmaWRl di0+bG9jayk7CisJCXByaW50aygiJXM6IHJlbGVhc2UgaWRldi0+dGVtcGFkZHJfbGlzdCBlbnRy aWVzXG4iLCBfX2Z1bmNfXyk7CiAJfQogCiAJLyogcmUtY29tYmluZSB0aGUgdXNlciBjb25maWcg d2l0aCBldmVudCB0byBkZXRlcm1pbmUgaWYgcGVybWFuZW50CiAJICogYWRkcmVzc2VzIGFyZSB0 byBiZSByZW1vdmVkIGZyb20gdGhlIGludGVyZmFjZSBsaXN0CiAJICovCiAJa2VlcF9hZGRyID0g KCFob3cgJiYgX2tlZXBfYWRkciA+IDAgJiYgIWlkZXYtPmNuZi5kaXNhYmxlX2lwdjYpOworCXBy aW50aygiJXM6IG51bV9pZmEgJWRcbiIsIF9fZnVuY19fLCBudW1faWZhKTsKIAogCUlOSVRfTElT VF9IRUFEKCZkZWxfbGlzdCk7CiAJbGlzdF9mb3JfZWFjaF9lbnRyeV9zYWZlKGlmYSwgdG1wLCAm aWRldi0+YWRkcl9saXN0LCBpZl9saXN0KSB7CkBAIC0zNzEwLDE1ICszNzIwLDIwIEBAIHN0YXRp YyBpbnQgYWRkcmNvbmZfaWZkb3duKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIGludCBob3cpCiAK IAkJCXJ0ID0gaWZhLT5ydDsKIAkJCWlmYS0+cnQgPSBOVUxMOworCQkJcHJpbnRrKCIlczoga2Vl cCBpZmFcbiIsIF9fZnVuY19fKTsKIAkJfSBlbHNlIHsKIAkJCXN0YXRlID0gaWZhLT5zdGF0ZTsK IAkJCWlmYS0+c3RhdGUgPSBJTkVUNl9JRkFERFJfU1RBVEVfREVBRDsKKwkJCXByaW50aygiJXM6 IG5vdCBrZWVwIGlmYVxuIiwgX19mdW5jX18pOwogCQl9CiAKIAkJc3Bpbl91bmxvY2tfYmgoJmlm YS0+bG9jayk7CiAKLQkJaWYgKHJ0KQotCQkJaXA2X2RlbF9ydChydCk7CisJCWlmIChydCkgewor CQkJZXJyID0gaXA2X2RlbF9ydChydCk7CisJCQlpZiAoZXJyKQorCQkJCXByaW50aygiJXM6IGlw Nl9kZWxfcnQoKSBmYWlsZWRcbiIsIF9fZnVuY19fKTsKKwkJfQogCiAJCWlmIChzdGF0ZSAhPSBJ TkVUNl9JRkFERFJfU1RBVEVfREVBRCkgewogCQkJX19pcHY2X2lmYV9ub3RpZnkoUlRNX0RFTEFE RFIsIGlmYSk7CkBAIC0zNzQxLDcgKzM3NTYsOSBAQCBzdGF0aWMgaW50IGFkZHJjb25mX2lmZG93 bihzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBpbnQgaG93KQogCQlsaXN0X2RlbCgmaWZhLT5pZl9s aXN0KTsKIAogCQlpbjZfaWZhX3B1dChpZmEpOworCQlwcmludGsoIiVzOiBkZWxldGUgaWZhIGZy b20gZGVsX2xpc3RcbiIsIF9fZnVuY19fKTsKIAl9CisJcHJpbnRrKCIlczogbnVtX2lmYSAlZFxu IiwgX19mdW5jX18sIG51bV9pZmEpOwogCiAJLyogU3RlcCA1OiBEaXNjYXJkIGFueWNhc3QgYW5k IG11bHRpY2FzdCBsaXN0ICovCiAJaWYgKGhvdykgewpAQCAtNjU2Niw2ICs2NTgzLDcgQEAgaW50 IF9faW5pdCBhZGRyY29uZl9pbml0KHZvaWQpCiAJCWVyciA9IC1FTk9NRU07CiAJCWdvdG8gb3V0 X25vd3E7CiAJfQorCW51bV9pZmEgPSAwOwogCiAJLyogVGhlIGFkZHJjb25mIG5ldGRldiBub3Rp ZmllciByZXF1aXJlcyB0aGF0IGxvb3BiYWNrX2RldgogCSAqIGhhcyBpdCdzIGlwdjYgcHJpdmF0 ZSBpbmZvcm1hdGlvbiBhbGxvY2F0ZWQgYW5kIHNldHVwCmRpZmYgLS1naXQgYS9uZXQvaXB2Ni9y b3V0ZS5jIGIvbmV0L2lwdjYvcm91dGUuYwppbmRleCA0ZDMwYzk2YTgxOWQuLjQyMmMzOWQ4Y2M0 NCAxMDA2NDQKLS0tIGEvbmV0L2lwdjYvcm91dGUuYworKysgYi9uZXQvaXB2Ni9yb3V0ZS5jCkBA IC0xNzIsNiArMTcyLDEwIEBAIHN0YXRpYyB2b2lkIHJ0Nl91bmNhY2hlZF9saXN0X2ZsdXNoX2Rl dihzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpCiAJCQkJcnQtPmRzdC5k ZXYgPSBsb29wYmFja19kZXY7CiAJCQkJZGV2X2hvbGQocnQtPmRzdC5kZXYpOwogCQkJCWRldl9w dXQocnRfZGV2KTsKKwkJCQlpZiAocnQtPmRzdC5mbGFncyB8IFJURl9JQ01QVjZfRFNUKQorCQkJ CQluZXQtPmlwdjYucnQ2X3N0YXRzLT5kZXZfZnJlZV9pY21wdjYrKzsKKwkJCQllbHNlCisJCQkJ CW5ldC0+aXB2Ni5ydDZfc3RhdHMtPmRldl9mcmVlX3VuY2FjaGVkKys7CiAJCQl9CiAJCX0KIAkJ c3Bpbl91bmxvY2tfYmgoJnVsLT5sb2NrKTsKQEAgLTIzNyw2ICsyNDEsMjUgQEAgc3RhdGljIHZv aWQgaXA2X2NvbmZpcm1fbmVpZ2goY29uc3Qgc3RydWN0IGRzdF9lbnRyeSAqZHN0LCBjb25zdCB2 b2lkICpkYWRkcikKIAlfX2lwdjZfY29uZmlybV9uZWlnaChkZXYsIGRhZGRyKTsKIH0KIAorc3Rh dGljIHZvaWQgaXA2X2RvX2FjY291bnQoc3RydWN0IGRzdF9lbnRyeSAqZHN0KQoreworCXN0cnVj dCBuZXRfZGV2aWNlICpkZXYgPSBkc3QtPmRldjsKKwlzdHJ1Y3QgbmV0ICpuZXQgPSBkZXZfbmV0 KGRldik7CisKKwlpZiAoZHN0LT5mbGFncyAmIFJURl9JQ01QVjZfRFNUKQorCQluZXQtPmlwdjYu cnQ2X3N0YXRzLT5pY21wdjZfZHN0LS07CisJaWYgKGRzdC0+ZmxhZ3MgJiBSVEZfQUREUkNPTkZf RFNUKQorCQluZXQtPmlwdjYucnQ2X3N0YXRzLT5hZGRyY29uZl9kc3QtLTsKKwlpZiAoZHN0LT5m bGFncyAmIFJURl9GSUI2X0RTVCkKKwkJbmV0LT5pcHY2LnJ0Nl9zdGF0cy0+ZmliNl9kc3QtLTsK KwlpZiAoZHN0LT5mbGFncyAmIFJURl9VTkNBQ0hFRF9EU1QpCisJCW5ldC0+aXB2Ni5ydDZfc3Rh dHMtPnVuY2FjaGVkX2RzdC0tOworCWlmIChkc3QtPmZsYWdzICYgUlRGX0NBQ0hFX0RTVCkKKwkJ bmV0LT5pcHY2LnJ0Nl9zdGF0cy0+Y2FjaGVfZHN0LS07CisJaWYgKGRzdC0+ZmxhZ3MgJiBSVEZf UENQVV9EU1QpCisJCW5ldC0+aXB2Ni5ydDZfc3RhdHMtPnBjcHVfZHN0LS07Cit9CisKIHN0YXRp YyBzdHJ1Y3QgZHN0X29wcyBpcDZfZHN0X29wc190ZW1wbGF0ZSA9IHsKIAkuZmFtaWx5CQkJPQlB Rl9JTkVUNiwKIAkuZ2MJCQk9CWlwNl9kc3RfZ2MsCkBAIC0yNTQsNiArMjc3LDcgQEAgc3RhdGlj IHN0cnVjdCBkc3Rfb3BzIGlwNl9kc3Rfb3BzX3RlbXBsYXRlID0gewogCS5sb2NhbF9vdXQJCT0J X19pcDZfbG9jYWxfb3V0LAogCS5uZWlnaF9sb29rdXAJCT0JaXA2X25laWdoX2xvb2t1cCwKIAku Y29uZmlybV9uZWlnaAkJPQlpcDZfY29uZmlybV9uZWlnaCwKKwkuZG9fYWNjb3VudCA9IGlwNl9k b19hY2NvdW50LAogfTsKIAogc3RhdGljIHVuc2lnbmVkIGludCBpcDZfYmxhY2tob2xlX210dShj b25zdCBzdHJ1Y3QgZHN0X2VudHJ5ICpkc3QpCkBAIC0xMDA0LDYgKzEwMjgsNyBAQCBzdGF0aWMg c3RydWN0IHJ0Nl9pbmZvICppcDZfcnRfY2FjaGVfYWxsb2Moc3RydWN0IHJ0Nl9pbmZvICpvcnQs CiBzdGF0aWMgc3RydWN0IHJ0Nl9pbmZvICppcDZfcnRfcGNwdV9hbGxvYyhzdHJ1Y3QgcnQ2X2lu Zm8gKnJ0KQogewogCXN0cnVjdCBydDZfaW5mbyAqcGNwdV9ydDsKKwlzdHJ1Y3QgbmV0ICpuZXQg PSBkZXZfbmV0KHJ0LT5kc3QuZGV2KTsKIAogCXBjcHVfcnQgPSBfX2lwNl9kc3RfYWxsb2MoZGV2 X25ldChydC0+ZHN0LmRldiksCiAJCQkJICBydC0+ZHN0LmRldiwgcnQtPmRzdC5mbGFncyk7CkBA IC0xMDEzLDYgKzEwMzgsOSBAQCBzdGF0aWMgc3RydWN0IHJ0Nl9pbmZvICppcDZfcnRfcGNwdV9h bGxvYyhzdHJ1Y3QgcnQ2X2luZm8gKnJ0KQogCWlwNl9ydF9jb3B5X2luaXQocGNwdV9ydCwgcnQp OwogCXBjcHVfcnQtPnJ0NmlfcHJvdG9jb2wgPSBydC0+cnQ2aV9wcm90b2NvbDsKIAlwY3B1X3J0 LT5ydDZpX2ZsYWdzIHw9IFJURl9QQ1BVOworCXBjcHVfcnQtPmRzdC5mbGFncyAmPSB+KFJURl9D QUNIRV9EU1R8UlRGX0FERFJDT05GX0RTVHxSVEZfRklCNl9EU1QpOworCXBjcHVfcnQtPmRzdC5m bGFncyB8PSBSVEZfUENQVV9EU1Q7CisJbmV0LT5pcHY2LnJ0Nl9zdGF0cy0+cGNwdV9kc3QrKzsK IAlyZXR1cm4gcGNwdV9ydDsKIH0KIApAQCAtMTEzNSw2ICsxMTYzLDggQEAgc3RydWN0IHJ0Nl9p bmZvICppcDZfcG9sX3JvdXRlKHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IGZpYjZfdGFibGUgKnRh YmxlLAogCQkJICogTm8gbmVlZCBmb3IgYW5vdGhlciBkc3RfaG9sZCgpCiAJCQkgKi8KIAkJCXJ0 Nl91bmNhY2hlZF9saXN0X2FkZCh1bmNhY2hlZF9ydCk7CisJCQluZXQtPmlwdjYucnQ2X3N0YXRz LT51bmNhY2hlZF9kc3QrKzsKKwkJCXVuY2FjaGVkX3J0LT5kc3QuZmxhZ3MgfD0gUlRGX1VOQ0FD SEVEX0RTVDsKIAkJfSBlbHNlIHsKIAkJCXVuY2FjaGVkX3J0ID0gbmV0LT5pcHY2LmlwNl9udWxs X2VudHJ5OwogCQkJZHN0X2hvbGQoJnVuY2FjaGVkX3J0LT5kc3QpOwpAQCAtMTQxNSw2ICsxNDQ1 LDkgQEAgc3RhdGljIHZvaWQgX19pcDZfcnRfdXBkYXRlX3BtdHUoc3RydWN0IGRzdF9lbnRyeSAq ZHN0LCBjb25zdCBzdHJ1Y3Qgc29jayAqc2ssCiAKIAkJbnJ0NiA9IGlwNl9ydF9jYWNoZV9hbGxv YyhydDYsIGRhZGRyLCBzYWRkcik7CiAJCWlmIChucnQ2KSB7CisJCQlzdHJ1Y3QgbmV0ICpuZXQg PSBkZXZfbmV0KG5ydDYtPmRzdC5kZXYpOworCQkJbmV0LT5pcHY2LnJ0Nl9zdGF0cy0+Y2FjaGVf ZHN0Kys7CisJCQlucnQ2LT5kc3QuZmxhZ3MgfD0gUlRGX0NBQ0hFX0RTVDsKIAkJCXJ0Nl9kb191 cGRhdGVfcG10dShucnQ2LCBtdHUpOwogCiAJCQkvKiBpcDZfaW5zX3J0KG5ydDYpIHdpbGwgYnVt cCB0aGUKQEAgLTE2NzMsNyArMTcwNiw4IEBAIHN0cnVjdCBkc3RfZW50cnkgKmljbXA2X2RzdF9h bGxvYyhzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LAogCQlnb3RvIG91dDsKIAl9CiAKLQlydC0+ZHN0 LmZsYWdzIHw9IERTVF9IT1NUOworCXJ0LT5kc3QuZmxhZ3MgfD0gKERTVF9IT1NUfFJURl9JQ01Q VjZfRFNUKTsKKwluZXQtPmlwdjYucnQ2X3N0YXRzLT5pY21wdjZfZHN0Kys7CiAJcnQtPmRzdC5v dXRwdXQgID0gaXA2X291dHB1dDsKIAlydC0+cnQ2aV9nYXRld2F5ICA9IGZsNi0+ZGFkZHI7CiAJ cnQtPnJ0NmlfZHN0LmFkZHIgPSBmbDYtPmRhZGRyOwpAQCAtMTg3MCw2ICsxOTA0LDkgQEAgc3Rh dGljIHN0cnVjdCBydDZfaW5mbyAqaXA2X3JvdXRlX2luZm9fY3JlYXRlKHN0cnVjdCBmaWI2X2Nv bmZpZyAqY2ZnLAogCQllcnIgPSAtRU5PTUVNOwogCQlnb3RvIG91dDsKIAl9CisJcnQtPmRzdC5m bGFncyB8PSBSVEZfRklCNl9EU1Q7CisJbmV0LT5pcHY2LnJ0Nl9zdGF0cy0+ZmliNl9kc3QrKzsK KwogCiAJaWYgKGNmZy0+ZmNfZmxhZ3MgJiBSVEZfRVhQSVJFUykKIAkJcnQ2X3NldF9leHBpcmVz KHJ0LCBqaWZmaWVzICsKQEAgLTIyNjUsNiArMjMwMiw3IEBAIHN0YXRpYyB2b2lkIHJ0Nl9kb19y ZWRpcmVjdChzdHJ1Y3QgZHN0X2VudHJ5ICpkc3QsIHN0cnVjdCBzb2NrICpzaywgc3RydWN0IHNr X2J1CiAJc3RydWN0IHJkX21zZyAqbXNnOwogCWludCBvcHRsZW4sIG9uX2xpbms7CiAJdTggKmxs YWRkcjsKKwlzdHJ1Y3QgbmV0ICpuZXQ7CiAKIAlvcHRsZW4gPSBza2JfdGFpbF9wb2ludGVyKHNr YikgLSBza2JfdHJhbnNwb3J0X2hlYWRlcihza2IpOwogCW9wdGxlbiAtPSBzaXplb2YoKm1zZyk7 CkBAIC0yMzUyLDYgKzIzOTAsOSBAQCBzdGF0aWMgdm9pZCBydDZfZG9fcmVkaXJlY3Qoc3RydWN0 IGRzdF9lbnRyeSAqZHN0LCBzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBza19idQogCQlucnQtPnJ0 NmlfZmxhZ3MgJj0gflJURl9HQVRFV0FZOwogCiAJbnJ0LT5ydDZpX2dhdGV3YXkgPSAqKHN0cnVj dCBpbjZfYWRkciAqKW5laWdoLT5wcmltYXJ5X2tleTsKKwluZXQgPSBkZXZfbmV0KG5ydC0+ZHN0 LmRldik7CisJbmV0LT5pcHY2LnJ0Nl9zdGF0cy0+Y2FjaGVfZHN0Kys7CisJbnJ0LT5kc3QuZmxh Z3MgfD0gUlRGX0NBQ0hFX0RTVDsKIAogCWlmIChpcDZfaW5zX3J0KG5ydCkpCiAJCWdvdG8gb3V0 X3JlbGVhc2U7CkBAIC0yNzAzLDcgKzI3NDQsNyBAQCBzdHJ1Y3QgcnQ2X2luZm8gKmFkZHJjb25m X2RzdF9hbGxvYyhzdHJ1Y3QgaW5ldDZfZGV2ICppZGV2LAogCiAJaW42X2Rldl9ob2xkKGlkZXYp OwogCi0JcnQtPmRzdC5mbGFncyB8PSBEU1RfSE9TVDsKKwlydC0+ZHN0LmZsYWdzIHw9IChEU1Rf SE9TVHxSVEZfQUREUkNPTkZfRFNUKTsKIAlydC0+ZHN0LmlucHV0ID0gaXA2X2lucHV0OwogCXJ0 LT5kc3Qub3V0cHV0ID0gaXA2X291dHB1dDsKIAlydC0+cnQ2aV9pZGV2ID0gaWRldjsKQEAgLTI3 MjAsNiArMjc2MSw3IEBAIHN0cnVjdCBydDZfaW5mbyAqYWRkcmNvbmZfZHN0X2FsbG9jKHN0cnVj dCBpbmV0Nl9kZXYgKmlkZXYsCiAJcnQtPnJ0NmlfZHN0LnBsZW4gPSAxMjg7CiAJdGJfaWQgPSBs M21kZXZfZmliX3RhYmxlKGlkZXYtPmRldikgPyA6IFJUNl9UQUJMRV9MT0NBTDsKIAlydC0+cnQ2 aV90YWJsZSA9IGZpYjZfZ2V0X3RhYmxlKG5ldCwgdGJfaWQpOworCW5ldC0+aXB2Ni5ydDZfc3Rh dHMtPmFkZHJjb25mX2RzdCsrOwogCiAJcmV0dXJuIHJ0OwogfQpAQCAtMjc1Nyw2ICsyNzk5LDcg QEAgdm9pZCBydDZfcmVtb3ZlX3ByZWZzcmMoc3RydWN0IGluZXQ2X2lmYWRkciAqaWZwKQogCWZp YjZfY2xlYW5fYWxsKG5ldCwgZmliNl9yZW1vdmVfcHJlZnNyYywgJmFkbmkpOwogfQogCisKICNk ZWZpbmUgUlRGX1JBX1JPVVRFUgkJKFJURl9BRERSQ09ORiB8IFJURl9ERUZBVUxUIHwgUlRGX0dB VEVXQVkpCiAjZGVmaW5lIFJURl9DQUNIRV9HQVRFV0FZCShSVEZfR0FURVdBWSB8IFJURl9DQUNI RSkKIApAQCAtMjc4OCwxMyArMjgzMSwxOSBAQCBzdGF0aWMgaW50IGZpYjZfaWZkb3duKHN0cnVj dCBydDZfaW5mbyAqcnQsIHZvaWQgKmFyZykKIHsKIAljb25zdCBzdHJ1Y3QgYXJnX2Rldl9uZXQg KmFkbiA9IGFyZzsKIAljb25zdCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2ID0gYWRuLT5kZXY7CisJ c3RydWN0IG5ldCAqbmV0ID0gZGV2X25ldChkZXYpOwogCiAJaWYgKChydC0+ZHN0LmRldiA9PSBk ZXYgfHwgIWRldikgJiYKIAkgICAgcnQgIT0gYWRuLT5uZXQtPmlwdjYuaXA2X251bGxfZW50cnkg JiYKIAkgICAgKHJ0LT5ydDZpX25zaWJsaW5ncyA9PSAwIHx8CiAJICAgICAoZGV2ICYmIG5ldGRl dl91bnJlZ2lzdGVyaW5nKGRldikpIHx8Ci0JICAgICAhcnQtPnJ0NmlfaWRldi0+Y25mLmlnbm9y ZV9yb3V0ZXNfd2l0aF9saW5rZG93bikpCisJICAgICAhcnQtPnJ0NmlfaWRldi0+Y25mLmlnbm9y ZV9yb3V0ZXNfd2l0aF9saW5rZG93bikpIHsKKwkJaWYgKHJ0LT5kc3QuZmxhZ3MgfCBSVEZfQURE UkNPTkZfRFNUKQorCQkJbmV0LT5pcHY2LnJ0Nl9zdGF0cy0+ZGV2X2ZyZWVfYWRkcmNvbmYrKzsK KwkJZWxzZQorCQkJbmV0LT5pcHY2LnJ0Nl9zdGF0cy0+ZGV2X2ZyZWVfZmliNisrOwogCQlyZXR1 cm4gLTE7CisJfQogCiAJcmV0dXJuIDA7CiB9Ci0tIAoyLjE0LjAuNDM0Lmc5ODA5NmZkN2E4LWdv b2cKCg== --f403045e7c20033de905567d9be1--