From owner-freebsd-embedded@freebsd.org Wed Dec 28 18:22:20 2016 Return-Path: Delivered-To: freebsd-embedded@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id A006AC95FF4 for ; Wed, 28 Dec 2016 18:22:20 +0000 (UTC) (envelope-from ian@freebsd.org) Received: from pmta2.delivery6.ore.mailhop.org (pmta2.delivery6.ore.mailhop.org [54.200.129.228]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 75E4114CF for ; Wed, 28 Dec 2016 18:22:20 +0000 (UTC) (envelope-from ian@freebsd.org) X-MHO-User: 63e47ee2-cd2a-11e6-acc0-c7e6c9ad01d6 X-Report-Abuse-To: https://support.duocircle.com/support/solutions/articles/5000540958-duocircle-standard-smtp-abuse-information X-Originating-IP: 73.78.92.27 X-Mail-Handler: DuoCircle Outbound SMTP Received: from ilsoft.org (unknown [73.78.92.27]) by outbound2.ore.mailhop.org (Halon) with ESMTPSA id 63e47ee2-cd2a-11e6-acc0-c7e6c9ad01d6; Wed, 28 Dec 2016 18:21:03 +0000 (UTC) Received: from rev (rev [172.22.42.240]) by ilsoft.org (8.15.2/8.15.2) with ESMTP id uBSIL8sH006663; Wed, 28 Dec 2016 11:21:10 -0700 (MST) (envelope-from ian@freebsd.org) Message-ID: <1482949268.16152.7.camel@freebsd.org> Subject: Re: SV: A few questions about SD/MMC drivers From: Ian Lepore To: tony moseby Cc: "freebsd-embedded@freebsd.org" Date: Wed, 28 Dec 2016 11:21:08 -0700 In-Reply-To: <2053136483.1957700.1482528343527@mail.yahoo.com> References: <2053136483.1957700.1482528343527.ref@mail.yahoo.com> <2053136483.1957700.1482528343527@mail.yahoo.com> Content-Type: multipart/mixed; boundary="=-Gd0SewW8hep9THAfDP/4" X-Mailer: Evolution 3.18.5.1 FreeBSD GNOME Team Port Mime-Version: 1.0 X-BeenThere: freebsd-embedded@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Dedicated and Embedded Systems List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 28 Dec 2016 18:22:20 -0000 --=-Gd0SewW8hep9THAfDP/4 Content-Type: text/plain; charset="ISO-8859-1" Content-Transfer-Encoding: 8bit [trimming the CC list to just the poster and the embedded list] On Fri, 2016-12-23 at 21:25 +0000, tony moseby via freebsd-embedded wrote: > Hello Ian, > I can read that you have been involved in a similar problem that I am > facing now.I am running FreeBSD 8.2 and a armv5TE (marvel mv78100), I > have an ssd disk(4Giga).While running the system and doing disk > acesses  after sometime (can be days or at least several hours)the > system total freezes.Serial port freezes and  ethernet freezes.(just > internal connections, no public). > If I do not use the disk, this(the freeze) do not occur.My watchdog > is disabled , so I am suspecting that the kernel crashes and that is > the cause of the freeze.I connected an emulator to  the board, but > whenever the freeze occur,the emulator looses also contactwith the > CPU.I have tested to do a lot of read/write towards the ssd,often > this also causes freeze, but for a coupleof times I can see the > kernel crashing with alignment fault 1.Do you have any > ideas?ThanksBR/T > > We use 8.2 on a marvel Kirkwood 88F6281 at $work.  I've used it with an ssd connected by usb, and connected by eSata, and have not seen the problem you report, even when using Poudriere to build packages on that machine, which uses the ssd drive for 18+ hours nonstop. But I have seen the problem you report on every version of freebsd later than 8.2 on armv4 and armv5 systems (which is why we still use 8.2 at work).  Our 8.2 isn't stock, we've pulled dozens of fixes from later versions of freebsd into our repo.  I suppose that one of those fixes might have helped the problem, but figuring out which one is probably impossible. I also spent many hours trying to get freebsd 10 and/or 11 to work reliably on armv4/v5 without alignment faults related to disk IO, and failed to ever track down what part of the system is using an unaligned buffer.  It may be that the real problem isn't a simple unaligned buffer, but maybe a wild pointer or other programming error. An interesting thing to try is building the kernel with option  ARM9_CACHE_WRITE_THROUGH.  We don't routinely do that, but when that option makes a problem stop happening, that's a strong clue that busdma cache coherency is part of the problem. Another kernel option that you should be using if you use USB is   option USB_HOST_ALIGN=32 I've looked through all the fixes we've applied locally to 8.2 and found some that are likely to be related to alignment faults, or should just be helpful to anyone running armv5 on 8.2.  I'm attaching a set of patches for you, maybe some or all of these will help your situation.  Our starting snapshot that all these patches are based on is stable-8 at r223364. -- Ian --=-Gd0SewW8hep9THAfDP/4 Content-Disposition: attachment; filename="busdma_intr.diff" Content-Type: text/x-patch; name="busdma_intr.diff"; charset="us-ascii" Content-Transfer-Encoding: base64 IyBOb3RlIHRoYXQgdGhlcmUgYXJlIG11bHRpcGxlIHNlcGFyYXRlIHBhdGNoZXMgaW4gdGhpcyBm aWxlLgojCiMgSEcgY2hhbmdlc2V0IHBhdGNoCiMgVXNlciBJYW4gTGVwb3JlCiMgRGF0ZSAxMzEy MzA5NjEzIDIxNjAwCiMgICAgICBUdWUgQXVnIDAyIDEyOjI2OjUzIDIwMTEgLTA2MDAKIyBOb2Rl IElEIGM1YzUxODZlZjRiMmJmNzc1Yjc3ODNkOTY2NTU0Mzc2OGZhZDVjZDMKRGlzYWJsZSBpbnRl cnJ1cHRzIHdoaWxlIHBlcmZvcm1pbmcgYnVzZG1hIGJ1ZmZlciBzeW5jIG9wZXJhdGlvbnMuCgpk aWZmIC1yIDE4ZDUxNjY2NTlhYSAtciBjNWM1MTg2ZWY0YjIgc3lzL2FybS9hcm0vYnVzZG1hX21h Y2hkZXAuYwotLS0gYS9zeXMvYXJtL2FybS9idXNkbWFfbWFjaGRlcC5jCVR1ZSBBdWcgMDIgMDk6 NTU6NTAgMjAxMSAtMDYwMAorKysgYi9zeXMvYXJtL2FybS9idXNkbWFfbWFjaGRlcC5jCVR1ZSBB dWcgMDIgMTI6MjY6NTMgMjAxMSAtMDYwMApAQCAtMTA5MSw2ICsxMDkxLDE0IEBAIHN0YXRpYyB2 b2lkCiBidXNfZG1hbWFwX3N5bmNfYnVmKHZvaWQgKmJ1ZiwgaW50IGxlbiwgYnVzX2RtYXN5bmNf b3BfdCBvcCkKIHsKIAljaGFyIF90bXBfY2xbYXJtX2RjYWNoZV9hbGlnbl0sIF90bXBfY2xlbmRb YXJtX2RjYWNoZV9hbGlnbl07CisJdWludDMyX3QgaW50cjsKKworICAgICAgICAvKiBJbnRlcnJ1 cHRzIE1VU1QgYmUgZGlzYWJsZWQgd2hlbiBoYW5kbGluZyBwYXJ0aWFsIGNhY2hlbGluZSBmbHVz aAorICAgICAgICAgKiBhbmQgbW9zdCBsaWtlbHkgc2hvdWxkIGJlIGRpc2FibGVkIGZvciBhbGwg Zmx1c2hlcy4gIChJIGtub3cgZm9yCisgICAgICAgICAqIGNlcnRhaW4gaW50ZXJydXB0cyBjYW4g Y2F1c2UgZmFpbHVyZXMgb24gcGFydGlhbCBmbHVzaGVzLCBhbmQgc3VzcGVjdAorICAgICAgICAg KiBwcm9ibGVtcyBjb3VsZCBhbHNvIGhhcHBlbiBpbiBvdGhlciBzY2VuYXJpb3MuKQorICAgICAg ICAgKi8KKwlpbnRyID0gaW50cl9kaXNhYmxlKCk7CiAKIAlpZiAoKG9wICYgQlVTX0RNQVNZTkNf UFJFV1JJVEUpICYmICEob3AgJiBCVVNfRE1BU1lOQ19QUkVSRUFEKSkgewogCQljcHVfZGNhY2hl X3diX3JhbmdlKCh2bV9vZmZzZXRfdClidWYsIGxlbik7CkBAIC0xMTI5LDYgKzExMzcsOCBAQCBi dXNfZG1hbWFwX3N5bmNfYnVmKHZvaWQgKmJ1ZiwgaW50IGxlbiwgCiAJCQkgICAgYXJtX2RjYWNo ZV9hbGlnbiAtICgoKHZtX29mZnNldF90KShidWYpICsgbGVuKSAmCiAJCQkgICBhcm1fZGNhY2hl X2FsaWduX21hc2spKTsKIAl9CisKKwlpbnRyX3Jlc3RvcmUoaW50cik7CiB9CiAKIHN0YXRpYyB2 b2lkCiMgSEcgY2hhbmdlc2V0IHBhdGNoCiMgVXNlciBJYW4gTGVwb3JlCiMgRGF0ZSAxMzE1MzQx MjYyIDIxNjAwCiMgICAgICBUdWUgU2VwIDA2IDE0OjM0OjIyIDIwMTEgLTA2MDAKIyBOb2RlIElE IDQ4ZTczOGJlOGYxYTA2YmY1MmVhNmM2NGQyYzM5MDJkZDI0NDU0N2EKV2hlbiBwZXJmb3JtaW5n IGEgY2FjaGUgc3luYywgb25seSBkaXNhYmxlIGludGVycnVwdHMgaWYgdGhlcmUncyBhIHBhcnRp YWwKY2FjaGVsaW5lIGZsdXNoIGludm9sdmVkLgoKZGlmZiAtciBmY2JiYTI0ZGUxNDcgLXIgNDhl NzM4YmU4ZjFhIHN5cy9hcm0vYXJtL2J1c2RtYV9tYWNoZGVwLmMKLS0tIGEvc3lzL2FybS9hcm0v YnVzZG1hX21hY2hkZXAuYwlTYXQgU2VwIDAzIDA5OjQ1OjAxIDIwMTEgLTA2MDAKKysrIGIvc3lz L2FybS9hcm0vYnVzZG1hX21hY2hkZXAuYwlUdWUgU2VwIDA2IDE0OjM0OjIyIDIwMTEgLTA2MDAK QEAgLTEwOTEsMTQgKzEwOTEsNiBAQCBzdGF0aWMgdm9pZAogYnVzX2RtYW1hcF9zeW5jX2J1Zih2 b2lkICpidWYsIGludCBsZW4sIGJ1c19kbWFzeW5jX29wX3Qgb3ApCiB7CiAJY2hhciBfdG1wX2Ns W2FybV9kY2FjaGVfYWxpZ25dLCBfdG1wX2NsZW5kW2FybV9kY2FjaGVfYWxpZ25dOwotCXVpbnQz Ml90IGludHI7Ci0KLSAgICAgICAgLyogSW50ZXJydXB0cyBNVVNUIGJlIGRpc2FibGVkIHdoZW4g aGFuZGxpbmcgcGFydGlhbCBjYWNoZWxpbmUgZmx1c2gKLSAgICAgICAgICogYW5kIG1vc3QgbGlr ZWx5IHNob3VsZCBiZSBkaXNhYmxlZCBmb3IgYWxsIGZsdXNoZXMuICAoSSBrbm93IGZvcgotICAg ICAgICAgKiBjZXJ0YWluIGludGVycnVwdHMgY2FuIGNhdXNlIGZhaWx1cmVzIG9uIHBhcnRpYWwg Zmx1c2hlcywgYW5kIHN1c3BlY3QKLSAgICAgICAgICogcHJvYmxlbXMgY291bGQgYWxzbyBoYXBw ZW4gaW4gb3RoZXIgc2NlbmFyaW9zLikKLSAgICAgICAgICovCi0JaW50ciA9IGludHJfZGlzYWJs ZSgpOwogCiAJaWYgKChvcCAmIEJVU19ETUFTWU5DX1BSRVdSSVRFKSAmJiAhKG9wICYgQlVTX0RN QVNZTkNfUFJFUkVBRCkpIHsKIAkJY3B1X2RjYWNoZV93Yl9yYW5nZSgodm1fb2Zmc2V0X3QpYnVm LCBsZW4pOwpAQCAtMTExNCwzMSArMTEwNiw0NSBAQCBidXNfZG1hbWFwX3N5bmNfYnVmKHZvaWQg KmJ1ZiwgaW50IGxlbiwgCiAJICAgIAkJY3B1X2wyY2FjaGVfd2JpbnZfcmFuZ2UoKHZtX29mZnNl dF90KWJ1ZiwgbGVuKTsKIAkJfQogCX0KKwkvKgorCSAqIEludGVycnVwdHMgbXVzdCBiZSBkaXNh YmxlZCBpZiBoYW5kbGluZyBhIHBhcnRpYWwgY2FjaGVsaW5lIGZsdXNoLAorCSAqIG90aGVyd2lz ZSB0aGUgaW50ZXJydXB0IGhhbmRsaW5nIGNvZGUgY291bGQgbW9kaWZ5IGRhdGEgaW4gdGhlCisJ ICogbm9uLURNQSBwYXJ0IG9mIGEgY2FjaGVsaW5lIHdoaWxlIHdlIGhhdmUgaXQgc3Rhc2hlZCBh d2F5IGluIHRoZQorCSAqIHRlbXBvcmFyeSBzdGFjayBidWZmZXIsIHRoZW4gd2UgZW5kIHVwIHJl c3RvcmluZyB0aGUgc3RhbGUgdmFsdWUuIEFzCisJICogdW5saWtlbHkgYXMgdGhpcyBzZWVtcywg aXQgaGFzIGJlZW4gb2JzZXJ2ZWQgaW4gdGhlIHJlYWwgd29ybGQuCisJICovCiAJaWYgKG9wICYg QlVTX0RNQVNZTkNfUE9TVFJFQUQpIHsKLQkJaWYgKCh2bV9vZmZzZXRfdClidWYgJiBhcm1fZGNh Y2hlX2FsaWduX21hc2spIHsKLQkJCW1lbWNweShfdG1wX2NsLCAodm9pZCAqKSgodm1fb2Zmc2V0 X3QpYnVmICYgfgotCQkJICAgIGFybV9kY2FjaGVfYWxpZ25fbWFzayksCi0JCQkgICAgKHZtX29m ZnNldF90KWJ1ZiAmIGFybV9kY2FjaGVfYWxpZ25fbWFzayk7Ci0JCX0KLQkJaWYgKCgodm1fb2Zm c2V0X3QpYnVmICsgbGVuKSAmIGFybV9kY2FjaGVfYWxpZ25fbWFzaykgewotCQkJbWVtY3B5KF90 bXBfY2xlbmQsICh2b2lkICopKCh2bV9vZmZzZXRfdClidWYgKyBsZW4pLAotCQkJICAgIGFybV9k Y2FjaGVfYWxpZ24gLSAoKCh2bV9vZmZzZXRfdCkoYnVmKSArIGxlbikgJgotCQkJICAgYXJtX2Rj YWNoZV9hbGlnbl9tYXNrKSk7CisJCXVpbnQzMl90IGludHI7CisJCWludCBwYXJ0aWFsID0gKCgo dm1fb2Zmc2V0X3QpYnVmKSB8IGxlbikgJiBhcm1fZGNhY2hlX2FsaWduX21hc2s7CisKKwkJaWYg KHBhcnRpYWwpIHsKKwkJCWludHIgPSBpbnRyX2Rpc2FibGUoKTsKKwkJCWlmICgodm1fb2Zmc2V0 X3QpYnVmICYgYXJtX2RjYWNoZV9hbGlnbl9tYXNrKSB7CisJCQkJbWVtY3B5KF90bXBfY2wsICh2 b2lkICopKCh2bV9vZmZzZXRfdClidWYgJiB+CisJCQkJICAgIGFybV9kY2FjaGVfYWxpZ25fbWFz ayksCisJCQkJICAgICh2bV9vZmZzZXRfdClidWYgJiBhcm1fZGNhY2hlX2FsaWduX21hc2spOwor CQkJfQorCQkJaWYgKCgodm1fb2Zmc2V0X3QpYnVmICsgbGVuKSAmIGFybV9kY2FjaGVfYWxpZ25f bWFzaykgeworCQkJCW1lbWNweShfdG1wX2NsZW5kLCAodm9pZCAqKSgodm1fb2Zmc2V0X3QpYnVm ICsgbGVuKSwKKwkJCQkgICAgYXJtX2RjYWNoZV9hbGlnbiAtICgoKHZtX29mZnNldF90KShidWYp ICsgbGVuKSAmCisJCQkJICAgIGFybV9kY2FjaGVfYWxpZ25fbWFzaykpOworCQkJfQogCQl9CiAJ CWNwdV9kY2FjaGVfaW52X3JhbmdlKCh2bV9vZmZzZXRfdClidWYsIGxlbik7CiAJCWNwdV9sMmNh Y2hlX2ludl9yYW5nZSgodm1fb2Zmc2V0X3QpYnVmLCBsZW4pOwogCi0JCWlmICgodm1fb2Zmc2V0 X3QpYnVmICYgYXJtX2RjYWNoZV9hbGlnbl9tYXNrKQotCQkJbWVtY3B5KCh2b2lkICopKCh2bV9v ZmZzZXRfdClidWYgJgotCQkJICAgIH5hcm1fZGNhY2hlX2FsaWduX21hc2spLCBfdG1wX2NsLCAK LQkJCSAgICAodm1fb2Zmc2V0X3QpYnVmICYgYXJtX2RjYWNoZV9hbGlnbl9tYXNrKTsKLQkJaWYg KCgodm1fb2Zmc2V0X3QpYnVmICsgbGVuKSAmIGFybV9kY2FjaGVfYWxpZ25fbWFzaykKLQkJCW1l bWNweSgodm9pZCAqKSgodm1fb2Zmc2V0X3QpYnVmICsgbGVuKSwgX3RtcF9jbGVuZCwKLQkJCSAg ICBhcm1fZGNhY2hlX2FsaWduIC0gKCgodm1fb2Zmc2V0X3QpKGJ1ZikgKyBsZW4pICYKLQkJCSAg IGFybV9kY2FjaGVfYWxpZ25fbWFzaykpOworCQlpZiAocGFydGlhbCkgeworCQkJaWYgKCh2bV9v ZmZzZXRfdClidWYgJiBhcm1fZGNhY2hlX2FsaWduX21hc2spCisJCQkJbWVtY3B5KCh2b2lkICop KCh2bV9vZmZzZXRfdClidWYgJgorCQkJCSAgICB+YXJtX2RjYWNoZV9hbGlnbl9tYXNrKSwgX3Rt cF9jbCwgCisJCQkJICAgICh2bV9vZmZzZXRfdClidWYgJiBhcm1fZGNhY2hlX2FsaWduX21hc2sp OworCQkJaWYgKCgodm1fb2Zmc2V0X3QpYnVmICsgbGVuKSAmIGFybV9kY2FjaGVfYWxpZ25fbWFz aykKKwkJCQltZW1jcHkoKHZvaWQgKikoKHZtX29mZnNldF90KWJ1ZiArIGxlbiksIF90bXBfY2xl bmQsCisJCQkJICAgIGFybV9kY2FjaGVfYWxpZ24gLSAoKCh2bV9vZmZzZXRfdCkoYnVmKSArIGxl bikgJgorCQkJCSAgICBhcm1fZGNhY2hlX2FsaWduX21hc2spKTsKKwkJCWludHJfcmVzdG9yZShp bnRyKTsKKwkJfQogCX0KLQotCWludHJfcmVzdG9yZShpbnRyKTsKIH0KIAogc3RhdGljIHZvaWQK IyBIRyBjaGFuZ2VzZXQgcGF0Y2gKIyBVc2VyIElhbiBMZXBvcmUKIyBEYXRlIDEzMzUwMjQ0MjYg MjE2MDAKIyAgICAgIFNhdCBBcHIgMjEgMTA6MDc6MDYgMjAxMiAtMDYwMAojIE5vZGUgSUQgMDM2 NWFhMDYyYjkxZWI5OGUyYjYzYWQ0MjUyMTllMjI3OTU2MzBhYwpSZS1yb2xsIHRoZSBwYXRjaCB0 aGF0IGRpc2FibGVzIGludGVycnVwdHMgZHVyaW5nIGJ1c2RtYSBwYXJ0aWFsIGNhY2hlbGluZQpm bHVzaGVzIHRvIGJlIG1vcmUgc3R5bGUoOSkgYW5kIEtORiBjb21wbGlhbnQuICBObyBmdW5jdGlv bmFsIGNoYW5nZXMuCgpGcmVlQlNEIGlzIGZpbmFsbHkgZ2V0dGluZyBhcm91bmQgdG8gY29tbWl0 dGluZyBzb21lIG9mIHRoZSBwYXRjaGVzIHdlCnN1Ym1pdHRlZCBsYXN0IHllYXIsIGFuZCBJIG5v dGljZWQgdGhhdCB0aGUgcGF0Y2ggc3VibWl0dGVkIGZvciB0aGlzIHByb2JsZW0KZGlkbid0IG1h dGNoIHRoZSBjb2RlIHdlJ3ZlIGJlZW4gcnVubmluZyBmb3IgbW9udGhzLiAgVGhlIG9yaWdpbmFs IHBhdGNoCmRpc2FibGVzIGludGVycnVwdHMgZHVyaW5nIHRoZSB3aG9sZSBmdW5jdGlvbiwgYnV0 IHdlIHN3aXRjaGVkIHRvIGRpc2FibGluZwp0aGVtIG9ubHkgd2hlbiBkb2luZyBhIHBhcnRpYWwg Y2FjaGVsaW5lIGZsdXNoLiAgSSB3YW50IHRvIHN1Ym1pdCBvdXIgbGF0ZXN0CmFuZCBtb3N0LXRl c3RlZCBjb2RlLCBzbyBkb2luZyBhIHN0eWxlKDkpIGNsZWFudXAgYXQgdGhlIHNhbWUgdGltZSBz aG91bGQKaGVscCBnZXQgdGhlIHBhdGNoIGFjY2VwdGVkIG1vcmUgcXVpY2tseS4KCmRpZmYgLXIg MzNkNjA3YTQzOTQyIC1yIDAzNjVhYTA2MmI5MSBzeXMvYXJtL2FybS9idXNkbWFfbWFjaGRlcC5j Ci0tLSBhL3N5cy9hcm0vYXJtL2J1c2RtYV9tYWNoZGVwLmMJRnJpIEFwciAyMCAxNzowODoyMSAy MDEyIC0wNjAwCisrKyBiL3N5cy9hcm0vYXJtL2J1c2RtYV9tYWNoZGVwLmMJU2F0IEFwciAyMSAx MDowNzowNiAyMDEyIC0wNjAwCkBAIC0xMDkwLDYgKzEwOTAsOCBAQCB2b2lkCiBzdGF0aWMgdm9p ZAogYnVzX2RtYW1hcF9zeW5jX2J1Zih2b2lkICpidWYsIGludCBsZW4sIGJ1c19kbWFzeW5jX29w X3Qgb3ApCiB7CisJdWludDMyX3QgaW50cjsKKwlpbnQgcGFydGlhbDsgCiAJY2hhciBfdG1wX2Ns W2FybV9kY2FjaGVfYWxpZ25dLCBfdG1wX2NsZW5kW2FybV9kY2FjaGVfYWxpZ25dOwogCiAJaWYg KChvcCAmIEJVU19ETUFTWU5DX1BSRVdSSVRFKSAmJiAhKG9wICYgQlVTX0RNQVNZTkNfUFJFUkVB RCkpIHsKQEAgLTExMDcsNDAgKzExMDksNDEgQEAgYnVzX2RtYW1hcF9zeW5jX2J1Zih2b2lkICpi dWYsIGludCBsZW4sIAogCQl9CiAJfQogCS8qCi0JICogSW50ZXJydXB0cyBtdXN0IGJlIGRpc2Fi bGVkIGlmIGhhbmRsaW5nIGEgcGFydGlhbCBjYWNoZWxpbmUgZmx1c2gsCisJICogSW50ZXJydXB0 cyBtdXN0IGJlIGRpc2FibGVkIHdoaWxlIGhhbmRsaW5nIGEgcGFydGlhbCBjYWNoZWxpbmUgZmx1 c2gsCiAJICogb3RoZXJ3aXNlIHRoZSBpbnRlcnJ1cHQgaGFuZGxpbmcgY29kZSBjb3VsZCBtb2Rp ZnkgZGF0YSBpbiB0aGUKIAkgKiBub24tRE1BIHBhcnQgb2YgYSBjYWNoZWxpbmUgd2hpbGUgd2Ug aGF2ZSBpdCBzdGFzaGVkIGF3YXkgaW4gdGhlCi0JICogdGVtcG9yYXJ5IHN0YWNrIGJ1ZmZlciwg dGhlbiB3ZSBlbmQgdXAgcmVzdG9yaW5nIHRoZSBzdGFsZSB2YWx1ZS4gQXMKLQkgKiB1bmxpa2Vs eSBhcyB0aGlzIHNlZW1zLCBpdCBoYXMgYmVlbiBvYnNlcnZlZCBpbiB0aGUgcmVhbCB3b3JsZC4K KwkgKiB0ZW1wb3Jhcnkgc3RhY2sgYnVmZmVyLCB0aGVuIHdlIGVuZCB1cCByZXN0b3JpbmcgdGhl IHN0YWxlIHZhbHVlLgorCSAqIEFzIHVubGlrZWx5IGFzIHRoaXMgc2VlbXMsIGl0IGhhcyBiZWVu IG9ic2VydmVkIGluIHRoZSByZWFsIHdvcmxkLgogCSAqLwogCWlmIChvcCAmIEJVU19ETUFTWU5D X1BPU1RSRUFEKSB7Ci0JCXVpbnQzMl90IGludHI7Ci0JCWludCBwYXJ0aWFsID0gKCgodm1fb2Zm c2V0X3QpYnVmKSB8IGxlbikgJiBhcm1fZGNhY2hlX2FsaWduX21hc2s7Ci0KKwkJcGFydGlhbCA9 ICgoKHZtX29mZnNldF90KWJ1ZikgfCBsZW4pICYgYXJtX2RjYWNoZV9hbGlnbl9tYXNrOwogCQlp ZiAocGFydGlhbCkgewogCQkJaW50ciA9IGludHJfZGlzYWJsZSgpOwogCQkJaWYgKCh2bV9vZmZz ZXRfdClidWYgJiBhcm1fZGNhY2hlX2FsaWduX21hc2spIHsKLQkJCQltZW1jcHkoX3RtcF9jbCwg KHZvaWQgKikoKHZtX29mZnNldF90KWJ1ZiAmIH4KLQkJCQkgICAgYXJtX2RjYWNoZV9hbGlnbl9t YXNrKSwKKwkJCQltZW1jcHkoX3RtcF9jbCwgKHZvaWQgKikoKHZtX29mZnNldF90KWJ1ZiAmCisJ CQkJICAgIH5hcm1fZGNhY2hlX2FsaWduX21hc2spLAogCQkJCSAgICAodm1fb2Zmc2V0X3QpYnVm ICYgYXJtX2RjYWNoZV9hbGlnbl9tYXNrKTsKIAkJCX0KIAkJCWlmICgoKHZtX29mZnNldF90KWJ1 ZiArIGxlbikgJiBhcm1fZGNhY2hlX2FsaWduX21hc2spIHsKLQkJCQltZW1jcHkoX3RtcF9jbGVu ZCwgKHZvaWQgKikoKHZtX29mZnNldF90KWJ1ZiArIGxlbiksCi0JCQkJICAgIGFybV9kY2FjaGVf YWxpZ24gLSAoKCh2bV9vZmZzZXRfdCkoYnVmKSArIGxlbikgJgorCQkJCW1lbWNweShfdG1wX2Ns ZW5kLCAKKwkJCQkgICAgKHZvaWQgKikoKHZtX29mZnNldF90KWJ1ZiArIGxlbiksCisJCQkJICAg IGFybV9kY2FjaGVfYWxpZ24gLSAKKwkJCQkgICAgKCgodm1fb2Zmc2V0X3QpKGJ1ZikgKyBsZW4p ICYKIAkJCQkgICAgYXJtX2RjYWNoZV9hbGlnbl9tYXNrKSk7CiAJCQl9CiAJCX0KIAkJY3B1X2Rj YWNoZV9pbnZfcmFuZ2UoKHZtX29mZnNldF90KWJ1ZiwgbGVuKTsKIAkJY3B1X2wyY2FjaGVfaW52 X3JhbmdlKCh2bV9vZmZzZXRfdClidWYsIGxlbik7Ci0KIAkJaWYgKHBhcnRpYWwpIHsKIAkJCWlm ICgodm1fb2Zmc2V0X3QpYnVmICYgYXJtX2RjYWNoZV9hbGlnbl9tYXNrKQogCQkJCW1lbWNweSgo dm9pZCAqKSgodm1fb2Zmc2V0X3QpYnVmICYKIAkJCQkgICAgfmFybV9kY2FjaGVfYWxpZ25fbWFz ayksIF90bXBfY2wsIAogCQkJCSAgICAodm1fb2Zmc2V0X3QpYnVmICYgYXJtX2RjYWNoZV9hbGln bl9tYXNrKTsKIAkJCWlmICgoKHZtX29mZnNldF90KWJ1ZiArIGxlbikgJiBhcm1fZGNhY2hlX2Fs aWduX21hc2spCi0JCQkJbWVtY3B5KCh2b2lkICopKCh2bV9vZmZzZXRfdClidWYgKyBsZW4pLCBf dG1wX2NsZW5kLAotCQkJCSAgICBhcm1fZGNhY2hlX2FsaWduIC0gKCgodm1fb2Zmc2V0X3QpKGJ1 ZikgKyBsZW4pICYKKwkJCQltZW1jcHkoKHZvaWQgKikoKHZtX29mZnNldF90KWJ1ZiArIGxlbiks IAorCQkJCSAgICBfdG1wX2NsZW5kLAorCQkJCSAgICBhcm1fZGNhY2hlX2FsaWduIC0gCisJCQkJ ICAgICgoKHZtX29mZnNldF90KShidWYpICsgbGVuKSAmCiAJCQkJICAgIGFybV9kY2FjaGVfYWxp Z25fbWFzaykpOwogCQkJaW50cl9yZXN0b3JlKGludHIpOwogCQl9CiMgSEcgY2hhbmdlc2V0IHBh dGNoCiMgVXNlciBJYW4gTGVwb3JlCiMgRGF0ZSAxMzM1MTE0MDI5IDIxNjAwCiMgICAgICBTdW4g QXByIDIyIDExOjAwOjI5IDIwMTIgLTA2MDAKIyBOb2RlIElEIDMwMDEwZTJmNmE1NWRiMmYwN2Mw YzIyYzdkMDNiMTE3ZTk3MTExODMKT3VyIGJ1c2RtYSBwYXJ0aWFsIGNhY2hlbGluZSBmbHVzaCBm aXggaGFzIGJlZW4gY29tbWl0dGVkIHRvIGZyZWVic2QsIHdpdGggYQpmZXcgbWlub3IgZGlmZmVy ZW5jZXMuICBUaGlzIGNvbW1pdCBzeW5jcyBvdXIgY29kZSB3aXRoIGZyZWVic2QtY3VycmVudCBh cwpvZiAyMDEyLTA0LTIyLCB3aGljaCBnZXRzIHVzIHRoZXNlIG90aGVyIG1pbm9yIGNoYW5nZXMg aW4gYWRkaXRpb24gdG8gdGhlCmZpbmFsIGZvcm0gb2Ygb3VyIGZpeDoKCiAtIEEgY291cGxlIGRh dGF0eXBlcyBhcmUgY2hhbmdlZCBiZXR3ZWVuIGJ1c19zaXplX3QgYW5kIGJ1c19hZGRyX3QuICBU aGlzCiAgIGlzIGEgbm8tb3AgZm9yIHVzIChib3RoIGFyZSB1X2xvbmcgdHlwZXMgZm9yIG91ciBj aGlwKSBidXQgaXMgbW9yZSBjb3JyZWN0CiAgIGZvciBhIHBsYXRmb3JtIHdpdGggNjQtYml0IGFk ZHJlc3NpbmcuCiAtIE5vbi1zdGFuZGFyZCBtaW4oKSBhbmQgbWF4KCkgaW52b2NhdGlvbnMgY2hh bmdlZCB0byBNSU4oKSBhbmQgTUFYKCkuCiAtIEluIGJ1c19kbWFtYXBfZGVzdHJveSgpLCB0aGUg bGlzdCBvZiBib3VuY2UgcGFnZXMgaXMgd2Fsa2VkIGFuZCBmcmVlZAogICBiZWZvcmUgZnJlZWlu ZyB0aGUgZG1hIG1hcCB0aGF0IGNvbnRhaW5zIHRoZSBsaXN0IGhlYWQuICAoTm90aGluZyB3ZQog ICBkbyB1c2VzIGJvdW5jZSBwYWdlcyByaWdodCBub3cuKQoKZGlmZiAtciAwMzY1YWEwNjJiOTEg LXIgMzAwMTBlMmY2YTU1IHN5cy9hcm0vYXJtL2J1c2RtYV9tYWNoZGVwLmMKLS0tIGEvc3lzL2Fy bS9hcm0vYnVzZG1hX21hY2hkZXAuYwlTYXQgQXByIDIxIDEwOjA3OjA2IDIwMTIgLTA2MDAKKysr IGIvc3lzL2FybS9hcm0vYnVzZG1hX21hY2hkZXAuYwlTdW4gQXByIDIyIDExOjAwOjI5IDIwMTIg LTA2MDAKQEAgLTI5LDcgKzI5LDcgQEAKICAqLwogCiAjaW5jbHVkZSA8c3lzL2NkZWZzLmg+Ci1f X0ZCU0RJRCgiJEZyZWVCU0Q6IHN5cy9hcm0vYXJtL2J1c2RtYV9tYWNoZGVwLmMgMjA1MTkzIDIw MTAtMDMtMTUgMTk6NTk6MTZaIHJhaiAkIik7CitfX0ZCU0RJRCgiJEZyZWVCU0Q6IGhlYWQvc3lz L2FybS9hcm0vYnVzZG1hX21hY2hkZXAuYyAyMzQ1NjEgMjAxMi0wNC0yMiAwMDo1ODowNFogbWFy aXVzICQiKTsKIAogLyoKICAqIEFSTSBidXMgZG1hIHN1cHBvcnQgcm91dGluZXMKQEAgLTY4LDcg KzY4LDcgQEAgc3RydWN0IGJvdW5jZV96b25lOwogc3RydWN0IGJ1c19kbWFfdGFnIHsKIAlidXNf ZG1hX3RhZ190CQlwYXJlbnQ7CiAJYnVzX3NpemVfdAkJYWxpZ25tZW50OwotCWJ1c19zaXplX3QJ CWJvdW5kYXJ5OworCWJ1c19hZGRyX3QJCWJvdW5kYXJ5OwogCWJ1c19hZGRyX3QJCWxvd2FkZHI7 CiAJYnVzX2FkZHJfdAkJaGlnaGFkZHI7CiAJYnVzX2RtYV9maWx0ZXJfdAkqZmlsdGVyOwpAQCAt MTI2LDcgKzEyNiw3IEBAIHN0YXRpYyBpbnQgdG90YWxfYnBhZ2VzOwogc3RhdGljIGludCBidXNk bWFfem9uZWNvdW50Owogc3RhdGljIFNUQUlMUV9IRUFEKCwgYm91bmNlX3pvbmUpIGJvdW5jZV96 b25lX2xpc3Q7CiAKLVNZU0NUTF9OT0RFKF9odywgT0lEX0FVVE8sIGJ1c2RtYSwgQ1RMRkxBR19S RCwgMCwgIkJ1c2RtYSBwYXJhbWV0ZXJzIik7CitzdGF0aWMgU1lTQ1RMX05PREUoX2h3LCBPSURf QVVUTywgYnVzZG1hLCBDVExGTEFHX1JELCAwLCAiQnVzZG1hIHBhcmFtZXRlcnMiKTsKIFNZU0NU TF9JTlQoX2h3X2J1c2RtYSwgT0lEX0FVVE8sIHRvdGFsX2JwYWdlcywgQ1RMRkxBR19SRCwgJnRv dGFsX2JwYWdlcywgMCwKIAkgICAiVG90YWwgYm91bmNlIHBhZ2VzIik7CiAKQEAgLTMzMiw3ICsz MzIsNyBAQCBzdGF0aWMgX19pbmxpbmUgdm9pZAogCiBpbnQKIGJ1c19kbWFfdGFnX2NyZWF0ZShi dXNfZG1hX3RhZ190IHBhcmVudCwgYnVzX3NpemVfdCBhbGlnbm1lbnQsCi0JCSAgIGJ1c19zaXpl X3QgYm91bmRhcnksIGJ1c19hZGRyX3QgbG93YWRkciwKKwkJICAgYnVzX2FkZHJfdCBib3VuZGFy eSwgYnVzX2FkZHJfdCBsb3dhZGRyLAogCQkgICBidXNfYWRkcl90IGhpZ2hhZGRyLCBidXNfZG1h X2ZpbHRlcl90ICpmaWx0ZXIsCiAJCSAgIHZvaWQgKmZpbHRlcmFyZywgYnVzX3NpemVfdCBtYXhz aXplLCBpbnQgbnNlZ21lbnRzLAogCQkgICBidXNfc2l6ZV90IG1heHNlZ3N6LCBpbnQgZmxhZ3Ms IGJ1c19kbWFfbG9ja190ICpsb2NrZnVuYywKQEAgLTM3OCwxMiArMzc4LDEyIEBAIGJ1c19kbWFf dGFnX2NyZWF0ZShidXNfZG1hX3RhZ190IHBhcmVudCwKIAkgKiBUYWtlIGludG8gYWNjb3VudCBh bnkgcmVzdHJpY3Rpb25zIGltcG9zZWQgYnkgb3VyIHBhcmVudCB0YWcKIAkgKi8KICAgICAgICAg aWYgKHBhcmVudCAhPSBOVUxMKSB7Ci0gICAgICAgICAgICAgICAgbmV3dGFnLT5sb3dhZGRyID0g bWluKHBhcmVudC0+bG93YWRkciwgbmV3dGFnLT5sb3dhZGRyKTsKLSAgICAgICAgICAgICAgICBu ZXd0YWctPmhpZ2hhZGRyID0gbWF4KHBhcmVudC0+aGlnaGFkZHIsIG5ld3RhZy0+aGlnaGFkZHIp OworICAgICAgICAgICAgICAgIG5ld3RhZy0+bG93YWRkciA9IE1JTihwYXJlbnQtPmxvd2FkZHIs IG5ld3RhZy0+bG93YWRkcik7CisgICAgICAgICAgICAgICAgbmV3dGFnLT5oaWdoYWRkciA9IE1B WChwYXJlbnQtPmhpZ2hhZGRyLCBuZXd0YWctPmhpZ2hhZGRyKTsKIAkJaWYgKG5ld3RhZy0+Ym91 bmRhcnkgPT0gMCkKIAkJCW5ld3RhZy0+Ym91bmRhcnkgPSBwYXJlbnQtPmJvdW5kYXJ5OwogCQll bHNlIGlmIChwYXJlbnQtPmJvdW5kYXJ5ICE9IDApCi0gICAgICAgICAgICAgICAgCW5ld3RhZy0+ Ym91bmRhcnkgPSBtaW4ocGFyZW50LT5ib3VuZGFyeSwKKyAgICAgICAgICAgICAgICAJbmV3dGFn LT5ib3VuZGFyeSA9IE1JTihwYXJlbnQtPmJvdW5kYXJ5LAogCQkJCQkgICAgICAgbmV3dGFnLT5i b3VuZGFyeSk7CiAJCWlmICgobmV3dGFnLT5maWx0ZXIgIT0gTlVMTCkgfHwKIAkJICAgICgocGFy ZW50LT5mbGFncyAmIEJVU19ETUFfQ09VTERfQk9VTkNFKSAhPSAwKSkKQEAgLTU1NSwxMiArNTU1 LDEyIEBAIGludAogYnVzX2RtYW1hcF9kZXN0cm95KGJ1c19kbWFfdGFnX3QgZG1hdCwgYnVzX2Rt YW1hcF90IG1hcCkKIHsKIAotCV9idXNkbWFfZnJlZV9kbWFtYXAobWFwKTsKIAlpZiAoU1RBSUxR X0ZJUlNUKCZtYXAtPmJwYWdlcykgIT0gTlVMTCkgewogCQlDVFIzKEtUUl9CVVNETUEsICIlczog dGFnICVwIGVycm9yICVkIiwKIAkJICAgIF9fZnVuY19fLCBkbWF0LCBFQlVTWSk7CiAJCXJldHVy biAoRUJVU1kpOwogCX0KKwlfYnVzZG1hX2ZyZWVfZG1hbWFwKG1hcCk7CiAJaWYgKGRtYXQtPmJv dW5jZV96b25lKQogCQlkbWF0LT5ib3VuY2Vfem9uZS0+bWFwX2NvdW50LS07CiAgICAgICAgIGRt YXQtPm1hcF9jb3VudC0tOwpAQCAtMTA5MCwxNyArMTA5MCwxNyBAQCB2b2lkCiBzdGF0aWMgdm9p ZAogYnVzX2RtYW1hcF9zeW5jX2J1Zih2b2lkICpidWYsIGludCBsZW4sIGJ1c19kbWFzeW5jX29w X3Qgb3ApCiB7Ci0JdWludDMyX3QgaW50cjsKKwljaGFyIF90bXBfY2xbYXJtX2RjYWNoZV9hbGln bl0sIF90bXBfY2xlbmRbYXJtX2RjYWNoZV9hbGlnbl07CisJcmVnaXN0ZXJfdCBzOwogCWludCBw YXJ0aWFsOyAKLQljaGFyIF90bXBfY2xbYXJtX2RjYWNoZV9hbGlnbl0sIF90bXBfY2xlbmRbYXJt X2RjYWNoZV9hbGlnbl07CiAKIAlpZiAoKG9wICYgQlVTX0RNQVNZTkNfUFJFV1JJVEUpICYmICEo b3AgJiBCVVNfRE1BU1lOQ19QUkVSRUFEKSkgewogCQljcHVfZGNhY2hlX3diX3JhbmdlKCh2bV9v ZmZzZXRfdClidWYsIGxlbik7CiAJCWNwdV9sMmNhY2hlX3diX3JhbmdlKCh2bV9vZmZzZXRfdCli dWYsIGxlbik7CiAJfQorCXBhcnRpYWwgPSAoKCh2bV9vZmZzZXRfdClidWYpIHwgbGVuKSAmIGFy bV9kY2FjaGVfYWxpZ25fbWFzazsKIAlpZiAob3AgJiBCVVNfRE1BU1lOQ19QUkVSRUFEKSB7Ci0J CWlmICghKG9wICYgQlVTX0RNQVNZTkNfUFJFV1JJVEUpICYmCi0JCSAgICAoKCgodm1fb2Zmc2V0 X3QpKGJ1ZikgfCBsZW4pICYgYXJtX2RjYWNoZV9hbGlnbl9tYXNrKSA9PSAwKSkgeworCQlpZiAo IShvcCAmIEJVU19ETUFTWU5DX1BSRVdSSVRFKSAmJiAhcGFydGlhbCkgewogCQkJY3B1X2RjYWNo ZV9pbnZfcmFuZ2UoKHZtX29mZnNldF90KWJ1ZiwgbGVuKTsKIAkJCWNwdV9sMmNhY2hlX2ludl9y YW5nZSgodm1fb2Zmc2V0X3QpYnVmLCBsZW4pOwogCQl9IGVsc2UgewpAQCAtMTEwOCwyOSArMTEw OCwxOCBAQCBidXNfZG1hbWFwX3N5bmNfYnVmKHZvaWQgKmJ1ZiwgaW50IGxlbiwgCiAJICAgIAkJ Y3B1X2wyY2FjaGVfd2JpbnZfcmFuZ2UoKHZtX29mZnNldF90KWJ1ZiwgbGVuKTsKIAkJfQogCX0K LQkvKgotCSAqIEludGVycnVwdHMgbXVzdCBiZSBkaXNhYmxlZCB3aGlsZSBoYW5kbGluZyBhIHBh cnRpYWwgY2FjaGVsaW5lIGZsdXNoLAotCSAqIG90aGVyd2lzZSB0aGUgaW50ZXJydXB0IGhhbmRs aW5nIGNvZGUgY291bGQgbW9kaWZ5IGRhdGEgaW4gdGhlCi0JICogbm9uLURNQSBwYXJ0IG9mIGEg Y2FjaGVsaW5lIHdoaWxlIHdlIGhhdmUgaXQgc3Rhc2hlZCBhd2F5IGluIHRoZQotCSAqIHRlbXBv cmFyeSBzdGFjayBidWZmZXIsIHRoZW4gd2UgZW5kIHVwIHJlc3RvcmluZyB0aGUgc3RhbGUgdmFs dWUuCi0JICogQXMgdW5saWtlbHkgYXMgdGhpcyBzZWVtcywgaXQgaGFzIGJlZW4gb2JzZXJ2ZWQg aW4gdGhlIHJlYWwgd29ybGQuCi0JICovCiAJaWYgKG9wICYgQlVTX0RNQVNZTkNfUE9TVFJFQUQp IHsKLQkJcGFydGlhbCA9ICgoKHZtX29mZnNldF90KWJ1ZikgfCBsZW4pICYgYXJtX2RjYWNoZV9h bGlnbl9tYXNrOwogCQlpZiAocGFydGlhbCkgewotCQkJaW50ciA9IGludHJfZGlzYWJsZSgpOwot CQkJaWYgKCh2bV9vZmZzZXRfdClidWYgJiBhcm1fZGNhY2hlX2FsaWduX21hc2spIHsKKwkJCXMg PSBpbnRyX2Rpc2FibGUoKTsKKwkJCWlmICgodm1fb2Zmc2V0X3QpYnVmICYgYXJtX2RjYWNoZV9h bGlnbl9tYXNrKQogCQkJCW1lbWNweShfdG1wX2NsLCAodm9pZCAqKSgodm1fb2Zmc2V0X3QpYnVm ICYKIAkJCQkgICAgfmFybV9kY2FjaGVfYWxpZ25fbWFzayksCiAJCQkJICAgICh2bV9vZmZzZXRf dClidWYgJiBhcm1fZGNhY2hlX2FsaWduX21hc2spOwotCQkJfQotCQkJaWYgKCgodm1fb2Zmc2V0 X3QpYnVmICsgbGVuKSAmIGFybV9kY2FjaGVfYWxpZ25fbWFzaykgeworCQkJaWYgKCgodm1fb2Zm c2V0X3QpYnVmICsgbGVuKSAmIGFybV9kY2FjaGVfYWxpZ25fbWFzaykKIAkJCQltZW1jcHkoX3Rt cF9jbGVuZCwgCiAJCQkJICAgICh2b2lkICopKCh2bV9vZmZzZXRfdClidWYgKyBsZW4pLAotCQkJ CSAgICBhcm1fZGNhY2hlX2FsaWduIC0gCi0JCQkJICAgICgoKHZtX29mZnNldF90KShidWYpICsg bGVuKSAmCi0JCQkJICAgIGFybV9kY2FjaGVfYWxpZ25fbWFzaykpOwotCQkJfQorCQkJCSAgICBh cm1fZGNhY2hlX2FsaWduIC0gKCgodm1fb2Zmc2V0X3QpKGJ1ZikgKworCQkJCSAgICBsZW4pICYg YXJtX2RjYWNoZV9hbGlnbl9tYXNrKSk7CiAJCX0KIAkJY3B1X2RjYWNoZV9pbnZfcmFuZ2UoKHZt X29mZnNldF90KWJ1ZiwgbGVuKTsKIAkJY3B1X2wyY2FjaGVfaW52X3JhbmdlKCh2bV9vZmZzZXRf dClidWYsIGxlbik7CkBAIC0xMTQxLDExICsxMTMwLDEwIEBAIGJ1c19kbWFtYXBfc3luY19idWYo dm9pZCAqYnVmLCBpbnQgbGVuLCAKIAkJCQkgICAgKHZtX29mZnNldF90KWJ1ZiAmIGFybV9kY2Fj aGVfYWxpZ25fbWFzayk7CiAJCQlpZiAoKCh2bV9vZmZzZXRfdClidWYgKyBsZW4pICYgYXJtX2Rj YWNoZV9hbGlnbl9tYXNrKQogCQkJCW1lbWNweSgodm9pZCAqKSgodm1fb2Zmc2V0X3QpYnVmICsg bGVuKSwgCi0JCQkJICAgIF90bXBfY2xlbmQsCi0JCQkJICAgIGFybV9kY2FjaGVfYWxpZ24gLSAK KwkJCQkgICAgX3RtcF9jbGVuZCwgYXJtX2RjYWNoZV9hbGlnbiAtIAogCQkJCSAgICAoKCh2bV9v ZmZzZXRfdCkoYnVmKSArIGxlbikgJgogCQkJCSAgICBhcm1fZGNhY2hlX2FsaWduX21hc2spKTsK LQkJCWludHJfcmVzdG9yZShpbnRyKTsKKwkJCWludHJfcmVzdG9yZShzKTsKIAkJfQogCX0KIH0K --=-Gd0SewW8hep9THAfDP/4 Content-Disposition: attachment; filename="disabled_icache_fix.diff" Content-Type: text/x-patch; name="disabled_icache_fix.diff"; charset="us-ascii" Content-Transfer-Encoding: base64 IyBIRyBjaGFuZ2VzZXQgcGF0Y2gKIyBVc2VyIElhbiBMZXBvcmUKIyBEYXRlIDEzMTY2MzM0MTYg MjE2MDAKIyAgICAgIFdlZCBTZXAgMjEgMTM6MzA6MTYgMjAxMSAtMDYwMAojIE5vZGUgSUQgOTY2 OWU1YTNmMjIyMGZkYzkxOWVlZWQ0OTkyNWM3NzEzMWRkYmUwNwpXb3JrIGFyb3VuZCB0aGUgZGlz YWJsZWQtaWNhY2hlIHBlcmZvcm1hbmNlIHByb2JsZW0gd2l0aCBzaGFyZWQgbGlicmFyaWVzIGJ5 CnVzaW5nIG1tYXAoKS9tZW1jcHkoKSByYXRoZXIgdGhhbiBwcmVhZCgpIHRvIHJlYWQgdGhlIGZp cnN0IHBhZ2Ugb2YgdGhlIHNoYXJlZApsaWIuICBBbnkgdXNlIG9mICJub3JtYWwgSU8iIG9uIGFu IGV4ZWN1dGFibGUgbGVhdmVzIGEga2VybmVsLXdyaXRhYmxlIG1hcHBpbmcKb2YgdGhlIHBhZ2Vz IGluIHRoZSB2ZnMgYnVmZmVyIGNhY2hlLCBhbmQgYXMgbG9uZyBhcyBhIHdyaXRhYmxlIG1hcHBp bmcgZXhpc3RzCnRoZSBpY2FjaGUgYml0IHdpbGwgYmUgdHVybmVkIG9mZiBvbiB0aGF0IHBhZ2Uu ICBNYWtpbmcgdGhlIHByb2JsZW0gZXZlbiB3b3JzZSwKdXNpbmcgW3BdcmVhZCgpIHRyaWdnZXJz IGEgcmVhZGFoZWFkIG9yIGNsdXN0ZXItcmVhZCBvcGVyYXRpb24gc28gaXQncyBub3QKanVzdCBh IHNpbmdsZSA0ayBwYWdlLCBpdCdzIHVwIHRvIDI1NmsgKHdoaWNoIGZvciBtYW55IHNoYXJlZCBs aWJzIGlzIHRoZQp3aG9sZSBsaWJyYXJ5KS4gIFdoZW4gYW4gZXhlY3V0YWJsZSBpcyBtbWFwKCkn ZCBhbmQgdGhlbiB0aGUgcGFnZXMgYXJlCmJyb3VnaHQgaW4gYnkgdGhlIHBhZ2VyIHRoZSBmaXJz dCB0aW1lIHRoZXkncmUgcmVmZXJlbmNlZCwgdGhlIGtlcm5lbCB3cml0YWJsZQptYXBwaW5nIGNy ZWF0ZWQgdG8gZG8gc28gaXMgZGVsZXRlZCBhcyBzb29uIGFzIHRoZSBJTyBpcyBkb25lLCBzbyBt bWFwLWJhc2VkCklPIGRvZXNuJ3QgaGF2ZSB0aGUgc2FtZSBwcm9ibGVtIGFzICJub3JtYWwiIElP LiAgKEJ1dCBpdCBhcHBlYXJzIHRvIGJlCm5vbi10cml2aWFsIHRvIG1ha2UgIm5vcm1hbCIgSU8g dXNlIHRlbXBvcmFyeSBtYXBwaW5ncyBsaWtlIG1tYXAgZG9lcy4pCgpUaGlzIGlzIGEgYmV0dGVy IHdvcmthcm91bmQgdGhhbiB1c2luZyBzdGF0aWMgbGlua2luZyBvbiBvdXIgYXBwcywgYmVjYXVz ZQp0aGlzIGhlbHBzIGFsbCBhcHBzIChzeXN0ZW0gZGFlbW9ucywgZXRjKSB0aGF0IHVzZSBzaGFy ZWQgbGlicy4gIEJ1dCB0aGlzIGRvZXMKbm90IGZpeCB0aGUgcHJvYmxlbSBvZiBkb2luZyAibm9y bWFsIElPIiB0aGluZ3MgdG8gb3VyIGFwcHMsIGxpa2UgdXNpbmcgc2NwCnRvIGNvcHkgYSBuZXcg dmVyc2lvbiBvbnRvIHRoZSBib3ggLS0gaW4gdGhhdCBjYXNlIG5vcm1hbCBJTyBoYXMgaGFwcGVu ZWQgYW5kCmljYWNoZSB3aWxsIGJlIGRpc2FibGVkIG9uIHRoYXQgYXBwIHVudGlsIHRoZSBuZXh0 IHJlYm9vdCBvciBzb21ldGhpbmcgZmx1c2hlcwp0aG9zZSBidWZmZXJzIG91dCBvZiB0aGUgY2Fj aGUgKGFuZCB0aGF0IHByZXR0eSBtdWNoIG5ldmVyIGhhcHBlbnMgdW5sZXNzIHlvdQp1bm1vdW50 IHRoZSBmaWxlc3lzdGVtKS4KCmRpZmYgLXIgZjNiYzM3MzY4NjlmIC1yIDk2NjllNWEzZjIyMiBs aWJleGVjL3J0bGQtZWxmL21hcF9vYmplY3QuYwotLS0gYS9saWJleGVjL3J0bGQtZWxmL21hcF9v YmplY3QuYwlXZWQgU2VwIDIxIDEwOjA2OjE3IDIwMTEgLTA2MDAKKysrIGIvbGliZXhlYy9ydGxk LWVsZi9tYXBfb2JqZWN0LmMJV2VkIFNlcCAyMSAxMzozMDoxNiAyMDExIC0wNjAwCkBAIC0yNzIs MTEgKzI3MiwxNCBAQCBnZXRfZWxmX2hlYWRlciAoaW50IGZkLCBjb25zdCBjaGFyICpwYXRoCiAJ Y2hhciBidWZbUEFHRV9TSVpFXTsKICAgICB9IHU7CiAgICAgc3NpemVfdCBuYnl0ZXM7CisgICAg dm9pZCAqIG1hcHBlZDsKIAotICAgIGlmICgobmJ5dGVzID0gcHJlYWQoZmQsIHUuYnVmLCBQQUdF X1NJWkUsIDApKSA9PSAtMSkgewotCV9ydGxkX2Vycm9yKCIlczogcmVhZCBlcnJvcjogJXMiLCBw YXRoLCBzdHJlcnJvcihlcnJubykpOwotCXJldHVybiBOVUxMOwotICAgIH0KKyAgICAvKiBVc2Ug bW1hcCgpICsgbWVtY3B5KCkgcmF0aGVyIHRoYW4gW3BdcmVhZCgpIHRvIGF2b2lkIHJlYWRhaGVh ZC4gKi8KKyAgICBpZiAoKG1hcHBlZCA9IG1tYXAoTlVMTCwgUEFHRV9TSVpFLCBQUk9UX1JFQUQs IDAsIGZkLCAwKSkgPT0gTUFQX0ZBSUxFRCkKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgbWVt Y3B5KHUuYnVmLCBtYXBwZWQsIHNpemVvZih1LmJ1ZikpOworICAgIG11bm1hcChtYXBwZWQsIFBB R0VfU0laRSk7CisgICAgbmJ5dGVzID0gc2l6ZW9mKHUuYnVmKTsKIAogICAgIC8qIE1ha2Ugc3Vy ZSB0aGUgZmlsZSBpcyB2YWxpZCAqLwogICAgIGlmIChuYnl0ZXMgPCAoc3NpemVfdClzaXplb2Yo RWxmX0VoZHIpIHx8ICFJU19FTEYodS5oZHIpKSB7Cg== --=-Gd0SewW8hep9THAfDP/4 Content-Disposition: attachment; filename="minalloc.diff" Content-Type: text/x-patch; name="minalloc.diff"; charset="us-ascii" Content-Transfer-Encoding: base64 IyBIRyBjaGFuZ2VzZXQgcGF0Y2gKIyBVc2VyIElhbiBMZXBvcmUKIyBEYXRlIDEzMTQ4MjI5MDMg MjE2MDAKIyAgICAgIFdlZCBBdWcgMzEgMTQ6MzU6MDMgMjAxMSAtMDYwMAojIE5vZGUgSUQgZWVh OWRkNzVkZTZiYjZlNmY4NWIwNjQwZDdjN2RlMmJiM2E1NTY5NgpPbiBhcm0sIG1ha2UgdGhlIG1p bmltdW0ga2VybmVsIG1hbGxvYyBzaXplIGVxdWFsIHRvIHRoZSBhcm0gY2FjaGUgbGluZSBzaXpl LgpJbiBvdGhlciB3b3JkcywgZG9uJ3QgbGV0IHVucmVsYXRlZCBzbWFsbCBhbGxvY2F0aW9ucyBz aGFyZSBhIGNhY2hlIGxpbmUsIHRvCnRyeSB0byBtaW5pbWl6ZSBpbXBhY3Qgd2hlbiB0aGVyZSdz IHRyb3VibGUgd2l0aCBjYWNoZSBjb2hlcmVuY3kgbG9naWMuCgooVGhpcyBpbmNyZWFzZXMgdGhl IG1pbmltdW0gYWxsb2Mgc2l6ZSBmcm9tIDE2IHRvIDMyIGJ5dGVzLikKCmRpZmYgLXIgNzg5MTFl MmE4Njk2IC1yIGVlYTlkZDc1ZGU2YiBzeXMva2Vybi9rZXJuX21hbGxvYy5jCi0tLSBhL3N5cy9r ZXJuL2tlcm5fbWFsbG9jLmMJV2VkIEF1ZyAzMSAxMjoxMToxMCAyMDExIC0wNjAwCisrKyBiL3N5 cy9rZXJuL2tlcm5fbWFsbG9jLmMJV2VkIEF1ZyAzMSAxNDozNTowMyAyMDExIC0wNjAwCkBAIC05 NCw2ICs5NCwyNCBAQCBkdHJhY2VfbWFsbG9jX3Byb2JlX2Z1bmNfdAlkdHJhY2VfbWFsbG9jCiAj ZW5kaWYKIAogLyoKKyAqIFN5bW1ldHJpY29tLWxvY2FsIGhhY2s6IElmIGJ1aWxkaW5nIGZvciBh cm0sIGZvcmNlIHRoZSBtaW5pbXVtIGFsbG9jYXRpb24KKyAqIHNpemUgdG8gYmUgdGhlIHNpemUg b2YgYSBjYWNoZSBsaW5lLiAgVGhpcyBoZWxwcyB3b3JrIGFyb3VuZCBwcm9ibGVtcyB3aGVyZQor ICogZG9pbmcgRE1BIGludG8gYSBidWZmZXIgdGhhdCBzdHJhZGRsZXMgYSBjYWNoZSBsaW5lIGJv dW5kYXJ5IGNhbiBsZWFkIHRvIGRhdGEKKyAqIGNvcnJ1cHRpb24gd2hlbiBjb250ZXh0IHN3aXRj aGVzIGhhcHBlbiB3aGlsZSBETUEgaXMgaW4gcHJvZ3Jlc3MuICBJdCBzaG91bGQKKyAqIGJlIG5v dGVkIHRoYXQgdGhpcyBJUyBOT1QgQSBGSVggZm9yIHRoYXQgcHJvYmxlbSwgaXQncyBqdXN0IGEg Y2hlYXAgd2F5IHRvCisgKiBtYWtlIHRoZSBwcm9ibGVtIGxlc3MgbGlrZWx5LCBlc3BlY2lhbGx5 IGdpdmVuIHRoYXQgdGhlIFVTQiBkcml2ZXIgaW4gNi54CisgKiBhbGxvY2F0ZXMgc21hbGwgdGVt cCBidWZmZXJzIGZvciBJTyB1c2luZyBtYWxsb2MoOSkuCisgKgorICogV2hlbiBub3QgYnVpbGRp bmcgZm9yIGFybSwgdXNlIE1JTkFMTE9DU0laRSAod2hpY2ggaXMgdGllZCB0byBVTUEncyBtaW4p LgorICovCisjaWYgZGVmaW5lZChfX2FybV9fKQorI2luY2x1ZGUgPG1hY2hpbmUvY3B1ZnVuYy5o PgorI2RlZmluZSBMT0NBTF9NSU5BTExPQ1NJWkUgYXJtX2RjYWNoZV9hbGlnbgorI2Vsc2UKKyNk ZWZpbmUgTE9DQUxfTUlOQUxMT0NTSVpFIE1JTkFMTE9DU0laRQorI2VuZGlmCisKKy8qCiAgKiBX aGVuIHJlYWxsb2MoKSBpcyBjYWxsZWQsIGlmIHRoZSBuZXcgc2l6ZSBpcyBzdWZmaWNpZW50bHkg c21hbGxlciB0aGFuCiAgKiB0aGUgb2xkIHNpemUsIHJlYWxsb2MoKSB3aWxsIGFsbG9jYXRlIGEg bmV3LCBzbWFsbGVyIGJsb2NrIHRvIGF2b2lkCiAgKiB3YXN0aW5nIG1lbW9yeS4gJ1N1ZmZpY2ll bnRseSBzbWFsbGVyJyBpcyBkZWZpbmVkIGFzOiBuZXdzaXplIDw9CkBAIC0zNjQsNiArMzgyLDkg QEAgbWFsbG9jKHVuc2lnbmVkIGxvbmcgc2l6ZSwgc3RydWN0IG1hbGxvYwogCXVuc2lnbmVkIGxv bmcgb3NpemUgPSBzaXplOwogI2VuZGlmCiAKKwlpZiAoc2l6ZSA8IExPQ0FMX01JTkFMTE9DU0la RSkKKwkJc2l6ZSA9IExPQ0FMX01JTkFMTE9DU0laRTsKKwogI2lmZGVmIElOVkFSSUFOVFMKIAlL QVNTRVJUKG10cC0+a3NfbWFnaWMgPT0gTV9NQUdJQywgKCJtYWxsb2M6IGJhZCBtYWxsb2MgdHlw ZSBtYWdpYyIpKTsKIAkvKgpAQCAtNTI1LDYgKzU0Niw5IEBAIHJlYWxsb2Modm9pZCAqYWRkciwg dW5zaWduZWQgbG9uZyBzaXplLCAKIAlpZiAoYWRkciA9PSBOVUxMKQogCQlyZXR1cm4gKG1hbGxv YyhzaXplLCBtdHAsIGZsYWdzKSk7CiAKKwlpZiAoc2l6ZSAhPSAwICYmIHNpemUgPCBMT0NBTF9N SU5BTExPQ1NJWkUpCisJCXNpemUgPSBMT0NBTF9NSU5BTExPQ1NJWkU7CisKIAkvKgogCSAqIFhY WDogU2hvdWxkIHJlcG9ydCBmcmVlIG9mIG9sZCBtZW1vcnkgYW5kIGFsbG9jIG9mIG5ldyBtZW1v cnkgdG8KIAkgKiBwZXItQ1BVIHN0YXRzLgo= --=-Gd0SewW8hep9THAfDP/4 Content-Disposition: attachment; filename="ras_init.diff" Content-Type: text/x-patch; name="ras_init.diff"; charset="us-ascii" Content-Transfer-Encoding: base64 IyBOb3RlOiB0aHJlZSBwYXRjaGVzIGluIHRoaXMgZmlsZS4KIwojIEhHIGNoYW5nZXNldCBwYXRj aAojIFVzZXIgSWFuIExlcG9yZQojIERhdGUgMTMxODM0MTM1MiAyMTYwMAojICAgICAgVHVlIE9j dCAxMSAwNzo1NTo1MiAyMDExIC0wNjAwCiMgTm9kZSBJRCA0MDQ0NDc2ODBiNTMzODc5MjI0ZDNk Njc5ZjExYWRlMWZhNDViYThjClByb3Blcmx5IGluaXRpYWxpemUgdGhlIEFSTSBnbG9iYWwgcGVy LXRocmVhZC1kYXRhIHBhZ2UuICBJdCBnZXRzIGFsbG9jYXRlZAp3aXRoIHRoZSBWTV9BTExPQ19a RVJPIGZsYWcsIGJ1dCB0aGF0IGRvZXMgbm90IGcndGVlIHRoYXQgdGhlIHBhZ2UgcmV0dXJuZWQK aGFzIGJlZW4gemVyb2VkLCBpdCBqdXN0IHNheXMgeW91J2QgcHJlZmVyIHRoYXQuICBTbyBjaGVj ayB0aGUgcGFnZSBmbGFncwphbmQgaWYgYSB6ZXJvZWQgcGFnZSB3YXMgbm90IHByb3ZpZGVkLCBj YWxsIGJ6ZXJvKCkuCgpBbHNvLCBpbml0IHRoZSBnbG9iYWwgUkFTX0VORCB2YWx1ZSB0byAweGZm ZmZmZmZmLCBiZWNhdXNlIHRoYXQncyBhIHJlcXVpcmVkCnByZS1jb25kaXRpb24gb2YgdGhlIFJB UyBzY2hlbWUgd2hlbiB0aGVyZSBpcyBubyBhdG9taWMgc2VxdWVuY2UgcnVubmluZy4KCmRpZmYg LXIgOTNhMWU5NTY3ZWUzIC1yIDQwNDQ0NzY4MGI1MyBzeXMvYXJtL2FybS9tYWNoZGVwLmMKLS0t IGEvc3lzL2FybS9hcm0vbWFjaGRlcC5jCVR1ZSBPY3QgMTEgMDc6MjU6NTggMjAxMSAtMDYwMAor KysgYi9zeXMvYXJtL2FybS9tYWNoZGVwLmMJVHVlIE9jdCAxMSAwNzo1NTo1MiAyMDExIC0wNjAw CkBAIC0zMTIsNiArMzEyLDkgQEAgY3B1X3N0YXJ0dXAodm9pZCAqZHVtbXkpCiAJbSA9IHZtX3Bh Z2VfYWxsb2MoTlVMTCwgMCwgVk1fQUxMT0NfTk9PQkogfCBWTV9BTExPQ19aRVJPKTsKIAlwbWFw X2tlbnRlcl91c2VyKEFSTV9UUF9BRERSRVNTLCBWTV9QQUdFX1RPX1BIWVMobSkpOwogI2VuZGlm CisJaWYgKChtLT5mbGFncyAmIFBHX1pFUk8pID09IDApCisgICAgICAgICAgICAgICAgYnplcm8o KHZvaWQqKUFSTV9UUF9BRERSRVNTLCBQQUdFX1NJWkUpOworCSoodWludDMyX3QgKilBUk1fUkFT X0VORCA9IDB4ZmZmZmZmZmY7CiB9CiAKIFNZU0lOSVQoY3B1LCBTSV9TVUJfQ1BVLCBTSV9PUkRF Ul9GSVJTVCwgY3B1X3N0YXJ0dXAsIE5VTEwpOwojIEhHIGNoYW5nZXNldCBwYXRjaAojIFVzZXIg SWFuIExlcG9yZQojIERhdGUgMTMxODM0MjI0MyAyMTYwMAojICAgICAgVHVlIE9jdCAxMSAwODox MDo0MyAyMDExIC0wNjAwCiMgTm9kZSBJRCAyNGI5ODYyYzNjYTVhZTQ3OWE1YTAzOTdkN2RhZGE2 NjdjYTFkYTFkCk9vcHMsIG1vdmUgdGhlIGNvZGUgdG8gemVybyB0aGUgdGhyZWFkLWRhdGEgcGFn ZSBpbnNpZGUgdGhlICNpZmRlZi8jZWxzZQpibG9jaywgc28gdGhhdCBpZiBBUk1fQ0FDSEVfTE9D S19FTkFCTEUgaXMgZGVmaW5lZCBpdCBkb2Vzbid0IGVuZCB1cApyZWZlcmVuY2luZyBhbiB1bmRl ZmluZWQgdmFyaWFibGUgJ20nLiAgQWxzbyB6ZXJvIHRoZSBwYWdlIGluIHRoZSBvdGhlcgpsZWcg b2YgdGhlICNpZmRlZi9lbHNlLCBhbHRob3VnaCBpdCdzIG5vdCBjbGVhciB0byBtZSB0aGF0IHRo ZSBjb2RlIGluCnRoZSBvdGhlciBsZWcgd291bGQgc3RpbGwgd29yayB0aGVzZSBkYXlzLgoKZGlm ZiAtciA0MDQ0NDc2ODBiNTMgLXIgMjRiOTg2MmMzY2E1IHN5cy9hcm0vYXJtL21hY2hkZXAuYwot LS0gYS9zeXMvYXJtL2FybS9tYWNoZGVwLmMJVHVlIE9jdCAxMSAwNzo1NTo1MiAyMDExIC0wNjAw CisrKyBiL3N5cy9hcm0vYXJtL21hY2hkZXAuYwlUdWUgT2N0IDExIDA4OjEwOjQzIDIwMTEgLTA2 MDAKQEAgLTMwOCwxMiArMzA4LDEzIEBAIGNwdV9zdGFydHVwKHZvaWQgKmR1bW15KQogI2lmZGVm IEFSTV9DQUNIRV9MT0NLX0VOQUJMRQogCXBtYXBfa2VudGVyX3VzZXIoQVJNX1RQX0FERFJFU1Ms IEFSTV9UUF9BRERSRVNTKTsKIAlhcm1fbG9ja19jYWNoZV9saW5lKEFSTV9UUF9BRERSRVNTKTsK KwliemVybygodm9pZCopQVJNX1RQX0FERFJFU1MsIFBBR0VfU0laRSk7CiAjZWxzZQogCW0gPSB2 bV9wYWdlX2FsbG9jKE5VTEwsIDAsIFZNX0FMTE9DX05PT0JKIHwgVk1fQUxMT0NfWkVSTyk7CiAJ cG1hcF9rZW50ZXJfdXNlcihBUk1fVFBfQUREUkVTUywgVk1fUEFHRV9UT19QSFlTKG0pKTsKKwlp ZiAoKG0tPmZsYWdzICYgUEdfWkVSTykgPT0gMCkKKwkJYnplcm8oKHZvaWQqKUFSTV9UUF9BRERS RVNTLCBQQUdFX1NJWkUpOwogI2VuZGlmCi0JaWYgKChtLT5mbGFncyAmIFBHX1pFUk8pID09IDAp Ci0gICAgICAgICAgICAgICAgYnplcm8oKHZvaWQqKUFSTV9UUF9BRERSRVNTLCBQQUdFX1NJWkUp OwogCSoodWludDMyX3QgKilBUk1fUkFTX0VORCA9IDB4ZmZmZmZmZmY7CiB9CiAKIyBIRyBjaGFu Z2VzZXQgcGF0Y2gKIyBVc2VyIElhbiBMZXBvcmUKIyBEYXRlIDEzMjA5MzYxNjcgMjUyMDAKIyAg ICAgIFRodSBOb3YgMTAgMDc6NDI6NDcgMjAxMSAtMDcwMAojIE5vZGUgSUQgMzgxODY1YTYyZmJi MzcwYTU2MGRhOWI1Y2U0YWZmZWVlOTg2ZjM2MgpPbmUgb2Ygb3VyIFJBUyBwYXRjaGVzIHdhcyBh Y2NlcHRlZCBieSBGcmVlQlNEIGluIGEgc2xpZ2h0bHkgZGlmZmVyZW50IGZvcm0KdGhhbiB3ZSBz dWJtaXR0ZWQuICBCcmluZyBvdXIgcmVwbyBpbnRvIGxpbmUgd2l0aCB3aGF0IHRoZXkgZGlkLCB0 byBzbW9vdGgKZnV0dXJlIGltcG9ydHMuCgpkaWZmIC1yIGVhY2I2MGJjYzBkMyAtciAzODE4NjVh NjJmYmIgc3lzL2FybS9hcm0vbWFjaGRlcC5jCi0tLSBhL3N5cy9hcm0vYXJtL21hY2hkZXAuYwlN b24gT2N0IDMxIDA5OjMzOjA3IDIwMTEgLTA2MDAKKysrIGIvc3lzL2FybS9hcm0vbWFjaGRlcC5j CVRodSBOb3YgMTAgMDc6NDI6NDcgMjAxMSAtMDcwMApAQCAtMzA4LDEzICszMDgsMTEgQEAgY3B1 X3N0YXJ0dXAodm9pZCAqZHVtbXkpCiAjaWZkZWYgQVJNX0NBQ0hFX0xPQ0tfRU5BQkxFCiAJcG1h cF9rZW50ZXJfdXNlcihBUk1fVFBfQUREUkVTUywgQVJNX1RQX0FERFJFU1MpOwogCWFybV9sb2Nr X2NhY2hlX2xpbmUoQVJNX1RQX0FERFJFU1MpOwotCWJ6ZXJvKCh2b2lkKilBUk1fVFBfQUREUkVT UywgUEFHRV9TSVpFKTsKICNlbHNlCiAJbSA9IHZtX3BhZ2VfYWxsb2MoTlVMTCwgMCwgVk1fQUxM T0NfTk9PQkogfCBWTV9BTExPQ19aRVJPKTsKIAlwbWFwX2tlbnRlcl91c2VyKEFSTV9UUF9BRERS RVNTLCBWTV9QQUdFX1RPX1BIWVMobSkpOwotCWlmICgobS0+ZmxhZ3MgJiBQR19aRVJPKSA9PSAw KQotCQliemVybygodm9pZCopQVJNX1RQX0FERFJFU1MsIFBBR0VfU0laRSk7CiAjZW5kaWYKKwkq KHVpbnQzMl90ICopQVJNX1JBU19TVEFSVCA9IDA7CiAJKih1aW50MzJfdCAqKUFSTV9SQVNfRU5E ID0gMHhmZmZmZmZmZjsKIH0KIAo= --=-Gd0SewW8hep9THAfDP/4 Content-Disposition: attachment; filename="rasfix.diff" Content-Type: text/x-patch; name="rasfix.diff"; charset="us-ascii" Content-Transfer-Encoding: base64 IyBIRyBjaGFuZ2VzZXQgcGF0Y2gKIyBVc2VyIElhbiBMZXBvcmUKIyBEYXRlIDEzMTQ0ODIxMzAg MjE2MDAKIyAgICAgIFNhdCBBdWcgMjcgMTU6NTU6MzAgMjAxMSAtMDYwMAojIE5vZGUgSUQgOTIw ZWNiODRkYjIwYmQ4ZTc4MmFjZjVmZjI1NGJiNGYyZTljNDdlOQpGaXhlcyBmb3IgYSBjb3VwbGUg cmVsYXRlZCBidWdzIGluIHRoZSBBUk0gUkFTIGxvZ2ljLiAgVGhlIGJ1Z3MgcHJvdmlkZSBhIHNt YWxsCihleGNlZWRpbmdseSBzbWFsbCkgd2luZG93IGR1cmluZyB3aGljaCBhIHJlc3RhcnRhYmxl IGF0b21pYyBzZXF1ZW5jZSBtaWdodCBub3QKZ2V0IHJlc3RhcnRlZCBhcyBpdCBzaG91bGQsIGNh dXNpbmcgb3BlcmF0aW9ucyBmcm9tIGF0b21pYy5oIHRvIGZhaWwuICBUaGlzCm1pZ2h0IHJlc3Vs dCBpbiB0aGluZ3Mgc3VjaCBhcyBoYW5kaW5nIHRoZSBzYW1lIG11dGV4IHRvIHR3byBkaWZmZXJl bnQgdGhyZWFkcwpjb25jdXJyZW50bHkgb3IgZmFpbGluZyB0byBwcm9wZXJseSB1bmxvY2sgYSBt dXRleC4gIChOb3RlOiAgKm1pZ2h0Ki4gIFRoZXNlCnByb2JsZW1zIHdlcmUgZm91bmQgYnkgYW5h bHlzaXMgYW5kIG5vIGNvbmZpcm1lZCBzaWdodGluZyBoYXMgZXZlciBoYXBwZW5lZC4KT24gdGhl IG90aGVyIGhhbmQsIGFueSBudW1iZXIgb2YgcHJvYmxlbXMgd2UndmUgc2VlbiAqbWlnaHQqIGhh dmUgYmVlbiBjYXVzZWQKYnkgYSBSQVMgZmFpbHVyZS4pCgpUaGVzZSBhcmUgdGhlIGZpeGVzIEkg ZGV2ZWxvcGVkIGluIDIwMDgsIGJ1dCB0aGV5IG5ldmVyIGdvdCBjaGVja2VkIGluLgpUZXN0aW5n LXdpc2UsIEkndmUgcnVuIERWQiB3aXRoIHRoZXNlIGNoYW5nZXMgZm9yIG1vbnRocyB3aXRob3V0 IHByb2JsZW1zLgoKSGVyZSdzIG1vcmUgaW5mbyBvbiB0aGUgcHJvYmxlbXMgYW5kIGhvdyB0aGVz ZSBjaGFuZ2VzIGZpeCBpdC4uLgoKVGhlICJub3JtYWwiIFJBUyBzZXF1ZW5jZSBnb2VzIGxpa2Ug dGhpczoKCiAgICAgICAgT24gZW50cnksIFJBU19TVEFSVCA9IDB4MDAwMDAwMDAsIFJBU19FTkQg PSAweGZmZmZmZmZmCgogICAgICAgIDE6IFNldCBSQVNfU1RBUlQgdG8gYWRkcmVzcyBvZiBTdGVw IDEKICAgICAgICAyOiBTZXQgUkFTX0VORCB0byBhZGRyZXNzIG9mIFN0ZXAgNAogICAgICAgIDM6 IERvIHRoZSBhdG9taWMgb3BlcmF0aW9uCiAgICAgICAgNDogU2V0IFJBU19TVEFSVCB0byAweDAw MDAwMDAwCiAgICAgICAgNTogU2V0IFJBU19FTkQgdG8gMHhmZmZmZmZmZgoKV2hpbGUgdGhlIG5v cm1hbCBlbnRyeSBjb25kaXRpb24gaXMgZm9yIFJBU19TVEFSVC9FTkQgdG8gYmUgMHgwLzB4ZmZm ZmZmZmYKdGhlIGNvZGUgaW4gUFVTSEZSQU1FSU5TVkMgZG9lcyBub3QgcmVsaWFibHkgZW5mb3Jj ZSB0aGlzLCB3aGljaCBpcyB0aGUKc291cmNlIG9mIG9uZSBvZiB0aGUgdHdvIGJ1Z3MgaW4gdGhl IGN1cnJlbnQgaW1wbGVtZW50YXRpb24uICBUaGUgb3RoZXIKYnVnIGlzIHRoYXQgdGhlIFBVU0hG UkFNRUlOU1ZDIGNvZGUgY29tcGFyZXMgdGhlIFBDIHRvIFJBU19FTkQgdXNpbmcgYQpzaWduZWQg Y29tcGFyZS9icmFuY2ggc2VxdWVuY2UuCgpUaGUgZmlyc3QgYnVnIGhhcHBlbnMgd2l0aCBpbnRl cmFjdGlvbiBiZXR3ZWVuIGEgcGFpciBvZiB0aHJlYWRzIGRvaW5nIFJBUwpzZXF1ZW5jZXMgYXQg dGhlIHNhbWUgdGltZS4gIFRocmVhZCAxIHJ1bnMgdGhyb3VnaCBzdGVwIDQgb2YgdGhlIHNlcXVl bmNlCmFuZCBnZXRzIGludGVycnVwdGVkIGJlZm9yZSBjb21wbGV0aW5nIHN0ZXAgNS4gIFRoZSBQ VVNIRlJBTUVJTlNWQyBjb2RlCnNlZXMgYSB6ZXJvIGluIFJBU19TVEFSVCBhbmQgZG9lcyBub3Ro aW5nOyBub3RhYmx5IGl0IGRvZXMgbm90IGNoYW5nZSB0aGUKdmFsdWUgaW4gUkFTX0VORCBiZWNh dXNlIFNUQVJUIHdhcyB6ZXJvLiAgVGhyZWFkIDIgYmVnaW5zIHRvIHJ1biBhbmQgZ2V0cwppbnRl cnJ1cHRlZCBiZXR3ZWVuIHN0ZXBzIDEgYW5kIDIuICBOb3cgUFVTSEZSQU1FSU5TVkMgc2VlcyBh IG5vbi16ZXJvClJBU19TVEFSVCwgYW5kIHRoZSBSQVNfRU5EIHZhbHVlIGlzIHdoYXRldmVyIHRo cmVhZCAxIGxlZnQgdGhlcmUgd2hlbiBpdApnb3QgaW50ZXJydXB0ZWQuICBUaGUgYmVoYXZpb3Ig bm93IGRlcGVuZHMgb24gd2hldGhlciB0aGUgUkFTIHNlcXVlbmNlIGluCnRocmVhZCAyIGlzIGF0 IGEgaGlnaGVyIG9yIGxvd2VyIG1lbW9yeSBhZGRyZXNzIHRoYW4gdGhlIG9uZSBpbiB0aHJlYWQg MS4KSW4gb25lIGNhc2UgaXQgYWNjaWRlbnRhbGx5IHdvcmtzIHJpZ2h0LCBpbiB0aGUgb3RoZXIg Y2FzZSBhbiBpbnRlcnJ1cHQKYmV0d2VlbiBzdGVwcyAxIGFuZCAyIHdvdWxkbid0IGxlYWQgdG8g YSBwcm9wZXIgcmVzdGFydCBiZWNhdXNlIHRoZSBQQyBpcwpub3QgYmV0d2VlbiBSQVNfU1RBUlQg YW5kIFJBU19FTkQuICBCdXQgYmVjYXVzZSBSQVNfU1RBUlQgd2FzIG5vbi16ZXJvCndoZW4gdGhy ZWFkIDIgZ290IGludGVycnVwdGVkLCBSQVNfU1RBUlQvRU5EIGdldCByZXNldCwgc28gd2hlbiB0 aHJlYWQgMgpnZXRzIHJlc3VtZWQgYXQgc3RlcCAyIGl0IG5ldmVyIHJlbG9hZHMgUkFTX1NUQVJU LCBhbmQgYW5vdGhlciBpbnRlcnJydXB0CmluIHRoZSBzZXF1ZW5jZSBsZWFkcyB0byBtaXNiZWhh dmlvci4KClRoZSBzZWNvbmQgYnVnIChzaWduZWQgY29tcGFyZSkgaXMgY29uY2VwdHVhbGx5IHNp bXBsZXIsIGhlcmUgaXMgYQpzZXF1ZW5jZSB0aGF0IHRyaWdnZXJzIHRoYXQgYnVnOgoKT24gZW50 cnksIFJBU19TVEFSVC9FTkQgYXJlIDB4MC8weGZmZmZmZmZmLiBBIHRocmVhZCBlbnRlcnMgYSBS QVMKc2VxdWVuY2UgYW5kIGNvbXBsZXRlcyBzdGVwIDEsIHRoZW4gZ2V0cyBpbnRlcnJ1cHRlZCBi ZWZvcmUgY29tcGxldGluZwpzdGVwIDIuICBUaGUgUFVTSEZSQU1FSU5TVkMgY29kZSBzZWVzIGEg bm9uLXplcm8gUkFTX1NUQVJUIHNvIGl0IGNvbXBhcmVzCnRoZSBQQyB0byBSQVNfRU5ELiAgQmVj YXVzZSBvZiB0aGUgc2lnbmVkIGNvbXBhcmUsIHRoZSBQQyB3aWxsIG5ldmVyIGJlCmJldHdlZW4g UkFTX1NUQVJUIGFuZCAtMSwgc28gdGhlIFBVU0hGUkFNRUlOU1ZDIGNvZGUgZG9lc24ndCBzZXQg dXAgZm9yIGEKcmVzdGFydCBhdCB0aGUgUkFTX1NUQVJUIGxvY2F0aW9uLiAgV2hlbiB0aGUgdGhy ZWFkIGV2ZW50dWFsbHkgcmVzdW1lcyBhdApzdGVwIDIsIFJBU19TVEFSVCB3aWxsIGJlIHplcm8s IGFuZCBpZiBpdCBnZXRzIGludGVycnVwdGVkIGFnYWluIGJlZm9yZQp0aGUgZW5kIG9mIHRoZSBh dG9taWMgb3BlcmF0aW9uIGl0IHdvdWxkIG5vdCBnZXQgcmVzdGFydGVkLgoKZGlmZiAtciBiYjE0 ZGRmNDIzNzQgLXIgOTIwZWNiODRkYjIwIHN5cy9hcm0vaW5jbHVkZS9hc21hY3Jvcy5oCi0tLSBh L3N5cy9hcm0vaW5jbHVkZS9hc21hY3Jvcy5oCVdlZCBBdWcgMjQgMTA6MTk6MzcgMjAxMSAtMDYw MAorKysgYi9zeXMvYXJtL2luY2x1ZGUvYXNtYWNyb3MuaAlTYXQgQXVnIDI3IDE1OjU1OjMwIDIw MTEgLTA2MDAKQEAgLTcxLDkgKzcxLDggQEAKIAlsZHIJcjAsID1BUk1fUkFTX1NUQVJUOwkJCQkJ ICAgXAogCW1vdglyMSwgIzA7CQkJCQkJCSAgIFwKIAlzdHIJcjEsIFtyMF07CQkJCQkJICAgXAot CWxkcglyMCwgPUFSTV9SQVNfRU5EOwkJCQkJICAgXAogCW1vdglyMSwgIzB4ZmZmZmZmZmY7CQkJ CQkgICBcCi0Jc3RyCXIxLCBbcjBdOworCXN0cglyMSwgW3IwLCAjNF07CiAKIC8qCiAgKiBQVUxM RlJBTUUgLSBtYWNybyB0byBwdWxsIGEgdHJhcCBmcmFtZSBmcm9tIHRoZSBzdGFjayBpbiB0aGUg Y3VycmVudCBtb2RlCkBAIC0xMTgsMjMgKzExNywyMiBAQAogCXN0bWlhCXNwLCB7cjAtcjEyfTsJ CS8qIFB1c2ggdGhlIHVzZXIgbW9kZSByZWdpc3RlcnMgKi8gXAogCWFkZAlyMCwgc3AsICMoNCox Myk7CS8qIEFkanVzdCB0aGUgc3RhY2sgcG9pbnRlciAqLwkgICBcCiAJc3RtaWEJcjAsIHtyMTMt cjE0fV47CQkvKiBQdXNoIHRoZSB1c2VyIG1vZGUgcmVnaXN0ZXJzICovIFwKLSAgICAgICAgbW92 ICAgICByMCwgcjA7ICAgICAgICAgICAgICAgICAvKiBOT1AgZm9yIHByZXZpb3VzIGluc3RydWN0 aW9uICovIFwKLQlsZHIJcjUsID1BUk1fUkFTX1NUQVJUOwkvKiBDaGVjayBpZiB0aGVyZSdzIGFu eSBSQVMgKi8JICAgXAotCWxkcglyMywgW3I1XTsJCQkJCQkgICBcCi0JY21wCXIzLCAjMDsJCQkv KiBJcyB0aGUgdXBkYXRlIG5lZWRlZCA/ICovCSAgIFwKLQlsZHJndAlsciwgW3IwLCAjMTZdOwkJ CQkJCSAgIFwKLQlsZHJndAlyMSwgPUFSTV9SQVNfRU5EOwkJCQkJICAgXAotCWxkcmd0CXI0LCBb cjFdOwkJLyogR2V0IHRoZSBlbmQgb2YgdGhlIFJBUyAqLwkgICBcCi0JbW92Z3QJcjIsICMwOwkJ CS8qIFJlc2V0IHRoZSBtYWdpYyBhZGRyZXNzZXMgKi8JICAgXAotCXN0cmd0CXIyLCBbcjVdOwkJ CQkJCSAgIFwKLQltb3ZndAlyMiwgIzB4ZmZmZmZmZmY7CQkJCQkgICBcCi0Jc3RyZ3QJcjIsIFty MV07CQkJCQkJICAgXAotCWNtcGd0CWxyLCByMzsJCQkvKiBXZXJlIHdlIGluIHRoZSBSQVMgPyAq LwkgICBcCi0JY21wZ3QJcjQsIGxyOwkJCQkJCQkgICBcCi0Jc3RyZ3QJcjMsIFtyMCwgIzE2XTsJ CS8qIFllcywgdXBkYXRlIHRoZSBwYyAqLwkgICBcCi0JbXJzCXIwLCBzcHNyX2FsbDsJCS8qIFB1 dCB0aGUgU1BTUiBvbiB0aGUgc3RhY2sgKi8JICAgXAotCXN0cglyMCwgW3NwLCAjLTRdIQotCisJ bW92ICAgICByMCwgcjA7ICAgICAgICAgICAgICAgICAvKiBOT1AgZm9yIHByZXZpb3VzIGluc3Ry dWN0aW9uICovIFwKKwlsZHIgICAgIHI1LCA9QVJNX1JBU19TVEFSVDsgICAgIC8qIFJldHJpZXZl IGdsb2JhbCBSQVNfRU5EIGFuZCAgKi8gXAorCWxkciAgICAgcjQsIFtyNSwgIzRdOyAgICAgICAg ICAgLyogcmVzZXQgaXQgdG8gcG9pbnQgYXQgdGhlICAgICAqLyBcCisJY21wICAgICByNCwgIzB4 ZmZmZmZmZmY7ICAgICAgICAvKiBlbmQgb2YgbWVtb3J5IGlmIG5lY2Vzc2FyeTsgICovIFwKKwlt b3ZuZSAgIHIxLCAjMHhmZmZmZmZmZjsgICAgICAgIC8qIGxlYXZlIHZhbHVlIGluIHI0IGZvciBs YXRlciAgKi8gXAorCXN0cm5lICAgcjEsIFtyNSwgIzRdOyAgICAgICAgICAgLyogY29tcGFyaXNp b24gYWdhaW5zdCBQQy4gICAgICAqLyBcCisJbGRyICAgICByMywgW3I1XTsgICAgICAgICAgICAg ICAvKiBSZXRyaWV2ZSBnbG9iYWwgUkFTX1NUQVJUICAgICovIFwKKwljbXAgICAgIHIzLCAjMDsg ICAgICAgICAgICAgICAgIC8qIGFuZCByZXNldCBpdCBpZiBub24temVyby4gICAgKi8gXAorCW1v dm5lICAgcjEsICMwOyAgICAgICAgICAgICAgICAgLyogSWYgbm9uLXplcm8gUkFTX1NUQVJUIGFu ZCAgICAqLyBcCisJc3RybmUgICByMSwgW3I1XTsgICAgICAgICAgICAgICAvKiBQQyB3YXMgbG93 ZXIgdGhhbiBSQVNfRU5ELCAgICovIFwKKwlsZHJuZSAgIHIxLCBbcjAsICMxNl07ICAgICAgICAg IC8qIGFkanVzdCB0aGUgc2F2ZWQgUEMgc28gdGhhdCAgKi8gXAorCWNtcG5lICAgcjQsIHIxOyAg ICAgICAgICAgICAgICAgLyogZXhlY3V0aW9uIGxhdGVyIHJlc3VtZXMgYXQgICAqLyBcCisJc3Ry aGkgICByMywgW3IwLCAjMTZdOyAgICAgICAgICAvKiB0aGUgUkFTX1NUQVJUIGxvY2F0aW9uLiAg ICAgICovIFwKKwltcnMgICAgIHIwLCBzcHNyX2FsbDsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgXAorCXN0ciAgICAgcjAsIFtzcCwgIy00XSEKKyAgICAgICAg ICAgIAogLyoKICAqIFBVTExGUkFNRUZST01TVkNBTkRFWElUIC0gbWFjcm8gdG8gcHVsbCBhIHRy YXAgZnJhbWUgZnJvbSB0aGUgc3RhY2sKICAqIGluIFNWQzMyIG1vZGUgYW5kIHJlc3RvcmUgdGhl IHNhdmVkIHByb2Nlc3NvciBtb2RlIGFuZCBQQy4KZGlmZiAtciBiYjE0ZGRmNDIzNzQgLXIgOTIw ZWNiODRkYjIwIHN5cy9hcm0vaW5jbHVkZS9zeXNhcmNoLmgKLS0tIGEvc3lzL2FybS9pbmNsdWRl L3N5c2FyY2guaAlXZWQgQXVnIDI0IDEwOjE5OjM3IDIwMTEgLTA2MDAKKysrIGIvc3lzL2FybS9p bmNsdWRlL3N5c2FyY2guaAlTYXQgQXVnIDI3IDE1OjU1OjMwIDIwMTEgLTA2MDAKQEAgLTQyLDkg KzQyLDEzIEBACiAgKiBUaGUgQVJNX1RQX0FERFJFU1MgcG9pbnRzIHRvIGEgc3BlY2lhbCBwdXJw b3NlIHBhZ2UsIHdoaWNoIGlzIHVzZWQgYXMgbG9jYWwKICAqIHN0b3JlIGZvciB0aGUgQVJNIHBl ci10aHJlYWQgZGF0YSBhbmQgUmVzdGFydGFibGUgQXRvbWljIFNlcXVlbmNlcyBzdXBwb3J0Lgog ICogUHV0IGl0IGp1c3QgYWJvdmUgdGhlICJoaWdoIiB2ZWN0b3JzJyBwYWdlLgotICogdGhlIGNw dV9zd2l0Y2goKSBjb2RlIGFzc3VtZXMgQVJNX1JBU19TVEFSVCBpcyBBUk1fVFBfQUREUkVTUyAr IDQsIGFuZAorICogVGhlIGNwdV9zd2l0Y2goKSBjb2RlIGFzc3VtZXMgQVJNX1JBU19TVEFSVCBp cyBBUk1fVFBfQUREUkVTUyArIDQsIGFuZAogICogQVJNX1JBU19FTkQgaXMgQVJNX1RQX0FERFJF U1MgKyA4LCBzbyBpZiB0aGF0IGV2ZXIgY2hhbmdlcywgYmUgc3VyZSB0bwogICogdXBkYXRlIHRo ZSBjcHVfc3dpdGNoKCkgKGFuZCBjcHVfdGhyb3coKSkgY29kZSBhcyB3ZWxsLgorICogSW4gYWRk aXRpb24sIGNvZGUgaW4gYXJtL2luY2x1ZGUvYXRvbWljLmggYW5kIGFybS9pbmNsdWRlL2FzbWFj cm9zLmgKKyAqIGFzc3VtZXMgdGhhdCBBUk1fUkFTX0VORCBpcyBhdCBBUk1fUkFTX1NUQVJUKzQs IHNvIGJlIHN1cmUgdG8gdXBkYXRlIHRob3NlCisgKiBpZiBBUk1fUkFTX0VORCBtb3ZlcyBpbiBy ZWxhdGlvbiB0byBBUk1fUkFTX1NUQVJUIChsb29rIGZvciBvY2N1cnJhbmNlcworICogb2YgbGRy L3N0ciBybSxbcm4sICM0XSkuCiAgKi8KICNkZWZpbmUgQVJNX1RQX0FERFJFU1MJCShBUk1fVkVD VE9SU19ISUdIICsgMHgxMDAwKQogI2RlZmluZSBBUk1fUkFTX1NUQVJUCQkoQVJNX1RQX0FERFJF U1MgKyA0KQoK --=-Gd0SewW8hep9THAfDP/4 Content-Disposition: attachment; filename="stackprot_fix.diff" Content-Type: text/x-patch; name="stackprot_fix.diff"; charset="us-ascii" Content-Transfer-Encoding: base64 IyBIRyBjaGFuZ2VzZXQgcGF0Y2gKIyBVc2VyIElhbiBMZXBvcmUKIyBEYXRlIDEzMjM1NDg1MDQg MjUyMDAKIyAgICAgIFNhdCBEZWMgMTAgMTM6MjE6NDQgMjAxMSAtMDcwMAojIE5vZGUgSUQgMDJi Y2RiY2RiMGZjYTA5YTkyMTIyNjdiOTM3MmUyZjVmOTNlMTk0ZgpQdWxsIGluIGEgcGF0Y2ggZnJl ZWJzZCByZWNlbnRseSBhcHBsaWVkIHRvIGZpeCBhIGNvbXBpbGVyIGNvZGUgZ2VuIGJ1ZyBmb3Ig YXJtLgpUaGUgYnVnIHdvdWxkIGdlbmVyYXRlIGJhZCBjb2RlIHVuZGVyIHNvbWUgY29uZGl0aW9u cyB3aGVuIHRoZSAtZnN0YWNrLXByb3RlY3RvcgpvcHRpb24gaXMgdXNlZCAod2hpY2ggaXQgaXMg d2hlbiBjb21waWxpbmcgZnJlZWJzZCBjb2RlKS4KCkZvciBtb3JlIGluZm8sIHNlZS4uLgoKICBo dHRwOi8vd3d3LmZyZWVic2Qub3JnL2NnaS9xdWVyeS1wci5jZ2k/cHI9MTYxMTI4CiAgaHR0cDov L2djYy5nbnUub3JnL2J1Z3ppbGxhL3Nob3dfYnVnLmNnaT9pZD0zNTk2NQoKZGlmZiAtciAzODE4 NjVhNjJmYmIgLXIgMDJiY2RiY2RiMGZjIGNvbnRyaWIvZ2NjL2NvbmZpZy9hcm0vYXJtLmMKLS0t IGEvY29udHJpYi9nY2MvY29uZmlnL2FybS9hcm0uYwlUaHUgTm92IDEwIDA3OjQyOjQ3IDIwMTEg LTA3MDAKKysrIGIvY29udHJpYi9nY2MvY29uZmlnL2FybS9hcm0uYwlTYXQgRGVjIDEwIDEzOjIx OjQ0IDIwMTEgLTA3MDAKQEAgLTMyMTcsNyArMzIxNyw4IEBAIGxlZ2l0aW1pemVfcGljX2FkZHJl c3MgKHJ0eCBvcmlnLCBlbnVtIG0KIAkgIGdjY19hc3NlcnQgKCFub19uZXdfcHNldWRvcyk7CiAJ ICBpZiAoYXJtX3BpY19yZWdpc3RlciAhPSBJTlZBTElEX1JFR05VTSkKIAkgICAgewotCSAgICAg IGNmdW4tPm1hY2hpbmUtPnBpY19yZWcgPSBnZW5fcnR4X1JFRyAoUG1vZGUsIGFybV9waWNfcmVn aXN0ZXIpOworCSAgICAgIGlmICghY2Z1bi0+bWFjaGluZS0+cGljX3JlZykKKwkJY2Z1bi0+bWFj aGluZS0+cGljX3JlZyA9IGdlbl9ydHhfUkVHIChQbW9kZSwgYXJtX3BpY19yZWdpc3Rlcik7CiAK IAkgICAgICAvKiBQbGF5IGdhbWVzIHRvIGF2b2lkIG1hcmtpbmcgdGhlIGZ1bmN0aW9uIGFzIG5l ZWRpbmcgcGljCiAJCSBpZiB3ZSBhcmUgYmVpbmcgY2FsbGVkIGFzIHBhcnQgb2YgdGhlIGNvc3Qt ZXN0aW1hdGlvbgpAQCAtMzIyOSw3ICszMjMwLDggQEAgbGVnaXRpbWl6ZV9waWNfYWRkcmVzcyAo cnR4IG9yaWcsIGVudW0gbQogCSAgICB7CiAJICAgICAgcnR4IHNlcTsKIAotCSAgICAgIGNmdW4t Pm1hY2hpbmUtPnBpY19yZWcgPSBnZW5fcmVnX3J0eCAoUG1vZGUpOworCSAgICAgIGlmICghY2Z1 bi0+bWFjaGluZS0+cGljX3JlZykKKwkJICBjZnVuLT5tYWNoaW5lLT5waWNfcmVnID0gZ2VuX3Jl Z19ydHggKFBtb2RlKTsKIAogCSAgICAgIC8qIFBsYXkgZ2FtZXMgdG8gYXZvaWQgbWFya2luZyB0 aGUgZnVuY3Rpb24gYXMgbmVlZGluZyBwaWMKIAkJIGlmIHdlIGFyZSBiZWluZyBjYWxsZWQgYXMg cGFydCBvZiB0aGUgY29zdC1lc3RpbWF0aW9uCg== --=-Gd0SewW8hep9THAfDP/4--