From mboxrd@z Thu Jan 1 00:00:00 1970 From: Thomas Hellstrom Subject: [PATCH 23/28] drm/vmwgfx: Kill a bunch of sparse warnings Date: Wed, 12 Aug 2015 22:43:12 -0700 Message-ID: <1439444597-4664-24-git-send-email-thellstrom@vmware.com> References: <1439444597-4664-1-git-send-email-thellstrom@vmware.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mx6.bahnhof.se (mx6.bahnhof.se [213.80.101.16]) by gabe.freedesktop.org (Postfix) with ESMTPS id A73596EBE7 for ; Wed, 12 Aug 2015 23:03:44 -0700 (PDT) Received: from localhost (mf.bahnhof.se [213.80.101.20]) by mx6-reinject (Postfix) with ESMTP id 28D014412B for ; Thu, 13 Aug 2015 08:03:43 +0200 (CEST) Received: from mf3.bahnhof.se ([127.0.0.1]) by localhost (mf3.bahnhof.se [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id g4CoGXqFFHQo for ; Thu, 13 Aug 2015 08:03:33 +0200 (CEST) Received: from mail.shipmail.org (h-5-150-198-217.na.cust.bahnhof.se [5.150.198.217]) by mf3.bahnhof.se (Postfix) with ESMTP id 2AFFB3E8D01 for ; Thu, 13 Aug 2015 08:03:03 +0200 (CEST) Received: from mail.shipmail.org (lin0.kontor.shipmail.org [127.0.0.1]) by mail.shipmail.org (Postfix) with ESMTP id B46623F4006 for ; Thu, 13 Aug 2015 07:43:26 +0200 (CEST) Received: from localhost.localdomain (lin0.kontor.shipmail.org [127.0.0.1]) by mail.shipmail.org (Postfix) with ESMTP id 867853F4008 for ; Thu, 13 Aug 2015 07:43:26 +0200 (CEST) In-Reply-To: <1439444597-4664-1-git-send-email-thellstrom@vmware.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org V2UncmUgZ2l2aW5nIHVwIGFsbCBhdHRlbXB0cyB0byBrZWVwIGNwdS0gYW5kIGRldmljZSBieXRl IG9yZGVyaW5nIHNlcGFyYXRlLgoKVGhpcyBzaWxlbmNlcyBzcGFyc2Ugd2hlbiBjb21waWxlZCB1 c2luZwptYWtlIEM9MiBDRj0iLURfX0NIRUNLX0VORElBTl9fIgoKU2lnbmVkLW9mZi1ieTogVGhv bWFzIEhlbGxzdHJvbSA8dGhlbGxzdHJvbUB2bXdhcmUuY29tPgotLS0KIGRyaXZlcnMvZ3B1L2Ry bS92bXdnZngvc3ZnYTNkX3JlZy5oICAgICAgfCAgMiArLQogZHJpdmVycy9ncHUvZHJtL3Ztd2dm eC92bXdnZnhfY21kYnVmLmMgICB8ICA4ICsrKy0tLS0KIGRyaXZlcnMvZ3B1L2RybS92bXdnZngv dm13Z2Z4X2NvbnRleHQuYyAgfCAxMiArKysrKy0tLS0tLQogZHJpdmVycy9ncHUvZHJtL3Ztd2dm eC92bXdnZnhfZG1hYnVmLmMgICB8ICAyICstCiBkcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dm eF9kcnYuYyAgICAgIHwgIDQgKystLQogZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfZHJ2 LmggICAgICB8ICA2ICsrKy0tLQogZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfZXhlY2J1 Zi5jICB8IDE4ICsrKysrKysrLS0tLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4 X2ZiLmMgICAgICAgfCAgNCArKy0tCiBkcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9mZW5j ZS5jICAgIHwgIDggKysrLS0tLQogZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfZmlmby5j ICAgICB8IDM3ICsrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tCiBkcml2ZXJzL2dwdS9k cm0vdm13Z2Z4L3Ztd2dmeF9pb2N0bC5jICAgIHwgIDggKysrLS0tLQogZHJpdmVycy9ncHUvZHJt L3Ztd2dmeC92bXdnZnhfaXJxLmMgICAgICB8ICA0ICsrLS0KIGRyaXZlcnMvZ3B1L2RybS92bXdn Zngvdm13Z2Z4X2ttcy5jICAgICAgfCAzMiArKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0KIGRy aXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2xkdS5jICAgICAgfCAxMCArKysrLS0tLS0KIGRy aXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X21vYi5jICAgICAgfCAxNCArKysrKystLS0tLS0K IGRyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X3JlZy5oICAgICAgfCAgNiArKystLS0KIGRy aXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X3Jlc291cmNlLmMgfCAxNyArKysrKystLS0tLS0t LS0KIGRyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X3Njcm4uYyAgICAgfCAgNCArKy0tCiBk cml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9zaGFkZXIuYyAgIHwgMTAgKysrKy0tLS0tCiBk cml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9zdXJmYWNlLmMgIHwgIDQgKystLQogMjAgZmls ZXMgY2hhbmdlZCwgMTAzIGluc2VydGlvbnMoKyksIDEwNyBkZWxldGlvbnMoLSkKCmRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3N2Z2EzZF9yZWcuaCBiL2RyaXZlcnMvZ3B1L2Ry bS92bXdnZngvc3ZnYTNkX3JlZy5oCmluZGV4IGM5YTU5NWEuLmY0YWY5ZjEgMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvZ3B1L2RybS92bXdnZngvc3ZnYTNkX3JlZy5oCisrKyBiL2RyaXZlcnMvZ3B1L2Ry bS92bXdnZngvc3ZnYTNkX3JlZy5oCkBAIC0zNSw3ICszNSw3IEBACiAjaW5jbHVkZSAic3ZnYV9y ZWcuaCIKIAogdHlwZWRlZiB1aW50MzIgUFBOOwotdHlwZWRlZiBfX2xlNjQgUFBONjQ7Cit0eXBl ZGVmIHU2NCBQUE42NDsKIAogLyoKICAqIDNEIEhhcmR3YXJlIFZlcnNpb24KZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2NtZGJ1Zi5jIGIvZHJpdmVycy9ncHUvZHJt L3Ztd2dmeC92bXdnZnhfY21kYnVmLmMKaW5kZXggZTk0ZmViMy4uMzJlYzUyZSAxMDA2NDQKLS0t IGEvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfY21kYnVmLmMKKysrIGIvZHJpdmVycy9n cHUvZHJtL3Ztd2dmeC92bXdnZnhfY21kYnVmLmMKQEAgLTY5NSwxMCArNjk1LDEwIEBAIHN0YXRp YyBib29sIHZtd19jbWRidWZfdHJ5X2FsbG9jKHN0cnVjdCB2bXdfY21kYnVmX21hbiAqbWFuLAog ICogbm8gc3BhY2UgYXZhaWxhYmxlIEFUTSwgaXQgdHVybnMgb24gSVJRIGhhbmRsaW5nIGFuZCBz bGVlcHMgd2FpdGluZyBmb3IgaXQgdG8KICAqIGJlY29tZSBhdmFpbGFibGUuCiAgKi8KLWludCB2 bXdfY21kYnVmX2FsbG9jX3NwYWNlKHN0cnVjdCB2bXdfY21kYnVmX21hbiAqbWFuLAotCQkJICAg c3RydWN0IGRybV9tbV9ub2RlICpub2RlLAotCQkJICAgc2l6ZV90IHNpemUsCi0JCQkgICBib29s IGludGVycnVwdGlibGUpCitzdGF0aWMgaW50IHZtd19jbWRidWZfYWxsb2Nfc3BhY2Uoc3RydWN0 IHZtd19jbWRidWZfbWFuICptYW4sCisJCQkJICBzdHJ1Y3QgZHJtX21tX25vZGUgKm5vZGUsCisJ CQkJICBzaXplX3Qgc2l6ZSwKKwkJCQkgIGJvb2wgaW50ZXJydXB0aWJsZSkKIHsKIAlzdHJ1Y3Qg dm13X2NtZGJ1Zl9hbGxvY19pbmZvIGluZm87CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS92bXdnZngvdm13Z2Z4X2NvbnRleHQuYyBiL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4 X2NvbnRleHQuYwppbmRleCBhOGUzNzBhLi4yYWE4YmI4IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dw dS9kcm0vdm13Z2Z4L3Ztd2dmeF9jb250ZXh0LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3Ztd2dm eC92bXdnZnhfY29udGV4dC5jCkBAIC0xMzUsOSArMTM1LDkgQEAgc3RhdGljIHZvaWQgdm13X2h3 X2NvbnRleHRfZGVzdHJveShzdHJ1Y3Qgdm13X3Jlc291cmNlICpyZXMpCiAJCXJldHVybjsKIAl9 CiAKLQljbWQtPmhlYWRlci5pZCA9IGNwdV90b19sZTMyKFNWR0FfM0RfQ01EX0NPTlRFWFRfREVT VFJPWSk7Ci0JY21kLT5oZWFkZXIuc2l6ZSA9IGNwdV90b19sZTMyKHNpemVvZihjbWQtPmJvZHkp KTsKLQljbWQtPmJvZHkuY2lkID0gY3B1X3RvX2xlMzIocmVzLT5pZCk7CisJY21kLT5oZWFkZXIu aWQgPSBTVkdBXzNEX0NNRF9DT05URVhUX0RFU1RST1k7CisJY21kLT5oZWFkZXIuc2l6ZSA9IHNp emVvZihjbWQtPmJvZHkpOworCWNtZC0+Ym9keS5jaWQgPSByZXMtPmlkOwogCiAJdm13X2ZpZm9f Y29tbWl0KGRldl9wcml2LCBzaXplb2YoKmNtZCkpOwogCXZtd19maWZvX3Jlc291cmNlX2RlYyhk ZXZfcHJpdik7CkBAIC0yMTUsOSArMjE1LDkgQEAgc3RhdGljIGludCB2bXdfY29udGV4dF9pbml0 KHN0cnVjdCB2bXdfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJCXJldHVybiAtRU5PTUVNOwogCX0KIAot CWNtZC0+aGVhZGVyLmlkID0gY3B1X3RvX2xlMzIoU1ZHQV8zRF9DTURfQ09OVEVYVF9ERUZJTkUp OwotCWNtZC0+aGVhZGVyLnNpemUgPSBjcHVfdG9fbGUzMihzaXplb2YoY21kLT5ib2R5KSk7Ci0J Y21kLT5ib2R5LmNpZCA9IGNwdV90b19sZTMyKHJlcy0+aWQpOworCWNtZC0+aGVhZGVyLmlkID0g U1ZHQV8zRF9DTURfQ09OVEVYVF9ERUZJTkU7CisJY21kLT5oZWFkZXIuc2l6ZSA9IHNpemVvZihj bWQtPmJvZHkpOworCWNtZC0+Ym9keS5jaWQgPSByZXMtPmlkOwogCiAJdm13X2ZpZm9fY29tbWl0 KGRldl9wcml2LCBzaXplb2YoKmNtZCkpOwogCXZtd19maWZvX3Jlc291cmNlX2luYyhkZXZfcHJp dik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9kbWFidWYuYyBi L2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2RtYWJ1Zi5jCmluZGV4IDRiOTM0NGQuLjli NGYwOTMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2RtYWJ1Zi5j CisrKyBiL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2RtYWJ1Zi5jCkBAIC0yMjUsNyAr MjI1LDcgQEAgaW50IHZtd19kbWFidWZfdW5waW4oc3RydWN0IHZtd19wcml2YXRlICpkZXZfcHJp diwKIAlpZiAodW5saWtlbHkocmV0ICE9IDApKQogCQlyZXR1cm4gcmV0OwogCi0JcmV0ID0gdHRt X2JvX3Jlc2VydmUoYm8sIGludGVycnVwdGlibGUsIGZhbHNlLCBmYWxzZSwgMCk7CisJcmV0ID0g dHRtX2JvX3Jlc2VydmUoYm8sIGludGVycnVwdGlibGUsIGZhbHNlLCBmYWxzZSwgTlVMTCk7CiAJ aWYgKHVubGlrZWx5KHJldCAhPSAwKSkKIAkJZ290byBlcnI7CiAKZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2Rydi5jIGIvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92 bXdnZnhfZHJ2LmMKaW5kZXggMTg5MjE0NC4uYWI2N2QyYSAxMDA2NDQKLS0tIGEvZHJpdmVycy9n cHUvZHJtL3Ztd2dmeC92bXdnZnhfZHJ2LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92 bXdnZnhfZHJ2LmMKQEAgLTEyMjUsNyArMTIyNSw3IEBAIHN0YXRpYyB2b2lkIHZtd19tYXN0ZXJf ZHJvcChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogICogQGRldl9wcml2OiBQb2ludGVyIHRvIGRl dmljZSBwcml2YXRlIHN0cnVjdC4KICAqIE5lZWRzIHRoZSByZXNlcnZhdGlvbiBzZW0gdG8gYmUg aGVsZCBpbiBub24tZXhjbHVzaXZlIG1vZGUuCiAgKi8KLXZvaWQgX192bXdfc3ZnYV9lbmFibGUo c3RydWN0IHZtd19wcml2YXRlICpkZXZfcHJpdikKK3N0YXRpYyB2b2lkIF9fdm13X3N2Z2FfZW5h YmxlKHN0cnVjdCB2bXdfcHJpdmF0ZSAqZGV2X3ByaXYpCiB7CiAJc3Bpbl9sb2NrKCZkZXZfcHJp di0+c3ZnYV9sb2NrKTsKIAlpZiAoIWRldl9wcml2LT5iZGV2Lm1hbltUVE1fUExfVlJBTV0udXNl X3R5cGUpIHsKQEAgLTEyNTQsNyArMTI1NCw3IEBAIHZvaWQgdm13X3N2Z2FfZW5hYmxlKHN0cnVj dCB2bXdfcHJpdmF0ZSAqZGV2X3ByaXYpCiAgKiBOZWVkcyB0aGUgcmVzZXJ2YXRpb24gc2VtIHRv IGJlIGhlbGQgaW4gZXhjbHVzaXZlIG1vZGUuCiAgKiBXaWxsIG5vdCBlbXB0eSBWUkFNLiBWUkFN IG11c3QgYmUgZW1wdGllZCBieSBjYWxsZXIuCiAgKi8KLXZvaWQgX192bXdfc3ZnYV9kaXNhYmxl KHN0cnVjdCB2bXdfcHJpdmF0ZSAqZGV2X3ByaXYpCitzdGF0aWMgdm9pZCBfX3Ztd19zdmdhX2Rp c2FibGUoc3RydWN0IHZtd19wcml2YXRlICpkZXZfcHJpdikKIHsKIAlzcGluX2xvY2soJmRldl9w cml2LT5zdmdhX2xvY2spOwogCWlmIChkZXZfcHJpdi0+YmRldi5tYW5bVFRNX1BMX1ZSQU1dLnVz ZV90eXBlKSB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9kcnYu aCBiL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2Rydi5oCmluZGV4IDlhZTU3MzYuLmM5 ZWE5YjEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2Rydi5oCisr KyBiL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2Rydi5oCkBAIC0xNzgsOCArMTc4LDgg QEAgc3RydWN0IHZtd19tYXJrZXJfcXVldWUgewogCiBzdHJ1Y3Qgdm13X2ZpZm9fc3RhdGUgewog CXVuc2lnbmVkIGxvbmcgcmVzZXJ2ZWRfc2l6ZTsKLQlfX2xlMzIgKmR5bmFtaWNfYnVmZmVyOwot CV9fbGUzMiAqc3RhdGljX2J1ZmZlcjsKKwl1MzIgKmR5bmFtaWNfYnVmZmVyOworCXUzMiAqc3Rh dGljX2J1ZmZlcjsKIAl1bnNpZ25lZCBsb25nIHN0YXRpY19idWZmZXJfc2l6ZTsKIAlib29sIHVz aW5nX2JvdW5jZV9idWZmZXI7CiAJdWludDMyX3QgY2FwYWJpbGl0aWVzOwpAQCAtNDA1LDcgKzQw NSw3IEBAIHN0cnVjdCB2bXdfcHJpdmF0ZSB7CiAJdWludDMyX3Qgc3RkdV9tYXhfaGVpZ2h0Owog CXVpbnQzMl90IGluaXRpYWxfd2lkdGg7CiAJdWludDMyX3QgaW5pdGlhbF9oZWlnaHQ7Ci0JX19s ZTMyIF9faW9tZW0gKm1taW9fdmlydDsKKwl1MzIgX19pb21lbSAqbW1pb192aXJ0OwogCWludCBt bWlvX210cnI7CiAJdWludDMyX3QgY2FwYWJpbGl0aWVzOwogCXVpbnQzMl90IG1heF9nbXJfaWRz OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfZXhlY2J1Zi5jIGIv ZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfZXhlY2J1Zi5jCmluZGV4IDY0ZGJhNTMuLjQw ZmRkMDIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2V4ZWNidWYu YworKysgYi9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9leGVjYnVmLmMKQEAgLTE4NTAs NyArMTg1MCw3IEBAIHN0YXRpYyBpbnQgdm13X2NtZF9jaGVja19ub3RfM2Qoc3RydWN0IHZtd19w cml2YXRlICpkZXZfcHJpdiwKIAl1aW50MzJfdCBzaXplX3JlbWFpbmluZyA9ICpzaXplOwogCXVp bnQzMl90IGNtZF9pZDsKIAotCWNtZF9pZCA9IGxlMzJfdG9fY3B1KCgodWludDMyX3QgKilidWYp WzBdKTsKKwljbWRfaWQgPSAoKHVpbnQzMl90ICopYnVmKVswXTsKIAlzd2l0Y2ggKGNtZF9pZCkg ewogCWNhc2UgU1ZHQV9DTURfVVBEQVRFOgogCQkqc2l6ZSA9IHNpemVvZih1aW50MzJfdCkgKyBz aXplb2YoU1ZHQUZpZm9DbWRVcGRhdGUpOwpAQCAtMjA2NiwxNCArMjA2NiwxNCBAQCBzdGF0aWMg aW50IHZtd19jbWRfY2hlY2soc3RydWN0IHZtd19wcml2YXRlICpkZXZfcHJpdiwKIAljb25zdCBz dHJ1Y3Qgdm13X2NtZF9lbnRyeSAqZW50cnk7CiAJYm9vbCBnYiA9IGRldl9wcml2LT5jYXBhYmls aXRpZXMgJiBTVkdBX0NBUF9HQk9CSkVDVFM7CiAKLQljbWRfaWQgPSBsZTMyX3RvX2NwdSgoKHVp bnQzMl90ICopYnVmKVswXSk7CisJY21kX2lkID0gKCh1aW50MzJfdCAqKWJ1ZilbMF07CiAJLyog SGFuZGxlIGFueSBub25lIDNEIGNvbW1hbmRzICovCiAJaWYgKHVubGlrZWx5KGNtZF9pZCA8IFNW R0FfQ01EX01BWCkpCiAJCXJldHVybiB2bXdfY21kX2NoZWNrX25vdF8zZChkZXZfcHJpdiwgc3df Y29udGV4dCwgYnVmLCBzaXplKTsKIAogCi0JY21kX2lkID0gbGUzMl90b19jcHUoaGVhZGVyLT5p ZCk7Ci0JKnNpemUgPSBsZTMyX3RvX2NwdShoZWFkZXItPnNpemUpICsgc2l6ZW9mKFNWR0EzZENt ZEhlYWRlcik7CisJY21kX2lkID0gaGVhZGVyLT5pZDsKKwkqc2l6ZSA9IGhlYWRlci0+c2l6ZSAr IHNpemVvZihTVkdBM2RDbWRIZWFkZXIpOwogCiAJY21kX2lkIC09IFNWR0FfM0RfQ01EX0JBU0U7 CiAJaWYgKHVubGlrZWx5KCpzaXplID4gc2l6ZV9yZW1haW5pbmcpKQpAQCAtMjQ5OSwxMSArMjQ5 OSwxMSBAQCBzdGF0aWMgaW50IHZtd19leGVjYnVmX3N1Ym1pdF9jbWRidWYoc3RydWN0IHZtd19w cml2YXRlICpkZXZfcHJpdiwKICAqIElmIHRoZSBmdW5jdGlvbiBpcyBpbnRlcnJ1cHRlZCBieSBh IHNpZ25hbCB3aGlsZSBzbGVlcGluZywgaXQgd2lsbCByZXR1cm4KICAqIC1FUkVTVEFSVFNZUyBj YXN0ZWQgdG8gYSBwb2ludGVyIGVycm9yIHZhbHVlLgogICovCi12b2lkICp2bXdfZXhlY2J1Zl9j bWRidWYoc3RydWN0IHZtd19wcml2YXRlICpkZXZfcHJpdiwKLQkJCSB2b2lkIF9fdXNlciAqdXNl cl9jb21tYW5kcywKLQkJCSB2b2lkICprZXJuZWxfY29tbWFuZHMsCi0JCQkgdTMyIGNvbW1hbmRf c2l6ZSwKLQkJCSBzdHJ1Y3Qgdm13X2NtZGJ1Zl9oZWFkZXIgKipoZWFkZXIpCitzdGF0aWMgdm9p ZCAqdm13X2V4ZWNidWZfY21kYnVmKHN0cnVjdCB2bXdfcHJpdmF0ZSAqZGV2X3ByaXYsCisJCQkJ dm9pZCBfX3VzZXIgKnVzZXJfY29tbWFuZHMsCisJCQkJdm9pZCAqa2VybmVsX2NvbW1hbmRzLAor CQkJCXUzMiBjb21tYW5kX3NpemUsCisJCQkJc3RydWN0IHZtd19jbWRidWZfaGVhZGVyICoqaGVh ZGVyKQogewogCXNpemVfdCBjbWRidWZfc2l6ZTsKIAlpbnQgcmV0OwpkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfZmIuYyBiL2RyaXZlcnMvZ3B1L2RybS92bXdnZngv dm13Z2Z4X2ZiLmMKaW5kZXggOWRiYjIwMy4uOTg1NjgwMyAxMDA2NDQKLS0tIGEvZHJpdmVycy9n cHUvZHJtL3Ztd2dmeC92bXdnZnhfZmIuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Zt d2dmeF9mYi5jCkBAIC0zMzEsNyArMzMxLDcgQEAgc3RhdGljIHZvaWQgdm13X2RlZmVycmVkX2lv KHN0cnVjdCBmYl9pbmZvICppbmZvLAogCXZtd19mYl9kaXJ0eV9mbHVzaChwYXIpOwogfTsKIAot c3RydWN0IGZiX2RlZmVycmVkX2lvIHZtd19kZWZpbyA9IHsKK3N0YXRpYyBzdHJ1Y3QgZmJfZGVm ZXJyZWRfaW8gdm13X2RlZmlvID0gewogCS5kZWxheQkJPSBWTVdfRElSVFlfREVMQVksCiAJLmRl ZmVycmVkX2lvCT0gdm13X2RlZmVycmVkX2lvLAogfTsKQEAgLTcwNiw3ICs3MDYsNyBAQCBpbnQg dm13X2ZiX2luaXQoc3RydWN0IHZtd19wcml2YXRlICp2bXdfcHJpdikKIAlpbmZvLT5maXguc21l bV9sZW4gPSBmYl9zaXplOwogCiAJaW5mby0+cHNldWRvX3BhbGV0dGUgPSBwYXItPnBzZXVkb19w YWxldHRlOwotCWluZm8tPnNjcmVlbl9iYXNlID0gcGFyLT52bWFsbG9jOworCWluZm8tPnNjcmVl bl9iYXNlID0gKGNoYXIgX19pb21lbSAqKXBhci0+dm1hbGxvYzsKIAlpbmZvLT5zY3JlZW5fc2l6 ZSA9IGZiX3NpemU7CiAKIAlpbmZvLT5mbGFncyA9IEZCSU5GT19ERUZBVUxUOwpkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfZmVuY2UuYyBiL2RyaXZlcnMvZ3B1L2Ry bS92bXdnZngvdm13Z2Z4X2ZlbmNlLmMKaW5kZXggOTQ1ZjFlMC4uNzVkNjIyMiAxMDA2NDQKLS0t IGEvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfZmVuY2UuYworKysgYi9kcml2ZXJzL2dw dS9kcm0vdm13Z2Z4L3Ztd2dmeF9mZW5jZS5jCkBAIC0xNDIsNyArMTQyLDcgQEAgc3RhdGljIGJv b2wgdm13X2ZlbmNlX2VuYWJsZV9zaWduYWxpbmcoc3RydWN0IGZlbmNlICpmKQogCXN0cnVjdCB2 bXdfZmVuY2VfbWFuYWdlciAqZm1hbiA9IGZtYW5fZnJvbV9mZW5jZShmZW5jZSk7CiAJc3RydWN0 IHZtd19wcml2YXRlICpkZXZfcHJpdiA9IGZtYW4tPmRldl9wcml2OwogCi0JX19sZTMyIF9faW9t ZW0gKmZpZm9fbWVtID0gZGV2X3ByaXYtPm1taW9fdmlydDsKKwl1MzIgX19pb21lbSAqZmlmb19t ZW0gPSBkZXZfcHJpdi0+bW1pb192aXJ0OwogCXUzMiBzZXFubyA9IGlvcmVhZDMyKGZpZm9fbWVt ICsgU1ZHQV9GSUZPX0ZFTkNFKTsKIAlpZiAoc2Vxbm8gLSBmZW5jZS0+YmFzZS5zZXFubyA8IFZN V19GRU5DRV9XUkFQKQogCQlyZXR1cm4gZmFsc2U7CkBAIC0zODYsNyArMzg2LDcgQEAgc3RhdGlj IGJvb2wgdm13X2ZlbmNlX2dvYWxfbmV3X2xvY2tlZChzdHJ1Y3Qgdm13X2ZlbmNlX21hbmFnZXIg KmZtYW4sCiAJCQkJICAgICAgdTMyIHBhc3NlZF9zZXFubykKIHsKIAl1MzIgZ29hbF9zZXFubzsK LQlfX2xlMzIgX19pb21lbSAqZmlmb19tZW07CisJdTMyIF9faW9tZW0gKmZpZm9fbWVtOwogCXN0 cnVjdCB2bXdfZmVuY2Vfb2JqICpmZW5jZTsKIAogCWlmIChsaWtlbHkoIWZtYW4tPnNlcW5vX3Zh bGlkKSkKQEAgLTQzMCw3ICs0MzAsNyBAQCBzdGF0aWMgYm9vbCB2bXdfZmVuY2VfZ29hbF9jaGVj a19sb2NrZWQoc3RydWN0IHZtd19mZW5jZV9vYmogKmZlbmNlKQogewogCXN0cnVjdCB2bXdfZmVu Y2VfbWFuYWdlciAqZm1hbiA9IGZtYW5fZnJvbV9mZW5jZShmZW5jZSk7CiAJdTMyIGdvYWxfc2Vx bm87Ci0JX19sZTMyIF9faW9tZW0gKmZpZm9fbWVtOworCXUzMiBfX2lvbWVtICpmaWZvX21lbTsK IAogCWlmIChmZW5jZV9pc19zaWduYWxlZF9sb2NrZWQoJmZlbmNlLT5iYXNlKSkKIAkJcmV0dXJu IGZhbHNlOwpAQCAtNDUzLDcgKzQ1Myw3IEBAIHN0YXRpYyB2b2lkIF9fdm13X2ZlbmNlc191cGRh dGUoc3RydWN0IHZtd19mZW5jZV9tYW5hZ2VyICpmbWFuKQogCXN0cnVjdCBsaXN0X2hlYWQgYWN0 aW9uX2xpc3Q7CiAJYm9vbCBuZWVkc19yZXJ1bjsKIAl1aW50MzJfdCBzZXFubywgbmV3X3NlcW5v OwotCV9fbGUzMiBfX2lvbWVtICpmaWZvX21lbSA9IGZtYW4tPmRldl9wcml2LT5tbWlvX3ZpcnQ7 CisJdTMyIF9faW9tZW0gKmZpZm9fbWVtID0gZm1hbi0+ZGV2X3ByaXYtPm1taW9fdmlydDsKIAog CXNlcW5vID0gaW9yZWFkMzIoZmlmb19tZW0gKyBTVkdBX0ZJRk9fRkVOQ0UpOwogcmVydW46CmRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9maWZvLmMgYi9kcml2ZXJz L2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9maWZvLmMKaW5kZXggOWI4YjA5Zi4uN2E2Y2YxNyAxMDA2 NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfZmlmby5jCisrKyBiL2RyaXZl cnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2ZpZm8uYwpAQCAtMzEsNyArMzEsNyBAQAogCiBib29s IHZtd19maWZvX2hhdmVfM2Qoc3RydWN0IHZtd19wcml2YXRlICpkZXZfcHJpdikKIHsKLQlfX2xl MzIgX19pb21lbSAqZmlmb19tZW0gPSBkZXZfcHJpdi0+bW1pb192aXJ0OworCXUzMiBfX2lvbWVt ICpmaWZvX21lbSA9IGRldl9wcml2LT5tbWlvX3ZpcnQ7CiAJdWludDMyX3QgZmlmb19taW4sIGh3 dmVyc2lvbjsKIAljb25zdCBzdHJ1Y3Qgdm13X2ZpZm9fc3RhdGUgKmZpZm8gPSAmZGV2X3ByaXYt PmZpZm87CiAKQEAgLTgwLDcgKzgwLDcgQEAgYm9vbCB2bXdfZmlmb19oYXZlXzNkKHN0cnVjdCB2 bXdfcHJpdmF0ZSAqZGV2X3ByaXYpCiAKIGJvb2wgdm13X2ZpZm9faGF2ZV9waXRjaGxvY2soc3Ry dWN0IHZtd19wcml2YXRlICpkZXZfcHJpdikKIHsKLQlfX2xlMzIgX19pb21lbSAqZmlmb19tZW0g PSBkZXZfcHJpdi0+bW1pb192aXJ0OworCXUzMiBfX2lvbWVtICpmaWZvX21lbSA9IGRldl9wcml2 LT5tbWlvX3ZpcnQ7CiAJdWludDMyX3QgY2FwczsKIAogCWlmICghKGRldl9wcml2LT5jYXBhYmls aXRpZXMgJiBTVkdBX0NBUF9FWFRFTkRFRF9GSUZPKSkKQEAgLTk1LDcgKzk1LDcgQEAgYm9vbCB2 bXdfZmlmb19oYXZlX3BpdGNobG9jayhzdHJ1Y3Qgdm13X3ByaXZhdGUgKmRldl9wcml2KQogCiBp bnQgdm13X2ZpZm9faW5pdChzdHJ1Y3Qgdm13X3ByaXZhdGUgKmRldl9wcml2LCBzdHJ1Y3Qgdm13 X2ZpZm9fc3RhdGUgKmZpZm8pCiB7Ci0JX19sZTMyIF9faW9tZW0gKmZpZm9fbWVtID0gZGV2X3By aXYtPm1taW9fdmlydDsKKwl1MzIgX19pb21lbSAqZmlmb19tZW0gPSBkZXZfcHJpdi0+bW1pb192 aXJ0OwogCXVpbnQzMl90IG1heDsKIAl1aW50MzJfdCBtaW47CiAKQEAgLTE1OCw3ICsxNTgsNyBA QCBpbnQgdm13X2ZpZm9faW5pdChzdHJ1Y3Qgdm13X3ByaXZhdGUgKmRldl9wcml2LCBzdHJ1Y3Qg dm13X2ZpZm9fc3RhdGUgKmZpZm8pCiAKIHZvaWQgdm13X2ZpZm9fcGluZ19ob3N0KHN0cnVjdCB2 bXdfcHJpdmF0ZSAqZGV2X3ByaXYsIHVpbnQzMl90IHJlYXNvbikKIHsKLQlfX2xlMzIgX19pb21l bSAqZmlmb19tZW0gPSBkZXZfcHJpdi0+bW1pb192aXJ0OworCXUzMiBfX2lvbWVtICpmaWZvX21l bSA9IGRldl9wcml2LT5tbWlvX3ZpcnQ7CiAJc3RhdGljIERFRklORV9TUElOTE9DSyhwaW5nX2xv Y2spOwogCXVuc2lnbmVkIGxvbmcgaXJxX2ZsYWdzOwogCkBAIC0xNzYsNyArMTc2LDcgQEAgdm9p ZCB2bXdfZmlmb19waW5nX2hvc3Qoc3RydWN0IHZtd19wcml2YXRlICpkZXZfcHJpdiwgdWludDMy X3QgcmVhc29uKQogCiB2b2lkIHZtd19maWZvX3JlbGVhc2Uoc3RydWN0IHZtd19wcml2YXRlICpk ZXZfcHJpdiwgc3RydWN0IHZtd19maWZvX3N0YXRlICpmaWZvKQogewotCV9fbGUzMiBfX2lvbWVt ICpmaWZvX21lbSA9IGRldl9wcml2LT5tbWlvX3ZpcnQ7CisJdTMyIF9faW9tZW0gKmZpZm9fbWVt ID0gZGV2X3ByaXYtPm1taW9fdmlydDsKIAogCXZtd193cml0ZShkZXZfcHJpdiwgU1ZHQV9SRUdf U1lOQywgU1ZHQV9TWU5DX0dFTkVSSUMpOwogCXdoaWxlICh2bXdfcmVhZChkZXZfcHJpdiwgU1ZH QV9SRUdfQlVTWSkgIT0gMCkKQEAgLTIwNiw3ICsyMDYsNyBAQCB2b2lkIHZtd19maWZvX3JlbGVh c2Uoc3RydWN0IHZtd19wcml2YXRlICpkZXZfcHJpdiwgc3RydWN0IHZtd19maWZvX3N0YXRlICpm aWZvKQogCiBzdGF0aWMgYm9vbCB2bXdfZmlmb19pc19mdWxsKHN0cnVjdCB2bXdfcHJpdmF0ZSAq ZGV2X3ByaXYsIHVpbnQzMl90IGJ5dGVzKQogewotCV9fbGUzMiBfX2lvbWVtICpmaWZvX21lbSA9 IGRldl9wcml2LT5tbWlvX3ZpcnQ7CisJdTMyIF9faW9tZW0gKmZpZm9fbWVtID0gZGV2X3ByaXYt Pm1taW9fdmlydDsKIAl1aW50MzJfdCBtYXggPSBpb3JlYWQzMihmaWZvX21lbSArIFNWR0FfRklG T19NQVgpOwogCXVpbnQzMl90IG5leHRfY21kID0gaW9yZWFkMzIoZmlmb19tZW0gKyBTVkdBX0ZJ Rk9fTkVYVF9DTUQpOwogCXVpbnQzMl90IG1pbiA9IGlvcmVhZDMyKGZpZm9fbWVtICsgU1ZHQV9G SUZPX01JTik7CkBAIC0zMTQsNyArMzE0LDcgQEAgc3RhdGljIHZvaWQgKnZtd19sb2NhbF9maWZv X3Jlc2VydmUoc3RydWN0IHZtd19wcml2YXRlICpkZXZfcHJpdiwKIAkJCQkgICAgdWludDMyX3Qg Ynl0ZXMpCiB7CiAJc3RydWN0IHZtd19maWZvX3N0YXRlICpmaWZvX3N0YXRlID0gJmRldl9wcml2 LT5maWZvOwotCV9fbGUzMiBfX2lvbWVtICpmaWZvX21lbSA9IGRldl9wcml2LT5tbWlvX3ZpcnQ7 CisJdTMyIF9faW9tZW0gKmZpZm9fbWVtID0gZGV2X3ByaXYtPm1taW9fdmlydDsKIAl1aW50MzJf dCBtYXg7CiAJdWludDMyX3QgbWluOwogCXVpbnQzMl90IG5leHRfY21kOwpAQCAtMzcxLDcgKzM3 MSw4IEBAIHN0YXRpYyB2b2lkICp2bXdfbG9jYWxfZmlmb19yZXNlcnZlKHN0cnVjdCB2bXdfcHJp dmF0ZSAqZGV2X3ByaXYsCiAJCQkJaWYgKHJlc2VydmVhYmxlKQogCQkJCQlpb3dyaXRlMzIoYnl0 ZXMsIGZpZm9fbWVtICsKIAkJCQkJCSAgU1ZHQV9GSUZPX1JFU0VSVkVEKTsKLQkJCQlyZXR1cm4g Zmlmb19tZW0gKyAobmV4dF9jbWQgPj4gMik7CisJCQkJcmV0dXJuICh2b2lkIF9fZm9yY2UgKikg KGZpZm9fbWVtICsKKwkJCQkJCQkgKG5leHRfY21kID4+IDIpKTsKIAkJCX0gZWxzZSB7CiAJCQkJ bmVlZF9ib3VuY2UgPSB0cnVlOwogCQkJfQpAQCAtNDE0LDcgKzQxNSw3IEBAIHZvaWQgKnZtd19m aWZvX3Jlc2VydmUoc3RydWN0IHZtd19wcml2YXRlICpkZXZfcHJpdiwgdWludDMyX3QgYnl0ZXMp CiB9CiAKIHN0YXRpYyB2b2lkIHZtd19maWZvX3Jlc19jb3B5KHN0cnVjdCB2bXdfZmlmb19zdGF0 ZSAqZmlmb19zdGF0ZSwKLQkJCSAgICAgIF9fbGUzMiBfX2lvbWVtICpmaWZvX21lbSwKKwkJCSAg ICAgIHUzMiBfX2lvbWVtICpmaWZvX21lbSwKIAkJCSAgICAgIHVpbnQzMl90IG5leHRfY21kLAog CQkJICAgICAgdWludDMyX3QgbWF4LCB1aW50MzJfdCBtaW4sIHVpbnQzMl90IGJ5dGVzKQogewpA QCAtNDM2LDcgKzQzNyw3IEBAIHN0YXRpYyB2b2lkIHZtd19maWZvX3Jlc19jb3B5KHN0cnVjdCB2 bXdfZmlmb19zdGF0ZSAqZmlmb19zdGF0ZSwKIH0KIAogc3RhdGljIHZvaWQgdm13X2ZpZm9fc2xv d19jb3B5KHN0cnVjdCB2bXdfZmlmb19zdGF0ZSAqZmlmb19zdGF0ZSwKLQkJCSAgICAgICBfX2xl MzIgX19pb21lbSAqZmlmb19tZW0sCisJCQkgICAgICAgdTMyIF9faW9tZW0gKmZpZm9fbWVtLAog CQkJICAgICAgIHVpbnQzMl90IG5leHRfY21kLAogCQkJICAgICAgIHVpbnQzMl90IG1heCwgdWlu dDMyX3QgbWluLCB1aW50MzJfdCBieXRlcykKIHsKQEAgLTQ1NSwxMCArNDU2LDEwIEBAIHN0YXRp YyB2b2lkIHZtd19maWZvX3Nsb3dfY29weShzdHJ1Y3Qgdm13X2ZpZm9fc3RhdGUgKmZpZm9fc3Rh dGUsCiAJfQogfQogCi12b2lkIHZtd19sb2NhbF9maWZvX2NvbW1pdChzdHJ1Y3Qgdm13X3ByaXZh dGUgKmRldl9wcml2LCB1aW50MzJfdCBieXRlcykKK3N0YXRpYyB2b2lkIHZtd19sb2NhbF9maWZv X2NvbW1pdChzdHJ1Y3Qgdm13X3ByaXZhdGUgKmRldl9wcml2LCB1aW50MzJfdCBieXRlcykKIHsK IAlzdHJ1Y3Qgdm13X2ZpZm9fc3RhdGUgKmZpZm9fc3RhdGUgPSAmZGV2X3ByaXYtPmZpZm87Ci0J X19sZTMyIF9faW9tZW0gKmZpZm9fbWVtID0gZGV2X3ByaXYtPm1taW9fdmlydDsKKwl1MzIgX19p b21lbSAqZmlmb19tZW0gPSBkZXZfcHJpdi0+bW1pb192aXJ0OwogCXVpbnQzMl90IG5leHRfY21k ID0gaW9yZWFkMzIoZmlmb19tZW0gKyBTVkdBX0ZJRk9fTkVYVF9DTUQpOwogCXVpbnQzMl90IG1h eCA9IGlvcmVhZDMyKGZpZm9fbWVtICsgU1ZHQV9GSUZPX01BWCk7CiAJdWludDMyX3QgbWluID0g aW9yZWFkMzIoZmlmb19tZW0gKyBTVkdBX0ZJRk9fTUlOKTsKQEAgLTU0NSw5ICs1NDYsOSBAQCBp bnQgdm13X2ZpZm9fc2VuZF9mZW5jZShzdHJ1Y3Qgdm13X3ByaXZhdGUgKmRldl9wcml2LCB1aW50 MzJfdCAqc2Vxbm8pCiB7CiAJc3RydWN0IHZtd19maWZvX3N0YXRlICpmaWZvX3N0YXRlID0gJmRl dl9wcml2LT5maWZvOwogCXN0cnVjdCBzdmdhX2ZpZm9fY21kX2ZlbmNlICpjbWRfZmVuY2U7Ci0J dm9pZCAqZm07CisJdTMyICpmbTsKIAlpbnQgcmV0ID0gMDsKLQl1aW50MzJfdCBieXRlcyA9IHNp emVvZihfX2xlMzIpICsgc2l6ZW9mKCpjbWRfZmVuY2UpOworCXVpbnQzMl90IGJ5dGVzID0gc2l6 ZW9mKHUzMikgKyBzaXplb2YoKmNtZF9mZW5jZSk7CiAKIAlmbSA9IHZtd19maWZvX3Jlc2VydmUo ZGV2X3ByaXYsIGJ5dGVzKTsKIAlpZiAodW5saWtlbHkoZm0gPT0gTlVMTCkpIHsKQEAgLTU3Mywx MSArNTc0LDkgQEAgaW50IHZtd19maWZvX3NlbmRfZmVuY2Uoc3RydWN0IHZtd19wcml2YXRlICpk ZXZfcHJpdiwgdWludDMyX3QgKnNlcW5vKQogCQlyZXR1cm4gMDsKIAl9CiAKLQkqKF9fbGUzMiAq KSBmbSA9IGNwdV90b19sZTMyKFNWR0FfQ01EX0ZFTkNFKTsKLQljbWRfZmVuY2UgPSAoc3RydWN0 IHN2Z2FfZmlmb19jbWRfZmVuY2UgKikKLQkgICAgKCh1bnNpZ25lZCBsb25nKWZtICsgc2l6ZW9m KF9fbGUzMikpOwotCi0JaW93cml0ZTMyKCpzZXFubywgJmNtZF9mZW5jZS0+ZmVuY2UpOworCSpm bSsrID0gU1ZHQV9DTURfRkVOQ0U7CisJY21kX2ZlbmNlID0gKHN0cnVjdCBzdmdhX2ZpZm9fY21k X2ZlbmNlICopIGZtOworCWNtZF9mZW5jZS0+ZmVuY2UgPSAqc2Vxbm87CiAJdm13X2ZpZm9fY29t bWl0X2ZsdXNoKGRldl9wcml2LCBieXRlcyk7CiAJKHZvaWQpIHZtd19tYXJrZXJfcHVzaCgmZmlm b19zdGF0ZS0+bWFya2VyX3F1ZXVlLCAqc2Vxbm8pOwogCXZtd191cGRhdGVfc2Vxbm8oZGV2X3By aXYsIGZpZm9fc3RhdGUpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdn ZnhfaW9jdGwuYyBiL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2lvY3RsLmMKaW5kZXgg NTU5NDBiYy4uNmRiOTgyOCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdn ZnhfaW9jdGwuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9pb2N0bC5jCkBA IC02Myw3ICs2Myw3IEBAIGludCB2bXdfZ2V0cGFyYW1faW9jdGwoc3RydWN0IGRybV9kZXZpY2Ug KmRldiwgdm9pZCAqZGF0YSwKIAkJYnJlYWs7CiAJY2FzZSBEUk1fVk1XX1BBUkFNX0ZJRk9fSFdf VkVSU0lPTjoKIAl7Ci0JCV9fbGUzMiBfX2lvbWVtICpmaWZvX21lbSA9IGRldl9wcml2LT5tbWlv X3ZpcnQ7CisJCXUzMiBfX2lvbWVtICpmaWZvX21lbSA9IGRldl9wcml2LT5tbWlvX3ZpcnQ7CiAJ CWNvbnN0IHN0cnVjdCB2bXdfZmlmb19zdGF0ZSAqZmlmbyA9ICZkZXZfcHJpdi0+ZmlmbzsKIAog CQlpZiAoKGRldl9wcml2LT5jYXBhYmlsaXRpZXMgJiBTVkdBX0NBUF9HQk9CSkVDVFMpKSB7CkBA IC0xNTgsNyArMTU4LDcgQEAgaW50IHZtd19nZXRfY2FwXzNkX2lvY3RsKHN0cnVjdCBkcm1fZGV2 aWNlICpkZXYsIHZvaWQgKmRhdGEsCiAJCShzdHJ1Y3QgZHJtX3Ztd19nZXRfM2RfY2FwX2FyZyAq KSBkYXRhOwogCXN0cnVjdCB2bXdfcHJpdmF0ZSAqZGV2X3ByaXYgPSB2bXdfcHJpdihkZXYpOwog CXVpbnQzMl90IHNpemU7Ci0JX19sZTMyIF9faW9tZW0gKmZpZm9fbWVtOworCXUzMiBfX2lvbWVt ICpmaWZvX21lbTsKIAl2b2lkIF9fdXNlciAqYnVmZmVyID0gKHZvaWQgX191c2VyICopKCh1bnNp Z25lZCBsb25nKShhcmctPmJ1ZmZlcikpOwogCXZvaWQgKmJvdW5jZTsKIAlpbnQgcmV0OwpAQCAt MjM5LDcgKzIzOSw3IEBAIGludCB2bXdfcHJlc2VudF9pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2LCB2b2lkICpkYXRhLAogCWludCByZXQ7CiAKIAludW1fY2xpcHMgPSBhcmctPm51bV9jbGlw czsKLQljbGlwc19wdHIgPSAoc3RydWN0IGRybV92bXdfcmVjdCAqKSh1bnNpZ25lZCBsb25nKWFy Zy0+Y2xpcHNfcHRyOworCWNsaXBzX3B0ciA9IChzdHJ1Y3QgZHJtX3Ztd19yZWN0IF9fdXNlciAq KSh1bnNpZ25lZCBsb25nKWFyZy0+Y2xpcHNfcHRyOwogCiAJaWYgKHVubGlrZWx5KG51bV9jbGlw cyA9PSAwKSkKIAkJcmV0dXJuIDA7CkBAIC0zMjIsNyArMzIyLDcgQEAgaW50IHZtd19wcmVzZW50 X3JlYWRiYWNrX2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCiAJaW50 IHJldDsKIAogCW51bV9jbGlwcyA9IGFyZy0+bnVtX2NsaXBzOwotCWNsaXBzX3B0ciA9IChzdHJ1 Y3QgZHJtX3Ztd19yZWN0ICopKHVuc2lnbmVkIGxvbmcpYXJnLT5jbGlwc19wdHI7CisJY2xpcHNf cHRyID0gKHN0cnVjdCBkcm1fdm13X3JlY3QgX191c2VyICopKHVuc2lnbmVkIGxvbmcpYXJnLT5j bGlwc19wdHI7CiAKIAlpZiAodW5saWtlbHkobnVtX2NsaXBzID09IDApKQogCQlyZXR1cm4gMDsK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2lycS5jIGIvZHJpdmVy cy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfaXJxLmMKaW5kZXggODc5NjRiYi4uMmMyYmFjNCAxMDA2 NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfaXJxLmMKKysrIGIvZHJpdmVy cy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfaXJxLmMKQEAgLTcyLDcgKzcyLDcgQEAgc3RhdGljIGJv b2wgdm13X2ZpZm9faWRsZShzdHJ1Y3Qgdm13X3ByaXZhdGUgKmRldl9wcml2LCB1aW50MzJfdCBz ZXFubykKIHZvaWQgdm13X3VwZGF0ZV9zZXFubyhzdHJ1Y3Qgdm13X3ByaXZhdGUgKmRldl9wcml2 LAogCQkJIHN0cnVjdCB2bXdfZmlmb19zdGF0ZSAqZmlmb19zdGF0ZSkKIHsKLQlfX2xlMzIgX19p b21lbSAqZmlmb19tZW0gPSBkZXZfcHJpdi0+bW1pb192aXJ0OworCXUzMiBfX2lvbWVtICpmaWZv X21lbSA9IGRldl9wcml2LT5tbWlvX3ZpcnQ7CiAJdWludDMyX3Qgc2Vxbm8gPSBpb3JlYWQzMihm aWZvX21lbSArIFNWR0FfRklGT19GRU5DRSk7CiAKIAlpZiAoZGV2X3ByaXYtPmxhc3RfcmVhZF9z ZXFubyAhPSBzZXFubykgewpAQCAtMTc4LDcgKzE3OCw3IEBAIGludCB2bXdfZmFsbGJhY2tfd2Fp dChzdHJ1Y3Qgdm13X3ByaXZhdGUgKmRldl9wcml2LAogCX0KIAlmaW5pc2hfd2FpdCgmZGV2X3By aXYtPmZlbmNlX3F1ZXVlLCAmX193YWl0KTsKIAlpZiAocmV0ID09IDAgJiYgZmlmb19pZGxlKSB7 Ci0JCV9fbGUzMiBfX2lvbWVtICpmaWZvX21lbSA9IGRldl9wcml2LT5tbWlvX3ZpcnQ7CisJCXUz MiBfX2lvbWVtICpmaWZvX21lbSA9IGRldl9wcml2LT5tbWlvX3ZpcnQ7CiAJCWlvd3JpdGUzMihz aWduYWxfc2VxLCBmaWZvX21lbSArIFNWR0FfRklGT19GRU5DRSk7CiAJfQogCXdha2VfdXBfYWxs KCZkZXZfcHJpdi0+ZmVuY2VfcXVldWUpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3Zt d2dmeC92bXdnZnhfa21zLmMgYi9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9rbXMuYwpp bmRleCBlZjYwNWI2Li5jYTY5ZWQ0IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4 L3Ztd2dmeF9rbXMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9rbXMuYwpA QCAtNzEsMTIgKzcxLDEyIEBAIGludCB2bXdfY3Vyc29yX3VwZGF0ZV9pbWFnZShzdHJ1Y3Qgdm13 X3ByaXZhdGUgKmRldl9wcml2LAogCiAJbWVtY3B5KCZjbWRbMV0sIGltYWdlLCBpbWFnZV9zaXpl KTsKIAotCWNtZC0+Y21kID0gY3B1X3RvX2xlMzIoU1ZHQV9DTURfREVGSU5FX0FMUEhBX0NVUlNP Uik7Ci0JY21kLT5jdXJzb3IuaWQgPSBjcHVfdG9fbGUzMigwKTsKLQljbWQtPmN1cnNvci53aWR0 aCA9IGNwdV90b19sZTMyKHdpZHRoKTsKLQljbWQtPmN1cnNvci5oZWlnaHQgPSBjcHVfdG9fbGUz MihoZWlnaHQpOwotCWNtZC0+Y3Vyc29yLmhvdHNwb3RYID0gY3B1X3RvX2xlMzIoaG90c3BvdFgp OwotCWNtZC0+Y3Vyc29yLmhvdHNwb3RZID0gY3B1X3RvX2xlMzIoaG90c3BvdFkpOworCWNtZC0+ Y21kID0gU1ZHQV9DTURfREVGSU5FX0FMUEhBX0NVUlNPUjsKKwljbWQtPmN1cnNvci5pZCA9IDA7 CisJY21kLT5jdXJzb3Iud2lkdGggPSB3aWR0aDsKKwljbWQtPmN1cnNvci5oZWlnaHQgPSBoZWln aHQ7CisJY21kLT5jdXJzb3IuaG90c3BvdFggPSBob3RzcG90WDsKKwljbWQtPmN1cnNvci5ob3Rz cG90WSA9IGhvdHNwb3RZOwogCiAJdm13X2ZpZm9fY29tbWl0KGRldl9wcml2LCBjbWRfc2l6ZSk7 CiAKQEAgLTEyMyw3ICsxMjMsNyBAQCBlcnJfdW5yZXNlcnZlOgogdm9pZCB2bXdfY3Vyc29yX3Vw ZGF0ZV9wb3NpdGlvbihzdHJ1Y3Qgdm13X3ByaXZhdGUgKmRldl9wcml2LAogCQkJCWJvb2wgc2hv dywgaW50IHgsIGludCB5KQogewotCV9fbGUzMiBfX2lvbWVtICpmaWZvX21lbSA9IGRldl9wcml2 LT5tbWlvX3ZpcnQ7CisJdTMyIF9faW9tZW0gKmZpZm9fbWVtID0gZGV2X3ByaXYtPm1taW9fdmly dDsKIAl1aW50MzJfdCBjb3VudDsKIAogCWlvd3JpdGUzMihzaG93ID8gMSA6IDAsIGZpZm9fbWVt ICsgU1ZHQV9GSUZPX0NVUlNPUl9PTik7CkBAIC0xMDE3LDE0ICsxMDE3LDE0IEBAIHN0YXRpYyBj b25zdCBzdHJ1Y3QgZHJtX21vZGVfY29uZmlnX2Z1bmNzIHZtd19rbXNfZnVuY3MgPSB7CiAJLmZi X2NyZWF0ZSA9IHZtd19rbXNfZmJfY3JlYXRlLAogfTsKIAotaW50IHZtd19rbXNfZ2VuZXJpY19w cmVzZW50KHN0cnVjdCB2bXdfcHJpdmF0ZSAqZGV2X3ByaXYsCi0JCSAgICBzdHJ1Y3QgZHJtX2Zp bGUgKmZpbGVfcHJpdiwKLQkJICAgIHN0cnVjdCB2bXdfZnJhbWVidWZmZXIgKnZmYiwKLQkJICAg IHN0cnVjdCB2bXdfc3VyZmFjZSAqc3VyZmFjZSwKLQkJICAgIHVpbnQzMl90IHNpZCwKLQkJICAg IGludDMyX3QgZGVzdFgsIGludDMyX3QgZGVzdFksCi0JCSAgICBzdHJ1Y3QgZHJtX3Ztd19yZWN0 ICpjbGlwcywKLQkJICAgIHVpbnQzMl90IG51bV9jbGlwcykKK3N0YXRpYyBpbnQgdm13X2ttc19n ZW5lcmljX3ByZXNlbnQoc3RydWN0IHZtd19wcml2YXRlICpkZXZfcHJpdiwKKwkJCQkgICBzdHJ1 Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdiwKKwkJCQkgICBzdHJ1Y3Qgdm13X2ZyYW1lYnVmZmVyICp2 ZmIsCisJCQkJICAgc3RydWN0IHZtd19zdXJmYWNlICpzdXJmYWNlLAorCQkJCSAgIHVpbnQzMl90 IHNpZCwKKwkJCQkgICBpbnQzMl90IGRlc3RYLCBpbnQzMl90IGRlc3RZLAorCQkJCSAgIHN0cnVj dCBkcm1fdm13X3JlY3QgKmNsaXBzLAorCQkJCSAgIHVpbnQzMl90IG51bV9jbGlwcykKIHsKIAly ZXR1cm4gdm13X2ttc19zb3VfZG9fc3VyZmFjZV9kaXJ0eShkZXZfcHJpdiwgdmZiLCBOVUxMLCBj bGlwcywKIAkJCQkJICAgICZzdXJmYWNlLT5yZXMsIGRlc3RYLCBkZXN0WSwKQEAgLTE3ODUsNyAr MTc4NSw3IEBAIGludCB2bXdfa21zX2hlbHBlcl9idWZmZXJfcHJlcGFyZShzdHJ1Y3Qgdm13X3By aXZhdGUgKmRldl9wcml2LAogCXN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8gPSAmYnVmLT5i YXNlOwogCWludCByZXQ7CiAKLQl0dG1fYm9fcmVzZXJ2ZShibywgZmFsc2UsIGZhbHNlLCBpbnRl cnJ1cHRpYmxlLCAwKTsKKwl0dG1fYm9fcmVzZXJ2ZShibywgZmFsc2UsIGZhbHNlLCBpbnRlcnJ1 cHRpYmxlLCBOVUxMKTsKIAlyZXQgPSB2bXdfdmFsaWRhdGVfc2luZ2xlX2J1ZmZlcihkZXZfcHJp diwgYm8sIGludGVycnVwdGlibGUsCiAJCQkJCSB2YWxpZGF0ZV9hc19tb2IpOwogCWlmIChyZXQp CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9sZHUuYyBiL2RyaXZl cnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2xkdS5jCmluZGV4IDUxNzIxYzMuLjU1MDM4NDUgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2xkdS5jCisrKyBiL2RyaXZl cnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2xkdS5jCkBAIC00NzYsMTEgKzQ3NiwxMSBAQCBpbnQg dm13X2ttc19sZHVfZG9fZG1hYnVmX2RpcnR5KHN0cnVjdCB2bXdfcHJpdmF0ZSAqZGV2X3ByaXYs CiAKIAltZW1zZXQoY21kLCAwLCBmaWZvX3NpemUpOwogCWZvciAoaSA9IDA7IGkgPCBudW1fY2xp cHM7IGkrKywgY2xpcHMgKz0gaW5jcmVtZW50KSB7Ci0JCWNtZFtpXS5oZWFkZXIgPSBjcHVfdG9f bGUzMihTVkdBX0NNRF9VUERBVEUpOwotCQljbWRbaV0uYm9keS54ID0gY3B1X3RvX2xlMzIoY2xp cHMtPngxKTsKLQkJY21kW2ldLmJvZHkueSA9IGNwdV90b19sZTMyKGNsaXBzLT55MSk7Ci0JCWNt ZFtpXS5ib2R5LndpZHRoID0gY3B1X3RvX2xlMzIoY2xpcHMtPngyIC0gY2xpcHMtPngxKTsKLQkJ Y21kW2ldLmJvZHkuaGVpZ2h0ID0gY3B1X3RvX2xlMzIoY2xpcHMtPnkyIC0gY2xpcHMtPnkxKTsK KwkJY21kW2ldLmhlYWRlciA9IFNWR0FfQ01EX1VQREFURTsKKwkJY21kW2ldLmJvZHkueCA9IGNs aXBzLT54MTsKKwkJY21kW2ldLmJvZHkueSA9IGNsaXBzLT55MTsKKwkJY21kW2ldLmJvZHkud2lk dGggPSBjbGlwcy0+eDIgLSBjbGlwcy0+eDE7CisJCWNtZFtpXS5ib2R5LmhlaWdodCA9IGNsaXBz LT55MiAtIGNsaXBzLT55MTsKIAl9CiAKIAl2bXdfZmlmb19jb21taXQoZGV2X3ByaXYsIGZpZm9f c2l6ZSk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9tb2IuYyBi L2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X21vYi5jCmluZGV4IGUwZmMyNDguLmM1ODk3 Y2IgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X21vYi5jCisrKyBi L2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X21vYi5jCkBAIC0xNDIsNyArMTQyLDcgQEAg c3RhdGljIGludCB2bXdfc2V0dXBfb3RhYmxlX2Jhc2Uoc3RydWN0IHZtd19wcml2YXRlICpkZXZf cHJpdiwKIAljbWQtPmhlYWRlci5pZCA9IFNWR0FfM0RfQ01EX1NFVF9PVEFCTEVfQkFTRTY0Owog CWNtZC0+aGVhZGVyLnNpemUgPSBzaXplb2YoY21kLT5ib2R5KTsKIAljbWQtPmJvZHkudHlwZSA9 IHR5cGU7Ci0JY21kLT5ib2R5LmJhc2VBZGRyZXNzID0gY3B1X3RvX2xlNjQobW9iLT5wdF9yb290 X3BhZ2UgPj4gUEFHRV9TSElGVCk7CisJY21kLT5ib2R5LmJhc2VBZGRyZXNzID0gbW9iLT5wdF9y b290X3BhZ2UgPj4gUEFHRV9TSElGVDsKIAljbWQtPmJvZHkuc2l6ZUluQnl0ZXMgPSBvdGFibGUt PnNpemU7CiAJY21kLT5ib2R5LnZhbGlkU2l6ZUluQnl0ZXMgPSAwOwogCWNtZC0+Ym9keS5wdERl cHRoID0gbW9iLT5wdF9sZXZlbDsKQEAgLTQzMCwxNSArNDMwLDE1IEBAIG91dF91bnJlc2VydmU6 CiAgKiAqQGFkZHIgYWNjb3JkaW5nIHRvIHRoZSBwYWdlIHRhYmxlIGVudHJ5IHNpemUuCiAgKi8K ICNpZiAoVk1XX1BQTl9TSVpFID09IDgpCi1zdGF0aWMgdm9pZCB2bXdfbW9iX2Fzc2lnbl9wcG4o X19sZTMyICoqYWRkciwgZG1hX2FkZHJfdCB2YWwpCitzdGF0aWMgdm9pZCB2bXdfbW9iX2Fzc2ln bl9wcG4odTMyICoqYWRkciwgZG1hX2FkZHJfdCB2YWwpCiB7Ci0JKigoX19sZTY0ICopICphZGRy KSA9IGNwdV90b19sZTY0KHZhbCA+PiBQQUdFX1NISUZUKTsKKwkqKCh1NjQgKikgKmFkZHIpID0g dmFsID4+IFBBR0VfU0hJRlQ7CiAJKmFkZHIgKz0gMjsKIH0KICNlbHNlCi1zdGF0aWMgdm9pZCB2 bXdfbW9iX2Fzc2lnbl9wcG4oX19sZTMyICoqYWRkciwgZG1hX2FkZHJfdCB2YWwpCitzdGF0aWMg dm9pZCB2bXdfbW9iX2Fzc2lnbl9wcG4odTMyICoqYWRkciwgZG1hX2FkZHJfdCB2YWwpCiB7Ci0J KigqYWRkcikrKyA9IGNwdV90b19sZTMyKHZhbCA+PiBQQUdFX1NISUZUKTsKKwkqKCphZGRyKSsr ID0gdmFsID4+IFBBR0VfU0hJRlQ7CiB9CiAjZW5kaWYKIApAQCAtNDYwLDcgKzQ2MCw3IEBAIHN0 YXRpYyB1bnNpZ25lZCBsb25nIHZtd19tb2JfYnVpbGRfcHQoc3RydWN0IHZtd19waXRlciAqZGF0 YV9pdGVyLAogCXVuc2lnbmVkIGxvbmcgcHRfc2l6ZSA9IG51bV9kYXRhX3BhZ2VzICogVk1XX1BQ Tl9TSVpFOwogCXVuc2lnbmVkIGxvbmcgbnVtX3B0X3BhZ2VzID0gRElWX1JPVU5EX1VQKHB0X3Np emUsIFBBR0VfU0laRSk7CiAJdW5zaWduZWQgbG9uZyBwdF9wYWdlOwotCV9fbGUzMiAqYWRkciwg KnNhdmVfYWRkcjsKKwl1MzIgKmFkZHIsICpzYXZlX2FkZHI7CiAJdW5zaWduZWQgbG9uZyBpOwog CXN0cnVjdCBwYWdlICpwYWdlOwogCkBAIC02NDEsNyArNjQxLDcgQEAgaW50IHZtd19tb2JfYmlu ZChzdHJ1Y3Qgdm13X3ByaXZhdGUgKmRldl9wcml2LAogCWNtZC0+aGVhZGVyLnNpemUgPSBzaXpl b2YoY21kLT5ib2R5KTsKIAljbWQtPmJvZHkubW9iaWQgPSBtb2JfaWQ7CiAJY21kLT5ib2R5LnB0 RGVwdGggPSBtb2ItPnB0X2xldmVsOwotCWNtZC0+Ym9keS5iYXNlID0gY3B1X3RvX2xlNjQobW9i LT5wdF9yb290X3BhZ2UgPj4gUEFHRV9TSElGVCk7CisJY21kLT5ib2R5LmJhc2UgPSBtb2ItPnB0 X3Jvb3RfcGFnZSA+PiBQQUdFX1NISUZUOwogCWNtZC0+Ym9keS5zaXplSW5CeXRlcyA9IG51bV9k YXRhX3BhZ2VzICogUEFHRV9TSVpFOwogCiAJdm13X2ZpZm9fY29tbWl0KGRldl9wcml2LCBzaXpl b2YoKmNtZCkpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfcmVn LmggYi9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9yZWcuaAppbmRleCA5ZDBkZDNhLi4y OWQwNmE0IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9yZWcuaAor KysgYi9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9yZWcuaApAQCAtMzksMTIgKzM5LDEy IEBACiAjZGVmaW5lIFZNV0dGWF9JUlFTVEFUVVNfUE9SVCAweDgKIAogc3RydWN0IHN2Z2FfZ3Vl c3RfbWVtX2Rlc2NyaXB0b3IgewotCV9fbGUzMiBwcG47Ci0JX19sZTMyIG51bV9wYWdlczsKKwl1 MzIgcHBuOworCXUzMiBudW1fcGFnZXM7CiB9OwogCiBzdHJ1Y3Qgc3ZnYV9maWZvX2NtZF9mZW5j ZSB7Ci0JX19sZTMyIGZlbmNlOworCXUzMiBmZW5jZTsKIH07CiAKICNkZWZpbmUgU1ZHQV9TWU5D X0dFTkVSSUMgICAgICAgICAxCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Zt d2dmeF9yZXNvdXJjZS5jIGIvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfcmVzb3VyY2Uu YwppbmRleCA2OWI0NzFhLi5iZTI4MDlhIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vdm13 Z2Z4L3Ztd2dmeF9yZXNvdXJjZS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4 X3Jlc291cmNlLmMKQEAgLTEyMSw2ICsxMjEsNyBAQCBzdGF0aWMgdm9pZCB2bXdfcmVzb3VyY2Vf cmVsZWFzZShzdHJ1Y3Qga3JlZiAqa3JlZikKIAlpbnQgaWQ7CiAJc3RydWN0IGlkciAqaWRyID0g JmRldl9wcml2LT5yZXNfaWRyW3Jlcy0+ZnVuYy0+cmVzX3R5cGVdOwogCisJd3JpdGVfbG9jaygm ZGV2X3ByaXYtPnJlc291cmNlX2xvY2spOwogCXJlcy0+YXZhaWwgPSBmYWxzZTsKIAlsaXN0X2Rl bF9pbml0KCZyZXMtPmxydV9oZWFkKTsKIAl3cml0ZV91bmxvY2soJmRldl9wcml2LT5yZXNvdXJj ZV9sb2NrKTsKQEAgLTE1NiwyMCArMTU3LDE3IEBAIHN0YXRpYyB2b2lkIHZtd19yZXNvdXJjZV9y ZWxlYXNlKHN0cnVjdCBrcmVmICprcmVmKQogCQlrZnJlZShyZXMpOwogCiAJd3JpdGVfbG9jaygm ZGV2X3ByaXYtPnJlc291cmNlX2xvY2spOwotCiAJaWYgKGlkICE9IC0xKQogCQlpZHJfcmVtb3Zl KGlkciwgaWQpOworCXdyaXRlX3VubG9jaygmZGV2X3ByaXYtPnJlc291cmNlX2xvY2spOwogfQog CiB2b2lkIHZtd19yZXNvdXJjZV91bnJlZmVyZW5jZShzdHJ1Y3Qgdm13X3Jlc291cmNlICoqcF9y ZXMpCiB7CiAJc3RydWN0IHZtd19yZXNvdXJjZSAqcmVzID0gKnBfcmVzOwotCXN0cnVjdCB2bXdf cHJpdmF0ZSAqZGV2X3ByaXYgPSByZXMtPmRldl9wcml2OwogCiAJKnBfcmVzID0gTlVMTDsKLQl3 cml0ZV9sb2NrKCZkZXZfcHJpdi0+cmVzb3VyY2VfbG9jayk7CiAJa3JlZl9wdXQoJnJlcy0+a3Jl Ziwgdm13X3Jlc291cmNlX3JlbGVhc2UpOwotCXdyaXRlX3VubG9jaygmZGV2X3ByaXYtPnJlc291 cmNlX2xvY2spOwogfQogCiAKQEAgLTI2MCwxNyArMjU4LDE2IEBAIHZvaWQgdm13X3Jlc291cmNl X2FjdGl2YXRlKHN0cnVjdCB2bXdfcmVzb3VyY2UgKnJlcywKIAl3cml0ZV91bmxvY2soJmRldl9w cml2LT5yZXNvdXJjZV9sb2NrKTsKIH0KIAotc3RydWN0IHZtd19yZXNvdXJjZSAqdm13X3Jlc291 cmNlX2xvb2t1cChzdHJ1Y3Qgdm13X3ByaXZhdGUgKmRldl9wcml2LAotCQkJCQkgc3RydWN0IGlk ciAqaWRyLCBpbnQgaWQpCitzdGF0aWMgc3RydWN0IHZtd19yZXNvdXJjZSAqdm13X3Jlc291cmNl X2xvb2t1cChzdHJ1Y3Qgdm13X3ByaXZhdGUgKmRldl9wcml2LAorCQkJCQkJc3RydWN0IGlkciAq aWRyLCBpbnQgaWQpCiB7CiAJc3RydWN0IHZtd19yZXNvdXJjZSAqcmVzOwogCiAJcmVhZF9sb2Nr KCZkZXZfcHJpdi0+cmVzb3VyY2VfbG9jayk7CiAJcmVzID0gaWRyX2ZpbmQoaWRyLCBpZCk7Ci0J aWYgKHJlcyAmJiByZXMtPmF2YWlsKQotCQlrcmVmX2dldCgmcmVzLT5rcmVmKTsKLQllbHNlCisJ aWYgKCFyZXMgfHwgIXJlcy0+YXZhaWwgfHwgIWtyZWZfZ2V0X3VubGVzc196ZXJvKCZyZXMtPmty ZWYpKQogCQlyZXMgPSBOVUxMOworCiAJcmVhZF91bmxvY2soJmRldl9wcml2LT5yZXNvdXJjZV9s b2NrKTsKIAogCWlmICh1bmxpa2VseShyZXMgPT0gTlVMTCkpCkBAIC0xMzA2LDcgKzEzMDMsNyBA QCB2bXdfcmVzb3VyY2VfYmFja29mZl9yZXNlcnZhdGlvbihzdHJ1Y3QgdHRtX3ZhbGlkYXRlX2J1 ZmZlciAqdmFsX2J1ZikKICAqIEByZXM6ICAgICAgICAgICAgVGhlIHJlc291cmNlIHRvIGV2aWN0 LgogICogQGludGVycnVwdGlibGU6ICBXaGV0aGVyIHRvIHdhaXQgaW50ZXJydXB0aWJsZS4KICAq LwotaW50IHZtd19yZXNvdXJjZV9kb19ldmljdChzdHJ1Y3Qgdm13X3Jlc291cmNlICpyZXMsIGJv b2wgaW50ZXJydXB0aWJsZSkKK3N0YXRpYyBpbnQgdm13X3Jlc291cmNlX2RvX2V2aWN0KHN0cnVj dCB2bXdfcmVzb3VyY2UgKnJlcywgYm9vbCBpbnRlcnJ1cHRpYmxlKQogewogCXN0cnVjdCB0dG1f dmFsaWRhdGVfYnVmZmVyIHZhbF9idWY7CiAJY29uc3Qgc3RydWN0IHZtd19yZXNfZnVuYyAqZnVu YyA9IHJlcy0+ZnVuYzsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4 X3Njcm4uYyBiL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X3Njcm4uYwppbmRleCA4YjVi YzE3Li4yYWYzZmExIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9z Y3JuLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfc2Nybi5jCkBAIC00NTAs OCArNDUwLDggQEAgc3RhdGljIGJvb2wgdm13X3NvdV9zY3JlZW5fb2JqZWN0X2ZsaXBwYWJsZShz dHJ1Y3Qgdm13X3ByaXZhdGUgKmRldl9wcml2LAogICogVXBkYXRlIHRoZSBpbXBsaWNpdCBmYiB0 byB0aGUgY3VycmVudCBmYiBvZiB0aGlzIGNydGMuCiAgKiBNdXN0IGJlIGNhbGxlZCB3aXRoIHRo ZSBtb2RlX2NvbmZpZyBtdXRleCBoZWxkLgogICovCi12b2lkIHZtd19zb3VfdXBkYXRlX2ltcGxp Y2l0X2ZiKHN0cnVjdCB2bXdfcHJpdmF0ZSAqZGV2X3ByaXYsCi0JCQkJc3RydWN0IGRybV9jcnRj ICpjcnRjKQorc3RhdGljIHZvaWQgdm13X3NvdV91cGRhdGVfaW1wbGljaXRfZmIoc3RydWN0IHZt d19wcml2YXRlICpkZXZfcHJpdiwKKwkJCQkgICAgICAgc3RydWN0IGRybV9jcnRjICpjcnRjKQog ewogCXN0cnVjdCB2bXdfc2NyZWVuX29iamVjdF91bml0ICpzb3UgPSB2bXdfY3J0Y190b19zb3Uo Y3J0Yyk7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X3NoYWRl ci5jIGIvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfc2hhZGVyLmMKaW5kZXggNjExMGE0 My4uMTFiYzYwYyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfc2hh ZGVyLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfc2hhZGVyLmMKQEAgLTQw NywxMSArNDA3LDExIEBAIG91dDoKIH0KIAogCi1zdHJ1Y3Qgdm13X3Jlc291cmNlICp2bXdfc2hh ZGVyX2FsbG9jKHN0cnVjdCB2bXdfcHJpdmF0ZSAqZGV2X3ByaXYsCi0JCQkJICAgICAgc3RydWN0 IHZtd19kbWFfYnVmZmVyICpidWZmZXIsCi0JCQkJICAgICAgc2l6ZV90IHNoYWRlcl9zaXplLAot CQkJCSAgICAgIHNpemVfdCBvZmZzZXQsCi0JCQkJICAgICAgU1ZHQTNkU2hhZGVyVHlwZSBzaGFk ZXJfdHlwZSkKK3N0YXRpYyBzdHJ1Y3Qgdm13X3Jlc291cmNlICp2bXdfc2hhZGVyX2FsbG9jKHN0 cnVjdCB2bXdfcHJpdmF0ZSAqZGV2X3ByaXYsCisJCQkJCSAgICAgc3RydWN0IHZtd19kbWFfYnVm ZmVyICpidWZmZXIsCisJCQkJCSAgICAgc2l6ZV90IHNoYWRlcl9zaXplLAorCQkJCQkgICAgIHNp emVfdCBvZmZzZXQsCisJCQkJCSAgICAgU1ZHQTNkU2hhZGVyVHlwZSBzaGFkZXJfdHlwZSkKIHsK IAlzdHJ1Y3Qgdm13X3NoYWRlciAqc2hhZGVyOwogCXN0cnVjdCB2bXdfcmVzb3VyY2UgKnJlczsK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X3N1cmZhY2UuYyBiL2Ry aXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X3N1cmZhY2UuYwppbmRleCA4MzVmMzQzLi44NDNk N2UwIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9zdXJmYWNlLmMK KysrIGIvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfc3VyZmFjZS5jCkBAIC0yMjAsNyAr MjIwLDcgQEAgc3RhdGljIHZvaWQgdm13X3N1cmZhY2VfZGVmaW5lX2VuY29kZShjb25zdCBzdHJ1 Y3Qgdm13X3N1cmZhY2UgKnNyZiwKIAljbWQtPmhlYWRlci5zaXplID0gY21kX2xlbjsKIAljbWQt PmJvZHkuc2lkID0gc3JmLT5yZXMuaWQ7CiAJY21kLT5ib2R5LnN1cmZhY2VGbGFncyA9IHNyZi0+ ZmxhZ3M7Ci0JY21kLT5ib2R5LmZvcm1hdCA9IGNwdV90b19sZTMyKHNyZi0+Zm9ybWF0KTsKKwlj bWQtPmJvZHkuZm9ybWF0ID0gc3JmLT5mb3JtYXQ7CiAJZm9yIChpID0gMDsgaSA8IERSTV9WTVdf TUFYX1NVUkZBQ0VfRkFDRVM7ICsraSkKIAkJY21kLT5ib2R5LmZhY2VbaV0ubnVtTWlwTGV2ZWxz ID0gc3JmLT5taXBfbGV2ZWxzW2ldOwogCkBAIC0xMDU0LDcgKzEwNTQsNyBAQCBzdGF0aWMgaW50 IHZtd19nYl9zdXJmYWNlX2NyZWF0ZShzdHJ1Y3Qgdm13X3Jlc291cmNlICpyZXMpCiAJY21kLT5o ZWFkZXIuc2l6ZSA9IGNtZF9sZW47CiAJY21kLT5ib2R5LnNpZCA9IHNyZi0+cmVzLmlkOwogCWNt ZC0+Ym9keS5zdXJmYWNlRmxhZ3MgPSBzcmYtPmZsYWdzOwotCWNtZC0+Ym9keS5mb3JtYXQgPSBj cHVfdG9fbGUzMihzcmYtPmZvcm1hdCk7CisJY21kLT5ib2R5LmZvcm1hdCA9IHNyZi0+Zm9ybWF0 OwogCWNtZC0+Ym9keS5udW1NaXBMZXZlbHMgPSBzcmYtPm1pcF9sZXZlbHNbMF07CiAJY21kLT5i b2R5Lm11bHRpc2FtcGxlQ291bnQgPSBzcmYtPm11bHRpc2FtcGxlX2NvdW50OwogCWNtZC0+Ym9k eS5hdXRvZ2VuRmlsdGVyID0gc3JmLT5hdXRvZ2VuX2ZpbHRlcjsKLS0gCjIuMS4wCgoKX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxp bmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVl ZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK