From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1JjJsg-00057c-2l for qemu-devel@nongnu.org; Tue, 08 Apr 2008 15:53:22 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1JjJsf-00056L-FN for qemu-devel@nongnu.org; Tue, 08 Apr 2008 15:53:21 -0400 Received: from [199.232.76.173] (helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1JjJse-00055y-S2 for qemu-devel@nongnu.org; Tue, 08 Apr 2008 15:53:20 -0400 Received: from smtp3-g19.free.fr ([212.27.42.29]) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1JjJsd-000680-U8 for qemu-devel@nongnu.org; Tue, 08 Apr 2008 15:53:20 -0400 Received: from smtp3-g19.free.fr (localhost.localdomain [127.0.0.1]) by smtp3-g19.free.fr (Postfix) with ESMTP id 676F217B9BB for ; Tue, 8 Apr 2008 21:53:16 +0200 (CEST) Received: from [127.0.0.1] (rob92-10-88-171-126-33.fbx.proxad.net [88.171.126.33]) by smtp3-g19.free.fr (Postfix) with ESMTP id C481017BAB6 for ; Tue, 8 Apr 2008 21:53:09 +0200 (CEST) Message-ID: <47FBCD22.9000209@reactos.org> Date: Tue, 08 Apr 2008 21:53:06 +0200 From: =?ISO-8859-1?Q?Herv=E9_Poussineau?= MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="------------030201000502040907050803" Subject: [Qemu-devel] [PATCH] FDC: fix status0/1/2 handling Reply-To: qemu-devel@nongnu.org List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org This is a multi-part message in MIME format. --------------030201000502040907050803 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: quoted-printable Hi, Attached patch fixes handling of status0, status1 and status2 values in=20 the floppy controller. Those values are not calculated anymore at the=20 end of the command, but during its execution. Incidentally, this also removes a hack from=20 fdctrl_handle_sense_interrupt_status(). Herv=E9 --------------030201000502040907050803 Content-Type: text/plain; name="fdc_fix_status.diff" Content-Transfer-Encoding: base64 Content-Disposition: inline; filename="fdc_fix_status.diff" SW5kZXg6IGZkYy5jDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gZmRjLmMJKHJldmlzaW9uIDQxNzUp DQorKysgZmRjLmMJKHdvcmtpbmcgY29weSkNCkBAIC0zMjEsNyArMzIxLDcgQEANCiBzdGF0 aWMgdm9pZCBmZGN0cmxfcmVzZXRfZmlmbyAoZmRjdHJsX3QgKmZkY3RybCk7CiBzdGF0aWMg aW50IGZkY3RybF90cmFuc2Zlcl9oYW5kbGVyICh2b2lkICpvcGFxdWUsIGludCBuY2hhbiwK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBkbWFfcG9zLCBpbnQg ZG1hX2xlbik7Ci1zdGF0aWMgdm9pZCBmZGN0cmxfcmFpc2VfaXJxIChmZGN0cmxfdCAqZmRj dHJsLCB1aW50OF90IHN0YXR1cyk7CitzdGF0aWMgdm9pZCBmZGN0cmxfcmFpc2VfaXJxIChm ZGN0cmxfdCAqZmRjdHJsKTsKIHN0YXRpYyB2b2lkIGZkY3RybF9yZXN1bHRfdGltZXIodm9p ZCAqb3BhcXVlKTsKIAogc3RhdGljIHVpbnQzMl90IGZkY3RybF9yZWFkX3N0YXR1c0IgKGZk Y3RybF90ICpmZGN0cmwpOwpAQCAtMzU3LDcgKzM1Nyw2IEBADQogICAgIEZEX1NUQVRFX0RB VEEgICA9IDB4MDIsCiAgICAgRkRfU1RBVEVfU1RBVEUgID0gMHgwMywKICAgICBGRF9TVEFU RV9NVUxUSSAgPSAweDEwLAotICAgIEZEX1NUQVRFX1NFRUsgICA9IDB4MjAsCiAgICAgRkRf U1RBVEVfRk9STUFUID0gMHg0MCwKIH07CiAKQEAgLTQyMSw2ICs0MjAsMTUgQEANCiAgICAg RkRfU1IwX1JEWUNIRyAgID0gMHhjMCwKIH07CiAKK2VudW0gew0KKyAgICBGRF9TUjFfRUMg ICAgICAgPSAweDgwLCAvKiBFbmQgb2YgY3lsaW5kZXIgKi8NCit9Ow0KKw0KK2VudW0gew0K KyAgICBGRF9TUjJfU05TICAgICAgPSAweDA0LCAvKiBTY2FuIG5vdCBzYXRpc2ZpZWQgKi8N CisgICAgRkRfU1IyX1NFSCAgICAgID0gMHgwOCwgLyogU2NhbiBlcXVhbCBoaXQgKi8NCit9 OworCiBlbnVtIHsKICAgICBGRF9ET1JfU0VMTUFTSyAgPSAweDAxLAogICAgIEZEX0RPUl9u UkVTRVQgICA9IDB4MDQsCkBAIC00NjAsNyArNDY4LDYgQEANCiAjZGVmaW5lIEZEX1NFVF9T VEFURShzdGF0ZSwgbmV3X3N0YXRlKSBcCiBkbyB7IChzdGF0ZSkgPSAoKHN0YXRlKSAmIH5G RF9TVEFURV9TVEFURSkgfCAobmV3X3N0YXRlKTsgfSB3aGlsZSAoMCkKICNkZWZpbmUgRkRf TVVMVElfVFJBQ0soc3RhdGUpICgoc3RhdGUpICYgRkRfU1RBVEVfTVVMVEkpCi0jZGVmaW5l IEZEX0RJRF9TRUVLKHN0YXRlKSAoKHN0YXRlKSAmIEZEX1NUQVRFX1NFRUspCiAjZGVmaW5l IEZEX0ZPUk1BVF9DTUQoc3RhdGUpICgoc3RhdGUpICYgRkRfU1RBVEVfRk9STUFUKQogCiBz dHJ1Y3QgZmRjdHJsX3QgewpAQCAtNDc3LDEzICs0ODQsMTUgQEANCiAgICAgdWludDhfdCBk bWFfZW47CiAgICAgdWludDhfdCBjdXJfZHJ2OwogICAgIHVpbnQ4X3QgYm9vdHNlbDsKKyAg ICB1aW50OF90IHN0YXR1czA7DQorICAgIHVpbnQ4X3Qgc3RhdHVzMTsNCisgICAgdWludDhf dCBzdGF0dXMyOwogICAgIC8qIENvbW1hbmQgRklGTyAqLwogICAgIHVpbnQ4X3QgKmZpZm87 CiAgICAgdWludDMyX3QgZGF0YV9wb3M7CiAgICAgdWludDMyX3QgZGF0YV9sZW47CiAgICAg dWludDhfdCBkYXRhX3N0YXRlOwogICAgIHVpbnQ4X3QgZGF0YV9kaXI7Ci0gICAgdWludDhf dCBpbnRfc3RhdHVzOwogICAgIHVpbnQ4X3QgZW90OyAvKiBsYXN0IHdhbnRlZCBzZWN0b3Ig Ki8KICAgICAvKiBTdGF0ZXMga2VwdCBvbmx5IHRvIGJlIHJldHVybmVkIGJhY2sgKi8KICAg ICAvKiBUaW1lcnMgc3RhdGUgKi8KQEAgLTYyMiwxMyArNjMxLDE3IEBADQogICAgIHFlbXVf cHV0XzhzKGYsICZzLT5kbWFfZW4pOwogICAgIHFlbXVfcHV0XzhzKGYsICZzLT5jdXJfZHJ2 KTsKICAgICBxZW11X3B1dF84cyhmLCAmcy0+Ym9vdHNlbCk7CisgICAgcWVtdV9wdXRfOHMo ZiwgJnMtPnN0YXR1czApOw0KKyAgICBxZW11X3B1dF84cyhmLCAmcy0+c3RhdHVzMSk7DQor ICAgIHFlbXVfcHV0XzhzKGYsICZzLT5zdGF0dXMyKTsNCisgICAgLyogQ29tbWFuZCBGSUZP ICovCiAgICAgcWVtdV9wdXRfYnVmZmVyKGYsIHMtPmZpZm8sIEZEX1NFQ1RPUl9MRU4pOwog ICAgIHFlbXVfcHV0X2JlMzJzKGYsICZzLT5kYXRhX3Bvcyk7CiAgICAgcWVtdV9wdXRfYmUz MnMoZiwgJnMtPmRhdGFfbGVuKTsKICAgICBxZW11X3B1dF84cyhmLCAmcy0+ZGF0YV9zdGF0 ZSk7CiAgICAgcWVtdV9wdXRfOHMoZiwgJnMtPmRhdGFfZGlyKTsKLSAgICBxZW11X3B1dF84 cyhmLCAmcy0+aW50X3N0YXR1cyk7CiAgICAgcWVtdV9wdXRfOHMoZiwgJnMtPmVvdCk7Cisg ICAgLyogU3RhdGVzIGtlcHQgb25seSB0byBiZSByZXR1cm5lZCBiYWNrICovDQogICAgIHFl bXVfcHV0XzhzKGYsICZzLT50aW1lcjApOwogICAgIHFlbXVfcHV0XzhzKGYsICZzLT50aW1l cjEpOwogICAgIHFlbXVfcHV0XzhzKGYsICZzLT5wcmVjb21wX3Ryayk7CkBAIC02NjYsMTMg KzY3OSwxNyBAQA0KICAgICBxZW11X2dldF84cyhmLCAmcy0+ZG1hX2VuKTsKICAgICBxZW11 X2dldF84cyhmLCAmcy0+Y3VyX2Rydik7CiAgICAgcWVtdV9nZXRfOHMoZiwgJnMtPmJvb3Rz ZWwpOworICAgIHFlbXVfZ2V0XzhzKGYsICZzLT5zdGF0dXMwKTsNCisgICAgcWVtdV9nZXRf OHMoZiwgJnMtPnN0YXR1czEpOw0KKyAgICBxZW11X2dldF84cyhmLCAmcy0+c3RhdHVzMik7 DQorICAgIC8qIENvbW1hbmQgRklGTyAqLwogICAgIHFlbXVfZ2V0X2J1ZmZlcihmLCBzLT5m aWZvLCBGRF9TRUNUT1JfTEVOKTsKICAgICBxZW11X2dldF9iZTMycyhmLCAmcy0+ZGF0YV9w b3MpOwogICAgIHFlbXVfZ2V0X2JlMzJzKGYsICZzLT5kYXRhX2xlbik7CiAgICAgcWVtdV9n ZXRfOHMoZiwgJnMtPmRhdGFfc3RhdGUpOwogICAgIHFlbXVfZ2V0XzhzKGYsICZzLT5kYXRh X2Rpcik7Ci0gICAgcWVtdV9nZXRfOHMoZiwgJnMtPmludF9zdGF0dXMpOwogICAgIHFlbXVf Z2V0XzhzKGYsICZzLT5lb3QpOworICAgIC8qIFN0YXRlcyBrZXB0IG9ubHkgdG8gYmUgcmV0 dXJuZWQgYmFjayAqLw0KICAgICBxZW11X2dldF84cyhmLCAmcy0+dGltZXIwKTsKICAgICBx ZW11X2dldF84cyhmLCAmcy0+dGltZXIxKTsKICAgICBxZW11X2dldF84cyhmLCAmcy0+cHJl Y29tcF90cmspOwpAQCAtODA3LDIwICs4MjQsMTggQEANCiAgICAgZmRjdHJsLT5zdGF0ZSAm PSB+RkRfQ1RSTF9JTlRSOwogfQogCi1zdGF0aWMgdm9pZCBmZGN0cmxfcmFpc2VfaXJxIChm ZGN0cmxfdCAqZmRjdHJsLCB1aW50OF90IHN0YXR1cykKK3N0YXRpYyB2b2lkIGZkY3RybF9y YWlzZV9pcnEgKGZkY3RybF90ICpmZGN0cmwpCiB7CiAgICAgLy8gU3BhcmMgbXV0YXRpb24K ICAgICBpZiAoZmRjdHJsLT5zdW40bSAmJiAhZmRjdHJsLT5kbWFfZW4pIHsKICAgICAgICAg ZmRjdHJsLT5zdGF0ZSAmPSB+RkRfQ1RSTF9CVVNZOwotICAgICAgICBmZGN0cmwtPmludF9z dGF0dXMgPSBzdGF0dXM7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgaWYgKH4oZmRj dHJsLT5zdGF0ZSAmIEZEX0NUUkxfSU5UUikpIHsKICAgICAgICAgcWVtdV9zZXRfaXJxKGZk Y3RybC0+aXJxLCAxKTsKICAgICAgICAgZmRjdHJsLT5zdGF0ZSB8PSBGRF9DVFJMX0lOVFI7 CiAgICAgfQotICAgIEZMT1BQWV9EUFJJTlRGKCJTZXQgaW50ZXJydXB0IHN0YXR1cyB0byAw eCUwMnhcbiIsIHN0YXR1cyk7Ci0gICAgZmRjdHJsLT5pbnRfc3RhdHVzID0gc3RhdHVzOwor ICAgIEZMT1BQWV9EUFJJTlRGKCJTZXQgaW50ZXJydXB0IHN0YXR1cyB0byAweCUwMnhcbiIs IGZkY3RybC0+c3RhdHVzMCk7CiB9CiAKIC8qIFJlc2V0IGNvbnRyb2xsZXIgKi8KQEAgLTg0 MCw4ICs4NTUsMTAgQEANCiAgICAgZm9yIChpID0gMDsgaSA8IE1BWF9GRDsgaSsrKQogICAg ICAgICBmZF9yZXNldCgmZmRjdHJsLT5kcml2ZXNbaV0pOwogICAgIGZkY3RybF9yZXNldF9m aWZvKGZkY3RybCk7Ci0gICAgaWYgKGRvX2lycSkKLSAgICAgICAgZmRjdHJsX3JhaXNlX2ly cShmZGN0cmwsIEZEX1NSMF9SRFlDSEcpOworICAgIGlmIChkb19pcnEpIHsKKyAgICAgICAg ZmRjdHJsLT5zdGF0dXMwIHw9IEZEX1NSMF9SRFlDSEc7DQorICAgICAgICBmZGN0cmxfcmFp c2VfaXJxKGZkY3RybCk7CisgICAgfQogfQogCiBzdGF0aWMgaW5saW5lIGZkcml2ZV90ICpk cnYwIChmZGN0cmxfdCAqZmRjdHJsKQpAQCAtMTA0Myw3ICsxMDYwLDcgQEANCiAgICAgZmRj dHJsLT5kYXRhX3BvcyA9IDA7CiAgICAgRkRfU0VUX1NUQVRFKGZkY3RybC0+ZGF0YV9zdGF0 ZSwgRkRfU1RBVEVfU1RBVFVTKTsKICAgICBpZiAoZG9faXJxKQotICAgICAgICBmZGN0cmxf cmFpc2VfaXJxKGZkY3RybCwgMHgwMCk7CisgICAgICAgIGZkY3RybF9yYWlzZV9pcnEoZmRj dHJsKTsKIH0KIAogLyogU2V0IGFuIGVycm9yOiB1bmltcGxlbWVudGVkL3Vua25vd24gY29t bWFuZCAqLwpAQCAtMTA2NSwxOCArMTA4MiwyMSBAQA0KIH0KIAogLyogQ2FsbGJhY2sgZm9y IHRyYW5zZmVyIGVuZCAoc3RvcCBvciBhYm9ydCkgKi8KLXN0YXRpYyB2b2lkIGZkY3RybF9z dG9wX3RyYW5zZmVyIChmZGN0cmxfdCAqZmRjdHJsLCB1aW50OF90IHN0YXR1czAsCi0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDhfdCBzdGF0dXMxLCB1aW50OF90 IHN0YXR1czIpCitzdGF0aWMgdm9pZCBmZGN0cmxfc3RvcF90cmFuc2ZlciAoZmRjdHJsX3Qg KmZkY3RybCkKIHsKICAgICBmZHJpdmVfdCAqY3VyX2RydjsKKyAgICB1aW50OF90IHN0YXR1 czAgPSBmZGN0cmwtPnN0YXR1czA7DQogCiAgICAgY3VyX2RydiA9IGdldF9jdXJfZHJ2KGZk Y3RybCk7CisgICAgLyogQWRkIGhlYWQgYW5kIGRyaXZlIHRvIHN0YXR1czAgKi8NCisgICAg c3RhdHVzMCB8PSAoY3VyX2Rydi0+aGVhZCA8PCAyKSB8IGZkY3RybC0+Y3VyX2RydjsNCisN CiAgICAgRkxPUFBZX0RQUklOVEYoInRyYW5zZmVyIHN0YXR1czogJTAyeCAlMDJ4ICUwMngg KCUwMngpXG4iLAotICAgICAgICAgICAgICAgICAgIHN0YXR1czAsIHN0YXR1czEsIHN0YXR1 czIsCi0gICAgICAgICAgICAgICAgICAgc3RhdHVzMCB8IChjdXJfZHJ2LT5oZWFkIDw8IDIp IHwgZmRjdHJsLT5jdXJfZHJ2KTsKLSAgICBmZGN0cmwtPmZpZm9bMF0gPSBzdGF0dXMwIHwg KGN1cl9kcnYtPmhlYWQgPDwgMikgfCBmZGN0cmwtPmN1cl9kcnY7Ci0gICAgZmRjdHJsLT5m aWZvWzFdID0gc3RhdHVzMTsKLSAgICBmZGN0cmwtPmZpZm9bMl0gPSBzdGF0dXMyOworICAg ICAgICAgICAgICAgICAgIGZkY3RybC0+c3RhdHVzMCwgZmRjdHJsLT5zdGF0dXMxLCBmZGN0 cmwtPnN0YXR1czIsCisgICAgICAgICAgICAgICAgICAgc3RhdHVzMCk7CisgICAgZmRjdHJs LT5maWZvWzBdID0gc3RhdHVzMDsKKyAgICBmZGN0cmwtPmZpZm9bMV0gPSBmZGN0cmwtPnN0 YXR1czE7CisgICAgZmRjdHJsLT5maWZvWzJdID0gZmRjdHJsLT5zdGF0dXMyOwogICAgIGZk Y3RybC0+Zmlmb1szXSA9IGN1cl9kcnYtPnRyYWNrOwogICAgIGZkY3RybC0+Zmlmb1s0XSA9 IGN1cl9kcnYtPmhlYWQ7CiAgICAgZmRjdHJsLT5maWZvWzVdID0gY3VyX2Rydi0+c2VjdDsK QEAgLTEwOTQsNyArMTExNCw2IEBADQogewogICAgIGZkcml2ZV90ICpjdXJfZHJ2OwogICAg IHVpbnQ4X3Qga2gsIGt0LCBrczsKLSAgICBpbnQgZGlkX3NlZWs7CiAKICAgICBmZGN0cmwt PmN1cl9kcnYgPSBmZGN0cmwtPmZpZm9bMV0gJiBGRF9ET1JfU0VMTUFTSzsKICAgICBjdXJf ZHJ2ID0gZ2V0X2N1cl9kcnYoZmRjdHJsKTsKQEAgLTExMDQsMzEgKzExMjMsMzUgQEANCiAg ICAgRkxPUFBZX0RQUklOVEYoIlN0YXJ0IHRyYW5zZmVyIGF0ICVkICVkICUwMnggJTAyeCAo JWQpXG4iLAogICAgICAgICAgICAgICAgICAgIGZkY3RybC0+Y3VyX2Rydiwga2gsIGt0LCBr cywKICAgICAgICAgICAgICAgICAgICBfZmRfc2VjdG9yKGtoLCBrdCwga3MsIGN1cl9kcnYt Pmxhc3Rfc2VjdCkpOwotICAgIGRpZF9zZWVrID0gMDsKLSAgICBzd2l0Y2ggKGZkX3NlZWso Y3VyX2Rydiwga2gsIGt0LCBrcywgZmRjdHJsLT5jb25maWcgJiAweDQwKSkgeworICAgIHN3 aXRjaCAoZmRfc2VlayhjdXJfZHJ2LCBraCwga3QsIGtzLCBmZGN0cmwtPmNvbmZpZyAmIEZE X0NPTkZJR19FSVMpKSB7CiAgICAgY2FzZSAyOgogICAgICAgICAvKiBzZWN0IHRvbyBiaWcg Ki8KLSAgICAgICAgZmRjdHJsX3N0b3BfdHJhbnNmZXIoZmRjdHJsLCBGRF9TUjBfQUJOVEVS TSwgMHgwMCwgMHgwMCk7CisgICAgICAgIGZkY3RybC0+c3RhdHVzMCB8PSBGRF9TUjBfQUJO VEVSTTsNCisgICAgICAgIGZkY3RybF9zdG9wX3RyYW5zZmVyKGZkY3RybCk7CiAgICAgICAg IGZkY3RybC0+Zmlmb1szXSA9IGt0OwogICAgICAgICBmZGN0cmwtPmZpZm9bNF0gPSBraDsK ICAgICAgICAgZmRjdHJsLT5maWZvWzVdID0ga3M7CiAgICAgICAgIHJldHVybjsKICAgICBj YXNlIDM6CiAgICAgICAgIC8qIHRyYWNrIHRvbyBiaWcgKi8KLSAgICAgICAgZmRjdHJsX3N0 b3BfdHJhbnNmZXIoZmRjdHJsLCBGRF9TUjBfQUJOVEVSTSwgMHg4MCwgMHgwMCk7CisgICAg ICAgIGZkY3RybC0+c3RhdHVzMCB8PSBGRF9TUjBfQUJOVEVSTTsNCisgICAgICAgIGZkY3Ry bC0+c3RhdHVzMSB8PSBGRF9TUjFfRUM7DQorICAgICAgICBmZGN0cmxfc3RvcF90cmFuc2Zl cihmZGN0cmwpOwogICAgICAgICBmZGN0cmwtPmZpZm9bM10gPSBrdDsKICAgICAgICAgZmRj dHJsLT5maWZvWzRdID0ga2g7CiAgICAgICAgIGZkY3RybC0+Zmlmb1s1XSA9IGtzOwogICAg ICAgICByZXR1cm47CiAgICAgY2FzZSA0OgogICAgICAgICAvKiBObyBzZWVrIGVuYWJsZWQg Ki8KLSAgICAgICAgZmRjdHJsX3N0b3BfdHJhbnNmZXIoZmRjdHJsLCBGRF9TUjBfQUJOVEVS TSwgMHgwMCwgMHgwMCk7CisgICAgICAgIGZkY3RybC0+c3RhdHVzMCB8PSBGRF9TUjBfQUJO VEVSTTsNCisgICAgICAgIGZkY3RybF9zdG9wX3RyYW5zZmVyKGZkY3RybCk7CiAgICAgICAg IGZkY3RybC0+Zmlmb1szXSA9IGt0OwogICAgICAgICBmZGN0cmwtPmZpZm9bNF0gPSBraDsK ICAgICAgICAgZmRjdHJsLT5maWZvWzVdID0ga3M7CiAgICAgICAgIHJldHVybjsKKyAgICBj YXNlIDA6DQogICAgIGNhc2UgMToKLSAgICAgICAgZGlkX3NlZWsgPSAxOworICAgICAgICBm ZGN0cmwtPnN0YXR1czAgfD0gRkRfU1IwX1NFRUs7DQogICAgICAgICBicmVhazsKICAgICBk ZWZhdWx0OgogICAgICAgICBicmVhazsKQEAgLTExNDEsMTAgKzExNjQsNiBAQA0KICAgICAg ICAgZmRjdHJsLT5kYXRhX3N0YXRlIHw9IEZEX1NUQVRFX01VTFRJOwogICAgIGVsc2UKICAg ICAgICAgZmRjdHJsLT5kYXRhX3N0YXRlICY9IH5GRF9TVEFURV9NVUxUSTsKLSAgICBpZiAo ZGlkX3NlZWspCi0gICAgICAgIGZkY3RybC0+ZGF0YV9zdGF0ZSB8PSBGRF9TVEFURV9TRUVL OwotICAgIGVsc2UKLSAgICAgICAgZmRjdHJsLT5kYXRhX3N0YXRlICY9IH5GRF9TVEFURV9T RUVLOwogICAgIGlmIChmZGN0cmwtPmZpZm9bNV0gPT0gMDApIHsKICAgICAgICAgZmRjdHJs LT5kYXRhX2xlbiA9IGZkY3RybC0+Zmlmb1s4XTsKICAgICB9IGVsc2UgewpAQCAtMTE4Myw3 ICsxMjAyLDcgQEANCiAgICAgfQogICAgIEZMT1BQWV9EUFJJTlRGKCJzdGFydCBub24tRE1B IHRyYW5zZmVyXG4iKTsKICAgICAvKiBJTyBiYXNlZCB0cmFuc2ZlcjogY2FsY3VsYXRlIGxl biAqLwotICAgIGZkY3RybF9yYWlzZV9pcnEoZmRjdHJsLCAweDAwKTsKKyAgICBmZGN0cmxf cmFpc2VfaXJxKGZkY3RybCk7CiAKICAgICByZXR1cm47CiB9CkBAIC0xMTk0LDcgKzEyMTMs OCBAQA0KICAgICAvKiBXZSBkb24ndCBoYW5kbGUgZGVsZXRlZCBkYXRhLAogICAgICAqIHNv IHdlIGRvbid0IHJldHVybiAqQU5ZVEhJTkcqCiAgICAgICovCi0gICAgZmRjdHJsX3N0b3Bf dHJhbnNmZXIoZmRjdHJsLCBGRF9TUjBfQUJOVEVSTSB8IEZEX1NSMF9TRUVLLCAweDAwLCAw eDAwKTsKKyAgICBmZGN0cmwtPnN0YXR1czAgfD0gRkRfU1IwX0FCTlRFUk07DQorICAgIGZk Y3RybF9zdG9wX3RyYW5zZmVyKGZkY3RybCk7DQogfQogCiAvKiBoYW5kbGVycyBmb3IgRE1B IHRyYW5zZmVycyAqLwpAQCAtMTIwNCw3ICsxMjI0LDYgQEANCiAgICAgZmRjdHJsX3QgKmZk Y3RybDsKICAgICBmZHJpdmVfdCAqY3VyX2RydjsKICAgICBpbnQgbGVuLCBzdGFydF9wb3Ms IHJlbF9wb3M7Ci0gICAgdWludDhfdCBzdGF0dXMwID0gMHgwMCwgc3RhdHVzMSA9IDB4MDAs IHN0YXR1czIgPSAweDAwOwogCiAgICAgZmRjdHJsID0gb3BhcXVlOwogICAgIGlmICghKGZk Y3RybC0+c3RhdGUgJiBGRF9DVFJMX0JVU1kpKSB7CkBAIC0xMjEyLDE2ICsxMjMxLDExIEBA DQogICAgICAgICByZXR1cm4gMDsKICAgICB9CiAgICAgY3VyX2RydiA9IGdldF9jdXJfZHJ2 KGZkY3RybCk7Ci0gICAgaWYgKGZkY3RybC0+ZGF0YV9kaXIgPT0gRkRfRElSX1NDQU5FIHx8 IGZkY3RybC0+ZGF0YV9kaXIgPT0gRkRfRElSX1NDQU5MIHx8Ci0gICAgICAgIGZkY3RybC0+ ZGF0YV9kaXIgPT0gRkRfRElSX1NDQU5IKQotICAgICAgICBzdGF0dXMyID0gMHgwNDsKICAg ICBpZiAoZG1hX2xlbiA+IGZkY3RybC0+ZGF0YV9sZW4pCiAgICAgICAgIGRtYV9sZW4gPSBm ZGN0cmwtPmRhdGFfbGVuOwogICAgIGlmIChjdXJfZHJ2LT5icyA9PSBOVUxMKSB7Ci0gICAg ICAgIGlmIChmZGN0cmwtPmRhdGFfZGlyID09IEZEX0RJUl9XUklURSkKLSAgICAgICAgICAg IGZkY3RybF9zdG9wX3RyYW5zZmVyKGZkY3RybCwgRkRfU1IwX0FCTlRFUk0gfCBGRF9TUjBf U0VFSywgMHgwMCwgMHgwMCk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIGZkY3RybF9z dG9wX3RyYW5zZmVyKGZkY3RybCwgRkRfU1IwX0FCTlRFUk0sIDB4MDAsIDB4MDApOworICAg ICAgICBmZGN0cmwtPnN0YXR1czAgfD0gRkRfU1IwX0FCTlRFUk07DQorICAgICAgICBmZGN0 cmxfc3RvcF90cmFuc2ZlcihmZGN0cmwpOw0KICAgICAgICAgbGVuID0gMDsKICAgICAgICAg Z290byB0cmFuc2Zlcl9lcnJvcjsKICAgICB9CkBAIC0xMjU4LDggKzEyNzIsOSBAQA0KICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgZmRjdHJsLT5kYXRhX3BvcywgbGVuKTsKICAg ICAgICAgICAgIGlmIChiZHJ2X3dyaXRlKGN1cl9kcnYtPmJzLCBmZF9zZWN0b3IoY3VyX2Ry diksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmZGN0cmwtPmZpZm8sIDEpIDwgMCkg ewotICAgICAgICAgICAgICAgIEZMT1BQWV9FUlJPUigid3JpdHRpbmcgc2VjdG9yICVkXG4i LCBmZF9zZWN0b3IoY3VyX2RydikpOwotICAgICAgICAgICAgICAgIGZkY3RybF9zdG9wX3Ry YW5zZmVyKGZkY3RybCwgRkRfU1IwX0FCTlRFUk0gfCBGRF9TUjBfU0VFSywgMHgwMCwgMHgw MCk7CisgICAgICAgICAgICAgICAgRkxPUFBZX0VSUk9SKCJ3cml0aW5nIHNlY3RvciAlZFxu IiwgZmRfc2VjdG9yKGN1cl9kcnYpKTsKKyAgICAgICAgICAgICAgICBmZGN0cmwtPnN0YXR1 czAgfD0gRkRfU1IwX0FCTlRFUk07DQorICAgICAgICAgICAgICAgIGZkY3RybF9zdG9wX3Ry YW5zZmVyKGZkY3RybCk7DQogICAgICAgICAgICAgICAgIGdvdG8gdHJhbnNmZXJfZXJyb3I7 CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBicmVhazsKQEAgLTEyNzEsMTQgKzEyODYs MTYgQEANCiAgICAgICAgICAgICAgICAgRE1BX3JlYWRfbWVtb3J5IChuY2hhbiwgdG1wYnVm LCBmZGN0cmwtPmRhdGFfcG9zLCBsZW4pOwogICAgICAgICAgICAgICAgIHJldCA9IG1lbWNt cCh0bXBidWYsIGZkY3RybC0+ZmlmbyArIHJlbF9wb3MsIGxlbik7CiAgICAgICAgICAgICAg ICAgaWYgKHJldCA9PSAwKSB7Ci0gICAgICAgICAgICAgICAgICAgIHN0YXR1czIgPSAweDA4 OworICAgICAgICAgICAgICAgICAgICBmZGN0cmwtPnN0YXR1czIgfD0gRkRfU1IyX1NFSDsN CisgICAgICAgICAgICAgICAgICAgIGZkY3RybC0+c3RhdHVzMiAmPSB+RkRfU1IyX1NOUzsN CiAgICAgICAgICAgICAgICAgICAgIGdvdG8gZW5kX3RyYW5zZmVyOwogICAgICAgICAgICAg ICAgIH0KICAgICAgICAgICAgICAgICBpZiAoKHJldCA8IDAgJiYgZmRjdHJsLT5kYXRhX2Rp ciA9PSBGRF9ESVJfU0NBTkwpIHx8CiAgICAgICAgICAgICAgICAgICAgIChyZXQgPiAwICYm IGZkY3RybC0+ZGF0YV9kaXIgPT0gRkRfRElSX1NDQU5IKSkgewotICAgICAgICAgICAgICAg ICAgICBzdGF0dXMyID0gMHgwMDsKKyAgICAgICAgICAgICAgICAgICAgZmRjdHJsLT5zdGF0 dXMyICY9IH5GRF9TUjJfU05TOw0KICAgICAgICAgICAgICAgICAgICAgZ290byBlbmRfdHJh bnNmZXI7CiAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGZkY3RybC0+c3Rh dHVzMiB8PSBGRF9TUjJfU05TOw0KICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGJyZWFr OwogICAgICAgICB9CkBAIC0xMzE1LDIxICsxMzMyLDE1IEBADQogICAgICAgICAgICAgfSBl bHNlIHsKICAgICAgICAgICAgICAgICBjdXJfZHJ2LT5zZWN0Kys7CiAgICAgICAgICAgICB9 CisgICAgICAgICAgICBmZGN0cmwtPnN0YXR1czAgfD0gRkRfU1IwX1NFRUs7CiAgICAgICAg IH0KICAgICB9CiAgZW5kX3RyYW5zZmVyOgogICAgIGxlbiA9IGZkY3RybC0+ZGF0YV9wb3Mg LSBzdGFydF9wb3M7CiAgICAgRkxPUFBZX0RQUklOVEYoImVuZCB0cmFuc2ZlciAlZCAlZCAl ZFxuIiwKICAgICAgICAgICAgICAgICAgICBmZGN0cmwtPmRhdGFfcG9zLCBsZW4sIGZkY3Ry bC0+ZGF0YV9sZW4pOwotICAgIGlmIChmZGN0cmwtPmRhdGFfZGlyID09IEZEX0RJUl9TQ0FO RSB8fAotICAgICAgICBmZGN0cmwtPmRhdGFfZGlyID09IEZEX0RJUl9TQ0FOTCB8fAotICAg ICAgICBmZGN0cmwtPmRhdGFfZGlyID09IEZEX0RJUl9TQ0FOSCkKLSAgICAgICAgc3RhdHVz MiA9IDB4MDg7Ci0gICAgaWYgKEZEX0RJRF9TRUVLKGZkY3RybC0+ZGF0YV9zdGF0ZSkpCi0g ICAgICAgIHN0YXR1czAgfD0gRkRfU1IwX1NFRUs7CiAgICAgZmRjdHJsLT5kYXRhX2xlbiAt PSBsZW47Ci0gICAgLy8gICAgaWYgKGZkY3RybC0+ZGF0YV9sZW4gPT0gMCkKLSAgICBmZGN0 cmxfc3RvcF90cmFuc2ZlcihmZGN0cmwsIHN0YXR1czAsIHN0YXR1czEsIHN0YXR1czIpOwor ICAgIGZkY3RybF9zdG9wX3RyYW5zZmVyKGZkY3RybCk7DQogIHRyYW5zZmVyX2Vycm9yOgog CiAgICAgcmV0dXJuIGxlbjsKQEAgLTEzNjUsNyArMTM3Niw3IEBADQogICAgICAgICAgKiB0 aGVuIGZyb20gc3RhdHVzIG1vZGUgdG8gY29tbWFuZCBtb2RlCiAgICAgICAgICAqLwogICAg ICAgICBpZiAoRkRfU1RBVEUoZmRjdHJsLT5kYXRhX3N0YXRlKSA9PSBGRF9TVEFURV9EQVRB KSB7Ci0gICAgICAgICAgICBmZGN0cmxfc3RvcF90cmFuc2ZlcihmZGN0cmwsIEZEX1NSMF9T RUVLLCAweDAwLCAweDAwKTsKKyAgICAgICAgICAgIGZkY3RybF9zdG9wX3RyYW5zZmVyKGZk Y3RybCk7CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICBmZGN0cmxfcmVzZXRfZmlm byhmZGN0cmwpOwogICAgICAgICAgICAgZmRjdHJsX3Jlc2V0X2lycShmZGN0cmwpOwpAQCAt MTM4MCw3ICsxMzkxLDYgQEANCiB7CiAgICAgZmRyaXZlX3QgKmN1cl9kcnY7CiAgICAgdWlu dDhfdCBraCwga3QsIGtzOwotICAgIGludCBkaWRfc2VlazsKIAogICAgIGZkY3RybC0+Y3Vy X2RydiA9IGZkY3RybC0+Zmlmb1sxXSAmIEZEX0RPUl9TRUxNQVNLOwogICAgIGN1cl9kcnYg PSBnZXRfY3VyX2RydihmZGN0cmwpOwpAQCAtMTM5MCwzMiArMTQwMCwzNSBAQA0KICAgICBG TE9QUFlfRFBSSU5URigiZm9ybWF0IHNlY3RvciBhdCAlZCAlZCAlMDJ4ICUwMnggKCVkKVxu IiwKICAgICAgICAgICAgICAgICAgICBmZGN0cmwtPmN1cl9kcnYsIGtoLCBrdCwga3MsCiAg ICAgICAgICAgICAgICAgICAgX2ZkX3NlY3RvcihraCwga3QsIGtzLCBjdXJfZHJ2LT5sYXN0 X3NlY3QpKTsKLSAgICBkaWRfc2VlayA9IDA7CiAgICAgc3dpdGNoIChmZF9zZWVrKGN1cl9k cnYsIGtoLCBrdCwga3MsIGZkY3RybC0+Y29uZmlnICYgRkRfQ09ORklHX0VJUykpIHsKICAg ICBjYXNlIDI6CiAgICAgICAgIC8qIHNlY3QgdG9vIGJpZyAqLwotICAgICAgICBmZGN0cmxf c3RvcF90cmFuc2ZlcihmZGN0cmwsIEZEX1NSMF9BQk5URVJNLCAweDAwLCAweDAwKTsKKyAg ICAgICAgZmRjdHJsLT5zdGF0dXMwIHw9IEZEX1NSMF9BQk5URVJNOw0KKyAgICAgICAgZmRj dHJsX3N0b3BfdHJhbnNmZXIoZmRjdHJsKTsNCiAgICAgICAgIGZkY3RybC0+Zmlmb1szXSA9 IGt0OwogICAgICAgICBmZGN0cmwtPmZpZm9bNF0gPSBraDsKICAgICAgICAgZmRjdHJsLT5m aWZvWzVdID0ga3M7CiAgICAgICAgIHJldHVybjsKICAgICBjYXNlIDM6CiAgICAgICAgIC8q IHRyYWNrIHRvbyBiaWcgKi8KLSAgICAgICAgZmRjdHJsX3N0b3BfdHJhbnNmZXIoZmRjdHJs LCBGRF9TUjBfQUJOVEVSTSwgMHg4MCwgMHgwMCk7CisgICAgICAgIGZkY3RybC0+c3RhdHVz MCB8PSBGRF9TUjBfQUJOVEVSTTsNCisgICAgICAgIGZkY3RybC0+c3RhdHVzMSB8PSBGRF9T UjFfRUM7DQorICAgICAgICBmZGN0cmxfc3RvcF90cmFuc2ZlcihmZGN0cmwpOw0KICAgICAg ICAgZmRjdHJsLT5maWZvWzNdID0ga3Q7CiAgICAgICAgIGZkY3RybC0+Zmlmb1s0XSA9IGto OwogICAgICAgICBmZGN0cmwtPmZpZm9bNV0gPSBrczsKICAgICAgICAgcmV0dXJuOwogICAg IGNhc2UgNDoKICAgICAgICAgLyogTm8gc2VlayBlbmFibGVkICovCi0gICAgICAgIGZkY3Ry bF9zdG9wX3RyYW5zZmVyKGZkY3RybCwgRkRfU1IwX0FCTlRFUk0sIDB4MDAsIDB4MDApOwor ICAgICAgICBmZGN0cmwtPnN0YXR1czAgfD0gRkRfU1IwX0FCTlRFUk07DQorICAgICAgICBm ZGN0cmxfc3RvcF90cmFuc2ZlcihmZGN0cmwpOw0KICAgICAgICAgZmRjdHJsLT5maWZvWzNd ID0ga3Q7CiAgICAgICAgIGZkY3RybC0+Zmlmb1s0XSA9IGtoOwogICAgICAgICBmZGN0cmwt PmZpZm9bNV0gPSBrczsKICAgICAgICAgcmV0dXJuOworICAgIGNhc2UgMDoNCiAgICAgY2Fz ZSAxOgotICAgICAgICBkaWRfc2VlayA9IDE7Ci0gICAgICAgIGZkY3RybC0+ZGF0YV9zdGF0 ZSB8PSBGRF9TVEFURV9TRUVLOworICAgICAgICBmZGN0cmwtPnN0YXR1czAgfD0gRkRfU1Iw X1NFRUs7DQogICAgICAgICBicmVhazsKICAgICBkZWZhdWx0OgogICAgICAgICBicmVhazsK QEAgLTE0MjQsMTUgKzE0MzcsMTMgQEANCiAgICAgaWYgKGN1cl9kcnYtPmJzID09IE5VTEwg fHwKICAgICAgICAgYmRydl93cml0ZShjdXJfZHJ2LT5icywgZmRfc2VjdG9yKGN1cl9kcnYp LCBmZGN0cmwtPmZpZm8sIDEpIDwgMCkgewogICAgICAgICBGTE9QUFlfRVJST1IoImZvcm1h dHRpbmcgc2VjdG9yICVkXG4iLCBmZF9zZWN0b3IoY3VyX2RydikpOwotICAgICAgICBmZGN0 cmxfc3RvcF90cmFuc2ZlcihmZGN0cmwsIEZEX1NSMF9BQk5URVJNIHwgRkRfU1IwX1NFRUss IDB4MDAsIDB4MDApOworICAgICAgICBmZGN0cmwtPnN0YXR1czAgfD0gRkRfU1IwX0FCTlRF Uk07DQorICAgICAgICBmZGN0cmxfc3RvcF90cmFuc2ZlcihmZGN0cmwpOw0KICAgICB9IGVs c2UgewogICAgICAgICBpZiAoY3VyX2Rydi0+c2VjdCA9PSBjdXJfZHJ2LT5sYXN0X3NlY3Qp IHsKICAgICAgICAgICAgIGZkY3RybC0+ZGF0YV9zdGF0ZSAmPSB+RkRfU1RBVEVfRk9STUFU OwogICAgICAgICAgICAgLyogTGFzdCBzZWN0b3IgZG9uZSAqLwotICAgICAgICAgICAgaWYg KEZEX0RJRF9TRUVLKGZkY3RybC0+ZGF0YV9zdGF0ZSkpCi0gICAgICAgICAgICAgICAgZmRj dHJsX3N0b3BfdHJhbnNmZXIoZmRjdHJsLCBGRF9TUjBfU0VFSywgMHgwMCwgMHgwMCk7Ci0g ICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgZmRjdHJsX3N0b3BfdHJhbnNmZXIo ZmRjdHJsLCAweDAwLCAweDAwLCAweDAwKTsKKyAgICAgICAgICAgIGZkY3RybF9zdG9wX3Ry YW5zZmVyKGZkY3RybCk7DQogICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgLyogTW9y ZSB0byBkbyAqLwogICAgICAgICAgICAgZmRjdHJsLT5kYXRhX3BvcyA9IDA7CkBAIC0xNTQ2 LDcgKzE1NTcsNiBAQA0KICAgICAgICAgZmRjdHJsLT5kYXRhX3N0YXRlIHw9IEZEX1NUQVRF X01VTFRJOwogICAgIGVsc2UKICAgICAgICAgZmRjdHJsLT5kYXRhX3N0YXRlICY9IH5GRF9T VEFURV9NVUxUSTsKLSAgICBmZGN0cmwtPmRhdGFfc3RhdGUgJj0gfkZEX1NUQVRFX1NFRUs7 CiAgICAgY3VyX2Rydi0+YnBzID0KICAgICAgICAgZmRjdHJsLT5maWZvWzJdID4gNyA/IDE2 Mzg0IDogMTI4IDw8IGZkY3RybC0+Zmlmb1syXTsKICNpZiAwCkBAIC0xNTYxLDcgKzE1NzEs NyBAQA0KICAgICAgKiB0aGUgc2VjdG9yIHdpdGggdGhlIHNwZWNpZmllZCBmaWxsIGJ5dGUK ICAgICAgKi8KICAgICBmZGN0cmwtPmRhdGFfc3RhdGUgJj0gfkZEX1NUQVRFX0ZPUk1BVDsK LSAgICBmZGN0cmxfc3RvcF90cmFuc2ZlcihmZGN0cmwsIDB4MDAsIDB4MDAsIDB4MDApOwor ICAgIGZkY3RybF9zdG9wX3RyYW5zZmVyKGZkY3RybCk7DQogfQogCiBzdGF0aWMgdm9pZCBm ZGN0cmxfaGFuZGxlX3NwZWNpZnkgKGZkY3RybF90ICpmZGN0cmwsIGludCBkaXJlY3Rpb24p CkBAIC0xNTk4LDI3ICsxNjA4LDIwIEBADQogICAgIGZkX3JlY2FsaWJyYXRlKGN1cl9kcnYp OwogICAgIGZkY3RybF9yZXNldF9maWZvKGZkY3RybCk7CiAgICAgLyogUmFpc2UgSW50ZXJy dXB0ICovCi0gICAgZmRjdHJsX3JhaXNlX2lycShmZGN0cmwsIEZEX1NSMF9TRUVLKTsKKyAg ICBmZGN0cmwtPnN0YXR1czAgfD0gRkRfU1IwX1NFRUs7DQorICAgIGZkY3RybF9yYWlzZV9p cnEoZmRjdHJsKTsNCiB9CiAKIHN0YXRpYyB2b2lkIGZkY3RybF9oYW5kbGVfc2Vuc2VfaW50 ZXJydXB0X3N0YXR1cyAoZmRjdHJsX3QgKmZkY3RybCwgaW50IGRpcmVjdGlvbikKIHsKICAg ICBmZHJpdmVfdCAqY3VyX2RydiA9IGdldF9jdXJfZHJ2KGZkY3RybCk7CiAKLSNpZiAwCiAg ICAgZmRjdHJsLT5maWZvWzBdID0KLSAgICAgICAgZmRjdHJsLT5pbnRfc3RhdHVzIHwgKGN1 cl9kcnYtPmhlYWQgPDwgMikgfCBmZGN0cmwtPmN1cl9kcnY7Ci0jZWxzZQotICAgIC8qIFhY WDogaW50X3N0YXR1cyBoYW5kbGluZyBpcyBicm9rZW4gZm9yIHJlYWQvd3JpdGUKLSAgICAg ICBjb21tYW5kcywgc28gd2UgZG8gdGhpcyBoYWNrLiBJdCBzaG91bGQgYmUgc3VwcHJlc3Nl ZAotICAgICAgIEFTQVAgKi8KLSAgICBmZGN0cmwtPmZpZm9bMF0gPQotICAgICAgICAweDIw IHwgKGN1cl9kcnYtPmhlYWQgPDwgMikgfCBmZGN0cmwtPmN1cl9kcnY7Ci0jZW5kaWYKKyAg ICAgICAgZmRjdHJsLT5zdGF0dXMwIHwgKGN1cl9kcnYtPmhlYWQgPDwgMikgfCBmZGN0cmwt PmN1cl9kcnY7CiAgICAgZmRjdHJsLT5maWZvWzFdID0gY3VyX2Rydi0+dHJhY2s7CiAgICAg ZmRjdHJsX3NldF9maWZvKGZkY3RybCwgMiwgMCk7CiAgICAgZmRjdHJsX3Jlc2V0X2lycShm ZGN0cmwpOwotICAgIGZkY3RybC0+aW50X3N0YXR1cyA9IEZEX1NSMF9SRFlDSEc7CisgICAg ZmRjdHJsLT5zdGF0dXMwIHw9IEZEX1NSMF9SRFlDSEc7CiB9CiAKIHN0YXRpYyB2b2lkIGZk Y3RybF9oYW5kbGVfc2VlayAoZmRjdHJsX3QgKmZkY3RybCwgaW50IGRpcmVjdGlvbikKQEAg LTE2MzMsMTMgKzE2MzYsMTMgQEANCiAgICAgZWxzZQogICAgICAgICBjdXJfZHJ2LT5kaXIg PSAwOwogICAgIGZkY3RybF9yZXNldF9maWZvKGZkY3RybCk7Ci0gICAgaWYgKGZkY3RybC0+ Zmlmb1syXSA+IGN1cl9kcnYtPm1heF90cmFjaykgewotICAgICAgICBmZGN0cmxfcmFpc2Vf aXJxKGZkY3RybCwgRkRfU1IwX0FCTlRFUk0gfCBGRF9TUjBfU0VFSyk7Ci0gICAgfSBlbHNl IHsKKyAgICBmZGN0cmwtPnN0YXR1czAgfD0gRkRfU1IwX1NFRUs7CisgICAgaWYgKGZkY3Ry bC0+Zmlmb1syXSA+IGN1cl9kcnYtPm1heF90cmFjaykKKyAgICAgICAgZmRjdHJsLT5zdGF0 dXMwIHw9IEZEX1NSMF9BQk5URVJNOworICAgIGVsc2UKICAgICAgICAgY3VyX2Rydi0+dHJh Y2sgPSBmZGN0cmwtPmZpZm9bMl07Ci0gICAgICAgIC8qIFJhaXNlIEludGVycnVwdCAqLwot ICAgICAgICBmZGN0cmxfcmFpc2VfaXJxKGZkY3RybCwgRkRfU1IwX1NFRUspOwotICAgIH0K KyAgICAvKiBSYWlzZSBJbnRlcnJ1cHQgKi8KKyAgICBmZGN0cmxfcmFpc2VfaXJxKGZkY3Ry bCk7CiB9CiAKIHN0YXRpYyB2b2lkIGZkY3RybF9oYW5kbGVfcGVycGVuZGljdWxhcl9tb2Rl IChmZGN0cmxfdCAqZmRjdHJsLCBpbnQgZGlyZWN0aW9uKQpAQCAtMTcwOSw3ICsxNzEyLDgg QEANCiAgICAgICAgIGN1cl9kcnYtPnRyYWNrICs9IGZkY3RybC0+Zmlmb1syXTsKICAgICB9 CiAgICAgZmRjdHJsX3Jlc2V0X2ZpZm8oZmRjdHJsKTsKLSAgICBmZGN0cmxfcmFpc2VfaXJx KGZkY3RybCwgRkRfU1IwX1NFRUspOworICAgIGZkY3RybC0+c3RhdHVzMCB8PSBGRF9TUjBf U0VFSzsNCisgICAgZmRjdHJsX3JhaXNlX2lycShmZGN0cmwpOw0KIH0KIAogc3RhdGljIHZv aWQgZmRjdHJsX2hhbmRsZV9yZWxhdGl2ZV9zZWVrX2luIChmZGN0cmxfdCAqZmRjdHJsLCBp bnQgZGlyZWN0aW9uKQpAQCAtMTcyNyw3ICsxNzMxLDggQEANCiAgICAgfQogICAgIGZkY3Ry bF9yZXNldF9maWZvKGZkY3RybCk7CiAgICAgLyogUmFpc2UgSW50ZXJydXB0ICovCi0gICAg ZmRjdHJsX3JhaXNlX2lycShmZGN0cmwsIEZEX1NSMF9TRUVLKTsKKyAgICBmZGN0cmwtPnN0 YXR1czAgfD0gRkRfU1IwX1NFRUs7DQorICAgIGZkY3RybF9yYWlzZV9pcnEoZmRjdHJsKTsK IH0KIAogc3RhdGljIHZvaWQgZmRjdHJsX3dyaXRlX2RhdGEgKGZkY3RybF90ICpmZGN0cmws IHVpbnQzMl90IHZhbHVlKQpAQCAtMTc5OCw3ICsxODAzLDcgQEANCiAgICAgICAgICAqIHRo ZW4gZnJvbSBzdGF0dXMgbW9kZSB0byBjb21tYW5kIG1vZGUKICAgICAgICAgICovCiAgICAg ICAgIGlmIChGRF9TVEFURShmZGN0cmwtPmRhdGFfc3RhdGUpID09IEZEX1NUQVRFX0RBVEEp Ci0gICAgICAgICAgICBmZGN0cmxfc3RvcF90cmFuc2ZlcihmZGN0cmwsIEZEX1NSMF9TRUVL LCAweDAwLCAweDAwKTsKKyAgICAgICAgICAgIGZkY3RybF9zdG9wX3RyYW5zZmVyKGZkY3Ry bCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgaWYgKGZkY3RybC0+ZGF0YV9wb3Mg PT0gMCkgewpAQCAtMTgyOCw2ICsxODMzLDE1IEBADQogICAgICAgICAgICAgcmV0dXJuOwog ICAgICAgICB9CiAKKyAgICAgICAgaWYgKGZkY3RybC0+Zmlmb1swXSAhPSBGRF9DTURfU0VO U0VfSU5URVJSVVBUX1NUQVRVUykNCisgICAgICAgIHsNCisgICAgICAgICAgICAvKiBSZXNl dCBzdGF0dXMwLCBleGNlcHQgZm9yIFNFTlNFX0lOVEVSUlVQVF9TVEFUVVMNCisgICAgICAg ICAgICAgKiB3aGljaCByZXR1cm5zIGl0ICovDQorICAgICAgICAgICAgZmRjdHJsLT5zdGF0 dXMwID0gMDsNCisgICAgICAgIH0NCisgICAgICAgIGZkY3RybC0+c3RhdHVzMSA9IDA7DQor ICAgICAgICBmZGN0cmwtPnN0YXR1czIgPSAwOw0KKw0KICAgICAgICAgZm9yIChwb3MgPSAw OyBwb3MgPCBzaXplb2YoY29tbWFuZHMpL3NpemVvZihjb21tYW5kc1swXSk7IHBvcysrKSB7 CiAgICAgICAgICAgICBpZiAoKGZkY3RybC0+Zmlmb1swXSAmIGNvbW1hbmRzW3Bvc10ubWFz aykgPT0gY29tbWFuZHNbcG9zXS52YWx1ZSkgewogICAgICAgICAgICAgICAgIEZMT1BQWV9E UFJJTlRGKCJ0cmVhdCAlcyBjb21tYW5kXG4iLCBjb21tYW5kc1twb3NdLm5hbWUpOwpAQCAt MTg1MCw1ICsxODY0LDUgQEANCiAgICAgaWYgKGN1cl9kcnYtPmxhc3Rfc2VjdCAhPSAwKSB7 CiAgICAgICAgIGN1cl9kcnYtPnNlY3QgPSAoY3VyX2Rydi0+c2VjdCAlIGN1cl9kcnYtPmxh c3Rfc2VjdCkgKyAxOwogICAgIH0KLSAgICBmZGN0cmxfc3RvcF90cmFuc2ZlcihmZGN0cmws IDB4MDAsIDB4MDAsIDB4MDApOworICAgIGZkY3RybF9zdG9wX3RyYW5zZmVyKGZkY3RybCk7 DQogfQo= --------------030201000502040907050803--