Date: Tue, 13 Sep 2011 14:36:53 -0400 From: Arnaud Lacombe <lacombar@gmail.com> To: Jack Vogel <jfvogel@gmail.com> Cc: freebsd-net@freebsd.org Subject: Re: FreeBSD 7-STABLE mbuf corruption Message-ID: <CACqU3MV7JRxQ_mNeHCk7RVyzETZLAcc3XL=xyZ-qqtPfRxkZeQ@mail.gmail.com> In-Reply-To: <CAFOYbc=mu7rGU8LudLSzZwKfM3QHFw%2BPGEHHKD3rcA2=dxGfoQ@mail.gmail.com> References: <CACqU3MUs9Z9GeuGe=8iVp=MWV6eG-tO%2BkHb1znatsTq2uEqwvA@mail.gmail.com> <CACqU3MXf52tLajTfVCEiGGhtCuXsesrdM65LfsoGecuZj2tNwA@mail.gmail.com> <CAFOYbc=mu7rGU8LudLSzZwKfM3QHFw%2BPGEHHKD3rcA2=dxGfoQ@mail.gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
--bcaec520ed5777122404acd6ed09 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Hi, On Wed, Sep 7, 2011 at 7:57 PM, Jack Vogel <jfvogel@gmail.com> wrote: > I have seen this, but I don't have any hot ideas right off the top of my > head yet :( > I've been running for 19h now the following patches: - backport of kmacy@'s buf_ring(9) API, from FreeBSD 8 (from [0], see attachment for full diff) - conversion of igb(4), from CURRENT, to use buf_ring(9) on FreeBSD 7.1 (see attachment) - all the original patches I already sent It did not crash, yet. The only downside is that after 3h30 and ~4h, igb(4) queues' handler started spinning infinitely, breaking network connectivity. I would be tempted to say that the infinite loop issue is an igb(4) (separate from the original crashes), and to link the crashes I was seeing to a race in the legacy IFQ code... - Arnaud [0]: roughly, a cherry-pick of r185162, r185164, r185193, r185543, r186207, r186213, r191033, r191161, r191899, r193848 and r194518. > Jack > > > On Wed, Sep 7, 2011 at 4:19 PM, Arnaud Lacombe <lacombar@gmail.com> wrote= : >> >> Hi, >> >> On Mon, Sep 5, 2011 at 2:59 AM, Arnaud Lacombe <lacombar@gmail.com> wrot= e: >> > Hi folks, >> > >> > We have been trying to track down a bad mbuf management for about two >> > weeks on a customized 7.1 base. I have finally been able to reproduce >> > it with a stock FreeBSD 7-STABLE (kernel from r225276, userland from >> > 7.4). >> > >> > With the help of the attached patches, I have just been able to >> > trigger the following panic: >> > >> > panic: Corrupted unused flags, expected 0xffffffff00000000, got 0x0, >> > flags 0x3 >> > cpuid =3D 1 >> > Uptime: 3d10h5m3s >> > Cannot dump. No dump device defined >> > >> General form of the crash is: >> >> panic: Corrupted unused flags, expected 0xffffffff00000000, got >> 0xbabe0000000000, flags 0xbabe0000babe00 >> cpuid =3D 0 >> KDB: stack backtrace: >> db_trace_self_wrapper(c0874e29,0,c0835757,f4574c48,0,...) at >> db_trace_self_wrapper+0x26 >> panic(c0835757,0,ffffffff,0,babe00,...) at panic+0x10b >> igb_txeof(c6a25008,0,c0837083,5ea,17c,...) at igb_txeof+0x399 >> igb_msix_que(c6a2b800,0,c084d367,4b6,c69dd068,...) at igb_msix_que+0x7b >> ithread_loop(c6a29090,f4574d38,c084d0db,31c,c6a16828,...) at >> ithread_loop+0xc3 >> fork_exit(c061d520,c6a29090,f4574d38) at fork_exit+0xa6 >> fork_trampoline() at fork_trampoline+0x8 >> --- trap 0, eip =3D 0, esp =3D 0xf4574d70, ebp =3D 0 --- >> Uptime: 1m42s >> >> It happens particularly easily when the box receives wall of SYN >> (about 1000 cnx attempts at once) every 5s or so. >> >> =A0- Arnaud >> >> > >> > [cut stuff no one cares about...] > > --bcaec520ed5777122404acd6ed09 Content-Type: text/x-patch; charset=US-ASCII; name="buf_ring_backport.diff" Content-Disposition: attachment; filename="buf_ring_backport.diff" Content-Transfer-Encoding: base64 X-Attachment-Id: f_gsj7uwhq0 ZGlmZiAtLWdpdCBhL3N5cy9hbWQ2NC9pbmNsdWRlL2F0b21pYy5oIGIvc3lzL2FtZDY0L2luY2x1 ZGUvYXRvbWljLmgKaW5kZXggNTJjOTBjOS4uYTk5NzFjZCAxMDA2NDQKLS0tIGEvc3lzL2FtZDY0 L2luY2x1ZGUvYXRvbWljLmgKKysrIGIvc3lzL2FtZDY0L2luY2x1ZGUvYXRvbWljLmgKQEAgLTMy LDYgKzMyLDEwIEBACiAjZXJyb3IgdGhpcyBmaWxlIG5lZWRzIHN5cy9jZGVmcy5oIGFzIGEgcHJl cmVxdWlzaXRlCiAjZW5kaWYKIAorI2RlZmluZSBtYigpCV9fYXNtX18gX192b2xhdGlsZV9fICgi bWZlbmNlOyI6IDogOiJtZW1vcnkiKQorI2RlZmluZSB3bWIoKQlfX2FzbV9fIF9fdm9sYXRpbGVf XyAoInNmZW5jZTsiOiA6IDoibWVtb3J5IikKKyNkZWZpbmUgcm1iKCkJX19hc21fXyBfX3ZvbGF0 aWxlX18gKCJsZmVuY2U7IjogOiA6Im1lbW9yeSIpCisKIC8qCiAgKiBWYXJpb3VzIHNpbXBsZSBv cGVyYXRpb25zIG9uIG1lbW9yeSwgZWFjaCBvZiB3aGljaCBpcyBhdG9taWMgaW4gdGhlCiAgKiBw cmVzZW5jZSBvZiBpbnRlcnJ1cHRzIGFuZCBtdWx0aXBsZSBwcm9jZXNzb3JzLgpkaWZmIC0tZ2l0 IGEvc3lzL2FybS9pbmNsdWRlL2F0b21pYy5oIGIvc3lzL2FybS9pbmNsdWRlL2F0b21pYy5oCmlu ZGV4IGJlZDVhNzIuLmYwYmUzYWUgMTAwNjQ0Ci0tLSBhL3N5cy9hcm0vaW5jbHVkZS9hdG9taWMu aAorKysgYi9zeXMvYXJtL2luY2x1ZGUvYXRvbWljLmgKQEAgLTQ1LDYgKzQ1LDExIEBACiAKICNp bmNsdWRlIDxzeXMvdHlwZXMuaD4KIAorCisjZGVmaW5lCW1iKCkKKyNkZWZpbmUJd21iKCkKKyNk ZWZpbmUJcm1iKCkKKwogI2lmbmRlZiBJMzJfYml0CiAjZGVmaW5lIEkzMl9iaXQgKDEgPDwgNykg ICAgICAgIC8qIElSUSBkaXNhYmxlICovCiAjZW5kaWYKZGlmZiAtLWdpdCBhL3N5cy9jb25mL2Zp bGVzIGIvc3lzL2NvbmYvZmlsZXMKaW5kZXggODIyNmUxMS4uZDUzNTFjMSAxMDA2NDQKLS0tIGEv c3lzL2NvbmYvZmlsZXMKKysrIGIvc3lzL2NvbmYvZmlsZXMKQEAgLTE2NzYsNiArMTY3Niw3IEBA IGtlcm4vc3Vicl9hY2xfcG9zaXgxZS5jCQlzdGFuZGFyZAoga2Vybi9zdWJyX2F1dG9jb25mLmMJ CXN0YW5kYXJkCiBrZXJuL3N1YnJfYmxpc3QuYwkJc3RhbmRhcmQKIGtlcm4vc3Vicl9idXMuYwkJ CXN0YW5kYXJkCitrZXJuL3N1YnJfYnVmcmluZy5jCQlzdGFuZGFyZAoga2Vybi9zdWJyX2Nsb2Nr LmMJCXN0YW5kYXJkCiBrZXJuL3N1YnJfZGV2c3RhdC5jCQlzdGFuZGFyZAoga2Vybi9zdWJyX2Rp c2suYwkJc3RhbmRhcmQKZGlmZiAtLWdpdCBhL3N5cy9kZXYvYmNlL2lmX2JjZXJlZy5oIGIvc3lz L2Rldi9iY2UvaWZfYmNlcmVnLmgKaW5kZXggNzIzZmQyNi4uMmJiNTg5ZiAxMDA2NDQKLS0tIGEv c3lzL2Rldi9iY2UvaWZfYmNlcmVnLmgKKysrIGIvc3lzL2Rldi9iY2UvaWZfYmNlcmVnLmgKQEAg LTU0MSw2ICs1NDEsOCBAQCBkZWZhdWx0OiBEQlBSSU5UKHNjLCBCQ0VfSU5TQU5FX1BIWSwJCQkJ CVwKIAogI2VuZGlmIC8qIEJDRV9ERUJVRyAqLwogCisKKyNpZiBfX0ZyZWVCU0RfdmVyc2lvbiA8 IDgwMDA1NAogI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX19hbWQ2NF9fKQogI2Rl ZmluZSBtYigpICAgIF9fYXNtIHZvbGF0aWxlKCJtZmVuY2UiIDo6OiAibWVtb3J5IikKICNkZWZp bmUgd21iKCkgICBfX2FzbSB2b2xhdGlsZSgic2ZlbmNlIiA6OjogIm1lbW9yeSIpCkBAIC01NTAs NiArNTUyLDcgQEAgZGVmYXVsdDogREJQUklOVChzYywgQkNFX0lOU0FORV9QSFksCQkJCQlcCiAj ZGVmaW5lIHJtYigpCiAjZGVmaW5lIHdtYigpCiAjZW5kaWYKKyNlbmRpZgogCiAvKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKi8KIC8qIERldmljZSBpZGVudGlmaWNhdGlvbiBkZWZpbml0aW9ucy4gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwpkaWZmIC0tZ2l0IGEvc3lzL2Rldi9j eGdiL2N4Z2JfYWRhcHRlci5oIGIvc3lzL2Rldi9jeGdiL2N4Z2JfYWRhcHRlci5oCmluZGV4IGI1 NGQzNDAuLmE2MDk5YTAgMTAwNjQ0Ci0tLSBhL3N5cy9kZXYvY3hnYi9jeGdiX2FkYXB0ZXIuaAor KysgYi9zeXMvZGV2L2N4Z2IvY3hnYl9hZGFwdGVyLmgKQEAgLTQyLDYgKzQyLDcgQEAgJEZyZWVC U0QkCiAjaW5jbHVkZSA8c3lzL3NvY2tldC5oPgogI2luY2x1ZGUgPHN5cy9zb2NraW8uaD4KICNp bmNsdWRlIDxzeXMvY29uZHZhci5oPgorI2luY2x1ZGUgPHN5cy9idWZfcmluZy5oPgogCiAjaW5j bHVkZSA8bmV0L2V0aGVybmV0Lmg+CiAjaW5jbHVkZSA8bmV0L2lmLmg+CkBAIC0yNjUsNyArMjY2 LDcgQEAgc3RydWN0IHNnZV90eHEgewogCSAqIG1idWYgdG91Y2hlcwogCSAqLwogCXN0cnVjdCBt YnVmX2hlYWQgY2xlYW5xOwkKLQlzdHJ1Y3QgYnVmX3JpbmcgdHhxX21yOworCXN0cnVjdCBidWZf cmluZyAqdHhxX21yOwogCXN0cnVjdCBtYnVmICAgICAqaW1tcGt0OwogCXVpbnQzMl90ICAgICAg ICB0eHFfZHJvcHM7CiAJdWludDMyX3QgICAgICAgIHR4cV9za2lwcGVkOwpkaWZmIC0tZ2l0IGEv c3lzL2Rldi9jeGdiL2N4Z2JfbXVsdGlxLmMgYi9zeXMvZGV2L2N4Z2IvY3hnYl9tdWx0aXEuYwpp bmRleCAwNDViMDk0Li5kYzY2N2JlIDEwMDY0NAotLS0gYS9zeXMvZGV2L2N4Z2IvY3hnYl9tdWx0 aXEuYworKysgYi9zeXMvZGV2L2N4Z2IvY3hnYl9tdWx0aXEuYwpAQCAtMTM0LDcgKzEzNCw3IEBA IGN4Z2JfcGNwdV9lbnF1ZXVlX3BhY2tldF8oc3RydWN0IHNnZV9xc2V0ICpxcywgc3RydWN0IG1i dWYgKm0pCiAJCXJldHVybiAoRU5FVERPV04pOwogCX0KIAl0eHEgPSAmcXMtPnR4cVtUWFFfRVRI XTsKLQllcnIgPSBidWZfcmluZ19lbnF1ZXVlKCZ0eHEtPnR4cV9tciwgbSk7CisJZXJyID0gZHJi cl9lbnF1ZXVlKHFzLT5wb3J0LT5pZnAsIHR4cS0+dHhxX21yLCBtKTsKIAlpZiAoZXJyKSB7CiAJ CXR4cS0+dHhxX2Ryb3BzKys7CiAJCW1fZnJlZW0obSk7CkBAIC0xOTksMTQgKzE5OSwxMSBAQCBj eGdiX2RlcXVldWVfcGFja2V0KHN0cnVjdCBzZ2VfdHhxICp0eHEsIHN0cnVjdCBtYnVmICoqbV92 ZWMpCiAJfQogCXNjID0gcXMtPnBvcnQtPmFkYXB0ZXI7CiAKLQltID0gYnVmX3JpbmdfZGVxdWV1 ZSgmdHhxLT50eHFfbXIpOworCW0gPSBidWZfcmluZ19kZXF1ZXVlX3NjKHR4cS0+dHhxX21yKTsK IAlpZiAobSA9PSBOVUxMKSAKIAkJcmV0dXJuICgwKTsKIAogCWNvdW50ID0gMTsKLQlLQVNTRVJU KG0tPm1fdHlwZSA9PSBNVF9EQVRBLAotCSAgICAoIm09JXAgaXMgYmFkIG1idWYgdHlwZSAlZCBm cm9tIHJpbmcgY29ucz0lZCBwcm9kPSVkIiwgbSwKLQkJbS0+bV90eXBlLCB0eHEtPnR4cV9tci5i cl9jb25zLCB0eHEtPnR4cV9tci5icl9wcm9kKSk7CiAJbV92ZWNbMF0gPSBtOwogCWlmIChtLT5t X3BrdGhkci50c29fc2Vnc3ogPiAwIHx8IG0tPm1fcGt0aGRyLmxlbiA+IFRYX1dSX1NJWkVfTUFY IHx8CiAJICAgIG0tPm1fbmV4dCAhPSBOVUxMIHx8IChjeGdiX3BjcHVfdHhfY29hbGVzY2UgPT0g MCkpIHsKQEAgLTIxNCwxNCArMjExLDE0IEBAIGN4Z2JfZGVxdWV1ZV9wYWNrZXQoc3RydWN0IHNn ZV90eHEgKnR4cSwgc3RydWN0IG1idWYgKiptX3ZlYykKIAl9CiAKIAlzaXplID0gbS0+bV9wa3Ro ZHIubGVuOwotCWZvciAobSA9IGJ1Zl9yaW5nX3BlZWsoJnR4cS0+dHhxX21yKTsgbSAhPSBOVUxM OwotCSAgICAgbSA9IGJ1Zl9yaW5nX3BlZWsoJnR4cS0+dHhxX21yKSkgeworCWZvciAobSA9IGJ1 Zl9yaW5nX3BlZWsodHhxLT50eHFfbXIpOyBtICE9IE5VTEw7CisJICAgICBtID0gYnVmX3Jpbmdf cGVlayh0eHEtPnR4cV9tcikpIHsKIAogCQlpZiAobS0+bV9wa3RoZHIudHNvX3NlZ3N6ID4gMCB8 fAogCQkgICAgc2l6ZSArIG0tPm1fcGt0aGRyLmxlbiA+IFRYX1dSX1NJWkVfTUFYIHx8IG0tPm1f bmV4dCAhPSBOVUxMKQogCQkJYnJlYWs7CiAKLQkJYnVmX3JpbmdfZGVxdWV1ZSgmdHhxLT50eHFf bXIpOworCQlidWZfcmluZ19kZXF1ZXVlX3NjKHR4cS0+dHhxX21yKTsKIAkJc2l6ZSArPSBtLT5t X3BrdGhkci5sZW47CiAJCW1fdmVjW2NvdW50KytdID0gbTsKIApAQCAtMzcyLDcgKzM2OSw3IEBA IGN4Z2JfcGNwdV9mcmVlKHN0cnVjdCBzZ2VfcXNldCAqcXMpCiAJbXR4X2xvY2soJnR4cS0+bG9j ayk7CiAJd2hpbGUgKChtID0gbWJ1ZnFfZGVxdWV1ZSgmdHhxLT5zZW5kcSkpICE9IE5VTEwpIAog CQltX2ZyZWVtKG0pOwotCXdoaWxlICgobSA9IGJ1Zl9yaW5nX2RlcXVldWUoJnR4cS0+dHhxX21y KSkgIT0gTlVMTCkgCisJd2hpbGUgKChtID0gYnVmX3JpbmdfZGVxdWV1ZV9zYyh0eHEtPnR4cV9t cikpICE9IE5VTEwpIAogCQltX2ZyZWVtKG0pOwogCiAJdDNfZnJlZV90eF9kZXNjX2FsbCh0eHEp OwpAQCAtNDM0LDcgKzQzMSw3IEBAIGN4Z2JfcGNwdV9zdGFydF8oc3RydWN0IHNnZV9xc2V0ICpx cywgc3RydWN0IG1idWYgKmltbXBrdCwgaW50IHR4X2ZsdXNoKQogCQlpbml0ZXJyID0gRU5FVERP V047CiAJZWxzZSBpZiAoaW1tcGt0KSB7CiAKLQkJaWYgKCFidWZfcmluZ19lbXB0eSgmdHhxLT50 eHFfbXIpKSAKKwkJaWYgKCFidWZfcmluZ19lbXB0eSh0eHEtPnR4cV9tcikpIAogCQkJaW5pdGVy ciA9IGN4Z2JfcGNwdV9lbnF1ZXVlX3BhY2tldF8ocXMsIGltbXBrdCk7CiAJCWVsc2UKIAkJCXR4 cS0+aW1tcGt0ID0gaW1tcGt0OwpAQCAtNDY1LDcgKzQ2Miw3IEBAIGN4Z2JfcGNwdV9zdGFydF8o c3RydWN0IHNnZV9xc2V0ICpxcywgc3RydWN0IG1idWYgKmltbXBrdCwgaW50IHR4X2ZsdXNoKQog CX0KIAogCXN0b3BwZWQgPSBpc3NldCgmcXMtPnR4cV9zdG9wcGVkLCBUWFFfRVRIKTsKLQlmbHVz aCA9ICgoKCFidWZfcmluZ19lbXB0eSgmdHhxLT50eHFfbXIpIHx8ICghSUZRX0RSVl9JU19FTVBU WSgmcGktPmlmcC0+aWZfc25kKSkpICYmICFzdG9wcGVkKSB8fCB0eHEtPmltbXBrdCk7IAorCWZs dXNoID0gKCgoIWJ1Zl9yaW5nX2VtcHR5KHR4cS0+dHhxX21yKSB8fCAoIUlGUV9EUlZfSVNfRU1Q VFkoJnBpLT5pZnAtPmlmX3NuZCkpKSAmJiAhc3RvcHBlZCkgfHwgdHhxLT5pbW1wa3QpOyAKIAlt YXhfZGVzYyA9IHR4X2ZsdXNoID8gVFhfRVRIX1FfU0laRSA6IFRYX1NUQVJUX01BWF9ERVNDOwog CiAJaWYgKGN4Z2JfZGVidWcpCkBAIC00NzYsNyArNDczLDcgQEAgY3hnYl9wY3B1X3N0YXJ0Xyhz dHJ1Y3Qgc2dlX3FzZXQgKnFzLCBzdHJ1Y3QgbWJ1ZiAqaW1tcGt0LCBpbnQgdHhfZmx1c2gpCiAK IAogCWlmICgodHhfZmx1c2ggJiYgZmx1c2ggJiYgZXJyID09IDApICYmCi0JICAgICghYnVmX3Jp bmdfZW1wdHkoJnR4cS0+dHhxX21yKSAgfHwKKwkgICAgKCFidWZfcmluZ19lbXB0eSh0eHEtPnR4 cV9tcikgIHx8CiAJCSFJRlFfRFJWX0lTX0VNUFRZKCZwaS0+aWZwLT5pZl9zbmQpKSkgewogCQlz dHJ1Y3QgdGhyZWFkICp0ZCA9IGN1cnRocmVhZDsKIApAQCAtNTI2LDcgKzUyMyw3IEBAIGN4Z2Jf cGNwdV9zdGFydChzdHJ1Y3QgaWZuZXQgKmlmcCwgc3RydWN0IG1idWYgKmltbXBrdCkKIAl0eHEg PSAmcXMtPnR4cVtUWFFfRVRIXTsKIAogCWlmICgoKHNjLT50dW5xX2NvYWxlc2NlID09IDApIHx8 Ci0JCShidWZfcmluZ19jb3VudCgmdHhxLT50eHFfbXIpID49IFRYX1dSX0NPVU5UX01BWCkgfHwK KwkJKGJ1Zl9yaW5nX2NvdW50KHR4cS0+dHhxX21yKSA+PSBUWF9XUl9DT1VOVF9NQVgpIHx8CiAJ CShjeGdiX3BjcHVfdHhfY29hbGVzY2UgPT0gMCkpICYmIG10eF90cnlsb2NrKCZ0eHEtPmxvY2sp KSB7CiAJCWlmIChjeGdiX2RlYnVnKQogCQkJcHJpbnRmKCJkb2luZyBpbW1lZGlhdGUgdHJhbnNt aXRcbiIpOwpAQCAtNTM0LDEyICs1MzEsMTIgQEAgY3hnYl9wY3B1X3N0YXJ0KHN0cnVjdCBpZm5l dCAqaWZwLCBzdHJ1Y3QgbWJ1ZiAqaW1tcGt0KQogCQl0eHEtPmZsYWdzIHw9IFRYUV9UUkFOU01J VFRJTkc7CiAJCWVyciA9IGN4Z2JfcGNwdV9zdGFydF8ocXMsIGltbXBrdCwgRkFMU0UpOwogCQl0 eHEtPmZsYWdzICY9IH5UWFFfVFJBTlNNSVRUSU5HOwotCQlyZXNpZCA9IChidWZfcmluZ19jb3Vu dCgmdHhxLT50eHFfbXIpID4gNjQpIHx8IChkZXNjX3JlY2xhaW1hYmxlKHR4cSkgPiA2NCk7CisJ CXJlc2lkID0gKGJ1Zl9yaW5nX2NvdW50KHR4cS0+dHhxX21yKSA+IDY0KSB8fCAoZGVzY19yZWNs YWltYWJsZSh0eHEpID4gNjQpOwogCQltdHhfdW5sb2NrKCZ0eHEtPmxvY2spOwogCX0gZWxzZSBp ZiAoaW1tcGt0KSB7CiAJCWlmIChjeGdiX2RlYnVnKQogCQkJcHJpbnRmKCJkZWZlcnJlZCBjb2Fs ZXNjZT0langgcmluZ19jb3VudD0lZCBtdHhfb3duZWQ9JWRcbiIsCi0JCQkgICAgc2MtPnR1bnFf Y29hbGVzY2UsIGJ1Zl9yaW5nX2NvdW50KCZ0eHEtPnR4cV9tciksIG10eF9vd25lZCgmdHhxLT5s b2NrKSk7CisJCQkgICAgc2MtPnR1bnFfY29hbGVzY2UsIGJ1Zl9yaW5nX2NvdW50KHR4cS0+dHhx X21yKSwgbXR4X293bmVkKCZ0eHEtPmxvY2spKTsKIAkJZXJyID0gY3hnYl9wY3B1X2VucXVldWVf cGFja2V0XyhxcywgaW1tcGt0KTsKIAl9CiAJCkBAIC01OTEsNyArNTg4LDcgQEAgY3hnYl9wY3B1 X3N0YXJ0X3Byb2Modm9pZCAqYXJnKQogCiAJCWlmICgocXMtPnBvcnQtPmlmcC0+aWZfZHJ2X2Zs YWdzICYgSUZGX0RSVl9SVU5OSU5HKSA9PSAwKSB7CiAJCQlpZGxldGlja3MgPSBoejsKLQkJCWlm ICghYnVmX3JpbmdfZW1wdHkoJnR4cS0+dHhxX21yKSB8fAorCQkJaWYgKCFidWZfcmluZ19lbXB0 eSh0eHEtPnR4cV9tcikgfHwKIAkJCSAgICAhbWJ1ZnFfZW1wdHkoJnR4cS0+c2VuZHEpKQogCQkJ CWN4Z2JfcGNwdV9mcmVlKHFzKTsKIAkJCWdvdG8gZG9uZTsKQEAgLTYxNiwxMSArNjEzLDEzIEBA IGN4Z2JfcGNwdV9zdGFydF9wcm9jKHZvaWQgKmFyZykKIAkJCW10eF91bmxvY2soJnFzLT5yc3Bx LmxvY2spOwogCQl9CiAjZW5kaWYJCQotCQlpZiAoKCFidWZfcmluZ19lbXB0eSgmdHhxLT50eHFf bXIpKSAmJiBlcnIgPT0gMCkgeworCQlpZiAoKCFidWZfcmluZ19lbXB0eSh0eHEtPnR4cV9tcikp ICYmIGVyciA9PSAwKSB7CisjaWYgMAogCQkJaWYgKGN4Z2JfZGVidWcpCiAJCQkJcHJpbnRmKCJo ZWFkPSVwIGNvbnM9JWQgcHJvZD0lZFxuIiwKIAkJCQkgICAgdHhxLT5zZW5kcS5oZWFkLCB0eHEt PnR4cV9tci5icl9jb25zLAogCQkJCSAgICB0eHEtPnR4cV9tci5icl9wcm9kKTsKKyNlbmRpZgkJ CQogCQkJY29udGludWU7CiAJCX0KIAlkb25lOgkKZGlmZiAtLWdpdCBhL3N5cy9kZXYvY3hnYi9j eGdiX29zZGVwLmggYi9zeXMvZGV2L2N4Z2IvY3hnYl9vc2RlcC5oCmluZGV4IDI5YjllMmYuLjRm NDIyOTAgMTAwNjQ0Ci0tLSBhL3N5cy9kZXYvY3hnYi9jeGdiX29zZGVwLmgKKysrIGIvc3lzL2Rl di9jeGdiL2N4Z2Jfb3NkZXAuaApAQCAtMTU1LDkgKzE1NSw2IEBAIHZvaWQgY3hnYl9sb2dfdGNi KHN0cnVjdCBhZGFwdGVyICpzYywgdW5zaWduZWQgaW50IHRpZCk7CiAKIAogI2lmIGRlZmluZWQo X19pMzg2X18pIHx8IGRlZmluZWQoX19hbWQ2NF9fKQotI2RlZmluZSBtYigpICAgIF9fYXNtIHZv bGF0aWxlKCJtZmVuY2UiOjo6Im1lbW9yeSIpCi0jZGVmaW5lIHJtYigpICAgX19hc20gdm9sYXRp bGUoImxmZW5jZSI6OjoibWVtb3J5IikKLSNkZWZpbmUgd21iKCkgICBfX2FzbSB2b2xhdGlsZSgi c2ZlbmNlIiA6OjogIm1lbW9yeSIpCiAjZGVmaW5lIHNtcF9tYigpIG1iKCkKIAogI2RlZmluZSBM MV9DQUNIRV9CWVRFUyAxMjgKQEAgLTE3OCwxNjMgKzE3NSwxMSBAQCBleHRlcm4gdm9pZCBrZGJf YmFja3RyYWNlKHZvaWQpOwogCiAKICNlbHNlIC8qICFpMzg2ICYmICFhbWQ2NCAqLwotI2RlZmlu ZSBtYigpCi0jZGVmaW5lIHJtYigpCi0jZGVmaW5lIHdtYigpCiAjZGVmaW5lIHNtcF9tYigpCiAj ZGVmaW5lIHByZWZldGNoKHgpCiAjZGVmaW5lIEwxX0NBQ0hFX0JZVEVTIDMyCiAjZW5kaWYKIAot c3RydWN0IGJ1Zl9yaW5nIHsKLQljYWRkcl90ICAgICAgICAgICpicl9yaW5nOwotCXZvbGF0aWxl IHVpbnQzMl90IGJyX2NvbnM7Ci0Jdm9sYXRpbGUgdWludDMyX3QgYnJfcHJvZDsKLQlpbnQgICAg ICAgICAgICAgICBicl9zaXplOwotCXN0cnVjdCBtdHggICAgICAgIGJyX2xvY2s7Ci19OwotCi1z dHJ1Y3QgYnVmX3JpbmcgKmJ1Zl9yaW5nX2FsbG9jKGludCBjb3VudCwgaW50IGZsYWdzKTsKLXZv aWQgYnVmX3JpbmdfZnJlZShzdHJ1Y3QgYnVmX3JpbmcgKik7Ci0KLXN0YXRpYyBfX2lubGluZSBp bnQKLWJ1Zl9yaW5nX2NvdW50KHN0cnVjdCBidWZfcmluZyAqbXIpCi17Ci0JaW50IHNpemUgPSBt ci0+YnJfc2l6ZTsKLQl1aW50MzJfdCBtYXNrID0gc2l6ZSAtIDE7Ci0JCi0JcmV0dXJuICgoc2l6 ZSArIG1yLT5icl9wcm9kIC0gbXItPmJyX2NvbnMpICYgbWFzayk7Ci19Ci0KLXN0YXRpYyBfX2lu bGluZSBpbnQKLWJ1Zl9yaW5nX2VtcHR5KHN0cnVjdCBidWZfcmluZyAqbXIpCi17Ci0JcmV0dXJu IChtci0+YnJfY29ucyA9PSBtci0+YnJfcHJvZCk7Ci19Ci0KLXN0YXRpYyBfX2lubGluZSBpbnQK LWJ1Zl9yaW5nX2Z1bGwoc3RydWN0IGJ1Zl9yaW5nICptcikKLXsKLQl1aW50MzJfdCBtYXNrOwot Ci0JbWFzayA9IG1yLT5icl9zaXplIC0gMTsKLQlyZXR1cm4gKG1yLT5icl9jb25zID09ICgobXIt PmJyX3Byb2QgKyAxKSAmIG1hc2spKTsKLX0KLQotLyoKLSAqIFRoZSBwcm9kdWNlciBhbmQgY29u c3VtZXIgYXJlIGluZGVwZW5kZW50bHkgbG9ja2VkCi0gKiB0aGlzIHJlbGllcyBvbiB0aGUgY29u c3VtZXIgcHJvdmlkaW5nIGhpcyBvd24gc2VyaWFsaXphdGlvbgotICoKLSAqLwotc3RhdGljIF9f aW5saW5lIHZvaWQgKgotYnVmX3JpbmdfZGVxdWV1ZShzdHJ1Y3QgYnVmX3JpbmcgKm1yKQotewot CXVpbnQzMl90IHByb2QsIGNvbnMsIG1hc2s7Ci0JY2FkZHJfdCAqcmluZywgbTsKLQkKLQlyaW5n ID0gKGNhZGRyX3QgKiltci0+YnJfcmluZzsKLQltYXNrID0gbXItPmJyX3NpemUgLSAxOwotCWNv bnMgPSBtci0+YnJfY29uczsKLQltYigpOwotCXByb2QgPSBtci0+YnJfcHJvZDsKLQltID0gTlVM TDsKLQlpZiAoY29ucyAhPSBwcm9kKSB7Ci0JCW0gPSByaW5nW2NvbnNdOwotCQlyaW5nW2NvbnNd ID0gTlVMTDsKLQkJbXItPmJyX2NvbnMgPSAoY29ucyArIDEpICYgbWFzazsKLQkJbWIoKTsKLQl9 Ci0JcmV0dXJuIChtKTsKLX0KLQotI2lmZGVmIERFQlVHX0JVRlJJTkcKLXN0YXRpYyBfX2lubGlu ZSB2b2lkCi1fX2J1Zl9yaW5nX3NjYW4oc3RydWN0IGJ1Zl9yaW5nICptciwgdm9pZCAqbSwgY2hh ciAqZmlsZSwgaW50IGxpbmUpCi17Ci0JaW50IGk7Ci0KLQlmb3IgKGkgPSAwOyBpIDwgbXItPmJy X3NpemU7IGkrKykKLQkJaWYgKG0gPT0gbXItPmJyX3JpbmdbaV0pCi0JCQlwYW5pYygiJXM6JWQg bT0lcCBwcmVzZW50IHByb2Q9JWQgY29ucz0lZCBpZHg9JWQiLCBmaWxlLAotCQkJICAgIGxpbmUs IG0sIG1yLT5icl9wcm9kLCBtci0+YnJfY29ucywgaSk7Ci19Ci0KLXN0YXRpYyBfX2lubGluZSB2 b2lkCi1idWZfcmluZ19zY2FuKHN0cnVjdCBidWZfcmluZyAqbXIsIHZvaWQgKm0sIGNoYXIgKmZp bGUsIGludCBsaW5lKQotewotCW10eF9sb2NrKCZtci0+YnJfbG9jayk7Ci0JX19idWZfcmluZ19z Y2FuKG1yLCBtLCBmaWxlLCBsaW5lKTsKLQltdHhfdW5sb2NrKCZtci0+YnJfbG9jayk7Ci19Ci0K LSNlbHNlCi1zdGF0aWMgX19pbmxpbmUgdm9pZAotX19idWZfcmluZ19zY2FuKHN0cnVjdCBidWZf cmluZyAqbXIsIHZvaWQgKm0sIGNoYXIgKmZpbGUsIGludCBsaW5lKQotewotfQotCi1zdGF0aWMg X19pbmxpbmUgdm9pZAotYnVmX3Jpbmdfc2NhbihzdHJ1Y3QgYnVmX3JpbmcgKm1yLCB2b2lkICpt LCBjaGFyICpmaWxlLCBpbnQgbGluZSkKLXsKLX0KLSNlbmRpZgotCi1zdGF0aWMgX19pbmxpbmUg aW50Ci1fX2J1Zl9yaW5nX2VucXVldWUoc3RydWN0IGJ1Zl9yaW5nICptciwgdm9pZCAqbSwgY2hh ciAqZmlsZSwgaW50IGxpbmUpCi17Ci0JCi0JdWludDMyX3QgcHJvZCwgY29ucywgbWFzazsKLQlp bnQgZXJyOwotCQotCW1hc2sgPSBtci0+YnJfc2l6ZSAtIDE7Ci0JcHJvZCA9IG1yLT5icl9wcm9k OwotCW1iKCk7Ci0JY29ucyA9IG1yLT5icl9jb25zOwotCV9fYnVmX3Jpbmdfc2NhbihtciwgbSwg ZmlsZSwgbGluZSk7Ci0JaWYgKCgocHJvZCArIDEpICYgbWFzaykgIT0gY29ucykgewotCQlLQVNT RVJUKG1yLT5icl9yaW5nW3Byb2RdID09IE5VTEwsICgib3ZlcndyaXRpbmcgZW50cnkiKSk7Ci0J CW1yLT5icl9yaW5nW3Byb2RdID0gbTsKLQkJbWIoKTsKLQkJbXItPmJyX3Byb2QgPSAocHJvZCAr IDEpICYgbWFzazsKLQkJZXJyID0gMDsKLQl9IGVsc2UKLQkJZXJyID0gRU5PQlVGUzsKLQotCXJl dHVybiAoZXJyKTsKLX0KLQotc3RhdGljIF9faW5saW5lIGludAotYnVmX3JpbmdfZW5xdWV1ZV8o c3RydWN0IGJ1Zl9yaW5nICptciwgdm9pZCAqbSwgY2hhciAqZmlsZSwgaW50IGxpbmUpCi17Ci0J aW50IGVycjsKLQkKLQltdHhfbG9jaygmbXItPmJyX2xvY2spOwotCWVyciA9IF9fYnVmX3Jpbmdf ZW5xdWV1ZShtciwgbSwgZmlsZSwgbGluZSk7Ci0JbXR4X3VubG9jaygmbXItPmJyX2xvY2spOwot Ci0JcmV0dXJuIChlcnIpOwotfQotCi0jZGVmaW5lIGJ1Zl9yaW5nX2VucXVldWUobXIsIG0pIGJ1 Zl9yaW5nX2VucXVldWVfKChtciksIChtKSwgX19GSUxFX18sIF9fTElORV9fKQotCi0KLXN0YXRp YyBfX2lubGluZSB2b2lkICoKLWJ1Zl9yaW5nX3BlZWsoc3RydWN0IGJ1Zl9yaW5nICptcikKLXsK LQlpbnQgcHJvZCwgY29ucywgbWFzazsKLQljYWRkcl90ICpyaW5nLCBtOwotCQotCXJpbmcgPSAo Y2FkZHJfdCAqKW1yLT5icl9yaW5nOwotCW1hc2sgPSBtci0+YnJfc2l6ZSAtIDE7Ci0JY29ucyA9 IG1yLT5icl9jb25zOwotCXByb2QgPSBtci0+YnJfcHJvZDsKLQltID0gTlVMTDsKLQlpZiAoY29u cyAhPSBwcm9kKQotCQltID0gcmluZ1tjb25zXTsKLQotCXJldHVybiAobSk7Ci19Ci0KICNkZWZp bmUgREJHX1JYICAgICAgICAgICgxIDw8IDApCiBzdGF0aWMgY29uc3QgaW50IGRlYnVnX2ZsYWdz ID0gREJHX1JYOwogCmRpZmYgLS1naXQgYS9zeXMvZGV2L2N4Z2IvY3hnYl9zZ2UuYyBiL3N5cy9k ZXYvY3hnYi9jeGdiX3NnZS5jCmluZGV4IDI2MjMzZDkuLjFhMDBkNDIgMTAwNjQ0Ci0tLSBhL3N5 cy9kZXYvY3hnYi9jeGdiX3NnZS5jCisrKyBiL3N5cy9kZXYvY3hnYi9jeGdiX3NnZS5jCkBAIC0x NzE2LDEwICsxNzE2LDggQEAgdDNfZnJlZV9xc2V0KGFkYXB0ZXJfdCAqc2MsIHN0cnVjdCBzZ2Vf cXNldCAqcSkKIAl0M19mcmVlX3R4X2Rlc2NfYWxsKCZxLT50eHFbVFhRX0VUSF0pOwogCQogCWZv ciAoaSA9IDA7IGkgPCBTR0VfVFhRX1BFUl9TRVQ7IGkrKykgCi0JCWlmIChxLT50eHFbaV0udHhx X21yLmJyX3JpbmcgIT0gTlVMTCkgewotCQkJZnJlZShxLT50eHFbaV0udHhxX21yLmJyX3Jpbmcs IE1fREVWQlVGKTsKLQkJCW10eF9kZXN0cm95KCZxLT50eHFbaV0udHhxX21yLmJyX2xvY2spOwot CQl9CisJCWlmIChxLT50eHFbaV0udHhxX21yICE9IE5VTEwpIAorCQkJYnVmX3JpbmdfZnJlZShx LT50eHFbaV0udHhxX21yLCBNX0RFVkJVRik7CiAJZm9yIChpID0gMDsgaSA8IFNHRV9SWFFfUEVS X1NFVDsgKytpKSB7CiAJCWlmIChxLT5mbFtpXS5kZXNjKSB7CiAJCQltdHhfbG9ja19zcGluKCZz Yy0+c2dlLnJlZ19sb2NrKTsKQEAgLTE4NzQsNyArMTg3Miw2IEBAIHQzX2ZyZWVfdHhfZGVzYyhz dHJ1Y3Qgc2dlX3R4cSAqcSwgaW50IHJlY2xhaW1hYmxlKQogCQkJCXR4c2QtPmZsYWdzICY9IH5U WF9TV19ERVNDX01BUFBFRDsKIAkJCX0KIAkJCW1fZnJlZW1faW92ZWMoJnR4c2QtPm1pKTsJCi0J CQlidWZfcmluZ19zY2FuKCZxLT50eHFfbXIsIHR4c2QtPm1pLm1pX2Jhc2UsIF9fRklMRV9fLCBf X0xJTkVfXyk7CiAJCQl0eHNkLT5taS5taV9iYXNlID0gTlVMTDsKICNpZiBkZWZpbmVkKERJQUdO T1NUSUMpICYmIDAKIAkJCWlmIChtX2dldF9wcmlvcml0eSh0eHNkLT5tWzBdKSAhPSBjaWR4KSAK QEAgLTIyNzIsMTQgKzIyNjksMTIgQEAgdDNfc2dlX2FsbG9jX3FzZXQoYWRhcHRlcl90ICpzYywg dV9pbnQgaWQsIGludCBucG9ydHMsIGludCBpcnFfdmVjX2lkeCwKIAlpbnQgaSwgaGVhZGVyX3Np emUsIHJldCA9IDA7CiAKIAlmb3IgKGkgPSAwOyBpIDwgU0dFX1RYUV9QRVJfU0VUOyBpKyspIHsK LQkJaWYgKChxLT50eHFbaV0udHhxX21yLmJyX3JpbmcgPSBtYWxsb2MoY3hnYl90eHFfYnVmX3Jp bmdfc2l6ZSpzaXplb2Yoc3RydWN0IG1idWYgKiksCi0JCQkgICAgTV9ERVZCVUYsIE1fV0FJVE9L fE1fWkVSTykpID09IE5VTEwpIHsKKwkJCisJCWlmICgocS0+dHhxW2ldLnR4cV9tciA9IGJ1Zl9y aW5nX2FsbG9jKGN4Z2JfdHhxX2J1Zl9yaW5nX3NpemUsCisJCQkgICAgTV9ERVZCVUYsIE1fV0FJ VE9LLCAmcS0+dHhxW2ldLmxvY2spKSA9PSBOVUxMKSB7CiAJCQlkZXZpY2VfcHJpbnRmKHNjLT5k ZXYsICJmYWlsZWQgdG8gYWxsb2NhdGUgbWJ1ZiByaW5nXG4iKTsKIAkJCWdvdG8gZXJyOwogCQl9 Ci0JCXEtPnR4cVtpXS50eHFfbXIuYnJfcHJvZCA9IHEtPnR4cVtpXS50eHFfbXIuYnJfY29ucyA9 IDA7Ci0JCXEtPnR4cVtpXS50eHFfbXIuYnJfc2l6ZSA9IGN4Z2JfdHhxX2J1Zl9yaW5nX3NpemU7 Ci0JCW10eF9pbml0KCZxLT50eHFbaV0udHhxX21yLmJyX2xvY2ssICJ0eHEgbWJ1ZiByaW5nIiwg TlVMTCwgTVRYX0RFRik7CiAJfQogCiAJaW5pdF9xc2V0X2NudHh0KHEsIGlkKTsKQEAgLTM0OTYs MTIgKzM0OTEsMTQgQEAgdDNfYWRkX2NvbmZpZ3VyZWRfc3lzY3RscyhhZGFwdGVyX3QgKnNjKQog CQkJU1lTQ1RMX0FERF9JTlQoY3R4LCB0eHFwb2lkbGlzdCwgT0lEX0FVVE8sICJzZW5kcWxlbiIs CiAJCQkgICAgQ1RMRkxBR19SRCwgJnFzLT50eHFbVFhRX0VUSF0uc2VuZHEucWxlbiwKIAkJCSAg ICAwLCAiI3R1bm5lbGVkIHBhY2tldHMgd2FpdGluZyB0byBiZSBzZW50Iik7CisjaWYgMAkJCQog CQkJU1lTQ1RMX0FERF9VSU5UKGN0eCwgdHhxcG9pZGxpc3QsIE9JRF9BVVRPLCAicXVldWVfcGlk eCIsCiAJCQkgICAgQ1RMRkxBR19SRCwgKHVpbnQzMl90ICopKHVpbnRwdHJfdCkmcXMtPnR4cVtU WFFfRVRIXS50eHFfbXIuYnJfcHJvZCwKIAkJCSAgICAwLCAiI3R1bm5lbGVkIHBhY2tldHMgcXVl dWUgcHJvZHVjZXIgaW5kZXgiKTsKIAkJCVNZU0NUTF9BRERfVUlOVChjdHgsIHR4cXBvaWRsaXN0 LCBPSURfQVVUTywgInF1ZXVlX2NpZHgiLAogCQkJICAgIENUTEZMQUdfUkQsICh1aW50MzJfdCAq KSh1aW50cHRyX3QpJnFzLT50eHFbVFhRX0VUSF0udHhxX21yLmJyX2NvbnMsCiAJCQkgICAgMCwg IiN0dW5uZWxlZCBwYWNrZXRzIHF1ZXVlIGNvbnN1bWVyIGluZGV4Iik7CisjZW5kaWYJCQkKIAkJ CVNZU0NUTF9BRERfSU5UKGN0eCwgdHhxcG9pZGxpc3QsIE9JRF9BVVRPLCAicHJvY2Vzc2VkIiwK IAkJCSAgICBDVExGTEFHX1JELCAmcXMtPnR4cVtUWFFfRVRIXS5wcm9jZXNzZWQsCiAJCQkgICAg MCwgIiN0dW5uZWxlZCBwYWNrZXRzIHByb2Nlc3NlZCBieSB0aGUgY2FyZCIpOwpkaWZmIC0tZ2l0 IGEvc3lzL2Rldi9jeGdiL3N5cy9jeGdiX3N1cHBvcnQuYyBiL3N5cy9kZXYvY3hnYi9zeXMvY3hn Yl9zdXBwb3J0LmMKaW5kZXggZTkxMWRmYy4uMThmNzk5ZSAxMDA2NDQKLS0tIGEvc3lzL2Rldi9j eGdiL3N5cy9jeGdiX3N1cHBvcnQuYworKysgYi9zeXMvZGV2L2N4Z2Ivc3lzL2N4Z2Jfc3VwcG9y dC5jCkBAIC0zMDgsMzMgKzMwOCwzIEBAIGZyZWU6CiAJCXVtYV96ZnJlZSh6b25lLCB2ZWNbaV0p OwogfQogCQotc3RydWN0IGJ1Zl9yaW5nICoKLWJ1Zl9yaW5nX2FsbG9jKGludCBjb3VudCwgaW50 IGZsYWdzKQotewotCXN0cnVjdCBidWZfcmluZyAqYnI7Ci0KLQlLQVNTRVJUKHBvd2Vyb2YyKGNv dW50KSwgKCJidWYgcmluZyBtdXN0IGJlIHNpemUgcG93ZXIgb2YgMiIpKTsKLQkKLQliciA9IG1h bGxvYyhzaXplb2Yoc3RydWN0IGJ1Zl9yaW5nKSwgTV9ERVZCVUYsIGZsYWdzfE1fWkVSTyk7Ci0J aWYgKGJyID09IE5VTEwpCi0JCXJldHVybiAoTlVMTCk7Ci0JCi0JYnItPmJyX3JpbmcgPSBtYWxs b2Moc2l6ZW9mKGNhZGRyX3QpKmNvdW50LCBNX0RFVkJVRiwgZmxhZ3N8TV9aRVJPKTsKLQlpZiAo YnItPmJyX3JpbmcgPT0gTlVMTCkgewotCQlmcmVlKGJyLCBNX0RFVkJVRik7Ci0JCXJldHVybiAo TlVMTCk7Ci0JfQotCQotCW10eF9pbml0KCZici0+YnJfbG9jaywgImJ1ZiByaW5nIiwgTlVMTCwg TVRYX0RVUE9LfE1UWF9ERUYpOwotCWJyLT5icl9zaXplID0gY291bnQ7Ci0JYnItPmJyX3Byb2Qg PSBici0+YnJfY29ucyA9IDA7Ci0KLQlyZXR1cm4gKGJyKTsKLX0KLQotdm9pZAotYnVmX3Jpbmdf ZnJlZShzdHJ1Y3QgYnVmX3JpbmcgKmJyKQotewotCWZyZWUoYnItPmJyX3JpbmcsIE1fREVWQlVG KTsKLQlmcmVlKGJyLCBNX0RFVkJVRik7Ci19CmRpZmYgLS1naXQgYS9zeXMvZGV2L2N4Z2IvdWxw L2l3X2N4Z2IvaXdfY3hnYl9yZXNvdXJjZS5jIGIvc3lzL2Rldi9jeGdiL3VscC9pd19jeGdiL2l3 X2N4Z2JfcmVzb3VyY2UuYwppbmRleCA5ZDM2MThmLi40N2Q5ZDhlIDEwMDY0NAotLS0gYS9zeXMv ZGV2L2N4Z2IvdWxwL2l3X2N4Z2IvaXdfY3hnYl9yZXNvdXJjZS5jCisrKyBiL3N5cy9kZXYvY3hn Yi91bHAvaXdfY3hnYi9pd19jeGdiX3Jlc291cmNlLmMKQEAgLTEwMiw3ICsxMDIsNyBAQCBzdGF0 aWMgaW50IF9fY3hpb19pbml0X3Jlc291cmNlX2ZpZm8oc3RydWN0IGJ1Zl9yaW5nICoqZmlmbywK IAl1MzIgcmFycmF5WzE2XTsKIAltdHhfaW5pdChmaWZvX2xvY2ssICJjeGlvIGZpZm8iLCBOVUxM LCBNVFhfREVGfE1UWF9EVVBPSyk7CiAKLQkqZmlmbyA9IGJ1Zl9yaW5nX2FsbG9jKG5yLCBNX05P V0FJVCk7CisJKmZpZm8gPSBidWZfcmluZ19hbGxvYyhuciwgTV9ERVZCVUYsIE1fTk9XQUlULCBm aWZvX2xvY2spOwogCWlmICgqZmlmbyA9PSBOVUxMKQogCQlyZXR1cm4gKC1FTk9NRU0pOwogI2lm IDAKQEAgLTEzNCw3ICsxMzQsNyBAQCBzdGF0aWMgaW50IF9fY3hpb19pbml0X3Jlc291cmNlX2Zp Zm8oc3RydWN0IGJ1Zl9yaW5nICoqZmlmbywKIAkJCWJ1Zl9yaW5nX2VucXVldWUoKmZpZm8sICh2 b2lkICopICh1aW50cHRyX3QpaSk7CiAjaWYgMAogCWZvciAoaSA9IDA7IGkgPCBza2lwX2xvdyAr IHNraXBfaGlnaDsgaSsrKQotCQlidWZfcmluZ19kZXF1ZXVlKCpmaWZvKTsKKwkJYnVmX3Jpbmdf ZGVxdWV1ZV9zYygqZmlmbyk7CiAjZW5kaWYJCiAJcmV0dXJuIDA7CiB9CkBAIC0xNjEsNyArMTYx LDggQEAgc3RhdGljIGludCBjeGlvX2luaXRfcXBpZF9maWZvKHN0cnVjdCBjeGlvX3JkZXYgKnJk ZXZfcCkKIAogCW10eF9pbml0KCZyZGV2X3AtPnJzY3AtPnFwaWRfZmlmb19sb2NrLCAicXBpZCBm aWZvIiwgTlVMTCwgTVRYX0RFRik7CiAKLQlyZGV2X3AtPnJzY3AtPnFwaWRfZmlmbyA9IGJ1Zl9y aW5nX2FsbG9jKFQzX01BWF9OVU1fUVAsIE1fTk9XQUlUKTsKKwlyZGV2X3AtPnJzY3AtPnFwaWRf ZmlmbyA9IGJ1Zl9yaW5nX2FsbG9jKFQzX01BWF9OVU1fUVAsIE1fREVWQlVGLAorCSAgICBNX05P V0FJVCwgJnJkZXZfcC0+cnNjcC0+cXBpZF9maWZvX2xvY2spOwogCWlmIChyZGV2X3AtPnJzY3At PnFwaWRfZmlmbyA9PSBOVUxMKQogCQlyZXR1cm4gKC1FTk9NRU0pOwogCkBAIC0xODAsNyArMTgx LDcgQEAgaW50IGN4aW9faGFsX2luaXRfcmhkbF9yZXNvdXJjZSh1MzIgbnJfcmhkbCkKIAogdm9p ZCBjeGlvX2hhbF9kZXN0cm95X3JoZGxfcmVzb3VyY2Uodm9pZCkKIHsKLQlidWZfcmluZ19mcmVl KHJoZGxfZmlmbyk7CisJYnVmX3JpbmdfZnJlZShyaGRsX2ZpZm8sIE1fREVWQlVGKTsKIH0KICNl bmRpZgogCkBAIC0yMTQsMTEgKzIxNSwxMSBAQCBpbnQgY3hpb19oYWxfaW5pdF9yZXNvdXJjZShz dHJ1Y3QgY3hpb19yZGV2ICpyZGV2X3AsCiAJCWdvdG8gcGRpZF9lcnI7CiAJcmV0dXJuIDA7CiBw ZGlkX2VycjoKLQlidWZfcmluZ19mcmVlKHJzY3AtPmNxaWRfZmlmbyk7CisJYnVmX3JpbmdfZnJl ZShyc2NwLT5jcWlkX2ZpZm8sIE1fREVWQlVGKTsKIGNxaWRfZXJyOgotCWJ1Zl9yaW5nX2ZyZWUo cnNjcC0+cXBpZF9maWZvKTsKKwlidWZfcmluZ19mcmVlKHJzY3AtPnFwaWRfZmlmbywgTV9ERVZC VUYpOwogcXBpZF9lcnI6Ci0JYnVmX3JpbmdfZnJlZShyc2NwLT50cHRfZmlmbyk7CisJYnVmX3Jp bmdfZnJlZShyc2NwLT50cHRfZmlmbywgTV9ERVZCVUYpOwogdHB0X2VycjoKIAlyZXR1cm4gKC1F Tk9NRU0pOwogfQpAQCAtMjMxLDcgKzIzMiw3IEBAIHN0YXRpYyB1MzIgY3hpb19oYWxfZ2V0X3Jl c291cmNlKHN0cnVjdCBidWZfcmluZyAqZmlmbywgc3RydWN0IG10eCAqbG9jaykKIAl1MzIgZW50 cnk7CiAJCiAJbXR4X2xvY2sobG9jayk7Ci0JZW50cnkgPSAodTMyKSh1aW50cHRyX3QpYnVmX3Jp bmdfZGVxdWV1ZShmaWZvKTsKKwllbnRyeSA9ICh1MzIpKHVpbnRwdHJfdClidWZfcmluZ19kZXF1 ZXVlX3NjKGZpZm8pOwogCW10eF91bmxvY2sobG9jayk7CiAJcmV0dXJuIGVudHJ5OwogfQpAQCAt Mjg4LDEwICsyODksMTAgQEAgdm9pZCBjeGlvX2hhbF9wdXRfcGRpZChzdHJ1Y3QgY3hpb19oYWxf cmVzb3VyY2UgKnJzY3AsIHUzMiBwZGlkKQogCiB2b2lkIGN4aW9faGFsX2Rlc3Ryb3lfcmVzb3Vy Y2Uoc3RydWN0IGN4aW9faGFsX3Jlc291cmNlICpyc2NwKQogewotCWJ1Zl9yaW5nX2ZyZWUocnNj cC0+dHB0X2ZpZm8pOwotCWJ1Zl9yaW5nX2ZyZWUocnNjcC0+Y3FpZF9maWZvKTsKLQlidWZfcmlu Z19mcmVlKHJzY3AtPnFwaWRfZmlmbyk7Ci0JYnVmX3JpbmdfZnJlZShyc2NwLT5wZGlkX2ZpZm8p OworCWJ1Zl9yaW5nX2ZyZWUocnNjcC0+dHB0X2ZpZm8sIE1fREVWQlVGKTsKKwlidWZfcmluZ19m cmVlKHJzY3AtPmNxaWRfZmlmbywgTV9ERVZCVUYpOworCWJ1Zl9yaW5nX2ZyZWUocnNjcC0+cXBp ZF9maWZvLCBNX0RFVkJVRik7CisJYnVmX3JpbmdfZnJlZShyc2NwLT5wZGlkX2ZpZm8sIE1fREVW QlVGKTsKIAlmcmVlKHJzY3AsIE1fREVWQlVGKTsKIH0KIApkaWZmIC0tZ2l0IGEvc3lzL2Rldi9t eGdlL2lmX214Z2VfdmFyLmggYi9zeXMvZGV2L214Z2UvaWZfbXhnZV92YXIuaAppbmRleCBlNWQx NzZkLi5hOTFiNGQ4IDEwMDY0NAotLS0gYS9zeXMvZGV2L214Z2UvaWZfbXhnZV92YXIuaAorKysg Yi9zeXMvZGV2L214Z2UvaWZfbXhnZV92YXIuaApAQCAtMjk4LDYgKzI5OCw4IEBAIHN0cnVjdCBt eGdlX21lZGlhX3R5cGUKIC8qIGltcGxlbWVudCBvdXIgb3duIG1lbW9yeSBiYXJyaWVycywgc2lu Y2UgYnVzX3NwYWNlX2JhcnJpZXIKICAgIGNhbm5vdCBoYW5kbGUgd3JpdGUtY29tYmluaW5nIHJl Z2lvbnMgKi8KIAorI2lmIF9fRnJlZUJTRF92ZXJzaW9uIDwgODAwMDUzCisKICNpZiBkZWZpbmVk IChfX0dOVUNfXykKICAgI2lmICNjcHUoaTM4NikgfHwgZGVmaW5lZCBfX2kzODYgfHwgZGVmaW5l ZCBpMzg2IHx8IGRlZmluZWQgX19pMzg2X18gfHwgI2NwdSh4ODZfNjQpIHx8IGRlZmluZWQgX194 ODZfNjRfXwogICAgICNkZWZpbmUgbWIoKSAgX19hc21fXyBfX3ZvbGF0aWxlX18gKCJzZmVuY2U7 IjogOiA6Im1lbW9yeSIpCkBAIC0zMTIsNiArMzE0LDggQEAgc3RydWN0IG14Z2VfbWVkaWFfdHlw ZQogICAjZXJyb3IgInVua25vd24gY29tcGlsZXIiCiAjZW5kaWYKIAorI2VuZGlmCisKIHN0YXRp YyBpbmxpbmUgdm9pZAogbXhnZV9waW9fY29weSh2b2xhdGlsZSB2b2lkICp0b192LCB2b2lkICpm cm9tX3YsIHNpemVfdCBzaXplKQogewpkaWZmIC0tZ2l0IGEvc3lzL2Rldi9ueGdlL3hnZS1vc2Rl cC5oIGIvc3lzL2Rldi9ueGdlL3hnZS1vc2RlcC5oCmluZGV4IDE1YWRmZTcuLmU4ZjRhYmEgMTAw NjQ0Ci0tLSBhL3N5cy9kZXYvbnhnZS94Z2Utb3NkZXAuaAorKysgYi9zeXMvZGV2L254Z2UveGdl LW9zZGVwLmgKQEAgLTI0Miw4ICsyNDIsMTIgQEAgdHlwZWRlZiB4Z2VfcGNpX2luZm9fdCAgICAg ICAgICAgICAqcGNpX2NmZ19oOwogCW10eF91bmxvY2tfZmxhZ3MobG9ja3AsIGZsYWdzKTsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogfQogCisjaWYgX19GcmVlQlNE X3ZlcnNpb24gPiA4MDAwNTMKIC8qIFdyaXRlIG1lbW9yeSBiYXJyaWVyICovCisjZGVmaW5lIHhn ZV9vc193bWIoKQkJd21iKCkJCisjZWxzZQogI2RlZmluZSB4Z2Vfb3Nfd21iKCkKKyNlbmRpZgog CiAvKiBEZWxheSAoaW4gbWljcm8gc2Vjb25kcykgKi8KICNkZWZpbmUgeGdlX29zX3VkZWxheSh1 cykgICAgICAgICAgICBERUxBWSh1cykKZGlmZiAtLWdpdCBhL3N5cy9pMzg2L2luY2x1ZGUvYXRv bWljLmggYi9zeXMvaTM4Ni9pbmNsdWRlL2F0b21pYy5oCmluZGV4IDA2MjE2ZmIuLmJiZjI2NTUg MTAwNjQ0Ci0tLSBhL3N5cy9pMzg2L2luY2x1ZGUvYXRvbWljLmgKKysrIGIvc3lzL2kzODYvaW5j bHVkZS9hdG9taWMuaApAQCAtMzIsNiArMzIsMjEgQEAKICNlcnJvciB0aGlzIGZpbGUgbmVlZHMg c3lzL2NkZWZzLmggYXMgYSBwcmVyZXF1aXNpdGUKICNlbmRpZgogCisKKyNpZiBkZWZpbmVkKEk2 ODZfQ1BVKQorI2RlZmluZSBtYigpCV9fYXNtX18gX192b2xhdGlsZV9fICgibWZlbmNlOyI6IDog OiJtZW1vcnkiKQorI2RlZmluZSB3bWIoKQlfX2FzbV9fIF9fdm9sYXRpbGVfXyAoInNmZW5jZTsi OiA6IDoibWVtb3J5IikKKyNkZWZpbmUgcm1iKCkJX19hc21fXyBfX3ZvbGF0aWxlX18gKCJsZmVu Y2U7IjogOiA6Im1lbW9yeSIpCisjZWxzZQorLyoKKyAqIGRvIHdlIG5lZWQgYSBzZXJpYWxpemlu ZyBpbnN0cnVjdGlvbj8KKyAqLworI2RlZmluZSBtYigpCisjZGVmaW5lIHdtYigpCisjZGVmaW5l IHJtYigpCisjZW5kaWYKKworCiAvKgogICogVmFyaW91cyBzaW1wbGUgb3BlcmF0aW9ucyBvbiBt ZW1vcnksIGVhY2ggb2Ygd2hpY2ggaXMgYXRvbWljIGluIHRoZQogICogcHJlc2VuY2Ugb2YgaW50 ZXJydXB0cyBhbmQgbXVsdGlwbGUgcHJvY2Vzc29ycy4KZGlmZiAtLWdpdCBhL3N5cy9pYTY0L2lu Y2x1ZGUvYXRvbWljLmggYi9zeXMvaWE2NC9pbmNsdWRlL2F0b21pYy5oCmluZGV4IDYzMTE5M2Yu LmZkZmNiOWUgMTAwNjQ0Ci0tLSBhL3N5cy9pYTY0L2luY2x1ZGUvYXRvbWljLmgKKysrIGIvc3lz L2lhNjQvaW5jbHVkZS9hdG9taWMuaApAQCAtMjksNiArMjksMTAgQEAKICNpZm5kZWYgX01BQ0hJ TkVfQVRPTUlDX0hfCiAjZGVmaW5lCV9NQUNISU5FX0FUT01JQ19IXwogCisjZGVmaW5lCW1iKCkK KyNkZWZpbmUJd21iKCkKKyNkZWZpbmUJcm1iKCkKKwogLyoKICAqIFZhcmlvdXMgc2ltcGxlIGFy aXRobWV0aWMgb24gbWVtb3J5IHdoaWNoIGlzIGF0b21pYyBpbiB0aGUgcHJlc2VuY2UKICAqIG9m IGludGVycnVwdHMgYW5kIFNNUCBzYWZlLgpkaWZmIC0tZ2l0IGEvc3lzL2tlcm4vc3Vicl9idWZy aW5nLmMgYi9zeXMva2Vybi9zdWJyX2J1ZnJpbmcuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAwMDAwMDAwLi42MzkzOGVhCi0tLSAvZGV2L251bGwKKysrIGIvc3lzL2tlcm4vc3Vicl9idWZy aW5nLmMKQEAgLTAsMCArMSw2OCBAQAorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICogQ29weXJp Z2h0IChjKSAyMDA3LDIwMDggS2lwIE1hY3kga21hY3lAZnJlZWJzZC5vcmcKKyAqIEFsbCByaWdo dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlIG1ldDoKKyAq CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi b3ZlIGNvcHlyaWdodCBub3RpY2UsCisgKiAgICB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICoKKyAqIDIuIFRoZSBuYW1lIG9mIEtpcCBNYWN5 IG5vciB0aGUgbmFtZXMgb2Ygb3RoZXIKKyAqICAgIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0 byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiAgICB0aGlzIHNv ZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAq IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBD T05UUklCVVRPUlMgIkFTIElTIgorICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJS QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV UlBPU0UKKyAqIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hU IE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRQorICogTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg RVZFTiBJRiBBRFZJU0VEIE9GIFRIRQorICogUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg KgorICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKiovCisjaW5jbHVkZSA8c3lzL2NkZWZzLmg+CitfX0ZC U0RJRCgiJEZyZWVCU0QkIik7CisKKworI2luY2x1ZGUgPHN5cy9wYXJhbS5oPgorI2luY2x1ZGUg PHN5cy9zeXN0bS5oPgorI2luY2x1ZGUgPHN5cy9rZXJuZWwuaD4KKyNpbmNsdWRlIDxzeXMvbWFs bG9jLmg+CisjaW5jbHVkZSA8c3lzL2t0ci5oPgorI2luY2x1ZGUgPHN5cy9idWZfcmluZy5oPgor CisKK3N0cnVjdCBidWZfcmluZyAqCitidWZfcmluZ19hbGxvYyhpbnQgY291bnQsIHN0cnVjdCBt YWxsb2NfdHlwZSAqdHlwZSwgaW50IGZsYWdzLCBzdHJ1Y3QgbXR4ICpsb2NrKQoreworCXN0cnVj dCBidWZfcmluZyAqYnI7CisKKwlLQVNTRVJUKHBvd2Vyb2YyKGNvdW50KSwgKCJidWYgcmluZyBt dXN0IGJlIHNpemUgcG93ZXIgb2YgMiIpKTsKKwkKKwliciA9IG1hbGxvYyhzaXplb2Yoc3RydWN0 IGJ1Zl9yaW5nKSArIGNvdW50KnNpemVvZihjYWRkcl90KSwKKwkgICAgdHlwZSwgZmxhZ3N8TV9a RVJPKTsKKwlpZiAoYnIgPT0gTlVMTCkKKwkJcmV0dXJuIChOVUxMKTsKKyNpZmRlZiBERUJVR19C VUZSSU5HCisJYnItPmJyX2xvY2sgPSBsb2NrOworI2VuZGlmCQorCWJyLT5icl9wcm9kX3NpemUg PSBici0+YnJfY29uc19zaXplID0gY291bnQ7CisJYnItPmJyX3Byb2RfbWFzayA9IGJyLT5icl9j b25zX21hc2sgPSBjb3VudC0xOworCWJyLT5icl9wcm9kX2hlYWQgPSBici0+YnJfY29uc19oZWFk ID0gMDsKKwlici0+YnJfcHJvZF90YWlsID0gYnItPmJyX2NvbnNfdGFpbCA9IDA7CisJCQorCXJl dHVybiAoYnIpOworfQorCit2b2lkCitidWZfcmluZ19mcmVlKHN0cnVjdCBidWZfcmluZyAqYnIs IHN0cnVjdCBtYWxsb2NfdHlwZSAqdHlwZSkKK3sKKwlmcmVlKGJyLCB0eXBlKTsKK30KZGlmZiAt LWdpdCBhL3N5cy9uZXQvaWYuYyBiL3N5cy9uZXQvaWYuYwppbmRleCA3N2Q0ZWMzLi4zNThkOGYy IDEwMDY0NAotLS0gYS9zeXMvbmV0L2lmLmMKKysrIGIvc3lzL25ldC9pZi5jCkBAIC0xMTksMTAg KzExOSwxMCBAQCBzdGF0aWMgdm9pZAlpZl9mcmVlbXVsdGkoc3RydWN0IGlmbXVsdGlhZGRyICop Owogc3RhdGljIHZvaWQJaWZfZ3Jvdyh2b2lkKTsKIHN0YXRpYyB2b2lkCWlmX2luaXQodm9pZCAq KTsKIHN0YXRpYyB2b2lkCWlmX2NoZWNrKHZvaWQgKik7Ci1zdGF0aWMgdm9pZAlpZl9xZmx1c2go c3RydWN0IGlmYWx0cSAqKTsKIHN0YXRpYyB2b2lkCWlmX3JvdXRlKHN0cnVjdCBpZm5ldCAqLCBp bnQgZmxhZywgaW50IGZhbSk7CiBzdGF0aWMgaW50CWlmX3NldGZsYWcoc3RydWN0IGlmbmV0ICos IGludCwgaW50LCBpbnQgKiwgaW50KTsKIHN0YXRpYyB2b2lkCWlmX3Nsb3d0aW1vKHZvaWQgKik7 CitzdGF0aWMgaW50CWlmX3RyYW5zbWl0KHN0cnVjdCBpZm5ldCAqaWZwLCBzdHJ1Y3QgbWJ1ZiAq bSk7CiBzdGF0aWMgdm9pZAlpZl91bnJvdXRlKHN0cnVjdCBpZm5ldCAqLCBpbnQgZmxhZywgaW50 IGZhbSk7CiBzdGF0aWMgdm9pZAlsaW5rX3J0cmVxdWVzdChpbnQsIHN0cnVjdCBydGVudHJ5ICos IHN0cnVjdCBydF9hZGRyaW5mbyAqKTsKIHN0YXRpYyBpbnQJaWZfcnRkZWwoc3RydWN0IHJhZGl4 X25vZGUgKiwgdm9pZCAqKTsKQEAgLTUwNyw2ICs1MDcsMjggQEAgaWZfZnJlZV90eXBlKHN0cnVj dCBpZm5ldCAqaWZwLCB1X2NoYXIgdHlwZSkKIAlmcmVlKGlmcCwgTV9JRk5FVCk7CiB9OwogCit2 b2lkCitpZnFfYXR0YWNoKHN0cnVjdCBpZmFsdHEgKmlmcSwgc3RydWN0IGlmbmV0ICppZnApCit7 CisJCisJbXR4X2luaXQoJmlmcS0+aWZxX210eCwgaWZwLT5pZl94bmFtZSwgImlmIHNlbmQgcXVl dWUiLCBNVFhfREVGKTsKKworCWlmIChpZnEtPmlmcV9tYXhsZW4gPT0gMCkgCisJCWlmcS0+aWZx X21heGxlbiA9IGlmcW1heGxlbjsKKworCWlmcS0+YWx0cV90eXBlID0gMDsKKwlpZnEtPmFsdHFf ZGlzYyA9IE5VTEw7CisJaWZxLT5hbHRxX2ZsYWdzICY9IEFMVFFGX0NBTlRDSEFOR0U7CisJaWZx LT5hbHRxX3RiciAgPSBOVUxMOworCWlmcS0+YWx0cV9pZnAgID0gaWZwOworfQorCit2b2lkCitp ZnFfZGV0YWNoKHN0cnVjdCBpZmFsdHEgKmlmcSkKK3sKKwltdHhfZGVzdHJveSgmaWZxLT5pZnFf bXR4KTsKK30KKwogLyoKICAqIFBlcmZvcm0gZ2VuZXJpYyBpbnRlcmZhY2UgaW5pdGFsaXphdGlv biB0YXNrcyBhbmQgYXR0YWNoIHRoZSBpbnRlcmZhY2UKICAqIHRvIHRoZSBsaXN0IG9mICJhY3Rp dmUiIGludGVyZmFjZXMuCkBAIC01NDcsNyArNTY5LDE1IEBAIGlmX2F0dGFjaChzdHJ1Y3QgaWZu ZXQgKmlmcCkKIAlnZXRtaWNyb3RpbWUoJmlmcC0+aWZfbGFzdGNoYW5nZSk7CiAJaWZwLT5pZl9k YXRhLmlmaV9lcG9jaCA9IHRpbWVfdXB0aW1lOwogCWlmcC0+aWZfZGF0YS5pZmlfZGF0YWxlbiA9 IHNpemVvZihzdHJ1Y3QgaWZfZGF0YSk7CisJS0FTU0VSVCgoaWZwLT5pZl90cmFuc21pdCA9PSBO VUxMICYmIGlmcC0+aWZfcWZsdXNoID09IE5VTEwpIHx8CisJICAgIChpZnAtPmlmX3RyYW5zbWl0 ICE9IE5VTEwgJiYgaWZwLT5pZl9xZmx1c2ggIT0gTlVMTCksCisJICAgICgidHJhbnNtaXQgYW5k IHFmbHVzaCBtdXN0IGJvdGggZWl0aGVyIGJlIHNldCBvciBib3RoIGJlIE5VTEwiKSk7CiAKKwlp ZiAoaWZwLT5pZl90cmFuc21pdCA9PSBOVUxMKSB7CisJCWlmcC0+aWZfdHJhbnNtaXQgPSBpZl90 cmFuc21pdDsKKwkJaWZwLT5pZl9xZmx1c2ggPSBpZl9xZmx1c2g7CisJfQorCQogI2lmZGVmIE1B QwogCW1hY19pbml0X2lmbmV0KGlmcCk7CiAJbWFjX2NyZWF0ZV9pZm5ldChpZnApOwpAQCAtNTU5 LDcgKzU4OSw3IEBAIGlmX2F0dGFjaChzdHJ1Y3QgaWZuZXQgKmlmcCkKIAltYWtlX2Rldl9hbGlh cyhpZmRldl9ieWluZGV4KGlmcC0+aWZfaW5kZXgpLCAiJXMlZCIsCiAJICAgIG5ldF9jZGV2c3cu ZF9uYW1lLCBpZnAtPmlmX2luZGV4KTsKIAotCW10eF9pbml0KCZpZnAtPmlmX3NuZC5pZnFfbXR4 LCBpZnAtPmlmX3huYW1lLCAiaWYgc2VuZCBxdWV1ZSIsIE1UWF9ERUYpOworCWlmcV9hdHRhY2go JmlmcC0+aWZfc25kLCBpZnApOwogCiAJLyoKIAkgKiBjcmVhdGUgYSBMaW5rIExldmVsIG5hbWUg Zm9yIHRoaXMgZGV2aWNlCkBAIC01OTYsMTEgKzYyNiwxNSBAQCBpZl9hdHRhY2goc3RydWN0IGlm bmV0ICppZnApCiAJaWZhLT5pZmFfcmVmY250ID0gMTsKIAlUQUlMUV9JTlNFUlRfSEVBRCgmaWZw LT5pZl9hZGRyaGVhZCwgaWZhLCBpZmFfbGluayk7CiAJaWZwLT5pZl9icm9hZGNhc3RhZGRyID0g TlVMTDsgLyogcmVsaWFibHkgY3Jhc2ggaWYgdXNlZCB1bmluaXRpYWxpemVkICovCis8PDw8PDw8 IEhFQUQKIAlpZnAtPmlmX3NuZC5hbHRxX3R5cGUgPSAwOwogCWlmcC0+aWZfc25kLmFsdHFfZGlz YyA9IE5VTEw7CiAJaWZwLT5pZl9zbmQuYWx0cV9mbGFncyAmPSBBTFRRRl9DQU5UQ0hBTkdFOwog CWlmcC0+aWZfc25kLmFsdHFfdGJyICA9IE5VTEw7CiAJaWZwLT5pZl9zbmQuYWx0cV9pZnAgID0g aWZwOworPT09PT09PQorCis+Pj4+Pj4+IDFiZTg3ZjAuLi4gLSBidW1wIF9fRnJlZUJTRCB2ZXJz aW9uIHRvIHJlZmxlY3QgYWRkZWQgYnVmX3JpbmcsIG1lbW9yeSBiYXJyaWVycywKIAogCUlGTkVU X1dMT0NLKCk7CiAJVEFJTFFfSU5TRVJUX1RBSUwoJmlmbmV0LCBpZnAsIGlmX2xpbmspOwpAQCAt ODQ5LDcgKzg4Myw3IEBAIGlmX2RldGFjaChzdHJ1Y3QgaWZuZXQgKmlmcCkKIAlLTk9URV9VTkxP Q0tFRCgmaWZwLT5pZl9rbGlzdCwgTk9URV9FWElUKTsKIAlrbmxpc3RfY2xlYXIoJmlmcC0+aWZf a2xpc3QsIDApOwogCWtubGlzdF9kZXN0cm95KCZpZnAtPmlmX2tsaXN0KTsKLQltdHhfZGVzdHJv eSgmaWZwLT5pZl9zbmQuaWZxX210eCk7CisJaWZxX2RldGFjaCgmaWZwLT5pZl9zbmQpOwogCUlG X0FGREFUQV9ERVNUUk9ZKGlmcCk7CiAJc3BseChzKTsKIH0KQEAgLTE0NDAsNyArMTQ3NCw4IEBA IGlmX3Vucm91dGUoc3RydWN0IGlmbmV0ICppZnAsIGludCBmbGFnLCBpbnQgZmFtKQogCVRBSUxR X0ZPUkVBQ0goaWZhLCAmaWZwLT5pZl9hZGRyaGVhZCwgaWZhX2xpbmspCiAJCWlmIChmYW0gPT0g UEZfVU5TUEVDIHx8IChmYW0gPT0gaWZhLT5pZmFfYWRkci0+c2FfZmFtaWx5KSkKIAkJCXBmY3Rs aW5wdXQoUFJDX0lGRE9XTiwgaWZhLT5pZmFfYWRkcik7Ci0JaWZfcWZsdXNoKCZpZnAtPmlmX3Nu ZCk7CisJaWZwLT5pZl9xZmx1c2goaWZwKTsKKwogI2lmZGVmIERFVl9DQVJQCiAJaWYgKGlmcC0+ aWZfY2FycCkKIAkJY2FycF9jYXJwZGV2X3N0YXRlKGlmcC0+aWZfY2FycCk7CkBAIC0xNTY3LDEx ICsxNjAyLDEzIEBAIGlmX3VwKHN0cnVjdCBpZm5ldCAqaWZwKQogLyoKICAqIEZsdXNoIGFuIGlu dGVyZmFjZSBxdWV1ZS4KICAqLwotc3RhdGljIHZvaWQKLWlmX3FmbHVzaChzdHJ1Y3QgaWZhbHRx ICppZnEpCit2b2lkCitpZl9xZmx1c2goc3RydWN0IGlmbmV0ICppZnApCiB7CiAJc3RydWN0IG1i dWYgKm0sICpuOwotCisJc3RydWN0IGlmYWx0cSAqaWZxOworCQorCWlmcSA9ICZpZnAtPmlmX3Nu ZDsKIAlJRlFfTE9DSyhpZnEpOwogI2lmZGVmIEFMVFEKIAlpZiAoQUxUUV9JU19FTkFCTEVEKGlm cSkpCkBAIC0yODYyLDYgKzI4OTksMTkgQEAgaWZfc3RhcnRfZGVmZXJyZWQodm9pZCAqY29udGV4 dCwgaW50IHBlbmRpbmcpCiAJKGlmcC0+aWZfc3RhcnQpKGlmcCk7CiB9CiAKKy8qCisgKiBCYWNr d2FyZHMgY29tcGF0aWJpbGl0eSBpbnRlcmZhY2UgZm9yIGRyaXZlcnMgCisgKiB0aGF0IGhhdmUg bm90IGltcGxlbWVudGVkIGl0CisgKi8KK3N0YXRpYyBpbnQKK2lmX3RyYW5zbWl0KHN0cnVjdCBp Zm5ldCAqaWZwLCBzdHJ1Y3QgbWJ1ZiAqbSkKK3sKKwlpbnQgZXJyb3I7CisKKwlJRlFfSEFORE9G RihpZnAsIG0sIGVycm9yKTsKKwlyZXR1cm4gKGVycm9yKTsKK30KKwogaW50CiBpZl9oYW5kb2Zm KHN0cnVjdCBpZnF1ZXVlICppZnEsIHN0cnVjdCBtYnVmICptLCBzdHJ1Y3QgaWZuZXQgKmlmcCwg aW50IGFkanVzdCkKIHsKZGlmZiAtLWdpdCBhL3N5cy9uZXQvaWZfZXRoZXJzdWJyLmMgYi9zeXMv bmV0L2lmX2V0aGVyc3Vici5jCmluZGV4IGZhNDNhZTAuLjI0YWNhYzggMTAwNjQ0Ci0tLSBhL3N5 cy9uZXQvaWZfZXRoZXJzdWJyLmMKKysrIGIvc3lzL25ldC9pZl9ldGhlcnN1YnIuYwpAQCAtMzgz LDcgKzM4Myw2IEBAIGJhZDoJCQlpZiAobSAhPSBOVUxMKQogaW50CiBldGhlcl9vdXRwdXRfZnJh bWUoc3RydWN0IGlmbmV0ICppZnAsIHN0cnVjdCBtYnVmICptKQogewotCWludCBlcnJvcjsKICNp ZiBkZWZpbmVkKElORVQpIHx8IGRlZmluZWQoSU5FVDYpCiAJc3RydWN0IGlwX2Z3ICpydWxlID0g aXBfZG5fY2xhaW1fcnVsZShtKTsKIApAQCAtNDAyLDggKzQwMSw3IEBAIGV0aGVyX291dHB1dF9m cmFtZShzdHJ1Y3QgaWZuZXQgKmlmcCwgc3RydWN0IG1idWYgKm0pCiAJICogUXVldWUgbWVzc2Fn ZSBvbiBpbnRlcmZhY2UsIHVwZGF0ZSBvdXRwdXQgc3RhdGlzdGljcyBpZgogCSAqIHN1Y2Nlc3Nm dWwsIGFuZCBzdGFydCBvdXRwdXQgaWYgaW50ZXJmYWNlIG5vdCB5ZXQgYWN0aXZlLgogCSAqLwot CUlGUV9IQU5ET0ZGKGlmcCwgbSwgZXJyb3IpOwotCXJldHVybiAoZXJyb3IpOworCXJldHVybiAo KGlmcC0+aWZfdHJhbnNtaXQpKGlmcCwgbSkpOwogfQogCiAjaWYgZGVmaW5lZChJTkVUKSB8fCBk ZWZpbmVkKElORVQ2KQpkaWZmIC0tZ2l0IGEvc3lzL25ldC9pZl9mZGRpc3Vici5jIGIvc3lzL25l dC9pZl9mZGRpc3Vici5jCmluZGV4IGEyZmQwMGIuLjYxZjhmNTYgMTAwNjQ0Ci0tLSBhL3N5cy9u ZXQvaWZfZmRkaXN1YnIuYworKysgYi9zeXMvbmV0L2lmX2ZkZGlzdWJyLmMKQEAgLTMzNiw3ICsz MzYsNyBAQCBmZGRpX291dHB1dChpZnAsIG0sIGRzdCwgcnQwKQogCQl9CiAJfQogCi0JSUZRX0hB TkRPRkYoaWZwLCBtLCBlcnJvcik7CisJZXJyb3IgPSAoaWZwLT5pZl90cmFuc21pdCkoaWZwLCBt KTsKIAlpZiAoZXJyb3IpCiAJCWlmcC0+aWZfb2Vycm9ycysrOwogCmRpZmYgLS1naXQgYS9zeXMv bmV0L2lmX2Z3c3Vici5jIGIvc3lzL25ldC9pZl9md3N1YnIuYwppbmRleCBiMWM2OGQyLi5kNTNi MzE4IDEwMDY0NAotLS0gYS9zeXMvbmV0L2lmX2Z3c3Vici5jCisrKyBiL3N5cy9uZXQvaWZfZndz dWJyLmMKQEAgLTI0OSw3ICsyNDksNyBAQCBmaXJld2lyZV9vdXRwdXQoc3RydWN0IGlmbmV0ICpp ZnAsIHN0cnVjdCBtYnVmICptLCBzdHJ1Y3Qgc29ja2FkZHIgKmRzdCwKIAkJICovCiAJCWVuYy0+ dWxbMF0gPSBodG9ubChlbmMtPnVsWzBdKTsKIAotCQlJRlFfSEFORE9GRihpZnAsIG0sIGVycm9y KTsKKwkJZXJyb3IgPSAoaWZwLT5pZl90cmFuc21pdCkoaWZwLCBtKTsKIAkJcmV0dXJuIChlcnJv cik7CiAJfSBlbHNlIHsKIAkJLyoKQEAgLTMwOSw3ICszMDksNyBAQCBmaXJld2lyZV9vdXRwdXQo c3RydWN0IGlmbmV0ICppZnAsIHN0cnVjdCBtYnVmICptLCBzdHJ1Y3Qgc29ja2FkZHIgKmRzdCwK IAkJCWVuYy0+dWxbMF0gPSBodG9ubChlbmMtPnVsWzBdKTsKIAkJCWVuYy0+dWxbMV0gPSBodG9u bChlbmMtPnVsWzFdKTsKIAotCQkJSUZRX0hBTkRPRkYoaWZwLCBtLCBlcnJvcik7CisJCQllcnJv ciA9IChpZnAtPmlmX3RyYW5zbWl0KShpZnAsIG0pOwogCQkJaWYgKGVycm9yKSB7CiAJCQkJaWYg KG10YWlsKQogCQkJCQltX2ZyZWVtKG10YWlsKTsKZGlmZiAtLWdpdCBhL3N5cy9uZXQvaWZfbGFn Zy5jIGIvc3lzL25ldC9pZl9sYWdnLmMKaW5kZXggNDJjYTdjNi4uYmUwY2YwNSAxMDA2NDQKLS0t IGEvc3lzL25ldC9pZl9sYWdnLmMKKysrIGIvc3lzL25ldC9pZl9sYWdnLmMKQEAgLTEzNzQsMTIg KzEzNzQsOCBAQCBvdXQ6CiBpbnQKIGxhZ2dfZW5xdWV1ZShzdHJ1Y3QgaWZuZXQgKmlmcCwgc3Ry dWN0IG1idWYgKm0pCiB7Ci0JaW50IGVycm9yID0gMDsKIAotCUlGUV9IQU5ET0ZGKGlmcCwgbSwg ZXJyb3IpOwotCWlmIChlcnJvcikKLQkJaWZwLT5pZl9vZXJyb3JzKys7Ci0JcmV0dXJuIChlcnJv cik7CisJcmV0dXJuIChpZnAtPmlmX3RyYW5zbWl0KShpZnAsIG0pOwogfQogCiAvKgpkaWZmIC0t Z2l0IGEvc3lzL25ldC9pZl90dW4uYyBiL3N5cy9uZXQvaWZfdHVuLmMKaW5kZXggMDg1MmFkNS4u ODI3MjNmMSAxMDA2NDQKLS0tIGEvc3lzL25ldC9pZl90dW4uYworKysgYi9zeXMvbmV0L2lmX3R1 bi5jCkBAIC02NDcsNyArNjQ3LDcgQEAgdHVub3V0cHV0KAogCQl9CiAJfQogCi0JSUZRX0hBTkRP RkYoaWZwLCBtMCwgZXJyb3IpOworCWVycm9yID0gKGlmcC0+aWZfdHJhbnNtaXQpKGlmcCwgbTAp OwogCWlmIChlcnJvcikgewogCQlpZnAtPmlmX2NvbGxpc2lvbnMrKzsKIAkJcmV0dXJuIChFTk9C VUZTKTsKZGlmZiAtLWdpdCBhL3N5cy9uZXQvaWZfdmFyLmggYi9zeXMvbmV0L2lmX3Zhci5oCmlu ZGV4IDkyYzhlODAuLmQ0ZjM4MjMgMTAwNjQ0Ci0tLSBhL3N5cy9uZXQvaWZfdmFyLmgKKysrIGIv c3lzL25ldC9pZl92YXIuaApAQCAtNzcsNiArNzcsNyBAQCBzdHJ1Y3QgIGlmdmxhbnRydW5rOwog I2lmZGVmIF9LRVJORUwKICNpbmNsdWRlIDxzeXMvbWJ1Zi5oPgogI2luY2x1ZGUgPHN5cy9ldmVu dGhhbmRsZXIuaD4KKyNpbmNsdWRlIDxzeXMvYnVmX3JpbmcuaD4KICNlbmRpZiAvKiBfS0VSTkVM ICovCiAjaW5jbHVkZSA8c3lzL2xvY2suaD4JCS8qIFhYWCAqLwogI2luY2x1ZGUgPHN5cy9tdXRl eC5oPgkJLyogWFhYICovCkBAIC0xODYsNyArMTg3LDExIEBAIHN0cnVjdCBpZm5ldCB7CiAJCQkJ CS8qIHByb3RlY3RlZCBieSBpZl9hZGRyX210eCAqLwogCXZvaWQJKmlmX3BmX2tpZjsKIAl2b2lk CSppZl9sYWdnOwkJLyogbGFnZyBnbHVlICovCi0Jdm9pZAkqaWZfcHNwYXJlWzEwXTsJCS8qIG11 bHRpcS9UT0UgMzsgdmltYWdlIDM7IGdlbmVyYWwgdXNlIDQgKi8KKwl2b2lkCSppZl9wc3BhcmVb OF07CQkvKiBtdWx0aXEvVE9FIDM7IHZpbWFnZSAzOyBnZW5lcmFsIHVzZSA0ICovCisJdm9pZAko KmlmX3FmbHVzaCkJLyogZmx1c2ggYW55IHF1ZXVlcyAqLworCQkoc3RydWN0IGlmbmV0ICopOwor CWludAkoKmlmX3RyYW5zbWl0KQkvKiBpbml0aWF0ZSBvdXRwdXQgcm91dGluZSAqLworCQkoc3Ry dWN0IGlmbmV0ICosIHN0cnVjdCBtYnVmICopOwogCWludAlpZl9pc3BhcmVbMl07CQkvKiBnZW5l cmFsIHVzZSAyICovCiB9OwogCkBAIC01MzYsNiArNTQxLDExOSBAQCBkbyB7CQkJCQkJCQkJXAog CUlGUV9QVVJHRShpZnEpOwkJCQkJCQlcCiB9IHdoaWxlICgwKQogCisjaWZkZWYgX0tFUk5FTAor c3RhdGljIF9faW5saW5lIHZvaWQKK2RyYnJfc3RhdHNfdXBkYXRlKHN0cnVjdCBpZm5ldCAqaWZw LCBpbnQgbGVuLCBpbnQgbWZsYWdzKQoreworI2lmbmRlZiBOT19TTE9XX1NUQVRTCisJaWZwLT5p Zl9vYnl0ZXMgKz0gbGVuOworCWlmIChtZmxhZ3MgJiBNX01DQVNUKQorCQlpZnAtPmlmX29tY2Fz dHMrKzsKKyNlbmRpZgorfQorCitzdGF0aWMgX19pbmxpbmUgaW50CitkcmJyX2VucXVldWUoc3Ry dWN0IGlmbmV0ICppZnAsIHN0cnVjdCBidWZfcmluZyAqYnIsIHN0cnVjdCBtYnVmICptKQorewkK KwlpbnQgZXJyb3IgPSAwOworCWludCBsZW4gPSBtLT5tX3BrdGhkci5sZW47CisJaW50IG1mbGFn cyA9IG0tPm1fZmxhZ3M7CisKKyNpZmRlZiBBTFRRCisJaWYgKEFMVFFfSVNfRU5BQkxFRCgmaWZw LT5pZl9zbmQpKSB7CisJCUlGUV9FTlFVRVVFKCZpZnAtPmlmX3NuZCwgbSwgZXJyb3IpOworCQly ZXR1cm4gKGVycm9yKTsKKwl9CisjZW5kaWYKKwlpZiAoKGVycm9yID0gYnVmX3JpbmdfZW5xdWV1 ZV9ieXRlcyhiciwgbSwgbGVuKSkgPT0gRU5PQlVGUykgeworCQlici0+YnJfZHJvcHMrKzsKKwkJ bV9mcmVlbShtKTsKKwl9IGVsc2UKKwkJZHJicl9zdGF0c191cGRhdGUoaWZwLCBsZW4sIG1mbGFn cyk7CisJCisJcmV0dXJuIChlcnJvcik7Cit9CisKK3N0YXRpYyBfX2lubGluZSB2b2lkCitkcmJy X2ZsdXNoKHN0cnVjdCBpZm5ldCAqaWZwLCBzdHJ1Y3QgYnVmX3JpbmcgKmJyKQoreworCXN0cnVj dCBtYnVmICptOworCisjaWZkZWYgQUxUUQorCWlmIChpZnAgIT0gTlVMTCAmJiBBTFRRX0lTX0VO QUJMRUQoJmlmcC0+aWZfc25kKSkgeworCQl3aGlsZSAoIUlGUV9JU19FTVBUWSgmaWZwLT5pZl9z bmQpKSB7CisJCQlJRlFfRFJWX0RFUVVFVUUoJmlmcC0+aWZfc25kLCBtKTsKKwkJCW1fZnJlZW0o bSk7CisJCX0KKwl9CisjZW5kaWYJCisJd2hpbGUgKChtID0gYnVmX3JpbmdfZGVxdWV1ZV9zYyhi cikpICE9IE5VTEwpCisJCW1fZnJlZW0obSk7Cit9CisKK3N0YXRpYyBfX2lubGluZSB2b2lkCitk cmJyX2ZyZWUoc3RydWN0IGJ1Zl9yaW5nICpiciwgc3RydWN0IG1hbGxvY190eXBlICp0eXBlKQor eworCisJZHJicl9mbHVzaChOVUxMLCBicik7CisJYnVmX3JpbmdfZnJlZShiciwgdHlwZSk7Cit9 CisKK3N0YXRpYyBfX2lubGluZSBzdHJ1Y3QgbWJ1ZiAqCitkcmJyX2RlcXVldWUoc3RydWN0IGlm bmV0ICppZnAsIHN0cnVjdCBidWZfcmluZyAqYnIpCit7CisjaWZkZWYgQUxUUQorCXN0cnVjdCBt YnVmICptOworCisJaWYgKEFMVFFfSVNfRU5BQkxFRCgmaWZwLT5pZl9zbmQpKSB7CQorCQlJRlFf RFJWX0RFUVVFVUUoJmlmcC0+aWZfc25kLCBtKTsKKwkJcmV0dXJuIChtKTsKKwl9CisjZW5kaWYK KwlyZXR1cm4gKGJ1Zl9yaW5nX2RlcXVldWVfc2MoYnIpKTsKK30KKworc3RhdGljIF9faW5saW5l IHN0cnVjdCBtYnVmICoKK2RyYnJfZGVxdWV1ZV9jb25kKHN0cnVjdCBpZm5ldCAqaWZwLCBzdHJ1 Y3QgYnVmX3JpbmcgKmJyLAorICAgIGludCAoKmZ1bmMpIChzdHJ1Y3QgbWJ1ZiAqLCB2b2lkICop LCB2b2lkICphcmcpIAoreworCXN0cnVjdCBtYnVmICptOworI2lmZGVmIEFMVFEKKwkvKgorCSAq IFhYWCBuZWVkIHRvIGV2YWx1YXRlIC8gcmVxdWV1ZSAKKwkgKi8KKwlpZiAoQUxUUV9JU19FTkFC TEVEKCZpZnAtPmlmX3NuZCkpIHsJCisJCUlGUV9EUlZfREVRVUVVRSgmaWZwLT5pZl9zbmQsIG0p OworCQlyZXR1cm4gKG0pOworCX0KKyNlbmRpZgorCW0gPSBidWZfcmluZ19wZWVrKGJyKTsKKwlp ZiAobSA9PSBOVUxMIHx8IGZ1bmMobSwgYXJnKSA9PSAwKQorCQlyZXR1cm4gKE5VTEwpOworCisJ cmV0dXJuIChidWZfcmluZ19kZXF1ZXVlX3NjKGJyKSk7Cit9CisKK3N0YXRpYyBfX2lubGluZSBp bnQKK2RyYnJfZW1wdHkoc3RydWN0IGlmbmV0ICppZnAsIHN0cnVjdCBidWZfcmluZyAqYnIpCit7 CisjaWZkZWYgQUxUUQorCWlmIChBTFRRX0lTX0VOQUJMRUQoJmlmcC0+aWZfc25kKSkKKwkJcmV0 dXJuIChJRlFfRFJWX0lTX0VNUFRZKCZpZnAtPmlmX3NuZCkpOworI2VuZGlmCisJcmV0dXJuIChi dWZfcmluZ19lbXB0eShicikpOworfQorCitzdGF0aWMgX19pbmxpbmUgaW50CitkcmJyX2ludXNl KHN0cnVjdCBpZm5ldCAqaWZwLCBzdHJ1Y3QgYnVmX3JpbmcgKmJyKQoreworI2lmZGVmIEFMVFEK KwlpZiAoQUxUUV9JU19FTkFCTEVEKCZpZnAtPmlmX3NuZCkpCisJCXJldHVybiAoaWZwLT5pZl9z bmQuaWZxX2xlbik7CisjZW5kaWYKKwlyZXR1cm4gKGJ1Zl9yaW5nX2NvdW50KGJyKSk7Cit9Cisj ZW5kaWYKIC8qCiAgKiA3MiB3YXMgY2hvc2VuIGJlbG93IGJlY2F1c2UgaXQgaXMgdGhlIHNpemUg b2YgYSBUQ1AvSVAKICAqIGhlYWRlciAoNDApICsgdGhlIG1pbmltdW0gbXNzICgzMikuCkBAIC02 NzcsNiArNzk1LDcgQEAgdm9pZAlpZl9mcmVlX3R5cGUoc3RydWN0IGlmbmV0ICosIHVfY2hhcik7 CiB2b2lkCWlmX2luaXRuYW1lKHN0cnVjdCBpZm5ldCAqLCBjb25zdCBjaGFyICosIGludCk7CiB2 b2lkCWlmX2xpbmtfc3RhdGVfY2hhbmdlKHN0cnVjdCBpZm5ldCAqLCBpbnQpOwogaW50CWlmX3By aW50ZihzdHJ1Y3QgaWZuZXQgKiwgY29uc3QgY2hhciAqLCAuLi4pIF9fcHJpbnRmbGlrZSgyLCAz KTsKK3ZvaWQJaWZfcWZsdXNoKHN0cnVjdCBpZm5ldCAqKTsKIGludAlpZl9zZXRsbGFkZHIoc3Ry dWN0IGlmbmV0ICosIGNvbnN0IHVfY2hhciAqLCBpbnQpOwogdm9pZAlpZl91cChzdHJ1Y3QgaWZu ZXQgKik7CiAvKnZvaWQJaWZpbml0KHZvaWQpOyovIC8qIGRlY2xhcmVkIGluIHN5c3RtLmggZm9y IG1haW4oKSAqLwpAQCAtNjg0LDYgKzgwMyw5IEBAIGludAlpZmlvY3RsKHN0cnVjdCBzb2NrZXQg KiwgdV9sb25nLCBjYWRkcl90LCBzdHJ1Y3QgdGhyZWFkICopOwogaW50CWlmcHJvbWlzYyhzdHJ1 Y3QgaWZuZXQgKiwgaW50KTsKIHN0cnVjdAlpZm5ldCAqaWZ1bml0KGNvbnN0IGNoYXIgKik7CiAK K3ZvaWQJaWZxX2F0dGFjaChzdHJ1Y3QgaWZhbHRxICosIHN0cnVjdCBpZm5ldCAqaWZwKTsKK3Zv aWQJaWZxX2RldGFjaChzdHJ1Y3QgaWZhbHRxICopOworCiBzdHJ1Y3QJaWZhZGRyICppZmFfaWZ3 aXRoYWRkcihzdHJ1Y3Qgc29ja2FkZHIgKik7CiBzdHJ1Y3QJaWZhZGRyICppZmFfaWZ3aXRoYnJv YWRhZGRyKHN0cnVjdCBzb2NrYWRkciAqKTsKIHN0cnVjdAlpZmFkZHIgKmlmYV9pZndpdGhkc3Rh ZGRyKHN0cnVjdCBzb2NrYWRkciAqKTsKZGlmZiAtLWdpdCBhL3N5cy9uZXQvaWZfdmxhbi5jIGIv c3lzL25ldC9pZl92bGFuLmMKaW5kZXggYzE4ODFkYS4uYjFmN2RlZSAxMDA2NDQKLS0tIGEvc3lz L25ldC9pZl92bGFuLmMKKysrIGIvc3lzL25ldC9pZl92bGFuLmMKQEAgLTg3MSw3ICs4NzEsNyBA QCB2bGFuX3N0YXJ0KHN0cnVjdCBpZm5ldCAqaWZwKQogCQkgKiBTZW5kIGl0LCBwcmVjaXNlbHkg YXMgZXRoZXJfb3V0cHV0KCkgd291bGQgaGF2ZS4KIAkJICogV2UgYXJlIGFscmVhZHkgcnVubmlu ZyBhdCBzcGxpbXAuCiAJCSAqLwotCQlJRlFfSEFORE9GRihwLCBtLCBlcnJvcik7CisJCWVycm9y ID0gKHAtPmlmX3RyYW5zbWl0KShwLCBtKTsKIAkJaWYgKCFlcnJvcikKIAkJCWlmcC0+aWZfb3Bh Y2tldHMrKzsKIAkJZWxzZQpkaWZmIC0tZ2l0IGEvc3lzL25ldDgwMjExL2llZWU4MDIxMV9vdXRw dXQuYyBiL3N5cy9uZXQ4MDIxMS9pZWVlODAyMTFfb3V0cHV0LmMKaW5kZXggYzgyZGU0OC4uZWU5 NjMyNSAxMDA2NDQKLS0tIGEvc3lzL25ldDgwMjExL2llZWU4MDIxMV9vdXRwdXQuYworKysgYi9z eXMvbmV0ODAyMTEvaWVlZTgwMjExX291dHB1dC5jCkBAIC0yMzMsNyArMjMzLDIyIEBAIGllZWU4 MDIxMV9yYXdfeG1pdChzdHJ1Y3QgaWVlZTgwMjExX25vZGUgKm5pLCBzdHJ1Y3QgbWJ1ZiAqbSwK IAlpZl9zdGFydChpZnApOwogCWlmcC0+aWZfb3BhY2tldHMrKzsKIAorI2Vycm9yICJyMTg1MTY0 IGNoZXJyeS1waWNrIGNvbmZsaWN0ZWQgaGVyZSwgcGxlYXNlIGZpeC4iCis8PDw8PDw8IEhFQUQK IAlyZXR1cm4gMDsKKz09PT09PT0KKwkJLyogWFhYIGRlZmVyIGlmX3N0YXJ0IGNhbGxzPyAqLwor CQllcnJvciA9IChwYXJlbnQtPmlmX3RyYW5zbWl0KShwYXJlbnQsIG0pOworCQlpZiAoZXJyb3Ig IT0gMCkgeworCQkJLyogTkI6IElGUV9IQU5ET0ZGIHJlY2xhaW1zIG1idWYgKi8KKwkJCWllZWU4 MDIxMV9mcmVlX25vZGUobmkpOworCQl9IGVsc2UgeworCQkJaWZwLT5pZl9vcGFja2V0cysrOwor CQl9CisJCWljLT5pY19sYXN0ZGF0YSA9IHRpY2tzOworCX0KKyN1bmRlZiBJU19EV0RTCis+Pj4+ Pj4+IGVlZTRmMWYuLi4gY29udmVydCBjYWxscyB0byBJRlFfSEFORE9GRiB0byBpZl90cmFuc21p dAogfQogCiAvKgpkaWZmIC0tZ2l0IGEvc3lzL25ldGdyYXBoL25nX2lmYWNlLmMgYi9zeXMvbmV0 Z3JhcGgvbmdfaWZhY2UuYwppbmRleCA1Yjc2YzI5Li42MzU4ZDg5IDEwMDY0NAotLS0gYS9zeXMv bmV0Z3JhcGgvbmdfaWZhY2UuYworKysgYi9zeXMvbmV0Z3JhcGgvbmdfaWZhY2UuYwpAQCAtNDAx LDcgKzQwMSw3IEBAIG5nX2lmYWNlX291dHB1dChzdHJ1Y3QgaWZuZXQgKmlmcCwgc3RydWN0IG1i dWYgKm0sCiAJCQlyZXR1cm4gKEVOT0JVRlMpOwogCQl9CiAJCSooc2FfZmFtaWx5X3QgKiltLT5t X2RhdGEgPSBkc3QtPnNhX2ZhbWlseTsKLQkJSUZRX0hBTkRPRkYoaWZwLCBtLCBlcnJvcik7CisJ CWVycm9yID0gKGlmcC0+aWZfdHJhbnNtaXQpKGlmcCwgbSk7CiAJfSBlbHNlCiAJCWVycm9yID0g bmdfaWZhY2Vfc2VuZChpZnAsIG0sIGRzdC0+c2FfZmFtaWx5KTsKIApkaWZmIC0tZ2l0IGEvc3lz L3Bvd2VycGMvaW5jbHVkZS9hdG9taWMuaCBiL3N5cy9wb3dlcnBjL2luY2x1ZGUvYXRvbWljLmgK aW5kZXggZDUxNWE2YS4uNGFjOWYwYyAxMDA2NDQKLS0tIGEvc3lzL3Bvd2VycGMvaW5jbHVkZS9h dG9taWMuaAorKysgYi9zeXMvcG93ZXJwYy9pbmNsdWRlL2F0b21pYy5oCkBAIC0zOSw2ICszOSwx MCBAQAogI2RlZmluZQlfX0FUT01JQ19CQVJSSUVSCQkJCQlcCiAgICAgX19hc20gX192b2xhdGls ZSgic3luYyIgOiA6IDogIm1lbW9yeSIpCiAKKyNkZWZpbmUgbWIoKQlfX0FUT01JQ19CQVJSSUVS CisjZGVmaW5lCXdtYigpCW1iKCkKKyNkZWZpbmUJcm1iKCkJbWIoKQorCiAvKgogICogYXRvbWlj X2FkZChwLCB2KQogICogeyAqcCArPSB2OyB9CmRpZmYgLS1naXQgYS9zeXMvc3BhcmM2NC9pbmNs dWRlL2F0b21pYy5oIGIvc3lzL3NwYXJjNjQvaW5jbHVkZS9hdG9taWMuaAppbmRleCBmZTM2Nzkx Li5kNjYzZmJjIDEwMDY0NAotLS0gYS9zeXMvc3BhcmM2NC9pbmNsdWRlL2F0b21pYy5oCisrKyBi L3N5cy9zcGFyYzY0L2luY2x1ZGUvYXRvbWljLmgKQEAgLTQwLDYgKzQwLDEwIEBACiAjZGVmaW5l CV9fQVNJX0FUT01JQwlBU0lfUAogI2VuZGlmCiAKKyNkZWZpbmUgbWIoKQlfX2FzbV9fIF9fdm9s YXRpbGVfXyAoIm1lbWJhciAjTWVtSXNzdWUiOiA6IDoibWVtb3J5IikKKyNkZWZpbmUgd21iKCkJ bWIoKQorI2RlZmluZSBybWIoKQltYigpCisKIC8qCiAgKiBWYXJpb3VzIHNpbXBsZSBhcml0aG1l dGljIG9uIG1lbW9yeSB3aGljaCBpcyBhdG9taWMgaW4gdGhlIHByZXNlbmNlCiAgKiBvZiBpbnRl cnJ1cHRzIGFuZCBtdWx0aXBsZSBwcm9jZXNzb3JzLiAgU2VlIGF0b21pYyg5KSBmb3IgZGV0YWls cy4KZGlmZiAtLWdpdCBhL3N5cy9zdW40di9pbmNsdWRlL2F0b21pYy5oIGIvc3lzL3N1bjR2L2lu Y2x1ZGUvYXRvbWljLmgKaW5kZXggZmUzNjc5MS4uYzUwMDVmYSAxMDA2NDQKLS0tIGEvc3lzL3N1 bjR2L2luY2x1ZGUvYXRvbWljLmgKKysrIGIvc3lzL3N1bjR2L2luY2x1ZGUvYXRvbWljLmgKQEAg LTMzLDYgKzMzLDEwIEBACiAKICNpbmNsdWRlIDxtYWNoaW5lL2NwdWZ1bmMuaD4KIAorI2RlZmlu ZSBtYigpCV9fYXNtX18gX192b2xhdGlsZV9fICgibWVtYmFyICNNZW1Jc3N1ZSI6IDogOiJtZW1v cnkiKQorI2RlZmluZSB3bWIoKQltYigpCisjZGVmaW5lIHJtYigpCW1iKCkKKwogLyogVXNlcmxh bmQgbmVlZHMgZGlmZmVyZW50IEFTSSdzLiAqLwogI2lmZGVmIF9LRVJORUwKICNkZWZpbmUJX19B U0lfQVRPTUlDCUFTSV9OCmRpZmYgLS1naXQgYS9zeXMvc3lzL2J1Zl9yaW5nLmggYi9zeXMvc3lz L2J1Zl9yaW5nLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWZhNjY3ZAot LS0gL2Rldi9udWxsCisrKyBiL3N5cy9zeXMvYnVmX3JpbmcuaApAQCAtMCwwICsxLDI3OSBAQAor LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqCisgKgorICogQ29weXJpZ2h0IChjKSAyMDA3LTIwMDkgS2lwIE1h Y3kga21hY3lAZnJlZWJzZC5vcmcKKyAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3 aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg Zm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlIG1ldDoKKyAqCisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UsCisg KiAgICB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy LgorICoKKyAqIDIuIFRoZSBuYW1lIG9mIEtpcCBNYWN5IG5vciB0aGUgbmFtZXMgb2Ygb3RoZXIK KyAqICAgIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJv ZHVjdHMgZGVyaXZlZCBmcm9tCisgKiAgICB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMg cHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE RUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMgIkFTIElTIgorICog QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U IExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UKKyAqIEFSRSBESVNDTEFJTUVE LiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBC RQorICogTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRQor ICogUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKgorICogJEZyZWVCU0QkCisgKgorICoq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKi8KKworI2lmbmRlZglfU1lTX0JVRl9SSU5HX0hfCisjZGVmaW5lCV9T WVNfQlVGX1JJTkdfSF8KKworI2luY2x1ZGUgPG1hY2hpbmUvY3B1Lmg+CisKKyNpZiBkZWZpbmVk KElOVkFSSUFOVFMpICYmICFkZWZpbmVkKERFQlVHX0JVRlJJTkcpCisjZGVmaW5lIERFQlVHX0JV RlJJTkcgMQorI2VuZGlmCisKKyNpZmRlZiBERUJVR19CVUZSSU5HCisjaW5jbHVkZSA8c3lzL2xv Y2suaD4KKyNpbmNsdWRlIDxzeXMvbXV0ZXguaD4KKyNlbmRpZgorCitzdHJ1Y3QgYnVmX3Jpbmcg eworCXZvbGF0aWxlIHVpbnQzMl90CWJyX3Byb2RfaGVhZDsKKwl2b2xhdGlsZSB1aW50MzJfdAli cl9wcm9kX3RhaWw7CQorCWludCAgICAgICAgICAgICAgCWJyX3Byb2Rfc2l6ZTsKKwlpbnQgICAg ICAgICAgICAgIAlicl9wcm9kX21hc2s7CisJdWludDY0X3QJCWJyX2Ryb3BzOworCXVpbnQ2NF90 CQlicl9wcm9kX2J1ZnM7CisJdWludDY0X3QJCWJyX3Byb2RfYnl0ZXM7CisJLyoKKwkgKiBQYWQg b3V0IHRvIG5leHQgTDIgY2FjaGUgbGluZQorCSAqLworCXVpbnQ2NF90CSAgCV9wYWQwWzExXTsK KworCXZvbGF0aWxlIHVpbnQzMl90CWJyX2NvbnNfaGVhZDsKKwl2b2xhdGlsZSB1aW50MzJfdAli cl9jb25zX3RhaWw7CisJaW50CQkgCWJyX2NvbnNfc2l6ZTsKKwlpbnQgICAgICAgICAgICAgIAli cl9jb25zX21hc2s7CisJCisJLyoKKwkgKiBQYWQgb3V0IHRvIG5leHQgTDIgY2FjaGUgbGluZQor CSAqLworCXVpbnQ2NF90CSAgCV9wYWQxWzE0XTsKKyNpZmRlZiBERUJVR19CVUZSSU5HCisJc3Ry dWN0IG10eAkJKmJyX2xvY2s7CisjZW5kaWYJCisJdm9pZAkJCSpicl9yaW5nWzBdOworfTsKKwor LyoKKyAqIG11bHRpLXByb2R1Y2VyIHNhZmUgbG9jay1mcmVlIHJpbmcgYnVmZmVyIGVucXVldWUK KyAqCisgKi8KK3N0YXRpYyBfX2lubGluZSBpbnQKK2J1Zl9yaW5nX2VucXVldWVfYnl0ZXMoc3Ry dWN0IGJ1Zl9yaW5nICpiciwgdm9pZCAqYnVmLCBpbnQgbmJ5dGVzKQoreworCXVpbnQzMl90IHBy b2RfaGVhZCwgcHJvZF9uZXh0OworCXVpbnQzMl90IGNvbnNfdGFpbDsKKwlpbnQgc3VjY2VzczsK KyNpZmRlZiBERUJVR19CVUZSSU5HCisJaW50IGk7CisJZm9yIChpID0gYnItPmJyX2NvbnNfaGVh ZDsgaSAhPSBici0+YnJfcHJvZF9oZWFkOworCSAgICAgaSA9ICgoaSArIDEpICYgYnItPmJyX2Nv bnNfbWFzaykpCisJCWlmKGJyLT5icl9yaW5nW2ldID09IGJ1ZikKKwkJCXBhbmljKCJidWY9JXAg YWxyZWFkeSBlbnF1ZXVlIGF0ICVkIHByb2Q9JWQgY29ucz0lZCIsCisJCQkgICAgYnVmLCBpLCBi ci0+YnJfcHJvZF90YWlsLCBici0+YnJfY29uc190YWlsKTsKKyNlbmRpZgkKKwljcml0aWNhbF9l bnRlcigpOworCWRvIHsKKwkJcHJvZF9oZWFkID0gYnItPmJyX3Byb2RfaGVhZDsKKwkJY29uc190 YWlsID0gYnItPmJyX2NvbnNfdGFpbDsKKworCQlwcm9kX25leHQgPSAocHJvZF9oZWFkICsgMSkg JiBici0+YnJfcHJvZF9tYXNrOworCQkKKwkJaWYgKHByb2RfbmV4dCA9PSBjb25zX3RhaWwpIHsK KwkJCWNyaXRpY2FsX2V4aXQoKTsKKwkJCXJldHVybiAoRU5PQlVGUyk7CisJCX0KKwkJCisJCXN1 Y2Nlc3MgPSBhdG9taWNfY21wc2V0X2ludCgmYnItPmJyX3Byb2RfaGVhZCwgcHJvZF9oZWFkLAor CQkgICAgcHJvZF9uZXh0KTsKKwl9IHdoaWxlIChzdWNjZXNzID09IDApOworI2lmZGVmIERFQlVH X0JVRlJJTkcKKwlpZiAoYnItPmJyX3JpbmdbcHJvZF9oZWFkXSAhPSBOVUxMKQorCQlwYW5pYygi ZGFuZ2xpbmcgdmFsdWUgaW4gZW5xdWV1ZSIpOworI2VuZGlmCQorCWJyLT5icl9yaW5nW3Byb2Rf aGVhZF0gPSBidWY7CisJd21iKCk7CisKKwkvKgorCSAqIElmIHRoZXJlIGFyZSBvdGhlciBlbnF1 ZXVlcyBpbiBwcm9ncmVzcworCSAqIHRoYXQgcHJlY2VlZGVkIHVzLCB3ZSBuZWVkIHRvIHdhaXQg Zm9yIHRoZW0KKwkgKiB0byBjb21wbGV0ZSAKKwkgKi8gICAKKwl3aGlsZSAoYnItPmJyX3Byb2Rf dGFpbCAhPSBwcm9kX2hlYWQpCisJCWNwdV9zcGlud2FpdCgpOworCWJyLT5icl9wcm9kX2J1ZnMr KzsKKwlici0+YnJfcHJvZF9ieXRlcyArPSBuYnl0ZXM7CisJYnItPmJyX3Byb2RfdGFpbCA9IHBy b2RfbmV4dDsKKwljcml0aWNhbF9leGl0KCk7CisJcmV0dXJuICgwKTsKK30KKworc3RhdGljIF9f aW5saW5lIGludAorYnVmX3JpbmdfZW5xdWV1ZShzdHJ1Y3QgYnVmX3JpbmcgKmJyLCB2b2lkICpi dWYpCit7CisKKwlyZXR1cm4gKGJ1Zl9yaW5nX2VucXVldWVfYnl0ZXMoYnIsIGJ1ZiwgMCkpOwor fQorCisvKgorICogbXVsdGktY29uc3VtZXIgc2FmZSBkZXF1ZXVlIAorICoKKyAqLworc3RhdGlj IF9faW5saW5lIHZvaWQgKgorYnVmX3JpbmdfZGVxdWV1ZV9tYyhzdHJ1Y3QgYnVmX3JpbmcgKmJy KQoreworCXVpbnQzMl90IGNvbnNfaGVhZCwgY29uc19uZXh0OworCXVpbnQzMl90IHByb2RfdGFp bDsKKwl2b2lkICpidWY7CisJaW50IHN1Y2Nlc3M7CisKKwljcml0aWNhbF9lbnRlcigpOworCWRv IHsKKwkJY29uc19oZWFkID0gYnItPmJyX2NvbnNfaGVhZDsKKwkJcHJvZF90YWlsID0gYnItPmJy X3Byb2RfdGFpbDsKKworCQljb25zX25leHQgPSAoY29uc19oZWFkICsgMSkgJiBici0+YnJfY29u c19tYXNrOworCQkKKwkJaWYgKGNvbnNfaGVhZCA9PSBwcm9kX3RhaWwpIHsKKwkJCWNyaXRpY2Fs X2V4aXQoKTsKKwkJCXJldHVybiAoTlVMTCk7CisJCX0KKwkJCisJCXN1Y2Nlc3MgPSBhdG9taWNf Y21wc2V0X2ludCgmYnItPmJyX2NvbnNfaGVhZCwgY29uc19oZWFkLAorCQkgICAgY29uc19uZXh0 KTsKKwl9IHdoaWxlIChzdWNjZXNzID09IDApOwkJCisKKwlidWYgPSBici0+YnJfcmluZ1tjb25z X2hlYWRdOworI2lmZGVmIERFQlVHX0JVRlJJTkcKKwlici0+YnJfcmluZ1tjb25zX2hlYWRdID0g TlVMTDsKKyNlbmRpZgorCXJtYigpOworCQorCS8qCisJICogSWYgdGhlcmUgYXJlIG90aGVyIGRl cXVldWVzIGluIHByb2dyZXNzCisJICogdGhhdCBwcmVjZWVkZWQgdXMsIHdlIG5lZWQgdG8gd2Fp dCBmb3IgdGhlbQorCSAqIHRvIGNvbXBsZXRlIAorCSAqLyAgIAorCXdoaWxlIChici0+YnJfY29u c190YWlsICE9IGNvbnNfaGVhZCkKKwkJY3B1X3NwaW53YWl0KCk7CisKKwlici0+YnJfY29uc190 YWlsID0gY29uc19uZXh0OworCWNyaXRpY2FsX2V4aXQoKTsKKworCXJldHVybiAoYnVmKTsKK30K KworLyoKKyAqIHNpbmdsZS1jb25zdW1lciBkZXF1ZXVlIAorICogdXNlIHdoZXJlIGRlcXVldWUg aXMgcHJvdGVjdGVkIGJ5IGEgbG9jaworICogZS5nLiBhIG5ldHdvcmsgZHJpdmVyJ3MgdHggcXVl dWUgbG9jaworICovCitzdGF0aWMgX19pbmxpbmUgdm9pZCAqCitidWZfcmluZ19kZXF1ZXVlX3Nj KHN0cnVjdCBidWZfcmluZyAqYnIpCit7CisJdWludDMyX3QgY29uc19oZWFkLCBjb25zX25leHQs IGNvbnNfbmV4dF9uZXh0OworCXVpbnQzMl90IHByb2RfdGFpbDsKKwl2b2lkICpidWY7CisJCisJ Y29uc19oZWFkID0gYnItPmJyX2NvbnNfaGVhZDsKKwlwcm9kX3RhaWwgPSBici0+YnJfcHJvZF90 YWlsOworCQorCWNvbnNfbmV4dCA9IChjb25zX2hlYWQgKyAxKSAmIGJyLT5icl9jb25zX21hc2s7 CisJY29uc19uZXh0X25leHQgPSAoY29uc19oZWFkICsgMikgJiBici0+YnJfY29uc19tYXNrOwor CQorCWlmIChjb25zX2hlYWQgPT0gcHJvZF90YWlsKSAKKwkJcmV0dXJuIChOVUxMKTsKKworI2lm ZGVmIFBSRUZFVENIX0RFRklORUQJCisJaWYgKGNvbnNfbmV4dCAhPSBwcm9kX3RhaWwpIHsJCQor CQlwcmVmZXRjaChici0+YnJfcmluZ1tjb25zX25leHRdKTsKKwkJaWYgKGNvbnNfbmV4dF9uZXh0 ICE9IHByb2RfdGFpbCkgCisJCQlwcmVmZXRjaChici0+YnJfcmluZ1tjb25zX25leHRfbmV4dF0p OworCX0KKyNlbmRpZgorCWJyLT5icl9jb25zX2hlYWQgPSBjb25zX25leHQ7CisJYnVmID0gYnIt PmJyX3JpbmdbY29uc19oZWFkXTsKKworI2lmZGVmIERFQlVHX0JVRlJJTkcKKwlici0+YnJfcmlu Z1tjb25zX2hlYWRdID0gTlVMTDsKKwlpZiAoIW10eF9vd25lZChici0+YnJfbG9jaykpCisJCXBh bmljKCJsb2NrIG5vdCBoZWxkIG9uIHNpbmdsZSBjb25zdW1lciBkZXF1ZXVlIik7CisJaWYgKGJy LT5icl9jb25zX3RhaWwgIT0gY29uc19oZWFkKQorCQlwYW5pYygiaW5jb25zaXN0ZW50IGxpc3Qg Y29uc190YWlsPSVkIGNvbnNfaGVhZD0lZCIsCisJCSAgICBici0+YnJfY29uc190YWlsLCBjb25z X2hlYWQpOworI2VuZGlmCisJYnItPmJyX2NvbnNfdGFpbCA9IGNvbnNfbmV4dDsKKwlyZXR1cm4g KGJ1Zik7Cit9CisKKy8qCisgKiByZXR1cm4gYSBwb2ludGVyIHRvIHRoZSBmaXJzdCBlbnRyeSBp biB0aGUgcmluZworICogd2l0aG91dCBtb2RpZnlpbmcgaXQsIG9yIE5VTEwgaWYgdGhlIHJpbmcg aXMgZW1wdHkKKyAqIHJhY2UtcHJvbmUgaWYgbm90IHByb3RlY3RlZCBieSBhIGxvY2sKKyAqLwor c3RhdGljIF9faW5saW5lIHZvaWQgKgorYnVmX3JpbmdfcGVlayhzdHJ1Y3QgYnVmX3JpbmcgKmJy KQoreworCisjaWZkZWYgREVCVUdfQlVGUklORworCWlmICgoYnItPmJyX2xvY2sgIT0gTlVMTCkg JiYgIW10eF9vd25lZChici0+YnJfbG9jaykpCisJCXBhbmljKCJsb2NrIG5vdCBoZWxkIG9uIHNp bmdsZSBjb25zdW1lciBkZXF1ZXVlIik7CisjZW5kaWYJCisJLyoKKwkgKiBJIGJlbGlldmUgaXQg aXMgc2FmZSB0byBub3QgaGF2ZSBhIG1lbW9yeSBiYXJyaWVyCisJICogaGVyZSBiZWNhdXNlIHdl IGNvbnRyb2wgY29ucyBhbmQgdGFpbCBpcyB3b3JzdCBjYXNlCisJICogYSBsYWdnaW5nIGluZGlj YXRvciBzbyB3ZSB3b3JzdCBjYXNlIHdlIG1pZ2h0CisJICogcmV0dXJuIE5VTEwgaW1tZWRpYXRl bHkgYWZ0ZXIgYSBidWZmZXIgaGFzIGJlZW4gZW5xdWV1ZWQKKwkgKi8KKwlpZiAoYnItPmJyX2Nv bnNfaGVhZCA9PSBici0+YnJfcHJvZF90YWlsKQorCQlyZXR1cm4gKE5VTEwpOworCQorCXJldHVy biAoYnItPmJyX3JpbmdbYnItPmJyX2NvbnNfaGVhZF0pOworfQorCitzdGF0aWMgX19pbmxpbmUg aW50CitidWZfcmluZ19mdWxsKHN0cnVjdCBidWZfcmluZyAqYnIpCit7CisKKwlyZXR1cm4gKCgo YnItPmJyX3Byb2RfaGVhZCArIDEpICYgYnItPmJyX3Byb2RfbWFzaykgPT0gYnItPmJyX2NvbnNf dGFpbCk7Cit9CisKK3N0YXRpYyBfX2lubGluZSBpbnQKK2J1Zl9yaW5nX2VtcHR5KHN0cnVjdCBi dWZfcmluZyAqYnIpCit7CisKKwlyZXR1cm4gKGJyLT5icl9jb25zX2hlYWQgPT0gYnItPmJyX3By b2RfdGFpbCk7Cit9CisKK3N0YXRpYyBfX2lubGluZSBpbnQKK2J1Zl9yaW5nX2NvdW50KHN0cnVj dCBidWZfcmluZyAqYnIpCit7CisKKwlyZXR1cm4gKChici0+YnJfcHJvZF9zaXplICsgYnItPmJy X3Byb2RfdGFpbCAtIGJyLT5icl9jb25zX3RhaWwpCisJICAgICYgYnItPmJyX3Byb2RfbWFzayk7 Cit9CisKK3N0cnVjdCBidWZfcmluZyAqYnVmX3JpbmdfYWxsb2MoaW50IGNvdW50LCBzdHJ1Y3Qg bWFsbG9jX3R5cGUgKnR5cGUsIGludCBmbGFncywKKyAgICBzdHJ1Y3QgbXR4ICopOwordm9pZCBi dWZfcmluZ19mcmVlKHN0cnVjdCBidWZfcmluZyAqYnIsIHN0cnVjdCBtYWxsb2NfdHlwZSAqdHlw ZSk7CisKKworCisjZW5kaWYK --bcaec520ed5777122404acd6ed09 Content-Type: text/x-patch; charset=US-ASCII; name="0001-IGB_MULTIQUEUE.patch" Content-Disposition: attachment; filename="0001-IGB_MULTIQUEUE.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_gsj810bi1 RnJvbSA2ZWYyM2M0OGE3MTc2NjY0MWY0NzcxNmE5ZTNkYzI3NWMyMzE1YTJlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBcm5hdWQgTGFjb21iZSA8bGFjb21iYXJAZ21haWwuY29tPgpE YXRlOiBNb24sIDEyIFNlcCAyMDExIDIyOjMyOjQ1IC0wNDAwClN1YmplY3Q6IFtQQVRDSF0gSUdC X01VTFRJUVVFVUUKCi0tLQogc3lzL2Rldi9lMTAwMC9pZl9pZ2IuYyB8ICAgMzQgKysrKysrKysr KysrKysrKysrLS0tLS0tLS0tLS0tLS0tLQogc3lzL2Rldi9lMTAwMC9pZl9pZ2IuaCB8ICAgIDQg KystLQogMiBmaWxlcyBjaGFuZ2VkLCAyMCBpbnNlcnRpb25zKCspLCAxOCBkZWxldGlvbnMoLSkK CmRpZmYgLS1naXQgYS9zeXMvZGV2L2UxMDAwL2lmX2lnYi5jIGIvc3lzL2Rldi9lMTAwMC9pZl9p Z2IuYwppbmRleCA0OTQ0ZTU2Li5kZTFmYWU5IDEwMDY0NAotLS0gYS9zeXMvZGV2L2UxMDAwL2lm X2lnYi5jCisrKyBiL3N5cy9kZXYvZTEwMDAvaWZfaWdiLmMKQEAgLTQyLDcgKzQyLDcgQEAKIAog I2luY2x1ZGUgPHN5cy9wYXJhbS5oPgogI2luY2x1ZGUgPHN5cy9zeXN0bS5oPgotI2lmIF9fRnJl ZUJTRF92ZXJzaW9uID49IDgwMDAwMAorI2lmZGVmIElHQl9NVUxUSVFVRVVFCiAjaW5jbHVkZSA8 c3lzL2J1Zl9yaW5nLmg+CiAjZW5kaWYKICNpbmNsdWRlIDxzeXMvYnVzLmg+CkBAIC0xNzIsNyAr MTcyLDcgQEAgc3RhdGljIGludAlpZ2JfZGV0YWNoKGRldmljZV90KTsKIHN0YXRpYyBpbnQJaWdi X3NodXRkb3duKGRldmljZV90KTsKIHN0YXRpYyBpbnQJaWdiX3N1c3BlbmQoZGV2aWNlX3QpOwog c3RhdGljIGludAlpZ2JfcmVzdW1lKGRldmljZV90KTsKLSNpZiBfX0ZyZWVCU0RfdmVyc2lvbiA+ PSA4MDAwMDAKKyNpZmRlZiBJR0JfTVVMVElRVUVVRQogc3RhdGljIGludAlpZ2JfbXFfc3RhcnQo c3RydWN0IGlmbmV0ICosIHN0cnVjdCBtYnVmICopOwogc3RhdGljIGludAlpZ2JfbXFfc3RhcnRf bG9ja2VkKHN0cnVjdCBpZm5ldCAqLAogCQkgICAgc3RydWN0IHR4X3JpbmcgKiwgc3RydWN0IG1i dWYgKik7CkBAIC04MDAsNyArODAwLDcgQEAgaWdiX3Jlc3VtZShkZXZpY2VfdCBkZXYpCiB7CiAJ c3RydWN0IGFkYXB0ZXIgKmFkYXB0ZXIgPSBkZXZpY2VfZ2V0X3NvZnRjKGRldik7CiAJc3RydWN0 IGlmbmV0ICppZnAgPSBhZGFwdGVyLT5pZnA7Ci0jaWYgX19GcmVlQlNEX3ZlcnNpb24gPj0gODAw MDAwCisjaWZkZWYgSUdCX01VTFRJUVVFVUUKIAlzdHJ1Y3QgdHhfcmluZyAqdHhyID0gYWRhcHRl ci0+dHhfcmluZ3M7CiAjZW5kaWYKIApAQCAtODEwLDcgKzgxMCw3IEBAIGlnYl9yZXN1bWUoZGV2 aWNlX3QgZGV2KQogCiAJaWYgKChpZnAtPmlmX2ZsYWdzICYgSUZGX1VQKSAmJgogCSAgICAoaWZw LT5pZl9kcnZfZmxhZ3MgJiBJRkZfRFJWX1JVTk5JTkcpKSB7Ci0jaWYgX19GcmVlQlNEX3ZlcnNp b24gPCA4MDAwMDAKKyNpZm5kZWYgSUdCX01VTFRJUVVFVUUKIAkJaWdiX3N0YXJ0KGlmcCk7CiAj ZWxzZQogCQlmb3IgKGludCBpID0gMDsgaSA8IGFkYXB0ZXItPm51bV9xdWV1ZXM7IGkrKywgdHhy KyspIHsKQEAgLTgyOCw3ICs4MjgsNyBAQCBpZ2JfcmVzdW1lKGRldmljZV90IGRldikKIH0KIAog Ci0jaWYgX19GcmVlQlNEX3ZlcnNpb24gPCA4MDAwMDAKKyNpZm5kZWYgSUdCX01VTFRJUVVFVUUK IC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioKICAqICBUcmFuc21pdCBlbnRyeSBwb2ludAogICoKQEAgLTkwNSw3ICs5 MDUsNyBAQCBpZ2Jfc3RhcnQoc3RydWN0IGlmbmV0ICppZnApCiAJcmV0dXJuOwogfQogCi0jZWxz ZSAvKiBfX0ZyZWVCU0RfdmVyc2lvbiA+PSA4MDAwMDAgKi8KKyNlbHNlIC8qIGRlZmluZWQoSUdC X01VTFRJUVVFVUUpICovCiAvKgogKiogTXVsdGlxdWV1ZSBUcmFuc21pdCBkcml2ZXIKICoqCkBA IC05MTgsOSArOTE4LDExIEBAIGlnYl9tcV9zdGFydChzdHJ1Y3QgaWZuZXQgKmlmcCwgc3RydWN0 IG1idWYgKm0pCiAJc3RydWN0IHR4X3JpbmcJCSp0eHI7CiAJaW50IAkJCWkgPSAwLCBlcnIgPSAw OwogCisjaWYgX19GcmVlQlNEX3ZlcnNpb24gPj0gODAwMDAwCiAJLyogV2hpY2ggcXVldWUgdG8g dXNlICovCiAJaWYgKChtLT5tX2ZsYWdzICYgTV9GTE9XSUQpICE9IDApCiAJCWkgPSBtLT5tX3Br dGhkci5mbG93aWQgJSBhZGFwdGVyLT5udW1fcXVldWVzOworI2VuZGlmCiAKIAl0eHIgPSAmYWRh cHRlci0+dHhfcmluZ3NbaV07CiAJcXVlID0gJmFkYXB0ZXItPnF1ZXVlc1tpXTsKQEAgLTEwMjQs NyArMTAyNiw3IEBAIGlnYl9xZmx1c2goc3RydWN0IGlmbmV0ICppZnApCiAJfQogCWlmX3FmbHVz aChpZnApOwogfQotI2VuZGlmIC8qIF9fRnJlZUJTRF92ZXJzaW9uIDwgODAwMDAwICovCisjZW5k aWYgLyogIWRlZmluZWQoSUdCX01VTFRJUVVFVUUpICovCiAKIC8qKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqICBJ b2N0bCBlbnRyeSBwb2ludApAQCAtMTM1OCw3ICsxMzYwLDcgQEAgaWdiX2hhbmRsZV9xdWUodm9p ZCAqY29udGV4dCwgaW50IHBlbmRpbmcpCiAJCUlHQl9UWF9MT0NLKHR4cik7CiAJCWlmIChpZ2Jf dHhlb2YodHhyKSkKIAkJCW1vcmUgPSBUUlVFOwotI2lmIF9fRnJlZUJTRF92ZXJzaW9uID49IDgw MDAwMAorI2lmZGVmIElHQl9NVUxUSVFVRVVFCiAJCWlmICghZHJicl9lbXB0eShpZnAsIHR4ci0+ YnIpKQogCQkJaWdiX21xX3N0YXJ0X2xvY2tlZChpZnAsIHR4ciwgTlVMTCk7CiAjZWxzZQpAQCAt MTQ4Miw3ICsxNDg0LDcgQEAgaWdiX3BvbGwoc3RydWN0IGlmbmV0ICppZnAsIGVudW0gcG9sbF9j bWQgY21kLCBpbnQgY291bnQpCiAJZG8gewogCQltb3JlID0gaWdiX3R4ZW9mKHR4cik7CiAJfSB3 aGlsZSAobG9vcC0tICYmIG1vcmUpOwotI2lmIF9fRnJlZUJTRF92ZXJzaW9uID49IDgwMDAwMAor I2lmZGVmIElHQl9NVUxUSVFVRVVFCiAJaWYgKCFkcmJyX2VtcHR5KGlmcCwgdHhyLT5icikpCiAJ CWlnYl9tcV9zdGFydF9sb2NrZWQoaWZwLCB0eHIsIE5VTEwpOwogI2Vsc2UKQEAgLTIyMzUsNyAr MjIzNyw3IEBAIGlnYl9hbGxvY2F0ZV9sZWdhY3koc3RydWN0IGFkYXB0ZXIgKmFkYXB0ZXIpCiB7 CiAJZGV2aWNlX3QJCWRldiA9IGFkYXB0ZXItPmRldjsKIAlzdHJ1Y3QgaWdiX3F1ZXVlCSpxdWUg PSBhZGFwdGVyLT5xdWV1ZXM7Ci0jaWYgX19GcmVlQlNEX3ZlcnNpb24gPj0gODAwMDAwCisjaWZk ZWYgSUdCX01VTFRJUVVFVUUKIAlzdHJ1Y3QgdHhfcmluZwkJKnR4ciA9IGFkYXB0ZXItPnR4X3Jp bmdzOwogI2VuZGlmCiAJaW50CQkJZXJyb3IsIHJpZCA9IDA7CkBAIC0yMjU2LDcgKzIyNTgsNyBA QCBpZ2JfYWxsb2NhdGVfbGVnYWN5KHN0cnVjdCBhZGFwdGVyICphZGFwdGVyKQogCQlyZXR1cm4g KEVOWElPKTsKIAl9CiAKLSNpZiBfX0ZyZWVCU0RfdmVyc2lvbiA+PSA4MDAwMDAKKyNpZmRlZiBJ R0JfTVVMVElRVUVVRQogCVRBU0tfSU5JVCgmdHhyLT50eHFfdGFzaywgMCwgaWdiX2RlZmVycmVk X21xX3N0YXJ0LCB0eHIpOwogI2VuZGlmCiAKQEAgLTIzMzAsNyArMjMzMiw3IEBAIGlnYl9hbGxv Y2F0ZV9tc2l4KHN0cnVjdCBhZGFwdGVyICphZGFwdGVyKQogCQkqLwogCQlpZiAoYWRhcHRlci0+ bnVtX3F1ZXVlcyA+IDEpCiAJCQlidXNfYmluZF9pbnRyKGRldiwgcXVlLT5yZXMsIGkpOwotI2lm IF9fRnJlZUJTRF92ZXJzaW9uID49IDgwMDAwMAorI2lmZGVmIElHQl9NVUxUSVFVRVVFCiAJCVRB U0tfSU5JVCgmcXVlLT50eHItPnR4cV90YXNrLCAwLCBpZ2JfZGVmZXJyZWRfbXFfc3RhcnQsCiAJ CSAgICBxdWUtPnR4cik7CiAjZW5kaWYKQEAgLTI4MzIsNyArMjgzNCw3IEBAIGlnYl9zZXR1cF9p bnRlcmZhY2UoZGV2aWNlX3QgZGV2LCBzdHJ1Y3QgYWRhcHRlciAqYWRhcHRlcikKIAlpZnAtPmlm X3NvZnRjID0gYWRhcHRlcjsKIAlpZnAtPmlmX2ZsYWdzID0gSUZGX0JST0FEQ0FTVCB8IElGRl9T SU1QTEVYIHwgSUZGX01VTFRJQ0FTVDsKIAlpZnAtPmlmX2lvY3RsID0gaWdiX2lvY3RsOwotI2lm IF9fRnJlZUJTRF92ZXJzaW9uID49IDgwMDAwMAorI2lmZGVmIElHQl9NVUxUSVFVRVVFCiAJaWZw LT5pZl90cmFuc21pdCA9IGlnYl9tcV9zdGFydDsKIAlpZnAtPmlmX3FmbHVzaCA9IGlnYl9xZmx1 c2g7CiAjZWxzZQpAQCAtMzA3Niw3ICszMDc4LDcgQEAgaWdiX2FsbG9jYXRlX3F1ZXVlcyhzdHJ1 Y3QgYWRhcHRlciAqYWRhcHRlcikKIAkJCWVycm9yID0gRU5PTUVNOwogCQkJZ290byBlcnJfdHhf ZGVzYzsKICAgICAgICAgCX0KLSNpZiBfX0ZyZWVCU0RfdmVyc2lvbiA+PSA4MDAwMDAKKyNpZmRl ZiBJR0JfTVVMVElRVUVVRQogCQkvKiBBbGxvY2F0ZSBhIGJ1ZiByaW5nICovCiAJCXR4ci0+YnIg PSBidWZfcmluZ19hbGxvYyhJR0JfQlJfU0laRSwgTV9ERVZCVUYsCiAJCSAgICBNX1dBSVRPSywg JnR4ci0+dHhfbXR4KTsKQEAgLTMxMzcsNyArMzEzOSw3IEBAIGVycl90eF9kZXNjOgogCQlpZ2Jf ZG1hX2ZyZWUoYWRhcHRlciwgJnR4ci0+dHhkbWEpOwogCWZyZWUoYWRhcHRlci0+cnhfcmluZ3Ms IE1fREVWQlVGKTsKIHJ4X2ZhaWw6Ci0jaWYgX19GcmVlQlNEX3ZlcnNpb24gPj0gODAwMDAwCisj aWZkZWYgSUdCX01VTFRJUVVFVUUKIAlidWZfcmluZ19mcmVlKHR4ci0+YnIsIE1fREVWQlVGKTsK ICNlbmRpZgogCWZyZWUoYWRhcHRlci0+dHhfcmluZ3MsIE1fREVWQlVGKTsKQEAgLTMzODEsNyAr MzM4Myw3IEBAIGlnYl9mcmVlX3RyYW5zbWl0X2J1ZmZlcnMoc3RydWN0IHR4X3JpbmcgKnR4cikK IAkJCXR4X2J1ZmZlci0+bWFwID0gTlVMTDsKIAkJfQogCX0KLSNpZiBfX0ZyZWVCU0RfdmVyc2lv biA+PSA4MDAwMDAKKyNpZmRlZiBJR0JfTVVMVElRVUVVRQogCWlmICh0eHItPmJyICE9IE5VTEwp CiAJCWJ1Zl9yaW5nX2ZyZWUodHhyLT5iciwgTV9ERVZCVUYpOwogI2VuZGlmCmRpZmYgLS1naXQg YS9zeXMvZGV2L2UxMDAwL2lmX2lnYi5oIGIvc3lzL2Rldi9lMTAwMC9pZl9pZ2IuaAppbmRleCA4 MGFiZjZlLi44NWRiY2VmIDEwMDY0NAotLS0gYS9zeXMvZGV2L2UxMDAwL2lmX2lnYi5oCisrKyBi L3N5cy9kZXYvZTEwMDAvaWZfaWdiLmgKQEAgLTI5Myw3ICsyOTMsNyBAQCBzdHJ1Y3QgdHhfcmlu ZyB7CiAJdTMyCQkJbmV4dF90b19jbGVhbjsKIAl2b2xhdGlsZSB1MTYJCXR4X2F2YWlsOwogCXN0 cnVjdCBpZ2JfdHhfYnVmZmVyCSp0eF9idWZmZXJzOwotI2lmIF9fRnJlZUJTRF92ZXJzaW9uID49 IDgwMDAwMAorI2lmZGVmIElHQl9NVUxUSVFVRVVFCiAJc3RydWN0IGJ1Zl9yaW5nCQkqYnI7CiAj ZW5kaWYKIAlidXNfZG1hX3RhZ190CQl0eHRhZzsKQEAgLTUyNyw3ICs1MjcsNyBAQCBpZ2Jfcnhf dW5yZWZyZXNoZWQoc3RydWN0IHJ4X3JpbmcgKnJ4cikKIAljdXIgfD0gbmV3OwkJCQlcCiB9CiAK LSNpZiBfX0ZyZWVCU0RfdmVyc2lvbiA+PSA4MDAwMDAgJiYgX19GcmVlQlNEX3ZlcnNpb24gPCA4 MDA1MDQKKyNpZiBkZWZpbmVkKElHQl9NVUxUSVFVRVVFKSAmJiBfX0ZyZWVCU0RfdmVyc2lvbiA8 IDgwMDUwNAogc3RhdGljIF9faW5saW5lIGludAogZHJicl9uZWVkc19lbnF1ZXVlKHN0cnVjdCBp Zm5ldCAqaWZwLCBzdHJ1Y3QgYnVmX3JpbmcgKmJyKQogewotLSAKMS43LjYuMTUzLmc3ODQzMgoK --bcaec520ed5777122404acd6ed09--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CACqU3MV7JRxQ_mNeHCk7RVyzETZLAcc3XL=xyZ-qqtPfRxkZeQ>