From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-10.7 required=3.0 tests=BAYES_00, DKIM_ADSP_CUSTOM_MED,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 3EB90C2D0E4 for ; Fri, 18 Dec 2020 06:04:43 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id F37EB23A5B for ; Fri, 18 Dec 2020 06:04:42 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org F37EB23A5B Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=intel-gfx-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id D3BBF89AAD; Fri, 18 Dec 2020 06:04:38 +0000 (UTC) Received: from us-smtp-delivery-44.mimecast.com (us-smtp-delivery-44.mimecast.com [207.211.30.44]) by gabe.freedesktop.org (Postfix) with ESMTPS id 90AC289A6D for ; Fri, 18 Dec 2020 06:04:37 +0000 (UTC) Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-359-Q8ABwK5mMvu-H-QqwYhe3w-1; Fri, 18 Dec 2020 01:04:34 -0500 X-MC-Unique: Q8ABwK5mMvu-H-QqwYhe3w-1 Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.12]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 5DC031005513 for ; Fri, 18 Dec 2020 06:04:33 +0000 (UTC) Received: from dreadlord-bne-redhat-com.bne.redhat.com (unknown [10.64.32.209]) by smtp.corp.redhat.com (Postfix) with ESMTP id C34B060BE5 for ; Fri, 18 Dec 2020 06:04:32 +0000 (UTC) From: Dave Airlie To: intel-gfx@lists.freedesktop.org Date: Fri, 18 Dec 2020 16:04:16 +1000 Message-Id: <20201218060420.3203-10-airlied@gmail.com> In-Reply-To: <20201218060420.3203-1-airlied@gmail.com> References: <20201218060420.3203-1-airlied@gmail.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.12 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: gmail.com Subject: [Intel-gfx] [PATCH 09/13] drm/i915: migrate hsw fdi code to new file. X-BeenThere: intel-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Intel graphics driver community testing & development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" RnJvbTogRGF2ZSBBaXJsaWUgPGFpcmxpZWRAcmVkaGF0LmNvbT4KCkRhbmllbCBhc2tlZCBmb3Ig dGhpcywgYnV0IGl0J3MgYSBiaXQgbWVzc3kgYW5kIEknbSBub3Qgc3VyZQpob3cgYmVzdCB0byBj bGVhbiBpdCB1cCB5ZXQuCgpTaWduZWQtb2ZmLWJ5OiBEYXZlIEFpcmxpZSA8YWlybGllZEByZWRo YXQuY29tPgpbSmFuaTogYWxzbyBtb3ZlZCBmZGkgYnVmIHRyYW5zIHRvIGludGVsX2ZkaS5jLl0K U2lnbmVkLW9mZi1ieTogSmFuaSBOaWt1bGEgPGphbmkubmlrdWxhQGludGVsLmNvbT4KLS0tCiBk cml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2NydC5jIHwgICAxICsKIGRyaXZlcnMv Z3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGRpLmMgfCAxOTcgKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGRpLmggfCAgMTQgKy0K IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZmRpLmMgfCAxNzQgKysrKysrKysr KysrKysrKysrKysKIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZmRpLmggfCAg IDcgKwogNSBmaWxlcyBjaGFuZ2VkLCAyMDIgaW5zZXJ0aW9ucygrKSwgMTkxIGRlbGV0aW9ucygt KQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfY3J0LmMg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2NydC5jCmluZGV4IDQ5MzRlZGQ1 MWNiMC4uMDc3ZWJjN2U2Mzk2IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNw bGF5L2ludGVsX2NydC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxf Y3J0LmMKQEAgLTM4LDYgKzM4LDcgQEAKICNpbmNsdWRlICJpbnRlbF9jcnQuaCIKICNpbmNsdWRl ICJpbnRlbF9kZGkuaCIKICNpbmNsdWRlICJpbnRlbF9kaXNwbGF5X3R5cGVzLmgiCisjaW5jbHVk ZSAiaW50ZWxfZmRpLmgiCiAjaW5jbHVkZSAiaW50ZWxfZmlmb191bmRlcnJ1bi5oIgogI2luY2x1 ZGUgImludGVsX2dtYnVzLmgiCiAjaW5jbHVkZSAiaW50ZWxfaG90cGx1Zy5oIgpkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kZGkuYyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGRpLmMKaW5kZXggNjg2MzIzNmRmMWQwLi5kZWFiYjFh ZDYwNDUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGRp LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kZGkuYwpAQCAtMzUs MTAgKzM1LDExIEBACiAjaW5jbHVkZSAiaW50ZWxfZGRpLmgiCiAjaW5jbHVkZSAiaW50ZWxfZGlz cGxheV90eXBlcy5oIgogI2luY2x1ZGUgImludGVsX2RwLmgiCi0jaW5jbHVkZSAiaW50ZWxfZHBf bXN0LmgiCiAjaW5jbHVkZSAiaW50ZWxfZHBfbGlua190cmFpbmluZy5oIgorI2luY2x1ZGUgImlu dGVsX2RwX21zdC5oIgogI2luY2x1ZGUgImludGVsX2RwaW9fcGh5LmgiCiAjaW5jbHVkZSAiaW50 ZWxfZHNpLmgiCisjaW5jbHVkZSAiaW50ZWxfZmRpLmgiCiAjaW5jbHVkZSAiaW50ZWxfZmlmb191 bmRlcnJ1bi5oIgogI2luY2x1ZGUgImludGVsX2dtYnVzLmgiCiAjaW5jbHVkZSAiaW50ZWxfaGRj cC5oIgpAQCAtNTEsMTIgKzUyLDYgQEAKICNpbmNsdWRlICJpbnRlbF90Yy5oIgogI2luY2x1ZGUg ImludGVsX3Zkc2MuaCIKIAotc3RydWN0IGRkaV9idWZfdHJhbnMgewotCXUzMiB0cmFuczE7CS8q IGJhbGFuY2UgbGVnIGVuYWJsZSwgZGUtZW1waCBsZXZlbCAqLwotCXUzMiB0cmFuczI7CS8qIHZy ZWYgc2VsLCB2c3dpbmcgKi8KLQl1OCBpX2Jvb3N0OwkvKiBTS0w6IElfYm9vc3Q7IHZhbGlkOiAw eDAsIDB4MSwgMHgzLCAweDcgKi8KLX07Ci0KIHN0YXRpYyBjb25zdCB1OCBpbmRleF90b19kcF9z aWduYWxfbGV2ZWxzW10gPSB7CiAJWzBdID0gRFBfVFJBSU5fVk9MVEFHRV9TV0lOR19MRVZFTF8w IHwgRFBfVFJBSU5fUFJFX0VNUEhfTEVWRUxfMCwKIAlbMV0gPSBEUF9UUkFJTl9WT0xUQUdFX1NX SU5HX0xFVkVMXzAgfCBEUF9UUkFJTl9QUkVfRU1QSF9MRVZFTF8xLApAQCAtODYsMTggKzgxLDYg QEAgc3RhdGljIGNvbnN0IHN0cnVjdCBkZGlfYnVmX3RyYW5zIGhzd19kZGlfdHJhbnNsYXRpb25z X2RwW10gPSB7CiAJeyAweDgwRDc1RkZGLCAweDAwMEIwMDAwLCAweDAgfSwKIH07CiAKLXN0YXRp YyBjb25zdCBzdHJ1Y3QgZGRpX2J1Zl90cmFucyBoc3dfZGRpX3RyYW5zbGF0aW9uc19mZGlbXSA9 IHsKLQl7IDB4MDBGRkZGRkYsIDB4MDAwNzAwMEUsIDB4MCB9LAotCXsgMHgwMEQ3NUZGRiwgMHgw MDBGMDAwQSwgMHgwIH0sCi0JeyAweDAwQzMwRkZGLCAweDAwMDYwMDA2LCAweDAgfSwKLQl7IDB4 MDBBQUFGRkYsIDB4MDAxRTAwMDAsIDB4MCB9LAotCXsgMHgwMEZGRkZGRiwgMHgwMDBGMDAwQSwg MHgwIH0sCi0JeyAweDAwRDc1RkZGLCAweDAwMTYwMDA0LCAweDAgfSwKLQl7IDB4MDBDMzBGRkYs IDB4MDAxRTAwMDAsIDB4MCB9LAotCXsgMHgwMEZGRkZGRiwgMHgwMDA2MDAwNiwgMHgwIH0sCi0J eyAweDAwRDc1RkZGLCAweDAwMUUwMDAwLCAweDAgfSwKLX07Ci0KIHN0YXRpYyBjb25zdCBzdHJ1 Y3QgZGRpX2J1Zl90cmFucyBoc3dfZGRpX3RyYW5zbGF0aW9uc19oZG1pW10gPSB7CiAJCQkJCS8q IElkeAlOVCBtViBkCVQgbVYgZAlkYgkqLwogCXsgMHgwMEZGRkZGRiwgMHgwMDA2MDAwRSwgMHgw IH0sLyogMDoJNDAwCTQwMAkwCSovCkBAIC0xMzgsMTggKzEyMSw2IEBAIHN0YXRpYyBjb25zdCBz dHJ1Y3QgZGRpX2J1Zl90cmFucyBiZHdfZGRpX3RyYW5zbGF0aW9uc19kcFtdID0gewogCXsgMHg4 MEQ3NUZGRiwgMHgwMDFCMDAwMiwgMHgwIH0sCiB9OwogCi1zdGF0aWMgY29uc3Qgc3RydWN0IGRk aV9idWZfdHJhbnMgYmR3X2RkaV90cmFuc2xhdGlvbnNfZmRpW10gPSB7Ci0JeyAweDAwRkZGRkZG LCAweDAwMDEwMDBFLCAweDAgfSwKLQl7IDB4MDBENzVGRkYsIDB4MDAwNDAwMEEsIDB4MCB9LAot CXsgMHgwMEMzMEZGRiwgMHgwMDA3MDAwNiwgMHgwIH0sCi0JeyAweDAwQUFBRkZGLCAweDAwMEMw MDAwLCAweDAgfSwKLQl7IDB4MDBGRkZGRkYsIDB4MDAwNDAwMEEsIDB4MCB9LAotCXsgMHgwMEQ3 NUZGRiwgMHgwMDA5MDAwNCwgMHgwIH0sCi0JeyAweDAwQzMwRkZGLCAweDAwMEMwMDAwLCAweDAg fSwKLQl7IDB4MDBGRkZGRkYsIDB4MDAwNzAwMDYsIDB4MCB9LAotCXsgMHgwMEQ3NUZGRiwgMHgw MDBDMDAwMCwgMHgwIH0sCi19OwotCiBzdGF0aWMgY29uc3Qgc3RydWN0IGRkaV9idWZfdHJhbnMg YmR3X2RkaV90cmFuc2xhdGlvbnNfaGRtaVtdID0gewogCQkJCQkvKiBJZHgJTlQgbVYgZAlUIG1W IGRmCWRiCSovCiAJeyAweDAwRkZGRkZGLCAweDAwMDcwMDBFLCAweDAgfSwvKiAwOgk0MDAJNDAw CTAJKi8KQEAgLTkyOSwyMiArOTAwLDYgQEAgaW50ZWxfZGRpX2dldF9idWZfdHJhbnNfZWRwKHN0 cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLCBpbnQgKm5fZW50cmllcykKIAlyZXR1cm4gTlVM TDsKIH0KIAotc3RhdGljIGNvbnN0IHN0cnVjdCBkZGlfYnVmX3RyYW5zICoKLWludGVsX2RkaV9n ZXRfYnVmX3RyYW5zX2ZkaShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCi0JCQkg ICAgaW50ICpuX2VudHJpZXMpCi17Ci0JaWYgKElTX0JST0FEV0VMTChkZXZfcHJpdikpIHsKLQkJ Km5fZW50cmllcyA9IEFSUkFZX1NJWkUoYmR3X2RkaV90cmFuc2xhdGlvbnNfZmRpKTsKLQkJcmV0 dXJuIGJkd19kZGlfdHJhbnNsYXRpb25zX2ZkaTsKLQl9IGVsc2UgaWYgKElTX0hBU1dFTEwoZGV2 X3ByaXYpKSB7Ci0JCSpuX2VudHJpZXMgPSBBUlJBWV9TSVpFKGhzd19kZGlfdHJhbnNsYXRpb25z X2ZkaSk7Ci0JCXJldHVybiBoc3dfZGRpX3RyYW5zbGF0aW9uc19mZGk7Ci0JfQotCi0JKm5fZW50 cmllcyA9IDA7Ci0JcmV0dXJuIE5VTEw7Ci19Ci0KIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZGRpX2J1 Zl90cmFucyAqCiBpbnRlbF9kZGlfZ2V0X2J1Zl90cmFuc19oZG1pKHN0cnVjdCBpbnRlbF9lbmNv ZGVyICplbmNvZGVyLAogCQkJICAgICBpbnQgKm5fZW50cmllcykKQEAgLTEzOTgsOCArMTM1Myw4 IEBAIHN0YXRpYyBpbnQgaW50ZWxfZGRpX2hkbWlfbGV2ZWwoc3RydWN0IGludGVsX2VuY29kZXIg KmVuY29kZXIsCiAgKiB2YWx1ZXMgaW4gYWR2YW5jZS4gVGhpcyBmdW5jdGlvbiBwcm9ncmFtcyB0 aGUgY29ycmVjdCB2YWx1ZXMgZm9yCiAgKiBEUC9lRFAvRkRJIHVzZSBjYXNlcy4KICAqLwotc3Rh dGljIHZvaWQgaW50ZWxfcHJlcGFyZV9kcF9kZGlfYnVmZmVycyhzdHJ1Y3QgaW50ZWxfZW5jb2Rl ciAqZW5jb2RlciwKLQkJCQkJIGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0 YXRlKQordm9pZCBpbnRlbF9wcmVwYXJlX2RwX2RkaV9idWZmZXJzKHN0cnVjdCBpbnRlbF9lbmNv ZGVyICplbmNvZGVyLAorCQkJCSAgY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNf c3RhdGUpCiB7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShl bmNvZGVyLT5iYXNlLmRldik7CiAJdTMyIGlib29zdF9iaXQgPSAwOwpAQCAtMTQwOCw4ICsxMzYz LDcgQEAgc3RhdGljIHZvaWQgaW50ZWxfcHJlcGFyZV9kcF9kZGlfYnVmZmVycyhzdHJ1Y3QgaW50 ZWxfZW5jb2RlciAqZW5jb2RlciwKIAljb25zdCBzdHJ1Y3QgZGRpX2J1Zl90cmFucyAqZGRpX3Ry YW5zbGF0aW9uczsKIAogCWlmIChpbnRlbF9jcnRjX2hhc190eXBlKGNydGNfc3RhdGUsIElOVEVM X09VVFBVVF9BTkFMT0cpKQotCQlkZGlfdHJhbnNsYXRpb25zID0gaW50ZWxfZGRpX2dldF9idWZf dHJhbnNfZmRpKGRldl9wcml2LAotCQkJCQkJCSAgICAgICAmbl9lbnRyaWVzKTsKKwkJZGRpX3Ry YW5zbGF0aW9ucyA9IGludGVsX2ZkaV9nZXRfYnVmX3RyYW5zKGRldl9wcml2LCAmbl9lbnRyaWVz KTsKIAllbHNlIGlmIChpbnRlbF9jcnRjX2hhc190eXBlKGNydGNfc3RhdGUsIElOVEVMX09VVFBV VF9FRFApKQogCQlkZGlfdHJhbnNsYXRpb25zID0gaW50ZWxfZGRpX2dldF9idWZfdHJhbnNfZWRw KGVuY29kZXIsCiAJCQkJCQkJICAgICAgICZuX2VudHJpZXMpOwpAQCAtMTQ2MSw4ICsxNDE1LDgg QEAgc3RhdGljIHZvaWQgaW50ZWxfcHJlcGFyZV9oZG1pX2RkaV9idWZmZXJzKHN0cnVjdCBpbnRl bF9lbmNvZGVyICplbmNvZGVyLAogCQkgICAgICAgZGRpX3RyYW5zbGF0aW9uc1tsZXZlbF0udHJh bnMyKTsKIH0KIAotc3RhdGljIHZvaWQgaW50ZWxfd2FpdF9kZGlfYnVmX2lkbGUoc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAotCQkJCSAgICBlbnVtIHBvcnQgcG9ydCkKK3ZvaWQg aW50ZWxfd2FpdF9kZGlfYnVmX2lkbGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 LAorCQkJICAgICBlbnVtIHBvcnQgcG9ydCkKIHsKIAlpZiAoSVNfQlJPWFRPTihkZXZfcHJpdikp IHsKIAkJdWRlbGF5KDE2KTsKQEAgLTE0OTAsNyArMTQ0NCw3IEBAIHN0YXRpYyB2b2lkIGludGVs X3dhaXRfZGRpX2J1Zl9hY3RpdmUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAog CQkJcG9ydF9uYW1lKHBvcnQpKTsKIH0KIAotc3RhdGljIHUzMiBoc3dfcGxsX3RvX2RkaV9wbGxf c2VsKGNvbnN0IHN0cnVjdCBpbnRlbF9zaGFyZWRfZHBsbCAqcGxsKQordTMyIGhzd19wbGxfdG9f ZGRpX3BsbF9zZWwoY29uc3Qgc3RydWN0IGludGVsX3NoYXJlZF9kcGxsICpwbGwpCiB7CiAJc3dp dGNoIChwbGwtPmluZm8tPmlkKSB7CiAJY2FzZSBEUExMX0lEX1dSUExMMToKQEAgLTE1NTAsMTQx ICsxNTA0LDYgQEAgc3RhdGljIHUzMiBpY2xfcGxsX3RvX2RkaV9jbGtfc2VsKHN0cnVjdCBpbnRl bF9lbmNvZGVyICplbmNvZGVyLAogCX0KIH0KIAotLyogU3RhcnRpbmcgd2l0aCBIYXN3ZWxsLCBk aWZmZXJlbnQgRERJIHBvcnRzIGNhbiB3b3JrIGluIEZESSBtb2RlIGZvcgotICogY29ubmVjdGlv biB0byB0aGUgUENILWxvY2F0ZWQgY29ubmVjdG9ycy4gRm9yIHRoaXMsIGl0IGlzIG5lY2Vzc2Fy eSB0byB0cmFpbgotICogYm90aCB0aGUgRERJIHBvcnQgYW5kIFBDSCByZWNlaXZlciBmb3IgdGhl IGRlc2lyZWQgRERJIGJ1ZmZlciBzZXR0aW5ncy4KLSAqCi0gKiBUaGUgcmVjb21tZW5kZWQgcG9y dCB0byB3b3JrIGluIEZESSBtb2RlIGlzIERESSBFLCB3aGljaCB3ZSB1c2UgaGVyZS4gQWxzbywK LSAqIHBsZWFzZSBub3RlIHRoYXQgd2hlbiBGREkgbW9kZSBpcyBhY3RpdmUgb24gRERJIEUsIGl0 IHNoYXJlcyAyIGxpbmVzIHdpdGgKLSAqIERESSBBICh3aGljaCBpcyB1c2VkIGZvciBlRFApCi0g Ki8KLQotdm9pZCBoc3dfZmRpX2xpbmtfdHJhaW4oc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29k ZXIsCi0JCQljb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKLXsKLQlz dHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+dWFwaS5j cnRjKTsKLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGMt PmJhc2UuZGV2KTsKLQl1MzIgdGVtcCwgaSwgcnhfY3RsX3ZhbCwgZGRpX3BsbF9zZWw7Ci0KLQlp bnRlbF9wcmVwYXJlX2RwX2RkaV9idWZmZXJzKGVuY29kZXIsIGNydGNfc3RhdGUpOwotCi0JLyog U2V0IHRoZSBGRElfUlhfTUlTQyBwd3JkbiBsYW5lcyBhbmQgdGhlIDIgd29ya2Fyb3VuZHMgbGlz dGVkIGF0IHRoZQotCSAqIG1vZGUgc2V0ICJzZXF1ZW5jZSBmb3IgQ1JUIHBvcnQiIGRvY3VtZW50 OgotCSAqIC0gVFAxIHRvIFRQMiB0aW1lIHdpdGggdGhlIGRlZmF1bHQgdmFsdWUKLQkgKiAtIEZE SSBkZWxheSB0byA5MGgKLQkgKgotCSAqIFdhRkRJQXV0b0xpbmtTZXRUaW1pbmdPdmVycnJpZGU6 aHN3Ci0JICovCi0JaW50ZWxfZGVfd3JpdGUoZGV2X3ByaXYsIEZESV9SWF9NSVNDKFBJUEVfQSks Ci0JCSAgICAgICBGRElfUlhfUFdSRE5fTEFORTFfVkFMKDIpIHwgRkRJX1JYX1BXUkROX0xBTkUw X1ZBTCgyKSB8IEZESV9SWF9UUDFfVE9fVFAyXzQ4IHwgRkRJX1JYX0ZESV9ERUxBWV85MCk7Ci0K LQkvKiBFbmFibGUgdGhlIFBDSCBSZWNlaXZlciBGREkgUExMICovCi0JcnhfY3RsX3ZhbCA9IGRl dl9wcml2LT5mZGlfcnhfY29uZmlnIHwgRkRJX1JYX0VOSEFOQ0VfRlJBTUVfRU5BQkxFIHwKLQkJ ICAgICBGRElfUlhfUExMX0VOQUJMRSB8Ci0JCSAgICAgRkRJX0RQX1BPUlRfV0lEVEgoY3J0Y19z dGF0ZS0+ZmRpX2xhbmVzKTsKLQlpbnRlbF9kZV93cml0ZShkZXZfcHJpdiwgRkRJX1JYX0NUTChQ SVBFX0EpLCByeF9jdGxfdmFsKTsKLQlpbnRlbF9kZV9wb3N0aW5nX3JlYWQoZGV2X3ByaXYsIEZE SV9SWF9DVEwoUElQRV9BKSk7Ci0JdWRlbGF5KDIyMCk7Ci0KLQkvKiBTd2l0Y2ggZnJvbSBSYXdj bGsgdG8gUENEY2xrICovCi0JcnhfY3RsX3ZhbCB8PSBGRElfUENEQ0xLOwotCWludGVsX2RlX3dy aXRlKGRldl9wcml2LCBGRElfUlhfQ1RMKFBJUEVfQSksIHJ4X2N0bF92YWwpOwotCi0JLyogQ29u ZmlndXJlIFBvcnQgQ2xvY2sgU2VsZWN0ICovCi0JZGRpX3BsbF9zZWwgPSBoc3dfcGxsX3RvX2Rk aV9wbGxfc2VsKGNydGNfc3RhdGUtPnNoYXJlZF9kcGxsKTsKLQlpbnRlbF9kZV93cml0ZShkZXZf cHJpdiwgUE9SVF9DTEtfU0VMKFBPUlRfRSksIGRkaV9wbGxfc2VsKTsKLQlkcm1fV0FSTl9PTigm ZGV2X3ByaXYtPmRybSwgZGRpX3BsbF9zZWwgIT0gUE9SVF9DTEtfU0VMX1NQTEwpOwotCi0JLyog U3RhcnQgdGhlIHRyYWluaW5nIGl0ZXJhdGluZyB0aHJvdWdoIGF2YWlsYWJsZSB2b2x0YWdlcyBh bmQgZW1waGFzaXMsCi0JICogdGVzdGluZyBlYWNoIHZhbHVlIHR3aWNlLiAqLwotCWZvciAoaSA9 IDA7IGkgPCBBUlJBWV9TSVpFKGhzd19kZGlfdHJhbnNsYXRpb25zX2ZkaSkgKiAyOyBpKyspIHsK LQkJLyogQ29uZmlndXJlIERQX1RQX0NUTCB3aXRoIGF1dG8tdHJhaW5pbmcgKi8KLQkJaW50ZWxf ZGVfd3JpdGUoZGV2X3ByaXYsIERQX1RQX0NUTChQT1JUX0UpLAotCQkJICAgICAgIERQX1RQX0NU TF9GRElfQVVUT1RSQUlOIHwKLQkJCSAgICAgICBEUF9UUF9DVExfRU5IQU5DRURfRlJBTUVfRU5B QkxFIHwKLQkJCSAgICAgICBEUF9UUF9DVExfTElOS19UUkFJTl9QQVQxIHwKLQkJCSAgICAgICBE UF9UUF9DVExfRU5BQkxFKTsKLQotCQkvKiBDb25maWd1cmUgYW5kIGVuYWJsZSBERElfQlVGX0NU TCBmb3IgRERJIEUgd2l0aCBuZXh0IHZvbHRhZ2UuCi0JCSAqIERESSBFIGRvZXMgbm90IHN1cHBv cnQgcG9ydCByZXZlcnNhbCwgdGhlIGZ1bmN0aW9uYWxpdHkgaXMKLQkJICogYWNoaWV2ZWQgb24g dGhlIFBDSCBzaWRlIGluIEZESV9SWF9DVEwsIHNvIG5vIG5lZWQgdG8gc2V0IHRoZQotCQkgKiBw b3J0IHJldmVyc2FsIGJpdCAqLwotCQlpbnRlbF9kZV93cml0ZShkZXZfcHJpdiwgRERJX0JVRl9D VEwoUE9SVF9FKSwKLQkJCSAgICAgICBERElfQlVGX0NUTF9FTkFCTEUgfCAoKGNydGNfc3RhdGUt PmZkaV9sYW5lcyAtIDEpIDw8IDEpIHwgRERJX0JVRl9UUkFOU19TRUxFQ1QoaSAvIDIpKTsKLQkJ aW50ZWxfZGVfcG9zdGluZ19yZWFkKGRldl9wcml2LCBERElfQlVGX0NUTChQT1JUX0UpKTsKLQot CQl1ZGVsYXkoNjAwKTsKLQotCQkvKiBQcm9ncmFtIFBDSCBGREkgUmVjZWl2ZXIgVFUgKi8KLQkJ aW50ZWxfZGVfd3JpdGUoZGV2X3ByaXYsIEZESV9SWF9UVVNJWkUxKFBJUEVfQSksIFRVX1NJWkUo NjQpKTsKLQotCQkvKiBFbmFibGUgUENIIEZESSBSZWNlaXZlciB3aXRoIGF1dG8tdHJhaW5pbmcg Ki8KLQkJcnhfY3RsX3ZhbCB8PSBGRElfUlhfRU5BQkxFIHwgRkRJX0xJTktfVFJBSU5fQVVUTzsK LQkJaW50ZWxfZGVfd3JpdGUoZGV2X3ByaXYsIEZESV9SWF9DVEwoUElQRV9BKSwgcnhfY3RsX3Zh bCk7Ci0JCWludGVsX2RlX3Bvc3RpbmdfcmVhZChkZXZfcHJpdiwgRkRJX1JYX0NUTChQSVBFX0Ep KTsKLQotCQkvKiBXYWl0IGZvciBGREkgcmVjZWl2ZXIgbGFuZSBjYWxpYnJhdGlvbiAqLwotCQl1 ZGVsYXkoMzApOwotCi0JCS8qIFVuc2V0IEZESV9SWF9NSVNDIHB3cmRuIGxhbmVzICovCi0JCXRl bXAgPSBpbnRlbF9kZV9yZWFkKGRldl9wcml2LCBGRElfUlhfTUlTQyhQSVBFX0EpKTsKLQkJdGVt cCAmPSB+KEZESV9SWF9QV1JETl9MQU5FMV9NQVNLIHwgRkRJX1JYX1BXUkROX0xBTkUwX01BU0sp OwotCQlpbnRlbF9kZV93cml0ZShkZXZfcHJpdiwgRkRJX1JYX01JU0MoUElQRV9BKSwgdGVtcCk7 Ci0JCWludGVsX2RlX3Bvc3RpbmdfcmVhZChkZXZfcHJpdiwgRkRJX1JYX01JU0MoUElQRV9BKSk7 Ci0KLQkJLyogV2FpdCBmb3IgRkRJIGF1dG8gdHJhaW5pbmcgdGltZSAqLwotCQl1ZGVsYXkoNSk7 Ci0KLQkJdGVtcCA9IGludGVsX2RlX3JlYWQoZGV2X3ByaXYsIERQX1RQX1NUQVRVUyhQT1JUX0Up KTsKLQkJaWYgKHRlbXAgJiBEUF9UUF9TVEFUVVNfQVVUT1RSQUlOX0RPTkUpIHsKLQkJCWRybV9k Ymdfa21zKCZkZXZfcHJpdi0+ZHJtLAotCQkJCSAgICAiRkRJIGxpbmsgdHJhaW5pbmcgZG9uZSBv biBzdGVwICVkXG4iLCBpKTsKLQkJCWJyZWFrOwotCQl9Ci0KLQkJLyoKLQkJICogTGVhdmUgdGhp bmdzIGVuYWJsZWQgZXZlbiBpZiB3ZSBmYWlsZWQgdG8gdHJhaW4gRkRJLgotCQkgKiBSZXN1bHRz IGluIGxlc3MgZmlyZXdvcmtzIGZyb20gdGhlIHN0YXRlIGNoZWNrZXIuCi0JCSAqLwotCQlpZiAo aSA9PSBBUlJBWV9TSVpFKGhzd19kZGlfdHJhbnNsYXRpb25zX2ZkaSkgKiAyIC0gMSkgewotCQkJ ZHJtX2VycigmZGV2X3ByaXYtPmRybSwgIkZESSBsaW5rIHRyYWluaW5nIGZhaWxlZCFcbiIpOwot CQkJYnJlYWs7Ci0JCX0KLQotCQlyeF9jdGxfdmFsICY9IH5GRElfUlhfRU5BQkxFOwotCQlpbnRl bF9kZV93cml0ZShkZXZfcHJpdiwgRkRJX1JYX0NUTChQSVBFX0EpLCByeF9jdGxfdmFsKTsKLQkJ aW50ZWxfZGVfcG9zdGluZ19yZWFkKGRldl9wcml2LCBGRElfUlhfQ1RMKFBJUEVfQSkpOwotCi0J CXRlbXAgPSBpbnRlbF9kZV9yZWFkKGRldl9wcml2LCBERElfQlVGX0NUTChQT1JUX0UpKTsKLQkJ dGVtcCAmPSB+RERJX0JVRl9DVExfRU5BQkxFOwotCQlpbnRlbF9kZV93cml0ZShkZXZfcHJpdiwg RERJX0JVRl9DVEwoUE9SVF9FKSwgdGVtcCk7Ci0JCWludGVsX2RlX3Bvc3RpbmdfcmVhZChkZXZf cHJpdiwgRERJX0JVRl9DVEwoUE9SVF9FKSk7Ci0KLQkJLyogRGlzYWJsZSBEUF9UUF9DVEwgYW5k IEZESV9SWF9DVEwgYW5kIHJldHJ5ICovCi0JCXRlbXAgPSBpbnRlbF9kZV9yZWFkKGRldl9wcml2 LCBEUF9UUF9DVEwoUE9SVF9FKSk7Ci0JCXRlbXAgJj0gfihEUF9UUF9DVExfRU5BQkxFIHwgRFBf VFBfQ1RMX0xJTktfVFJBSU5fTUFTSyk7Ci0JCXRlbXAgfD0gRFBfVFBfQ1RMX0xJTktfVFJBSU5f UEFUMTsKLQkJaW50ZWxfZGVfd3JpdGUoZGV2X3ByaXYsIERQX1RQX0NUTChQT1JUX0UpLCB0ZW1w KTsKLQkJaW50ZWxfZGVfcG9zdGluZ19yZWFkKGRldl9wcml2LCBEUF9UUF9DVEwoUE9SVF9FKSk7 Ci0KLQkJaW50ZWxfd2FpdF9kZGlfYnVmX2lkbGUoZGV2X3ByaXYsIFBPUlRfRSk7Ci0KLQkJLyog UmVzZXQgRkRJX1JYX01JU0MgcHdyZG4gbGFuZXMgKi8KLQkJdGVtcCA9IGludGVsX2RlX3JlYWQo ZGV2X3ByaXYsIEZESV9SWF9NSVNDKFBJUEVfQSkpOwotCQl0ZW1wICY9IH4oRkRJX1JYX1BXUkRO X0xBTkUxX01BU0sgfCBGRElfUlhfUFdSRE5fTEFORTBfTUFTSyk7Ci0JCXRlbXAgfD0gRkRJX1JY X1BXUkROX0xBTkUxX1ZBTCgyKSB8IEZESV9SWF9QV1JETl9MQU5FMF9WQUwoMik7Ci0JCWludGVs X2RlX3dyaXRlKGRldl9wcml2LCBGRElfUlhfTUlTQyhQSVBFX0EpLCB0ZW1wKTsKLQkJaW50ZWxf ZGVfcG9zdGluZ19yZWFkKGRldl9wcml2LCBGRElfUlhfTUlTQyhQSVBFX0EpKTsKLQl9Ci0KLQkv KiBFbmFibGUgbm9ybWFsIHBpeGVsIHNlbmRpbmcgZm9yIEZESSAqLwotCWludGVsX2RlX3dyaXRl KGRldl9wcml2LCBEUF9UUF9DVEwoUE9SVF9FKSwKLQkJICAgICAgIERQX1RQX0NUTF9GRElfQVVU T1RSQUlOIHwKLQkJICAgICAgIERQX1RQX0NUTF9MSU5LX1RSQUlOX05PUk1BTCB8Ci0JCSAgICAg ICBEUF9UUF9DVExfRU5IQU5DRURfRlJBTUVfRU5BQkxFIHwKLQkJICAgICAgIERQX1RQX0NUTF9F TkFCTEUpOwotfQotCiBzdGF0aWMgdm9pZCBpbnRlbF9kZGlfaW5pdF9kcF9idWZfcmVnKHN0cnVj dCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAogCQkJCSAgICAgIGNvbnN0IHN0cnVjdCBpbnRlbF9j cnRjX3N0YXRlICpjcnRjX3N0YXRlKQogewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvZGlzcGxheS9pbnRlbF9kZGkuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50 ZWxfZGRpLmgKaW5kZXggZGNjNzExY2ZlNGZlLi5lNDJiNmJkMDVlMDEgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGRpLmgKKysrIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kZGkuaApAQCAtOSw2ICs5LDEyIEBACiAjaW5jbHVkZSAi aW50ZWxfZGlzcGxheS5oIgogI2luY2x1ZGUgImk5MTVfcmVnLmgiCiAKK3N0cnVjdCBkZGlfYnVm X3RyYW5zIHsKKwl1MzIgdHJhbnMxOwkvKiBiYWxhbmNlIGxlZyBlbmFibGUsIGRlLWVtcGggbGV2 ZWwgKi8KKwl1MzIgdHJhbnMyOwkvKiB2cmVmIHNlbCwgdnN3aW5nICovCisJdTggaV9ib29zdDsJ LyogU0tMOiBJX2Jvb3N0OyB2YWxpZDogMHgwLCAweDEsIDB4MywgMHg3ICovCit9OworCiBzdHJ1 Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZTsKIHN0cnVjdCBkcm1faTkxNV9wcml2YXRlOwogc3RydWN0 IGludGVsX2Nvbm5lY3RvcjsKQEAgLTE3LDYgKzIzLDcgQEAgc3RydWN0IGludGVsX2NydGNfc3Rh dGU7CiBzdHJ1Y3QgaW50ZWxfZHA7CiBzdHJ1Y3QgaW50ZWxfZHBsbF9od19zdGF0ZTsKIHN0cnVj dCBpbnRlbF9lbmNvZGVyOworc3RydWN0IGludGVsX3NoYXJlZF9kcGxsOwogZW51bSB0cmFuc2Nv ZGVyOwogCiBpOTE1X3JlZ190IGRwX3RwX2N0bF9yZWcoc3RydWN0IGludGVsX2VuY29kZXIgKmVu Y29kZXIsCkBAIC0yNyw4ICszNCwxMSBAQCB2b2lkIGludGVsX2RkaV9mZGlfcG9zdF9kaXNhYmxl KHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlLAogCQkJCXN0cnVjdCBpbnRlbF9lbmNv ZGVyICppbnRlbF9lbmNvZGVyLAogCQkJCWNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpv bGRfY3J0Y19zdGF0ZSwKIAkJCQljb25zdCBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqb2xk X2Nvbm5fc3RhdGUpOwotdm9pZCBoc3dfZmRpX2xpbmtfdHJhaW4oc3RydWN0IGludGVsX2VuY29k ZXIgKmVuY29kZXIsCi0JCQljb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0 ZSk7Cit1MzIgaHN3X3BsbF90b19kZGlfcGxsX3NlbChjb25zdCBzdHJ1Y3QgaW50ZWxfc2hhcmVk X2RwbGwgKnBsbCk7Cit2b2lkIGludGVsX3ByZXBhcmVfZHBfZGRpX2J1ZmZlcnMoc3RydWN0IGlu dGVsX2VuY29kZXIgKmVuY29kZXIsCisJCQkJICBjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0 ZSAqY3J0Y19zdGF0ZSk7Cit2b2lkIGludGVsX3dhaXRfZGRpX2J1Zl9pZGxlKHN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdiwKKwkJCSAgICAgZW51bSBwb3J0IHBvcnQpOwogdm9pZCBp bnRlbF9kZGlfaW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIGVudW0gcG9y dCBwb3J0KTsKIGJvb2wgaW50ZWxfZGRpX2dldF9od19zdGF0ZShzdHJ1Y3QgaW50ZWxfZW5jb2Rl ciAqZW5jb2RlciwgZW51bSBwaXBlICpwaXBlKTsKIHZvaWQgaW50ZWxfZGRpX2VuYWJsZV90cmFu c2NvZGVyX2Z1bmMoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCmRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2ZkaS5jIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvZGlzcGxheS9pbnRlbF9mZGkuYwppbmRleCBiMmViOTZhZTEwYTIuLjE5YmJjMWY4ZGQ1 YSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9mZGkuYwor KysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2ZkaS5jCkBAIC0zLDkgKzMs NDkgQEAKICAqIENvcHlyaWdodCDCqSAyMDIwIEludGVsIENvcnBvcmF0aW9uCiAgKi8KICNpbmNs dWRlICJpbnRlbF9hdG9taWMuaCIKKyNpbmNsdWRlICJpbnRlbF9kZGkuaCIKICNpbmNsdWRlICJp bnRlbF9kaXNwbGF5X3R5cGVzLmgiCiAjaW5jbHVkZSAiaW50ZWxfZmRpLmgiCiAKK3N0YXRpYyBj b25zdCBzdHJ1Y3QgZGRpX2J1Zl90cmFucyBiZHdfZGRpX3RyYW5zbGF0aW9uc19mZGlbXSA9IHsK Kwl7IDB4MDBGRkZGRkYsIDB4MDAwMTAwMEUsIDB4MCB9LAorCXsgMHgwMEQ3NUZGRiwgMHgwMDA0 MDAwQSwgMHgwIH0sCisJeyAweDAwQzMwRkZGLCAweDAwMDcwMDA2LCAweDAgfSwKKwl7IDB4MDBB QUFGRkYsIDB4MDAwQzAwMDAsIDB4MCB9LAorCXsgMHgwMEZGRkZGRiwgMHgwMDA0MDAwQSwgMHgw IH0sCisJeyAweDAwRDc1RkZGLCAweDAwMDkwMDA0LCAweDAgfSwKKwl7IDB4MDBDMzBGRkYsIDB4 MDAwQzAwMDAsIDB4MCB9LAorCXsgMHgwMEZGRkZGRiwgMHgwMDA3MDAwNiwgMHgwIH0sCisJeyAw eDAwRDc1RkZGLCAweDAwMEMwMDAwLCAweDAgfSwKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3Qg ZGRpX2J1Zl90cmFucyBoc3dfZGRpX3RyYW5zbGF0aW9uc19mZGlbXSA9IHsKKwl7IDB4MDBGRkZG RkYsIDB4MDAwNzAwMEUsIDB4MCB9LAorCXsgMHgwMEQ3NUZGRiwgMHgwMDBGMDAwQSwgMHgwIH0s CisJeyAweDAwQzMwRkZGLCAweDAwMDYwMDA2LCAweDAgfSwKKwl7IDB4MDBBQUFGRkYsIDB4MDAx RTAwMDAsIDB4MCB9LAorCXsgMHgwMEZGRkZGRiwgMHgwMDBGMDAwQSwgMHgwIH0sCisJeyAweDAw RDc1RkZGLCAweDAwMTYwMDA0LCAweDAgfSwKKwl7IDB4MDBDMzBGRkYsIDB4MDAxRTAwMDAsIDB4 MCB9LAorCXsgMHgwMEZGRkZGRiwgMHgwMDA2MDAwNiwgMHgwIH0sCisJeyAweDAwRDc1RkZGLCAw eDAwMUUwMDAwLCAweDAgfSwKK307CisKK2NvbnN0IHN0cnVjdCBkZGlfYnVmX3RyYW5zICoKK2lu dGVsX2ZkaV9nZXRfYnVmX3RyYW5zKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwg aW50ICpuX2VudHJpZXMpCit7CisJaWYgKElTX0JST0FEV0VMTChkZXZfcHJpdikpIHsKKwkJKm5f ZW50cmllcyA9IEFSUkFZX1NJWkUoYmR3X2RkaV90cmFuc2xhdGlvbnNfZmRpKTsKKwkJcmV0dXJu IGJkd19kZGlfdHJhbnNsYXRpb25zX2ZkaTsKKwl9IGVsc2UgaWYgKElTX0hBU1dFTEwoZGV2X3By aXYpKSB7CisJCSpuX2VudHJpZXMgPSBBUlJBWV9TSVpFKGhzd19kZGlfdHJhbnNsYXRpb25zX2Zk aSk7CisJCXJldHVybiBoc3dfZGRpX3RyYW5zbGF0aW9uc19mZGk7CisJfQorCisJKm5fZW50cmll cyA9IDA7CisJcmV0dXJuIE5VTEw7Cit9CisKIC8qIHVuaXRzIG9mIDEwME1IeiAqLwogc3RhdGlj IGludCBwaXBlX3JlcXVpcmVkX2ZkaV9sYW5lcyhzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0 Y19zdGF0ZSkKIHsKQEAgLTU1MCw2ICs1OTAsMTQwIEBAIHN0YXRpYyB2b2lkIGl2Yl9tYW51YWxf ZmRpX2xpbmtfdHJhaW4oc3RydWN0IGludGVsX2NydGMgKmNydGMsCiAJZHJtX2RiZ19rbXMoJmRl dl9wcml2LT5kcm0sICJGREkgdHJhaW4gZG9uZS5cbiIpOwogfQogCisvKiBTdGFydGluZyB3aXRo IEhhc3dlbGwsIGRpZmZlcmVudCBEREkgcG9ydHMgY2FuIHdvcmsgaW4gRkRJIG1vZGUgZm9yCisg KiBjb25uZWN0aW9uIHRvIHRoZSBQQ0gtbG9jYXRlZCBjb25uZWN0b3JzLiBGb3IgdGhpcywgaXQg aXMgbmVjZXNzYXJ5IHRvIHRyYWluCisgKiBib3RoIHRoZSBEREkgcG9ydCBhbmQgUENIIHJlY2Vp dmVyIGZvciB0aGUgZGVzaXJlZCBEREkgYnVmZmVyIHNldHRpbmdzLgorICoKKyAqIFRoZSByZWNv bW1lbmRlZCBwb3J0IHRvIHdvcmsgaW4gRkRJIG1vZGUgaXMgRERJIEUsIHdoaWNoIHdlIHVzZSBo ZXJlLiBBbHNvLAorICogcGxlYXNlIG5vdGUgdGhhdCB3aGVuIEZESSBtb2RlIGlzIGFjdGl2ZSBv biBEREkgRSwgaXQgc2hhcmVzIDIgbGluZXMgd2l0aAorICogRERJIEEgKHdoaWNoIGlzIHVzZWQg Zm9yIGVEUCkKKyAqLwordm9pZCBoc3dfZmRpX2xpbmtfdHJhaW4oc3RydWN0IGludGVsX2VuY29k ZXIgKmVuY29kZXIsCisJCQljb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0 ZSkKK3sKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0 ZS0+dWFwaS5jcnRjKTsKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19p OTE1KGNydGMtPmJhc2UuZGV2KTsKKwl1MzIgdGVtcCwgaSwgcnhfY3RsX3ZhbCwgZGRpX3BsbF9z ZWw7CisKKwlpbnRlbF9wcmVwYXJlX2RwX2RkaV9idWZmZXJzKGVuY29kZXIsIGNydGNfc3RhdGUp OworCisJLyogU2V0IHRoZSBGRElfUlhfTUlTQyBwd3JkbiBsYW5lcyBhbmQgdGhlIDIgd29ya2Fy b3VuZHMgbGlzdGVkIGF0IHRoZQorCSAqIG1vZGUgc2V0ICJzZXF1ZW5jZSBmb3IgQ1JUIHBvcnQi IGRvY3VtZW50OgorCSAqIC0gVFAxIHRvIFRQMiB0aW1lIHdpdGggdGhlIGRlZmF1bHQgdmFsdWUK KwkgKiAtIEZESSBkZWxheSB0byA5MGgKKwkgKgorCSAqIFdhRkRJQXV0b0xpbmtTZXRUaW1pbmdP dmVycnJpZGU6aHN3CisJICovCisJaW50ZWxfZGVfd3JpdGUoZGV2X3ByaXYsIEZESV9SWF9NSVND KFBJUEVfQSksCisJCSAgICAgICBGRElfUlhfUFdSRE5fTEFORTFfVkFMKDIpIHwgRkRJX1JYX1BX UkROX0xBTkUwX1ZBTCgyKSB8IEZESV9SWF9UUDFfVE9fVFAyXzQ4IHwgRkRJX1JYX0ZESV9ERUxB WV85MCk7CisKKwkvKiBFbmFibGUgdGhlIFBDSCBSZWNlaXZlciBGREkgUExMICovCisJcnhfY3Rs X3ZhbCA9IGRldl9wcml2LT5mZGlfcnhfY29uZmlnIHwgRkRJX1JYX0VOSEFOQ0VfRlJBTUVfRU5B QkxFIHwKKwkJICAgICBGRElfUlhfUExMX0VOQUJMRSB8CisJCSAgICAgRkRJX0RQX1BPUlRfV0lE VEgoY3J0Y19zdGF0ZS0+ZmRpX2xhbmVzKTsKKwlpbnRlbF9kZV93cml0ZShkZXZfcHJpdiwgRkRJ X1JYX0NUTChQSVBFX0EpLCByeF9jdGxfdmFsKTsKKwlpbnRlbF9kZV9wb3N0aW5nX3JlYWQoZGV2 X3ByaXYsIEZESV9SWF9DVEwoUElQRV9BKSk7CisJdWRlbGF5KDIyMCk7CisKKwkvKiBTd2l0Y2gg ZnJvbSBSYXdjbGsgdG8gUENEY2xrICovCisJcnhfY3RsX3ZhbCB8PSBGRElfUENEQ0xLOworCWlu dGVsX2RlX3dyaXRlKGRldl9wcml2LCBGRElfUlhfQ1RMKFBJUEVfQSksIHJ4X2N0bF92YWwpOwor CisJLyogQ29uZmlndXJlIFBvcnQgQ2xvY2sgU2VsZWN0ICovCisJZGRpX3BsbF9zZWwgPSBoc3df cGxsX3RvX2RkaV9wbGxfc2VsKGNydGNfc3RhdGUtPnNoYXJlZF9kcGxsKTsKKwlpbnRlbF9kZV93 cml0ZShkZXZfcHJpdiwgUE9SVF9DTEtfU0VMKFBPUlRfRSksIGRkaV9wbGxfc2VsKTsKKwlkcm1f V0FSTl9PTigmZGV2X3ByaXYtPmRybSwgZGRpX3BsbF9zZWwgIT0gUE9SVF9DTEtfU0VMX1NQTEwp OworCisJLyogU3RhcnQgdGhlIHRyYWluaW5nIGl0ZXJhdGluZyB0aHJvdWdoIGF2YWlsYWJsZSB2 b2x0YWdlcyBhbmQgZW1waGFzaXMsCisJICogdGVzdGluZyBlYWNoIHZhbHVlIHR3aWNlLiAqLwor CWZvciAoaSA9IDA7IGkgPCBBUlJBWV9TSVpFKGhzd19kZGlfdHJhbnNsYXRpb25zX2ZkaSkgKiAy OyBpKyspIHsKKwkJLyogQ29uZmlndXJlIERQX1RQX0NUTCB3aXRoIGF1dG8tdHJhaW5pbmcgKi8K KwkJaW50ZWxfZGVfd3JpdGUoZGV2X3ByaXYsIERQX1RQX0NUTChQT1JUX0UpLAorCQkJICAgICAg IERQX1RQX0NUTF9GRElfQVVUT1RSQUlOIHwKKwkJCSAgICAgICBEUF9UUF9DVExfRU5IQU5DRURf RlJBTUVfRU5BQkxFIHwKKwkJCSAgICAgICBEUF9UUF9DVExfTElOS19UUkFJTl9QQVQxIHwKKwkJ CSAgICAgICBEUF9UUF9DVExfRU5BQkxFKTsKKworCQkvKiBDb25maWd1cmUgYW5kIGVuYWJsZSBE RElfQlVGX0NUTCBmb3IgRERJIEUgd2l0aCBuZXh0IHZvbHRhZ2UuCisJCSAqIERESSBFIGRvZXMg bm90IHN1cHBvcnQgcG9ydCByZXZlcnNhbCwgdGhlIGZ1bmN0aW9uYWxpdHkgaXMKKwkJICogYWNo aWV2ZWQgb24gdGhlIFBDSCBzaWRlIGluIEZESV9SWF9DVEwsIHNvIG5vIG5lZWQgdG8gc2V0IHRo ZQorCQkgKiBwb3J0IHJldmVyc2FsIGJpdCAqLworCQlpbnRlbF9kZV93cml0ZShkZXZfcHJpdiwg RERJX0JVRl9DVEwoUE9SVF9FKSwKKwkJCSAgICAgICBERElfQlVGX0NUTF9FTkFCTEUgfCAoKGNy dGNfc3RhdGUtPmZkaV9sYW5lcyAtIDEpIDw8IDEpIHwgRERJX0JVRl9UUkFOU19TRUxFQ1QoaSAv IDIpKTsKKwkJaW50ZWxfZGVfcG9zdGluZ19yZWFkKGRldl9wcml2LCBERElfQlVGX0NUTChQT1JU X0UpKTsKKworCQl1ZGVsYXkoNjAwKTsKKworCQkvKiBQcm9ncmFtIFBDSCBGREkgUmVjZWl2ZXIg VFUgKi8KKwkJaW50ZWxfZGVfd3JpdGUoZGV2X3ByaXYsIEZESV9SWF9UVVNJWkUxKFBJUEVfQSks IFRVX1NJWkUoNjQpKTsKKworCQkvKiBFbmFibGUgUENIIEZESSBSZWNlaXZlciB3aXRoIGF1dG8t dHJhaW5pbmcgKi8KKwkJcnhfY3RsX3ZhbCB8PSBGRElfUlhfRU5BQkxFIHwgRkRJX0xJTktfVFJB SU5fQVVUTzsKKwkJaW50ZWxfZGVfd3JpdGUoZGV2X3ByaXYsIEZESV9SWF9DVEwoUElQRV9BKSwg cnhfY3RsX3ZhbCk7CisJCWludGVsX2RlX3Bvc3RpbmdfcmVhZChkZXZfcHJpdiwgRkRJX1JYX0NU TChQSVBFX0EpKTsKKworCQkvKiBXYWl0IGZvciBGREkgcmVjZWl2ZXIgbGFuZSBjYWxpYnJhdGlv biAqLworCQl1ZGVsYXkoMzApOworCisJCS8qIFVuc2V0IEZESV9SWF9NSVNDIHB3cmRuIGxhbmVz ICovCisJCXRlbXAgPSBpbnRlbF9kZV9yZWFkKGRldl9wcml2LCBGRElfUlhfTUlTQyhQSVBFX0Ep KTsKKwkJdGVtcCAmPSB+KEZESV9SWF9QV1JETl9MQU5FMV9NQVNLIHwgRkRJX1JYX1BXUkROX0xB TkUwX01BU0spOworCQlpbnRlbF9kZV93cml0ZShkZXZfcHJpdiwgRkRJX1JYX01JU0MoUElQRV9B KSwgdGVtcCk7CisJCWludGVsX2RlX3Bvc3RpbmdfcmVhZChkZXZfcHJpdiwgRkRJX1JYX01JU0Mo UElQRV9BKSk7CisKKwkJLyogV2FpdCBmb3IgRkRJIGF1dG8gdHJhaW5pbmcgdGltZSAqLworCQl1 ZGVsYXkoNSk7CisKKwkJdGVtcCA9IGludGVsX2RlX3JlYWQoZGV2X3ByaXYsIERQX1RQX1NUQVRV UyhQT1JUX0UpKTsKKwkJaWYgKHRlbXAgJiBEUF9UUF9TVEFUVVNfQVVUT1RSQUlOX0RPTkUpIHsK KwkJCWRybV9kYmdfa21zKCZkZXZfcHJpdi0+ZHJtLAorCQkJCSAgICAiRkRJIGxpbmsgdHJhaW5p bmcgZG9uZSBvbiBzdGVwICVkXG4iLCBpKTsKKwkJCWJyZWFrOworCQl9CisKKwkJLyoKKwkJICog TGVhdmUgdGhpbmdzIGVuYWJsZWQgZXZlbiBpZiB3ZSBmYWlsZWQgdG8gdHJhaW4gRkRJLgorCQkg KiBSZXN1bHRzIGluIGxlc3MgZmlyZXdvcmtzIGZyb20gdGhlIHN0YXRlIGNoZWNrZXIuCisJCSAq LworCQlpZiAoaSA9PSBBUlJBWV9TSVpFKGhzd19kZGlfdHJhbnNsYXRpb25zX2ZkaSkgKiAyIC0g MSkgeworCQkJZHJtX2VycigmZGV2X3ByaXYtPmRybSwgIkZESSBsaW5rIHRyYWluaW5nIGZhaWxl ZCFcbiIpOworCQkJYnJlYWs7CisJCX0KKworCQlyeF9jdGxfdmFsICY9IH5GRElfUlhfRU5BQkxF OworCQlpbnRlbF9kZV93cml0ZShkZXZfcHJpdiwgRkRJX1JYX0NUTChQSVBFX0EpLCByeF9jdGxf dmFsKTsKKwkJaW50ZWxfZGVfcG9zdGluZ19yZWFkKGRldl9wcml2LCBGRElfUlhfQ1RMKFBJUEVf QSkpOworCisJCXRlbXAgPSBpbnRlbF9kZV9yZWFkKGRldl9wcml2LCBERElfQlVGX0NUTChQT1JU X0UpKTsKKwkJdGVtcCAmPSB+RERJX0JVRl9DVExfRU5BQkxFOworCQlpbnRlbF9kZV93cml0ZShk ZXZfcHJpdiwgRERJX0JVRl9DVEwoUE9SVF9FKSwgdGVtcCk7CisJCWludGVsX2RlX3Bvc3Rpbmdf cmVhZChkZXZfcHJpdiwgRERJX0JVRl9DVEwoUE9SVF9FKSk7CisKKwkJLyogRGlzYWJsZSBEUF9U UF9DVEwgYW5kIEZESV9SWF9DVEwgYW5kIHJldHJ5ICovCisJCXRlbXAgPSBpbnRlbF9kZV9yZWFk KGRldl9wcml2LCBEUF9UUF9DVEwoUE9SVF9FKSk7CisJCXRlbXAgJj0gfihEUF9UUF9DVExfRU5B QkxFIHwgRFBfVFBfQ1RMX0xJTktfVFJBSU5fTUFTSyk7CisJCXRlbXAgfD0gRFBfVFBfQ1RMX0xJ TktfVFJBSU5fUEFUMTsKKwkJaW50ZWxfZGVfd3JpdGUoZGV2X3ByaXYsIERQX1RQX0NUTChQT1JU X0UpLCB0ZW1wKTsKKwkJaW50ZWxfZGVfcG9zdGluZ19yZWFkKGRldl9wcml2LCBEUF9UUF9DVEwo UE9SVF9FKSk7CisKKwkJaW50ZWxfd2FpdF9kZGlfYnVmX2lkbGUoZGV2X3ByaXYsIFBPUlRfRSk7 CisKKwkJLyogUmVzZXQgRkRJX1JYX01JU0MgcHdyZG4gbGFuZXMgKi8KKwkJdGVtcCA9IGludGVs X2RlX3JlYWQoZGV2X3ByaXYsIEZESV9SWF9NSVNDKFBJUEVfQSkpOworCQl0ZW1wICY9IH4oRkRJ X1JYX1BXUkROX0xBTkUxX01BU0sgfCBGRElfUlhfUFdSRE5fTEFORTBfTUFTSyk7CisJCXRlbXAg fD0gRkRJX1JYX1BXUkROX0xBTkUxX1ZBTCgyKSB8IEZESV9SWF9QV1JETl9MQU5FMF9WQUwoMik7 CisJCWludGVsX2RlX3dyaXRlKGRldl9wcml2LCBGRElfUlhfTUlTQyhQSVBFX0EpLCB0ZW1wKTsK KwkJaW50ZWxfZGVfcG9zdGluZ19yZWFkKGRldl9wcml2LCBGRElfUlhfTUlTQyhQSVBFX0EpKTsK Kwl9CisKKwkvKiBFbmFibGUgbm9ybWFsIHBpeGVsIHNlbmRpbmcgZm9yIEZESSAqLworCWludGVs X2RlX3dyaXRlKGRldl9wcml2LCBEUF9UUF9DVEwoUE9SVF9FKSwKKwkJICAgICAgIERQX1RQX0NU TF9GRElfQVVUT1RSQUlOIHwKKwkJICAgICAgIERQX1RQX0NUTF9MSU5LX1RSQUlOX05PUk1BTCB8 CisJCSAgICAgICBEUF9UUF9DVExfRU5IQU5DRURfRlJBTUVfRU5BQkxFIHwKKwkJICAgICAgIERQ X1RQX0NUTF9FTkFCTEUpOworfQorCiB2b2lkIGlsa19mZGlfcGxsX2VuYWJsZShjb25zdCBzdHJ1 Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIHsKIAlzdHJ1Y3QgaW50ZWxfY3J0YyAq aW50ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+dWFwaS5jcnRjKTsKZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZmRpLmggYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2ZkaS5oCmluZGV4IGE5Y2QyMTY2M2ViOC4uNWZk NjVmNjdlZGE4IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVs X2ZkaS5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZmRpLmgKQEAg LTksNiArOSwxMSBAQAogc3RydWN0IGRybV9pOTE1X3ByaXZhdGU7CiBzdHJ1Y3QgaW50ZWxfY3J0 YzsKIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlOworc3RydWN0IGludGVsX2VuY29kZXI7CitzdHJ1 Y3QgZGRpX2J1Zl90cmFuczsKKworY29uc3Qgc3RydWN0IGRkaV9idWZfdHJhbnMgKgoraW50ZWxf ZmRpX2dldF9idWZfdHJhbnMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCBpbnQg Km5fZW50cmllcyk7CiAKICNkZWZpbmUgSTkxNV9ESVNQTEFZX0NPTkZJR19SRVRSWSAxCiBpbnQg aWxrX2ZkaV9jb21wdXRlX2NvbmZpZyhzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YywKQEAg LTE4LDUgKzIzLDcgQEAgdm9pZCBpbGtfZmRpX2Rpc2FibGUoc3RydWN0IGludGVsX2NydGMgKmNy dGMpOwogdm9pZCBpbGtfZmRpX3BsbF9kaXNhYmxlKHN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9j cnRjKTsKIHZvaWQgaWxrX2ZkaV9wbGxfZW5hYmxlKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0 YXRlICpjcnRjX3N0YXRlKTsKIHZvaWQgaW50ZWxfZmRpX2luaXRfaG9vayhzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwordm9pZCBoc3dfZmRpX2xpbmtfdHJhaW4oc3RydWN0IGlu dGVsX2VuY29kZXIgKmVuY29kZXIsCisJCQljb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAq Y3J0Y19zdGF0ZSk7CiAKICNlbmRpZgotLSAKMi4yNy4wCgpfX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdm eEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFp bG1hbi9saXN0aW5mby9pbnRlbC1nZngK