From mboxrd@z Thu Jan 1 00:00:00 1970 Received: with ECARTIS (v1.0.0; list linux-mips); Tue, 28 Jun 2005 09:17:48 +0100 (BST) Received: from merke.itea.ntnu.no ([IPv6:::ffff:129.241.7.61]:30445 "EHLO merke.itea.ntnu.no") by linux-mips.org with ESMTP id ; Tue, 28 Jun 2005 09:17:23 +0100 Received: from localhost (localhost [127.0.0.1]) by merke.itea.ntnu.no (Postfix) with ESMTP id E7C3B13C41C; Tue, 28 Jun 2005 10:16:47 +0200 (CEST) Received: from invalid.ed.ntnu.no (invalid.ed.ntnu.no [129.241.205.150]) by merke.itea.ntnu.no (Postfix) with ESMTP; Tue, 28 Jun 2005 10:16:47 +0200 (CEST) Received: from invalid.ed.ntnu.no (localhost.ed.ntnu.no [127.0.0.1]) by invalid.ed.ntnu.no (8.13.3/8.13.3) with ESMTP id j5S8GlZ4046515 (version=TLSv1/SSLv3 cipher=DHE-DSS-AES256-SHA bits=256 verify=NO); Tue, 28 Jun 2005 10:16:47 +0200 (CEST) (envelope-from jonah@omegav.ntnu.no) Received: from localhost (jonah@localhost) by invalid.ed.ntnu.no (8.13.3/8.13.3/Submit) with ESMTP id j5S8Gkru046512; Tue, 28 Jun 2005 10:16:47 +0200 (CEST) (envelope-from jonah@omegav.ntnu.no) X-Authentication-Warning: invalid.ed.ntnu.no: jonah owned process doing -bs Date: Tue, 28 Jun 2005 10:16:46 +0200 (CEST) From: Jon Anders Haugum X-X-Sender: jonah@invalid.ed.ntnu.no To: rolf liu Cc: linux-mips@linux-mips.org Subject: Re: can't find interrupt number under /proc/interrupts for the pci multi-port on db1550 In-Reply-To: <2db32b720506271706201a66fb@mail.gmail.com> Message-ID: <20050628100935.S46441@invalid.ed.ntnu.no> References: <2db32b720506271706201a66fb@mail.gmail.com> MIME-Version: 1.0 Content-Type: MULTIPART/MIXED; BOUNDARY="0-1392212856-1119946606=:46441" X-Content-Scanned: with sophos and spamassassin at mailgw.ntnu.no. Return-Path: X-Envelope-To: <"|/home/ecartis/ecartis -s linux-mips"> (uid 0) X-Orcpt: rfc822;linux-mips@linux-mips.org Original-Recipient: rfc822;linux-mips@linux-mips.org X-archive-position: 8220 X-ecartis-version: Ecartis v1.0.0 Sender: linux-mips-bounce@linux-mips.org Errors-to: linux-mips-bounce@linux-mips.org X-original-sender: jonah@omegav.ntnu.no Precedence: bulk X-list: linux-mips This message is in MIME format. The first part should be readable text, while the remaining parts are likely unreadable without MIME-aware tools. --0-1392212856-1119946606=:46441 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed On Mon, 27 Jun 2005, rolf liu wrote: > I am running 2.4.31 on db1550 with a pci multi-port board. the kernel > starts up ok. but after start-up, I can't find the corresponding > interrupt number for this board, which is irq 2. I can find the device > under /proc/devices and /proc/tty/driver, etc. So I am now sure if it > is working ok. Is there good (simple) method to test this serial port? My guess is that you can get it working if you disable the built-in serial ports in the kernel. I've attached a quick'n'dirty patch I made for 2.4.27 that makes it possible to use both internal and pci serial ports. It's a hack, but it works. -- Jon Anders Haugum --0-1392212856-1119946606=:46441 Content-Type: TEXT/PLAIN; charset=US-ASCII; name="serial-coex.patch" Content-Transfer-Encoding: BASE64 Content-ID: <20050628101646.V46441@invalid.ed.ntnu.no> Content-Description: Content-Disposition: attachment; filename="serial-coex.patch" SW5kZXg6IGluY2x1ZGUvYXNtLW1pcHMvYXUxMDAwLmgNDQo9PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09DQ0KUkNTIGZpbGU6IC9ob21lL2N2cy9saW51eC9pbmNs dWRlL2FzbS1taXBzL0F0dGljL2F1MTAwMC5oLHYNDQpyZXRyaWV2aW5nIHJl dmlzaW9uIDEuNS4yLjI5DQ0KZGlmZiAtdSAtcjEuNS4yLjI5IGF1MTAwMC5o DQ0KLS0tIGluY2x1ZGUvYXNtLW1pcHMvYXUxMDAwLmgJNyBKdWwgMjAwNCAx ODoxOTozNyAtMDAwMAkxLjUuMi4yOQ0NCisrKyBpbmNsdWRlL2FzbS1taXBz L2F1MTAwMC5oCTE3IE5vdiAyMDA0IDExOjAzOjEzIC0wMDAwDQ0KQEAgLTkw NCwxNSArOTA0LDE1IEBADQ0KICNkZWZpbmUgVUFSVF9CQVNFICAgICAgICAg ICAgICAgICBVQVJUMF9BRERSDQ0KICNkZWZpbmUgVUFSVF9ERUJVR19CQVNF ICAgICAgICAgICBVQVJUM19BRERSDQ0KIA0NCi0jZGVmaW5lIFVBUlRfUlgJ CTAJLyogUmVjZWl2ZSBidWZmZXIgKi8NDQotI2RlZmluZSBVQVJUX1RYCQk0 CS8qIFRyYW5zbWl0IGJ1ZmZlciAqLw0NCi0jZGVmaW5lIFVBUlRfSUVSCTgJ LyogSW50ZXJydXB0IEVuYWJsZSBSZWdpc3RlciAqLw0NCi0jZGVmaW5lIFVB UlRfSUlSCTB4QwkvKiBJbnRlcnJ1cHQgSUQgUmVnaXN0ZXIgKi8NDQotI2Rl ZmluZSBVQVJUX0ZDUgkweDEwCS8qIEZJRk8gQ29udHJvbCBSZWdpc3RlciAq Lw0NCi0jZGVmaW5lIFVBUlRfTENSCTB4MTQJLyogTGluZSBDb250cm9sIFJl Z2lzdGVyICovDQ0KLSNkZWZpbmUgVUFSVF9NQ1IJMHgxOAkvKiBNb2RlbSBD b250cm9sIFJlZ2lzdGVyICovDQ0KLSNkZWZpbmUgVUFSVF9MU1IJMHgxQwkv KiBMaW5lIFN0YXR1cyBSZWdpc3RlciAqLw0NCi0jZGVmaW5lIFVBUlRfTVNS CTB4MjAJLyogTW9kZW0gU3RhdHVzIFJlZ2lzdGVyICovDQ0KKyNkZWZpbmUg QVVfVUFSVF9SWAkJMAkvKiBSZWNlaXZlIGJ1ZmZlciAqLw0NCisjZGVmaW5l IEFVX1VBUlRfVFgJCTQJLyogVHJhbnNtaXQgYnVmZmVyICovDQ0KKyNkZWZp bmUgQVVfVUFSVF9JRVIJOAkvKiBJbnRlcnJ1cHQgRW5hYmxlIFJlZ2lzdGVy ICovDQ0KKyNkZWZpbmUgQVVfVUFSVF9JSVIJMHhDCS8qIEludGVycnVwdCBJ RCBSZWdpc3RlciAqLw0NCisjZGVmaW5lIEFVX1VBUlRfRkNSCTB4MTAJLyog RklGTyBDb250cm9sIFJlZ2lzdGVyICovDQ0KKyNkZWZpbmUgQVVfVUFSVF9M Q1IJMHgxNAkvKiBMaW5lIENvbnRyb2wgUmVnaXN0ZXIgKi8NDQorI2RlZmlu ZSBBVV9VQVJUX01DUgkweDE4CS8qIE1vZGVtIENvbnRyb2wgUmVnaXN0ZXIg Ki8NDQorI2RlZmluZSBBVV9VQVJUX0xTUgkweDFDCS8qIExpbmUgU3RhdHVz IFJlZ2lzdGVyICovDQ0KKyNkZWZpbmUgQVVfVUFSVF9NU1IJMHgyMAkvKiBN b2RlbSBTdGF0dXMgUmVnaXN0ZXIgKi8NDQogI2RlZmluZSBVQVJUX0NMSwkw eDI4CS8qIEJhdWQgUmF0ZSBDbG9jayBEaXZpZGVyICovDQ0KICNkZWZpbmUg VUFSVF9NT0RfQ05UUkwJMHgxMDAJLyogTW9kdWxlIENvbnRyb2wgKi8NDQog DQ0KQEAgLTkyMCw3ICs5MjAsNyBAQA0NCiAjZGVmaW5lIFVBUlRfRkNSX0NM RUFSX1JDVlIJMHgwMiAvKiBDbGVhciB0aGUgUkNWUiBGSUZPICovDQ0KICNk ZWZpbmUgVUFSVF9GQ1JfQ0xFQVJfWE1JVAkweDA0IC8qIENsZWFyIHRoZSBY TUlUIEZJRk8gKi8NDQogI2RlZmluZSBVQVJUX0ZDUl9ETUFfU0VMRUNUCTB4 MDggLyogRm9yIERNQSBhcHBsaWNhdGlvbnMgKi8NDQotI2RlZmluZSBVQVJU X0ZDUl9UUklHR0VSX01BU0sJMHhGMCAvKiBNYXNrIGZvciB0aGUgRklGTyB0 cmlnZ2VyIHJhbmdlICovDQ0KKyNkZWZpbmUgQVVfVUFSVF9GQ1JfVFJJR0dF Ul9NQVNLCTB4RjAgLyogTWFzayBmb3IgdGhlIEZJRk8gdHJpZ2dlciByYW5n ZSAqLw0NCiAjZGVmaW5lIFVBUlRfRkNSX1JfVFJJR0dFUl8xCTB4MDAgLyog TWFzayBmb3IgcmVjZWl2ZSB0cmlnZ2VyIHNldCBhdCAxICovDQ0KICNkZWZp bmUgVUFSVF9GQ1JfUl9UUklHR0VSXzQJMHg0MCAvKiBNYXNrIGZvciByZWNl aXZlIHRyaWdnZXIgc2V0IGF0IDQgKi8NDQogI2RlZmluZSBVQVJUX0ZDUl9S X1RSSUdHRVJfOAkweDgwIC8qIE1hc2sgZm9yIHJlY2VpdmUgdHJpZ2dlciBz ZXQgYXQgOCAqLw0NCkluZGV4OiBpbmNsdWRlL2FzbS1taXBzL3NlcmlhbC5o DQ0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQ0NClJDUyBmaWxlOiAvaG9tZS9j dnMvbGludXgvaW5jbHVkZS9hc20tbWlwcy9zZXJpYWwuaCx2DQ0KcmV0cmll dmluZyByZXZpc2lvbiAxLjIzLjIuMjENDQpkaWZmIC11IC1yMS4yMy4yLjIx IHNlcmlhbC5oDQ0KLS0tIGluY2x1ZGUvYXNtLW1pcHMvc2VyaWFsLmgJMTkg QXVnIDIwMDQgMjI6MzM6MzMgLTAwMDAJMS4yMy4yLjIxDQ0KKysrIGluY2x1 ZGUvYXNtLW1pcHMvc2VyaWFsLmgJMTcgTm92IDIwMDQgMTE6MDM6MTQgLTAw MDANDQpAQCAtMTkxLDYgKzE5MSw3IEBADQ0KICNlbmRpZg0NCiANDQogI2lm ZGVmIENPTkZJR19TT0NfQVUxNTUwDQ0KKyNkZWZpbmUgU0VSSUFMX0RFVl9P RkZTRVQgMw0NCiAjZGVmaW5lIEFVMTAwMF9TRVJJQUxfUE9SVF9ERUZOUyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNDQogICAgIHsgLmJhdWRf YmFzZSA9IDAsIC5wb3J0ID0gVUFSVDBfQUREUiwgLmlycSA9IEFVMTU1MF9V QVJUMF9JTlQsICBcDQ0KICAgICAgIC5mbGFncyA9IFNURF9DT01fRkxBR1Ms IC50eXBlID0gMSB9LCAgICAgICAgICAgICAgICAgICAgICAgIFwNDQpAQCAt NDY5LDcgKzQ3MCw2IEBADQ0KIA0NCiAjZGVmaW5lIFNFUklBTF9QT1JUX0RG TlMJCQlcDQ0KIAlBVExBU19TRVJJQUxfUE9SVF9ERUZOUwkJCVwNDQotCUFV MTAwMF9TRVJJQUxfUE9SVF9ERUZOUwkJXA0NCiAJQ09CQUxUX1NFUklBTF9Q T1JUX0RFRk5TCQlcDQ0KIAlEREI1NDc3X1NFUklBTF9QT1JUX0RFRk5TCQlc DQ0KIAlFVjk2MTAwX1NFUklBTF9QT1JUX0RFRk5TCQlcDQ0KSW5kZXg6IGRy aXZlcnMvY2hhci9hdTF4MDAtc2VyaWFsLmMNDQo9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09DQ0KUkNTIGZpbGU6IC9ob21lL2N2cy9saW51eC9kcml2ZXJzL2No YXIvQXR0aWMvYXUxeDAwLXNlcmlhbC5jLHYNDQpyZXRyaWV2aW5nIHJldmlz aW9uIDEuMS4yLjINDQpkaWZmIC11IC1yMS4xLjIuMiBhdTF4MDAtc2VyaWFs LmMNDQotLS0gZHJpdmVycy9jaGFyL2F1MXgwMC1zZXJpYWwuYwkyNCBKdW4g MjAwMyAyMjoxOTo1OCAtMDAwMAkxLjEuMi4yDQ0KKysrIGRyaXZlcnMvY2hh ci9hdTF4MDAtc2VyaWFsLmMJMTcgTm92IDIwMDQgMTE6MDM6MTQgLTAwMDAN DQpAQCAtMTEwLDE5ICsxMTAsMTMgQEANDQogI2luY2x1ZGUgPGFzbS9pcnEu aD4NDQogI2luY2x1ZGUgPGFzbS9iaXRvcHMuaD4NDQogDQ0KLSNpZmRlZiBD T05GSUdfTUFDX1NFUklBTA0NCi0jZGVmaW5lIFNFUklBTF9ERVZfT0ZGU0VU CTINDQotI2Vsc2UNDQotI2RlZmluZSBTRVJJQUxfREVWX09GRlNFVAkwDQ0K LSNlbmRpZg0NCi0NDQogI2lmZGVmIFNFUklBTF9JTkxJTkUNDQogI2RlZmlu ZSBfSU5MSU5FXyBpbmxpbmUNDQogI2Vsc2UNDQogI2RlZmluZSBfSU5MSU5F Xw0NCiAjZW5kaWYNDQogDQ0KLXN0YXRpYyBjaGFyICpzZXJpYWxfbmFtZSA9 ICJTZXJpYWwgZHJpdmVyIjsNDQorc3RhdGljIGNoYXIgKnNlcmlhbF9uYW1l ID0gIkF1MXh4eCBzZXJpYWwgZHJpdmVyIjsNDQogDQ0KIHN0YXRpYyBERUNM QVJFX1RBU0tfUVVFVUUodHFfc2VyaWFsKTsNDQogDQ0KQEAgLTE3NCw4ICsx NjgsOCBAQA0NCiB9Ow0NCiANDQogDQ0KLXN0YXRpYyBzdHJ1Y3Qgc2VyaWFs X3N0YXRlIHJzX3RhYmxlW1JTX1RBQkxFX1NJWkVdID0gew0NCi0JU0VSSUFM X1BPUlRfREZOUwkvKiBEZWZpbmVkIGluIHNlcmlhbC5oICovDQ0KK3N0YXRp YyBzdHJ1Y3Qgc2VyaWFsX3N0YXRlIHJzX3RhYmxlW10gPSB7DQ0KKwlBVTEw MDBfU0VSSUFMX1BPUlRfREVGTlMJLyogRGVmaW5lZCBpbiBzZXJpYWwuaCAq Lw0NCiB9Ow0NCiANDQogI2RlZmluZSBOUl9QT1JUUwkoc2l6ZW9mKHJzX3Rh YmxlKS9zaXplb2Yoc3RydWN0IHNlcmlhbF9zdGF0ZSkpDQ0KQEAgLTI3OSw3 ICsyNzMsNyBAQA0NCiAJc3Bpbl9sb2NrX2lycXNhdmUoJnNlcmlhbF9sb2Nr LCBmbGFncyk7DQ0KIAlpZiAoaW5mby0+SUVSICYgVUFSVF9JRVJfVEhSSSkg ew0NCiAJCWluZm8tPklFUiAmPSB+VUFSVF9JRVJfVEhSSTsNDQotCQlzZXJp YWxfb3V0KGluZm8sIFVBUlRfSUVSLCBpbmZvLT5JRVIpOw0NCisJCXNlcmlh bF9vdXQoaW5mbywgQVVfVUFSVF9JRVIsIGluZm8tPklFUik7DQ0KIAl9DQ0K IAlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZzZXJpYWxfbG9jaywgZmxhZ3Mp Ow0NCiB9DQ0KQEAgLTI5Nyw3ICsyOTEsNyBAQA0NCiAJICAgICYmIGluZm8t PnhtaXQuYnVmDQ0KIAkgICAgJiYgIShpbmZvLT5JRVIgJiBVQVJUX0lFUl9U SFJJKSkgew0NCiAJCWluZm8tPklFUiB8PSBVQVJUX0lFUl9USFJJOw0NCi0J CXNlcmlhbF9vdXQoaW5mbywgVUFSVF9JRVIsIGluZm8tPklFUik7DQ0KKwkJ c2VyaWFsX291dChpbmZvLCBBVV9VQVJUX0lFUiwgaW5mby0+SUVSKTsNDQog CX0NDQogCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnNlcmlhbF9sb2NrLCBm bGFncyk7DQ0KIH0NDQpAQCAtMzQ1LDcgKzMzOSw3IEBADQ0KIA0NCiAJaWNv dW50ID0gJmluZm8tPnN0YXRlLT5pY291bnQ7DQ0KIAlkbyB7DQ0KLQkJY2gg PSBzZXJpYWxfaW5wKGluZm8sIFVBUlRfUlgpOw0NCisJCWNoID0gc2VyaWFs X2lucChpbmZvLCBBVV9VQVJUX1JYKTsNDQogCQlpZiAodHR5LT5mbGlwLmNv dW50ID49IFRUWV9GTElQQlVGX1NJWkUpDQ0KIAkJCWdvdG8gaWdub3JlX2No YXI7DQ0KIAkJKnR0eS0+ZmxpcC5jaGFyX2J1Zl9wdHIgPSBjaDsNDQpAQCAt NDQ0LDcgKzQzOCw3IEBADQ0KIAkJdHR5LT5mbGlwLmNoYXJfYnVmX3B0cisr Ow0NCiAJCXR0eS0+ZmxpcC5jb3VudCsrOw0NCiAJaWdub3JlX2NoYXI6DQ0K LQkJKnN0YXR1cyA9IHNlcmlhbF9pbnAoaW5mbywgVUFSVF9MU1IpOw0NCisJ CSpzdGF0dXMgPSBzZXJpYWxfaW5wKGluZm8sIEFVX1VBUlRfTFNSKTsNDQog CX0gd2hpbGUgKCpzdGF0dXMgJiBVQVJUX0xTUl9EUik7DQ0KIAl0dHlfZmxp cF9idWZmZXJfcHVzaCh0dHkpOw0NCiB9DQ0KQEAgLTQ1NCw3ICs0NDgsNyBA QA0NCiAJaW50IGNvdW50Ow0NCiANDQogCWlmIChpbmZvLT54X2NoYXIpIHsN DQotCQlzZXJpYWxfb3V0cChpbmZvLCBVQVJUX1RYLCBpbmZvLT54X2NoYXIp Ow0NCisJCXNlcmlhbF9vdXRwKGluZm8sIEFVX1VBUlRfVFgsIGluZm8tPnhf Y2hhcik7DQ0KIAkJaW5mby0+c3RhdGUtPmljb3VudC50eCsrOw0NCiAJCWlu Zm8tPnhfY2hhciA9IDA7DQ0KIAkJaWYgKGludHJfZG9uZSkNDQpAQCAtNDY1 LDEzICs0NTksMTMgQEANDQogCSAgICB8fCBpbmZvLT50dHktPnN0b3BwZWQN DQogCSAgICB8fCBpbmZvLT50dHktPmh3X3N0b3BwZWQpIHsNDQogCQlpbmZv LT5JRVIgJj0gflVBUlRfSUVSX1RIUkk7DQ0KLQkJc2VyaWFsX291dChpbmZv LCBVQVJUX0lFUiwgaW5mby0+SUVSKTsNDQorCQlzZXJpYWxfb3V0KGluZm8s IEFVX1VBUlRfSUVSLCBpbmZvLT5JRVIpOw0NCiAJCXJldHVybjsNDQogCX0N DQogDQ0KIAljb3VudCA9IGluZm8tPnhtaXRfZmlmb19zaXplOw0NCiAJZG8g ew0NCi0JCXNlcmlhbF9vdXQoaW5mbywgVUFSVF9UWCwgaW5mby0+eG1pdC5i dWZbaW5mby0+eG1pdC50YWlsXSk7DQ0KKwkJc2VyaWFsX291dChpbmZvLCBB VV9VQVJUX1RYLCBpbmZvLT54bWl0LmJ1ZltpbmZvLT54bWl0LnRhaWxdKTsN DQogCQlpbmZvLT54bWl0LnRhaWwgPSAoaW5mby0+eG1pdC50YWlsICsgMSkg JiAoU0VSSUFMX1hNSVRfU0laRS0xKTsNDQogCQlpbmZvLT5zdGF0ZS0+aWNv dW50LnR4Kys7DQ0KIAkJaWYgKGluZm8tPnhtaXQuaGVhZCA9PSBpbmZvLT54 bWl0LnRhaWwpDQ0KQEAgLTQ5MSw3ICs0ODUsNyBAQA0NCiANDQogCWlmIChp bmZvLT54bWl0LmhlYWQgPT0gaW5mby0+eG1pdC50YWlsKSB7DQ0KIAkJaW5m by0+SUVSICY9IH5VQVJUX0lFUl9USFJJOw0NCi0JCXNlcmlhbF9vdXQoaW5m bywgVUFSVF9JRVIsIGluZm8tPklFUik7DQ0KKwkJc2VyaWFsX291dChpbmZv LCBBVV9VQVJUX0lFUiwgaW5mby0+SUVSKTsNDQogCX0NDQogfQ0NCiANDQpA QCAtNTAwLDcgKzQ5NCw3IEBADQ0KIAlpbnQJc3RhdHVzOw0NCiAJc3RydWN0 CWFzeW5jX2ljb3VudCAqaWNvdW50Ow0NCiANDQotCXN0YXR1cyA9IHNlcmlh bF9pbihpbmZvLCBVQVJUX01TUik7DQ0KKwlzdGF0dXMgPSBzZXJpYWxfaW4o aW5mbywgQVVfVUFSVF9NU1IpOw0NCiANDQogCWlmIChzdGF0dXMgJiBVQVJU X01TUl9BTllfREVMVEEpIHsNDQogCQlpY291bnQgPSAmaW5mby0+c3RhdGUt Pmljb3VudDsNDQpAQCAtNTQ2LDcgKzU0MCw3IEBADQ0KICNlbmRpZg0NCiAJ CQkJaW5mby0+dHR5LT5od19zdG9wcGVkID0gMDsNDQogCQkJCWluZm8tPklF UiB8PSBVQVJUX0lFUl9USFJJOw0NCi0JCQkJc2VyaWFsX291dChpbmZvLCBV QVJUX0lFUiwgaW5mby0+SUVSKTsNDQorCQkJCXNlcmlhbF9vdXQoaW5mbywg QVVfVUFSVF9JRVIsIGluZm8tPklFUik7DQ0KIAkJCQlyc19zY2hlZF9ldmVu dChpbmZvLCBSU19FVkVOVF9XUklURV9XQUtFVVApOw0NCiAJCQkJcmV0dXJu Ow0NCiAJCQl9DQ0KQEAgLTU1Nyw3ICs1NTEsNyBAQA0NCiAjZW5kaWYNDQog CQkJCWluZm8tPnR0eS0+aHdfc3RvcHBlZCA9IDE7DQ0KIAkJCQlpbmZvLT5J RVIgJj0gflVBUlRfSUVSX1RIUkk7DQ0KLQkJCQlzZXJpYWxfb3V0KGluZm8s IFVBUlRfSUVSLCBpbmZvLT5JRVIpOw0NCisJCQkJc2VyaWFsX291dChpbmZv LCBBVV9VQVJUX0lFUiwgaW5mby0+SUVSKTsNDQogCQkJfQ0NCiAJCX0NDQog CX0NDQpAQCAtNTgzLDcgKzU3Nyw3IEBADQ0KIAkJcmV0dXJuOw0NCiANDQog CWRvIHsNDQotCQlzdGF0dXMgPSBzZXJpYWxfaW5wKGluZm8sIFVBUlRfTFNS KTsNDQorCQlzdGF0dXMgPSBzZXJpYWxfaW5wKGluZm8sIEFVX1VBUlRfTFNS KTsNDQogI2lmZGVmIFNFUklBTF9ERUJVR19JTlRSDQ0KIAkJcHJpbnRrKCJz dGF0dXMgPSAleC4uLiIsIHN0YXR1cyk7DQ0KICNlbmRpZg0NCkBAIC01OTgs NyArNTkyLDcgQEANDQogI2VuZGlmDQ0KIAkJCWJyZWFrOw0NCiAJCX0NDQot CX0gd2hpbGUgKCEoc2VyaWFsX2luKGluZm8sIFVBUlRfSUlSKSAmIFVBUlRf SUlSX05PX0lOVCkpOw0NCisJfSB3aGlsZSAoIShzZXJpYWxfaW4oaW5mbywg QVVfVUFSVF9JSVIpICYgVUFSVF9JSVJfTk9fSU5UKSk7DQ0KIAlpbmZvLT5s YXN0X2FjdGl2ZSA9IGppZmZpZXM7DQ0KICNpZmRlZiBTRVJJQUxfREVCVUdf SU5UUg0NCiAJcHJpbnRrKCJlbmQuXG4iKTsNDQpAQCAtNzY0LDIwICs3NTgs MjAgQEANDQogCSAqICh0aGV5IHdpbGwgYmUgcmVlbmFibGVkIGluIGNoYW5n ZV9zcGVlZCgpKQ0NCiAJICovDQ0KIAlpZiAodWFydF9jb25maWdbc3RhdGUt PnR5cGVdLmZsYWdzICYgVUFSVF9DTEVBUl9GSUZPKSB7DQ0KLQkJc2VyaWFs X291dHAoaW5mbywgVUFSVF9GQ1IsIFVBUlRfRkNSX0VOQUJMRV9GSUZPKTsN DQotCQlzZXJpYWxfb3V0cChpbmZvLCBVQVJUX0ZDUiwgKFVBUlRfRkNSX0VO QUJMRV9GSUZPIHwNDQorCQlzZXJpYWxfb3V0cChpbmZvLCBBVV9VQVJUX0ZD UiwgVUFSVF9GQ1JfRU5BQkxFX0ZJRk8pOw0NCisJCXNlcmlhbF9vdXRwKGlu Zm8sIEFVX1VBUlRfRkNSLCAoVUFSVF9GQ1JfRU5BQkxFX0ZJRk8gfA0NCiAJ CQkJCSAgICAgVUFSVF9GQ1JfQ0xFQVJfUkNWUiB8DQ0KIAkJCQkJICAgICBV QVJUX0ZDUl9DTEVBUl9YTUlUKSk7DQ0KLQkJc2VyaWFsX291dHAoaW5mbywg VUFSVF9GQ1IsIDApOw0NCisJCXNlcmlhbF9vdXRwKGluZm8sIEFVX1VBUlRf RkNSLCAwKTsNDQogCX0NDQogDQ0KIAkvKg0NCiAJICogQ2xlYXIgdGhlIGlu dGVycnVwdCByZWdpc3RlcnMuDQ0KIAkgKi8NDQotCSh2b2lkKSBzZXJpYWxf aW5wKGluZm8sIFVBUlRfTFNSKTsNDQotCSh2b2lkKSBzZXJpYWxfaW5wKGlu Zm8sIFVBUlRfUlgpOw0NCi0JKHZvaWQpIHNlcmlhbF9pbnAoaW5mbywgVUFS VF9JSVIpOw0NCi0JKHZvaWQpIHNlcmlhbF9pbnAoaW5mbywgVUFSVF9NU1Ip Ow0NCisJKHZvaWQpIHNlcmlhbF9pbnAoaW5mbywgQVVfVUFSVF9MU1IpOw0N CisJKHZvaWQpIHNlcmlhbF9pbnAoaW5mbywgQVVfVUFSVF9SWCk7DQ0KKwko dm9pZCkgc2VyaWFsX2lucChpbmZvLCBBVV9VQVJUX0lJUik7DQ0KKwkodm9p ZCkgc2VyaWFsX2lucChpbmZvLCBBVV9VQVJUX01TUik7DQ0KIA0NCiAJLyoN DQogCSAqIEF0IHRoaXMgcG9pbnQgdGhlcmUncyBubyB3YXkgdGhlIExTUiBj b3VsZCBzdGlsbCBiZSAweEZGOw0NCkBAIC03ODUsNyArNzc5LDcgQEANDQog CSAqIGhlcmUuDQ0KIAkgKi8NDQogCWlmICghKGluZm8tPmZsYWdzICYgQVNZ TkNfQlVHR1lfVUFSVCkgJiYNDQotCSAgICAoc2VyaWFsX2lucChpbmZvLCBV QVJUX0xTUikgPT0gMHhmZikpIHsNDQorCSAgICAoc2VyaWFsX2lucChpbmZv LCBBVV9VQVJUX0xTUikgPT0gMHhmZikpIHsNDQogCQlwcmludGsoIkxTUiBz YWZldHkgY2hlY2sgZW5nYWdlZCFcbiIpOw0NCiAJCWlmIChjYXBhYmxlKENB UF9TWVNfQURNSU4pKSB7DQ0KIAkJCWlmIChpbmZvLT50dHkpDQ0KQEAgLTgx MCw3ICs4MDQsNyBAQA0NCiAJCQloYW5kbGVyID0gcnNfaW50ZXJydXB0X3Np bmdsZTsNDQogDQ0KIAkJcmV0dmFsID0gcmVxdWVzdF9pcnEoc3RhdGUtPmly cSwgaGFuZGxlciwgU0FfU0hJUlEsDQ0KLQkJCQkgICAgICJzZXJpYWwiLCAm SVJRX3BvcnRzW3N0YXRlLT5pcnFdKTsNDQorCQkJCSAgICAgIkF1MXh4eCBz ZXJpYWwiLCAmSVJRX3BvcnRzW3N0YXRlLT5pcnFdKTsNDQogCQlpZiAocmV0 dmFsKSB7DQ0KIAkJCWlmIChjYXBhYmxlKENBUF9TWVNfQURNSU4pKSB7DQ0K IAkJCQlpZiAoaW5mby0+dHR5KQ0NCkBAIC04MzUsNyArODI5LDcgQEANDQog CS8qDQ0KIAkgKiBOb3csIGluaXRpYWxpemUgdGhlIFVBUlQNDQogCSAqLw0N Ci0Jc2VyaWFsX291dHAoaW5mbywgVUFSVF9MQ1IsIFVBUlRfTENSX1dMRU44 KTsNDQorCXNlcmlhbF9vdXRwKGluZm8sIEFVX1VBUlRfTENSLCBVQVJUX0xD Ul9XTEVOOCk7DQ0KIA0NCiAJaW5mby0+TUNSID0gMDsNDQogCWlmIChpbmZv LT50dHktPnRlcm1pb3MtPmNfY2ZsYWcgJiBDQkFVRCkNDQpAQCAtODQ1LDIy ICs4MzksMjIgQEANDQogCQkJaW5mby0+TUNSIHw9IFVBUlRfTUNSX09VVDI7 DQ0KIAl9DQ0KIAlpbmZvLT5NQ1IgfD0gQUxQSEFfS0xVREdFX01DUjsgCQkv KiBEb24ndCBhc2sgKi8NDQotCXNlcmlhbF9vdXRwKGluZm8sIFVBUlRfTUNS LCBpbmZvLT5NQ1IpOw0NCisJc2VyaWFsX291dHAoaW5mbywgQVVfVUFSVF9N Q1IsIGluZm8tPk1DUik7DQ0KIA0NCiAJLyoNDQogCSAqIEZpbmFsbHksIGVu YWJsZSBpbnRlcnJ1cHRzDQ0KIAkgKi8NDQogCWluZm8tPklFUiA9IFVBUlRf SUVSX01TSSB8IFVBUlRfSUVSX1JMU0kgfCBVQVJUX0lFUl9SREk7DQ0KLQlz ZXJpYWxfb3V0cChpbmZvLCBVQVJUX0lFUiwgaW5mby0+SUVSKTsJLyogZW5h YmxlIGludGVycnVwdHMgKi8NDQorCXNlcmlhbF9vdXRwKGluZm8sIEFVX1VB UlRfSUVSLCBpbmZvLT5JRVIpOwkvKiBlbmFibGUgaW50ZXJydXB0cyAqLw0N CiANDQogDQ0KIAkvKg0NCiAJICogQW5kIGNsZWFyIHRoZSBpbnRlcnJ1cHQg cmVnaXN0ZXJzIGFnYWluIGZvciBsdWNrLg0NCiAJICovDQ0KLQkodm9pZClz ZXJpYWxfaW5wKGluZm8sIFVBUlRfTFNSKTsNDQotCSh2b2lkKXNlcmlhbF9p bnAoaW5mbywgVUFSVF9SWCk7DQ0KLQkodm9pZClzZXJpYWxfaW5wKGluZm8s IFVBUlRfSUlSKTsNDQotCSh2b2lkKXNlcmlhbF9pbnAoaW5mbywgVUFSVF9N U1IpOw0NCisJKHZvaWQpc2VyaWFsX2lucChpbmZvLCBBVV9VQVJUX0xTUik7 DQ0KKwkodm9pZClzZXJpYWxfaW5wKGluZm8sIEFVX1VBUlRfUlgpOw0NCisJ KHZvaWQpc2VyaWFsX2lucChpbmZvLCBBVV9VQVJUX0lJUik7DQ0KKwkodm9p ZClzZXJpYWxfaW5wKGluZm8sIEFVX1VBUlRfTVNSKTsNDQogDQ0KIAlpZiAo aW5mby0+dHR5KQ0NCiAJCWNsZWFyX2JpdChUVFlfSU9fRVJST1IsICZpbmZv LT50dHktPmZsYWdzKTsNDQpAQCAtOTQ3LDcgKzk0MSw3IEBADQ0KIAkJaWYg KElSUV9wb3J0c1tzdGF0ZS0+aXJxXSkgew0NCiAJCQlmcmVlX2lycShzdGF0 ZS0+aXJxLCAmSVJRX3BvcnRzW3N0YXRlLT5pcnFdKTsNDQogCQkJcmV0dmFs ID0gcmVxdWVzdF9pcnEoc3RhdGUtPmlycSwgcnNfaW50ZXJydXB0X3Npbmds ZSwNDQotCQkJCQkgICAgIFNBX1NISVJRLCAic2VyaWFsIiwNDQorCQkJCQkg ICAgIFNBX1NISVJRLCAiQXUxeHh4IHNlcmlhbCIsDQ0KIAkJCQkJICAgICAm SVJRX3BvcnRzW3N0YXRlLT5pcnFdKTsNDQogDQ0KIAkJCWlmIChyZXR2YWwp DQ0KQEAgLTk2NCwyNCArOTU4LDI0IEBADQ0KIAl9DQ0KIA0NCiAJaW5mby0+ SUVSID0gMDsNDQotCXNlcmlhbF9vdXRwKGluZm8sIFVBUlRfSUVSLCAweDAw KTsJLyogZGlzYWJsZSBhbGwgaW50cnMgKi8NDQorCXNlcmlhbF9vdXRwKGlu Zm8sIEFVX1VBUlRfSUVSLCAweDAwKTsJLyogZGlzYWJsZSBhbGwgaW50cnMg Ki8NDQogCQlpbmZvLT5NQ1IgJj0gflVBUlRfTUNSX09VVDI7DQ0KIAlpbmZv LT5NQ1IgfD0gQUxQSEFfS0xVREdFX01DUjsgCQkvKiBEb24ndCBhc2sgKi8N DQogDQ0KIAkvKiBkaXNhYmxlIGJyZWFrIGNvbmRpdGlvbiAqLw0NCi0Jc2Vy aWFsX291dChpbmZvLCBVQVJUX0xDUiwgc2VyaWFsX2lucChpbmZvLCBVQVJU X0xDUikgJiB+VUFSVF9MQ1JfU0JDKTsNDQorCXNlcmlhbF9vdXQoaW5mbywg QVVfVUFSVF9MQ1IsIHNlcmlhbF9pbnAoaW5mbywgQVVfVUFSVF9MQ1IpICYg flVBUlRfTENSX1NCQyk7DQ0KIA0NCiAJaWYgKCFpbmZvLT50dHkgfHwgKGlu Zm8tPnR0eS0+dGVybWlvcy0+Y19jZmxhZyAmIEhVUENMKSkNDQogCQlpbmZv LT5NQ1IgJj0gfihVQVJUX01DUl9EVFJ8VUFSVF9NQ1JfUlRTKTsNDQotCXNl cmlhbF9vdXRwKGluZm8sIFVBUlRfTUNSLCBpbmZvLT5NQ1IpOw0NCisJc2Vy aWFsX291dHAoaW5mbywgQVVfVUFSVF9NQ1IsIGluZm8tPk1DUik7DQ0KIA0N CiAJLyogZGlzYWJsZSBGSUZPJ3MgKi8NDQotCXNlcmlhbF9vdXRwKGluZm8s IFVBUlRfRkNSLCAoVUFSVF9GQ1JfRU5BQkxFX0ZJRk8gfA0NCisJc2VyaWFs X291dHAoaW5mbywgQVVfVUFSVF9GQ1IsIChVQVJUX0ZDUl9FTkFCTEVfRklG TyB8DQ0KIAkJCQkgICAgIFVBUlRfRkNSX0NMRUFSX1JDVlIgfA0NCiAJCQkJ ICAgICBVQVJUX0ZDUl9DTEVBUl9YTUlUKSk7DQ0KLQlzZXJpYWxfb3V0cChp bmZvLCBVQVJUX0ZDUiwgMCk7DQ0KKwlzZXJpYWxfb3V0cChpbmZvLCBBVV9V QVJUX0ZDUiwgMCk7DQ0KIA0NCi0JKHZvaWQpc2VyaWFsX2luKGluZm8sIFVB UlRfUlgpOyAgICAvKiByZWFkIGRhdGEgcG9ydCB0byByZXNldCB0aGluZ3Mg Ki8NDQorCSh2b2lkKXNlcmlhbF9pbihpbmZvLCBBVV9VQVJUX1JYKTsgICAg LyogcmVhZCBkYXRhIHBvcnQgdG8gcmVzZXQgdGhpbmdzICovDQ0KIA0NCiAJ aWYgKGluZm8tPnR0eSkNDQogCQlzZXRfYml0KFRUWV9JT19FUlJPUiwgJmlu Zm8tPnR0eS0+ZmxhZ3MpOw0NCkBAIC0xMTA0LDcgKzEwOTgsNyBAQA0NCiAJ CWluZm8tPmZsYWdzIHw9IEFTWU5DX0NIRUNLX0NEOw0NCiAJCWluZm8tPklF UiB8PSBVQVJUX0lFUl9NU0k7DQ0KIAl9DQ0KLQlzZXJpYWxfb3V0KGluZm8s IFVBUlRfSUVSLCBpbmZvLT5JRVIpOw0NCisJc2VyaWFsX291dChpbmZvLCBB VV9VQVJUX0lFUiwgaW5mby0+SUVSKTsNDQogDQ0KIAkvKg0NCiAJICogU2V0 IHVwIHBhcml0eSBjaGVjayBmbGFnDQ0KQEAgLTExNDAsNyArMTEzNCw3IEBA DQ0KIAlzcGluX2xvY2tfaXJxc2F2ZSgmc2VyaWFsX2xvY2ssIGZsYWdzKTsN DQogDQ0KIAlzZXJpYWxfb3V0cChpbmZvLCBVQVJUX0NMSywgcXVvdCAmIDB4 ZmZmZik7DQ0KLQlzZXJpYWxfb3V0cChpbmZvLCBVQVJUX0xDUiwgY3ZhbCk7 DQ0KKwlzZXJpYWxfb3V0cChpbmZvLCBBVV9VQVJUX0xDUiwgY3ZhbCk7DQ0K IAlpbmZvLT5MQ1IgPSBjdmFsOwkJCQkvKiBTYXZlIExDUiAqLw0NCiAJc3Bp bl91bmxvY2tfaXJxcmVzdG9yZSgmc2VyaWFsX2xvY2ssIGZsYWdzKTsNDQog fQ0NCkBAIC0xMTg1LDcgKzExNzksNyBAQA0NCiANDQogCXNwaW5fbG9ja19p cnFzYXZlKCZzZXJpYWxfbG9jaywgZmxhZ3MpOw0NCiAJaW5mby0+SUVSIHw9 IFVBUlRfSUVSX1RIUkk7DQ0KLQlzZXJpYWxfb3V0KGluZm8sIFVBUlRfSUVS LCBpbmZvLT5JRVIpOw0NCisJc2VyaWFsX291dChpbmZvLCBBVV9VQVJUX0lF UiwgaW5mby0+SUVSKTsNDQogCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnNl cmlhbF9sb2NrLCBmbGFncyk7DQ0KIH0NDQogDQ0KQEAgLTEyNjEsNyArMTI1 NSw3IEBADQ0KIAkgICAgJiYgIXR0eS0+aHdfc3RvcHBlZA0NCiAJICAgICYm ICEoaW5mby0+SUVSICYgVUFSVF9JRVJfVEhSSSkpIHsNDQogCQlpbmZvLT5J RVIgfD0gVUFSVF9JRVJfVEhSSTsNDQotCQlzZXJpYWxfb3V0KGluZm8sIFVB UlRfSUVSLCBpbmZvLT5JRVIpOw0NCisJCXNlcmlhbF9vdXQoaW5mbywgQVVf VUFSVF9JRVIsIGluZm8tPklFUik7DQ0KIAl9DQ0KIAlyZXR1cm4gcmV0Ow0N CiB9DQ0KQEAgLTEzMTgsNyArMTMxMiw3IEBADQ0KIAlpZiAoY2gpIHsNDQog CQkvKiBNYWtlIHN1cmUgdHJhbnNtaXQgaW50ZXJydXB0cyBhcmUgb24gKi8N DQogCQlpbmZvLT5JRVIgfD0gVUFSVF9JRVJfVEhSSTsNDQotCQlzZXJpYWxf b3V0KGluZm8sIFVBUlRfSUVSLCBpbmZvLT5JRVIpOw0NCisJCXNlcmlhbF9v dXQoaW5mbywgQVVfVUFSVF9JRVIsIGluZm8tPklFUik7DQ0KIAl9DQ0KIH0N DQogDQ0KQEAgLTEzNTEsNyArMTM0NSw3IEBADQ0KIAkJaW5mby0+TUNSICY9 IH5VQVJUX01DUl9SVFM7DQ0KIA0NCiAJc3Bpbl9sb2NrX2lycXNhdmUoJnNl cmlhbF9sb2NrLCBmbGFncyk7DQ0KLQlzZXJpYWxfb3V0KGluZm8sIFVBUlRf TUNSLCBpbmZvLT5NQ1IpOw0NCisJc2VyaWFsX291dChpbmZvLCBBVV9VQVJU X01DUiwgaW5mby0+TUNSKTsNDQogCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUo JnNlcmlhbF9sb2NrLCBmbGFncyk7DQ0KIH0NDQogDQ0KQEAgLTEzNzgsNyAr MTM3Miw3IEBADQ0KIAlpZiAodHR5LT50ZXJtaW9zLT5jX2NmbGFnICYgQ1JU U0NUUykNDQogCQlpbmZvLT5NQ1IgfD0gVUFSVF9NQ1JfUlRTOw0NCiAJc3Bp bl9sb2NrX2lycXNhdmUoJnNlcmlhbF9sb2NrLCBmbGFncyk7DQ0KLQlzZXJp YWxfb3V0KGluZm8sIFVBUlRfTUNSLCBpbmZvLT5NQ1IpOw0NCisJc2VyaWFs X291dChpbmZvLCBBVV9VQVJUX01DUiwgaW5mby0+TUNSKTsNDQogCXNwaW5f dW5sb2NrX2lycXJlc3RvcmUoJnNlcmlhbF9sb2NrLCBmbGFncyk7DQ0KIH0N DQogDQ0KQEAgLTE1NjQsNyArMTU1OCw3IEBADQ0KIAl1bnNpZ25lZCBsb25n IGZsYWdzOw0NCiANDQogCXNwaW5fbG9ja19pcnFzYXZlKCZzZXJpYWxfbG9j aywgZmxhZ3MpOw0NCi0Jc3RhdHVzID0gc2VyaWFsX2luKGluZm8sIFVBUlRf TFNSKTsNDQorCXN0YXR1cyA9IHNlcmlhbF9pbihpbmZvLCBBVV9VQVJUX0xT Uik7DQ0KIAlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZzZXJpYWxfbG9jaywg ZmxhZ3MpOw0NCiAJcmVzdWx0ID0gKChzdGF0dXMgJiBVQVJUX0xTUl9URU1U KSA/IFRJT0NTRVJfVEVNVCA6IDApOw0NCiANDQpAQCAtMTU5NCw3ICsxNTg4 LDcgQEANDQogDQ0KIAljb250cm9sID0gaW5mby0+TUNSOw0NCiAJc3Bpbl9s b2NrX2lycXNhdmUoJnNlcmlhbF9sb2NrLCBmbGFncyk7DQ0KLQlzdGF0dXMg PSBzZXJpYWxfaW4oaW5mbywgVUFSVF9NU1IpOw0NCisJc3RhdHVzID0gc2Vy aWFsX2luKGluZm8sIEFVX1VBUlRfTVNSKTsNDQogCXNwaW5fdW5sb2NrX2ly cXJlc3RvcmUoJnNlcmlhbF9sb2NrLCBmbGFncyk7DQ0KIAlyZXN1bHQgPSAg KChjb250cm9sICYgVUFSVF9NQ1JfUlRTKSA/IFRJT0NNX1JUUyA6IDApDQ0K IAkJfCAoKGNvbnRyb2wgJiBVQVJUX01DUl9EVFIpID8gVElPQ01fRFRSIDog MCkNDQpAQCAtMTY3MSw3ICsxNjY1LDcgQEANDQogCX0NDQogCXNwaW5fbG9j a19pcnFzYXZlKCZzZXJpYWxfbG9jaywgZmxhZ3MpOw0NCiAJaW5mby0+TUNS IHw9IEFMUEhBX0tMVURHRV9NQ1I7IAkJLyogRG9uJ3QgYXNrICovDQ0KLQlz ZXJpYWxfb3V0KGluZm8sIFVBUlRfTUNSLCBpbmZvLT5NQ1IpOw0NCisJc2Vy aWFsX291dChpbmZvLCBBVV9VQVJUX01DUiwgaW5mby0+TUNSKTsNDQogCXNw aW5fdW5sb2NrX2lycXJlc3RvcmUoJnNlcmlhbF9sb2NrLCBmbGFncyk7DQ0K IAlyZXR1cm4gMDsNDQogfQ0NCkBAIC0xNzEzLDcgKzE3MDcsNyBAQA0NCiAJ CWluZm8tPkxDUiB8PSBVQVJUX0xDUl9TQkM7DQ0KIAllbHNlDQ0KIAkJaW5m by0+TENSICY9IH5VQVJUX0xDUl9TQkM7DQ0KLQlzZXJpYWxfb3V0KGluZm8s IFVBUlRfTENSLCBpbmZvLT5MQ1IpOw0NCisJc2VyaWFsX291dChpbmZvLCBB VV9VQVJUX0xDUiwgaW5mby0+TENSKTsNDQogCXNwaW5fdW5sb2NrX2lycXJl c3RvcmUoJnNlcmlhbF9sb2NrLCBmbGFncyk7DQ0KIH0NDQogDQ0KQEAgLTE3 NzUsNyArMTc2OSw3IEBADQ0KIAkJCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUo JnNlcmlhbF9sb2NrLCBmbGFncyk7DQ0KIAkJCS8qIEZvcmNlIG1vZGVtIHN0 YXR1cyBpbnRlcnJ1cHRzIG9uICovDQ0KIAkJCWluZm8tPklFUiB8PSBVQVJU X0lFUl9NU0k7DQ0KLQkJCXNlcmlhbF9vdXQoaW5mbywgVUFSVF9JRVIsIGlu Zm8tPklFUik7DQ0KKwkJCXNlcmlhbF9vdXQoaW5mbywgQVVfVUFSVF9JRVIs IGluZm8tPklFUik7DQ0KIAkJCXdoaWxlICgxKSB7DQ0KIAkJCQlpbnRlcnJ1 cHRpYmxlX3NsZWVwX29uKCZpbmZvLT5kZWx0YV9tc3Jfd2FpdCk7DQ0KIAkJ CQkvKiBzZWUgaWYgYSBzaWduYWwgZGlkIGl0ICovDQ0KQEAgLTE4NTIsNyAr MTg0Niw3IEBADQ0KIAkgICAgIShjZmxhZyAmIENCQVVEKSkgew0NCiAJCWlu Zm8tPk1DUiAmPSB+KFVBUlRfTUNSX0RUUnxVQVJUX01DUl9SVFMpOw0NCiAJ CXNwaW5fbG9ja19pcnFzYXZlKCZzZXJpYWxfbG9jaywgZmxhZ3MpOw0NCi0J CXNlcmlhbF9vdXQoaW5mbywgVUFSVF9NQ1IsIGluZm8tPk1DUik7DQ0KKwkJ c2VyaWFsX291dChpbmZvLCBBVV9VQVJUX01DUiwgaW5mby0+TUNSKTsNDQog CQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZzZXJpYWxfbG9jaywgZmxhZ3Mp Ow0NCiAJfQ0NCiANDQpAQCAtMTg2NSw3ICsxODU5LDcgQEANDQogCQkJaW5m by0+TUNSIHw9IFVBUlRfTUNSX1JUUzsNDQogCQl9DQ0KIAkJc3Bpbl9sb2Nr X2lycXNhdmUoJnNlcmlhbF9sb2NrLCBmbGFncyk7DQ0KLQkJc2VyaWFsX291 dChpbmZvLCBVQVJUX01DUiwgaW5mby0+TUNSKTsNDQorCQlzZXJpYWxfb3V0 KGluZm8sIEFVX1VBUlRfTUNSLCBpbmZvLT5NQ1IpOw0NCiAJCXNwaW5fdW5s b2NrX2lycXJlc3RvcmUoJnNlcmlhbF9sb2NrLCBmbGFncyk7DQ0KIAl9DQ0K IA0NCkBAIC0xOTU5LDcgKzE5NTMsNyBAQA0NCiAJaW5mby0+SUVSICY9IH5V QVJUX0lFUl9STFNJOw0NCiAJaW5mby0+cmVhZF9zdGF0dXNfbWFzayAmPSB+ VUFSVF9MU1JfRFI7DQ0KIAlpZiAoaW5mby0+ZmxhZ3MgJiBBU1lOQ19JTklU SUFMSVpFRCkgew0NCi0JCXNlcmlhbF9vdXQoaW5mbywgVUFSVF9JRVIsIGlu Zm8tPklFUik7DQ0KKwkJc2VyaWFsX291dChpbmZvLCBBVV9VQVJUX0lFUiwg aW5mby0+SUVSKTsNDQogCQkvKg0NCiAJCSAqIEJlZm9yZSB3ZSBkcm9wIERU UiwgbWFrZSBzdXJlIHRoZSBVQVJUIHRyYW5zbWl0dGVyDQ0KIAkJICogaGFz IGNvbXBsZXRlbHkgZHJhaW5lZDsgdGhpcyBpcyBlc3BlY2lhbGx5DQ0KQEAg LTIwMzYsNyArMjAzMCw3IEBADQ0KIAlwcmludGsoIkluIHJzX3dhaXRfdW50 aWxfc2VudCglZCkgY2hlY2s9JWx1Li4uIiwgdGltZW91dCwgY2hhcl90aW1l KTsNDQogCXByaW50aygiamlmZj0lbHUuLi4iLCBqaWZmaWVzKTsNDQogI2Vu ZGlmDQ0KLQl3aGlsZSAoISgobHNyID0gc2VyaWFsX2lucChpbmZvLCBVQVJU X0xTUikpICYgVUFSVF9MU1JfVEVNVCkpIHsNDQorCXdoaWxlICghKChsc3Ig PSBzZXJpYWxfaW5wKGluZm8sIEFVX1VBUlRfTFNSKSkgJiBVQVJUX0xTUl9U RU1UKSkgew0NCiAjaWZkZWYgU0VSSUFMX0RFQlVHX1JTX1dBSVRfVU5USUxf U0VOVA0NCiAJCXByaW50aygibHNyID0gJWQgKGppZmY9JWx1KS4uLiIsIGxz ciwgamlmZmllcyk7DQ0KICNlbmRpZg0NCkBAIC0yMTcwLDggKzIxNjQsOCBA QA0NCiAJCXNwaW5fbG9ja19pcnFzYXZlKCZzZXJpYWxfbG9jaywgZmxhZ3Mp Ow0NCiAJCWlmICghKGluZm8tPmZsYWdzICYgQVNZTkNfQ0FMTE9VVF9BQ1RJ VkUpICYmDQ0KIAkJICAgICh0dHktPnRlcm1pb3MtPmNfY2ZsYWcgJiBDQkFV RCkpDQ0KLQkJCXNlcmlhbF9vdXQoaW5mbywgVUFSVF9NQ1IsDQ0KLQkJCQkg ICBzZXJpYWxfaW5wKGluZm8sIFVBUlRfTUNSKSB8DQ0KKwkJCXNlcmlhbF9v dXQoaW5mbywgQVVfVUFSVF9NQ1IsDQ0KKwkJCQkgICBzZXJpYWxfaW5wKGlu Zm8sIEFVX1VBUlRfTUNSKSB8DQ0KIAkJCQkgICAoVUFSVF9NQ1JfRFRSIHwg VUFSVF9NQ1JfUlRTKSk7DQ0KIAkJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgm c2VyaWFsX2xvY2ssIGZsYWdzKTsNDQogCQlzZXRfY3VycmVudF9zdGF0ZShU QVNLX0lOVEVSUlVQVElCTEUpOw0NCkBAIC0yMTg5LDcgKzIxODMsNyBAQA0N CiAJCX0NDQogCQlpZiAoIShpbmZvLT5mbGFncyAmIEFTWU5DX0NBTExPVVRf QUNUSVZFKSAmJg0NCiAJCSAgICAhKGluZm8tPmZsYWdzICYgQVNZTkNfQ0xP U0lORykgJiYNDQotCQkgICAgKGRvX2Nsb2NhbCB8fCAoc2VyaWFsX2luKGlu Zm8sIFVBUlRfTVNSKSAmDQ0KKwkJICAgIChkb19jbG9jYWwgfHwgKHNlcmlh bF9pbihpbmZvLCBBVV9VQVJUX01TUikgJg0NCiAJCQkJICAgVUFSVF9NU1Jf RENEKSkpDQ0KIAkJCWJyZWFrOw0NCiAJCWlmIChzaWduYWxfcGVuZGluZyhj dXJyZW50KSkgew0NCkBAIC0yMzk3LDggKzIzOTEsOCBAQA0NCiAJCWluZm8t PnR0eSA9IDA7DQ0KIAl9DQ0KIAlzcGluX2xvY2tfaXJxc2F2ZSgmc2VyaWFs X2xvY2ssIGZsYWdzKTsNDQotCXN0YXR1cyA9IHNlcmlhbF9pbihpbmZvLCBV QVJUX01TUik7DQ0KLQljb250cm9sID0gaW5mbyAhPSAmc2NyX2luZm8gPyBp bmZvLT5NQ1IgOiBzZXJpYWxfaW4oaW5mbywgVUFSVF9NQ1IpOw0NCisJc3Rh dHVzID0gc2VyaWFsX2luKGluZm8sIEFVX1VBUlRfTVNSKTsNDQorCWNvbnRy b2wgPSBpbmZvICE9ICZzY3JfaW5mbyA/IGluZm8tPk1DUiA6IHNlcmlhbF9p bihpbmZvLCBBVV9VQVJUX01DUik7DQ0KIAlzcGluX3VubG9ja19pcnFyZXN0 b3JlKCZzZXJpYWxfbG9jaywgZmxhZ3MpOw0NCiANDQogCXN0YXRfYnVmWzBd ID0gMDsNDQpAQCAtMjUzNiwyMyArMjUzMCwyMyBAQA0NCiAJc3RhdGUtPnht aXRfZmlmb19zaXplID0JdWFydF9jb25maWdbc3RhdGUtPnR5cGVdLmRmbF94 bWl0X2ZpZm9fc2l6ZTsNDQogDQ0KIAlpZiAoaW5mby0+cG9ydCkgew0NCi0J CQlyZXF1ZXN0X3JlZ2lvbihpbmZvLT5wb3J0LDgsInNlcmlhbChhdXRvKSIp Ow0NCisJCQlyZXF1ZXN0X3JlZ2lvbihpbmZvLT5wb3J0LDgsIkF1MXh4eCBz ZXJpYWwoYXV0bykiKTsNDQogCX0NDQogDQ0KIAkvKg0NCiAJICogUmVzZXQg dGhlIFVBUlQuDQ0KIAkgKi8NDQotCXNlcmlhbF9vdXRwKGluZm8sIFVBUlRf RkNSLCAoVUFSVF9GQ1JfRU5BQkxFX0ZJRk8gfA0NCisJc2VyaWFsX291dHAo aW5mbywgQVVfVUFSVF9GQ1IsIChVQVJUX0ZDUl9FTkFCTEVfRklGTyB8DQ0K IAkJCQkgICAgIFVBUlRfRkNSX0NMRUFSX1JDVlIgfA0NCiAJCQkJICAgICBV QVJUX0ZDUl9DTEVBUl9YTUlUKSk7DQ0KLQlzZXJpYWxfb3V0cChpbmZvLCBV QVJUX0ZDUiwgMCk7DQ0KLQkodm9pZClzZXJpYWxfaW4oaW5mbywgVUFSVF9S WCk7DQ0KLQlzZXJpYWxfb3V0cChpbmZvLCBVQVJUX0lFUiwgMCk7DQ0KKwlz ZXJpYWxfb3V0cChpbmZvLCBBVV9VQVJUX0ZDUiwgMCk7DQ0KKwkodm9pZClz ZXJpYWxfaW4oaW5mbywgQVVfVUFSVF9SWCk7DQ0KKwlzZXJpYWxfb3V0cChp bmZvLCBBVV9VQVJUX0lFUiwgMCk7DQ0KIAlzcGluX3VubG9ja19pcnFyZXN0 b3JlKCZzZXJpYWxfbG9jaywgZmxhZ3MpOw0NCiB9DQ0KIA0NCi1pbnQgcmVn aXN0ZXJfc2VyaWFsKHN0cnVjdCBzZXJpYWxfc3RydWN0ICpyZXEpOw0NCi12 b2lkIHVucmVnaXN0ZXJfc2VyaWFsKGludCBsaW5lKTsNDQoraW50IHJlZ2lz dGVyX0F1MXh4eF9zZXJpYWwoc3RydWN0IHNlcmlhbF9zdHJ1Y3QgKnJlcSk7 DQ0KK3ZvaWQgdW5yZWdpc3Rlcl9BdTF4eHhfc2VyaWFsKGludCBsaW5lKTsN DQogDQ0KIC8qDQ0KICAqIFRoZSBzZXJpYWwgZHJpdmVyIGJvb3QtdGltZSBp bml0aWFsaXphdGlvbiBjb2RlIQ0NCkBAIC0yNTYyLDYgKzI1NTYsNyBAQA0N CiAJaW50IGk7DQ0KIAlzdHJ1Y3Qgc2VyaWFsX3N0YXRlICogc3RhdGU7DQ0K IA0NCitwcmludGsoImF1IHJzX2luaXQgJWRcbiIsIE5SX1BPUlRTKTsNDQog CWluaXRfYmgoU0VSSUFMX0JILCBkb19zZXJpYWxfYmgpOw0NCiAJaW5pdF90 aW1lcigmc2VyaWFsX3RpbWVyKTsNDQogCXNlcmlhbF90aW1lci5mdW5jdGlv biA9IHJzX3RpbWVyOw0NCkBAIC0yNTg5LDE0ICsyNTg0LDE0IEBADQ0KIA0N CiAJbWVtc2V0KCZzZXJpYWxfZHJpdmVyLCAwLCBzaXplb2Yoc3RydWN0IHR0 eV9kcml2ZXIpKTsNDQogCXNlcmlhbF9kcml2ZXIubWFnaWMgPSBUVFlfRFJJ VkVSX01BR0lDOw0NCi0Jc2VyaWFsX2RyaXZlci5kcml2ZXJfbmFtZSA9ICJz ZXJpYWwiOw0NCisJc2VyaWFsX2RyaXZlci5kcml2ZXJfbmFtZSA9ICJBdTF4 eHhfc2VyaWFsIjsNDQogI2lmIChMSU5VWF9WRVJTSU9OX0NPREUgPiAweDIw MzJEICYmIGRlZmluZWQoQ09ORklHX0RFVkZTX0ZTKSkNDQogCXNlcmlhbF9k cml2ZXIubmFtZSA9ICJ0dHMvJWQiOw0NCiAjZWxzZQ0NCiAJc2VyaWFsX2Ry aXZlci5uYW1lID0gInR0eVMiOw0NCiAjZW5kaWYNDQogCXNlcmlhbF9kcml2 ZXIubWFqb3IgPSBUVFlfTUFKT1I7DQ0KLQlzZXJpYWxfZHJpdmVyLm1pbm9y X3N0YXJ0ID0gNjQgKyBTRVJJQUxfREVWX09GRlNFVDsNDQorCXNlcmlhbF9k cml2ZXIubWlub3Jfc3RhcnQgPSA2NDsNDQogCXNlcmlhbF9kcml2ZXIubnVt ID0gTlJfUE9SVFM7DQ0KIAlzZXJpYWxfZHJpdmVyLnR5cGUgPSBUVFlfRFJJ VkVSX1RZUEVfU0VSSUFMOw0NCiAJc2VyaWFsX2RyaXZlci5zdWJ0eXBlID0g U0VSSUFMX1RZUEVfTk9STUFMOw0NCkBAIC0yNjgwLDcgKzI2NzUsNyBAQA0N CiAJCQljb250aW51ZTsNDQogCQl9DQ0KIAkJcHJpbnRrKEtFUk5fSU5GTyAi dHR5UyUwMmQlcyBhdCAweCUwNGx4IChpcnEgPSAlZCkgaXMgYSAlc1xuIiwN DQotCQkgICAgICAgc3RhdGUtPmxpbmUgKyBTRVJJQUxfREVWX09GRlNFVCwN DQorCQkgICAgICAgc3RhdGUtPmxpbmUsDQ0KIAkJICAgICAgIChzdGF0ZS0+ ZmxhZ3MgJiBBU1lOQ19GT1VSUE9SVCkgPyAiIEZvdXJQb3J0IiA6ICIiLA0N CiAJCSAgICAgICBzdGF0ZS0+cG9ydCwgc3RhdGUtPmlycSwNDQogCQkgICAg ICAgdWFydF9jb25maWdbc3RhdGUtPnR5cGVdLm5hbWUpOw0NCkBAIC0yNzEx LDcgKzI3MDYsNyBAQA0NCiAgKglPbiBzdWNjZXNzIHRoZSBwb3J0IGlzIHJl YWR5IHRvIHVzZSBhbmQgdGhlIGxpbmUgbnVtYmVyIGlzIHJldHVybmVkLg0N CiAgKi8NDQogDQ0KLWludCByZWdpc3Rlcl9zZXJpYWwoc3RydWN0IHNlcmlh bF9zdHJ1Y3QgKnJlcSkNDQoraW50IHJlZ2lzdGVyX0F1MXh4eF9zZXJpYWwo c3RydWN0IHNlcmlhbF9zdHJ1Y3QgKnJlcSkNDQogew0NCiAJaW50IGk7DQ0K IAl1bnNpZ25lZCBsb25nIGZsYWdzOw0NCkBAIC0yNzcwLDcgKzI3NjUsNyBA QA0NCiAJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmc2VyaWFsX2xvY2ssIGZs YWdzKTsNDQogDQ0KICAgICAgICBwcmludGsoS0VSTl9JTkZPICJ0dHlTJTAy ZCBhdCAlcyAweCUwNGx4IChpcnEgPSAlZCkgaXMgYSAlc1xuIiwNDQotCSAg ICAgIHN0YXRlLT5saW5lICsgU0VSSUFMX0RFVl9PRkZTRVQsDQ0KKwkgICAg ICBzdGF0ZS0+bGluZSwNDQogCSAgICAgIHN0YXRlLT5pb21lbV9iYXNlID8g ImlvbWVtIiA6ICJwb3J0IiwNDQogCSAgICAgIHN0YXRlLT5pb21lbV9iYXNl ID8gKHVuc2lnbmVkIGxvbmcpc3RhdGUtPmlvbWVtX2Jhc2UgOg0NCiAJICAg ICAgc3RhdGUtPnBvcnQsIHN0YXRlLT5pcnEsIHVhcnRfY29uZmlnW3N0YXRl LT50eXBlXS5uYW1lKTsNDQpAQCAtMjc3OCw3ICsyNzczLDcgQEANDQogCQkJ ICAgc2VyaWFsX2RyaXZlci5taW5vcl9zdGFydCArIHN0YXRlLT5saW5lKTsN DQogCXR0eV9yZWdpc3Rlcl9kZXZmcygmY2FsbG91dF9kcml2ZXIsIDAsDQ0K IAkJCSAgIGNhbGxvdXRfZHJpdmVyLm1pbm9yX3N0YXJ0ICsgc3RhdGUtPmxp bmUpOw0NCi0JcmV0dXJuIHN0YXRlLT5saW5lICsgU0VSSUFMX0RFVl9PRkZT RVQ7DQ0KKwlyZXR1cm4gc3RhdGUtPmxpbmU7DQ0KIH0NDQogDQ0KIC8qKg0N CkBAIC0yNzkwLDcgKzI3ODUsNyBAQA0NCiAgKgl0aGUgcG9ydCBudW1iZXIg cmV0dXJuZWQgYnkgcmVnaXN0ZXJfc2VyaWFsKCkuDQ0KICAqLw0NCiANDQot dm9pZCB1bnJlZ2lzdGVyX3NlcmlhbChpbnQgbGluZSkNDQordm9pZCB1bnJl Z2lzdGVyX0F1MXh4eF9zZXJpYWwoaW50IGxpbmUpDQ0KIHsNDQogCXVuc2ln bmVkIGxvbmcgZmxhZ3M7DQ0KIAlzdHJ1Y3Qgc2VyaWFsX3N0YXRlICpzdGF0 ZSA9ICZyc190YWJsZVtsaW5lXTsNDQpAQCAtMjg2OSw3ICsyODY0LDcgQEAN DQogCXVuc2lnbmVkIGludCBzdGF0dXMsIHRtb3V0ID0gMHhmZmZmZmY7DQ0K IA0NCiAJZG8gew0NCi0JCXN0YXR1cyA9IHNlcmlhbF9pbihpbmZvLCBVQVJU X0xTUik7DQ0KKwkJc3RhdHVzID0gc2VyaWFsX2luKGluZm8sIEFVX1VBUlRf TFNSKTsNDQogDQ0KIAkJaWYgKHN0YXR1cyAmIFVBUlRfTFNSX0JJKQ0NCiAJ CQlsc3JfYnJlYWtfZmxhZyA9IFVBUlRfTFNSX0JJOw0NCkBAIC0yODk2LDgg KzI4OTEsOCBAQA0NCiAJLyoNDQogCSAqCUZpcnN0IHNhdmUgdGhlIElFUiB0 aGVuIGRpc2FibGUgdGhlIGludGVycnVwdHMNDQogCSAqLw0NCi0JaWVyID0g c2VyaWFsX2luKGluZm8sIFVBUlRfSUVSKTsNDQotCXNlcmlhbF9vdXQoaW5m bywgVUFSVF9JRVIsIDB4MDApOw0NCisJaWVyID0gc2VyaWFsX2luKGluZm8s IEFVX1VBUlRfSUVSKTsNDQorCXNlcmlhbF9vdXQoaW5mbywgQVVfVUFSVF9J RVIsIDB4MDApOw0NCiANDQogCS8qDQ0KIAkgKglOb3csIGRvIGVhY2ggY2hh cmFjdGVyDQ0KQEAgLTI5MDksMTAgKzI5MDQsMTAgQEANDQogCQkgKglTZW5k IHRoZSBjaGFyYWN0ZXIgb3V0Lg0NCiAJCSAqCUlmIGEgTEYsIGFsc28gZG8g Q1IuLi4NDQogCQkgKi8NDQotCQlzZXJpYWxfb3V0KGluZm8sIFVBUlRfVFgs ICpzKTsNDQorCQlzZXJpYWxfb3V0KGluZm8sIEFVX1VBUlRfVFgsICpzKTsN DQogCQlpZiAoKnMgPT0gMTApIHsNDQogCQkJd2FpdF9mb3JfeG1pdHIoaW5m byk7DQ0KLQkJCXNlcmlhbF9vdXQoaW5mbywgVUFSVF9UWCwgMTMpOw0NCisJ CQlzZXJpYWxfb3V0KGluZm8sIEFVX1VBUlRfVFgsIDEzKTsNDQogCQl9DQ0K IAl9DQ0KIA0NCkBAIC0yOTIxLDcgKzI5MTYsNyBAQA0NCiAJICogCWFuZCBy ZXN0b3JlIHRoZSBJRVINDQogCSAqLw0NCiAJd2FpdF9mb3JfeG1pdHIoaW5m byk7DQ0KLQlzZXJpYWxfb3V0KGluZm8sIFVBUlRfSUVSLCBpZXIpOw0NCisJ c2VyaWFsX291dChpbmZvLCBBVV9VQVJUX0lFUiwgaWVyKTsNDQogfQ0NCiAN DQogLyoNDQpAQCAtMjkzOSwxNiArMjkzNCwxNiBAQA0NCiAJICoJdGhhdCB0 aGUgcmVhbCBkcml2ZXIgZm9yIHRoZSBwb3J0IGRvZXMgbm90IGdldCB0aGUN DQogCSAqCWNoYXJhY3Rlci4NDQogCSAqLw0NCi0JaWVyID0gc2VyaWFsX2lu KGluZm8sIFVBUlRfSUVSKTsNDQotCXNlcmlhbF9vdXQoaW5mbywgVUFSVF9J RVIsIDB4MDApOw0NCisJaWVyID0gc2VyaWFsX2luKGluZm8sIEFVX1VBUlRf SUVSKTsNDQorCXNlcmlhbF9vdXQoaW5mbywgQVVfVUFSVF9JRVIsIDB4MDAp Ow0NCiAgDQ0KLQl3aGlsZSAoKHNlcmlhbF9pbihpbmZvLCBVQVJUX0xTUikg JiBVQVJUX0xTUl9EUikgPT0gMCk7DQ0KLQljID0gc2VyaWFsX2luKGluZm8s IFVBUlRfUlgpOw0NCisJd2hpbGUgKChzZXJpYWxfaW4oaW5mbywgQVVfVUFS VF9MU1IpICYgVUFSVF9MU1JfRFIpID09IDApOw0NCisJYyA9IHNlcmlhbF9p bihpbmZvLCBBVV9VQVJUX1JYKTsNDQogDQ0KIAkvKg0NCiAJICoJUmVzdG9y ZSB0aGUgaW50ZXJydXB0cw0NCiAJICovDQ0KLQlzZXJpYWxfb3V0KGluZm8s IFVBUlRfSUVSLCBpZXIpOw0NCisJc2VyaWFsX291dChpbmZvLCBBVV9VQVJU X0lFUiwgaWVyKTsNDQogDQ0KIAlyZXR1cm4gYzsNDQogfQ0NCkBAIC0zMDYx LDEzICszMDU2LDEzIEBADQ0KIAkgKglhbmQgc2V0IHNwZWVkLg0NCiAJICov DQ0KIAlzZXJpYWxfb3V0KGluZm8sIFVBUlRfQ0xLLCBxdW90ICYgMHhmZmZm KTsNDQotCXNlcmlhbF9vdXQoaW5mbywgVUFSVF9JRVIsIDApOw0NCi0Jc2Vy aWFsX291dChpbmZvLCBVQVJUX01DUiwgVUFSVF9NQ1JfRFRSIHwgVUFSVF9N Q1JfUlRTKTsNDQorCXNlcmlhbF9vdXQoaW5mbywgQVVfVUFSVF9JRVIsIDAp Ow0NCisJc2VyaWFsX291dChpbmZvLCBBVV9VQVJUX01DUiwgVUFSVF9NQ1Jf RFRSIHwgVUFSVF9NQ1JfUlRTKTsNDQogDQ0KIAkvKg0NCiAJICoJSWYgd2Ug cmVhZCAweGZmIGZyb20gdGhlIExTUiwgdGhlcmUgaXMgbm8gVUFSVCBoZXJl Lg0NCiAJICovDQ0KLQlpZiAoc2VyaWFsX2luKGluZm8sIFVBUlRfTFNSKSA9 PSAweGZmKQ0NCisJaWYgKHNlcmlhbF9pbihpbmZvLCBBVV9VQVJUX0xTUikg PT0gMHhmZikNDQogCQlyZXR1cm4gLTE7DQ0KIA0NCiAJcmV0dXJuIDA7DQ0K SW5kZXg6IGRyaXZlcnMvY2hhci9zZXJpYWwuYw0NCj09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0NDQpSQ1MgZmlsZTogL2hvbWUvY3ZzL2xpbnV4L2RyaXZlcnMv Y2hhci9BdHRpYy9zZXJpYWwuYyx2DQ0KcmV0cmlldmluZyByZXZpc2lvbiAx LjYyLjIuMTANDQpkaWZmIC11IC1yMS42Mi4yLjEwIHNlcmlhbC5jDQ0KLS0t IGRyaXZlcnMvY2hhci9zZXJpYWwuYwkxNSBEZWMgMjAwMyAxODoxOTo1MCAt MDAwMAkxLjYyLjIuMTANDQorKysgZHJpdmVycy9jaGFyL3NlcmlhbC5jCTE3 IE5vdiAyMDA0IDExOjAzOjE1IC0wMDAwDQ0KQEAgLTI0MiwxMSArMjQzLDEz IEBADQ0KICNpbmNsdWRlIDxhc20vaXJxLmg+DQ0KICNpbmNsdWRlIDxhc20v Yml0b3BzLmg+DQ0KIA0NCisjaWZuZGVmIFNFUklBTF9ERVZfT0ZGU0VUDQ0K ICNpZiBkZWZpbmVkKENPTkZJR19NQUNfU0VSSUFMKQ0NCiAjZGVmaW5lIFNF UklBTF9ERVZfT0ZGU0VUCSgoX21hY2hpbmUgPT0gX01BQ0hfcHJlcCB8fCBf bWFjaGluZSA9PSBfTUFDSF9jaHJwKSA/IDAgOiAyKQ0NCiAjZWxzZQ0NCiAj ZGVmaW5lIFNFUklBTF9ERVZfT0ZGU0VUCTANDQogI2VuZGlmDQ0KKyNlbmRp Zg0NCiANDQogI2lmZGVmIFNFUklBTF9JTkxJTkUNDQogI2RlZmluZSBfSU5M SU5FXyBpbmxpbmUNDQpAQCAtNTcxOCw3ICs1NzQ4LDcgQEANDQogCQkJICAg c2VyaWFsX2RyaXZlci5taW5vcl9zdGFydCArIHN0YXRlLT5saW5lKTsgDQ0K IAl0dHlfcmVnaXN0ZXJfZGV2ZnMoJmNhbGxvdXRfZHJpdmVyLCAwLA0NCiAJ CQkgICBjYWxsb3V0X2RyaXZlci5taW5vcl9zdGFydCArIHN0YXRlLT5saW5l KTsNDQotCXJldHVybiBzdGF0ZS0+bGluZSArIFNFUklBTF9ERVZfT0ZGU0VU Ow0NCisJcmV0dXJuIHN0YXRlLT5saW5lOw0NCiB9DQ0KIA0NCiAvKioNDQo= --0-1392212856-1119946606=:46441--