From: =?UTF-8?q?Marek=20Ol=C5=A1=C3=A1k?= Subject: [PATCH] drm/radeon/kms: optimize CS state checking for r100->r500 Date: Sat, 12 Feb 2011 19:21:35 +0100 Message-ID: <1297534895-1964-1-git-send-email-maraeo@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-fx0-f49.google.com (mail-fx0-f49.google.com [209.85.161.49]) by gabe.freedesktop.org (Postfix) with ESMTP id 9C01B9E746 for ; Sat, 12 Feb 2011 10:21:58 -0800 (PST) Received: by fxm19 with SMTP id 19so3917366fxm.36 for ; Sat, 12 Feb 2011 10:21:57 -0800 (PST) List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: dri-devel-bounces+sf-dri-devel=m.gmane.org@lists.freedesktop.org Errors-To: dri-devel-bounces+sf-dri-devel=m.gmane.org@lists.freedesktop.org To: dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org VGhlIGNvbG9yYnVmZmVyLCB6YnVmZmVyLCBhbmQgdGV4dHVyZSBzdGF0ZXMgYXJlIGNoZWNrZWQg b25seSBvbmNlIHdoZW4KdGhleSBnZXQgY2hhbmdlZC4gVGhpcyBpbXByb3ZlcyBwZXJmb3JtYW5j ZSBpbiB0aGUgYXBwcyB3aGljaCBlbWl0CmxvdHMgb2YgZHJhdyBwYWNrZXRzIGFuZCBmZXcgc3Rh dGUgY2hhbmdlcy4KClRoaXMgZHJvcHMgcGVyZm9ybWFuY2UgaW4gZ2x4Z2VhcnMgYnkgYSAxJSBv ciBzbywgYnV0IGdseGdlYXJzIGlzIG5vdAphIGJlbmNobWFyayB3ZSBjYXJlIGFib3V0LgpUaGUg dGltZSBzcGVudCBpbiB0aGUga2VybmVsIHdoZW4gcnVubmluZyBUb3JjcyBkcm9wcGVkIGZyb20g MzMlIHRvIDIzJQphbmQgdGhlIGZyYW1lIHJhdGUgaXMgaGlnaGVyLCB3aGljaCBpcyBhIGdvb2Qg dGhpbmcuCgpyNjAwIG1pZ2h0IG5lZWQgc29tZXRoaW5nIGxpa2UgdGhpcyBhcyB3ZWxsLgoKU2ln bmVkLW9mZi1ieTogTWFyZWsgT2zFocOhayA8bWFyYWVvQGdtYWlsLmNvbT4KLS0tCiBkcml2ZXJz L2dwdS9kcm0vcmFkZW9uL3IxMDAuYyAgICAgICB8ICAgNDAgKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKy0tLQogZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yMTAwX3RyYWNrLmggfCAgIDEx ICsrKy0tLS0tLQogZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yMjAwLmMgICAgICAgfCAgIDE4ICsr KysrKysrKysrKysrKwogZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yMzAwLmMgICAgICAgfCAgIDIw ICsrKysrKysrKysrKysrKystCiA0IGZpbGVzIGNoYW5nZWQsIDc3IGluc2VydGlvbnMoKyksIDEy IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcjEwMC5j IGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yMTAwLmMKaW5kZXggNWYxNTgyMC4uZmRmNGJjNiAx MDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yMTAwLmMKKysrIGIvZHJpdmVycy9n cHUvZHJtL3JhZGVvbi9yMTAwLmMKQEAgLTE0MjcsNiArMTQyNyw3IEBAIHN0YXRpYyBpbnQgcjEw MF9wYWNrZXQwX2NoZWNrKHN0cnVjdCByYWRlb25fY3NfcGFyc2VyICpwLAogCQl9CiAJCXRyYWNr LT56Yi5yb2JqID0gcmVsb2MtPnJvYmo7CiAJCXRyYWNrLT56Yi5vZmZzZXQgPSBpZHhfdmFsdWU7 CisJCXRyYWNrLT56Yl9kaXJ0eSA9IHRydWU7CiAJCWliW2lkeF0gPSBpZHhfdmFsdWUgKyAoKHUz MilyZWxvYy0+bG9iai5ncHVfb2Zmc2V0KTsKIAkJYnJlYWs7CiAJY2FzZSBSQURFT05fUkIzRF9D T0xPUk9GRlNFVDoKQEAgLTE0MzksNiArMTQ0MCw3IEBAIHN0YXRpYyBpbnQgcjEwMF9wYWNrZXQw X2NoZWNrKHN0cnVjdCByYWRlb25fY3NfcGFyc2VyICpwLAogCQl9CiAJCXRyYWNrLT5jYlswXS5y b2JqID0gcmVsb2MtPnJvYmo7CiAJCXRyYWNrLT5jYlswXS5vZmZzZXQgPSBpZHhfdmFsdWU7CisJ CXRyYWNrLT5jYl9kaXJ0eSA9IHRydWU7CiAJCWliW2lkeF0gPSBpZHhfdmFsdWUgKyAoKHUzMily ZWxvYy0+bG9iai5ncHVfb2Zmc2V0KTsKIAkJYnJlYWs7CiAJY2FzZSBSQURFT05fUFBfVFhPRkZT RVRfMDoKQEAgLTE0NTQsNiArMTQ1Niw3IEBAIHN0YXRpYyBpbnQgcjEwMF9wYWNrZXQwX2NoZWNr KHN0cnVjdCByYWRlb25fY3NfcGFyc2VyICpwLAogCQl9CiAJCWliW2lkeF0gPSBpZHhfdmFsdWUg KyAoKHUzMilyZWxvYy0+bG9iai5ncHVfb2Zmc2V0KTsKIAkJdHJhY2stPnRleHR1cmVzW2ldLnJv YmogPSByZWxvYy0+cm9iajsKKwkJdHJhY2stPnRleF9kaXJ0eSA9IHRydWU7CiAJCWJyZWFrOwog CWNhc2UgUkFERU9OX1BQX0NVQklDX09GRlNFVF9UMF8wOgogCWNhc2UgUkFERU9OX1BQX0NVQklD X09GRlNFVF9UMF8xOgpAQCAtMTQ3MSw2ICsxNDc0LDcgQEAgc3RhdGljIGludCByMTAwX3BhY2tl dDBfY2hlY2soc3RydWN0IHJhZGVvbl9jc19wYXJzZXIgKnAsCiAJCXRyYWNrLT50ZXh0dXJlc1sw XS5jdWJlX2luZm9baV0ub2Zmc2V0ID0gaWR4X3ZhbHVlOwogCQlpYltpZHhdID0gaWR4X3ZhbHVl ICsgKCh1MzIpcmVsb2MtPmxvYmouZ3B1X29mZnNldCk7CiAJCXRyYWNrLT50ZXh0dXJlc1swXS5j dWJlX2luZm9baV0ucm9iaiA9IHJlbG9jLT5yb2JqOworCQl0cmFjay0+dGV4X2RpcnR5ID0gdHJ1 ZTsKIAkJYnJlYWs7CiAJY2FzZSBSQURFT05fUFBfQ1VCSUNfT0ZGU0VUX1QxXzA6CiAJY2FzZSBS QURFT05fUFBfQ1VCSUNfT0ZGU0VUX1QxXzE6CkBAIC0xNDg4LDYgKzE0OTIsNyBAQCBzdGF0aWMg aW50IHIxMDBfcGFja2V0MF9jaGVjayhzdHJ1Y3QgcmFkZW9uX2NzX3BhcnNlciAqcCwKIAkJdHJh Y2stPnRleHR1cmVzWzFdLmN1YmVfaW5mb1tpXS5vZmZzZXQgPSBpZHhfdmFsdWU7CiAJCWliW2lk eF0gPSBpZHhfdmFsdWUgKyAoKHUzMilyZWxvYy0+bG9iai5ncHVfb2Zmc2V0KTsKIAkJdHJhY2st PnRleHR1cmVzWzFdLmN1YmVfaW5mb1tpXS5yb2JqID0gcmVsb2MtPnJvYmo7CisJCXRyYWNrLT50 ZXhfZGlydHkgPSB0cnVlOwogCQlicmVhazsKIAljYXNlIFJBREVPTl9QUF9DVUJJQ19PRkZTRVRf VDJfMDoKIAljYXNlIFJBREVPTl9QUF9DVUJJQ19PRkZTRVRfVDJfMToKQEAgLTE1MDUsOSArMTUx MCwxMiBAQCBzdGF0aWMgaW50IHIxMDBfcGFja2V0MF9jaGVjayhzdHJ1Y3QgcmFkZW9uX2NzX3Bh cnNlciAqcCwKIAkJdHJhY2stPnRleHR1cmVzWzJdLmN1YmVfaW5mb1tpXS5vZmZzZXQgPSBpZHhf dmFsdWU7CiAJCWliW2lkeF0gPSBpZHhfdmFsdWUgKyAoKHUzMilyZWxvYy0+bG9iai5ncHVfb2Zm c2V0KTsKIAkJdHJhY2stPnRleHR1cmVzWzJdLmN1YmVfaW5mb1tpXS5yb2JqID0gcmVsb2MtPnJv Ymo7CisJCXRyYWNrLT50ZXhfZGlydHkgPSB0cnVlOwogCQlicmVhazsKIAljYXNlIFJBREVPTl9S RV9XSURUSF9IRUlHSFQ6CiAJCXRyYWNrLT5tYXh5ID0gKChpZHhfdmFsdWUgPj4gMTYpICYgMHg3 RkYpOworCQl0cmFjay0+Y2JfZGlydHkgPSB0cnVlOworCQl0cmFjay0+emJfZGlydHkgPSB0cnVl OwogCQlicmVhazsKIAljYXNlIFJBREVPTl9SQjNEX0NPTE9SUElUQ0g6CiAJCXIgPSByMTAwX2Nz X3BhY2tldF9uZXh0X3JlbG9jKHAsICZyZWxvYyk7CkBAIC0xNTI4LDkgKzE1MzYsMTEgQEAgc3Rh dGljIGludCByMTAwX3BhY2tldDBfY2hlY2soc3RydWN0IHJhZGVvbl9jc19wYXJzZXIgKnAsCiAJ CWliW2lkeF0gPSB0bXA7CiAKIAkJdHJhY2stPmNiWzBdLnBpdGNoID0gaWR4X3ZhbHVlICYgUkFE RU9OX0NPTE9SUElUQ0hfTUFTSzsKKwkJdHJhY2stPmNiX2RpcnR5ID0gdHJ1ZTsKIAkJYnJlYWs7 CiAJY2FzZSBSQURFT05fUkIzRF9ERVBUSFBJVENIOgogCQl0cmFjay0+emIucGl0Y2ggPSBpZHhf dmFsdWUgJiBSQURFT05fREVQVEhQSVRDSF9NQVNLOworCQl0cmFjay0+emJfZGlydHkgPSB0cnVl OwogCQlicmVhazsKIAljYXNlIFJBREVPTl9SQjNEX0NOVEw6CiAJCXN3aXRjaCAoKGlkeF92YWx1 ZSA+PiBSQURFT05fUkIzRF9DT0xPUl9GT1JNQVRfU0hJRlQpICYgMHgxZikgewpAQCAtMTU1NSw2 ICsxNTY1LDggQEAgc3RhdGljIGludCByMTAwX3BhY2tldDBfY2hlY2soc3RydWN0IHJhZGVvbl9j c19wYXJzZXIgKnAsCiAJCQlyZXR1cm4gLUVJTlZBTDsKIAkJfQogCQl0cmFjay0+el9lbmFibGVk ID0gISEoaWR4X3ZhbHVlICYgUkFERU9OX1pfRU5BQkxFKTsKKwkJdHJhY2stPmNiX2RpcnR5ID0g dHJ1ZTsKKwkJdHJhY2stPnpiX2RpcnR5ID0gdHJ1ZTsKIAkJYnJlYWs7CiAJY2FzZSBSQURFT05f UkIzRF9aU1RFTkNJTENOVEw6CiAJCXN3aXRjaCAoaWR4X3ZhbHVlICYgMHhmKSB7CkBAIC0xNTcy LDYgKzE1ODQsNyBAQCBzdGF0aWMgaW50IHIxMDBfcGFja2V0MF9jaGVjayhzdHJ1Y3QgcmFkZW9u X2NzX3BhcnNlciAqcCwKIAkJZGVmYXVsdDoKIAkJCWJyZWFrOwogCQl9CisJCXRyYWNrLT56Yl9k aXJ0eSA9IHRydWU7CiAJCWJyZWFrOwogCWNhc2UgUkFERU9OX1JCM0RfWlBBU1NfQUREUjoKIAkJ ciA9IHIxMDBfY3NfcGFja2V0X25leHRfcmVsb2MocCwgJnJlbG9jKTsKQEAgLTE1ODgsNiArMTYw MSw3IEBAIHN0YXRpYyBpbnQgcjEwMF9wYWNrZXQwX2NoZWNrKHN0cnVjdCByYWRlb25fY3NfcGFy c2VyICpwLAogCQkJdWludDMyX3QgdGVtcCA9IGlkeF92YWx1ZSA+PiA0OwogCQkJZm9yIChpID0g MDsgaSA8IHRyYWNrLT5udW1fdGV4dHVyZTsgaSsrKQogCQkJCXRyYWNrLT50ZXh0dXJlc1tpXS5l bmFibGVkID0gISEodGVtcCAmICgxIDw8IGkpKTsKKwkJCXRyYWNrLT50ZXhfZGlydHkgPSB0cnVl OwogCQl9CiAJCWJyZWFrOwogCWNhc2UgUkFERU9OX1NFX1ZGX0NOVEw6CkBAIC0xNjAyLDEyICsx NjE2LDE0IEBAIHN0YXRpYyBpbnQgcjEwMF9wYWNrZXQwX2NoZWNrKHN0cnVjdCByYWRlb25fY3Nf cGFyc2VyICpwLAogCQlpID0gKHJlZyAtIFJBREVPTl9QUF9URVhfU0laRV8wKSAvIDg7CiAJCXRy YWNrLT50ZXh0dXJlc1tpXS53aWR0aCA9IChpZHhfdmFsdWUgJiBSQURFT05fVEVYX1VTSVpFX01B U0spICsgMTsKIAkJdHJhY2stPnRleHR1cmVzW2ldLmhlaWdodCA9ICgoaWR4X3ZhbHVlICYgUkFE RU9OX1RFWF9WU0laRV9NQVNLKSA+PiBSQURFT05fVEVYX1ZTSVpFX1NISUZUKSArIDE7CisJCXRy YWNrLT50ZXhfZGlydHkgPSB0cnVlOwogCQlicmVhazsKIAljYXNlIFJBREVPTl9QUF9URVhfUElU Q0hfMDoKIAljYXNlIFJBREVPTl9QUF9URVhfUElUQ0hfMToKIAljYXNlIFJBREVPTl9QUF9URVhf UElUQ0hfMjoKIAkJaSA9IChyZWcgLSBSQURFT05fUFBfVEVYX1BJVENIXzApIC8gODsKIAkJdHJh Y2stPnRleHR1cmVzW2ldLnBpdGNoID0gaWR4X3ZhbHVlICsgMzI7CisJCXRyYWNrLT50ZXhfZGly dHkgPSB0cnVlOwogCQlicmVhazsKIAljYXNlIFJBREVPTl9QUF9UWEZJTFRFUl8wOgogCWNhc2Ug UkFERU9OX1BQX1RYRklMVEVSXzE6CkBAIC0xNjIxLDYgKzE2MzcsNyBAQCBzdGF0aWMgaW50IHIx MDBfcGFja2V0MF9jaGVjayhzdHJ1Y3QgcmFkZW9uX2NzX3BhcnNlciAqcCwKIAkJdG1wID0gKGlk eF92YWx1ZSA+PiAyNykgJiAweDc7CiAJCWlmICh0bXAgPT0gMiB8fCB0bXAgPT0gNikKIAkJCXRy YWNrLT50ZXh0dXJlc1tpXS5yb3VuZHVwX2ggPSBmYWxzZTsKKwkJdHJhY2stPnRleF9kaXJ0eSA9 IHRydWU7CiAJCWJyZWFrOwogCWNhc2UgUkFERU9OX1BQX1RYRk9STUFUXzA6CiAJY2FzZSBSQURF T05fUFBfVFhGT1JNQVRfMToKQEAgLTE2NzMsNiArMTY5MCw3IEBAIHN0YXRpYyBpbnQgcjEwMF9w YWNrZXQwX2NoZWNrKHN0cnVjdCByYWRlb25fY3NfcGFyc2VyICpwLAogCQl9CiAJCXRyYWNrLT50 ZXh0dXJlc1tpXS5jdWJlX2luZm9bNF0ud2lkdGggPSAxIDw8ICgoaWR4X3ZhbHVlID4+IDE2KSAm IDB4Zik7CiAJCXRyYWNrLT50ZXh0dXJlc1tpXS5jdWJlX2luZm9bNF0uaGVpZ2h0ID0gMSA8PCAo KGlkeF92YWx1ZSA+PiAyMCkgJiAweGYpOworCQl0cmFjay0+dGV4X2RpcnR5ID0gdHJ1ZTsKIAkJ YnJlYWs7CiAJY2FzZSBSQURFT05fUFBfQ1VCSUNfRkFDRVNfMDoKIAljYXNlIFJBREVPTl9QUF9D VUJJQ19GQUNFU18xOgpAQCAtMTY4Myw2ICsxNzAxLDcgQEAgc3RhdGljIGludCByMTAwX3BhY2tl dDBfY2hlY2soc3RydWN0IHJhZGVvbl9jc19wYXJzZXIgKnAsCiAJCQl0cmFjay0+dGV4dHVyZXNb aV0uY3ViZV9pbmZvW2ZhY2VdLndpZHRoID0gMSA8PCAoKHRtcCA+PiAoZmFjZSAqIDgpKSAmIDB4 Zik7CiAJCQl0cmFjay0+dGV4dHVyZXNbaV0uY3ViZV9pbmZvW2ZhY2VdLmhlaWdodCA9IDEgPDwg KCh0bXAgPj4gKChmYWNlICogOCkgKyA0KSkgJiAweGYpOwogCQl9CisJCXRyYWNrLT50ZXhfZGly dHkgPSB0cnVlOwogCQlicmVhazsKIAlkZWZhdWx0OgogCQlwcmludGsoS0VSTl9FUlIgIkZvcmJp ZGRlbiByZWdpc3RlciAweCUwNFggaW4gY3MgYXQgJWRcbiIsCkBAIC0zMzE4LDkgKzMzMzcsOSBA QCBpbnQgcjEwMF9jc190cmFja19jaGVjayhzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldiwgc3Ry dWN0IHIxMDBfY3NfdHJhY2sgKnRyYWNrKQogCXVuc2lnbmVkIGxvbmcgc2l6ZTsKIAl1bnNpZ25l ZCBwcmltX3dhbGs7CiAJdW5zaWduZWQgbnZlcnRzOwotCXVuc2lnbmVkIG51bV9jYiA9IHRyYWNr LT5udW1fY2I7CisJdW5zaWduZWQgbnVtX2NiID0gdHJhY2stPmNiX2RpcnR5ID8gdHJhY2stPm51 bV9jYiA6IDA7CiAKLQlpZiAoIXRyYWNrLT56Yl9jYl9jbGVhciAmJiAhdHJhY2stPmNvbG9yX2No YW5uZWxfbWFzayAmJgorCWlmIChudW1fY2IgJiYgIXRyYWNrLT56Yl9jYl9jbGVhciAmJiAhdHJh Y2stPmNvbG9yX2NoYW5uZWxfbWFzayAmJgogCSAgICAhdHJhY2stPmJsZW5kX3JlYWRfZW5hYmxl KQogCQludW1fY2IgPSAwOwogCkBAIC0zMzQxLDcgKzMzNjAsOSBAQCBpbnQgcjEwMF9jc190cmFj a19jaGVjayhzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldiwgc3RydWN0IHIxMDBfY3NfdHJhY2sg KnRyYWNrKQogCQkJcmV0dXJuIC1FSU5WQUw7CiAJCX0KIAl9Ci0JaWYgKHRyYWNrLT56X2VuYWJs ZWQpIHsKKwl0cmFjay0+Y2JfZGlydHkgPSBmYWxzZTsKKworCWlmICh0cmFjay0+emJfZGlydHkg JiYgdHJhY2stPnpfZW5hYmxlZCkgewogCQlpZiAodHJhY2stPnpiLnJvYmogPT0gTlVMTCkgewog CQkJRFJNX0VSUk9SKCJbZHJtXSBObyBidWZmZXIgZm9yIHogYnVmZmVyICFcbiIpOwogCQkJcmV0 dXJuIC1FSU5WQUw7CkBAIC0zMzU4LDYgKzMzNzksOCBAQCBpbnQgcjEwMF9jc190cmFja19jaGVj ayhzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldiwgc3RydWN0IHIxMDBfY3NfdHJhY2sgKnRyYWNr KQogCQkJcmV0dXJuIC1FSU5WQUw7CiAJCX0KIAl9CisJdHJhY2stPnpiX2RpcnR5ID0gZmFsc2U7 CisKIAlwcmltX3dhbGsgPSAodHJhY2stPnZhcF92Zl9jbnRsID4+IDQpICYgMHgzOwogCWlmICh0 cmFjay0+dmFwX3ZmX2NudGwgJiAoMSA8PCAxNCkpIHsKIAkJbnZlcnRzID0gdHJhY2stPnZhcF9h bHRfbnZlcnRzOwpAQCAtMzQxNywxMyArMzQ0MCwyMiBAQCBpbnQgcjEwMF9jc190cmFja19jaGVj ayhzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldiwgc3RydWN0IHIxMDBfY3NfdHJhY2sgKnRyYWNr KQogCQkJICBwcmltX3dhbGspOwogCQlyZXR1cm4gLUVJTlZBTDsKIAl9Ci0JcmV0dXJuIHIxMDBf Y3NfdHJhY2tfdGV4dHVyZV9jaGVjayhyZGV2LCB0cmFjayk7CisKKwlpZiAodHJhY2stPnRleF9k aXJ0eSkgeworCQl0cmFjay0+dGV4X2RpcnR5ID0gZmFsc2U7CisJCXJldHVybiByMTAwX2NzX3Ry YWNrX3RleHR1cmVfY2hlY2socmRldiwgdHJhY2spOworCX0KKwlyZXR1cm4gMDsKIH0KIAogdm9p ZCByMTAwX2NzX3RyYWNrX2NsZWFyKHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2LCBzdHJ1Y3Qg cjEwMF9jc190cmFjayAqdHJhY2spCiB7CiAJdW5zaWduZWQgaSwgZmFjZTsKIAorCXRyYWNrLT5j Yl9kaXJ0eSA9IHRydWU7CisJdHJhY2stPnpiX2RpcnR5ID0gdHJ1ZTsKKwl0cmFjay0+dGV4X2Rp cnR5ID0gdHJ1ZTsKKwogCWlmIChyZGV2LT5mYW1pbHkgPCBDSElQX1IzMDApIHsKIAkJdHJhY2st Pm51bV9jYiA9IDE7CiAJCWlmIChyZGV2LT5mYW1pbHkgPD0gQ0hJUF9SUzIwMCkKZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcjEwMF90cmFjay5oIGIvZHJpdmVycy9ncHUvZHJt L3JhZGVvbi9yMTAwX3RyYWNrLmgKaW5kZXggYWY2NTYwMC4uZWU4NWM0YSAxMDA2NDQKLS0tIGEv ZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yMTAwX3RyYWNrLmgKKysrIGIvZHJpdmVycy9ncHUvZHJt L3JhZGVvbi9yMTAwX3RyYWNrLmgKQEAgLTUyLDE0ICs1Miw3IEBAIHN0cnVjdCByMTAwX2NzX3Ry YWNrX3RleHR1cmUgewogCXVuc2lnbmVkICAgICAgICAgICAgICAgIGNvbXByZXNzX2Zvcm1hdDsK IH07CiAKLXN0cnVjdCByMTAwX2NzX3RyYWNrX2xpbWl0cyB7Ci0JdW5zaWduZWQgbnVtX2NiOwot CXVuc2lnbmVkIG51bV90ZXh0dXJlOwotCXVuc2lnbmVkIG1heF9sZXZlbHM7Ci19OwotCiBzdHJ1 Y3QgcjEwMF9jc190cmFjayB7Ci0Jc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXY7CiAJdW5zaWdu ZWQJCQludW1fY2I7CiAJdW5zaWduZWQgICAgICAgICAgICAgICAgICAgICAgICBudW1fdGV4dHVy ZTsKIAl1bnNpZ25lZAkJCW1heHk7CkBAIC03OCw2ICs3MSwxMCBAQCBzdHJ1Y3QgcjEwMF9jc190 cmFjayB7CiAJYm9vbCAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXBhcmF0ZV9jdWJlOwog CWJvb2wJCQkJemJfY2JfY2xlYXI7CiAJYm9vbAkJCQlibGVuZF9yZWFkX2VuYWJsZTsKKworCWJv b2wJCQkJY2JfZGlydHk7CisJYm9vbAkJCQl6Yl9kaXJ0eTsKKwlib29sCQkJCXRleF9kaXJ0eTsK IH07CiAKIGludCByMTAwX2NzX3RyYWNrX2NoZWNrKHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2 LCBzdHJ1Y3QgcjEwMF9jc190cmFjayAqdHJhY2spOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL3JhZGVvbi9yMjAwLmMgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3IyMDAuYwppbmRleCBk MjQwOGMzLi5mMjQwNTgzIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3IyMDAu YworKysgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3IyMDAuYwpAQCAtMTg0LDYgKzE4NCw3IEBA IGludCByMjAwX3BhY2tldDBfY2hlY2soc3RydWN0IHJhZGVvbl9jc19wYXJzZXIgKnAsCiAJCX0K IAkJdHJhY2stPnpiLnJvYmogPSByZWxvYy0+cm9iajsKIAkJdHJhY2stPnpiLm9mZnNldCA9IGlk eF92YWx1ZTsKKwkJdHJhY2stPnpiX2RpcnR5ID0gdHJ1ZTsKIAkJaWJbaWR4XSA9IGlkeF92YWx1 ZSArICgodTMyKXJlbG9jLT5sb2JqLmdwdV9vZmZzZXQpOwogCQlicmVhazsKIAljYXNlIFJBREVP Tl9SQjNEX0NPTE9ST0ZGU0VUOgpAQCAtMTk2LDYgKzE5Nyw3IEBAIGludCByMjAwX3BhY2tldDBf Y2hlY2soc3RydWN0IHJhZGVvbl9jc19wYXJzZXIgKnAsCiAJCX0KIAkJdHJhY2stPmNiWzBdLnJv YmogPSByZWxvYy0+cm9iajsKIAkJdHJhY2stPmNiWzBdLm9mZnNldCA9IGlkeF92YWx1ZTsKKwkJ dHJhY2stPmNiX2RpcnR5ID0gdHJ1ZTsKIAkJaWJbaWR4XSA9IGlkeF92YWx1ZSArICgodTMyKXJl bG9jLT5sb2JqLmdwdV9vZmZzZXQpOwogCQlicmVhazsKIAljYXNlIFIyMDBfUFBfVFhPRkZTRVRf MDoKQEAgLTIxNCw2ICsyMTYsNyBAQCBpbnQgcjIwMF9wYWNrZXQwX2NoZWNrKHN0cnVjdCByYWRl b25fY3NfcGFyc2VyICpwLAogCQl9CiAJCWliW2lkeF0gPSBpZHhfdmFsdWUgKyAoKHUzMilyZWxv Yy0+bG9iai5ncHVfb2Zmc2V0KTsKIAkJdHJhY2stPnRleHR1cmVzW2ldLnJvYmogPSByZWxvYy0+ cm9iajsKKwkJdHJhY2stPnRleF9kaXJ0eSA9IHRydWU7CiAJCWJyZWFrOwogCWNhc2UgUjIwMF9Q UF9DVUJJQ19PRkZTRVRfRjFfMDoKIAljYXNlIFIyMDBfUFBfQ1VCSUNfT0ZGU0VUX0YyXzA6CkBA IC0yNTcsOSArMjYwLDEyIEBAIGludCByMjAwX3BhY2tldDBfY2hlY2soc3RydWN0IHJhZGVvbl9j c19wYXJzZXIgKnAsCiAJCXRyYWNrLT50ZXh0dXJlc1tpXS5jdWJlX2luZm9bZmFjZSAtIDFdLm9m ZnNldCA9IGlkeF92YWx1ZTsKIAkJaWJbaWR4XSA9IGlkeF92YWx1ZSArICgodTMyKXJlbG9jLT5s b2JqLmdwdV9vZmZzZXQpOwogCQl0cmFjay0+dGV4dHVyZXNbaV0uY3ViZV9pbmZvW2ZhY2UgLSAx XS5yb2JqID0gcmVsb2MtPnJvYmo7CisJCXRyYWNrLT50ZXhfZGlydHkgPSB0cnVlOwogCQlicmVh azsKIAljYXNlIFJBREVPTl9SRV9XSURUSF9IRUlHSFQ6CiAJCXRyYWNrLT5tYXh5ID0gKChpZHhf dmFsdWUgPj4gMTYpICYgMHg3RkYpOworCQl0cmFjay0+Y2JfZGlydHkgPSB0cnVlOworCQl0cmFj ay0+emJfZGlydHkgPSB0cnVlOwogCQlicmVhazsKIAljYXNlIFJBREVPTl9SQjNEX0NPTE9SUElU Q0g6CiAJCXIgPSByMTAwX2NzX3BhY2tldF9uZXh0X3JlbG9jKHAsICZyZWxvYyk7CkBAIC0yODAs OSArMjg2LDExIEBAIGludCByMjAwX3BhY2tldDBfY2hlY2soc3RydWN0IHJhZGVvbl9jc19wYXJz ZXIgKnAsCiAJCWliW2lkeF0gPSB0bXA7CiAKIAkJdHJhY2stPmNiWzBdLnBpdGNoID0gaWR4X3Zh bHVlICYgUkFERU9OX0NPTE9SUElUQ0hfTUFTSzsKKwkJdHJhY2stPmNiX2RpcnR5ID0gdHJ1ZTsK IAkJYnJlYWs7CiAJY2FzZSBSQURFT05fUkIzRF9ERVBUSFBJVENIOgogCQl0cmFjay0+emIucGl0 Y2ggPSBpZHhfdmFsdWUgJiBSQURFT05fREVQVEhQSVRDSF9NQVNLOworCQl0cmFjay0+emJfZGly dHkgPSB0cnVlOwogCQlicmVhazsKIAljYXNlIFJBREVPTl9SQjNEX0NOVEw6CiAJCXN3aXRjaCAo KGlkeF92YWx1ZSA+PiBSQURFT05fUkIzRF9DT0xPUl9GT1JNQVRfU0hJRlQpICYgMHgxZikgewpA QCAtMzEyLDYgKzMyMCw4IEBAIGludCByMjAwX3BhY2tldDBfY2hlY2soc3RydWN0IHJhZGVvbl9j c19wYXJzZXIgKnAsCiAJCX0KIAogCQl0cmFjay0+el9lbmFibGVkID0gISEoaWR4X3ZhbHVlICYg UkFERU9OX1pfRU5BQkxFKTsKKwkJdHJhY2stPmNiX2RpcnR5ID0gdHJ1ZTsKKwkJdHJhY2stPnpi X2RpcnR5ID0gdHJ1ZTsKIAkJYnJlYWs7CiAJY2FzZSBSQURFT05fUkIzRF9aU1RFTkNJTENOVEw6 CiAJCXN3aXRjaCAoaWR4X3ZhbHVlICYgMHhmKSB7CkBAIC0zMjksNiArMzM5LDcgQEAgaW50IHIy MDBfcGFja2V0MF9jaGVjayhzdHJ1Y3QgcmFkZW9uX2NzX3BhcnNlciAqcCwKIAkJZGVmYXVsdDoK IAkJCWJyZWFrOwogCQl9CisJCXRyYWNrLT56Yl9kaXJ0eSA9IHRydWU7CiAJCWJyZWFrOwogCWNh c2UgUkFERU9OX1JCM0RfWlBBU1NfQUREUjoKIAkJciA9IHIxMDBfY3NfcGFja2V0X25leHRfcmVs b2MocCwgJnJlbG9jKTsKQEAgLTM0NSw2ICszNTYsNyBAQCBpbnQgcjIwMF9wYWNrZXQwX2NoZWNr KHN0cnVjdCByYWRlb25fY3NfcGFyc2VyICpwLAogCQkJdWludDMyX3QgdGVtcCA9IGlkeF92YWx1 ZSA+PiA0OwogCQkJZm9yIChpID0gMDsgaSA8IHRyYWNrLT5udW1fdGV4dHVyZTsgaSsrKQogCQkJ CXRyYWNrLT50ZXh0dXJlc1tpXS5lbmFibGVkID0gISEodGVtcCAmICgxIDw8IGkpKTsKKwkJCXRy YWNrLT50ZXhfZGlydHkgPSB0cnVlOwogCQl9CiAJCWJyZWFrOwogCWNhc2UgUkFERU9OX1NFX1ZG X0NOVEw6CkBAIC0zNjksNiArMzgxLDcgQEAgaW50IHIyMDBfcGFja2V0MF9jaGVjayhzdHJ1Y3Qg cmFkZW9uX2NzX3BhcnNlciAqcCwKIAkJaSA9IChyZWcgLSBSMjAwX1BQX1RYU0laRV8wKSAvIDMy OwogCQl0cmFjay0+dGV4dHVyZXNbaV0ud2lkdGggPSAoaWR4X3ZhbHVlICYgUkFERU9OX1RFWF9V U0laRV9NQVNLKSArIDE7CiAJCXRyYWNrLT50ZXh0dXJlc1tpXS5oZWlnaHQgPSAoKGlkeF92YWx1 ZSAmIFJBREVPTl9URVhfVlNJWkVfTUFTSykgPj4gUkFERU9OX1RFWF9WU0laRV9TSElGVCkgKyAx OworCQl0cmFjay0+dGV4X2RpcnR5ID0gdHJ1ZTsKIAkJYnJlYWs7CiAJY2FzZSBSMjAwX1BQX1RY UElUQ0hfMDoKIAljYXNlIFIyMDBfUFBfVFhQSVRDSF8xOgpAQCAtMzc4LDYgKzM5MSw3IEBAIGlu dCByMjAwX3BhY2tldDBfY2hlY2soc3RydWN0IHJhZGVvbl9jc19wYXJzZXIgKnAsCiAJY2FzZSBS MjAwX1BQX1RYUElUQ0hfNToKIAkJaSA9IChyZWcgLSBSMjAwX1BQX1RYUElUQ0hfMCkgLyAzMjsK IAkJdHJhY2stPnRleHR1cmVzW2ldLnBpdGNoID0gaWR4X3ZhbHVlICsgMzI7CisJCXRyYWNrLT50 ZXhfZGlydHkgPSB0cnVlOwogCQlicmVhazsKIAljYXNlIFIyMDBfUFBfVFhGSUxURVJfMDoKIAlj YXNlIFIyMDBfUFBfVFhGSUxURVJfMToKQEAgLTM5NCw2ICs0MDgsNyBAQCBpbnQgcjIwMF9wYWNr ZXQwX2NoZWNrKHN0cnVjdCByYWRlb25fY3NfcGFyc2VyICpwLAogCQl0bXAgPSAoaWR4X3ZhbHVl ID4+IDI3KSAmIDB4NzsKIAkJaWYgKHRtcCA9PSAyIHx8IHRtcCA9PSA2KQogCQkJdHJhY2stPnRl eHR1cmVzW2ldLnJvdW5kdXBfaCA9IGZhbHNlOworCQl0cmFjay0+dGV4X2RpcnR5ID0gdHJ1ZTsK IAkJYnJlYWs7CiAJY2FzZSBSMjAwX1BQX1RYTVVMVElfQ1RMXzA6CiAJY2FzZSBSMjAwX1BQX1RY TVVMVElfQ1RMXzE6CkBAIC00MzIsNiArNDQ3LDcgQEAgaW50IHIyMDBfcGFja2V0MF9jaGVjayhz dHJ1Y3QgcmFkZW9uX2NzX3BhcnNlciAqcCwKIAkJCXRyYWNrLT50ZXh0dXJlc1tpXS50ZXhfY29v cmRfdHlwZSA9IDE7CiAJCQlicmVhazsKIAkJfQorCQl0cmFjay0+dGV4X2RpcnR5ID0gdHJ1ZTsK IAkJYnJlYWs7CiAJY2FzZSBSMjAwX1BQX1RYRk9STUFUXzA6CiAJY2FzZSBSMjAwX1BQX1RYRk9S TUFUXzE6CkBAIC00ODgsNiArNTA0LDcgQEAgaW50IHIyMDBfcGFja2V0MF9jaGVjayhzdHJ1Y3Qg cmFkZW9uX2NzX3BhcnNlciAqcCwKIAkJfQogCQl0cmFjay0+dGV4dHVyZXNbaV0uY3ViZV9pbmZv WzRdLndpZHRoID0gMSA8PCAoKGlkeF92YWx1ZSA+PiAxNikgJiAweGYpOwogCQl0cmFjay0+dGV4 dHVyZXNbaV0uY3ViZV9pbmZvWzRdLmhlaWdodCA9IDEgPDwgKChpZHhfdmFsdWUgPj4gMjApICYg MHhmKTsKKwkJdHJhY2stPnRleF9kaXJ0eSA9IHRydWU7CiAJCWJyZWFrOwogCWNhc2UgUjIwMF9Q UF9DVUJJQ19GQUNFU18wOgogCWNhc2UgUjIwMF9QUF9DVUJJQ19GQUNFU18xOgpAQCAtNTAxLDYg KzUxOCw3IEBAIGludCByMjAwX3BhY2tldDBfY2hlY2soc3RydWN0IHJhZGVvbl9jc19wYXJzZXIg KnAsCiAJCQl0cmFjay0+dGV4dHVyZXNbaV0uY3ViZV9pbmZvW2ZhY2VdLndpZHRoID0gMSA8PCAo KHRtcCA+PiAoZmFjZSAqIDgpKSAmIDB4Zik7CiAJCQl0cmFjay0+dGV4dHVyZXNbaV0uY3ViZV9p bmZvW2ZhY2VdLmhlaWdodCA9IDEgPDwgKCh0bXAgPj4gKChmYWNlICogOCkgKyA0KSkgJiAweGYp OwogCQl9CisJCXRyYWNrLT50ZXhfZGlydHkgPSB0cnVlOwogCQlicmVhazsKIAlkZWZhdWx0Ogog CQlwcmludGsoS0VSTl9FUlIgIkZvcmJpZGRlbiByZWdpc3RlciAweCUwNFggaW4gY3MgYXQgJWRc biIsCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3IzMDAuYyBiL2RyaXZlcnMv Z3B1L2RybS9yYWRlb24vcjMwMC5jCmluZGV4IDU1ZmU1YmEuLjE1Zjk0NjQgMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcjMwMC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRl b24vcjMwMC5jCkBAIC02NjcsNiArNjY3LDcgQEAgc3RhdGljIGludCByMzAwX3BhY2tldDBfY2hl Y2soc3RydWN0IHJhZGVvbl9jc19wYXJzZXIgKnAsCiAJCX0KIAkJdHJhY2stPmNiW2ldLnJvYmog PSByZWxvYy0+cm9iajsKIAkJdHJhY2stPmNiW2ldLm9mZnNldCA9IGlkeF92YWx1ZTsKKwkJdHJh Y2stPmNiX2RpcnR5ID0gdHJ1ZTsKIAkJaWJbaWR4XSA9IGlkeF92YWx1ZSArICgodTMyKXJlbG9j LT5sb2JqLmdwdV9vZmZzZXQpOwogCQlicmVhazsKIAljYXNlIFIzMDBfWkJfREVQVEhPRkZTRVQ6 CkBAIC02NzksNiArNjgwLDcgQEAgc3RhdGljIGludCByMzAwX3BhY2tldDBfY2hlY2soc3RydWN0 IHJhZGVvbl9jc19wYXJzZXIgKnAsCiAJCX0KIAkJdHJhY2stPnpiLnJvYmogPSByZWxvYy0+cm9i ajsKIAkJdHJhY2stPnpiLm9mZnNldCA9IGlkeF92YWx1ZTsKKwkJdHJhY2stPnpiX2RpcnR5ID0g dHJ1ZTsKIAkJaWJbaWR4XSA9IGlkeF92YWx1ZSArICgodTMyKXJlbG9jLT5sb2JqLmdwdV9vZmZz ZXQpOwogCQlicmVhazsKIAljYXNlIFIzMDBfVFhfT0ZGU0VUXzA6CkBAIC03MTcsNiArNzE5LDcg QEAgc3RhdGljIGludCByMzAwX3BhY2tldDBfY2hlY2soc3RydWN0IHJhZGVvbl9jc19wYXJzZXIg KnAsCiAJCXRtcCB8PSB0aWxlX2ZsYWdzOwogCQlpYltpZHhdID0gdG1wOwogCQl0cmFjay0+dGV4 dHVyZXNbaV0ucm9iaiA9IHJlbG9jLT5yb2JqOworCQl0cmFjay0+dGV4X2RpcnR5ID0gdHJ1ZTsK IAkJYnJlYWs7CiAJLyogVHJhY2tlZCByZWdpc3RlcnMgKi8KIAljYXNlIDB4MjA4NDoKQEAgLTc0 Myw2ICs3NDYsOCBAQCBzdGF0aWMgaW50IHIzMDBfcGFja2V0MF9jaGVjayhzdHJ1Y3QgcmFkZW9u X2NzX3BhcnNlciAqcCwKIAkJaWYgKHAtPnJkZXYtPmZhbWlseSA8IENISVBfUlY1MTUpIHsKIAkJ CXRyYWNrLT5tYXh5IC09IDE0NDA7CiAJCX0KKwkJdHJhY2stPmNiX2RpcnR5ID0gdHJ1ZTsKKwkJ dHJhY2stPnpiX2RpcnR5ID0gdHJ1ZTsKIAkJYnJlYWs7CiAJY2FzZSAweDRFMDA6CiAJCS8qIFJC M0RfQ0NUTCAqLwpAQCAtNzUyLDYgKzc1Nyw3IEBAIHN0YXRpYyBpbnQgcjMwMF9wYWNrZXQwX2No ZWNrKHN0cnVjdCByYWRlb25fY3NfcGFyc2VyICpwLAogCQkJcmV0dXJuIC1FSU5WQUw7CiAJCX0K IAkJdHJhY2stPm51bV9jYiA9ICgoaWR4X3ZhbHVlID4+IDUpICYgMHgzKSArIDE7CisJCXRyYWNr LT5jYl9kaXJ0eSA9IHRydWU7CiAJCWJyZWFrOwogCWNhc2UgMHg0RTM4OgogCWNhc2UgMHg0RTND OgpAQCAtODE0LDYgKzgyMCw3IEBAIHN0YXRpYyBpbnQgcjMwMF9wYWNrZXQwX2NoZWNrKHN0cnVj dCByYWRlb25fY3NfcGFyc2VyICpwLAogCQkJCSAgKChpZHhfdmFsdWUgPj4gMjEpICYgMHhGKSk7 CiAJCQlyZXR1cm4gLUVJTlZBTDsKIAkJfQorCQl0cmFjay0+Y2JfZGlydHkgPSB0cnVlOwogCQli cmVhazsKIAljYXNlIDB4NEYwMDoKIAkJLyogWkJfQ05UTCAqLwpAQCAtODIyLDYgKzgyOSw3IEBA IHN0YXRpYyBpbnQgcjMwMF9wYWNrZXQwX2NoZWNrKHN0cnVjdCByYWRlb25fY3NfcGFyc2VyICpw LAogCQl9IGVsc2UgewogCQkJdHJhY2stPnpfZW5hYmxlZCA9IGZhbHNlOwogCQl9CisJCXRyYWNr LT56Yl9kaXJ0eSA9IHRydWU7CiAJCWJyZWFrOwogCWNhc2UgMHg0RjEwOgogCQkvKiBaQl9GT1JN QVQgKi8KQEAgLTgzOCw2ICs4NDYsNyBAQCBzdGF0aWMgaW50IHIzMDBfcGFja2V0MF9jaGVjayhz dHJ1Y3QgcmFkZW9uX2NzX3BhcnNlciAqcCwKIAkJCQkgIChpZHhfdmFsdWUgJiAweEYpKTsKIAkJ CXJldHVybiAtRUlOVkFMOwogCQl9CisJCXRyYWNrLT56Yl9kaXJ0eSA9IHRydWU7CiAJCWJyZWFr OwogCWNhc2UgMHg0RjI0OgogCQkvKiBaQl9ERVBUSFBJVENIICovCkBAIC04NjEsNiArODcwLDcg QEAgc3RhdGljIGludCByMzAwX3BhY2tldDBfY2hlY2soc3RydWN0IHJhZGVvbl9jc19wYXJzZXIg KnAsCiAJCWliW2lkeF0gPSB0bXA7CiAKIAkJdHJhY2stPnpiLnBpdGNoID0gaWR4X3ZhbHVlICYg MHgzRkZDOworCQl0cmFjay0+emJfZGlydHkgPSB0cnVlOwogCQlicmVhazsKIAljYXNlIDB4NDEw NDoKIAkJZm9yIChpID0gMDsgaSA8IDE2OyBpKyspIHsKQEAgLTg2OSw2ICs4NzksNyBAQCBzdGF0 aWMgaW50IHIzMDBfcGFja2V0MF9jaGVjayhzdHJ1Y3QgcmFkZW9uX2NzX3BhcnNlciAqcCwKIAkJ CWVuYWJsZWQgPSAhIShpZHhfdmFsdWUgJiAoMSA8PCBpKSk7CiAJCQl0cmFjay0+dGV4dHVyZXNb aV0uZW5hYmxlZCA9IGVuYWJsZWQ7CiAJCX0KKwkJdHJhY2stPnRleF9kaXJ0eSA9IHRydWU7CiAJ CWJyZWFrOwogCWNhc2UgMHg0NEMwOgogCWNhc2UgMHg0NEM0OgpAQCAtOTUxLDggKzk2Miw4IEBA IHN0YXRpYyBpbnQgcjMwMF9wYWNrZXQwX2NoZWNrKHN0cnVjdCByYWRlb25fY3NfcGFyc2VyICpw LAogCQkJRFJNX0VSUk9SKCJJbnZhbGlkIHRleHR1cmUgZm9ybWF0ICV1XG4iLAogCQkJCSAgKGlk eF92YWx1ZSAmIDB4MUYpKTsKIAkJCXJldHVybiAtRUlOVkFMOwotCQkJYnJlYWs7CiAJCX0KKwkJ dHJhY2stPnRleF9kaXJ0eSA9IHRydWU7CiAJCWJyZWFrOwogCWNhc2UgMHg0NDAwOgogCWNhc2Ug MHg0NDA0OgpAQCAtOTgwLDYgKzk5MSw3IEBAIHN0YXRpYyBpbnQgcjMwMF9wYWNrZXQwX2NoZWNr KHN0cnVjdCByYWRlb25fY3NfcGFyc2VyICpwLAogCQlpZiAodG1wID09IDIgfHwgdG1wID09IDQg fHwgdG1wID09IDYpIHsKIAkJCXRyYWNrLT50ZXh0dXJlc1tpXS5yb3VuZHVwX2ggPSBmYWxzZTsK IAkJfQorCQl0cmFjay0+dGV4X2RpcnR5ID0gdHJ1ZTsKIAkJYnJlYWs7CiAJY2FzZSAweDQ1MDA6 CiAJY2FzZSAweDQ1MDQ6CkBAIC0xMDE3LDYgKzEwMjksNyBAQCBzdGF0aWMgaW50IHIzMDBfcGFj a2V0MF9jaGVjayhzdHJ1Y3QgcmFkZW9uX2NzX3BhcnNlciAqcCwKIAkJCURSTV9FUlJPUigiRm9y YmlkZGVuIGJpdCBUWEZPUk1BVF9NU0JcbiIpOwogCQkJcmV0dXJuIC1FSU5WQUw7CiAJCX0KKwkJ dHJhY2stPnRleF9kaXJ0eSA9IHRydWU7CiAJCWJyZWFrOwogCWNhc2UgMHg0NDgwOgogCWNhc2Ug MHg0NDg0OgpAQCAtMTA0Niw2ICsxMDU5LDcgQEAgc3RhdGljIGludCByMzAwX3BhY2tldDBfY2hl Y2soc3RydWN0IHJhZGVvbl9jc19wYXJzZXIgKnAsCiAJCXRyYWNrLT50ZXh0dXJlc1tpXS51c2Vf cGl0Y2ggPSAhIXRtcDsKIAkJdG1wID0gKGlkeF92YWx1ZSA+PiAyMikgJiAweEY7CiAJCXRyYWNr LT50ZXh0dXJlc1tpXS50eGRlcHRoID0gdG1wOworCQl0cmFjay0+dGV4X2RpcnR5ID0gdHJ1ZTsK IAkJYnJlYWs7CiAJY2FzZSBSMzAwX1pCX1pQQVNTX0FERFI6CiAJCXIgPSByMTAwX2NzX3BhY2tl dF9uZXh0X3JlbG9jKHAsICZyZWxvYyk7CkBAIC0xMDYwLDYgKzEwNzQsNyBAQCBzdGF0aWMgaW50 IHIzMDBfcGFja2V0MF9jaGVjayhzdHJ1Y3QgcmFkZW9uX2NzX3BhcnNlciAqcCwKIAljYXNlIDB4 NGUwYzoKIAkJLyogUkIzRF9DT0xPUl9DSEFOTkVMX01BU0sgKi8KIAkJdHJhY2stPmNvbG9yX2No YW5uZWxfbWFzayA9IGlkeF92YWx1ZTsKKwkJdHJhY2stPmNiX2RpcnR5ID0gdHJ1ZTsKIAkJYnJl YWs7CiAJY2FzZSAweDQzYTQ6CiAJCS8qIFNDX0hZUEVSWl9FTiAqLwpAQCAtMTA3Myw2ICsxMDg4 LDggQEAgc3RhdGljIGludCByMzAwX3BhY2tldDBfY2hlY2soc3RydWN0IHJhZGVvbl9jc19wYXJz ZXIgKnAsCiAJY2FzZSAweDRmMWM6CiAJCS8qIFpCX0JXX0NOVEwgKi8KIAkJdHJhY2stPnpiX2Ni X2NsZWFyID0gISEoaWR4X3ZhbHVlICYgKDEgPDwgNSkpOworCQl0cmFjay0+Y2JfZGlydHkgPSB0 cnVlOworCQl0cmFjay0+emJfZGlydHkgPSB0cnVlOwogCQlpZiAocC0+cmRldi0+aHlwZXJ6X2Zp bHAgIT0gcC0+ZmlscCkgewogCQkJaWYgKGlkeF92YWx1ZSAmIChSMzAwX0hJWl9FTkFCTEUgfAog CQkJCQkgUjMwMF9SRF9DT01QX0VOQUJMRSB8CkBAIC0xMDg0LDYgKzExMDEsNyBAQCBzdGF0aWMg aW50IHIzMDBfcGFja2V0MF9jaGVjayhzdHJ1Y3QgcmFkZW9uX2NzX3BhcnNlciAqcCwKIAljYXNl IDB4NGUwNDoKIAkJLyogUkIzRF9CTEVORENOVEwgKi8KIAkJdHJhY2stPmJsZW5kX3JlYWRfZW5h YmxlID0gISEoaWR4X3ZhbHVlICYgKDEgPDwgMikpOworCQl0cmFjay0+Y2JfZGlydHkgPSB0cnVl OwogCQlicmVhazsKIAljYXNlIDB4NGYyODogLyogWkJfREVQVEhDTEVBUlZBTFVFICovCiAJCWJy ZWFrOwotLSAKMS43LjEKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9w Lm9yZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRl dmVsCg==