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=-13.5 required=3.0 tests=BAYES_00, DKIM_ADSP_CUSTOM_MED,DKIM_INVALID,DKIM_SIGNED,FREEMAIL_FORGED_FROMDOMAIN, FREEMAIL_FROM,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED, USER_AGENT_GIT 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 5CF7EC433FE for ; Thu, 10 Dec 2020 14:52:18 +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 ECDE52310E for ; Thu, 10 Dec 2020 14:52:17 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org ECDE52310E Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=dri-devel-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 184A86E5CA; Thu, 10 Dec 2020 14:52:17 +0000 (UTC) Received: from mail-ed1-x541.google.com (mail-ed1-x541.google.com [IPv6:2a00:1450:4864:20::541]) by gabe.freedesktop.org (Postfix) with ESMTPS id 3EAE16E5CA for ; Thu, 10 Dec 2020 14:52:16 +0000 (UTC) Received: by mail-ed1-x541.google.com with SMTP id q16so5763317edv.10 for ; Thu, 10 Dec 2020 06:52:16 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:subject:date:message-id:mime-version :content-transfer-encoding; bh=BOBLafRhef2Sc8PNx7MawGagXAWQH7CSQR01G8Is7dE=; b=FXwob2S9g/ysRbe2XsyeMWqRt9WY6JqjDVGc1o6YEZwMcx95BDU9uSHE8a/J0pvgYF kwzCT4chYmXhh8Cuhp0YbSGlSXKMsMvZSrXjcJc4w8xWAxcx8WCa/zgYsmnfinOeNDmE phIUXaVWXwsreHZMkmhDYKATQwWKnshIIVlLjPfp2zZpKqPMeyh/ZL5R9eLGBsl7Uf6g GN3SW6vSYTVCogjyRJZSkoZi0Ql7pWsQDFhmX4H5P7ZcvvRE55CntLiEpGnJ/IG/l9sE VU4QvfJsJJ+G7c19sKIcvScX/d00En5sRlMQmIbephZNMul0xDCR2oSz7PhUHx8Vwdgv nxVQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:mime-version :content-transfer-encoding; bh=BOBLafRhef2Sc8PNx7MawGagXAWQH7CSQR01G8Is7dE=; b=Ylne2+24lE4D+vWZVHDH4JzSR2VRfITRMnUD0zjvH1DJeofFIxP8Safb7BykzHBibl VB9Nd1wFVgQJZ+16bNGM7E5rPdFRAt+jEsVp0x+0gCIZu8U1iqIhGm+esMYnYYS9QmNI HHChRaGn6w/1ryBp+O/w9wb2P3+Xd/tjl7+j4r+w9iP5L1mqDWCgea0Ktd5+u6OGopa7 wGBLjPkvcEGoTGIr27qdX/mZpfNWZ8AwKOh/AMxjO756NfGwcSKLdGnLyIYyBDkJ1lED wL9P2c8LmW0QM/GZuByoGrH3gl2mDpUYpzy23g4OR9dmnS7O5toSOFSN2kyj4KOZxTik MCxw== X-Gm-Message-State: AOAM532Gfh7SDCtN0dgRu+v243N9xg/cOgqOu5UshwP5TAab9fCZz56W 6QheZIpG8vmnGXvNyo7b6WcaRgwsl5E= X-Google-Smtp-Source: ABdhPJz3aZyDSu4LKuXyRzOTBvr1K+BLcP5tPtPUimzVgokzWvIkEqSSW/wPryyR6BSFYv53jrT1zw== X-Received: by 2002:aa7:c058:: with SMTP id k24mr7117169edo.263.1607611933681; Thu, 10 Dec 2020 06:52:13 -0800 (PST) Received: from abel.fritz.box ([2a02:908:1252:fb60:5156:a85e:a293:ea7a]) by smtp.gmail.com with ESMTPSA id m7sm5030344eds.73.2020.12.10.06.52.12 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 10 Dec 2020 06:52:13 -0800 (PST) From: "=?UTF-8?q?Christian=20K=C3=B6nig?=" X-Google-Original-From: =?UTF-8?q?Christian=20K=C3=B6nig?= To: dri-devel@lists.freedesktop.org Subject: [PATCH] drm/ttm: cleanup BO size handling v3 Date: Thu, 10 Dec 2020 15:52:12 +0100 Message-Id: <20201210145212.16214-1-christian.koenig@amd.com> X-Mailer: git-send-email 2.25.1 MIME-Version: 1.0 X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" QmFzZWQgb24gYW4gaWRlYSBmcm9tIERhdmUsIGJ1dCBjbGVhbmVkIHVwIGEgYml0LgoKV2UgaGFk IG11bHRpcGxlIGZpZWxkcyBmb3IgZXNzZW50aWFsbHkgdGhlIHNhbWUgdGhpbmcuCgpOb3cgYm8t PmJhc2Uuc2l6ZSBpcyB0aGUgb3JpZ2luYWwgc2l6ZSBvZiB0aGUgQk8gaW4KYXJiaXRyYXJ5IHVu aXRzLCB1c3VhbGx5IGJ5dGVzLgoKYm8tPm1lbS5udW1fcGFnZXMgaXMgdGhlIHNpemUgaW4gbnVt YmVyIG9mIHBhZ2VzIGluIHRoZQpyZXNvdXJjZSBkb21haW4gb2YgYm8tPm1lbS5tZW1fdHlwZS4K CnYyOiB1c2UgdGhlIEdFTSBvYmplY3Qgc2l6ZSBpbnN0ZWFkIG9mIHRoZSBCTyBzaXplCnYzOiBm aXggcHJpbnRrcyBpbiBzb21lIHBsYWNlcwoKU2lnbmVkLW9mZi1ieTogQ2hyaXN0aWFuIEvDtm5p ZyA8Y2hyaXN0aWFuLmtvZW5pZ0BhbWQuY29tPgpSZXZpZXdlZC1ieTogSHVhbmcgUnVpIDxyYXku aHVhbmdAYW1kLmNvbT4gKHYxKQpBY2tlZC1ieTogRGFuaWVsIFZldHRlciA8ZGFuaWVsLnZldHRl ckBmZndsbC5jaD4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfZG1hX2J1 Zi5jICAgfCAgMiArLQogZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2dtYy5jICAg ICAgIHwgIDIgKy0KIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9vYmplY3QuYyAg ICB8ICAyICstCiBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfb2JqZWN0LmggICAg fCAgNCArLS0KIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV90cmFjZS5oICAgICB8 ICAyICstCiBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdHRtLmMgICAgICAgfCAg NiArKy0tCiBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9tZXNfdjEwXzEuYyAgICAgICAgfCAg MiArLQogZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbm91dmVhdV9iby5jICAgICAgICAgIHwgMTAg KysrLS0tCiBkcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1X2Rpc3BsYXkuYyAgICAgfCAg OCArKy0tLQogZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbm91dmVhdV9wcmltZS5jICAgICAgIHwg IDQgKy0tCiBkcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9udjE3X2ZlbmNlLmMgICAgICAgICAgfCAg MiArLQogZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbnY1MF9mZW5jZS5jICAgICAgICAgIHwgIDIg Ky0KIGRyaXZlcnMvZ3B1L2RybS9xeGwvcXhsX29iamVjdC5oICAgICAgICAgICAgICB8ICAyICst CiBkcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9jcy5jICAgICAgICAgICAgfCAgMyArLQog ZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fb2JqZWN0LmMgICAgICAgIHwgMTMgKysrKy0t LQogZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fb2JqZWN0LmggICAgICAgIHwgIDQgKy0t CiBkcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9wcmltZS5jICAgICAgICAgfCAgNCArLS0K IGRyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX3RyYWNlLmggICAgICAgICB8ICAyICstCiBk cml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl90dG0uYyAgICAgICAgICAgfCAgMiArLQogZHJp dmVycy9ncHUvZHJtL3R0bS90dG1fYm8uYyAgICAgICAgICAgICAgICAgIHwgMzUgKysrKysrLS0t LS0tLS0tLS0tLQogZHJpdmVycy9ncHUvZHJtL3R0bS90dG1fYm9fdXRpbC5jICAgICAgICAgICAg IHwgMTIgKysrLS0tLQogZHJpdmVycy9ncHUvZHJtL3R0bS90dG1fYm9fdm0uYyAgICAgICAgICAg ICAgIHwgIDYgKystLQogZHJpdmVycy9ncHUvZHJtL3R0bS90dG1fdHQuYyAgICAgICAgICAgICAg ICAgIHwgIDIgKy0KIGRyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2JsaXQuYyAgICAgICAg ICB8ICA0ICstLQogZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfYm8uYyAgICAgICAgICAg IHwgIDYgKystLQogZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfY290YWJsZS5jICAgICAg IHwgIDIgKy0KIGRyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2V4ZWNidWYuYyAgICAgICB8 ICA0ICstLQogZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfZ21yaWRfbWFuYWdlci5jIHwg IDUgKystCiBkcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9rbXMuYyAgICAgICAgICAgfCAg MiArLQogZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfcGFnZV9kaXJ0eS5jICAgIHwgIDgg KystLS0KIGRyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X3Jlc291cmNlLmMgICAgICB8ICAy ICstCiBkcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9zaGFkZXIuYyAgICAgICAgfCAgMyAr LQogZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfc3RkdS5jICAgICAgICAgIHwgIDQgKy0t CiBkcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9zdXJmYWNlLmMgICAgICAgfCAgNyArKy0t CiBpbmNsdWRlL2RybS90dG0vdHRtX2JvX2FwaS5oICAgICAgICAgICAgICAgICAgfCAgOSArKy0t LQogaW5jbHVkZS9kcm0vdHRtL3R0bV9yZXNvdXJjZS5oICAgICAgICAgICAgICAgIHwgIDEgLQog MzYgZmlsZXMgY2hhbmdlZCwgODQgaW5zZXJ0aW9ucygrKSwgMTA0IGRlbGV0aW9ucygtKQoKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9kbWFfYnVmLmMgYi9k cml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfZG1hX2J1Zi5jCmluZGV4IGU1OTE5ZWZj YTg3MC4uYzRjOTNmMTlkMjczIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdw dS9hbWRncHVfZG1hX2J1Zi5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdw dV9kbWFfYnVmLmMKQEAgLTI2OSw3ICsyNjksNyBAQCBzdGF0aWMgc3RydWN0IHNnX3RhYmxlICph bWRncHVfZG1hX2J1Zl9tYXAoc3RydWN0IGRtYV9idWZfYXR0YWNobWVudCAqYXR0YWNoLAogCWNh c2UgVFRNX1BMX1RUOgogCQlzZ3QgPSBkcm1fcHJpbWVfcGFnZXNfdG9fc2cob2JqLT5kZXYsCiAJ CQkJCSAgICBiby0+dGJvLnR0bS0+cGFnZXMsCi0JCQkJCSAgICBiby0+dGJvLm51bV9wYWdlcyk7 CisJCQkJCSAgICBiby0+dGJvLnR0bS0+bnVtX3BhZ2VzKTsKIAkJaWYgKElTX0VSUihzZ3QpKQog CQkJcmV0dXJuIHNndDsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUv YW1kZ3B1X2dtYy5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2dtYy5jCmlu ZGV4IDA1NmNiODdkMDllYS4uNTJiY2QxYjU1ODJmIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9k cm0vYW1kL2FtZGdwdS9hbWRncHVfZ21jLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRn cHUvYW1kZ3B1X2dtYy5jCkBAIC0xMjEsNyArMTIxLDcgQEAgdWludDY0X3QgYW1kZ3B1X2dtY19h Z3BfYWRkcihzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvKQogewogCXN0cnVjdCBhbWRncHVf ZGV2aWNlICphZGV2ID0gYW1kZ3B1X3R0bV9hZGV2KGJvLT5iZGV2KTsKIAotCWlmIChiby0+bnVt X3BhZ2VzICE9IDEgfHwgYm8tPnR0bS0+Y2FjaGluZyA9PSB0dG1fY2FjaGVkKQorCWlmIChiby0+ dHRtLT5udW1fcGFnZXMgIT0gMSB8fCBiby0+dHRtLT5jYWNoaW5nID09IHR0bV9jYWNoZWQpCiAJ CXJldHVybiBBTURHUFVfQk9fSU5WQUxJRF9PRkZTRVQ7CiAKIAlpZiAoYm8tPnR0bS0+ZG1hX2Fk ZHJlc3NbMF0gKyBQQUdFX1NJWkUgPj0gYWRldi0+Z21jLmFncF9zaXplKQpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X29iamVjdC5jIGIvZHJpdmVycy9ncHUv ZHJtL2FtZC9hbWRncHUvYW1kZ3B1X29iamVjdC5jCmluZGV4IGM2Yzk3MjNkM2Q4YS4uMzgxZWNj NDc4OGQ1IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfb2Jq ZWN0LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X29iamVjdC5jCkBA IC03ODcsNyArNzg3LDcgQEAgaW50IGFtZGdwdV9ib19rbWFwKHN0cnVjdCBhbWRncHVfYm8gKmJv LCB2b2lkICoqcHRyKQogCWlmIChyIDwgMCkKIAkJcmV0dXJuIHI7CiAKLQlyID0gdHRtX2JvX2tt YXAoJmJvLT50Ym8sIDAsIGJvLT50Ym8ubnVtX3BhZ2VzLCAmYm8tPmttYXApOworCXIgPSB0dG1f Ym9fa21hcCgmYm8tPnRibywgMCwgYm8tPnRiby5tZW0ubnVtX3BhZ2VzLCAmYm8tPmttYXApOwog CWlmIChyKQogCQlyZXR1cm4gcjsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9h bWRncHUvYW1kZ3B1X29iamVjdC5oIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1 X29iamVjdC5oCmluZGV4IGVkNDdjYmFjNGY3NS4uYTk5YTVjZGU0MmRkIDEwMDY0NAotLS0gYS9k cml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfb2JqZWN0LmgKKysrIGIvZHJpdmVycy9n cHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X29iamVjdC5oCkBAIC0xNzQsMTIgKzE3NCwxMiBAQCBz dGF0aWMgaW5saW5lIHZvaWQgYW1kZ3B1X2JvX3VucmVzZXJ2ZShzdHJ1Y3QgYW1kZ3B1X2JvICpi bykKIAogc3RhdGljIGlubGluZSB1bnNpZ25lZCBsb25nIGFtZGdwdV9ib19zaXplKHN0cnVjdCBh bWRncHVfYm8gKmJvKQogewotCXJldHVybiBiby0+dGJvLm51bV9wYWdlcyA8PCBQQUdFX1NISUZU OworCXJldHVybiBiby0+dGJvLmJhc2Uuc2l6ZTsKIH0KIAogc3RhdGljIGlubGluZSB1bnNpZ25l ZCBhbWRncHVfYm9fbmdwdV9wYWdlcyhzdHJ1Y3QgYW1kZ3B1X2JvICpibykKIHsKLQlyZXR1cm4g KGJvLT50Ym8ubnVtX3BhZ2VzIDw8IFBBR0VfU0hJRlQpIC8gQU1ER1BVX0dQVV9QQUdFX1NJWkU7 CisJcmV0dXJuIGJvLT50Ym8uYmFzZS5zaXplIC8gQU1ER1BVX0dQVV9QQUdFX1NJWkU7CiB9CiAK IHN0YXRpYyBpbmxpbmUgdW5zaWduZWQgYW1kZ3B1X2JvX2dwdV9wYWdlX2FsaWdubWVudChzdHJ1 Y3QgYW1kZ3B1X2JvICpibykKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1 L2FtZGdwdV90cmFjZS5oIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3RyYWNl LmgKaW5kZXggZWU5NDgwZDE0Y2JjLi4yMDcxNWRkYmI3NDYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv Z3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV90cmFjZS5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9h bWQvYW1kZ3B1L2FtZGdwdV90cmFjZS5oCkBAIC0xMjcsNyArMTI3LDcgQEAgVFJBQ0VfRVZFTlQo YW1kZ3B1X2JvX2NyZWF0ZSwKIAogCSAgICBUUF9mYXN0X2Fzc2lnbigKIAkJCSAgIF9fZW50cnkt PmJvID0gYm87Ci0JCQkgICBfX2VudHJ5LT5wYWdlcyA9IGJvLT50Ym8ubnVtX3BhZ2VzOworCQkJ ICAgX19lbnRyeS0+cGFnZXMgPSBiby0+dGJvLm1lbS5udW1fcGFnZXM7CiAJCQkgICBfX2VudHJ5 LT50eXBlID0gYm8tPnRiby5tZW0ubWVtX3R5cGU7CiAJCQkgICBfX2VudHJ5LT5wcmVmZXIgPSBi by0+cHJlZmVycmVkX2RvbWFpbnM7CiAJCQkgICBfX2VudHJ5LT5hbGxvdyA9IGJvLT5hbGxvd2Vk X2RvbWFpbnM7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVf dHRtLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdHRtLmMKaW5kZXggZWM5 M2Q0ZmRhYmJkLi41MzQ2ODkxYTNmNzMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQv YW1kZ3B1L2FtZGdwdV90dG0uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRn cHVfdHRtLmMKQEAgLTYzNiw3ICs2MzYsNyBAQCBzdGF0aWMgaW50IGFtZGdwdV9ib19tb3ZlKHN0 cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8sIGJvb2wgZXZpY3QsCiAKIG91dDoKIAkvKiB1cGRh dGUgc3RhdGlzdGljcyAqLwotCWF0b21pYzY0X2FkZCgodTY0KWJvLT5udW1fcGFnZXMgPDwgUEFH RV9TSElGVCwgJmFkZXYtPm51bV9ieXRlc19tb3ZlZCk7CisJYXRvbWljNjRfYWRkKGJvLT5iYXNl LnNpemUsICZhZGV2LT5udW1fYnl0ZXNfbW92ZWQpOwogCWFtZGdwdV9ib19tb3ZlX25vdGlmeShi bywgZXZpY3QsIG5ld19tZW0pOwogCXJldHVybiAwOwogfQpAQCAtMjEzMSw3ICsyMTMxLDcgQEAg aW50IGFtZGdwdV9maWxsX2J1ZmZlcihzdHJ1Y3QgYW1kZ3B1X2JvICpibywKIAkJCXJldHVybiBy OwogCX0KIAotCW51bV9wYWdlcyA9IGJvLT50Ym8ubnVtX3BhZ2VzOworCW51bV9wYWdlcyA9IGJv LT50Ym8ubWVtLm51bV9wYWdlczsKIAltbV9ub2RlID0gYm8tPnRiby5tZW0ubW1fbm9kZTsKIAlu dW1fbG9vcHMgPSAwOwogCXdoaWxlIChudW1fcGFnZXMpIHsKQEAgLTIxNjEsNyArMjE2MSw3IEBA IGludCBhbWRncHVfZmlsbF9idWZmZXIoc3RydWN0IGFtZGdwdV9ibyAqYm8sCiAJCX0KIAl9CiAK LQludW1fcGFnZXMgPSBiby0+dGJvLm51bV9wYWdlczsKKwludW1fcGFnZXMgPSBiby0+dGJvLm1l bS5udW1fcGFnZXM7CiAJbW1fbm9kZSA9IGJvLT50Ym8ubWVtLm1tX25vZGU7CiAKIAl3aGlsZSAo bnVtX3BhZ2VzKSB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9tZXNf djEwXzEuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L21lc192MTBfMS5jCmluZGV4IDk4 NWU0NTQ0NjNlMS4uN2YzMDYyOWYyMWEyIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1k L2FtZGdwdS9tZXNfdjEwXzEuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9tZXNf djEwXzEuYwpAQCAtNTU0LDcgKzU1NCw3IEBAIHN0YXRpYyBpbnQgbWVzX3YxMF8xX2FsbG9jYXRl X2VvcF9idWYoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCiAJCXJldHVybiByOwogCX0KIAot CW1lbXNldChlb3AsIDAsIGFkZXYtPm1lcy5lb3BfZ3B1X29iai0+dGJvLm1lbS5zaXplKTsKKwlt ZW1zZXQoZW9wLCAwLCBhZGV2LT5tZXMuZW9wX2dwdV9vYmotPnRiby5iYXNlLnNpemUpOwogCiAJ YW1kZ3B1X2JvX2t1bm1hcChhZGV2LT5tZXMuZW9wX2dwdV9vYmopOwogCWFtZGdwdV9ib191bnJl c2VydmUoYWRldi0+bWVzLmVvcF9ncHVfb2JqKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9ub3V2ZWF1L25vdXZlYXVfYm8uYyBiL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L25vdXZlYXVf Ym8uYwppbmRleCBiYzU0MmFjNGM0YjYuLmMxYTY3NWI4ZmM0MyAxMDA2NDQKLS0tIGEvZHJpdmVy cy9ncHUvZHJtL25vdXZlYXUvbm91dmVhdV9iby5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9ub3V2 ZWF1L25vdXZlYXVfYm8uYwpAQCAtNDczLDEwICs0NzMsMTAgQEAgbm91dmVhdV9ib19waW4oc3Ry dWN0IG5vdXZlYXVfYm8gKm52Ym8sIHVpbnQzMl90IGRvbWFpbiwgYm9vbCBjb250aWcpCiAKIAlz d2l0Y2ggKGJvLT5tZW0ubWVtX3R5cGUpIHsKIAljYXNlIFRUTV9QTF9WUkFNOgotCQlkcm0tPmdl bS52cmFtX2F2YWlsYWJsZSAtPSBiby0+bWVtLnNpemU7CisJCWRybS0+Z2VtLnZyYW1fYXZhaWxh YmxlIC09IGJvLT5iYXNlLnNpemU7CiAJCWJyZWFrOwogCWNhc2UgVFRNX1BMX1RUOgotCQlkcm0t PmdlbS5nYXJ0X2F2YWlsYWJsZSAtPSBiby0+bWVtLnNpemU7CisJCWRybS0+Z2VtLmdhcnRfYXZh aWxhYmxlIC09IGJvLT5iYXNlLnNpemU7CiAJCWJyZWFrOwogCWRlZmF1bHQ6CiAJCWJyZWFrOwpA QCAtNTA0LDEwICs1MDQsMTAgQEAgbm91dmVhdV9ib191bnBpbihzdHJ1Y3Qgbm91dmVhdV9ibyAq bnZibykKIAlpZiAoIW52Ym8tPmJvLnBpbl9jb3VudCkgewogCQlzd2l0Y2ggKGJvLT5tZW0ubWVt X3R5cGUpIHsKIAkJY2FzZSBUVE1fUExfVlJBTToKLQkJCWRybS0+Z2VtLnZyYW1fYXZhaWxhYmxl ICs9IGJvLT5tZW0uc2l6ZTsKKwkJCWRybS0+Z2VtLnZyYW1fYXZhaWxhYmxlICs9IGJvLT5iYXNl LnNpemU7CiAJCQlicmVhazsKIAkJY2FzZSBUVE1fUExfVFQ6Ci0JCQlkcm0tPmdlbS5nYXJ0X2F2 YWlsYWJsZSArPSBiby0+bWVtLnNpemU7CisJCQlkcm0tPmdlbS5nYXJ0X2F2YWlsYWJsZSArPSBi by0+YmFzZS5zaXplOwogCQkJYnJlYWs7CiAJCWRlZmF1bHQ6CiAJCQlicmVhazsKQEAgLTkxMyw3 ICs5MTMsNyBAQCBub3V2ZWF1X2JvX3ZtX2JpbmQoc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpi bywgc3RydWN0IHR0bV9yZXNvdXJjZSAqbmV3X3JlZywKIAkJcmV0dXJuIDA7CiAKIAlpZiAoZHJt LT5jbGllbnQuZGV2aWNlLmluZm8uZmFtaWx5ID49IE5WX0RFVklDRV9JTkZPX1YwX0NFTFNJVVMp IHsKLQkJKm5ld190aWxlID0gbnYxMF9ib19zZXRfdGlsaW5nKGRldiwgb2Zmc2V0LCBuZXdfcmVn LT5zaXplLAorCQkqbmV3X3RpbGUgPSBudjEwX2JvX3NldF90aWxpbmcoZGV2LCBvZmZzZXQsIGJv LT5iYXNlLnNpemUsCiAJCQkJCSAgICAgICBudmJvLT5tb2RlLCBudmJvLT56ZXRhKTsKIAl9CiAK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L25vdXZlYXVfZGlzcGxheS5jIGIv ZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbm91dmVhdV9kaXNwbGF5LmMKaW5kZXggYmNlYjQ4YTJk ZmNhLi4xNzgzMWVlODk3ZWEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L25v dXZlYXVfZGlzcGxheS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L25vdXZlYXVfZGlz cGxheS5jCkBAIC0yODYsMTEgKzI4NiwxMSBAQCBub3V2ZWF1X2NoZWNrX2JsX3NpemUoc3RydWN0 IG5vdXZlYXVfZHJtICpkcm0sIHN0cnVjdCBub3V2ZWF1X2JvICpudmJvLAogCiAJYmxfc2l6ZSA9 IGJ3ICogYmggKiAoMSA8PCB0aWxlX21vZGUpICogZ29iX3NpemU7CiAKLQlEUk1fREVCVUdfS01T KCJvZmZzZXQ9JXUgc3RyaWRlPSV1IGg9JXUgdGlsZV9tb2RlPTB4JTAyeCBidz0ldSBiaD0ldSBn b2Jfc2l6ZT0ldSBibF9zaXplPSVsbHUgc2l6ZT0lbHVcbiIsCisJRFJNX0RFQlVHX0tNUygib2Zm c2V0PSV1IHN0cmlkZT0ldSBoPSV1IHRpbGVfbW9kZT0weCUwMnggYnc9JXUgYmg9JXUgZ29iX3Np emU9JXUgYmxfc2l6ZT0lbGx1IHNpemU9JXp1XG4iLAogCQkgICAgICBvZmZzZXQsIHN0cmlkZSwg aCwgdGlsZV9tb2RlLCBidywgYmgsIGdvYl9zaXplLCBibF9zaXplLAotCQkgICAgICBudmJvLT5i by5tZW0uc2l6ZSk7CisJCSAgICAgIG52Ym8tPmJvLmJhc2Uuc2l6ZSk7CiAKLQlpZiAoYmxfc2l6 ZSArIG9mZnNldCA+IG52Ym8tPmJvLm1lbS5zaXplKQorCWlmIChibF9zaXplICsgb2Zmc2V0ID4g bnZiby0+Ym8uYmFzZS5zaXplKQogCQlyZXR1cm4gLUVSQU5HRTsKIAogCXJldHVybiAwOwpAQCAt MzYzLDcgKzM2Myw3IEBAIG5vdXZlYXVfZnJhbWVidWZmZXJfbmV3KHN0cnVjdCBkcm1fZGV2aWNl ICpkZXYsCiAJCX0gZWxzZSB7CiAJCQl1aW50MzJfdCBzaXplID0gbW9kZV9jbWQtPnBpdGNoZXNb aV0gKiBoZWlnaHQ7CiAKLQkJCWlmIChzaXplICsgbW9kZV9jbWQtPm9mZnNldHNbaV0gPiBudmJv LT5iby5tZW0uc2l6ZSkKKwkJCWlmIChzaXplICsgbW9kZV9jbWQtPm9mZnNldHNbaV0gPiBudmJv LT5iby5iYXNlLnNpemUpCiAJCQkJcmV0dXJuIC1FUkFOR0U7CiAJCX0KIAl9CmRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1X3ByaW1lLmMgYi9kcml2ZXJzL2dwdS9k cm0vbm91dmVhdS9ub3V2ZWF1X3ByaW1lLmMKaW5kZXggMmYxNmI1MjQ5MjgzLi4zNDc0ODg2ODVm NzQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L25vdXZlYXVfcHJpbWUuYwor KysgYi9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1X3ByaW1lLmMKQEAgLTMwLDkgKzMw LDkgQEAKIHN0cnVjdCBzZ190YWJsZSAqbm91dmVhdV9nZW1fcHJpbWVfZ2V0X3NnX3RhYmxlKHN0 cnVjdCBkcm1fZ2VtX29iamVjdCAqb2JqKQogewogCXN0cnVjdCBub3V2ZWF1X2JvICpudmJvID0g bm91dmVhdV9nZW1fb2JqZWN0KG9iaik7Ci0JaW50IG5wYWdlcyA9IG52Ym8tPmJvLm51bV9wYWdl czsKIAotCXJldHVybiBkcm1fcHJpbWVfcGFnZXNfdG9fc2cob2JqLT5kZXYsIG52Ym8tPmJvLnR0 bS0+cGFnZXMsIG5wYWdlcyk7CisJcmV0dXJuIGRybV9wcmltZV9wYWdlc190b19zZyhvYmotPmRl diwgbnZiby0+Ym8udHRtLT5wYWdlcywKKwkJCQkgICAgIG52Ym8tPmJvLnR0bS0+bnVtX3BhZ2Vz KTsKIH0KIAogc3RydWN0IGRybV9nZW1fb2JqZWN0ICpub3V2ZWF1X2dlbV9wcmltZV9pbXBvcnRf c2dfdGFibGUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9ub3V2ZWF1L252MTdfZmVuY2UuYyBiL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L252MTdf ZmVuY2UuYwppbmRleCAxMjUzZmRlYzcxMmQuLmIxY2Q4ZDdkZDg3ZCAxMDA2NDQKLS0tIGEvZHJp dmVycy9ncHUvZHJtL25vdXZlYXUvbnYxN19mZW5jZS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9u b3V2ZWF1L252MTdfZmVuY2UuYwpAQCAtODAsNyArODAsNyBAQCBudjE3X2ZlbmNlX2NvbnRleHRf bmV3KHN0cnVjdCBub3V2ZWF1X2NoYW5uZWwgKmNoYW4pCiAJc3RydWN0IG52MTBfZmVuY2VfY2hh biAqZmN0eDsKIAlzdHJ1Y3QgdHRtX3Jlc291cmNlICpyZWcgPSAmcHJpdi0+Ym8tPmJvLm1lbTsK IAl1MzIgc3RhcnQgPSByZWctPnN0YXJ0ICogUEFHRV9TSVpFOwotCXUzMiBsaW1pdCA9IHN0YXJ0 ICsgcmVnLT5zaXplIC0gMTsKKwl1MzIgbGltaXQgPSBzdGFydCArIHByaXYtPmJvLT5iby5iYXNl LnNpemUgLSAxOwogCWludCByZXQgPSAwOwogCiAJZmN0eCA9IGNoYW4tPmZlbmNlID0ga3phbGxv YyhzaXplb2YoKmZjdHgpLCBHRlBfS0VSTkVMKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9ub3V2ZWF1L252NTBfZmVuY2UuYyBiL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L252NTBfZmVu Y2UuYwppbmRleCA0NDcyMzhlM2NiZTcuLjE2MjU4MjY1MDVmNiAxMDA2NDQKLS0tIGEvZHJpdmVy cy9ncHUvZHJtL25vdXZlYXUvbnY1MF9mZW5jZS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9ub3V2 ZWF1L252NTBfZmVuY2UuYwpAQCAtMzksNyArMzksNyBAQCBudjUwX2ZlbmNlX2NvbnRleHRfbmV3 KHN0cnVjdCBub3V2ZWF1X2NoYW5uZWwgKmNoYW4pCiAJc3RydWN0IG52MTBfZmVuY2VfY2hhbiAq ZmN0eDsKIAlzdHJ1Y3QgdHRtX3Jlc291cmNlICpyZWcgPSAmcHJpdi0+Ym8tPmJvLm1lbTsKIAl1 MzIgc3RhcnQgPSByZWctPnN0YXJ0ICogUEFHRV9TSVpFOwotCXUzMiBsaW1pdCA9IHN0YXJ0ICsg cmVnLT5zaXplIC0gMTsKKwl1MzIgbGltaXQgPSBzdGFydCArIHByaXYtPmJvLT5iby5iYXNlLnNp emUgLSAxOwogCWludCByZXQ7CiAKIAlmY3R4ID0gY2hhbi0+ZmVuY2UgPSBremFsbG9jKHNpemVv ZigqZmN0eCksIEdGUF9LRVJORUwpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3F4bC9x eGxfb2JqZWN0LmggYi9kcml2ZXJzL2dwdS9kcm0vcXhsL3F4bF9vYmplY3QuaAppbmRleCBlYmYy NGM5ZDJiZjIuLmU2MGE4Zjg4ZTIyNiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3F4bC9x eGxfb2JqZWN0LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL3F4bC9xeGxfb2JqZWN0LmgKQEAgLTUw LDcgKzUwLDcgQEAgc3RhdGljIGlubGluZSB2b2lkIHF4bF9ib191bnJlc2VydmUoc3RydWN0IHF4 bF9ibyAqYm8pCiAKIHN0YXRpYyBpbmxpbmUgdW5zaWduZWQgbG9uZyBxeGxfYm9fc2l6ZShzdHJ1 Y3QgcXhsX2JvICpibykKIHsKLQlyZXR1cm4gYm8tPnRiby5udW1fcGFnZXMgPDwgUEFHRV9TSElG VDsKKwlyZXR1cm4gYm8tPnRiby5iYXNlLnNpemU7CiB9CiAKIHN0YXRpYyBpbmxpbmUgdTY0IHF4 bF9ib19tbWFwX29mZnNldChzdHJ1Y3QgcXhsX2JvICpibykKZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9yYWRlb24vcmFkZW9uX2NzLmMgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVv bl9jcy5jCmluZGV4IDIxY2UyZjk1MDJjMC4uNGYzNWMzMjk1N2JlIDEwMDY0NAotLS0gYS9kcml2 ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9jcy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRl b24vcmFkZW9uX2NzLmMKQEAgLTQwMSw3ICs0MDEsOCBAQCBzdGF0aWMgaW50IGNtcF9zaXplX3Nt YWxsZXJfZmlyc3Qodm9pZCAqcHJpdiwgc3RydWN0IGxpc3RfaGVhZCAqYSwKIAlzdHJ1Y3QgcmFk ZW9uX2JvX2xpc3QgKmxiID0gbGlzdF9lbnRyeShiLCBzdHJ1Y3QgcmFkZW9uX2JvX2xpc3QsIHR2 LmhlYWQpOwogCiAJLyogU29ydCBBIGJlZm9yZSBCIGlmIEEgaXMgc21hbGxlci4gKi8KLQlyZXR1 cm4gKGludClsYS0+cm9iai0+dGJvLm51bV9wYWdlcyAtIChpbnQpbGItPnJvYmotPnRiby5udW1f cGFnZXM7CisJcmV0dXJuIChpbnQpbGEtPnJvYmotPnRiby5tZW0ubnVtX3BhZ2VzIC0KKwkJKGlu dClsYi0+cm9iai0+dGJvLm1lbS5udW1fcGFnZXM7CiB9CiAKIC8qKgpkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fb2JqZWN0LmMgYi9kcml2ZXJzL2dwdS9kcm0vcmFk ZW9uL3JhZGVvbl9vYmplY3QuYwppbmRleCBhYjgxZTM1Y2IwNjAuLjlhOTk5OTMwZTNkZCAxMDA2 NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fb2JqZWN0LmMKKysrIGIvZHJp dmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fb2JqZWN0LmMKQEAgLTU0LDIwICs1NCwxOSBAQCBz dGF0aWMgdm9pZCByYWRlb25fdXBkYXRlX21lbW9yeV91c2FnZShzdHJ1Y3QgcmFkZW9uX2JvICpi bywKIAkJCQkgICAgICAgdW5zaWduZWQgbWVtX3R5cGUsIGludCBzaWduKQogewogCXN0cnVjdCBy YWRlb25fZGV2aWNlICpyZGV2ID0gYm8tPnJkZXY7Ci0JdTY0IHNpemUgPSAodTY0KWJvLT50Ym8u bnVtX3BhZ2VzIDw8IFBBR0VfU0hJRlQ7CiAKIAlzd2l0Y2ggKG1lbV90eXBlKSB7CiAJY2FzZSBU VE1fUExfVFQ6CiAJCWlmIChzaWduID4gMCkKLQkJCWF0b21pYzY0X2FkZChzaXplLCAmcmRldi0+ Z3R0X3VzYWdlKTsKKwkJCWF0b21pYzY0X2FkZChiby0+dGJvLmJhc2Uuc2l6ZSwgJnJkZXYtPmd0 dF91c2FnZSk7CiAJCWVsc2UKLQkJCWF0b21pYzY0X3N1YihzaXplLCAmcmRldi0+Z3R0X3VzYWdl KTsKKwkJCWF0b21pYzY0X3N1Yihiby0+dGJvLmJhc2Uuc2l6ZSwgJnJkZXYtPmd0dF91c2FnZSk7 CiAJCWJyZWFrOwogCWNhc2UgVFRNX1BMX1ZSQU06CiAJCWlmIChzaWduID4gMCkKLQkJCWF0b21p YzY0X2FkZChzaXplLCAmcmRldi0+dnJhbV91c2FnZSk7CisJCQlhdG9taWM2NF9hZGQoYm8tPnRi by5iYXNlLnNpemUsICZyZGV2LT52cmFtX3VzYWdlKTsKIAkJZWxzZQotCQkJYXRvbWljNjRfc3Vi KHNpemUsICZyZGV2LT52cmFtX3VzYWdlKTsKKwkJCWF0b21pYzY0X3N1Yihiby0+dGJvLmJhc2Uu c2l6ZSwgJnJkZXYtPnZyYW1fdXNhZ2UpOwogCQlicmVhazsKIAl9CiB9CkBAIC0yNTYsNyArMjU1 LDcgQEAgaW50IHJhZGVvbl9ib19rbWFwKHN0cnVjdCByYWRlb25fYm8gKmJvLCB2b2lkICoqcHRy KQogCQl9CiAJCXJldHVybiAwOwogCX0KLQlyID0gdHRtX2JvX2ttYXAoJmJvLT50Ym8sIDAsIGJv LT50Ym8ubnVtX3BhZ2VzLCAmYm8tPmttYXApOworCXIgPSB0dG1fYm9fa21hcCgmYm8tPnRibywg MCwgYm8tPnRiby5tZW0ubnVtX3BhZ2VzLCAmYm8tPmttYXApOwogCWlmIChyKSB7CiAJCXJldHVy biByOwogCX0KQEAgLTYxMCw3ICs2MDksNyBAQCBpbnQgcmFkZW9uX2JvX2dldF9zdXJmYWNlX3Jl ZyhzdHJ1Y3QgcmFkZW9uX2JvICpibykKIG91dDoKIAlyYWRlb25fc2V0X3N1cmZhY2VfcmVnKHJk ZXYsIGksIGJvLT50aWxpbmdfZmxhZ3MsIGJvLT5waXRjaCwKIAkJCSAgICAgICBiby0+dGJvLm1l bS5zdGFydCA8PCBQQUdFX1NISUZULAotCQkJICAgICAgIGJvLT50Ym8ubnVtX3BhZ2VzIDw8IFBB R0VfU0hJRlQpOworCQkJICAgICAgIGJvLT50Ym8uYmFzZS5zaXplKTsKIAlyZXR1cm4gMDsKIH0K IApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fb2JqZWN0LmggYi9k cml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9vYmplY3QuaAppbmRleCBkNjA2ZTlhOTM1ZTMu Ljk4OTZkODIzMWZlNSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25f b2JqZWN0LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fb2JqZWN0LmgKQEAg LTEwOSwxMiArMTA5LDEyIEBAIHN0YXRpYyBpbmxpbmUgdTY0IHJhZGVvbl9ib19ncHVfb2Zmc2V0 KHN0cnVjdCByYWRlb25fYm8gKmJvKQogCiBzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGxvbmcgcmFk ZW9uX2JvX3NpemUoc3RydWN0IHJhZGVvbl9ibyAqYm8pCiB7Ci0JcmV0dXJuIGJvLT50Ym8ubnVt X3BhZ2VzIDw8IFBBR0VfU0hJRlQ7CisJcmV0dXJuIGJvLT50Ym8uYmFzZS5zaXplOwogfQogCiBz dGF0aWMgaW5saW5lIHVuc2lnbmVkIHJhZGVvbl9ib19uZ3B1X3BhZ2VzKHN0cnVjdCByYWRlb25f Ym8gKmJvKQogewotCXJldHVybiAoYm8tPnRiby5udW1fcGFnZXMgPDwgUEFHRV9TSElGVCkgLyBS QURFT05fR1BVX1BBR0VfU0laRTsKKwlyZXR1cm4gYm8tPnRiby5iYXNlLnNpemUgLyBSQURFT05f R1BVX1BBR0VfU0laRTsKIH0KIAogc3RhdGljIGlubGluZSB1bnNpZ25lZCByYWRlb25fYm9fZ3B1 X3BhZ2VfYWxpZ25tZW50KHN0cnVjdCByYWRlb25fYm8gKmJvKQpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fcHJpbWUuYyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24v cmFkZW9uX3ByaW1lLmMKaW5kZXggMDg4ZDM5YTUxYzBkLi4wYTA5ZGJhYmEyODkgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX3ByaW1lLmMKKysrIGIvZHJpdmVycy9n cHUvZHJtL3JhZGVvbi9yYWRlb25fcHJpbWUuYwpAQCAtMzQsOSArMzQsOSBAQAogc3RydWN0IHNn X3RhYmxlICpyYWRlb25fZ2VtX3ByaW1lX2dldF9zZ190YWJsZShzdHJ1Y3QgZHJtX2dlbV9vYmpl Y3QgKm9iaikKIHsKIAlzdHJ1Y3QgcmFkZW9uX2JvICpibyA9IGdlbV90b19yYWRlb25fYm8ob2Jq KTsKLQlpbnQgbnBhZ2VzID0gYm8tPnRiby5udW1fcGFnZXM7CiAKLQlyZXR1cm4gZHJtX3ByaW1l X3BhZ2VzX3RvX3NnKG9iai0+ZGV2LCBiby0+dGJvLnR0bS0+cGFnZXMsIG5wYWdlcyk7CisJcmV0 dXJuIGRybV9wcmltZV9wYWdlc190b19zZyhvYmotPmRldiwgYm8tPnRiby50dG0tPnBhZ2VzLAor CQkJCSAgICAgYm8tPnRiby50dG0tPm51bV9wYWdlcyk7CiB9CiAKIHN0cnVjdCBkcm1fZ2VtX29i amVjdCAqcmFkZW9uX2dlbV9wcmltZV9pbXBvcnRfc2dfdGFibGUoc3RydWN0IGRybV9kZXZpY2Ug KmRldiwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX3RyYWNlLmgg Yi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl90cmFjZS5oCmluZGV4IGM5M2YzYWIzYzRl My4uMTcyOWNiOWE5NWM1IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVv bl90cmFjZS5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX3RyYWNlLmgKQEAg LTIyLDcgKzIyLDcgQEAgVFJBQ0VfRVZFTlQocmFkZW9uX2JvX2NyZWF0ZSwKIAogCSAgICBUUF9m YXN0X2Fzc2lnbigKIAkJCSAgIF9fZW50cnktPmJvID0gYm87Ci0JCQkgICBfX2VudHJ5LT5wYWdl cyA9IGJvLT50Ym8ubnVtX3BhZ2VzOworCQkJICAgX19lbnRyeS0+cGFnZXMgPSBiby0+dGJvLm1l bS5udW1fcGFnZXM7CiAJCQkgICApLAogCSAgICBUUF9wcmludGsoImJvPSVwLCBwYWdlcz0ldSIs IF9fZW50cnktPmJvLCBfX2VudHJ5LT5wYWdlcykKICk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vcmFkZW9uL3JhZGVvbl90dG0uYyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9u X3R0bS5jCmluZGV4IGEzNDMyYzYzNDNiYS4uZWEzNjVhYzZmNGYxIDEwMDY0NAotLS0gYS9kcml2 ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl90dG0uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vcmFk ZW9uL3JhZGVvbl90dG0uYwpAQCAtMjc0LDcgKzI3NCw3IEBAIHN0YXRpYyBpbnQgcmFkZW9uX2Jv X21vdmUoc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibywgYm9vbCBldmljdCwKIAogb3V0Ogog CS8qIHVwZGF0ZSBzdGF0aXN0aWNzICovCi0JYXRvbWljNjRfYWRkKCh1NjQpYm8tPm51bV9wYWdl cyA8PCBQQUdFX1NISUZULCAmcmRldi0+bnVtX2J5dGVzX21vdmVkKTsKKwlhdG9taWM2NF9hZGQo Ym8tPmJhc2Uuc2l6ZSwgJnJkZXYtPm51bV9ieXRlc19tb3ZlZCk7CiAJcmFkZW9uX2JvX21vdmVf bm90aWZ5KGJvLCBldmljdCwgbmV3X21lbSk7CiAJcmV0dXJuIDA7CiB9CmRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9iby5jIGIvZHJpdmVycy9ncHUvZHJtL3R0bS90dG1fYm8u YwppbmRleCAwMmNjNWQyNDdjMGQuLjIxOTZlM2QzZWYyOSAxMDA2NDQKLS0tIGEvZHJpdmVycy9n cHUvZHJtL3R0bS90dG1fYm8uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9iby5jCkBA IC03Miw5ICs3Miw5IEBAIHN0YXRpYyB2b2lkIHR0bV9ib19tZW1fc3BhY2VfZGVidWcoc3RydWN0 IHR0bV9idWZmZXJfb2JqZWN0ICpibywKIAlzdHJ1Y3QgdHRtX3Jlc291cmNlX21hbmFnZXIgKm1h bjsKIAlpbnQgaSwgbWVtX3R5cGU7CiAKLQlkcm1fcHJpbnRmKCZwLCAiTm8gc3BhY2UgZm9yICVw ICglbHUgcGFnZXMsICVsdUssICVsdU0pXG4iLAotCQkgICBibywgYm8tPm1lbS5udW1fcGFnZXMs IGJvLT5tZW0uc2l6ZSA+PiAxMCwKLQkJICAgYm8tPm1lbS5zaXplID4+IDIwKTsKKwlkcm1fcHJp bnRmKCZwLCAiTm8gc3BhY2UgZm9yICVwICglbHUgcGFnZXMsICV6dUssICV6dU0pXG4iLAorCQkg ICBibywgYm8tPm1lbS5udW1fcGFnZXMsIGJvLT5iYXNlLnNpemUgPj4gMTAsCisJCSAgIGJvLT5i YXNlLnNpemUgPj4gMjApOwogCWZvciAoaSA9IDA7IGkgPCBwbGFjZW1lbnQtPm51bV9wbGFjZW1l bnQ7IGkrKykgewogCQltZW1fdHlwZSA9IHBsYWNlbWVudC0+cGxhY2VtZW50W2ldLm1lbV90eXBl OwogCQlkcm1fcHJpbnRmKCZwLCAiICBwbGFjZW1lbnRbJWRdPTB4JTA4WCAoJWQpXG4iLApAQCAt MjY4LDcgKzI2OCw3IEBAIHN0YXRpYyBpbnQgdHRtX2JvX2hhbmRsZV9tb3ZlX21lbShzdHJ1Y3Qg dHRtX2J1ZmZlcl9vYmplY3QgKmJvLAogCQlnb3RvIG91dF9lcnI7CiAJfQogCi0JY3R4LT5ieXRl c19tb3ZlZCArPSBiby0+bnVtX3BhZ2VzIDw8IFBBR0VfU0hJRlQ7CisJY3R4LT5ieXRlc19tb3Zl ZCArPSBiby0+YmFzZS5zaXplOwogCXJldHVybiAwOwogCiBvdXRfZXJyOgpAQCAtOTg1LDggKzk4 NSw3IEBAIHN0YXRpYyBpbnQgdHRtX2JvX21vdmVfYnVmZmVyKHN0cnVjdCB0dG1fYnVmZmVyX29i amVjdCAqYm8sCiAKIAltZW1zZXQoJmhvcCwgMCwgc2l6ZW9mKGhvcCkpOwogCi0JbWVtLm51bV9w YWdlcyA9IGJvLT5udW1fcGFnZXM7Ci0JbWVtLnNpemUgPSBtZW0ubnVtX3BhZ2VzIDw8IFBBR0Vf U0hJRlQ7CisJbWVtLm51bV9wYWdlcyA9IFBBR0VfQUxJR04oYm8tPmJhc2Uuc2l6ZSkgPj4gUEFH RV9TSElGVDsKIAltZW0ucGFnZV9hbGlnbm1lbnQgPSBiby0+bWVtLnBhZ2VfYWxpZ25tZW50Owog CW1lbS5idXMub2Zmc2V0ID0gMDsKIAltZW0uYnVzLmFkZHIgPSBOVUxMOwpAQCAtMTEwMiw3ICsx MTAxLDcgQEAgRVhQT1JUX1NZTUJPTCh0dG1fYm9fdmFsaWRhdGUpOwogCiBpbnQgdHRtX2JvX2lu aXRfcmVzZXJ2ZWQoc3RydWN0IHR0bV9ib19kZXZpY2UgKmJkZXYsCiAJCQkgc3RydWN0IHR0bV9i dWZmZXJfb2JqZWN0ICpibywKLQkJCSB1bnNpZ25lZCBsb25nIHNpemUsCisJCQkgc2l6ZV90IHNp emUsCiAJCQkgZW51bSB0dG1fYm9fdHlwZSB0eXBlLAogCQkJIHN0cnVjdCB0dG1fcGxhY2VtZW50 ICpwbGFjZW1lbnQsCiAJCQkgdWludDMyX3QgcGFnZV9hbGlnbm1lbnQsCkBAIC0xMTEzLDkgKzEx MTIsOCBAQCBpbnQgdHRtX2JvX2luaXRfcmVzZXJ2ZWQoc3RydWN0IHR0bV9ib19kZXZpY2UgKmJk ZXYsCiAJCQkgdm9pZCAoKmRlc3Ryb3kpIChzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKikpCiB7 CiAJc3RydWN0IHR0bV9tZW1fZ2xvYmFsICptZW1fZ2xvYiA9ICZ0dG1fbWVtX2dsb2I7Ci0JaW50 IHJldCA9IDA7Ci0JdW5zaWduZWQgbG9uZyBudW1fcGFnZXM7CiAJYm9vbCBsb2NrZWQ7CisJaW50 IHJldCA9IDA7CiAKIAlyZXQgPSB0dG1fbWVtX2dsb2JhbF9hbGxvYyhtZW1fZ2xvYiwgYWNjX3Np emUsIGN0eCk7CiAJaWYgKHJldCkgewpAQCAtMTEyNywxNiArMTEyNSw2IEBAIGludCB0dG1fYm9f aW5pdF9yZXNlcnZlZChzdHJ1Y3QgdHRtX2JvX2RldmljZSAqYmRldiwKIAkJcmV0dXJuIC1FTk9N RU07CiAJfQogCi0JbnVtX3BhZ2VzID0gKHNpemUgKyBQQUdFX1NJWkUgLSAxKSA+PiBQQUdFX1NI SUZUOwotCWlmIChudW1fcGFnZXMgPT0gMCkgewotCQlwcl9lcnIoIklsbGVnYWwgYnVmZmVyIG9i amVjdCBzaXplXG4iKTsKLQkJaWYgKGRlc3Ryb3kpCi0JCQkoKmRlc3Ryb3kpKGJvKTsKLQkJZWxz ZQotCQkJa2ZyZWUoYm8pOwotCQl0dG1fbWVtX2dsb2JhbF9mcmVlKG1lbV9nbG9iLCBhY2Nfc2l6 ZSk7Ci0JCXJldHVybiAtRUlOVkFMOwotCX0KIAliby0+ZGVzdHJveSA9IGRlc3Ryb3kgPyBkZXN0 cm95IDogdHRtX2JvX2RlZmF1bHRfZGVzdHJveTsKIAogCWtyZWZfaW5pdCgmYm8tPmtyZWYpOwpA QCAtMTE0NSwxMCArMTEzMyw4IEBAIGludCB0dG1fYm9faW5pdF9yZXNlcnZlZChzdHJ1Y3QgdHRt X2JvX2RldmljZSAqYmRldiwKIAlJTklUX0xJU1RfSEVBRCgmYm8tPnN3YXApOwogCWJvLT5iZGV2 ID0gYmRldjsKIAliby0+dHlwZSA9IHR5cGU7Ci0JYm8tPm51bV9wYWdlcyA9IG51bV9wYWdlczsK LQliby0+bWVtLnNpemUgPSBudW1fcGFnZXMgPDwgUEFHRV9TSElGVDsKIAliby0+bWVtLm1lbV90 eXBlID0gVFRNX1BMX1NZU1RFTTsKLQliby0+bWVtLm51bV9wYWdlcyA9IGJvLT5udW1fcGFnZXM7 CisJYm8tPm1lbS5udW1fcGFnZXMgPSBQQUdFX0FMSUdOKHNpemUpID4+IFBBR0VfU0hJRlQ7CiAJ Ym8tPm1lbS5tbV9ub2RlID0gTlVMTDsKIAliby0+bWVtLnBhZ2VfYWxpZ25tZW50ID0gcGFnZV9h bGlnbm1lbnQ7CiAJYm8tPm1lbS5idXMub2Zmc2V0ID0gMDsKQEAgLTExNjYsOSArMTE1MiwxMCBA QCBpbnQgdHRtX2JvX2luaXRfcmVzZXJ2ZWQoc3RydWN0IHR0bV9ib19kZXZpY2UgKmJkZXYsCiAJ fQogCWlmICghdHRtX2JvX3VzZXNfZW1iZWRkZWRfZ2VtX29iamVjdChibykpIHsKIAkJLyoKLQkJ ICogYm8uZ2VtIGlzIG5vdCBpbml0aWFsaXplZCwgc28gd2UgaGF2ZSB0byBzZXR1cCB0aGUKKwkJ ICogYm8uYmFzZSBpcyBub3QgaW5pdGlhbGl6ZWQsIHNvIHdlIGhhdmUgdG8gc2V0dXAgdGhlCiAJ CSAqIHN0cnVjdCBlbGVtZW50cyB3ZSB3YW50IHVzZSByZWdhcmRsZXNzLgogCQkgKi8KKwkJYm8t PmJhc2Uuc2l6ZSA9IHNpemU7CiAJCWRtYV9yZXN2X2luaXQoJmJvLT5iYXNlLl9yZXN2KTsKIAkJ ZHJtX3ZtYV9ub2RlX3Jlc2V0KCZiby0+YmFzZS52bWFfbm9kZSk7CiAJfQpAQCAtMTIxMCw3ICsx MTk3LDcgQEAgRVhQT1JUX1NZTUJPTCh0dG1fYm9faW5pdF9yZXNlcnZlZCk7CiAKIGludCB0dG1f Ym9faW5pdChzdHJ1Y3QgdHRtX2JvX2RldmljZSAqYmRldiwKIAkJc3RydWN0IHR0bV9idWZmZXJf b2JqZWN0ICpibywKLQkJdW5zaWduZWQgbG9uZyBzaXplLAorCQlzaXplX3Qgc2l6ZSwKIAkJZW51 bSB0dG1fYm9fdHlwZSB0eXBlLAogCQlzdHJ1Y3QgdHRtX3BsYWNlbWVudCAqcGxhY2VtZW50LAog CQl1aW50MzJfdCBwYWdlX2FsaWdubWVudCwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS90 dG0vdHRtX2JvX3V0aWwuYyBiL2RyaXZlcnMvZ3B1L2RybS90dG0vdHRtX2JvX3V0aWwuYwppbmRl eCA1YmJjMTMzOWQyOGUuLjM5OGQ1MDEzZmMzOSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJt L3R0bS90dG1fYm9fdXRpbC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS90dG0vdHRtX2JvX3V0aWwu YwpAQCAtNDMxLDkgKzQzMSw5IEBAIGludCB0dG1fYm9fa21hcChzdHJ1Y3QgdHRtX2J1ZmZlcl9v YmplY3QgKmJvLAogCiAJbWFwLT52aXJ0dWFsID0gTlVMTDsKIAltYXAtPmJvID0gYm87Ci0JaWYg KG51bV9wYWdlcyA+IGJvLT5udW1fcGFnZXMpCisJaWYgKG51bV9wYWdlcyA+IGJvLT5tZW0ubnVt X3BhZ2VzKQogCQlyZXR1cm4gLUVJTlZBTDsKLQlpZiAoc3RhcnRfcGFnZSA+IGJvLT5udW1fcGFn ZXMpCisJaWYgKChzdGFydF9wYWdlICsgbnVtX3BhZ2VzKSA+IGJvLT5tZW0ubnVtX3BhZ2VzKQog CQlyZXR1cm4gLUVJTlZBTDsKIAogCXJldCA9IHR0bV9tZW1faW9fcmVzZXJ2ZShiby0+YmRldiwg JmJvLT5tZW0pOwpAQCAtNDg1LDE0ICs0ODUsMTQgQEAgaW50IHR0bV9ib192bWFwKHN0cnVjdCB0 dG1fYnVmZmVyX29iamVjdCAqYm8sIHN0cnVjdCBkbWFfYnVmX21hcCAqbWFwKQogCiAJaWYgKG1l bS0+YnVzLmlzX2lvbWVtKSB7CiAJCXZvaWQgX19pb21lbSAqdmFkZHJfaW9tZW07Ci0JCXNpemVf dCBzaXplID0gYm8tPm51bV9wYWdlcyA8PCBQQUdFX1NISUZUOwogCiAJCWlmIChtZW0tPmJ1cy5h ZGRyKQogCQkJdmFkZHJfaW9tZW0gPSAodm9pZCBfX2lvbWVtICopbWVtLT5idXMuYWRkcjsKIAkJ ZWxzZSBpZiAobWVtLT5idXMuY2FjaGluZyA9PSB0dG1fd3JpdGVfY29tYmluZWQpCi0JCQl2YWRk cl9pb21lbSA9IGlvcmVtYXBfd2MobWVtLT5idXMub2Zmc2V0LCBzaXplKTsKKwkJCXZhZGRyX2lv bWVtID0gaW9yZW1hcF93YyhtZW0tPmJ1cy5vZmZzZXQsCisJCQkJCQkgYm8tPmJhc2Uuc2l6ZSk7 CiAJCWVsc2UKLQkJCXZhZGRyX2lvbWVtID0gaW9yZW1hcChtZW0tPmJ1cy5vZmZzZXQsIHNpemUp OworCQkJdmFkZHJfaW9tZW0gPSBpb3JlbWFwKG1lbS0+YnVzLm9mZnNldCwgYm8tPmJhc2Uuc2l6 ZSk7CiAKIAkJaWYgKCF2YWRkcl9pb21lbSkKIAkJCXJldHVybiAtRU5PTUVNOwpAQCAtNTE3LDcg KzUxNyw3IEBAIGludCB0dG1fYm9fdm1hcChzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvLCBz dHJ1Y3QgZG1hX2J1Zl9tYXAgKm1hcCkKIAkJICogb3IgdG8gbWFrZSB0aGUgYnVmZmVyIG9iamVj dCBsb29rIGNvbnRpZ3VvdXMuCiAJCSAqLwogCQlwcm90ID0gdHRtX2lvX3Byb3QoYm8sIG1lbSwg UEFHRV9LRVJORUwpOwotCQl2YWRkciA9IHZtYXAodHRtLT5wYWdlcywgYm8tPm51bV9wYWdlcywg MCwgcHJvdCk7CisJCXZhZGRyID0gdm1hcCh0dG0tPnBhZ2VzLCB0dG0tPm51bV9wYWdlcywgMCwg cHJvdCk7CiAJCWlmICghdmFkZHIpCiAJCQlyZXR1cm4gLUVOT01FTTsKIApkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL3R0bS90dG1fYm9fdm0uYyBiL2RyaXZlcnMvZ3B1L2RybS90dG0vdHRt X2JvX3ZtLmMKaW5kZXggMTQ0YTQ5NDBiNmI2Li42ZGM5NmNmNjY3NDQgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvZ3B1L2RybS90dG0vdHRtX2JvX3ZtLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3R0bS90 dG1fYm9fdm0uYwpAQCAtMTk4LDcgKzE5OCw3IEBAIHN0YXRpYyB2bV9mYXVsdF90IHR0bV9ib192 bV9pbnNlcnRfaHVnZShzdHJ1Y3Qgdm1fZmF1bHQgKnZtZiwKIAogCS8qIEZhdWx0IHNob3VsZCBu b3QgY3Jvc3MgYm8gYm91bmRhcnkuICovCiAJcGFnZV9vZmZzZXQgJj0gfihmYXVsdF9wYWdlX3Np emUgLSAxKTsKLQlpZiAocGFnZV9vZmZzZXQgKyBmYXVsdF9wYWdlX3NpemUgPiBiby0+bnVtX3Bh Z2VzKQorCWlmIChwYWdlX29mZnNldCArIGZhdWx0X3BhZ2Vfc2l6ZSA+IGJvLT5tZW0ubnVtX3Bh Z2VzKQogCQlnb3RvIG91dF9mYWxsYmFjazsKIAogCWlmIChiby0+bWVtLmJ1cy5pc19pb21lbSkK QEAgLTMwNiw3ICszMDYsNyBAQCB2bV9mYXVsdF90IHR0bV9ib192bV9mYXVsdF9yZXNlcnZlZChz dHJ1Y3Qgdm1fZmF1bHQgKnZtZiwKIAlwYWdlX2xhc3QgPSB2bWFfcGFnZXModm1hKSArIHZtYS0+ dm1fcGdvZmYgLQogCQlkcm1fdm1hX25vZGVfc3RhcnQoJmJvLT5iYXNlLnZtYV9ub2RlKTsKIAot CWlmICh1bmxpa2VseShwYWdlX29mZnNldCA+PSBiby0+bnVtX3BhZ2VzKSkKKwlpZiAodW5saWtl bHkocGFnZV9vZmZzZXQgPj0gYm8tPm1lbS5udW1fcGFnZXMpKQogCQlyZXR1cm4gVk1fRkFVTFRf U0lHQlVTOwogCiAJcHJvdCA9IHR0bV9pb19wcm90KGJvLCAmYm8tPm1lbSwgcHJvdCk7CkBAIC00 NjksNyArNDY5LDcgQEAgaW50IHR0bV9ib192bV9hY2Nlc3Moc3RydWN0IHZtX2FyZWFfc3RydWN0 ICp2bWEsIHVuc2lnbmVkIGxvbmcgYWRkciwKIAkJIDw8IFBBR0VfU0hJRlQpOwogCWludCByZXQ7 CiAKLQlpZiAobGVuIDwgMSB8fCAob2Zmc2V0ICsgbGVuKSA+PiBQQUdFX1NISUZUID4gYm8tPm51 bV9wYWdlcykKKwlpZiAobGVuIDwgMSB8fCAob2Zmc2V0ICsgbGVuKSA+PiBQQUdFX1NISUZUID4g Ym8tPm1lbS5udW1fcGFnZXMpCiAJCXJldHVybiAtRUlPOwogCiAJcmV0ID0gdHRtX2JvX3Jlc2Vy dmUoYm8sIHRydWUsIGZhbHNlLCBOVUxMKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS90 dG0vdHRtX3R0LmMgYi9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV90dC5jCmluZGV4IDc3YmE3ODQ0 MjVkZC4uN2Y3NWExMzE2M2YwIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV90 dC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS90dG0vdHRtX3R0LmMKQEAgLTEyOSw3ICsxMjksNyBA QCBzdGF0aWMgdm9pZCB0dG1fdHRfaW5pdF9maWVsZHMoc3RydWN0IHR0bV90dCAqdHRtLAogCQkJ ICAgICAgIHVpbnQzMl90IHBhZ2VfZmxhZ3MsCiAJCQkgICAgICAgZW51bSB0dG1fY2FjaGluZyBj YWNoaW5nKQogewotCXR0bS0+bnVtX3BhZ2VzID0gYm8tPm51bV9wYWdlczsKKwl0dG0tPm51bV9w YWdlcyA9IFBBR0VfQUxJR04oYm8tPmJhc2Uuc2l6ZSkgPj4gUEFHRV9TSElGVDsKIAl0dG0tPmNh Y2hpbmcgPSB0dG1fY2FjaGVkOwogCXR0bS0+cGFnZV9mbGFncyA9IHBhZ2VfZmxhZ3M7CiAJdHRt LT5kbWFfYWRkcmVzcyA9IE5VTEw7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4 L3Ztd2dmeF9ibGl0LmMgYi9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9ibGl0LmMKaW5k ZXggZjIxODgxZTA4N2RiLi45ZjI3NzlkZGNmMDggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS92bXdnZngvdm13Z2Z4X2JsaXQuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dm eF9ibGl0LmMKQEAgLTQ4Miw4ICs0ODIsOCBAQCBpbnQgdm13X2JvX2NwdV9ibGl0KHN0cnVjdCB0 dG1fYnVmZmVyX29iamVjdCAqZHN0LAogCWQuc3JjX2FkZHIgPSBOVUxMOwogCWQuZHN0X3BhZ2Vz ID0gZHN0LT50dG0tPnBhZ2VzOwogCWQuc3JjX3BhZ2VzID0gc3JjLT50dG0tPnBhZ2VzOwotCWQu ZHN0X251bV9wYWdlcyA9IGRzdC0+bnVtX3BhZ2VzOwotCWQuc3JjX251bV9wYWdlcyA9IHNyYy0+ bnVtX3BhZ2VzOworCWQuZHN0X251bV9wYWdlcyA9IGRzdC0+bWVtLm51bV9wYWdlczsKKwlkLnNy Y19udW1fcGFnZXMgPSBzcmMtPm1lbS5udW1fcGFnZXM7CiAJZC5kc3RfcHJvdCA9IHR0bV9pb19w cm90KGRzdCwgJmRzdC0+bWVtLCBQQUdFX0tFUk5FTCk7CiAJZC5zcmNfcHJvdCA9IHR0bV9pb19w cm90KHNyYywgJnNyYy0+bWVtLCBQQUdFX0tFUk5FTCk7CiAJZC5kaWZmID0gZGlmZjsKZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2JvLmMgYi9kcml2ZXJzL2dwdS9k cm0vdm13Z2Z4L3Ztd2dmeF9iby5jCmluZGV4IDI2M2Q3NmFlNDNmMC4uNjNkYmM0NGVlYmUwIDEw MDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9iby5jCisrKyBiL2RyaXZl cnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2JvLmMKQEAgLTIyMyw3ICsyMjMsNyBAQCBpbnQgdm13 X2JvX3Bpbl9pbl9zdGFydF9vZl92cmFtKHN0cnVjdCB2bXdfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJ dWludDMyX3QgbmV3X2ZsYWdzOwogCiAJcGxhY2UgPSB2bXdfdnJhbV9wbGFjZW1lbnQucGxhY2Vt ZW50WzBdOwotCXBsYWNlLmxwZm4gPSBiby0+bnVtX3BhZ2VzOworCXBsYWNlLmxwZm4gPSBiby0+ bWVtLm51bV9wYWdlczsKIAlwbGFjZW1lbnQubnVtX3BsYWNlbWVudCA9IDE7CiAJcGxhY2VtZW50 LnBsYWNlbWVudCA9ICZwbGFjZTsKIAlwbGFjZW1lbnQubnVtX2J1c3lfcGxhY2VtZW50ID0gMTsK QEAgLTI0NCw3ICsyNDQsNyBAQCBpbnQgdm13X2JvX3Bpbl9pbl9zdGFydF9vZl92cmFtKHN0cnVj dCB2bXdfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJICogdGhhdCBzaXR1YXRpb24uCiAJICovCiAJaWYg KGJvLT5tZW0ubWVtX3R5cGUgPT0gVFRNX1BMX1ZSQU0gJiYKLQkgICAgYm8tPm1lbS5zdGFydCA8 IGJvLT5udW1fcGFnZXMgJiYKKwkgICAgYm8tPm1lbS5zdGFydCA8IGJvLT5tZW0ubnVtX3BhZ2Vz ICYmCiAJICAgIGJvLT5tZW0uc3RhcnQgPiAwICYmCiAJICAgIGJ1Zi0+YmFzZS5waW5fY291bnQg PT0gMCkgewogCQljdHguaW50ZXJydXB0aWJsZSA9IGZhbHNlOwpAQCAtMzkxLDcgKzM5MSw3IEBA IHZvaWQgKnZtd19ib19tYXBfYW5kX2NhY2hlKHN0cnVjdCB2bXdfYnVmZmVyX29iamVjdCAqdmJv KQogCWlmICh2aXJ0dWFsKQogCQlyZXR1cm4gdmlydHVhbDsKIAotCXJldCA9IHR0bV9ib19rbWFw KGJvLCAwLCBiby0+bnVtX3BhZ2VzLCAmdmJvLT5tYXApOworCXJldCA9IHR0bV9ib19rbWFwKGJv LCAwLCBiby0+bWVtLm51bV9wYWdlcywgJnZiby0+bWFwKTsKIAlpZiAocmV0KQogCQlEUk1fRVJS T1IoIkJ1ZmZlciBvYmplY3QgbWFwIGZhaWxlZDogJWQuXG4iLCByZXQpOwogCmRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9jb3RhYmxlLmMgYi9kcml2ZXJzL2dwdS9k cm0vdm13Z2Z4L3Ztd2dmeF9jb3RhYmxlLmMKaW5kZXggOTg0ZDg4ODQzNTdkLi5hMDc3ZTQyMGQy ZmYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2NvdGFibGUuYwor KysgYi9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9jb3RhYmxlLmMKQEAgLTQzMCw3ICs0 MzAsNyBAQCBzdGF0aWMgaW50IHZtd19jb3RhYmxlX3Jlc2l6ZShzdHJ1Y3Qgdm13X3Jlc291cmNl ICpyZXMsIHNpemVfdCBuZXdfc2l6ZSkKIAkgKiBEbyBhIHBhZ2UgYnkgcGFnZSBjb3B5IG9mIENP VGFibGVzLiBUaGlzIGVsaW1pbmF0ZXMgc2xvdyB2bWFwKClzLgogCSAqIFRoaXMgc2hvdWxkIHJl YWxseSBiZSBhIFRUTSB1dGlsaXR5LgogCSAqLwotCWZvciAoaSA9IDA7IGkgPCBvbGRfYm8tPm51 bV9wYWdlczsgKytpKSB7CisJZm9yIChpID0gMDsgaSA8IG9sZF9iby0+bWVtLm51bV9wYWdlczsg KytpKSB7CiAJCWJvb2wgZHVtbXk7CiAKIAkJcmV0ID0gdHRtX2JvX2ttYXAob2xkX2JvLCBpLCAx LCAmb2xkX21hcCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9l eGVjYnVmLmMgYi9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9leGVjYnVmLmMKaW5kZXgg ZTY3ZTJlOGY2ZTZmLi42YzAxNjAwMTcyMWQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS92 bXdnZngvdm13Z2Z4X2V4ZWNidWYuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dm eF9leGVjYnVmLmMKQEAgLTEwNDIsNyArMTA0Miw3IEBAIHN0YXRpYyBpbnQgdm13X3F1ZXJ5X2Jv X3N3aXRjaF9wcmVwYXJlKHN0cnVjdCB2bXdfcHJpdmF0ZSAqZGV2X3ByaXYsCiAKIAlpZiAodW5s aWtlbHkobmV3X3F1ZXJ5X2JvICE9IHN3X2NvbnRleHQtPmN1cl9xdWVyeV9ibykpIHsKIAotCQlp ZiAodW5saWtlbHkobmV3X3F1ZXJ5X2JvLT5iYXNlLm51bV9wYWdlcyA+IDQpKSB7CisJCWlmICh1 bmxpa2VseShuZXdfcXVlcnlfYm8tPmJhc2UubWVtLm51bV9wYWdlcyA+IDQpKSB7CiAJCQlWTVdf REVCVUdfVVNFUigiUXVlcnkgYnVmZmVyIHRvbyBsYXJnZS5cbiIpOwogCQkJcmV0dXJuIC1FSU5W QUw7CiAJCX0KQEAgLTE1NDEsNyArMTU0MSw3IEBAIHN0YXRpYyBpbnQgdm13X2NtZF9kbWEoc3Ry dWN0IHZtd19wcml2YXRlICpkZXZfcHJpdiwKIAkJcmV0dXJuIHJldDsKIAogCS8qIE1ha2Ugc3Vy ZSBETUEgZG9lc24ndCBjcm9zcyBCTyBib3VuZGFyaWVzLiAqLwotCWJvX3NpemUgPSB2bXdfYm8t PmJhc2UubnVtX3BhZ2VzICogUEFHRV9TSVpFOworCWJvX3NpemUgPSB2bXdfYm8tPmJhc2UuYmFz ZS5zaXplOwogCWlmICh1bmxpa2VseShjbWQtPmJvZHkuZ3Vlc3QucHRyLm9mZnNldCA+IGJvX3Np emUpKSB7CiAJCVZNV19ERUJVR19VU0VSKCJJbnZhbGlkIERNQSBvZmZzZXQuXG4iKTsKIAkJcmV0 dXJuIC1FSU5WQUw7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9n bXJpZF9tYW5hZ2VyLmMgYi9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9nbXJpZF9tYW5h Z2VyLmMKaW5kZXggOGZlMjZlMzJmOTIwLi4xNzc0OTYwZDFiODkgMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2dtcmlkX21hbmFnZXIuYworKysgYi9kcml2ZXJzL2dw dS9kcm0vdm13Z2Z4L3Ztd2dmeF9nbXJpZF9tYW5hZ2VyLmMKQEAgLTY0LDIwICs2NCwxOSBAQCBz dGF0aWMgaW50IHZtd19nbXJpZF9tYW5fZ2V0X25vZGUoc3RydWN0IHR0bV9yZXNvdXJjZV9tYW5h Z2VyICptYW4sCiAJc3Bpbl9sb2NrKCZnbWFuLT5sb2NrKTsKIAogCWlmIChnbWFuLT5tYXhfZ21y X3BhZ2VzID4gMCkgewotCQlnbWFuLT51c2VkX2dtcl9wYWdlcyArPSBiby0+bnVtX3BhZ2VzOwor CQlnbWFuLT51c2VkX2dtcl9wYWdlcyArPSBtZW0tPm51bV9wYWdlczsKIAkJaWYgKHVubGlrZWx5 KGdtYW4tPnVzZWRfZ21yX3BhZ2VzID4gZ21hbi0+bWF4X2dtcl9wYWdlcykpCiAJCQlnb3RvIG5v c3BhY2U7CiAJfQogCiAJbWVtLT5tbV9ub2RlID0gZ21hbjsKIAltZW0tPnN0YXJ0ID0gaWQ7Ci0J bWVtLT5udW1fcGFnZXMgPSBiby0+bnVtX3BhZ2VzOwogCiAJc3Bpbl91bmxvY2soJmdtYW4tPmxv Y2spOwogCXJldHVybiAwOwogCiBub3NwYWNlOgotCWdtYW4tPnVzZWRfZ21yX3BhZ2VzIC09IGJv LT5udW1fcGFnZXM7CisJZ21hbi0+dXNlZF9nbXJfcGFnZXMgLT0gbWVtLT5udW1fcGFnZXM7CiAJ c3Bpbl91bmxvY2soJmdtYW4tPmxvY2spOwogCWlkYV9mcmVlKCZnbWFuLT5nbXJfaWRhLCBpZCk7 CiAJcmV0dXJuIC1FTk9TUEM7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Zt d2dmeF9rbXMuYyBiL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2ttcy5jCmluZGV4IGJj NjdmMmI5MzBlMS4uN2RjOTYxMjVlNWMyIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vdm13 Z2Z4L3Ztd2dmeF9rbXMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9rbXMu YwpAQCAtMTIyMCw3ICsxMjIwLDcgQEAgc3RhdGljIGludCB2bXdfa21zX25ld19mcmFtZWJ1ZmZl cl9ibyhzdHJ1Y3Qgdm13X3ByaXZhdGUgKmRldl9wcml2LAogCWludCByZXQ7CiAKIAlyZXF1ZXN0 ZWRfc2l6ZSA9IG1vZGVfY21kLT5oZWlnaHQgKiBtb2RlX2NtZC0+cGl0Y2hlc1swXTsKLQlpZiAo dW5saWtlbHkocmVxdWVzdGVkX3NpemUgPiBiby0+YmFzZS5udW1fcGFnZXMgKiBQQUdFX1NJWkUp KSB7CisJaWYgKHVubGlrZWx5KHJlcXVlc3RlZF9zaXplID4gYm8tPmJhc2UuYmFzZS5zaXplKSkg ewogCQlEUk1fRVJST1IoIlNjcmVlbiBidWZmZXIgb2JqZWN0IHNpemUgaXMgdG9vIHNtYWxsICIK IAkJCSAgImZvciByZXF1ZXN0ZWQgbW9kZS5cbiIpOwogCQlyZXR1cm4gLUVJTlZBTDsKZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X3BhZ2VfZGlydHkuYyBiL2RyaXZl cnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X3BhZ2VfZGlydHkuYwppbmRleCAwYjc2YjNkMTdkNGMu LjBhOTAwYWZjNjZmZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhf cGFnZV9kaXJ0eS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X3BhZ2VfZGly dHkuYwpAQCAtMjMyLDcgKzIzMiw3IEBAIHZvaWQgdm13X2JvX2RpcnR5X3VubWFwKHN0cnVjdCB2 bXdfYnVmZmVyX29iamVjdCAqdmJvLAogaW50IHZtd19ib19kaXJ0eV9hZGQoc3RydWN0IHZtd19i dWZmZXJfb2JqZWN0ICp2Ym8pCiB7CiAJc3RydWN0IHZtd19ib19kaXJ0eSAqZGlydHkgPSB2Ym8t PmRpcnR5OwotCXBnb2ZmX3QgbnVtX3BhZ2VzID0gdmJvLT5iYXNlLm51bV9wYWdlczsKKwlwZ29m Zl90IG51bV9wYWdlcyA9IHZiby0+YmFzZS5tZW0ubnVtX3BhZ2VzOwogCXNpemVfdCBzaXplLCBh Y2Nfc2l6ZTsKIAlpbnQgcmV0OwogCXN0YXRpYyBzdHJ1Y3QgdHRtX29wZXJhdGlvbl9jdHggY3R4 ID0gewpAQCAtNDEzLDcgKzQxMyw3IEBAIHZtX2ZhdWx0X3Qgdm13X2JvX3ZtX21rd3JpdGUoc3Ry dWN0IHZtX2ZhdWx0ICp2bWYpCiAJCXJldHVybiByZXQ7CiAKIAlwYWdlX29mZnNldCA9IHZtZi0+ cGdvZmYgLSBkcm1fdm1hX25vZGVfc3RhcnQoJmJvLT5iYXNlLnZtYV9ub2RlKTsKLQlpZiAodW5s aWtlbHkocGFnZV9vZmZzZXQgPj0gYm8tPm51bV9wYWdlcykpIHsKKwlpZiAodW5saWtlbHkocGFn ZV9vZmZzZXQgPj0gYm8tPm1lbS5udW1fcGFnZXMpKSB7CiAJCXJldCA9IFZNX0ZBVUxUX1NJR0JV UzsKIAkJZ290byBvdXRfdW5sb2NrOwogCX0KQEAgLTQ1Niw3ICs0NTYsNyBAQCB2bV9mYXVsdF90 IHZtd19ib192bV9mYXVsdChzdHJ1Y3Qgdm1fZmF1bHQgKnZtZikKIAogCQlwYWdlX29mZnNldCA9 IHZtZi0+cGdvZmYgLQogCQkJZHJtX3ZtYV9ub2RlX3N0YXJ0KCZiby0+YmFzZS52bWFfbm9kZSk7 Ci0JCWlmIChwYWdlX29mZnNldCA+PSBiby0+bnVtX3BhZ2VzIHx8CisJCWlmIChwYWdlX29mZnNl dCA+PSBiby0+bWVtLm51bV9wYWdlcyB8fAogCQkgICAgdm13X3Jlc291cmNlc19jbGVhbih2Ym8s IHBhZ2Vfb2Zmc2V0LAogCQkJCQlwYWdlX29mZnNldCArIFBBR0VfU0laRSwKIAkJCQkJJmFsbG93 ZWRfcHJlZmF1bHQpKSB7CkBAIC01MzEsNyArNTMxLDcgQEAgdm1fZmF1bHRfdCB2bXdfYm9fdm1f aHVnZV9mYXVsdChzdHJ1Y3Qgdm1fZmF1bHQgKnZtZiwKIAogCQlwYWdlX29mZnNldCA9IHZtZi0+ cGdvZmYgLQogCQkJZHJtX3ZtYV9ub2RlX3N0YXJ0KCZiby0+YmFzZS52bWFfbm9kZSk7Ci0JCWlm IChwYWdlX29mZnNldCA+PSBiby0+bnVtX3BhZ2VzIHx8CisJCWlmIChwYWdlX29mZnNldCA+PSBi by0+bWVtLm51bV9wYWdlcyB8fAogCQkgICAgdm13X3Jlc291cmNlc19jbGVhbih2Ym8sIHBhZ2Vf b2Zmc2V0LAogCQkJCQlwYWdlX29mZnNldCArIFBBR0VfU0laRSwKIAkJCQkJJmFsbG93ZWRfcHJl ZmF1bHQpKSB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9yZXNv dXJjZS5jIGIvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfcmVzb3VyY2UuYwppbmRleCAw MGI1MzU4MzFhN2EuLmY2ZThmZGZjNzZlNSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3Zt d2dmeC92bXdnZnhfcmVzb3VyY2UuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dm eF9yZXNvdXJjZS5jCkBAIC0zNjAsNyArMzYwLDcgQEAgc3RhdGljIGludCB2bXdfcmVzb3VyY2Vf YnVmX2FsbG9jKHN0cnVjdCB2bXdfcmVzb3VyY2UgKnJlcywKIAlpbnQgcmV0OwogCiAJaWYgKGxp a2VseShyZXMtPmJhY2t1cCkpIHsKLQkJQlVHX09OKHJlcy0+YmFja3VwLT5iYXNlLm51bV9wYWdl cyAqIFBBR0VfU0laRSA8IHNpemUpOworCQlCVUdfT04ocmVzLT5iYWNrdXAtPmJhc2UuYmFzZS5z aXplIDwgc2l6ZSk7CiAJCXJldHVybiAwOwogCX0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL3Ztd2dmeC92bXdnZnhfc2hhZGVyLmMgYi9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dm eF9zaGFkZXIuYwppbmRleCBmMzI4YWE1ODM5YTIuLmU3NmE3MjBmODQxZSAxMDA2NDQKLS0tIGEv ZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfc2hhZGVyLmMKKysrIGIvZHJpdmVycy9ncHUv ZHJtL3Ztd2dmeC92bXdnZnhfc2hhZGVyLmMKQEAgLTg1Niw4ICs4NTYsNyBAQCBzdGF0aWMgaW50 IHZtd19zaGFkZXJfZGVmaW5lKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHN0cnVjdCBkcm1fZmls ZSAqZmlsZV9wcml2LAogCQkJcmV0dXJuIHJldDsKIAkJfQogCi0JCWlmICgodTY0KWJ1ZmZlci0+ YmFzZS5udW1fcGFnZXMgKiBQQUdFX1NJWkUgPAotCQkgICAgKHU2NClzaXplICsgKHU2NClvZmZz ZXQpIHsKKwkJaWYgKCh1NjQpYnVmZmVyLT5iYXNlLmJhc2Uuc2l6ZSA8ICh1NjQpc2l6ZSArICh1 NjQpb2Zmc2V0KSB7CiAJCQlWTVdfREVCVUdfVVNFUigiSWxsZWdhbCBidWZmZXItIG9yIHNoYWRl ciBzaXplLlxuIik7CiAJCQlyZXQgPSAtRUlOVkFMOwogCQkJZ290byBvdXRfYmFkX2FyZzsKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X3N0ZHUuYyBiL2RyaXZlcnMv Z3B1L2RybS92bXdnZngvdm13Z2Z4X3N0ZHUuYwppbmRleCA1YjA0ZWMwNDdlZjMuLjI3YWIyYzUw MzEyYiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfc3RkdS5jCisr KyBiL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X3N0ZHUuYwpAQCAtNTEyLDcgKzUxMiw3 IEBAIHN0YXRpYyB2b2lkIHZtd19zdGR1X2JvX2ZpZm9fY29tbWl0KHN0cnVjdCB2bXdfa21zX2Rp cnR5ICpkaXJ0eSkKIAljbWQtPmJvZHkuaG9zdC5taXBtYXAgPSAwOwogCWNtZC0+Ym9keS50cmFu c2ZlciA9IGRkaXJ0eS0+dHJhbnNmZXI7CiAJc3VmZml4LT5zdWZmaXhTaXplID0gc2l6ZW9mKCpz dWZmaXgpOwotCXN1ZmZpeC0+bWF4aW11bU9mZnNldCA9IGRkaXJ0eS0+YnVmLT5iYXNlLm51bV9w YWdlcyAqIFBBR0VfU0laRTsKKwlzdWZmaXgtPm1heGltdW1PZmZzZXQgPSBkZGlydHktPmJ1Zi0+ YmFzZS5iYXNlLnNpemU7CiAKIAlpZiAoZGRpcnR5LT50cmFuc2ZlciA9PSBTVkdBM0RfV1JJVEVf SE9TVF9WUkFNKSB7CiAJCWJsaXRfc2l6ZSArPSBzaXplb2Yoc3RydWN0IHZtd19zdGR1X3VwZGF0 ZSk7CkBAIC0xMjM4LDcgKzEyMzgsNyBAQCBzdGF0aWMgdWludDMyX3Qgdm13X3N0ZHVfYm9fcG9w dWxhdGVfdXBkYXRlKHN0cnVjdCB2bXdfZHVfdXBkYXRlX3BsYW5lICAqdXBkYXRlLAogCXZmYmJv ID0gY29udGFpbmVyX29mKHVwZGF0ZS0+dmZiLCB0eXBlb2YoKnZmYmJvKSwgYmFzZSk7CiAKIAlz dWZmaXgtPnN1ZmZpeFNpemUgPSBzaXplb2YoKnN1ZmZpeCk7Ci0Jc3VmZml4LT5tYXhpbXVtT2Zm c2V0ID0gdmZiYm8tPmJ1ZmZlci0+YmFzZS5udW1fcGFnZXMgKiBQQUdFX1NJWkU7CisJc3VmZml4 LT5tYXhpbXVtT2Zmc2V0ID0gdmZiYm8tPmJ1ZmZlci0+YmFzZS5iYXNlLnNpemU7CiAKIAl2bXdf c3RkdV9wb3B1bGF0ZV91cGRhdGUoJnN1ZmZpeFsxXSwgc3RkdS0+YmFzZS51bml0LCBiYi0+eDEs IGJiLT54MiwKIAkJCQkgYmItPnkxLCBiYi0+eTIpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL3Ztd2dmeC92bXdnZnhfc3VyZmFjZS5jIGIvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdn Znhfc3VyZmFjZS5jCmluZGV4IDM5MTRiZmVlMDUzMy4uZmE5YmUzMGJlYzZjIDEwMDY0NAotLS0g YS9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9zdXJmYWNlLmMKKysrIGIvZHJpdmVycy9n cHUvZHJtL3Ztd2dmeC92bXdnZnhfc3VyZmFjZS5jCkBAIC0xNTUwLDggKzE1NTAsNyBAQCB2bXdf Z2Jfc3VyZmFjZV9kZWZpbmVfaW50ZXJuYWwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAkJCQkJ ICZyZXMtPmJhY2t1cCwKIAkJCQkJICZ1c2VyX3NyZi0+YmFja3VwX2Jhc2UpOwogCQlpZiAocmV0 ID09IDApIHsKLQkJCWlmIChyZXMtPmJhY2t1cC0+YmFzZS5udW1fcGFnZXMgKiBQQUdFX1NJWkUg PAotCQkJICAgIHJlcy0+YmFja3VwX3NpemUpIHsKKwkJCWlmIChyZXMtPmJhY2t1cC0+YmFzZS5i YXNlLnNpemUgPCByZXMtPmJhY2t1cF9zaXplKSB7CiAJCQkJVk1XX0RFQlVHX1VTRVIoIlN1cmZh Y2UgYmFja3VwIGJ1ZmZlciB0b28gc21hbGwuXG4iKTsKIAkJCQl2bXdfYm9fdW5yZWZlcmVuY2Uo JnJlcy0+YmFja3VwKTsKIAkJCQlyZXQgPSAtRUlOVkFMOwpAQCAtMTYxNCw3ICsxNjEzLDcgQEAg dm13X2diX3N1cmZhY2VfZGVmaW5lX2ludGVybmFsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJ aWYgKHJlcy0+YmFja3VwKSB7CiAJCXJlcC0+YnVmZmVyX21hcF9oYW5kbGUgPQogCQkJZHJtX3Zt YV9ub2RlX29mZnNldF9hZGRyKCZyZXMtPmJhY2t1cC0+YmFzZS5iYXNlLnZtYV9ub2RlKTsKLQkJ cmVwLT5idWZmZXJfc2l6ZSA9IHJlcy0+YmFja3VwLT5iYXNlLm51bV9wYWdlcyAqIFBBR0VfU0la RTsKKwkJcmVwLT5idWZmZXJfc2l6ZSA9IHJlcy0+YmFja3VwLT5iYXNlLmJhc2Uuc2l6ZTsKIAkJ cmVwLT5idWZmZXJfaGFuZGxlID0gYmFja3VwX2hhbmRsZTsKIAl9IGVsc2UgewogCQlyZXAtPmJ1 ZmZlcl9tYXBfaGFuZGxlID0gMDsKQEAgLTE2OTIsNyArMTY5MSw3IEBAIHZtd19nYl9zdXJmYWNl X3JlZmVyZW5jZV9pbnRlcm5hbChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCXJlcC0+Y3JlcC5i dWZmZXJfaGFuZGxlID0gYmFja3VwX2hhbmRsZTsKIAlyZXAtPmNyZXAuYnVmZmVyX21hcF9oYW5k bGUgPQogCQlkcm1fdm1hX25vZGVfb2Zmc2V0X2FkZHIoJnNyZi0+cmVzLmJhY2t1cC0+YmFzZS5i YXNlLnZtYV9ub2RlKTsKLQlyZXAtPmNyZXAuYnVmZmVyX3NpemUgPSBzcmYtPnJlcy5iYWNrdXAt PmJhc2UubnVtX3BhZ2VzICogUEFHRV9TSVpFOworCXJlcC0+Y3JlcC5idWZmZXJfc2l6ZSA9IHNy Zi0+cmVzLmJhY2t1cC0+YmFzZS5iYXNlLnNpemU7CiAKIAlyZXAtPmNyZXEudmVyc2lvbiA9IGRy bV92bXdfZ2Jfc3VyZmFjZV92MTsKIAlyZXAtPmNyZXEuc3ZnYTNkX2ZsYWdzX3VwcGVyXzMyX2Jp dHMgPQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0vdHRtL3R0bV9ib19hcGkuaCBiL2luY2x1ZGUv ZHJtL3R0bS90dG1fYm9fYXBpLmgKaW5kZXggNzliOTM2N2UwZmZkLi4wZDRlM2ZjY2FhOGEgMTAw NjQ0Ci0tLSBhL2luY2x1ZGUvZHJtL3R0bS90dG1fYm9fYXBpLmgKKysrIGIvaW5jbHVkZS9kcm0v dHRtL3R0bV9ib19hcGkuaApAQCAtMTI1LDcgKzEyNSw2IEBAIHN0cnVjdCB0dG1fYnVmZmVyX29i amVjdCB7CiAJc3RydWN0IHR0bV9ib19kZXZpY2UgKmJkZXY7CiAJZW51bSB0dG1fYm9fdHlwZSB0 eXBlOwogCXZvaWQgKCpkZXN0cm95KSAoc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICopOwotCXVu c2lnbmVkIGxvbmcgbnVtX3BhZ2VzOwogCXNpemVfdCBhY2Nfc2l6ZTsKIAogCS8qKgpAQCAtMzk3 LDEzICszOTYsMTEgQEAgc2l6ZV90IHR0bV9ib19kbWFfYWNjX3NpemUoc3RydWN0IHR0bV9ib19k ZXZpY2UgKmJkZXYsCiAKIGludCB0dG1fYm9faW5pdF9yZXNlcnZlZChzdHJ1Y3QgdHRtX2JvX2Rl dmljZSAqYmRldiwKIAkJCSBzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvLAotCQkJIHVuc2ln bmVkIGxvbmcgc2l6ZSwKLQkJCSBlbnVtIHR0bV9ib190eXBlIHR5cGUsCisJCQkgc2l6ZV90IHNp emUsIGVudW0gdHRtX2JvX3R5cGUgdHlwZSwKIAkJCSBzdHJ1Y3QgdHRtX3BsYWNlbWVudCAqcGxh Y2VtZW50LAogCQkJIHVpbnQzMl90IHBhZ2VfYWxpZ25tZW50LAogCQkJIHN0cnVjdCB0dG1fb3Bl cmF0aW9uX2N0eCAqY3R4LAotCQkJIHNpemVfdCBhY2Nfc2l6ZSwKLQkJCSBzdHJ1Y3Qgc2dfdGFi bGUgKnNnLAorCQkJIHNpemVfdCBhY2Nfc2l6ZSwgc3RydWN0IHNnX3RhYmxlICpzZywKIAkJCSBz dHJ1Y3QgZG1hX3Jlc3YgKnJlc3YsCiAJCQkgdm9pZCAoKmRlc3Ryb3kpIChzdHJ1Y3QgdHRtX2J1 ZmZlcl9vYmplY3QgKikpOwogCkBAIC00NDUsNyArNDQyLDcgQEAgaW50IHR0bV9ib19pbml0X3Jl c2VydmVkKHN0cnVjdCB0dG1fYm9fZGV2aWNlICpiZGV2LAogICogLUVSRVNUQVJUU1lTOiBJbnRl cnJ1cHRlZCBieSBzaWduYWwgd2hpbGUgc2xlZXBpbmcgd2FpdGluZyBmb3IgcmVzb3VyY2VzLgog ICovCiBpbnQgdHRtX2JvX2luaXQoc3RydWN0IHR0bV9ib19kZXZpY2UgKmJkZXYsIHN0cnVjdCB0 dG1fYnVmZmVyX29iamVjdCAqYm8sCi0JCXVuc2lnbmVkIGxvbmcgc2l6ZSwgZW51bSB0dG1fYm9f dHlwZSB0eXBlLAorCQlzaXplX3Qgc2l6ZSwgZW51bSB0dG1fYm9fdHlwZSB0eXBlLAogCQlzdHJ1 Y3QgdHRtX3BsYWNlbWVudCAqcGxhY2VtZW50LAogCQl1aW50MzJfdCBwYWdlX2FsaWdubWVudCwg Ym9vbCBpbnRlcnJ1YnRpYmxlLCBzaXplX3QgYWNjX3NpemUsCiAJCXN0cnVjdCBzZ190YWJsZSAq c2csIHN0cnVjdCBkbWFfcmVzdiAqcmVzdiwKZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHJtL3R0bS90 dG1fcmVzb3VyY2UuaCBiL2luY2x1ZGUvZHJtL3R0bS90dG1fcmVzb3VyY2UuaAppbmRleCBmNDhh NzBkMzlhYzUuLmFkNmRhOTk3NzBlOSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9kcm0vdHRtL3R0bV9y ZXNvdXJjZS5oCisrKyBiL2luY2x1ZGUvZHJtL3R0bS90dG1fcmVzb3VyY2UuaApAQCAtMTcxLDcg KzE3MSw2IEBAIHN0cnVjdCB0dG1fYnVzX3BsYWNlbWVudCB7CiBzdHJ1Y3QgdHRtX3Jlc291cmNl IHsKIAl2b2lkICptbV9ub2RlOwogCXVuc2lnbmVkIGxvbmcgc3RhcnQ7Ci0JdW5zaWduZWQgbG9u ZyBzaXplOwogCXVuc2lnbmVkIGxvbmcgbnVtX3BhZ2VzOwogCXVpbnQzMl90IHBhZ2VfYWxpZ25t ZW50OwogCXVpbnQzMl90IG1lbV90eXBlOwotLSAKMi4yNS4xCgpfX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1k ZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcv bWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK