From mboxrd@z Thu Jan 1 00:00:00 1970 From: "=?ISO-8859-1?Q?Damien_Th=E9bault?=" Subject: Re: conntrack doesn't always work when a bridge is used Date: Fri, 28 Dec 2007 15:39:53 +0100 Message-ID: <9a4a382a0712280639v1ddb6813v2d42110b155181c1@mail.gmail.com> References: <9a4a382a0712180648i7fc958edt6f0d9db83f574c77@mail.gmail.com> <9a4a382a0712190900v2ba747a0wd4ff243d0e65e9ef@mail.gmail.com> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_Part_17780_10220411.1198852793749" To: linux-net@vger.kernel.org, netfilter-devel@vger.kernel.org, "Patrick McHardy" , "David S. Miller" Return-path: Received: from wa-out-1112.google.com ([209.85.146.179]:32243 "EHLO wa-out-1112.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753451AbXL1Ojy (ORCPT ); Fri, 28 Dec 2007 09:39:54 -0500 Received: by wa-out-1112.google.com with SMTP id v27so5581471wah.23 for ; Fri, 28 Dec 2007 06:39:53 -0800 (PST) In-Reply-To: <9a4a382a0712190900v2ba747a0wd4ff243d0e65e9ef@mail.gmail.com> Sender: netfilter-devel-owner@vger.kernel.org List-ID: ------=_Part_17780_10220411.1198852793749 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Content-Disposition: inline On Dec 19, 2007 6:00 PM, Damien Th=E9bault wrot= e: > Hello, > > I sent the quoted mail to linux-net with my problem yesterday, but I > did a git bisect today and I got the following output : > > > 2bf540b73ed5b304e84bb4d4c390d49d1cfa0ef8 is first bad commit > > commit 2bf540b73ed5b304e84bb4d4c390d49d1cfa0ef8 > > Author: Patrick McHardy > > Date: Wed Dec 13 16:54:25 2006 -0800 > > > > [NETFILTER]: bridge-netfilter: remove deferred hooks > > > > Remove the deferred hooks and all related code as scheduled in > > feature-removal-schedule. > > > > Signed-off-by: Patrick McHardy > > Signed-off-by: David S. Miller > > > > :040000 040000 c49ea947455937566b6129991dde5e86f2453aae 6611736ce5c0fcd= e7627494b66b9ea94e37ea42e M Documentation > > :040000 040000 d0dd0700fe68f98b52687be3a0c31d73f7b15b81 f8ddf15a0389c5f= 5b7f2c11d7d0db039a660e1d5 M include > > :040000 040000 dafccf7ff8657be9adca6b28dbd365cdd6c01ca5 3eeb1cb4b16cc5c= b698ab559b47ea6b0991d4d3a M net > This morning I reverted the patch and ported it to work with the net-2.6.25 and 2.6.23 kernels. With it, the behaviour seems to be good again (I didn't test a lot so I don't know if anything else is broken by this). I don't know yet if it solves my RTSP conntrack problem too. (Yes I know this is not really the good way to handle this, but since the removal of the deferred hooks before 2.6.20, there was a lot of changes in this area, so I just tried to see if it was working with the current kernel) I'm attaching the two patchs if anyone needs it. --=20 Damien Thebault ------=_Part_17780_10220411.1198852793749 Content-Type: text/x-diff; name=add_deferred_hooks-net-2.6.25.patch Content-Transfer-Encoding: base64 X-Attachment-Id: f_faqtkzjo0 Content-Disposition: attachment; filename=add_deferred_hooks-net-2.6.25.patch ZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZmVhdHVyZS1yZW1vdmFsLXNjaGVkdWxlLnR4dCBi L0RvY3VtZW50YXRpb24vZmVhdHVyZS1yZW1vdmFsLXNjaGVkdWxlLnR4dAppbmRleCAwYWU2ODJi Li45MTlmMzMxIDEwMDY0NAotLS0gYS9Eb2N1bWVudGF0aW9uL2ZlYXR1cmUtcmVtb3ZhbC1zY2hl ZHVsZS50eHQKKysrIGIvRG9jdW1lbnRhdGlvbi9mZWF0dXJlLXJlbW92YWwtc2NoZWR1bGUudHh0 CkBAIC0xODEsNiArMTgxLDIyIEBAIFdobzoJTmljayBQaWdnaW4gPG5waWdnaW5Ac3VzZS5kZT4K IAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKK1doYXQ6CUJyaWRnZSBuZXRmaWx0ZXIg ZGVmZXJyZWQgSVB2NC9JUHY2IG91dHB1dCBob29rIGNhbGxpbmcKK1doZW46CUphbnVhcnkgMjAw NworV2h5OglUaGUgZGVmZXJyZWQgb3V0cHV0IGhvb2tzIGFyZSBhIGxheWVyaW5nIHZpb2xhdGlv biBjYXVzaW5nIHVudXN1YWwKKwlhbmQgYnJva2VuIGJlaGF2aW91ciBvbiBicmlkZ2UgZGV2aWNl cy4gRXhhbXBsZXMgb2YgdGhpbmdzIHRoZXkKKwlicmVhayBpbmNsdWRlIFFvUyBjbGFzc2lmYXRp b24gdXNpbmcgdGhlIE1BUksgb3IgQ0xBU1NJRlkgdGFyZ2V0cywKKwl0aGUgSVBzZWMgcG9saWN5 IG1hdGNoIGFuZCBjb25uZWN0aW9uIHRyYWNraW5nIHdpdGggVkxBTnMgb24gYQorCWJyaWRnZS4g VGhlaXIgb25seSB1c2UgaXMgdG8gZW5hYmxlIGJyaWRnZSBvdXRwdXQgcG9ydCBmaWx0ZXJpbmcK Kwl3aXRoaW4gaXB0YWJsZXMgd2l0aCB0aGUgcGh5c2RldiBtYXRjaCwgd2hpY2ggY2FuIGFsc28g YmUgZG9uZSBieQorCWNvbWJpbmluZyBpcHRhYmxlcyBhbmQgZWJ0YWJsZXMgdXNpbmcgbmV0Zmls dGVyIG1hcmtzLiBVbnRpbCBpdAorCXdpbGwgZ2V0IHJlbW92ZWQgdGhlIGhvb2sgZGVmZXJyYWwg aXMgZGlzYWJsZWQgYnkgZGVmYXVsdCBhbmQgaXMKKwlvbmx5IGVuYWJsZWQgd2hlbiBuZWVkZWQu CisKK1dobzoJUGF0cmljayBNY0hhcmR5IDxrYWJlckB0cmFzaC5uZXQ+CisKKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQorCiBXaGF0OglQSFlTREVWUEFUSCwgUEhZU0RFVkJVUywgUEhZU0RF VkRSSVZFUiBpbiB0aGUgdWV2ZW50IGVudmlyb25tZW50CiBXaGVuOglPY3RvYmVyIDIwMDgKIFdo eToJVGhlIHN0YWNraW5nIG9mIGNsYXNzIGRldmljZXMgbWFrZXMgdGhlc2UgdmFsdWVzIG1pc2xl YWRpbmcgYW5kCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L25ldGZpbHRlcl9icmlkZ2UuaCBi L2luY2x1ZGUvbGludXgvbmV0ZmlsdGVyX2JyaWRnZS5oCmluZGV4IDQ5OWFhOTMuLmQ5NDg3Yjkg MTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvbmV0ZmlsdGVyX2JyaWRnZS5oCisrKyBiL2luY2x1 ZGUvbGludXgvbmV0ZmlsdGVyX2JyaWRnZS5oCkBAIC04Myw2ICs4Myw3IEBAIHN0cnVjdCBicmlk Z2Vfc2tiX2NiIHsKIAl9IGRhZGRyOwogfTsKIAorZXh0ZXJuIGludCBicm5mX2RlZmVycmVkX2hv b2tzOwogI2Vsc2UKICNkZWZpbmUgbmZfYnJpZGdlX21heWJlX2NvcHlfaGVhZGVyKHNrYikJKDAp CiAjZGVmaW5lIG5mX2JyaWRnZV9wYWQoc2tiKQkJCSgwKQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9s aW51eC9uZXRmaWx0ZXJfaXB2NC5oIGIvaW5jbHVkZS9saW51eC9uZXRmaWx0ZXJfaXB2NC5oCmlu ZGV4IDlhMTAwOTIuLmI5Njk1MmEgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvbmV0ZmlsdGVy X2lwdjQuaAorKysgYi9pbmNsdWRlL2xpbnV4L25ldGZpbHRlcl9pcHY0LmgKQEAgLTM2LDYgKzM2 LDcgQEAKICNkZWZpbmUgTkZDX0lQX0RTVF9QVAkJMHgwNDAwCiAvKiBTb21ldGhpbmcgZWxzZSBh Ym91dCB0aGUgcHJvdG8gKi8KICNkZWZpbmUgTkZDX0lQX1BST1RPX1VOS05PV04JMHgyMDAwCisj ZW5kaWYgLyogISBfX0tFUk5FTF9fICovCiAKIC8qIElQIEhvb2tzICovCiAvKiBBZnRlciBwcm9t aXNjIGRyb3BzLCBjaGVja3N1bSBjaGVja3MuICovCkBAIC00OSw3ICs1MCw2IEBACiAvKiBQYWNr ZXRzIGFib3V0IHRvIGhpdCB0aGUgd2lyZS4gKi8KICNkZWZpbmUgTkZfSVBfUE9TVF9ST1VUSU5H CTQKICNkZWZpbmUgTkZfSVBfTlVNSE9PS1MJCTUKLSNlbmRpZiAvKiAhIF9fS0VSTkVMX18gKi8K IAogZW51bSBuZl9pcF9ob29rX3ByaW9yaXRpZXMgewogCU5GX0lQX1BSSV9GSVJTVCA9IElOVF9N SU4sCkBAIC01Nyw4ICs1NywxMCBAQCBlbnVtIG5mX2lwX2hvb2tfcHJpb3JpdGllcyB7CiAJTkZf SVBfUFJJX1JBVyA9IC0zMDAsCiAJTkZfSVBfUFJJX1NFTElOVVhfRklSU1QgPSAtMjI1LAogCU5G X0lQX1BSSV9DT05OVFJBQ0sgPSAtMjAwLAorCU5GX0lQX1BSSV9CUklER0VfU0FCT1RBR0VfRk9S V0FSRCA9IC0xNzUsCiAJTkZfSVBfUFJJX01BTkdMRSA9IC0xNTAsCiAJTkZfSVBfUFJJX05BVF9E U1QgPSAtMTAwLAorCU5GX0lQX1BSSV9CUklER0VfU0FCT1RBR0VfTE9DQUxfT1VUID0gLTUwLAog CU5GX0lQX1BSSV9GSUxURVIgPSAwLAogCU5GX0lQX1BSSV9OQVRfU1JDID0gMTAwLAogCU5GX0lQ X1BSSV9TRUxJTlVYX0xBU1QgPSAyMjUsCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L25ldGZp bHRlcl9pcHY2LmggYi9pbmNsdWRlL2xpbnV4L25ldGZpbHRlcl9pcHY2LmgKaW5kZXggMzQ3NWE2 NS4uMDcxMzNjOSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9uZXRmaWx0ZXJfaXB2Ni5oCisr KyBiL2luY2x1ZGUvbGludXgvbmV0ZmlsdGVyX2lwdjYuaApAQCAtNDAsNiArNDAsNyBAQAogI2Rl ZmluZSBORkNfSVA2X0RTVF9QVCAgICAgICAgICAgMHgwNDAwCiAvKiBTb21ldGhpbmcgZWxzZSBh Ym91dCB0aGUgcHJvdG8gKi8KICNkZWZpbmUgTkZDX0lQNl9QUk9UT19VTktOT1dOICAgIDB4MjAw MAorI2VuZGlmIC8qICEgX19LRVJORUxfXyAqLwogCiAvKiBJUDYgSG9va3MgKi8KIC8qIEFmdGVy IHByb21pc2MgZHJvcHMsIGNoZWNrc3VtIGNoZWNrcy4gKi8KQEAgLTUzLDcgKzU0LDYgQEAKIC8q IFBhY2tldHMgYWJvdXQgdG8gaGl0IHRoZSB3aXJlLiAqLwogI2RlZmluZSBORl9JUDZfUE9TVF9S T1VUSU5HCTQKICNkZWZpbmUgTkZfSVA2X05VTUhPT0tTCQk1Ci0jZW5kaWYgLyogISBfX0tFUk5F TF9fICovCiAKIAogZW51bSBuZl9pcDZfaG9va19wcmlvcml0aWVzIHsKQEAgLTYxLDggKzYxLDEw IEBAIGVudW0gbmZfaXA2X2hvb2tfcHJpb3JpdGllcyB7CiAJTkZfSVA2X1BSSV9DT05OVFJBQ0tf REVGUkFHID0gLTQwMCwKIAlORl9JUDZfUFJJX1NFTElOVVhfRklSU1QgPSAtMjI1LAogCU5GX0lQ Nl9QUklfQ09OTlRSQUNLID0gLTIwMCwKKwlORl9JUDZfUFJJX0JSSURHRV9TQUJPVEFHRV9GT1JX QVJEID0gLTE3NSwKIAlORl9JUDZfUFJJX01BTkdMRSA9IC0xNTAsCiAJTkZfSVA2X1BSSV9OQVRf RFNUID0gLTEwMCwKKwlORl9JUDZfUFJJX0JSSURHRV9TQUJPVEFHRV9MT0NBTF9PVVQgPSAtNTAs CiAJTkZfSVA2X1BSSV9GSUxURVIgPSAwLAogCU5GX0lQNl9QUklfTkFUX1NSQyA9IDEwMCwKIAlO Rl9JUDZfUFJJX1NFTElOVVhfTEFTVCA9IDIyNSwKZGlmZiAtLWdpdCBhL25ldC9icmlkZ2UvYnJf bmV0ZmlsdGVyLmMgYi9uZXQvYnJpZGdlL2JyX25ldGZpbHRlci5jCmluZGV4IDMyYWMwMzUuLjg2 MTMxYjQgMTAwNjQ0Ci0tLSBhL25ldC9icmlkZ2UvYnJfbmV0ZmlsdGVyLmMKKysrIGIvbmV0L2Jy aWRnZS9icl9uZXRmaWx0ZXIuYwpAQCAtNjUsNiArNjUsOSBAQCBzdGF0aWMgaW50IGJybmZfZmls dGVyX3BwcG9lX3RhZ2dlZCBfX3JlYWRfbW9zdGx5ID0gMTsKICNkZWZpbmUgYnJuZl9maWx0ZXJf cHBwb2VfdGFnZ2VkIDEKICNlbmRpZgogCitpbnQgYnJuZl9kZWZlcnJlZF9ob29rczsKK0VYUE9S VF9TWU1CT0xfR1BMKGJybmZfZGVmZXJyZWRfaG9va3MpOworCiBzdGF0aWMgaW5saW5lIF9fYmUx NiB2bGFuX3Byb3RvKGNvbnN0IHN0cnVjdCBza19idWZmICpza2IpCiB7CiAJcmV0dXJuIHZsYW5f ZXRoX2hkcihza2IpLT5oX3ZsYW5fZW5jYXBzdWxhdGVkX3Byb3RvOwpAQCAtNjg5LDQ2ICs2OTIs MTA5IEBAIHN0YXRpYyB1bnNpZ25lZCBpbnQgYnJfbmZfZm9yd2FyZF9hcnAodW5zaWduZWQgaW50 IGhvb2ssIHN0cnVjdCBza19idWZmICpza2IsCiAJcmV0dXJuIE5GX1NUT0xFTjsKIH0KIAotLyog UEZfQlJJREdFL0xPQ0FMX09VVCAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKgotICoKLSAqIFRoaXMgZnVuY3Rpb24gc2VlcyBib3RoIGxvY2FsbHkgb3JpZ2lu YXRlZCBJUCBwYWNrZXRzIGFuZCBmb3J3YXJkZWQKKy8qIFBGX0JSSURHRS9MT0NBTF9PVVQgKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCitzdGF0aWMgaW50 IGJyX25mX2xvY2FsX291dF9maW5pc2goc3RydWN0IHNrX2J1ZmYgKnNrYikKK3sKKwlpZiAoc2ti LT5wcm90b2NvbCA9PSBodG9ucyhFVEhfUF84MDIxUSkpIHsKKwkJc2tiX3B1c2goc2tiLCBWTEFO X0hMRU4pOworCQlza2ItPm5ldHdvcmtfaGVhZGVyIC09IFZMQU5fSExFTjsKKwl9CisKKwlORl9I T09LX1RIUkVTSChQRl9CUklER0UsIE5GX0JSX0xPQ0FMX09VVCwgc2tiLCBOVUxMLCBza2ItPmRl diwKKwkJICAgICAgIGJyX2ZvcndhcmRfZmluaXNoLCBORl9CUl9QUklfRklSU1QgKyAxKTsKKwor CXJldHVybiAwOworfQorCisvKiBUaGlzIGZ1bmN0aW9uIHNlZXMgYm90aCBsb2NhbGx5IG9yaWdp bmF0ZWQgSVAgcGFja2V0cyBhbmQgZm9yd2FyZGVkCiAgKiBJUCBwYWNrZXRzIChpbiBib3RoIGNh c2VzIHRoZSBkZXN0aW5hdGlvbiBkZXZpY2UgaXMgYSBicmlkZ2UKICAqIGRldmljZSkuIEl0IGFs c28gc2VlcyBicmlkZ2VkLWFuZC1ETkFUJ2VkIHBhY2tldHMuCisgKiBUbyBiZSBhYmxlIHRvIGZp bHRlciBvbiB0aGUgcGh5c2ljYWwgYnJpZGdlIGRldmljZXMgKHdpdGggdGhlIHBoeXNkZXYKKyAq IG1vZHVsZSksIHdlIHN0ZWFsIHBhY2tldHMgZGVzdGluZWQgdG8gYSBicmlkZ2UgZGV2aWNlIGF3 YXkgZnJvbSB0aGUKKyAqIFBGX0lORVQvRk9SV0FSRCBhbmQgUEZfSU5FVC9PVVRQVVQgaG9vayBm dW5jdGlvbnMsIGFuZCBnaXZlIHRoZW0gYmFjayBsYXRlciwKKyAqIHdoZW4gd2UgaGF2ZSBkZXRl cm1pbmVkIHRoZSByZWFsIG91dHB1dCBkZXZpY2UuIFRoaXMgaXMgZG9uZSBpbiBoZXJlLgogICoK ICAqIElmIChuZl9icmlkZ2UtPm1hc2sgJiBCUk5GX0JSSURHRURfRE5BVCkgdGhlbiB0aGUgcGFj a2V0IGlzIGJyaWRnZWQKICAqIGFuZCB3ZSBmYWtlIHRoZSBQRl9CUklER0UvRk9SV0FSRCBob29r LiBUaGUgZnVuY3Rpb24gYnJfbmZfZm9yd2FyZCgpCiAgKiB3aWxsIHRoZW4gZmFrZSB0aGUgUEZf SU5FVC9GT1JXQVJEIGhvb2suIGJyX25mX2xvY2FsX291dCgpIGhhcyBwcmlvcml0eQogICogTkZf QlJfUFJJX0ZJUlNULCBzbyBubyByZWxldmFudCBQRl9CUklER0UvSU5QVVQgZnVuY3Rpb25zIGhh dmUgYmVlbiBub3IKICAqIHdpbGwgYmUgZXhlY3V0ZWQuCi0gKi8KKyAqIE90aGVyd2lzZSwgaWYg bmZfYnJpZGdlLT5waHlzaW5kZXYgaXMgTlVMTCwgdGhlIGJyaWRnZS1uZiBjb2RlIG5ldmVyIHRv dWNoZWQKKyAqIHRoaXMgcGFja2V0IGJlZm9yZSwgYW5kIHNvIHRoZSBwYWNrZXQgd2FzIGxvY2Fs bHkgb3JpZ2luYXRlZC4gV2UgZmFrZQorICogdGhlIFBGX0lORVQvTE9DQUxfT1VUIGhvb2suCisg KiBGaW5hbGx5LCBpZiBuZl9icmlkZ2UtPnBoeXNpbmRldiBpc24ndCBOVUxMLCB0aGVuIHRoZSBw YWNrZXQgd2FzIElQIHJvdXRlZCwKKyAqIHNvIHdlIGZha2UgdGhlIFBGX0lORVQvRk9SV0FSRCBo b29rLiBpcF9zYWJvdGFnZV9vdXQoKSBtYWtlcyBzdXJlCisgKiBldmVuIHJvdXRlZCBwYWNrZXRz IHRoYXQgZGlkbid0IGFycml2ZSBvbiBhIGJyaWRnZSBpbnRlcmZhY2UgaGF2ZSB0aGVpcgorICog bmZfYnJpZGdlLT5waHlzaW5kZXYgc2V0LiAqLwogc3RhdGljIHVuc2lnbmVkIGludCBicl9uZl9s b2NhbF9vdXQodW5zaWduZWQgaW50IGhvb2ssIHN0cnVjdCBza19idWZmICpza2IsCiAJCQkJICAg IGNvbnN0IHN0cnVjdCBuZXRfZGV2aWNlICppbiwKIAkJCQkgICAgY29uc3Qgc3RydWN0IG5ldF9k ZXZpY2UgKm91dCwKIAkJCQkgICAgaW50ICgqb2tmbikoc3RydWN0IHNrX2J1ZmYgKikpCiB7Ci0J c3RydWN0IG5ldF9kZXZpY2UgKnJlYWxpbmRldjsKKwlzdHJ1Y3QgbmV0X2RldmljZSAqcmVhbGlu ZGV2LCAqcmVhbG91dGRldjsKIAlzdHJ1Y3QgbmZfYnJpZGdlX2luZm8gKm5mX2JyaWRnZTsKKwlp bnQgcGY7CiAKIAlpZiAoIXNrYi0+bmZfYnJpZGdlKQogCQlyZXR1cm4gTkZfQUNDRVBUOwogCisJ aWYgKHNrYi0+cHJvdG9jb2wgPT0gaHRvbnMoRVRIX1BfSVApIHx8IElTX1ZMQU5fSVAoc2tiKSkK KwkJcGYgPSBQRl9JTkVUOworCWVsc2UKKwkJcGYgPSBQRl9JTkVUNjsKKwogCW5mX2JyaWRnZSA9 IHNrYi0+bmZfYnJpZGdlOwotCWlmICghKG5mX2JyaWRnZS0+bWFzayAmIEJSTkZfQlJJREdFRF9E TkFUKSkKLQkJcmV0dXJuIE5GX0FDQ0VQVDsKKwluZl9icmlkZ2UtPnBoeXNvdXRkZXYgPSBza2It PmRldjsKKwlyZWFsaW5kZXYgPSBuZl9icmlkZ2UtPnBoeXNpbmRldjsKIAogCS8qIEJyaWRnZWQs IHRha2UgUEZfQlJJREdFL0ZPUldBUkQuCiAJICogKHNlZSBiaWcgbm90ZSBpbiBmcm9udCBvZiBi cl9uZl9wcmVfcm91dGluZ19maW5pc2gpICovCi0JbmZfYnJpZGdlLT5waHlzb3V0ZGV2ID0gc2ti LT5kZXY7Ci0JcmVhbGluZGV2ID0gbmZfYnJpZGdlLT5waHlzaW5kZXY7CisJaWYgKG5mX2JyaWRn ZS0+bWFzayAmIEJSTkZfQlJJREdFRF9ETkFUKSB7CisJCWlmIChuZl9icmlkZ2UtPm1hc2sgJiBC Uk5GX1BLVF9UWVBFKSB7CisJCQlza2ItPnBrdF90eXBlID0gUEFDS0VUX09USEVSSE9TVDsKKwkJ CW5mX2JyaWRnZS0+bWFzayBePSBCUk5GX1BLVF9UWVBFOworCQl9CisJCWlmIChza2ItPnByb3Rv Y29sID09IGh0b25zKEVUSF9QXzgwMjFRKSkgeworCQkJc2tiX3B1c2goc2tiLCBWTEFOX0hMRU4p OworCQkJc2tiLT5uZXR3b3JrX2hlYWRlciAtPSBWTEFOX0hMRU47CisJCX0KIAotCWlmIChuZl9i cmlkZ2UtPm1hc2sgJiBCUk5GX1BLVF9UWVBFKSB7Ci0JCXNrYi0+cGt0X3R5cGUgPSBQQUNLRVRf T1RIRVJIT1NUOwotCQluZl9icmlkZ2UtPm1hc2sgXj0gQlJORl9QS1RfVFlQRTsKKwkJTkZfSE9P SyhQRl9CUklER0UsIE5GX0JSX0ZPUldBUkQsIHNrYiwgcmVhbGluZGV2LAorCQkJc2tiLT5kZXYs IGJyX2ZvcndhcmRfZmluaXNoKTsKKwkJZ290byBvdXQ7CiAJfQotCW5mX2JyaWRnZV9wdXNoX2Vu Y2FwX2hlYWRlcihza2IpOworCXJlYWxvdXRkZXYgPSBicmlkZ2VfcGFyZW50KHNrYi0+ZGV2KTsK KwlpZiAoIXJlYWxvdXRkZXYpCisJCXJldHVybiBORl9EUk9QOworCisjaWYgZGVmaW5lZChDT05G SUdfVkxBTl84MDIxUSkgfHwgZGVmaW5lZChDT05GSUdfVkxBTl84MDIxUV9NT0RVTEUpCisJLyog aXB0YWJsZXMgc2hvdWxkIG1hdGNoIC1vIGJyMC54ICovCisJaWYgKG5mX2JyaWRnZS0+bmV0b3V0 ZGV2KQorCQlyZWFsb3V0ZGV2ID0gbmZfYnJpZGdlLT5uZXRvdXRkZXY7CisjZW5kaWYKKwlpZiAo c2tiLT5wcm90b2NvbCA9PSBodG9ucyhFVEhfUF84MDIxUSkpIHsKKwkJc2tiX3B1bGwoc2tiLCBW TEFOX0hMRU4pOworCQlza2ItPm5ldHdvcmtfaGVhZGVyICs9IFZMQU5fSExFTjsKKwl9CisJLyog SVAgZm9yd2FyZGVkIHRyYWZmaWMgaGFzIGEgcGh5c2luZGV2LCBsb2NhbGx5CisJICogZ2VuZXJh dGVkIHRyYWZmaWMgaGFzbid0LiAqLworCWlmIChyZWFsaW5kZXYgIT0gTlVMTCkgeworCQlpZiAo IShuZl9icmlkZ2UtPm1hc2sgJiBCUk5GX0RPTlRfVEFLRV9QQVJFTlQpKSB7CisJCQlzdHJ1Y3Qg bmV0X2RldmljZSAqcGFyZW50ID0gYnJpZGdlX3BhcmVudChyZWFsaW5kZXYpOworCQkJaWYgKHBh cmVudCkKKwkJCQlyZWFsaW5kZXYgPSBwYXJlbnQ7CisJCX0KIAotCU5GX0hPT0soUEZfQlJJREdF LCBORl9CUl9GT1JXQVJELCBza2IsIHJlYWxpbmRldiwgc2tiLT5kZXYsCi0JCWJyX2ZvcndhcmRf ZmluaXNoKTsKKwkJTkZfSE9PS19USFJFU0gocGYsIE5GX0lQX0ZPUldBUkQsIHNrYiwgcmVhbGlu ZGV2LAorCQkJICAgICAgIHJlYWxvdXRkZXYsIGJyX25mX2xvY2FsX291dF9maW5pc2gsCisJCQkg ICAgICAgTkZfSVBfUFJJX0JSSURHRV9TQUJPVEFHRV9GT1JXQVJEICsgMSk7CisJfSBlbHNlIHsK KwkJTkZfSE9PS19USFJFU0gocGYsIE5GX0lQX0xPQ0FMX09VVCwgc2tiLCByZWFsaW5kZXYsCisJ CQkgICAgICAgcmVhbG91dGRldiwgYnJfbmZfbG9jYWxfb3V0X2ZpbmlzaCwKKwkJCSAgICAgICBO Rl9JUF9QUklfQlJJREdFX1NBQk9UQUdFX0xPQ0FMX09VVCArIDEpOworCX0KKworb3V0OgogCXJl dHVybiBORl9TVE9MRU47CiB9CiAKQEAgLTgzNCw2ICs5MDAsNjcgQEAgc3RhdGljIHVuc2lnbmVk IGludCBpcF9zYWJvdGFnZV9pbih1bnNpZ25lZCBpbnQgaG9vaywgc3RydWN0IHNrX2J1ZmYgKnNr YiwKIAlyZXR1cm4gTkZfQUNDRVBUOwogfQogCisvKiBQb3N0cG9uZSBleGVjdXRpb24gb2YgUEZf SU5FVCg2KS9GT1JXQVJELCBQRl9JTkVUKDYpL0xPQ0FMX09VVAorICogYW5kIFBGX0lORVQoNikv UE9TVF9ST1VUSU5HIHVudGlsIHdlIGhhdmUgZG9uZSB0aGUgZm9yd2FyZGluZworICogZGVjaXNp b24gaW4gdGhlIGJyaWRnZSBjb2RlIGFuZCBoYXZlIGRldGVybWluZWQgbmZfYnJpZGdlLT5waHlz b3V0ZGV2LiAqLworc3RhdGljIHVuc2lnbmVkIGludCBpcF9zYWJvdGFnZV9vdXQodW5zaWduZWQg aW50IGhvb2ssIHN0cnVjdCBza19idWZmICpza2IsCisJCQkJICAgIGNvbnN0IHN0cnVjdCBuZXRf ZGV2aWNlICppbiwKKwkJCQkgICAgY29uc3Qgc3RydWN0IG5ldF9kZXZpY2UgKm91dCwKKwkJCQkg ICAgaW50ICgqb2tmbikoc3RydWN0IHNrX2J1ZmYgKikpCit7CisJaWYgKChvdXQtPmhhcmRfc3Rh cnRfeG1pdCA9PSBicl9kZXZfeG1pdCAmJgorCSAgICAgb2tmbiAhPSBicl9uZl9mb3J3YXJkX2Zp bmlzaCAmJgorCSAgICAgb2tmbiAhPSBicl9uZl9sb2NhbF9vdXRfZmluaXNoICYmIG9rZm4gIT0g YnJfbmZfZGV2X3F1ZXVlX3htaXQpCisjaWYgZGVmaW5lZChDT05GSUdfVkxBTl84MDIxUSkgfHwg ZGVmaW5lZChDT05GSUdfVkxBTl84MDIxUV9NT0RVTEUpCisJICAgIHx8ICgob3V0LT5wcml2X2Zs YWdzICYgSUZGXzgwMl8xUV9WTEFOKSAmJgorCQlWTEFOX0RFVl9JTkZPKG91dCktPnJlYWxfZGV2 LT5oYXJkX3N0YXJ0X3htaXQgPT0gYnJfZGV2X3htaXQpCisjZW5kaWYKKwkgICAgKSB7CisJCXN0 cnVjdCBuZl9icmlkZ2VfaW5mbyAqbmZfYnJpZGdlOworCisJCWlmICghc2tiLT5uZl9icmlkZ2Up IHsKKyNpZmRlZiBDT05GSUdfU1lTQ1RMCisJCQkvKiBUaGlzIGNvZGUgaXMgZXhlY3V0ZWQgd2hp bGUgaW4gdGhlIElQKHY2KSBzdGFjaywKKwkJCSAgIHRoZSB2ZXJzaW9uIHNob3VsZCBiZSA0IG9y IDYuIFdlIGNhbid0IHVzZQorCQkJICAgc2tiLT5wcm90b2NvbCBiZWNhdXNlIHRoYXQgaXNuJ3Qg c2V0IG9uCisJCQkgICBQRl9JTkVUKDYpL0xPQ0FMX09VVC4gKi8KKwkJCXN0cnVjdCBpcGhkciAq aXAgPSBpcF9oZHIoc2tiKTsKKworCQkJaWYgKGlwLT52ZXJzaW9uID09IDQgJiYgIWJybmZfY2Fs bF9pcHRhYmxlcykKKwkJCQlyZXR1cm4gTkZfQUNDRVBUOworCQkJZWxzZSBpZiAoaXAtPnZlcnNp b24gPT0gNiAmJiAhYnJuZl9jYWxsX2lwNnRhYmxlcykKKwkJCQlyZXR1cm4gTkZfQUNDRVBUOwor CQkJZWxzZSBpZiAoIWJybmZfZGVmZXJyZWRfaG9va3MpCisJCQkJcmV0dXJuIE5GX0FDQ0VQVDsK KyNlbmRpZgorCQkJaWYgKGhvb2sgPT0gTkZfSVBfUE9TVF9ST1VUSU5HKQorCQkJCXJldHVybiBO Rl9BQ0NFUFQ7CisJCQlpZiAoIW5mX2JyaWRnZV9hbGxvYyhza2IpKQorCQkJCXJldHVybiBORl9E Uk9QOworCQl9CisKKwkJbmZfYnJpZGdlID0gc2tiLT5uZl9icmlkZ2U7CisKKwkJLyogVGhpcyBm cmFtZSB3aWxsIGFycml2ZSBvbiBQRl9CUklER0UvTE9DQUxfT1VUIGFuZCB3ZQorCQkgKiB3aWxs IG5lZWQgdGhlIGluZGV2IHRoZW4uIEZvciBhIGJyb3V0ZXIsIHRoZSByZWFsIGluZGV2CisJCSAq IGNhbiBiZSBhIGJyaWRnZSBwb3J0LCBzbyB3ZSBtYWtlIHN1cmUgYnJfbmZfbG9jYWxfb3V0KCkK KwkJICogZG9lc24ndCB1c2UgdGhlIGJyaWRnZSBwYXJlbnQgb2YgdGhlIGluZGV2IGJ5IHVzaW5n CisJCSAqIHRoZSBCUk5GX0RPTlRfVEFLRV9QQVJFTlQgbWFzay4gKi8KKwkJaWYgKGhvb2sgPT0g TkZfSVBfRk9SV0FSRCAmJiBuZl9icmlkZ2UtPnBoeXNpbmRldiA9PSBOVUxMKSB7CisJCQluZl9i cmlkZ2UtPm1hc2sgfD0gQlJORl9ET05UX1RBS0VfUEFSRU5UOworCQkJbmZfYnJpZGdlLT5waHlz aW5kZXYgPSAoc3RydWN0IG5ldF9kZXZpY2UgKilpbjsKKwkJfQorI2lmIGRlZmluZWQoQ09ORklH X1ZMQU5fODAyMVEpIHx8IGRlZmluZWQoQ09ORklHX1ZMQU5fODAyMVFfTU9EVUxFKQorCQkvKiB0 aGUgaXB0YWJsZXMgb3V0ZGV2IGlzIGJyMC54LCBub3QgYnIwICovCisJCWlmIChvdXQtPnByaXZf ZmxhZ3MgJiBJRkZfODAyXzFRX1ZMQU4pCisJCQluZl9icmlkZ2UtPm5ldG91dGRldiA9IChzdHJ1 Y3QgbmV0X2RldmljZSAqKW91dDsKKyNlbmRpZgorCQlyZXR1cm4gTkZfU1RPUDsKKwl9CisKKwly ZXR1cm4gTkZfQUNDRVBUOworfQorCiAvKiBGb3IgYnJfbmZfbG9jYWxfb3V0IHdlIG5lZWQgKHBy aW8gPSBORl9CUl9QUklfRklSU1QpLCB0byBpbnN1cmUgdGhhdCBpbm5vY2VudAogICogUEZfQlJJ REdFL05GX0JSX0xPQ0FMX09VVCBmdW5jdGlvbnMgZG9uJ3QgZ2V0IGJyaWRnZWQgdHJhZmZpYyBh cyBpbnB1dC4KICAqIEZvciBicl9uZl9wb3N0X3JvdXRpbmcsIHdlIG5lZWQgKHByaW8gPSBORl9C Ul9QUklfTEFTVCksIGJlY2F1c2UKQEAgLTg3OSw2ICsxMDA2LDM2IEBAIHN0YXRpYyBzdHJ1Y3Qg bmZfaG9va19vcHMgYnJfbmZfb3BzW10gX19yZWFkX21vc3RseSA9IHsKIAkgIC5wZiA9IFBGX0lO RVQ2LAogCSAgLmhvb2tudW0gPSBORl9JTkVUX1BSRV9ST1VUSU5HLAogCSAgLnByaW9yaXR5ID0g TkZfSVA2X1BSSV9GSVJTVCwgfSwKKwl7IC5ob29rID0gaXBfc2Fib3RhZ2Vfb3V0LAorCSAgLm93 bmVyID0gVEhJU19NT0RVTEUsCisJICAucGYgPSBQRl9JTkVULAorCSAgLmhvb2tudW0gPSBORl9J UF9GT1JXQVJELAorCSAgLnByaW9yaXR5ID0gTkZfSVBfUFJJX0JSSURHRV9TQUJPVEFHRV9GT1JX QVJELCB9LAorCXsgLmhvb2sgPSBpcF9zYWJvdGFnZV9vdXQsCisJICAub3duZXIgPSBUSElTX01P RFVMRSwKKwkgIC5wZiA9IFBGX0lORVQ2LAorCSAgLmhvb2tudW0gPSBORl9JUDZfRk9SV0FSRCwK KwkgIC5wcmlvcml0eSA9IE5GX0lQNl9QUklfQlJJREdFX1NBQk9UQUdFX0ZPUldBUkQsIH0sCisJ eyAuaG9vayA9IGlwX3NhYm90YWdlX291dCwKKwkgIC5vd25lciA9IFRISVNfTU9EVUxFLAorCSAg LnBmID0gUEZfSU5FVCwKKwkgIC5ob29rbnVtID0gTkZfSVBfTE9DQUxfT1VULAorCSAgLnByaW9y aXR5ID0gTkZfSVBfUFJJX0JSSURHRV9TQUJPVEFHRV9MT0NBTF9PVVQsIH0sCisJeyAuaG9vayA9 IGlwX3NhYm90YWdlX291dCwKKwkgIC5vd25lciA9IFRISVNfTU9EVUxFLAorCSAgLnBmID0gUEZf SU5FVDYsCisJICAuaG9va251bSA9IE5GX0lQNl9MT0NBTF9PVVQsCisJICAucHJpb3JpdHkgPSBO Rl9JUDZfUFJJX0JSSURHRV9TQUJPVEFHRV9MT0NBTF9PVVQsIH0sCisJeyAuaG9vayA9IGlwX3Nh Ym90YWdlX291dCwKKwkgIC5vd25lciA9IFRISVNfTU9EVUxFLAorCSAgLnBmID0gUEZfSU5FVCwK KwkgIC5ob29rbnVtID0gTkZfSVBfUE9TVF9ST1VUSU5HLAorCSAgLnByaW9yaXR5ID0gTkZfSVBf UFJJX0ZJUlNULCB9LAorCXsgLmhvb2sgPSBpcF9zYWJvdGFnZV9vdXQsCisJICAub3duZXIgPSBU SElTX01PRFVMRSwKKwkgIC5wZiA9IFBGX0lORVQ2LAorCSAgLmhvb2tudW0gPSBORl9JUDZfUE9T VF9ST1VUSU5HLAorCSAgLnByaW9yaXR5ID0gTkZfSVA2X1BSSV9GSVJTVCwgfSwKIH07CiAKICNp ZmRlZiBDT05GSUdfU1lTQ1RMCmRpZmYgLS1naXQgYS9uZXQvbmV0ZmlsdGVyL3h0X3BoeXNkZXYu YyBiL25ldC9uZXRmaWx0ZXIveHRfcGh5c2Rldi5jCmluZGV4IDY3OGI2ODMuLjZlN2ViOWIgMTAw NjQ0Ci0tLSBhL25ldC9uZXRmaWx0ZXIveHRfcGh5c2Rldi5jCisrKyBiL25ldC9uZXRmaWx0ZXIv eHRfcGh5c2Rldi5jCkBAIC0xMDQsMTYgKzEwNCwyMCBAQCBwaHlzZGV2X210X2NoZWNrKGNvbnN0 IGNoYXIgKnRhYmxlbmFtZSwgY29uc3Qgdm9pZCAqaXAsCiAJaWYgKCEoaW5mby0+Yml0bWFzayAm IFhUX1BIWVNERVZfT1BfTUFTSykgfHwKIAkgICAgaW5mby0+Yml0bWFzayAmIH5YVF9QSFlTREVW X09QX01BU0spCiAJCXJldHVybiBmYWxzZTsKLQlpZiAoaW5mby0+Yml0bWFzayAmIFhUX1BIWVNE RVZfT1BfT1VUICYmCisJaWYgKGJybmZfZGVmZXJyZWRfaG9va3MgPT0gMCAmJgorCSAgICBpbmZv LT5iaXRtYXNrICYgWFRfUEhZU0RFVl9PUF9PVVQgJiYKIAkgICAgKCEoaW5mby0+Yml0bWFzayAm IFhUX1BIWVNERVZfT1BfQlJJREdFRCkgfHwKIAkgICAgIGluZm8tPmludmVydCAmIFhUX1BIWVNE RVZfT1BfQlJJREdFRCkgJiYKIAkgICAgaG9va19tYXNrICYgKCgxIDw8IE5GX0lORVRfTE9DQUxf T1VUKSB8ICgxIDw8IE5GX0lORVRfRk9SV0FSRCkgfAogCQkJICgxIDw8IE5GX0lORVRfUE9TVF9S T1VUSU5HKSkpIHsKIAkJcHJpbnRrKEtFUk5fV0FSTklORyAicGh5c2RldiBtYXRjaDogdXNpbmcg LS1waHlzZGV2LW91dCBpbiB0aGUgIgogCQkgICAgICAgIk9VVFBVVCwgRk9SV0FSRCBhbmQgUE9T VFJPVVRJTkcgY2hhaW5zIGZvciBub24tYnJpZGdlZCAiCi0JCSAgICAgICAidHJhZmZpYyBpcyBu b3Qgc3VwcG9ydGVkIGFueW1vcmUuXG4iKTsKLQkJaWYgKGhvb2tfbWFzayAmICgxIDw8IE5GX0lO RVRfTE9DQUxfT1VUKSkKLQkJCXJldHVybiBmYWxzZTsKKwkJICAgICAgICJ0cmFmZmljIGlzIGRl cHJlY2F0ZWQgYW5kIGJyZWFrcyBvdGhlciB0aGluZ3MsIGl0IHdpbGwgIgorCQkgICAgICAgImJl IHJlbW92ZWQgaW4gSmFudWFyeSAyMDA3LiBTZWUgRG9jdW1lbnRhdGlvbi8iCisJCSAgICAgICAi ZmVhdHVyZS1yZW1vdmFsLXNjaGVkdWxlLnR4dCBmb3IgZGV0YWlscy4gVGhpcyBkb2Vzbid0ICIK KwkJICAgICAgICJhZmZlY3QgeW91IGluIGNhc2UgeW91J3JlIHVzaW5nIGl0IGZvciBwdXJlbHkg YnJpZGdlZCAiCisJCSAgICAgICAidHJhZmZpYy5cbiIpOworCQlicm5mX2RlZmVycmVkX2hvb2tz ID0gMTsKIAl9CiAJcmV0dXJuIHRydWU7CiB9Cg== ------=_Part_17780_10220411.1198852793749 Content-Type: text/x-diff; name=add_deferred_hooks-2.6.23.patch Content-Transfer-Encoding: base64 X-Attachment-Id: f_faqtl5gc1 Content-Disposition: attachment; filename=add_deferred_hooks-2.6.23.patch SW5kZXg6IERvY3VtZW50YXRpb24vZmVhdHVyZS1yZW1vdmFsLXNjaGVkdWxlLnR4dAo9PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09Ci0tLSBhL0RvY3VtZW50YXRpb24vZmVhdHVyZS1yZW1vdmFsLXNjaGVkdWxlLnR4dAorKysg Yi9Eb2N1bWVudGF0aW9uL2ZlYXR1cmUtcmVtb3ZhbC1zY2hlZHVsZS50eHQKQEAgLTE1NCw2ICsx NTQsMjIgQEAKIAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKK1doYXQ6CUJyaWRnZSBu ZXRmaWx0ZXIgZGVmZXJyZWQgSVB2NC9JUHY2IG91dHB1dCBob29rIGNhbGxpbmcKK1doZW46CUph bnVhcnkgMjAwNworV2h5OglUaGUgZGVmZXJyZWQgb3V0cHV0IGhvb2tzIGFyZSBhIGxheWVyaW5n IHZpb2xhdGlvbiBjYXVzaW5nIHVudXN1YWwKKwlhbmQgYnJva2VuIGJlaGF2aW91ciBvbiBicmlk Z2UgZGV2aWNlcy4gRXhhbXBsZXMgb2YgdGhpbmdzIHRoZXkKKwlicmVhayBpbmNsdWRlIFFvUyBj bGFzc2lmYXRpb24gdXNpbmcgdGhlIE1BUksgb3IgQ0xBU1NJRlkgdGFyZ2V0cywKKwl0aGUgSVBz ZWMgcG9saWN5IG1hdGNoIGFuZCBjb25uZWN0aW9uIHRyYWNraW5nIHdpdGggVkxBTnMgb24gYQor CWJyaWRnZS4gVGhlaXIgb25seSB1c2UgaXMgdG8gZW5hYmxlIGJyaWRnZSBvdXRwdXQgcG9ydCBm aWx0ZXJpbmcKKwl3aXRoaW4gaXB0YWJsZXMgd2l0aCB0aGUgcGh5c2RldiBtYXRjaCwgd2hpY2gg Y2FuIGFsc28gYmUgZG9uZSBieQorCWNvbWJpbmluZyBpcHRhYmxlcyBhbmQgZWJ0YWJsZXMgdXNp bmcgbmV0ZmlsdGVyIG1hcmtzLiBVbnRpbCBpdAorCXdpbGwgZ2V0IHJlbW92ZWQgdGhlIGhvb2sg ZGVmZXJyYWwgaXMgZGlzYWJsZWQgYnkgZGVmYXVsdCBhbmQgaXMKKwlvbmx5IGVuYWJsZWQgd2hl biBuZWVkZWQuCisKK1dobzoJUGF0cmljayBNY0hhcmR5IDxrYWJlckB0cmFzaC5uZXQ+CisKKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCiBXaGF0OglQSFlTREVWUEFUSCwgUEhZU0RFVkJV UywgUEhZU0RFVkRSSVZFUiBpbiB0aGUgdWV2ZW50IGVudmlyb25tZW50CiBXaGVuOglPY3RvYmVy IDIwMDgKIFdoeToJVGhlIHN0YWNraW5nIG9mIGNsYXNzIGRldmljZXMgbWFrZXMgdGhlc2UgdmFs dWVzIG1pc2xlYWRpbmcgYW5kCkluZGV4OiBpbmNsdWRlL2xpbnV4L25ldGZpbHRlcl9icmlkZ2Uu aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09Ci0tLSBhL2luY2x1ZGUvbGludXgvbmV0ZmlsdGVyX2JyaWRnZS5oCisrKyBi L2luY2x1ZGUvbGludXgvbmV0ZmlsdGVyX2JyaWRnZS5oCkBAIC04Miw2ICs4Miw3IEBACiAJfSBk YWRkcjsKIH07CiAKK2V4dGVybiBpbnQgYnJuZl9kZWZlcnJlZF9ob29rczsKICNlbHNlCiAjZGVm aW5lIG5mX2JyaWRnZV9tYXliZV9jb3B5X2hlYWRlcihza2IpCSgwKQogI2RlZmluZSBuZl9icmlk Z2VfcGFkKHNrYikJCQkoMCkKSW5kZXg6IGluY2x1ZGUvbGludXgvbmV0ZmlsdGVyX2lwdjQuaAo9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09Ci0tLSBhL2luY2x1ZGUvbGludXgvbmV0ZmlsdGVyX2lwdjQuaAorKysgYi9pbmNs dWRlL2xpbnV4L25ldGZpbHRlcl9pcHY0LmgKQEAgLTU3LDggKzU3LDEwIEBACiAJTkZfSVBfUFJJ X1JBVyA9IC0zMDAsCiAJTkZfSVBfUFJJX1NFTElOVVhfRklSU1QgPSAtMjI1LAogCU5GX0lQX1BS SV9DT05OVFJBQ0sgPSAtMjAwLAorCU5GX0lQX1BSSV9CUklER0VfU0FCT1RBR0VfRk9SV0FSRCA9 IC0xNzUsCiAJTkZfSVBfUFJJX01BTkdMRSA9IC0xNTAsCiAJTkZfSVBfUFJJX05BVF9EU1QgPSAt MTAwLAorCU5GX0lQX1BSSV9CUklER0VfU0FCT1RBR0VfTE9DQUxfT1VUID0gLTUwLAogCU5GX0lQ X1BSSV9GSUxURVIgPSAwLAogCU5GX0lQX1BSSV9OQVRfU1JDID0gMTAwLAogCU5GX0lQX1BSSV9T RUxJTlVYX0xBU1QgPSAyMjUsCkluZGV4OiBpbmNsdWRlL2xpbnV4L25ldGZpbHRlcl9pcHY2LmgK PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQotLS0gYS9pbmNsdWRlL2xpbnV4L25ldGZpbHRlcl9pcHY2LmgKKysrIGIvaW5j bHVkZS9saW51eC9uZXRmaWx0ZXJfaXB2Ni5oCkBAIC02Miw4ICs2MiwxMCBAQAogCU5GX0lQNl9Q UklfQ09OTlRSQUNLX0RFRlJBRyA9IC00MDAsCiAJTkZfSVA2X1BSSV9TRUxJTlVYX0ZJUlNUID0g LTIyNSwKIAlORl9JUDZfUFJJX0NPTk5UUkFDSyA9IC0yMDAsCisJTkZfSVA2X1BSSV9CUklER0Vf U0FCT1RBR0VfRk9SV0FSRCA9IC0xNzUsCiAJTkZfSVA2X1BSSV9NQU5HTEUgPSAtMTUwLAogCU5G X0lQNl9QUklfTkFUX0RTVCA9IC0xMDAsCisJTkZfSVA2X1BSSV9CUklER0VfU0FCT1RBR0VfTE9D QUxfT1VUID0gLTUwLAogCU5GX0lQNl9QUklfRklMVEVSID0gMCwKIAlORl9JUDZfUFJJX05BVF9T UkMgPSAxMDAsCiAJTkZfSVA2X1BSSV9TRUxJTlVYX0xBU1QgPSAyMjUsCkluZGV4OiBuZXQvYnJp ZGdlL2JyX25ldGZpbHRlci5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGEvbmV0L2JyaWRnZS9icl9uZXRmaWx0 ZXIuYworKysgYi9uZXQvYnJpZGdlL2JyX25ldGZpbHRlci5jCkBAIC02NSw2ICs2NSw5IEBACiAj ZGVmaW5lIGJybmZfZmlsdGVyX3BwcG9lX3RhZ2dlZCAxCiAjZW5kaWYKIAoraW50IGJybmZfZGVm ZXJyZWRfaG9va3M7CitFWFBPUlRfU1lNQk9MX0dQTChicm5mX2RlZmVycmVkX2hvb2tzKTsKKwog c3RhdGljIGlubGluZSBfX2JlMTYgdmxhbl9wcm90byhjb25zdCBzdHJ1Y3Qgc2tfYnVmZiAqc2ti KQogewogCXJldHVybiB2bGFuX2V0aF9oZHIoc2tiKS0+aF92bGFuX2VuY2Fwc3VsYXRlZF9wcm90 bzsKQEAgLTY5Nyw0NyArNzAwLDExMCBAQAogCXJldHVybiBORl9TVE9MRU47CiB9CiAKLS8qIFBG X0JSSURHRS9MT0NBTF9PVVQgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioKLSAqCi0gKiBUaGlzIGZ1bmN0aW9uIHNlZXMgYm90aCBsb2NhbGx5IG9yaWdpbmF0 ZWQgSVAgcGFja2V0cyBhbmQgZm9yd2FyZGVkCisvKiBQRl9CUklER0UvTE9DQUxfT1VUICoqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworc3RhdGljIGludCBi cl9uZl9sb2NhbF9vdXRfZmluaXNoKHN0cnVjdCBza19idWZmICpza2IpCit7CisJaWYgKHNrYi0+ cHJvdG9jb2wgPT0gaHRvbnMoRVRIX1BfODAyMVEpKSB7CisJCXNrYl9wdXNoKHNrYiwgVkxBTl9I TEVOKTsKKwkJc2tiLT5uZXR3b3JrX2hlYWRlciAtPSBWTEFOX0hMRU47CisJfQorCisJTkZfSE9P S19USFJFU0goUEZfQlJJREdFLCBORl9CUl9MT0NBTF9PVVQsIHNrYiwgTlVMTCwgc2tiLT5kZXYs CisJCSAgICAgICBicl9mb3J3YXJkX2ZpbmlzaCwgTkZfQlJfUFJJX0ZJUlNUICsgMSk7CisKKwly ZXR1cm4gMDsKK30KKworLyogVGhpcyBmdW5jdGlvbiBzZWVzIGJvdGggbG9jYWxseSBvcmlnaW5h dGVkIElQIHBhY2tldHMgYW5kIGZvcndhcmRlZAogICogSVAgcGFja2V0cyAoaW4gYm90aCBjYXNl cyB0aGUgZGVzdGluYXRpb24gZGV2aWNlIGlzIGEgYnJpZGdlCiAgKiBkZXZpY2UpLiBJdCBhbHNv IHNlZXMgYnJpZGdlZC1hbmQtRE5BVCdlZCBwYWNrZXRzLgorICogVG8gYmUgYWJsZSB0byBmaWx0 ZXIgb24gdGhlIHBoeXNpY2FsIGJyaWRnZSBkZXZpY2VzICh3aXRoIHRoZSBwaHlzZGV2CisgKiBt b2R1bGUpLCB3ZSBzdGVhbCBwYWNrZXRzIGRlc3RpbmVkIHRvIGEgYnJpZGdlIGRldmljZSBhd2F5 IGZyb20gdGhlCisgKiBQRl9JTkVUL0ZPUldBUkQgYW5kIFBGX0lORVQvT1VUUFVUIGhvb2sgZnVu Y3Rpb25zLCBhbmQgZ2l2ZSB0aGVtIGJhY2sgbGF0ZXIsCisgKiB3aGVuIHdlIGhhdmUgZGV0ZXJt aW5lZCB0aGUgcmVhbCBvdXRwdXQgZGV2aWNlLiBUaGlzIGlzIGRvbmUgaW4gaGVyZS4KICAqCiAg KiBJZiAobmZfYnJpZGdlLT5tYXNrICYgQlJORl9CUklER0VEX0ROQVQpIHRoZW4gdGhlIHBhY2tl dCBpcyBicmlkZ2VkCiAgKiBhbmQgd2UgZmFrZSB0aGUgUEZfQlJJREdFL0ZPUldBUkQgaG9vay4g VGhlIGZ1bmN0aW9uIGJyX25mX2ZvcndhcmQoKQogICogd2lsbCB0aGVuIGZha2UgdGhlIFBGX0lO RVQvRk9SV0FSRCBob29rLiBicl9uZl9sb2NhbF9vdXQoKSBoYXMgcHJpb3JpdHkKICAqIE5GX0JS X1BSSV9GSVJTVCwgc28gbm8gcmVsZXZhbnQgUEZfQlJJREdFL0lOUFVUIGZ1bmN0aW9ucyBoYXZl IGJlZW4gbm9yCiAgKiB3aWxsIGJlIGV4ZWN1dGVkLgotICovCisgKiBPdGhlcndpc2UsIGlmIG5m X2JyaWRnZS0+cGh5c2luZGV2IGlzIE5VTEwsIHRoZSBicmlkZ2UtbmYgY29kZSBuZXZlciB0b3Vj aGVkCisgKiB0aGlzIHBhY2tldCBiZWZvcmUsIGFuZCBzbyB0aGUgcGFja2V0IHdhcyBsb2NhbGx5 IG9yaWdpbmF0ZWQuIFdlIGZha2UKKyAqIHRoZSBQRl9JTkVUL0xPQ0FMX09VVCBob29rLgorICog RmluYWxseSwgaWYgbmZfYnJpZGdlLT5waHlzaW5kZXYgaXNuJ3QgTlVMTCwgdGhlbiB0aGUgcGFj a2V0IHdhcyBJUCByb3V0ZWQsCisgKiBzbyB3ZSBmYWtlIHRoZSBQRl9JTkVUL0ZPUldBUkQgaG9v ay4gaXBfc2Fib3RhZ2Vfb3V0KCkgbWFrZXMgc3VyZQorICogZXZlbiByb3V0ZWQgcGFja2V0cyB0 aGF0IGRpZG4ndCBhcnJpdmUgb24gYSBicmlkZ2UgaW50ZXJmYWNlIGhhdmUgdGhlaXIKKyAqIG5m X2JyaWRnZS0+cGh5c2luZGV2IHNldC4gKi8KIHN0YXRpYyB1bnNpZ25lZCBpbnQgYnJfbmZfbG9j YWxfb3V0KHVuc2lnbmVkIGludCBob29rLCBzdHJ1Y3Qgc2tfYnVmZiAqKnBza2IsCiAJCQkJICAg IGNvbnN0IHN0cnVjdCBuZXRfZGV2aWNlICppbiwKIAkJCQkgICAgY29uc3Qgc3RydWN0IG5ldF9k ZXZpY2UgKm91dCwKIAkJCQkgICAgaW50ICgqb2tmbikoc3RydWN0IHNrX2J1ZmYgKikpCiB7Ci0J c3RydWN0IG5ldF9kZXZpY2UgKnJlYWxpbmRldjsKKwlzdHJ1Y3QgbmV0X2RldmljZSAqcmVhbGlu ZGV2LCAqcmVhbG91dGRldjsKIAlzdHJ1Y3Qgc2tfYnVmZiAqc2tiID0gKnBza2I7CiAJc3RydWN0 IG5mX2JyaWRnZV9pbmZvICpuZl9icmlkZ2U7CisJaW50IHBmOwogCiAJaWYgKCFza2ItPm5mX2Jy aWRnZSkKIAkJcmV0dXJuIE5GX0FDQ0VQVDsKIAorCWlmIChza2ItPnByb3RvY29sID09IGh0b25z KEVUSF9QX0lQKSB8fCBJU19WTEFOX0lQKHNrYikpCisJCXBmID0gUEZfSU5FVDsKKwllbHNlCisJ CXBmID0gUEZfSU5FVDY7CisKIAluZl9icmlkZ2UgPSBza2ItPm5mX2JyaWRnZTsKLQlpZiAoIShu Zl9icmlkZ2UtPm1hc2sgJiBCUk5GX0JSSURHRURfRE5BVCkpCi0JCXJldHVybiBORl9BQ0NFUFQ7 CisJbmZfYnJpZGdlLT5waHlzb3V0ZGV2ID0gc2tiLT5kZXY7CisJcmVhbGluZGV2ID0gbmZfYnJp ZGdlLT5waHlzaW5kZXY7CiAKIAkvKiBCcmlkZ2VkLCB0YWtlIFBGX0JSSURHRS9GT1JXQVJELgog CSAqIChzZWUgYmlnIG5vdGUgaW4gZnJvbnQgb2YgYnJfbmZfcHJlX3JvdXRpbmdfZmluaXNoKSAq LwotCW5mX2JyaWRnZS0+cGh5c291dGRldiA9IHNrYi0+ZGV2OwotCXJlYWxpbmRldiA9IG5mX2Jy aWRnZS0+cGh5c2luZGV2OworCWlmIChuZl9icmlkZ2UtPm1hc2sgJiBCUk5GX0JSSURHRURfRE5B VCkgeworCQlpZiAobmZfYnJpZGdlLT5tYXNrICYgQlJORl9QS1RfVFlQRSkgeworCQkJc2tiLT5w a3RfdHlwZSA9IFBBQ0tFVF9PVEhFUkhPU1Q7CisJCQluZl9icmlkZ2UtPm1hc2sgXj0gQlJORl9Q S1RfVFlQRTsKKwkJfQorCQlpZiAoc2tiLT5wcm90b2NvbCA9PSBodG9ucyhFVEhfUF84MDIxUSkp IHsKKwkJCXNrYl9wdXNoKHNrYiwgVkxBTl9ITEVOKTsKKwkJCXNrYi0+bmV0d29ya19oZWFkZXIg LT0gVkxBTl9ITEVOOworCQl9CiAKLQlpZiAobmZfYnJpZGdlLT5tYXNrICYgQlJORl9QS1RfVFlQ RSkgewotCQlza2ItPnBrdF90eXBlID0gUEFDS0VUX09USEVSSE9TVDsKLQkJbmZfYnJpZGdlLT5t YXNrIF49IEJSTkZfUEtUX1RZUEU7CisJCU5GX0hPT0soUEZfQlJJREdFLCBORl9CUl9GT1JXQVJE LCBza2IsIHJlYWxpbmRldiwKKwkJCXNrYi0+ZGV2LCBicl9mb3J3YXJkX2ZpbmlzaCk7CisJCWdv dG8gb3V0OwogCX0KLQluZl9icmlkZ2VfcHVzaF9lbmNhcF9oZWFkZXIoc2tiKTsKKwlyZWFsb3V0 ZGV2ID0gYnJpZGdlX3BhcmVudChza2ItPmRldik7CisJaWYgKCFyZWFsb3V0ZGV2KQorCQlyZXR1 cm4gTkZfRFJPUDsKKworI2lmIGRlZmluZWQoQ09ORklHX1ZMQU5fODAyMVEpIHx8IGRlZmluZWQo Q09ORklHX1ZMQU5fODAyMVFfTU9EVUxFKQorCS8qIGlwdGFibGVzIHNob3VsZCBtYXRjaCAtbyBi cjAueCAqLworCWlmIChuZl9icmlkZ2UtPm5ldG91dGRldikKKwkJcmVhbG91dGRldiA9IG5mX2Jy aWRnZS0+bmV0b3V0ZGV2OworI2VuZGlmCisJaWYgKHNrYi0+cHJvdG9jb2wgPT0gaHRvbnMoRVRI X1BfODAyMVEpKSB7CisJCXNrYl9wdWxsKHNrYiwgVkxBTl9ITEVOKTsKKwkJc2tiLT5uZXR3b3Jr X2hlYWRlciArPSBWTEFOX0hMRU47CisJfQorCS8qIElQIGZvcndhcmRlZCB0cmFmZmljIGhhcyBh IHBoeXNpbmRldiwgbG9jYWxseQorCSAqIGdlbmVyYXRlZCB0cmFmZmljIGhhc24ndC4gKi8KKwlp ZiAocmVhbGluZGV2ICE9IE5VTEwpIHsKKwkJaWYgKCEobmZfYnJpZGdlLT5tYXNrICYgQlJORl9E T05UX1RBS0VfUEFSRU5UKSkgeworCQkJc3RydWN0IG5ldF9kZXZpY2UgKnBhcmVudCA9IGJyaWRn ZV9wYXJlbnQocmVhbGluZGV2KTsKKwkJCWlmIChwYXJlbnQpCisJCQkJcmVhbGluZGV2ID0gcGFy ZW50OworCQl9CiAKLQlORl9IT09LKFBGX0JSSURHRSwgTkZfQlJfRk9SV0FSRCwgc2tiLCByZWFs aW5kZXYsIHNrYi0+ZGV2LAotCQlicl9mb3J3YXJkX2ZpbmlzaCk7CisJCU5GX0hPT0tfVEhSRVNI KHBmLCBORl9JUF9GT1JXQVJELCBza2IsIHJlYWxpbmRldiwKKwkJCSAgICAgICByZWFsb3V0ZGV2 LCBicl9uZl9sb2NhbF9vdXRfZmluaXNoLAorCQkJICAgICAgIE5GX0lQX1BSSV9CUklER0VfU0FC T1RBR0VfRk9SV0FSRCArIDEpOworCX0gZWxzZSB7CisJCU5GX0hPT0tfVEhSRVNIKHBmLCBORl9J UF9MT0NBTF9PVVQsIHNrYiwgcmVhbGluZGV2LAorCQkJICAgICAgIHJlYWxvdXRkZXYsIGJyX25m X2xvY2FsX291dF9maW5pc2gsCisJCQkgICAgICAgTkZfSVBfUFJJX0JSSURHRV9TQUJPVEFHRV9M T0NBTF9PVVQgKyAxKTsKKwl9CisKK291dDoKIAlyZXR1cm4gTkZfU1RPTEVOOwogfQogCkBAIC04 NDEsNiArOTA3LDY5IEBACiAJcmV0dXJuIE5GX0FDQ0VQVDsKIH0KIAorLyogUG9zdHBvbmUgZXhl Y3V0aW9uIG9mIFBGX0lORVQoNikvRk9SV0FSRCwgUEZfSU5FVCg2KS9MT0NBTF9PVVQKKyAqIGFu ZCBQRl9JTkVUKDYpL1BPU1RfUk9VVElORyB1bnRpbCB3ZSBoYXZlIGRvbmUgdGhlIGZvcndhcmRp bmcKKyAqIGRlY2lzaW9uIGluIHRoZSBicmlkZ2UgY29kZSBhbmQgaGF2ZSBkZXRlcm1pbmVkIG5m X2JyaWRnZS0+cGh5c291dGRldi4gKi8KK3N0YXRpYyB1bnNpZ25lZCBpbnQgaXBfc2Fib3RhZ2Vf b3V0KHVuc2lnbmVkIGludCBob29rLCBzdHJ1Y3Qgc2tfYnVmZiAqKnBza2IsCisJCQkJICAgIGNv bnN0IHN0cnVjdCBuZXRfZGV2aWNlICppbiwKKwkJCQkgICAgY29uc3Qgc3RydWN0IG5ldF9kZXZp Y2UgKm91dCwKKwkJCQkgICAgaW50ICgqb2tmbikoc3RydWN0IHNrX2J1ZmYgKikpCit7CisJc3Ry dWN0IHNrX2J1ZmYgKnNrYiA9ICpwc2tiOworCisJaWYgKChvdXQtPmhhcmRfc3RhcnRfeG1pdCA9 PSBicl9kZXZfeG1pdCAmJgorCSAgICAgb2tmbiAhPSBicl9uZl9mb3J3YXJkX2ZpbmlzaCAmJgor CSAgICAgb2tmbiAhPSBicl9uZl9sb2NhbF9vdXRfZmluaXNoICYmIG9rZm4gIT0gYnJfbmZfZGV2 X3F1ZXVlX3htaXQpCisjaWYgZGVmaW5lZChDT05GSUdfVkxBTl84MDIxUSkgfHwgZGVmaW5lZChD T05GSUdfVkxBTl84MDIxUV9NT0RVTEUpCisJICAgIHx8ICgob3V0LT5wcml2X2ZsYWdzICYgSUZG XzgwMl8xUV9WTEFOKSAmJgorCQlWTEFOX0RFVl9JTkZPKG91dCktPnJlYWxfZGV2LT5oYXJkX3N0 YXJ0X3htaXQgPT0gYnJfZGV2X3htaXQpCisjZW5kaWYKKwkgICAgKSB7CisJCXN0cnVjdCBuZl9i cmlkZ2VfaW5mbyAqbmZfYnJpZGdlOworCisJCWlmICghc2tiLT5uZl9icmlkZ2UpIHsKKyNpZmRl ZiBDT05GSUdfU1lTQ1RMCisJCQkvKiBUaGlzIGNvZGUgaXMgZXhlY3V0ZWQgd2hpbGUgaW4gdGhl IElQKHY2KSBzdGFjaywKKwkJCSAgIHRoZSB2ZXJzaW9uIHNob3VsZCBiZSA0IG9yIDYuIFdlIGNh bid0IHVzZQorCQkJICAgc2tiLT5wcm90b2NvbCBiZWNhdXNlIHRoYXQgaXNuJ3Qgc2V0IG9uCisJ CQkgICBQRl9JTkVUKDYpL0xPQ0FMX09VVC4gKi8KKwkJCXN0cnVjdCBpcGhkciAqaXAgPSBpcF9o ZHIoc2tiKTsKKworCQkJaWYgKGlwLT52ZXJzaW9uID09IDQgJiYgIWJybmZfY2FsbF9pcHRhYmxl cykKKwkJCQlyZXR1cm4gTkZfQUNDRVBUOworCQkJZWxzZSBpZiAoaXAtPnZlcnNpb24gPT0gNiAm JiAhYnJuZl9jYWxsX2lwNnRhYmxlcykKKwkJCQlyZXR1cm4gTkZfQUNDRVBUOworCQkJZWxzZSBp ZiAoIWJybmZfZGVmZXJyZWRfaG9va3MpCisJCQkJcmV0dXJuIE5GX0FDQ0VQVDsKKyNlbmRpZgor CQkJaWYgKGhvb2sgPT0gTkZfSVBfUE9TVF9ST1VUSU5HKQorCQkJCXJldHVybiBORl9BQ0NFUFQ7 CisJCQlpZiAoIW5mX2JyaWRnZV9hbGxvYyhza2IpKQorCQkJCXJldHVybiBORl9EUk9QOworCQl9 CisKKwkJbmZfYnJpZGdlID0gc2tiLT5uZl9icmlkZ2U7CisKKwkJLyogVGhpcyBmcmFtZSB3aWxs IGFycml2ZSBvbiBQRl9CUklER0UvTE9DQUxfT1VUIGFuZCB3ZQorCQkgKiB3aWxsIG5lZWQgdGhl IGluZGV2IHRoZW4uIEZvciBhIGJyb3V0ZXIsIHRoZSByZWFsIGluZGV2CisJCSAqIGNhbiBiZSBh IGJyaWRnZSBwb3J0LCBzbyB3ZSBtYWtlIHN1cmUgYnJfbmZfbG9jYWxfb3V0KCkKKwkJICogZG9l c24ndCB1c2UgdGhlIGJyaWRnZSBwYXJlbnQgb2YgdGhlIGluZGV2IGJ5IHVzaW5nCisJCSAqIHRo ZSBCUk5GX0RPTlRfVEFLRV9QQVJFTlQgbWFzay4gKi8KKwkJaWYgKGhvb2sgPT0gTkZfSVBfRk9S V0FSRCAmJiBuZl9icmlkZ2UtPnBoeXNpbmRldiA9PSBOVUxMKSB7CisJCQluZl9icmlkZ2UtPm1h c2sgfD0gQlJORl9ET05UX1RBS0VfUEFSRU5UOworCQkJbmZfYnJpZGdlLT5waHlzaW5kZXYgPSAo c3RydWN0IG5ldF9kZXZpY2UgKilpbjsKKwkJfQorI2lmIGRlZmluZWQoQ09ORklHX1ZMQU5fODAy MVEpIHx8IGRlZmluZWQoQ09ORklHX1ZMQU5fODAyMVFfTU9EVUxFKQorCQkvKiB0aGUgaXB0YWJs ZXMgb3V0ZGV2IGlzIGJyMC54LCBub3QgYnIwICovCisJCWlmIChvdXQtPnByaXZfZmxhZ3MgJiBJ RkZfODAyXzFRX1ZMQU4pCisJCQluZl9icmlkZ2UtPm5ldG91dGRldiA9IChzdHJ1Y3QgbmV0X2Rl dmljZSAqKW91dDsKKyNlbmRpZgorCQlyZXR1cm4gTkZfU1RPUDsKKwl9CisKKwlyZXR1cm4gTkZf QUNDRVBUOworfQorCiAvKiBGb3IgYnJfbmZfbG9jYWxfb3V0IHdlIG5lZWQgKHByaW8gPSBORl9C Ul9QUklfRklSU1QpLCB0byBpbnN1cmUgdGhhdCBpbm5vY2VudAogICogUEZfQlJJREdFL05GX0JS X0xPQ0FMX09VVCBmdW5jdGlvbnMgZG9uJ3QgZ2V0IGJyaWRnZWQgdHJhZmZpYyBhcyBpbnB1dC4K ICAqIEZvciBicl9uZl9wb3N0X3JvdXRpbmcsIHdlIG5lZWQgKHByaW8gPSBORl9CUl9QUklfTEFT VCksIGJlY2F1c2UKQEAgLTg4Niw2ICsxMDEzLDM2IEBACiAJICAucGYgPSBQRl9JTkVUNiwKIAkg IC5ob29rbnVtID0gTkZfSVA2X1BSRV9ST1VUSU5HLAogCSAgLnByaW9yaXR5ID0gTkZfSVA2X1BS SV9GSVJTVCwgfSwKKwl7IC5ob29rID0gaXBfc2Fib3RhZ2Vfb3V0LAorCSAgLm93bmVyID0gVEhJ U19NT0RVTEUsCisJICAucGYgPSBQRl9JTkVULAorCSAgLmhvb2tudW0gPSBORl9JUF9GT1JXQVJE LAorCSAgLnByaW9yaXR5ID0gTkZfSVBfUFJJX0JSSURHRV9TQUJPVEFHRV9GT1JXQVJELCB9LAor CXsgLmhvb2sgPSBpcF9zYWJvdGFnZV9vdXQsCisJICAub3duZXIgPSBUSElTX01PRFVMRSwKKwkg IC5wZiA9IFBGX0lORVQ2LAorCSAgLmhvb2tudW0gPSBORl9JUDZfRk9SV0FSRCwKKwkgIC5wcmlv cml0eSA9IE5GX0lQNl9QUklfQlJJREdFX1NBQk9UQUdFX0ZPUldBUkQsIH0sCisJeyAuaG9vayA9 IGlwX3NhYm90YWdlX291dCwKKwkgIC5vd25lciA9IFRISVNfTU9EVUxFLAorCSAgLnBmID0gUEZf SU5FVCwKKwkgIC5ob29rbnVtID0gTkZfSVBfTE9DQUxfT1VULAorCSAgLnByaW9yaXR5ID0gTkZf SVBfUFJJX0JSSURHRV9TQUJPVEFHRV9MT0NBTF9PVVQsIH0sCisJeyAuaG9vayA9IGlwX3NhYm90 YWdlX291dCwKKwkgIC5vd25lciA9IFRISVNfTU9EVUxFLAorCSAgLnBmID0gUEZfSU5FVDYsCisJ ICAuaG9va251bSA9IE5GX0lQNl9MT0NBTF9PVVQsCisJICAucHJpb3JpdHkgPSBORl9JUDZfUFJJ X0JSSURHRV9TQUJPVEFHRV9MT0NBTF9PVVQsIH0sCisJeyAuaG9vayA9IGlwX3NhYm90YWdlX291 dCwKKwkgIC5vd25lciA9IFRISVNfTU9EVUxFLAorCSAgLnBmID0gUEZfSU5FVCwKKwkgIC5ob29r bnVtID0gTkZfSVBfUE9TVF9ST1VUSU5HLAorCSAgLnByaW9yaXR5ID0gTkZfSVBfUFJJX0ZJUlNU LCB9LAorCXsgLmhvb2sgPSBpcF9zYWJvdGFnZV9vdXQsCisJICAub3duZXIgPSBUSElTX01PRFVM RSwKKwkgIC5wZiA9IFBGX0lORVQ2LAorCSAgLmhvb2tudW0gPSBORl9JUDZfUE9TVF9ST1VUSU5H LAorCSAgLnByaW9yaXR5ID0gTkZfSVA2X1BSSV9GSVJTVCwgfSwKIH07CiAKICNpZmRlZiBDT05G SUdfU1lTQ1RMCkluZGV4OiBuZXQvbmV0ZmlsdGVyL3h0X3BoeXNkZXYuYwo9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t LSBhL25ldC9uZXRmaWx0ZXIveHRfcGh5c2Rldi5jCisrKyBiL25ldC9uZXRmaWx0ZXIveHRfcGh5 c2Rldi5jCkBAIC0xMTAsMTYgKzExMCwyMCBAQAogCWlmICghKGluZm8tPmJpdG1hc2sgJiBYVF9Q SFlTREVWX09QX01BU0spIHx8CiAJICAgIGluZm8tPmJpdG1hc2sgJiB+WFRfUEhZU0RFVl9PUF9N QVNLKQogCQlyZXR1cm4gZmFsc2U7Ci0JaWYgKGluZm8tPmJpdG1hc2sgJiBYVF9QSFlTREVWX09Q X09VVCAmJgorCWlmIChicm5mX2RlZmVycmVkX2hvb2tzID09IDAgJiYKKwkgICAgaW5mby0+Yml0 bWFzayAmIFhUX1BIWVNERVZfT1BfT1VUICYmCiAJICAgICghKGluZm8tPmJpdG1hc2sgJiBYVF9Q SFlTREVWX09QX0JSSURHRUQpIHx8CiAJICAgICBpbmZvLT5pbnZlcnQgJiBYVF9QSFlTREVWX09Q X0JSSURHRUQpICYmCiAJICAgIGhvb2tfbWFzayAmICgoMSA8PCBORl9JUF9MT0NBTF9PVVQpIHwg KDEgPDwgTkZfSVBfRk9SV0FSRCkgfAogCQkJICgxIDw8IE5GX0lQX1BPU1RfUk9VVElORykpKSB7 CiAJCXByaW50ayhLRVJOX1dBUk5JTkcgInBoeXNkZXYgbWF0Y2g6IHVzaW5nIC0tcGh5c2Rldi1v dXQgaW4gdGhlICIKIAkJICAgICAgICJPVVRQVVQsIEZPUldBUkQgYW5kIFBPU1RST1VUSU5HIGNo YWlucyBmb3Igbm9uLWJyaWRnZWQgIgotCQkgICAgICAgInRyYWZmaWMgaXMgbm90IHN1cHBvcnRl ZCBhbnltb3JlLlxuIik7Ci0JCWlmIChob29rX21hc2sgJiAoMSA8PCBORl9JUF9MT0NBTF9PVVQp KQotCQkJcmV0dXJuIGZhbHNlOworCQkgICAgICAgInRyYWZmaWMgaXMgZGVwcmVjYXRlZCBhbmQg YnJlYWtzIG90aGVyIHRoaW5ncywgaXQgd2lsbCAiCisJCSAgICAgICAiYmUgcmVtb3ZlZCBpbiBK YW51YXJ5IDIwMDcuIFNlZSBEb2N1bWVudGF0aW9uLyIKKwkJICAgICAgICJmZWF0dXJlLXJlbW92 YWwtc2NoZWR1bGUudHh0IGZvciBkZXRhaWxzLiBUaGlzIGRvZXNuJ3QgIgorCQkgICAgICAgImFm ZmVjdCB5b3UgaW4gY2FzZSB5b3UncmUgdXNpbmcgaXQgZm9yIHB1cmVseSBicmlkZ2VkICIKKwkJ ICAgICAgICJ0cmFmZmljLlxuIik7CisJCWJybmZfZGVmZXJyZWRfaG9va3MgPSAxOwogCX0KIAly ZXR1cm4gdHJ1ZTsKIH0K ------=_Part_17780_10220411.1198852793749--