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=-9.5 required=3.0 tests=DKIM_ADSP_CUSTOM_MED, DKIM_INVALID,DKIM_SIGNED,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, 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 6F663C54FCF for ; Mon, 23 Mar 2020 23:09:41 +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 4435C20409 for ; Mon, 23 Mar 2020 23:09:41 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="mFa9ShLH" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 4435C20409 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 5B1666E415; Mon, 23 Mar 2020 23:09:39 +0000 (UTC) Received: from mail-wm1-x341.google.com (mail-wm1-x341.google.com [IPv6:2a00:1450:4864:20::341]) by gabe.freedesktop.org (Postfix) with ESMTPS id CB6F36E3F9 for ; Mon, 23 Mar 2020 23:09:20 +0000 (UTC) Received: by mail-wm1-x341.google.com with SMTP id d198so1343658wmd.0 for ; Mon, 23 Mar 2020 16:09:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=90K2OTn2UOlqEXTAqx2N8J3vpafLuNNUbEK2McsWFBA=; b=mFa9ShLHefFeh++fw4A0oSAx/PvNcsQak/9s+yGL+OkRsUN1s+xSih9mNcQI0m94jU 7PEIYOmiwp7rmA595wQdqesubU/0cd0ZLzNivN4FJbAx91p6zPAJbsaeoZSRWOYRjWHU WiLVALd1OJrbuZ0ov81b/l/A3UtMw1ZudIvlOBt/tlwmDpWXjJp8qP75usGAgJGKm0U9 LwAUQfD7k40qbEC0xWU99ZgarVLGyLK+yDpXK9nc7RqDtdxO7Io/AzJjcR4FGndQg+yF NGE2q85jS8F+Neia0BmMPbVL6FLEgS6EU3z+hioqOOeblDeWgnLqSsHQm2hmthRbQzVr h9IA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=90K2OTn2UOlqEXTAqx2N8J3vpafLuNNUbEK2McsWFBA=; b=MjQssFWqKwgK+P7Dj5bHNnyHVd7kWrfGC/7fnzOYPnfzd9xIrlngNA4RT+4dSANz1N FNsVUxg5FAlskYZJXuSoxc+t/sOELi1xmGW6kJykxTl1xjItImiGBya+D9YD9hBJoyS9 6ngdolKLNllY9v079d1URs5szKpbk9DiRMDypPrmmSb2KPhJLLkUnlF27epgqqBildaw Wwtc7br40omzb+qVGlBgOtj4BOnMgEjTE9SYyyEKrXUKPHn03Y5z0J/bYnqpBFt5WxEe ARMEeA/4NIqMUM9YxwDodmKW+qaJ4kz5OYuNNnUundJfezv7kjxbcFZOAIou3tL/3Yt6 ArHg== X-Gm-Message-State: ANhLgQ1jOgG6+I6KziB8Apb/eoEMOyaTMPNkT0rQWt/5/7FKhZT8Lf9G R5hOxtJa1RWkW7ktpKbUpshQgixc X-Google-Smtp-Source: ADFU+vtfaSnJ0MUFusQWSnvti326i0tOX/ODKLTP4FlvNnhFpoZAKaRViC7G9eYbnt53CjeBOPNrug== X-Received: by 2002:a1c:5443:: with SMTP id p3mr1704220wmi.149.1585004958522; Mon, 23 Mar 2020 16:09:18 -0700 (PDT) Received: from sroland-t5810.vmware.com (46-126-183-173.dynamic.hispeed.ch. [46.126.183.173]) by smtp.gmail.com with ESMTPSA id q185sm1641937wme.10.2020.03.23.16.09.17 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 23 Mar 2020 16:09:18 -0700 (PDT) From: Roland Scheidegger X-Google-Original-From: Roland Scheidegger To: dri-devel@lists.freedesktop.org, airlied@redhat.com, daniel@ffwll.ch Subject: [PATCH v2 13/17] drm/vmwgfx: Split surface metadata from struct vmw_surface Date: Tue, 24 Mar 2020 00:08:57 +0100 Message-Id: <20200323230901.13302-14-sroland@vmware.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200323230901.13302-1-sroland@vmware.com> References: <20200323230901.13302-1-sroland@vmware.com> 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: , Cc: linux-graphics-maintainer@vmware.com Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" RnJvbTogRGVlcGFrIFJhd2F0IDxkcmF3YXQuZmxvc3NAZ21haWwuY29tPgoKQ3JlYXRlIGEgbmV3 IHN0cnVjdHVyZSB2bXdfc3VyZmFjZV9tZXRhZGF0YSByZXByZXNlbnRpbmcgdGhlIG1ldGFkYXRh CnVzZWQgZm9yIGNyZWF0aW5nIHN1cmZhY2UuIFdpdGggdGhpcyBjYW4gbWFrZSB0aGUgc3VyZmFj ZV9kZWZpbmVfcHJpdgphIGJpdCBjbGVhbmVyLgoKU2lnbmVkLW9mZi1ieTogRGVlcGFrIFJhd2F0 IDxkcmF3YXQuZmxvc3NAZ21haWwuY29tPgpSZXZpZXdlZC1ieTogQnJpYW4gUGF1bCA8YnJpYW5w QHZtd2FyZS5jb20+ClJldmlld2VkLWJ5OiBUaG9tYXMgSGVsbHN0csO2bSAoVk13YXJlKSA8dGhv bWFzX29zQHNoaXBtYWlsLm9yZz4KUmV2aWV3ZWQtYnk6IFJvbGFuZCBTY2hlaWRlZ2dlciA8c3Jv bGFuZEB2bXdhcmUuY29tPgpTaWduZWQtb2ZmLWJ5OiBSb2xhbmQgU2NoZWlkZWdnZXIgPHNyb2xh bmRAdm13YXJlLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9kcnYuaCAg ICAgfCAgNTYgKysrKy0tCiBkcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9rbXMuYyAgICAg fCAgMTYgKy0KIGRyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X3N0ZHUuYyAgICB8ICA0NCAr KystLQogZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfc3VyZmFjZS5jIHwgMjQwICsrKysr KysrKysrKystLS0tLS0tLS0tLQogNCBmaWxlcyBjaGFuZ2VkLCAyMDIgaW5zZXJ0aW9ucygrKSwg MTU0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13 Z2Z4X2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfZHJ2LmgKaW5kZXggY2Zk OGVhZjc5NzNlLi5jODdiYjg1NDI2N2IgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS92bXdn Zngvdm13Z2Z4X2Rydi5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2Rydi5o CkBAIC0yMjUsMjQgKzIyNSw1NiBAQCBzdHJ1Y3Qgdm13X2N1cnNvcl9zbm9vcGVyIHsKIHN0cnVj dCB2bXdfZnJhbWVidWZmZXI7CiBzdHJ1Y3Qgdm13X3N1cmZhY2Vfb2Zmc2V0OwogCi1zdHJ1Y3Qg dm13X3N1cmZhY2UgewotCXN0cnVjdCB2bXdfcmVzb3VyY2UgcmVzOwotCVNWR0EzZFN1cmZhY2VB bGxGbGFncyBmbGFnczsKLQl1aW50MzJfdCBmb3JtYXQ7Ci0JdWludDMyX3QgbWlwX2xldmVsc1tE Uk1fVk1XX01BWF9TVVJGQUNFX0ZBQ0VTXTsKKy8qKgorICogc3RydWN0IHZtd19zdXJmYWNlX21l dGFkYXRhIC0gTWV0YWRhdGEgZGVzY3JpYmluZyBhIHN1cmZhY2UuCisgKgorICogQGZsYWdzOiBE ZXZpY2UgZmxhZ3MuCisgKiBAZm9ybWF0OiBTdXJmYWNlIFNWR0EzRF94IGZvcm1hdC4KKyAqIEBt aXBfbGV2ZWxzOiBNaXAgbGV2ZWwgZm9yIGVhY2ggZmFjZS4gRm9yIEdCIGZpcnN0IGluZGV4IGlz IHVzZWQgb25seS4KKyAqIEBtdWx0aXNhbXBsZV9jb3VudDogU2FtcGxlIGNvdW50LgorICogQG11 bHRpc2FtcGxlX3BhdHRlcm46IFNhbXBsZSBwYXR0ZXJucy4KKyAqIEBxdWFsaXR5X2xldmVsOiBR dWFsaXR5IGxldmVsLgorICogQGF1dG9nZW5fZmlsdGVyOiBGaWx0ZXIgZm9yIGF1dG9tYXRpY2Fs bHkgZ2VuZXJhdGVkIG1pcG1hcHMuCisgKiBAYXJyYXlfc2l6ZTogTnVtYmVyIG9mIGFycmF5IGVs ZW1lbnRzIGZvciBhIDFELzJEIHRleHR1cmUuIEZvciBjdWJlbWFwCisgICAgICAgICAgICAgICAg dGV4dHVyZSBudW1iZXIgb2YgZmFjZXMgKiBhcnJheV9zaXplLiBUaGlzIHNob3VsZCBiZSAwIGZv ciBwcmUKKwkJU000IGRldmljZS4KKyAqIEBudW1fc2l6ZXM6IFNpemUgb2YgQHNpemVzLiBGb3Ig R0Igc3VyZmFjZSB0aGlzIHNob3VsZCBhbHdheXMgYmUgMS4KKyAqIEBiYXNlX3NpemU6IFN1cmZh Y2UgZGltZW5zaW9uLgorICogQHNpemVzOiBBcnJheSByZXByZXNlbnRpbmcgbWlwIHNpemVzLiBM ZWdhY3kgb25seS4KKyAqIEBzY2Fub3V0OiBXaGV0aGVyIHRoaXMgc3VyZmFjZSB3aWxsIGJlIHVz ZWQgZm9yIHNjYW5vdXQuCisgKgorICogVGhpcyB0cmFja3MgbWV0YWRhdGEgZm9yIGJvdGggbGVn YWN5IGFuZCBndWVzdCBiYWNrZWQgc3VyZmFjZS4KKyAqLworc3RydWN0IHZtd19zdXJmYWNlX21l dGFkYXRhIHsKKwl1NjQgZmxhZ3M7CisJdTMyIGZvcm1hdDsKKwl1MzIgbWlwX2xldmVsc1tEUk1f Vk1XX01BWF9TVVJGQUNFX0ZBQ0VTXTsKKwl1MzIgbXVsdGlzYW1wbGVfY291bnQ7CisJdTMyIG11 bHRpc2FtcGxlX3BhdHRlcm47CisJdTMyIHF1YWxpdHlfbGV2ZWw7CisJdTMyIGF1dG9nZW5fZmls dGVyOworCXUzMiBhcnJheV9zaXplOworCXUzMiBudW1fc2l6ZXM7CiAJc3RydWN0IGRybV92bXdf c2l6ZSBiYXNlX3NpemU7CiAJc3RydWN0IGRybV92bXdfc2l6ZSAqc2l6ZXM7Ci0JdWludDMyX3Qg bnVtX3NpemVzOwogCWJvb2wgc2Nhbm91dDsKLQl1aW50MzJfdCBhcnJheV9zaXplOwotCS8qIFRP RE8gc28gZmFyIGp1c3QgYSBleHRyYSBwb2ludGVyICovCit9OworCisvKioKKyAqIHN0cnVjdCB2 bXdfc3VyZmFjZTogUmVzb3VyY2Ugc3RydWN0dXJlIGZvciBhIHN1cmZhY2UuCisgKgorICogQHJl czogVGhlIGJhc2UgcmVzb3VyY2UgZm9yIHRoaXMgc3VyZmFjZS4KKyAqIEBtZXRhZGF0YTogTWV0 YWRhdGEgZm9yIHRoaXMgc3VyZmFjZSByZXNvdXJjZS4KKyAqIEBzbm9vcGVyOiBDdXJzb3IgZGF0 YS4gTGVnYWN5IHN1cmZhY2Ugb25seS4KKyAqIEBvZmZzZXRzOiBMZWdhY3kgc3VyZmFjZSBvbmx5 LgorICogQHZpZXdfbGlzdDogTGlzdCBvZiB2aWV3cyBib3VuZCB0byB0aGlzIHN1cmZhY2UuCisg Ki8KK3N0cnVjdCB2bXdfc3VyZmFjZSB7CisJc3RydWN0IHZtd19yZXNvdXJjZSByZXM7CisJc3Ry dWN0IHZtd19zdXJmYWNlX21ldGFkYXRhIG1ldGFkYXRhOwogCXN0cnVjdCB2bXdfY3Vyc29yX3Nu b29wZXIgc25vb3BlcjsKIAlzdHJ1Y3Qgdm13X3N1cmZhY2Vfb2Zmc2V0ICpvZmZzZXRzOwotCVNW R0EzZFRleHR1cmVGaWx0ZXIgYXV0b2dlbl9maWx0ZXI7Ci0JdWludDMyX3QgbXVsdGlzYW1wbGVf Y291bnQ7CiAJc3RydWN0IGxpc3RfaGVhZCB2aWV3X2xpc3Q7Ci0JU1ZHQTNkTVNQYXR0ZXJuIG11 bHRpc2FtcGxlX3BhdHRlcm47Ci0JU1ZHQTNkTVNRdWFsaXR5TGV2ZWwgcXVhbGl0eV9sZXZlbDsK IH07CiAKIHN0cnVjdCB2bXdfbWFya2VyX3F1ZXVlIHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS92bXdnZngvdm13Z2Z4X2ttcy5jIGIvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhf a21zLmMKaW5kZXggMDRiNzllODk3NWNlLi40ZDJhYWNhMTVmZDIgMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2ttcy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS92bXdn Zngvdm13Z2Z4X2ttcy5jCkBAIC05MDUsMTQgKzkwNSwxNCBAQCBzdGF0aWMgaW50IHZtd19rbXNf bmV3X2ZyYW1lYnVmZmVyX3N1cmZhY2Uoc3RydWN0IHZtd19wcml2YXRlICpkZXZfcHJpdiwKIAkg Ki8KIAogCS8qIFN1cmZhY2UgbXVzdCBiZSBtYXJrZWQgYXMgYSBzY2Fub3V0LiAqLwotCWlmICh1 bmxpa2VseSghc3VyZmFjZS0+c2Nhbm91dCkpCisJaWYgKHVubGlrZWx5KCFzdXJmYWNlLT5tZXRh ZGF0YS5zY2Fub3V0KSkKIAkJcmV0dXJuIC1FSU5WQUw7CiAKLQlpZiAodW5saWtlbHkoc3VyZmFj ZS0+bWlwX2xldmVsc1swXSAhPSAxIHx8Ci0JCSAgICAgc3VyZmFjZS0+bnVtX3NpemVzICE9IDEg fHwKLQkJICAgICBzdXJmYWNlLT5iYXNlX3NpemUud2lkdGggPCBtb2RlX2NtZC0+d2lkdGggfHwK LQkJICAgICBzdXJmYWNlLT5iYXNlX3NpemUuaGVpZ2h0IDwgbW9kZV9jbWQtPmhlaWdodCB8fAot CQkgICAgIHN1cmZhY2UtPmJhc2Vfc2l6ZS5kZXB0aCAhPSAxKSkgeworCWlmICh1bmxpa2VseShz dXJmYWNlLT5tZXRhZGF0YS5taXBfbGV2ZWxzWzBdICE9IDEgfHwKKwkJICAgICBzdXJmYWNlLT5t ZXRhZGF0YS5udW1fc2l6ZXMgIT0gMSB8fAorCQkgICAgIHN1cmZhY2UtPm1ldGFkYXRhLmJhc2Vf c2l6ZS53aWR0aCA8IG1vZGVfY21kLT53aWR0aCB8fAorCQkgICAgIHN1cmZhY2UtPm1ldGFkYXRh LmJhc2Vfc2l6ZS5oZWlnaHQgPCBtb2RlX2NtZC0+aGVpZ2h0IHx8CisJCSAgICAgc3VyZmFjZS0+ bWV0YWRhdGEuYmFzZV9zaXplLmRlcHRoICE9IDEpKSB7CiAJCURSTV9FUlJPUigiSW5jb21wYXRp YmxlIHN1cmZhY2UgZGltZW5zaW9ucyAiCiAJCQkgICJmb3IgcmVxdWVzdGVkIG1vZGUuXG4iKTsK IAkJcmV0dXJuIC1FSU5WQUw7CkBAIC05NDEsNyArOTQxLDcgQEAgc3RhdGljIGludCB2bXdfa21z X25ld19mcmFtZWJ1ZmZlcl9zdXJmYWNlKHN0cnVjdCB2bXdfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJ ICogRm9yIERYLCBzdXJmYWNlIGZvcm1hdCB2YWxpZGF0aW9uIGlzIGRvbmUgd2hlbiBzdXJmYWNl LT5zY2Fub3V0CiAJICogaXMgc2V0LgogCSAqLwotCWlmICghaGFzX3NtNF9jb250ZXh0KGRldl9w cml2KSAmJiBmb3JtYXQgIT0gc3VyZmFjZS0+Zm9ybWF0KSB7CisJaWYgKCFoYXNfc200X2NvbnRl eHQoZGV2X3ByaXYpICYmIGZvcm1hdCAhPSBzdXJmYWNlLT5tZXRhZGF0YS5mb3JtYXQpIHsKIAkJ RFJNX0VSUk9SKCJJbnZhbGlkIHN1cmZhY2UgZm9ybWF0IGZvciByZXF1ZXN0ZWQgbW9kZS5cbiIp OwogCQlyZXR1cm4gLUVJTlZBTDsKIAl9CkBAIC0yNTE2LDcgKzI1MTYsNyBAQCBpbnQgdm13X2tt c191cGRhdGVfcHJveHkoc3RydWN0IHZtd19yZXNvdXJjZSAqcmVzLAogCQkJIGludCBpbmNyZW1l bnQpCiB7CiAJc3RydWN0IHZtd19wcml2YXRlICpkZXZfcHJpdiA9IHJlcy0+ZGV2X3ByaXY7Ci0J c3RydWN0IGRybV92bXdfc2l6ZSAqc2l6ZSA9ICZ2bXdfcmVzX3RvX3NyZihyZXMpLT5iYXNlX3Np emU7CisJc3RydWN0IGRybV92bXdfc2l6ZSAqc2l6ZSA9ICZ2bXdfcmVzX3RvX3NyZihyZXMpLT5t ZXRhZGF0YS5iYXNlX3NpemU7CiAJc3RydWN0IHsKIAkJU1ZHQTNkQ21kSGVhZGVyIGhlYWRlcjsK IAkJU1ZHQTNkQ21kVXBkYXRlR0JJbWFnZSBib2R5OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL3Ztd2dmeC92bXdnZnhfc3RkdS5jIGIvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhf c3RkdS5jCmluZGV4IDY4YWVjYjZkOWY4Ny4uNjAyNzVmZTBkYjk0IDEwMDY0NAotLS0gYS9kcml2 ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9zdGR1LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3Zt d2dmeC92bXdnZnhfc3RkdS5jCkBAIC01OTAsNyArNTkwLDcgQEAgc3RhdGljIHZvaWQgdm13X3N0 ZHVfYm9fY3B1X2NvbW1pdChzdHJ1Y3Qgdm13X2ttc19kaXJ0eSAqZGlydHkpCiAJCXJldHVybjsK IAogCS8qIEFzc3VtZSB3ZSBhcmUgYmxpdHRpbmcgZnJvbSBHdWVzdCAoYm8pIHRvIEhvc3QgKGRp c3BsYXlfc3JmKSAqLwotCWRzdF9waXRjaCA9IHN0ZHUtPmRpc3BsYXlfc3JmLT5iYXNlX3NpemUu d2lkdGggKiBzdGR1LT5jcHA7CisJZHN0X3BpdGNoID0gc3RkdS0+ZGlzcGxheV9zcmYtPm1ldGFk YXRhLmJhc2Vfc2l6ZS53aWR0aCAqIHN0ZHUtPmNwcDsKIAlkc3RfYm8gPSAmc3RkdS0+ZGlzcGxh eV9zcmYtPnJlcy5iYWNrdXAtPmJhc2U7CiAJZHN0X29mZnNldCA9IGRkaXJ0eS0+dG9wICogZHN0 X3BpdGNoICsgZGRpcnR5LT5sZWZ0ICogc3RkdS0+Y3BwOwogCkBAIC0xMDU4LDggKzEwNTgsOSBA QCB2bXdfc3RkdV9wcmltYXJ5X3BsYW5lX3ByZXBhcmVfZmIoc3RydWN0IGRybV9wbGFuZSAqcGxh bmUsCiAJdmZiID0gdm13X2ZyYW1lYnVmZmVyX3RvX3ZmYihuZXdfZmIpOwogCW5ld192ZmJzID0g KHZmYi0+Ym8pID8gTlVMTCA6IHZtd19mcmFtZWJ1ZmZlcl90b192ZmJzKG5ld19mYik7CiAKLQlp ZiAobmV3X3ZmYnMgJiYgbmV3X3ZmYnMtPnN1cmZhY2UtPmJhc2Vfc2l6ZS53aWR0aCA9PSBoZGlz cGxheSAmJgotCSAgICBuZXdfdmZicy0+c3VyZmFjZS0+YmFzZV9zaXplLmhlaWdodCA9PSB2ZGlz cGxheSkKKwlpZiAobmV3X3ZmYnMgJiYKKwkgICAgbmV3X3ZmYnMtPnN1cmZhY2UtPm1ldGFkYXRh LmJhc2Vfc2l6ZS53aWR0aCA9PSBoZGlzcGxheSAmJgorCSAgICBuZXdfdmZicy0+c3VyZmFjZS0+ bWV0YWRhdGEuYmFzZV9zaXplLmhlaWdodCA9PSB2ZGlzcGxheSkKIAkJbmV3X2NvbnRlbnRfdHlw ZSA9IFNBTUVfQVNfRElTUExBWTsKIAllbHNlIGlmICh2ZmItPmJvKQogCQluZXdfY29udGVudF90 eXBlID0gU0VQQVJBVEVfQk87CkBAIC0xMDgyLDE1ICsxMDgzLDE1IEBAIHZtd19zdGR1X3ByaW1h cnlfcGxhbmVfcHJlcGFyZV9mYihzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKIAogCQkJc3dpdGNo IChuZXdfZmItPmZvcm1hdC0+Y3BwWzBdKjgpIHsKIAkJCWNhc2UgMzI6Ci0JCQkJY29udGVudF9z cmYuZm9ybWF0ID0gU1ZHQTNEX1g4UjhHOEI4OworCQkJCWNvbnRlbnRfc3JmLm1ldGFkYXRhLmZv cm1hdCA9IFNWR0EzRF9YOFI4RzhCODsKIAkJCQlicmVhazsKIAogCQkJY2FzZSAxNjoKLQkJCQlj b250ZW50X3NyZi5mb3JtYXQgPSBTVkdBM0RfUjVHNkI1OworCQkJCWNvbnRlbnRfc3JmLm1ldGFk YXRhLmZvcm1hdCA9IFNWR0EzRF9SNUc2QjU7CiAJCQkJYnJlYWs7CiAKIAkJCWNhc2UgODoKLQkJ CQljb250ZW50X3NyZi5mb3JtYXQgPSBTVkdBM0RfUDg7CisJCQkJY29udGVudF9zcmYubWV0YWRh dGEuZm9ybWF0ID0gU1ZHQTNEX1A4OwogCQkJCWJyZWFrOwogCiAJCQlkZWZhdWx0OgpAQCAtMTA5 OCwyMiArMTA5OSwyNSBAQCB2bXdfc3RkdV9wcmltYXJ5X3BsYW5lX3ByZXBhcmVfZmIoc3RydWN0 IGRybV9wbGFuZSAqcGxhbmUsCiAJCQkJcmV0dXJuIC1FSU5WQUw7CiAJCQl9CiAKLQkJCWNvbnRl bnRfc3JmLmZsYWdzICAgICAgICAgICAgID0gMDsKLQkJCWNvbnRlbnRfc3JmLm1pcF9sZXZlbHNb MF0gICAgID0gMTsKLQkJCWNvbnRlbnRfc3JmLm11bHRpc2FtcGxlX2NvdW50ID0gMDsKLQkJCWNv bnRlbnRfc3JmLm11bHRpc2FtcGxlX3BhdHRlcm4gPQorCQkJY29udGVudF9zcmYubWV0YWRhdGEu ZmxhZ3MgPSAwOworCQkJY29udGVudF9zcmYubWV0YWRhdGEubWlwX2xldmVsc1swXSA9IDE7CisJ CQljb250ZW50X3NyZi5tZXRhZGF0YS5tdWx0aXNhbXBsZV9jb3VudCA9IDA7CisJCQljb250ZW50 X3NyZi5tZXRhZGF0YS5tdWx0aXNhbXBsZV9wYXR0ZXJuID0KIAkJCQlTVkdBM0RfTVNfUEFUVEVS Tl9OT05FOwotCQkJY29udGVudF9zcmYucXVhbGl0eV9sZXZlbCA9IFNWR0EzRF9NU19RVUFMSVRZ X05PTkU7CisJCQljb250ZW50X3NyZi5tZXRhZGF0YS5xdWFsaXR5X2xldmVsID0KKwkJCQlTVkdB M0RfTVNfUVVBTElUWV9OT05FOwogCQl9IGVsc2UgewogCQkJY29udGVudF9zcmYgPSAqbmV3X3Zm YnMtPnN1cmZhY2U7CiAJCX0KIAogCQlpZiAodnBzLT5zdXJmKSB7Ci0JCQlzdHJ1Y3QgZHJtX3Zt d19zaXplIGN1cl9iYXNlX3NpemUgPSB2cHMtPnN1cmYtPmJhc2Vfc2l6ZTsKKwkJCXN0cnVjdCBk cm1fdm13X3NpemUgY3VyX2Jhc2Vfc2l6ZSA9CisJCQkJdnBzLT5zdXJmLT5tZXRhZGF0YS5iYXNl X3NpemU7CiAKIAkJCWlmIChjdXJfYmFzZV9zaXplLndpZHRoICE9IGRpc3BsYXlfYmFzZV9zaXpl LndpZHRoIHx8CiAJCQkgICAgY3VyX2Jhc2Vfc2l6ZS5oZWlnaHQgIT0gZGlzcGxheV9iYXNlX3Np emUuaGVpZ2h0IHx8Ci0JCQkgICAgdnBzLT5zdXJmLT5mb3JtYXQgIT0gY29udGVudF9zcmYuZm9y bWF0KSB7CisJCQkgICAgdnBzLT5zdXJmLT5tZXRhZGF0YS5mb3JtYXQgIT0KKwkJCSAgICBjb250 ZW50X3NyZi5tZXRhZGF0YS5mb3JtYXQpIHsKIAkJCQlXQVJOX09OKHZwcy0+cGlubmVkICE9IDAp OwogCQkJCXZtd19zdXJmYWNlX3VucmVmZXJlbmNlKCZ2cHMtPnN1cmYpOwogCQkJfQpAQCAtMTEy NSwxNSArMTEyOSwxNSBAQCB2bXdfc3RkdV9wcmltYXJ5X3BsYW5lX3ByZXBhcmVfZmIoc3RydWN0 IGRybV9wbGFuZSAqcGxhbmUsCiAJCQkJKGNydGMtPmRldiwKIAkJCQkgLyogS2VybmVsIHZpc2li bGUgb25seSAqLwogCQkJCSAwLAotCQkJCSBjb250ZW50X3NyZi5mbGFncywKLQkJCQkgY29udGVu dF9zcmYuZm9ybWF0LAorCQkJCSBjb250ZW50X3NyZi5tZXRhZGF0YS5mbGFncywKKwkJCQkgY29u dGVudF9zcmYubWV0YWRhdGEuZm9ybWF0LAogCQkJCSB0cnVlLCAgLyogYSBzY2Fub3V0IGJ1ZmZl ciAqLwotCQkJCSBjb250ZW50X3NyZi5taXBfbGV2ZWxzWzBdLAotCQkJCSBjb250ZW50X3NyZi5t dWx0aXNhbXBsZV9jb3VudCwKKwkJCQkgY29udGVudF9zcmYubWV0YWRhdGEubWlwX2xldmVsc1sw XSwKKwkJCQkgY29udGVudF9zcmYubWV0YWRhdGEubXVsdGlzYW1wbGVfY291bnQsCiAJCQkJIDAs CiAJCQkJIGRpc3BsYXlfYmFzZV9zaXplLAotCQkJCSBjb250ZW50X3NyZi5tdWx0aXNhbXBsZV9w YXR0ZXJuLAotCQkJCSBjb250ZW50X3NyZi5xdWFsaXR5X2xldmVsLAorCQkJCSBjb250ZW50X3Ny Zi5tZXRhZGF0YS5tdWx0aXNhbXBsZV9wYXR0ZXJuLAorCQkJCSBjb250ZW50X3NyZi5tZXRhZGF0 YS5xdWFsaXR5X2xldmVsLAogCQkJCSAmdnBzLT5zdXJmKTsKIAkJCWlmIChyZXQgIT0gMCkgewog CQkJCURSTV9FUlJPUigiQ291bGRuJ3QgYWxsb2NhdGUgU1REVSBzdXJmYWNlLlxuIik7CkBAIC0x MzExLDcgKzEzMTUsNyBAQCB2bXdfc3RkdV9ib19wb3B1bGF0ZV91cGRhdGVfY3B1KHN0cnVjdCB2 bXdfZHVfdXBkYXRlX3BsYW5lICAqdXBkYXRlLCB2b2lkICpjbWQsCiAJZGlmZi5jcHAgPSBzdGR1 LT5jcHA7CiAKIAlkc3RfYm8gPSAmc3RkdS0+ZGlzcGxheV9zcmYtPnJlcy5iYWNrdXAtPmJhc2U7 Ci0JZHN0X3BpdGNoID0gc3RkdS0+ZGlzcGxheV9zcmYtPmJhc2Vfc2l6ZS53aWR0aCAqIHN0ZHUt PmNwcDsKKwlkc3RfcGl0Y2ggPSBzdGR1LT5kaXNwbGF5X3NyZi0+bWV0YWRhdGEuYmFzZV9zaXpl LndpZHRoICogc3RkdS0+Y3BwOwogCWRzdF9vZmZzZXQgPSBiYi0+eTEgKiBkc3RfcGl0Y2ggKyBi Yi0+eDEgKiBzdGR1LT5jcHA7CiAKIAlzcmNfYm8gPSAmdmZiYm8tPmJ1ZmZlci0+YmFzZTsKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X3N1cmZhY2UuYyBiL2RyaXZl cnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X3N1cmZhY2UuYwppbmRleCA0YmFkNmUyYTcwMGQuLmQ5 YjY3N2EwNDkxYSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfc3Vy ZmFjZS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X3N1cmZhY2UuYwpAQCAt MTk5LDcgKzE5OSw3IEBAIHN0cnVjdCB2bXdfc3VyZmFjZV9kZXN0cm95IHsKICAqLwogc3RhdGlj IGlubGluZSB1aW50MzJfdCB2bXdfc3VyZmFjZV9kbWFfc2l6ZShjb25zdCBzdHJ1Y3Qgdm13X3N1 cmZhY2UgKnNyZikKIHsKLQlyZXR1cm4gc3JmLT5udW1fc2l6ZXMgKiBzaXplb2Yoc3RydWN0IHZt d19zdXJmYWNlX2RtYSk7CisJcmV0dXJuIHNyZi0+bWV0YWRhdGEubnVtX3NpemVzICogc2l6ZW9m KHN0cnVjdCB2bXdfc3VyZmFjZV9kbWEpOwogfQogCiAKQEAgLTIxMyw3ICsyMTMsNyBAQCBzdGF0 aWMgaW5saW5lIHVpbnQzMl90IHZtd19zdXJmYWNlX2RtYV9zaXplKGNvbnN0IHN0cnVjdCB2bXdf c3VyZmFjZSAqc3JmKQogICovCiBzdGF0aWMgaW5saW5lIHVpbnQzMl90IHZtd19zdXJmYWNlX2Rl ZmluZV9zaXplKGNvbnN0IHN0cnVjdCB2bXdfc3VyZmFjZSAqc3JmKQogewotCXJldHVybiBzaXpl b2Yoc3RydWN0IHZtd19zdXJmYWNlX2RlZmluZSkgKyBzcmYtPm51bV9zaXplcyAqCisJcmV0dXJu IHNpemVvZihzdHJ1Y3Qgdm13X3N1cmZhY2VfZGVmaW5lKSArIHNyZi0+bWV0YWRhdGEubnVtX3Np emVzICoKIAkJc2l6ZW9mKFNWR0EzZFNpemUpOwogfQogCkBAIC0yNjIsNyArMjYyLDggQEAgc3Rh dGljIHZvaWQgdm13X3N1cmZhY2VfZGVmaW5lX2VuY29kZShjb25zdCBzdHJ1Y3Qgdm13X3N1cmZh Y2UgKnNyZiwKIAl1aW50MzJfdCBjbWRfbGVuOwogCWludCBpOwogCi0JY21kX2xlbiA9IHNpemVv ZihjbWQtPmJvZHkpICsgc3JmLT5udW1fc2l6ZXMgKiBzaXplb2YoU1ZHQTNkU2l6ZSk7CisJY21k X2xlbiA9IHNpemVvZihjbWQtPmJvZHkpICsgc3JmLT5tZXRhZGF0YS5udW1fc2l6ZXMgKgorCQlz aXplb2YoU1ZHQTNkU2l6ZSk7CiAKIAljbWQtPmhlYWRlci5pZCA9IFNWR0FfM0RfQ01EX1NVUkZB Q0VfREVGSU5FOwogCWNtZC0+aGVhZGVyLnNpemUgPSBjbWRfbGVuOwpAQCAtMjcyLDE2ICsyNzMs MTYgQEAgc3RhdGljIHZvaWQgdm13X3N1cmZhY2VfZGVmaW5lX2VuY29kZShjb25zdCBzdHJ1Y3Qg dm13X3N1cmZhY2UgKnNyZiwKIAkgKiBzaW5jZSBkcml2ZXIgaW50ZXJuYWxseSBzdG9yZXMgYXMg NjQgYml0LgogCSAqIEZvciBsZWdhY3kgc3VyZmFjZSBkZWZpbmUgb25seSAzMiBiaXQgZmxhZyBp cyBzdXBwb3J0ZWQuCiAJICovCi0JY21kLT5ib2R5LnN1cmZhY2VGbGFncyA9IChTVkdBM2RTdXJm YWNlMUZsYWdzKXNyZi0+ZmxhZ3M7Ci0JY21kLT5ib2R5LmZvcm1hdCA9IHNyZi0+Zm9ybWF0Owor CWNtZC0+Ym9keS5zdXJmYWNlRmxhZ3MgPSAoU1ZHQTNkU3VyZmFjZTFGbGFncylzcmYtPm1ldGFk YXRhLmZsYWdzOworCWNtZC0+Ym9keS5mb3JtYXQgPSBzcmYtPm1ldGFkYXRhLmZvcm1hdDsKIAlm b3IgKGkgPSAwOyBpIDwgRFJNX1ZNV19NQVhfU1VSRkFDRV9GQUNFUzsgKytpKQotCQljbWQtPmJv ZHkuZmFjZVtpXS5udW1NaXBMZXZlbHMgPSBzcmYtPm1pcF9sZXZlbHNbaV07CisJCWNtZC0+Ym9k eS5mYWNlW2ldLm51bU1pcExldmVscyA9IHNyZi0+bWV0YWRhdGEubWlwX2xldmVsc1tpXTsKIAog CWNtZCArPSAxOwogCWNtZF9zaXplID0gKFNWR0EzZFNpemUgKikgY21kOwotCXNyY19zaXplID0g c3JmLT5zaXplczsKKwlzcmNfc2l6ZSA9IHNyZi0+bWV0YWRhdGEuc2l6ZXM7CiAKLQlmb3IgKGkg PSAwOyBpIDwgc3JmLT5udW1fc2l6ZXM7ICsraSwgY21kX3NpemUrKywgc3JjX3NpemUrKykgewor CWZvciAoaSA9IDA7IGkgPCBzcmYtPm1ldGFkYXRhLm51bV9zaXplczsgKytpLCBjbWRfc2l6ZSsr LCBzcmNfc2l6ZSsrKSB7CiAJCWNtZF9zaXplLT53aWR0aCA9IHNyY19zaXplLT53aWR0aDsKIAkJ Y21kX3NpemUtPmhlaWdodCA9IHNyY19zaXplLT5oZWlnaHQ7CiAJCWNtZF9zaXplLT5kZXB0aCA9 IHNyY19zaXplLT5kZXB0aDsKQEAgLTMwNSwxNSArMzA2LDE1IEBAIHN0YXRpYyB2b2lkIHZtd19z dXJmYWNlX2RtYV9lbmNvZGUoc3RydWN0IHZtd19zdXJmYWNlICpzcmYsCiAJdWludDMyX3QgaTsK IAlzdHJ1Y3Qgdm13X3N1cmZhY2VfZG1hICpjbWQgPSAoc3RydWN0IHZtd19zdXJmYWNlX2RtYSAq KWNtZF9zcGFjZTsKIAljb25zdCBzdHJ1Y3Qgc3ZnYTNkX3N1cmZhY2VfZGVzYyAqZGVzYyA9Ci0J CXN2Z2EzZHN1cmZhY2VfZ2V0X2Rlc2Moc3JmLT5mb3JtYXQpOworCQlzdmdhM2RzdXJmYWNlX2dl dF9kZXNjKHNyZi0+bWV0YWRhdGEuZm9ybWF0KTsKIAotCWZvciAoaSA9IDA7IGkgPCBzcmYtPm51 bV9zaXplczsgKytpKSB7CisJZm9yIChpID0gMDsgaSA8IHNyZi0+bWV0YWRhdGEubnVtX3NpemVz OyArK2kpIHsKIAkJU1ZHQTNkQ21kSGVhZGVyICpoZWFkZXIgPSAmY21kLT5oZWFkZXI7CiAJCVNW R0EzZENtZFN1cmZhY2VETUEgKmJvZHkgPSAmY21kLT5ib2R5OwogCQlTVkdBM2RDb3B5Qm94ICpj YiA9ICZjbWQtPmNiOwogCQlTVkdBM2RDbWRTdXJmYWNlRE1BU3VmZml4ICpzdWZmaXggPSAmY21k LT5zdWZmaXg7CiAJCWNvbnN0IHN0cnVjdCB2bXdfc3VyZmFjZV9vZmZzZXQgKmN1cl9vZmZzZXQg PSAmc3JmLT5vZmZzZXRzW2ldOwotCQljb25zdCBzdHJ1Y3QgZHJtX3Ztd19zaXplICpjdXJfc2l6 ZSA9ICZzcmYtPnNpemVzW2ldOworCQljb25zdCBzdHJ1Y3QgZHJtX3Ztd19zaXplICpjdXJfc2l6 ZSA9ICZzcmYtPm1ldGFkYXRhLnNpemVzW2ldOwogCiAJCWhlYWRlci0+aWQgPSBTVkdBXzNEX0NN RF9TVVJGQUNFX0RNQTsKIAkJaGVhZGVyLT5zaXplID0gc2l6ZW9mKCpib2R5KSArIHNpemVvZigq Y2IpICsgc2l6ZW9mKCpzdWZmaXgpOwpAQCAtNjY5LDcgKzY3MCw3IEBAIHN0YXRpYyB2b2lkIHZt d191c2VyX3N1cmZhY2VfZnJlZShzdHJ1Y3Qgdm13X3Jlc291cmNlICpyZXMpCiAJaWYgKHVzZXJf c3JmLT5tYXN0ZXIpCiAJCWRybV9tYXN0ZXJfcHV0KCZ1c2VyX3NyZi0+bWFzdGVyKTsKIAlrZnJl ZShzcmYtPm9mZnNldHMpOwotCWtmcmVlKHNyZi0+c2l6ZXMpOworCWtmcmVlKHNyZi0+bWV0YWRh dGEuc2l6ZXMpOwogCWtmcmVlKHNyZi0+c25vb3Blci5pbWFnZSk7CiAJdHRtX3ByaW1lX29iamVj dF9rZnJlZSh1c2VyX3NyZiwgcHJpbWUpOwogCXR0bV9tZW1fZ2xvYmFsX2ZyZWUodm13X21lbV9n bG9iKGRldl9wcml2KSwgc2l6ZSk7CkBAIC03MjgsNiArNzI5LDcgQEAgaW50IHZtd19zdXJmYWNl X2RlZmluZV9pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAogCXN0cnVj dCB2bXdfcHJpdmF0ZSAqZGV2X3ByaXYgPSB2bXdfcHJpdihkZXYpOwogCXN0cnVjdCB2bXdfdXNl cl9zdXJmYWNlICp1c2VyX3NyZjsKIAlzdHJ1Y3Qgdm13X3N1cmZhY2UgKnNyZjsKKwlzdHJ1Y3Qg dm13X3N1cmZhY2VfbWV0YWRhdGEgKm1ldGFkYXRhOwogCXN0cnVjdCB2bXdfcmVzb3VyY2UgKnJl czsKIAlzdHJ1Y3Qgdm13X3Jlc291cmNlICp0bXA7CiAJdW5pb24gZHJtX3Ztd19zdXJmYWNlX2Ny ZWF0ZV9hcmcgKmFyZyA9CkBAIC03OTMsNDMgKzc5NSw0NSBAQCBpbnQgdm13X3N1cmZhY2VfZGVm aW5lX2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCiAJfQogCiAJc3Jm ID0gJnVzZXJfc3JmLT5zcmY7CisJbWV0YWRhdGEgPSAmc3JmLT5tZXRhZGF0YTsKIAlyZXMgPSAm c3JmLT5yZXM7CiAKIAkvKiBEcml2ZXIgaW50ZXJuYWxseSBzdG9yZXMgYXMgNjQtYml0IGZsYWdz ICovCi0Jc3JmLT5mbGFncyA9IChTVkdBM2RTdXJmYWNlQWxsRmxhZ3MpcmVxLT5mbGFnczsKLQlz cmYtPmZvcm1hdCA9IHJlcS0+Zm9ybWF0OwotCXNyZi0+c2Nhbm91dCA9IHJlcS0+c2Nhbm91dDsK KwltZXRhZGF0YS0+ZmxhZ3MgPSAoU1ZHQTNkU3VyZmFjZUFsbEZsYWdzKXJlcS0+ZmxhZ3M7CisJ bWV0YWRhdGEtPmZvcm1hdCA9IHJlcS0+Zm9ybWF0OworCW1ldGFkYXRhLT5zY2Fub3V0ID0gcmVx LT5zY2Fub3V0OwogCi0JbWVtY3B5KHNyZi0+bWlwX2xldmVscywgcmVxLT5taXBfbGV2ZWxzLCBz aXplb2Yoc3JmLT5taXBfbGV2ZWxzKSk7Ci0Jc3JmLT5udW1fc2l6ZXMgPSBudW1fc2l6ZXM7CisJ bWVtY3B5KG1ldGFkYXRhLT5taXBfbGV2ZWxzLCByZXEtPm1pcF9sZXZlbHMsCisJICAgICAgIHNp emVvZihtZXRhZGF0YS0+bWlwX2xldmVscykpOworCW1ldGFkYXRhLT5udW1fc2l6ZXMgPSBudW1f c2l6ZXM7CiAJdXNlcl9zcmYtPnNpemUgPSBzaXplOwotCXNyZi0+c2l6ZXMgPSBtZW1kdXBfdXNl cigoc3RydWN0IGRybV92bXdfc2l6ZSBfX3VzZXIgKikodW5zaWduZWQgbG9uZykKLQkJCQkgcmVx LT5zaXplX2FkZHIsCi0JCQkJIHNpemVvZigqc3JmLT5zaXplcykgKiBzcmYtPm51bV9zaXplcyk7 Ci0JaWYgKElTX0VSUihzcmYtPnNpemVzKSkgewotCQlyZXQgPSBQVFJfRVJSKHNyZi0+c2l6ZXMp OworCW1ldGFkYXRhLT5zaXplcyA9CisJCW1lbWR1cF91c2VyKChzdHJ1Y3QgZHJtX3Ztd19zaXpl IF9fdXNlciAqKSh1bnNpZ25lZCBsb25nKQorCQkJICAgIHJlcS0+c2l6ZV9hZGRyLAorCQkJICAg IHNpemVvZigqbWV0YWRhdGEtPnNpemVzKSAqIG1ldGFkYXRhLT5udW1fc2l6ZXMpOworCWlmIChJ U19FUlIobWV0YWRhdGEtPnNpemVzKSkgeworCQlyZXQgPSBQVFJfRVJSKG1ldGFkYXRhLT5zaXpl cyk7CiAJCWdvdG8gb3V0X25vX3NpemVzOwogCX0KLQlzcmYtPm9mZnNldHMgPSBrbWFsbG9jX2Fy cmF5KHNyZi0+bnVtX3NpemVzLAotCQkJCSAgICAgc2l6ZW9mKCpzcmYtPm9mZnNldHMpLAorCXNy Zi0+b2Zmc2V0cyA9IGttYWxsb2NfYXJyYXkobWV0YWRhdGEtPm51bV9zaXplcywgc2l6ZW9mKCpz cmYtPm9mZnNldHMpLAogCQkJCSAgICAgR0ZQX0tFUk5FTCk7CiAJaWYgKHVubGlrZWx5KCFzcmYt Pm9mZnNldHMpKSB7CiAJCXJldCA9IC1FTk9NRU07CiAJCWdvdG8gb3V0X25vX29mZnNldHM7CiAJ fQogCi0Jc3JmLT5iYXNlX3NpemUgPSAqc3JmLT5zaXplczsKLQlzcmYtPmF1dG9nZW5fZmlsdGVy ID0gU1ZHQTNEX1RFWF9GSUxURVJfTk9ORTsKLQlzcmYtPm11bHRpc2FtcGxlX2NvdW50ID0gMDsK LQlzcmYtPm11bHRpc2FtcGxlX3BhdHRlcm4gPSBTVkdBM0RfTVNfUEFUVEVSTl9OT05FOwotCXNy Zi0+cXVhbGl0eV9sZXZlbCA9IFNWR0EzRF9NU19RVUFMSVRZX05PTkU7CisJbWV0YWRhdGEtPmJh c2Vfc2l6ZSA9ICpzcmYtPm1ldGFkYXRhLnNpemVzOworCW1ldGFkYXRhLT5hdXRvZ2VuX2ZpbHRl ciA9IFNWR0EzRF9URVhfRklMVEVSX05PTkU7CisJbWV0YWRhdGEtPm11bHRpc2FtcGxlX2NvdW50 ID0gMDsKKwltZXRhZGF0YS0+bXVsdGlzYW1wbGVfcGF0dGVybiA9IFNWR0EzRF9NU19QQVRURVJO X05PTkU7CisJbWV0YWRhdGEtPnF1YWxpdHlfbGV2ZWwgPSBTVkdBM0RfTVNfUVVBTElUWV9OT05F OwogCiAJY3VyX2JvX29mZnNldCA9IDA7CiAJY3VyX29mZnNldCA9IHNyZi0+b2Zmc2V0czsKLQlj dXJfc2l6ZSA9IHNyZi0+c2l6ZXM7CisJY3VyX3NpemUgPSBtZXRhZGF0YS0+c2l6ZXM7CiAKIAlm b3IgKGkgPSAwOyBpIDwgRFJNX1ZNV19NQVhfU1VSRkFDRV9GQUNFUzsgKytpKSB7Ci0JCWZvciAo aiA9IDA7IGogPCBzcmYtPm1pcF9sZXZlbHNbaV07ICsraikgeworCQlmb3IgKGogPSAwOyBqIDwg bWV0YWRhdGEtPm1pcF9sZXZlbHNbaV07ICsraikgewogCQkJdWludDMyX3Qgc3RyaWRlID0gc3Zn YTNkc3VyZmFjZV9jYWxjdWxhdGVfcGl0Y2gKIAkJCQkoZGVzYywgY3VyX3NpemUpOwogCkBAIC04 NDMsMTEgKzg0NywxMSBAQCBpbnQgdm13X3N1cmZhY2VfZGVmaW5lX2lvY3RsKHN0cnVjdCBkcm1f ZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCiAJCX0KIAl9CiAJcmVzLT5iYWNrdXBfc2l6ZSA9IGN1 cl9ib19vZmZzZXQ7Ci0JaWYgKHNyZi0+c2Nhbm91dCAmJgotCSAgICBzcmYtPm51bV9zaXplcyA9 PSAxICYmCi0JICAgIHNyZi0+c2l6ZXNbMF0ud2lkdGggPT0gNjQgJiYKLQkgICAgc3JmLT5zaXpl c1swXS5oZWlnaHQgPT0gNjQgJiYKLQkgICAgc3JmLT5mb3JtYXQgPT0gU1ZHQTNEX0E4UjhHOEI4 KSB7CisJaWYgKG1ldGFkYXRhLT5zY2Fub3V0ICYmCisJICAgIG1ldGFkYXRhLT5udW1fc2l6ZXMg PT0gMSAmJgorCSAgICBtZXRhZGF0YS0+c2l6ZXNbMF0ud2lkdGggPT0gNjQgJiYKKwkgICAgbWV0 YWRhdGEtPnNpemVzWzBdLmhlaWdodCA9PSA2NCAmJgorCSAgICBtZXRhZGF0YS0+Zm9ybWF0ID09 IFNWR0EzRF9BOFI4RzhCOCkgewogCiAJCXNyZi0+c25vb3Blci5pbWFnZSA9IGt6YWxsb2MoNjQg KiA2NCAqIDQsIEdGUF9LRVJORUwpOwogCQlpZiAoIXNyZi0+c25vb3Blci5pbWFnZSkgewpAQCAt OTExLDcgKzkxNSw3IEBAIGludCB2bXdfc3VyZmFjZV9kZWZpbmVfaW9jdGwoc3RydWN0IGRybV9k ZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKIG91dF9ub19jb3B5OgogCWtmcmVlKHNyZi0+b2Zmc2V0 cyk7CiBvdXRfbm9fb2Zmc2V0czoKLQlrZnJlZShzcmYtPnNpemVzKTsKKwlrZnJlZShtZXRhZGF0 YS0+c2l6ZXMpOwogb3V0X25vX3NpemVzOgogCXR0bV9wcmltZV9vYmplY3Rfa2ZyZWUodXNlcl9z cmYsIHByaW1lKTsKIG91dF9ub191c2VyX3NyZjoKQEAgLTEwMzEsMTggKzEwMzUsMTkgQEAgaW50 IHZtd19zdXJmYWNlX3JlZmVyZW5jZV9pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lk ICpkYXRhLAogCXNyZiA9ICZ1c2VyX3NyZi0+c3JmOwogCiAJLyogRG93bmNhc3Qgb2YgZmxhZ3Mg d2hlbiBzZW5kaW5nIGJhY2sgdG8gdXNlciBzcGFjZSAqLwotCXJlcC0+ZmxhZ3MgPSAodWludDMy X3Qpc3JmLT5mbGFnczsKLQlyZXAtPmZvcm1hdCA9IHNyZi0+Zm9ybWF0OwotCW1lbWNweShyZXAt Pm1pcF9sZXZlbHMsIHNyZi0+bWlwX2xldmVscywgc2l6ZW9mKHNyZi0+bWlwX2xldmVscykpOwor CXJlcC0+ZmxhZ3MgPSAodWludDMyX3Qpc3JmLT5tZXRhZGF0YS5mbGFnczsKKwlyZXAtPmZvcm1h dCA9IHNyZi0+bWV0YWRhdGEuZm9ybWF0OworCW1lbWNweShyZXAtPm1pcF9sZXZlbHMsIHNyZi0+ bWV0YWRhdGEubWlwX2xldmVscywKKwkgICAgICAgc2l6ZW9mKHNyZi0+bWV0YWRhdGEubWlwX2xl dmVscykpOwogCXVzZXJfc2l6ZXMgPSAoc3RydWN0IGRybV92bXdfc2l6ZSBfX3VzZXIgKikodW5z aWduZWQgbG9uZykKIAkgICAgcmVwLT5zaXplX2FkZHI7CiAKIAlpZiAodXNlcl9zaXplcykKLQkJ cmV0ID0gY29weV90b191c2VyKHVzZXJfc2l6ZXMsICZzcmYtPmJhc2Vfc2l6ZSwKLQkJCQkgICBz aXplb2Yoc3JmLT5iYXNlX3NpemUpKTsKKwkJcmV0ID0gY29weV90b191c2VyKHVzZXJfc2l6ZXMs ICZzcmYtPm1ldGFkYXRhLmJhc2Vfc2l6ZSwKKwkJCQkgICBzaXplb2Yoc3JmLT5tZXRhZGF0YS5i YXNlX3NpemUpKTsKIAlpZiAodW5saWtlbHkocmV0ICE9IDApKSB7CiAJCVZNV19ERUJVR19VU0VS KCJjb3B5X3RvX3VzZXIgZmFpbGVkICVwICV1XG4iLCB1c2VyX3NpemVzLAotCQkJICAgICAgIHNy Zi0+bnVtX3NpemVzKTsKKwkJCSAgICAgICBzcmYtPm1ldGFkYXRhLm51bV9zaXplcyk7CiAJCXR0 bV9yZWZfb2JqZWN0X2Jhc2VfdW5yZWYodGZpbGUsIGJhc2UtPmhhbmRsZSwgVFRNX1JFRl9VU0FH RSk7CiAJCXJldCA9IC1FRkFVTFQ7CiAJfQpAQCAtMTA2Miw2ICsxMDY3LDcgQEAgc3RhdGljIGlu dCB2bXdfZ2Jfc3VyZmFjZV9jcmVhdGUoc3RydWN0IHZtd19yZXNvdXJjZSAqcmVzKQogewogCXN0 cnVjdCB2bXdfcHJpdmF0ZSAqZGV2X3ByaXYgPSByZXMtPmRldl9wcml2OwogCXN0cnVjdCB2bXdf c3VyZmFjZSAqc3JmID0gdm13X3Jlc190b19zcmYocmVzKTsKKwlzdHJ1Y3Qgdm13X3N1cmZhY2Vf bWV0YWRhdGEgKm1ldGFkYXRhID0gJnNyZi0+bWV0YWRhdGE7CiAJdWludDMyX3QgY21kX2xlbiwg Y21kX2lkLCBzdWJtaXRfbGVuOwogCWludCByZXQ7CiAJc3RydWN0IHsKQEAgLTEwOTIsMTEgKzEw OTgsMTEgQEAgc3RhdGljIGludCB2bXdfZ2Jfc3VyZmFjZV9jcmVhdGUoc3RydWN0IHZtd19yZXNv dXJjZSAqcmVzKQogCQlnb3RvIG91dF9ub19maWZvOwogCX0KIAotCWlmIChoYXNfc200XzFfY29u dGV4dChkZXZfcHJpdikgJiYgc3JmLT5hcnJheV9zaXplID4gMCkgeworCWlmIChoYXNfc200XzFf Y29udGV4dChkZXZfcHJpdikgJiYgbWV0YWRhdGEtPmFycmF5X3NpemUgPiAwKSB7CiAJCWNtZF9p ZCA9IFNWR0FfM0RfQ01EX0RFRklORV9HQl9TVVJGQUNFX1YzOwogCQljbWRfbGVuID0gc2l6ZW9m KGNtZDMtPmJvZHkpOwogCQlzdWJtaXRfbGVuID0gc2l6ZW9mKCpjbWQzKTsKLQl9IGVsc2UgaWYg KHNyZi0+YXJyYXlfc2l6ZSA+IDApIHsKKwl9IGVsc2UgaWYgKG1ldGFkYXRhLT5hcnJheV9zaXpl ID4gMCkgewogCQkvKiBWTVdfU01fNCBzdXBwb3J0IHZlcmlmaWVkIGF0IGNyZWF0aW9uIHRpbWUu ICovCiAJCWNtZF9pZCA9IFNWR0FfM0RfQ01EX0RFRklORV9HQl9TVVJGQUNFX1YyOwogCQljbWRf bGVuID0gc2l6ZW9mKGNtZDItPmJvZHkpOwpAQCAtMTExNSw0NiArMTEyMSw0NiBAQCBzdGF0aWMg aW50IHZtd19nYl9zdXJmYWNlX2NyZWF0ZShzdHJ1Y3Qgdm13X3Jlc291cmNlICpyZXMpCiAJCWdv dG8gb3V0X25vX2ZpZm87CiAJfQogCi0JaWYgKGhhc19zbTRfMV9jb250ZXh0KGRldl9wcml2KSAm JiBzcmYtPmFycmF5X3NpemUgPiAwKSB7CisJaWYgKGhhc19zbTRfMV9jb250ZXh0KGRldl9wcml2 KSAmJiBtZXRhZGF0YS0+YXJyYXlfc2l6ZSA+IDApIHsKIAkJY21kMy0+aGVhZGVyLmlkID0gY21k X2lkOwogCQljbWQzLT5oZWFkZXIuc2l6ZSA9IGNtZF9sZW47CiAJCWNtZDMtPmJvZHkuc2lkID0g c3JmLT5yZXMuaWQ7Ci0JCWNtZDMtPmJvZHkuc3VyZmFjZUZsYWdzID0gc3JmLT5mbGFnczsKLQkJ Y21kMy0+Ym9keS5mb3JtYXQgPSBzcmYtPmZvcm1hdDsKLQkJY21kMy0+Ym9keS5udW1NaXBMZXZl bHMgPSBzcmYtPm1pcF9sZXZlbHNbMF07Ci0JCWNtZDMtPmJvZHkubXVsdGlzYW1wbGVDb3VudCA9 IHNyZi0+bXVsdGlzYW1wbGVfY291bnQ7Ci0JCWNtZDMtPmJvZHkubXVsdGlzYW1wbGVQYXR0ZXJu ID0gc3JmLT5tdWx0aXNhbXBsZV9wYXR0ZXJuOwotCQljbWQzLT5ib2R5LnF1YWxpdHlMZXZlbCA9 IHNyZi0+cXVhbGl0eV9sZXZlbDsKLQkJY21kMy0+Ym9keS5hdXRvZ2VuRmlsdGVyID0gc3JmLT5h dXRvZ2VuX2ZpbHRlcjsKLQkJY21kMy0+Ym9keS5zaXplLndpZHRoID0gc3JmLT5iYXNlX3NpemUu d2lkdGg7Ci0JCWNtZDMtPmJvZHkuc2l6ZS5oZWlnaHQgPSBzcmYtPmJhc2Vfc2l6ZS5oZWlnaHQ7 Ci0JCWNtZDMtPmJvZHkuc2l6ZS5kZXB0aCA9IHNyZi0+YmFzZV9zaXplLmRlcHRoOwotCQljbWQz LT5ib2R5LmFycmF5U2l6ZSA9IHNyZi0+YXJyYXlfc2l6ZTsKLQl9IGVsc2UgaWYgKHNyZi0+YXJy YXlfc2l6ZSA+IDApIHsKKwkJY21kMy0+Ym9keS5zdXJmYWNlRmxhZ3MgPSBtZXRhZGF0YS0+Zmxh Z3M7CisJCWNtZDMtPmJvZHkuZm9ybWF0ID0gbWV0YWRhdGEtPmZvcm1hdDsKKwkJY21kMy0+Ym9k eS5udW1NaXBMZXZlbHMgPSBtZXRhZGF0YS0+bWlwX2xldmVsc1swXTsKKwkJY21kMy0+Ym9keS5t dWx0aXNhbXBsZUNvdW50ID0gbWV0YWRhdGEtPm11bHRpc2FtcGxlX2NvdW50OworCQljbWQzLT5i b2R5Lm11bHRpc2FtcGxlUGF0dGVybiA9IG1ldGFkYXRhLT5tdWx0aXNhbXBsZV9wYXR0ZXJuOwor CQljbWQzLT5ib2R5LnF1YWxpdHlMZXZlbCA9IG1ldGFkYXRhLT5xdWFsaXR5X2xldmVsOworCQlj bWQzLT5ib2R5LmF1dG9nZW5GaWx0ZXIgPSBtZXRhZGF0YS0+YXV0b2dlbl9maWx0ZXI7CisJCWNt ZDMtPmJvZHkuc2l6ZS53aWR0aCA9IG1ldGFkYXRhLT5iYXNlX3NpemUud2lkdGg7CisJCWNtZDMt PmJvZHkuc2l6ZS5oZWlnaHQgPSBtZXRhZGF0YS0+YmFzZV9zaXplLmhlaWdodDsKKwkJY21kMy0+ Ym9keS5zaXplLmRlcHRoID0gbWV0YWRhdGEtPmJhc2Vfc2l6ZS5kZXB0aDsKKwkJY21kMy0+Ym9k eS5hcnJheVNpemUgPSBtZXRhZGF0YS0+YXJyYXlfc2l6ZTsKKwl9IGVsc2UgaWYgKG1ldGFkYXRh LT5hcnJheV9zaXplID4gMCkgewogCQljbWQyLT5oZWFkZXIuaWQgPSBjbWRfaWQ7CiAJCWNtZDIt PmhlYWRlci5zaXplID0gY21kX2xlbjsKIAkJY21kMi0+Ym9keS5zaWQgPSBzcmYtPnJlcy5pZDsK LQkJY21kMi0+Ym9keS5zdXJmYWNlRmxhZ3MgPSBzcmYtPmZsYWdzOwotCQljbWQyLT5ib2R5LmZv cm1hdCA9IHNyZi0+Zm9ybWF0OwotCQljbWQyLT5ib2R5Lm51bU1pcExldmVscyA9IHNyZi0+bWlw X2xldmVsc1swXTsKLQkJY21kMi0+Ym9keS5tdWx0aXNhbXBsZUNvdW50ID0gc3JmLT5tdWx0aXNh bXBsZV9jb3VudDsKLQkJY21kMi0+Ym9keS5hdXRvZ2VuRmlsdGVyID0gc3JmLT5hdXRvZ2VuX2Zp bHRlcjsKLQkJY21kMi0+Ym9keS5zaXplLndpZHRoID0gc3JmLT5iYXNlX3NpemUud2lkdGg7Ci0J CWNtZDItPmJvZHkuc2l6ZS5oZWlnaHQgPSBzcmYtPmJhc2Vfc2l6ZS5oZWlnaHQ7Ci0JCWNtZDIt PmJvZHkuc2l6ZS5kZXB0aCA9IHNyZi0+YmFzZV9zaXplLmRlcHRoOwotCQljbWQyLT5ib2R5LmFy cmF5U2l6ZSA9IHNyZi0+YXJyYXlfc2l6ZTsKKwkJY21kMi0+Ym9keS5zdXJmYWNlRmxhZ3MgPSBt ZXRhZGF0YS0+ZmxhZ3M7CisJCWNtZDItPmJvZHkuZm9ybWF0ID0gbWV0YWRhdGEtPmZvcm1hdDsK KwkJY21kMi0+Ym9keS5udW1NaXBMZXZlbHMgPSBtZXRhZGF0YS0+bWlwX2xldmVsc1swXTsKKwkJ Y21kMi0+Ym9keS5tdWx0aXNhbXBsZUNvdW50ID0gbWV0YWRhdGEtPm11bHRpc2FtcGxlX2NvdW50 OworCQljbWQyLT5ib2R5LmF1dG9nZW5GaWx0ZXIgPSBtZXRhZGF0YS0+YXV0b2dlbl9maWx0ZXI7 CisJCWNtZDItPmJvZHkuc2l6ZS53aWR0aCA9IG1ldGFkYXRhLT5iYXNlX3NpemUud2lkdGg7CisJ CWNtZDItPmJvZHkuc2l6ZS5oZWlnaHQgPSBtZXRhZGF0YS0+YmFzZV9zaXplLmhlaWdodDsKKwkJ Y21kMi0+Ym9keS5zaXplLmRlcHRoID0gbWV0YWRhdGEtPmJhc2Vfc2l6ZS5kZXB0aDsKKwkJY21k Mi0+Ym9keS5hcnJheVNpemUgPSBtZXRhZGF0YS0+YXJyYXlfc2l6ZTsKIAl9IGVsc2UgewogCQlj bWQtPmhlYWRlci5pZCA9IGNtZF9pZDsKIAkJY21kLT5oZWFkZXIuc2l6ZSA9IGNtZF9sZW47CiAJ CWNtZC0+Ym9keS5zaWQgPSBzcmYtPnJlcy5pZDsKLQkJY21kLT5ib2R5LnN1cmZhY2VGbGFncyA9 IHNyZi0+ZmxhZ3M7Ci0JCWNtZC0+Ym9keS5mb3JtYXQgPSBzcmYtPmZvcm1hdDsKLQkJY21kLT5i b2R5Lm51bU1pcExldmVscyA9IHNyZi0+bWlwX2xldmVsc1swXTsKLQkJY21kLT5ib2R5Lm11bHRp c2FtcGxlQ291bnQgPSBzcmYtPm11bHRpc2FtcGxlX2NvdW50OwotCQljbWQtPmJvZHkuYXV0b2dl bkZpbHRlciA9IHNyZi0+YXV0b2dlbl9maWx0ZXI7Ci0JCWNtZC0+Ym9keS5zaXplLndpZHRoID0g c3JmLT5iYXNlX3NpemUud2lkdGg7Ci0JCWNtZC0+Ym9keS5zaXplLmhlaWdodCA9IHNyZi0+YmFz ZV9zaXplLmhlaWdodDsKLQkJY21kLT5ib2R5LnNpemUuZGVwdGggPSBzcmYtPmJhc2Vfc2l6ZS5k ZXB0aDsKKwkJY21kLT5ib2R5LnN1cmZhY2VGbGFncyA9IG1ldGFkYXRhLT5mbGFnczsKKwkJY21k LT5ib2R5LmZvcm1hdCA9IG1ldGFkYXRhLT5mb3JtYXQ7CisJCWNtZC0+Ym9keS5udW1NaXBMZXZl bHMgPSBtZXRhZGF0YS0+bWlwX2xldmVsc1swXTsKKwkJY21kLT5ib2R5Lm11bHRpc2FtcGxlQ291 bnQgPSBtZXRhZGF0YS0+bXVsdGlzYW1wbGVfY291bnQ7CisJCWNtZC0+Ym9keS5hdXRvZ2VuRmls dGVyID0gbWV0YWRhdGEtPmF1dG9nZW5fZmlsdGVyOworCQljbWQtPmJvZHkuc2l6ZS53aWR0aCA9 IG1ldGFkYXRhLT5iYXNlX3NpemUud2lkdGg7CisJCWNtZC0+Ym9keS5zaXplLmhlaWdodCA9IG1l dGFkYXRhLT5iYXNlX3NpemUuaGVpZ2h0OworCQljbWQtPmJvZHkuc2l6ZS5kZXB0aCA9IG1ldGFk YXRhLT5iYXNlX3NpemUuZGVwdGg7CiAJfQogCiAJdm13X2ZpZm9fY29tbWl0KGRldl9wcml2LCBz dWJtaXRfbGVuKTsKQEAgLTE0MTIsNiArMTQxOCw3IEBAIGludCB2bXdfc3VyZmFjZV9nYl9wcml2 X2RlZmluZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCQkubm9fd2FpdF9ncHUgPSBmYWxzZQog CX07CiAJc3RydWN0IHZtd19zdXJmYWNlICpzcmY7CisJc3RydWN0IHZtd19zdXJmYWNlX21ldGFk YXRhICptZXRhZGF0YTsKIAlpbnQgcmV0OwogCXUzMiBudW1fbGF5ZXJzID0gMTsKIAl1MzIgc2Ft cGxlX2NvdW50ID0gMTsKQEAgLTE0NzMsMzYgKzE0ODAsMzcgQEAgaW50IHZtd19zdXJmYWNlX2di X3ByaXZfZGVmaW5lKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJdXNlcl9zcmYtPnByaW1lLmJh c2UudGZpbGUgICAgID0gTlVMTDsKIAogCXNyZiA9ICZ1c2VyX3NyZi0+c3JmOwotCXNyZi0+Zmxh Z3MgICAgICAgICAgICAgPSBzdmdhM2RfZmxhZ3M7Ci0Jc3JmLT5mb3JtYXQgICAgICAgICAgICA9 IGZvcm1hdDsKLQlzcmYtPnNjYW5vdXQgICAgICAgICAgID0gZm9yX3NjYW5vdXQ7Ci0Jc3JmLT5t aXBfbGV2ZWxzWzBdICAgICA9IG51bV9taXBfbGV2ZWxzOwotCXNyZi0+bnVtX3NpemVzICAgICAg ICAgPSAxOwotCXNyZi0+c2l6ZXMgICAgICAgICAgICAgPSBOVUxMOwotCXNyZi0+b2Zmc2V0cyAg ICAgICAgICAgPSBOVUxMOwotCXNyZi0+YmFzZV9zaXplICAgICAgICAgPSBzaXplOwotCXNyZi0+ YXV0b2dlbl9maWx0ZXIgICAgPSBTVkdBM0RfVEVYX0ZJTFRFUl9OT05FOwotCXNyZi0+YXJyYXlf c2l6ZSAgICAgICAgPSBhcnJheV9zaXplOwotCXNyZi0+bXVsdGlzYW1wbGVfY291bnQgPSBtdWx0 aXNhbXBsZV9jb3VudDsKLQlzcmYtPm11bHRpc2FtcGxlX3BhdHRlcm4gPSBtdWx0aXNhbXBsZV9w YXR0ZXJuOwotCXNyZi0+cXVhbGl0eV9sZXZlbCA9IHF1YWxpdHlfbGV2ZWw7CisJbWV0YWRhdGEg PSAmc3JmLT5tZXRhZGF0YTsKKwltZXRhZGF0YS0+ZmxhZ3MgPSBzdmdhM2RfZmxhZ3M7CisJbWV0 YWRhdGEtPmZvcm1hdCA9IGZvcm1hdDsKKwltZXRhZGF0YS0+c2Nhbm91dCA9IGZvcl9zY2Fub3V0 OworCW1ldGFkYXRhLT5taXBfbGV2ZWxzWzBdID0gbnVtX21pcF9sZXZlbHM7CisJbWV0YWRhdGEt Pm51bV9zaXplcyA9IDE7CisJbWV0YWRhdGEtPnNpemVzID0gTlVMTDsKKwlzcmYtPm9mZnNldHMg PSBOVUxMOworCW1ldGFkYXRhLT5iYXNlX3NpemUgPSBzaXplOworCW1ldGFkYXRhLT5hdXRvZ2Vu X2ZpbHRlciA9IFNWR0EzRF9URVhfRklMVEVSX05PTkU7CisJbWV0YWRhdGEtPmFycmF5X3NpemUg PSBhcnJheV9zaXplOworCW1ldGFkYXRhLT5tdWx0aXNhbXBsZV9jb3VudCA9IG11bHRpc2FtcGxl X2NvdW50OworCW1ldGFkYXRhLT5tdWx0aXNhbXBsZV9wYXR0ZXJuID0gbXVsdGlzYW1wbGVfcGF0 dGVybjsKKwltZXRhZGF0YS0+cXVhbGl0eV9sZXZlbCA9IHF1YWxpdHlfbGV2ZWw7CiAKIAlpZiAo YXJyYXlfc2l6ZSkKIAkJbnVtX2xheWVycyA9IGFycmF5X3NpemU7CiAJZWxzZSBpZiAoc3ZnYTNk X2ZsYWdzICYgU1ZHQTNEX1NVUkZBQ0VfQ1VCRU1BUCkKIAkJbnVtX2xheWVycyA9IFNWR0EzRF9N QVhfU1VSRkFDRV9GQUNFUzsKIAotCWlmIChzcmYtPmZsYWdzICYgU1ZHQTNEX1NVUkZBQ0VfTVVM VElTQU1QTEUpCi0JCXNhbXBsZV9jb3VudCA9IHNyZi0+bXVsdGlzYW1wbGVfY291bnQ7CisJaWYg KG1ldGFkYXRhLT5mbGFncyAmIFNWR0EzRF9TVVJGQUNFX01VTFRJU0FNUExFKQorCQlzYW1wbGVf Y291bnQgPSBtZXRhZGF0YS0+bXVsdGlzYW1wbGVfY291bnQ7CiAKLQlzcmYtPnJlcy5iYWNrdXBf c2l6ZSAgID0KLQkJc3ZnYTNkc3VyZmFjZV9nZXRfc2VyaWFsaXplZF9zaXplX2V4dGVuZGVkKHNy Zi0+Zm9ybWF0LAotCQkJCQkJCSAgIHNyZi0+YmFzZV9zaXplLAotCQkJCQkJCSAgIHNyZi0+bWlw X2xldmVsc1swXSwKKwlzcmYtPnJlcy5iYWNrdXBfc2l6ZSA9CisJCXN2Z2EzZHN1cmZhY2VfZ2V0 X3NlcmlhbGl6ZWRfc2l6ZV9leHRlbmRlZChtZXRhZGF0YS0+Zm9ybWF0LAorCQkJCQkJCSAgIG1l dGFkYXRhLT5iYXNlX3NpemUsCisJCQkJCQkJICAgbWV0YWRhdGEtPm1pcF9sZXZlbHNbMF0sCiAJ CQkJCQkJICAgbnVtX2xheWVycywKIAkJCQkJCQkgICBzYW1wbGVfY291bnQpOwogCi0JaWYgKHNy Zi0+ZmxhZ3MgJiBTVkdBM0RfU1VSRkFDRV9CSU5EX1NUUkVBTV9PVVRQVVQpCisJaWYgKG1ldGFk YXRhLT5mbGFncyAmIFNWR0EzRF9TVVJGQUNFX0JJTkRfU1RSRUFNX09VVFBVVCkKIAkJc3JmLT5y ZXMuYmFja3VwX3NpemUgKz0gc2l6ZW9mKFNWR0EzZERYU09TdGF0ZSk7CiAKIAkvKgpAQCAtMTUx Niw3ICsxNTI0LDcgQEAgaW50IHZtd19zdXJmYWNlX2diX3ByaXZfZGVmaW5lKHN0cnVjdCBkcm1f ZGV2aWNlICpkZXYsCiAJaWYgKGRldl9wcml2LT5hY3RpdmVfZGlzcGxheV91bml0ID09IHZtd19k dV9zY3JlZW5fdGFyZ2V0ICYmCiAJICAgIGZvcl9zY2Fub3V0ICYmIHNpemUud2lkdGggPD0gZGV2 X3ByaXYtPnN0ZHVfbWF4X3dpZHRoICYmCiAJICAgIHNpemUuaGVpZ2h0IDw9IGRldl9wcml2LT5z dGR1X21heF9oZWlnaHQpCi0JCXNyZi0+ZmxhZ3MgfD0gU1ZHQTNEX1NVUkZBQ0VfU0NSRUVOVEFS R0VUOworCQltZXRhZGF0YS0+ZmxhZ3MgfD0gU1ZHQTNEX1NVUkZBQ0VfU0NSRUVOVEFSR0VUOwog CiAJLyoKIAkgKiBGcm9tIHRoaXMgcG9pbnQsIHRoZSBnZW5lcmljIHJlc291cmNlIG1hbmFnZW1l bnQgZnVuY3Rpb25zCkBAIC0xNzYyLDYgKzE3NzAsNyBAQCB2bXdfZ2Jfc3VyZmFjZV9yZWZlcmVu Y2VfaW50ZXJuYWwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAlzdHJ1Y3QgdHRtX29iamVjdF9m aWxlICp0ZmlsZSA9IHZtd19mcHJpdihmaWxlX3ByaXYpLT50ZmlsZTsKIAlzdHJ1Y3Qgdm13X3N1 cmZhY2UgKnNyZjsKIAlzdHJ1Y3Qgdm13X3VzZXJfc3VyZmFjZSAqdXNlcl9zcmY7CisJc3RydWN0 IHZtd19zdXJmYWNlX21ldGFkYXRhICptZXRhZGF0YTsKIAlzdHJ1Y3QgdHRtX2Jhc2Vfb2JqZWN0 ICpiYXNlOwogCXVpbnQzMl90IGJhY2t1cF9oYW5kbGU7CiAJaW50IHJldCA9IC1FSU5WQUw7CkBA IC0xNzc3LDYgKzE3ODYsNyBAQCB2bXdfZ2Jfc3VyZmFjZV9yZWZlcmVuY2VfaW50ZXJuYWwoc3Ry dWN0IGRybV9kZXZpY2UgKmRldiwKIAkJRFJNX0VSUk9SKCJTaGFyZWQgR0Igc3VyZmFjZSBpcyBt aXNzaW5nIGEgYmFja3VwIGJ1ZmZlci5cbiIpOwogCQlnb3RvIG91dF9iYWRfcmVzb3VyY2U7CiAJ fQorCW1ldGFkYXRhID0gJnNyZi0+bWV0YWRhdGE7CiAKIAltdXRleF9sb2NrKCZkZXZfcHJpdi0+ Y21kYnVmX211dGV4KTsgLyogUHJvdGVjdCByZXMtPmJhY2t1cCAqLwogCXJldCA9IHZtd191c2Vy X2JvX3JlZmVyZW5jZSh0ZmlsZSwgc3JmLT5yZXMuYmFja3VwLCAmYmFja3VwX2hhbmRsZSk7CkBA IC0xNzkwLDE1ICsxODAwLDE1IEBAIHZtd19nYl9zdXJmYWNlX3JlZmVyZW5jZV9pbnRlcm5hbChz dHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCQlnb3RvIG91dF9iYWRfcmVzb3VyY2U7CiAJfQogCi0J cmVwLT5jcmVxLmJhc2Uuc3ZnYTNkX2ZsYWdzID0gU1ZHQTNEX0ZMQUdTX0xPV0VSXzMyKHNyZi0+ ZmxhZ3MpOwotCXJlcC0+Y3JlcS5iYXNlLmZvcm1hdCA9IHNyZi0+Zm9ybWF0OwotCXJlcC0+Y3Jl cS5iYXNlLm1pcF9sZXZlbHMgPSBzcmYtPm1pcF9sZXZlbHNbMF07CisJcmVwLT5jcmVxLmJhc2Uu c3ZnYTNkX2ZsYWdzID0gU1ZHQTNEX0ZMQUdTX0xPV0VSXzMyKG1ldGFkYXRhLT5mbGFncyk7CisJ cmVwLT5jcmVxLmJhc2UuZm9ybWF0ID0gbWV0YWRhdGEtPmZvcm1hdDsKKwlyZXAtPmNyZXEuYmFz ZS5taXBfbGV2ZWxzID0gbWV0YWRhdGEtPm1pcF9sZXZlbHNbMF07CiAJcmVwLT5jcmVxLmJhc2Uu ZHJtX3N1cmZhY2VfZmxhZ3MgPSAwOwotCXJlcC0+Y3JlcS5iYXNlLm11bHRpc2FtcGxlX2NvdW50 ID0gc3JmLT5tdWx0aXNhbXBsZV9jb3VudDsKLQlyZXAtPmNyZXEuYmFzZS5hdXRvZ2VuX2ZpbHRl ciA9IHNyZi0+YXV0b2dlbl9maWx0ZXI7Ci0JcmVwLT5jcmVxLmJhc2UuYXJyYXlfc2l6ZSA9IHNy Zi0+YXJyYXlfc2l6ZTsKKwlyZXAtPmNyZXEuYmFzZS5tdWx0aXNhbXBsZV9jb3VudCA9IG1ldGFk YXRhLT5tdWx0aXNhbXBsZV9jb3VudDsKKwlyZXAtPmNyZXEuYmFzZS5hdXRvZ2VuX2ZpbHRlciA9 IG1ldGFkYXRhLT5hdXRvZ2VuX2ZpbHRlcjsKKwlyZXAtPmNyZXEuYmFzZS5hcnJheV9zaXplID0g bWV0YWRhdGEtPmFycmF5X3NpemU7CiAJcmVwLT5jcmVxLmJhc2UuYnVmZmVyX2hhbmRsZSA9IGJh Y2t1cF9oYW5kbGU7Ci0JcmVwLT5jcmVxLmJhc2UuYmFzZV9zaXplID0gc3JmLT5iYXNlX3NpemU7 CisJcmVwLT5jcmVxLmJhc2UuYmFzZV9zaXplID0gbWV0YWRhdGEtPmJhc2Vfc2l6ZTsKIAlyZXAt PmNyZXAuaGFuZGxlID0gdXNlcl9zcmYtPnByaW1lLmJhc2UuaGFuZGxlOwogCXJlcC0+Y3JlcC5i YWNrdXBfc2l6ZSA9IHNyZi0+cmVzLmJhY2t1cF9zaXplOwogCXJlcC0+Y3JlcC5idWZmZXJfaGFu ZGxlID0gYmFja3VwX2hhbmRsZTsKQEAgLTE4MDgsOSArMTgxOCw5IEBAIHZtd19nYl9zdXJmYWNl X3JlZmVyZW5jZV9pbnRlcm5hbChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCiAJcmVwLT5jcmVx LnZlcnNpb24gPSBkcm1fdm13X2diX3N1cmZhY2VfdjE7CiAJcmVwLT5jcmVxLnN2Z2EzZF9mbGFn c191cHBlcl8zMl9iaXRzID0KLQkJU1ZHQTNEX0ZMQUdTX1VQUEVSXzMyKHNyZi0+ZmxhZ3MpOwot CXJlcC0+Y3JlcS5tdWx0aXNhbXBsZV9wYXR0ZXJuID0gc3JmLT5tdWx0aXNhbXBsZV9wYXR0ZXJu OwotCXJlcC0+Y3JlcS5xdWFsaXR5X2xldmVsID0gc3JmLT5xdWFsaXR5X2xldmVsOworCQlTVkdB M0RfRkxBR1NfVVBQRVJfMzIobWV0YWRhdGEtPmZsYWdzKTsKKwlyZXAtPmNyZXEubXVsdGlzYW1w bGVfcGF0dGVybiA9IG1ldGFkYXRhLT5tdWx0aXNhbXBsZV9wYXR0ZXJuOworCXJlcC0+Y3JlcS5x dWFsaXR5X2xldmVsID0gbWV0YWRhdGEtPnF1YWxpdHlfbGV2ZWw7CiAJcmVwLT5jcmVxLm11c3Rf YmVfemVybyA9IDA7CiAKIG91dF9iYWRfcmVzb3VyY2U6CkBAIC0xOTY4LDcgKzE5NzgsNyBAQCBz dGF0aWMgdm9pZCB2bXdfc3VyZmFjZV9kaXJ0eV9yYW5nZV9hZGQoc3RydWN0IHZtd19yZXNvdXJj ZSAqcmVzLCBzaXplX3Qgc3RhcnQsCiAJCSAgICBzdGFydCA+PSByZXMtPmJhY2t1cF9vZmZzZXQg KyByZXMtPmJhY2t1cF9zaXplKSkKIAkJcmV0dXJuOwogCi0JaWYgKHNyZi0+Zm9ybWF0ID09IFNW R0EzRF9CVUZGRVIpCisJaWYgKHNyZi0+bWV0YWRhdGEuZm9ybWF0ID09IFNWR0EzRF9CVUZGRVIp CiAJCXZtd19zdXJmYWNlX2J1Zl9kaXJ0eV9yYW5nZV9hZGQocmVzLCBzdGFydCwgZW5kKTsKIAll bHNlCiAJCXZtd19zdXJmYWNlX3RleF9kaXJ0eV9yYW5nZV9hZGQocmVzLCBzdGFydCwgZW5kKTsK QEAgLTIwNTgsNiArMjA2OCw3IEBAIHN0YXRpYyBpbnQgdm13X3N1cmZhY2VfZGlydHlfc3luYyhz dHJ1Y3Qgdm13X3Jlc291cmNlICpyZXMpCiBzdGF0aWMgaW50IHZtd19zdXJmYWNlX2RpcnR5X2Fs bG9jKHN0cnVjdCB2bXdfcmVzb3VyY2UgKnJlcykKIHsKIAlzdHJ1Y3Qgdm13X3N1cmZhY2UgKnNy ZiA9IHZtd19yZXNfdG9fc3JmKHJlcyk7CisJY29uc3Qgc3RydWN0IHZtd19zdXJmYWNlX21ldGFk YXRhICptZXRhZGF0YSA9ICZzcmYtPm1ldGFkYXRhOwogCXN0cnVjdCB2bXdfc3VyZmFjZV9kaXJ0 eSAqZGlydHk7CiAJdTMyIG51bV9sYXllcnMgPSAxOwogCXUzMiBudW1fbWlwOwpAQCAtMjA3MCwx MiArMjA4MSwxMiBAQCBzdGF0aWMgaW50IHZtd19zdXJmYWNlX2RpcnR5X2FsbG9jKHN0cnVjdCB2 bXdfcmVzb3VyY2UgKnJlcykKIAl9OwogCWludCByZXQ7CiAKLQlpZiAoc3JmLT5hcnJheV9zaXpl KQotCQludW1fbGF5ZXJzID0gc3JmLT5hcnJheV9zaXplOwotCWVsc2UgaWYgKHNyZi0+ZmxhZ3Mg JiBTVkdBM0RfU1VSRkFDRV9DVUJFTUFQKQorCWlmIChtZXRhZGF0YS0+YXJyYXlfc2l6ZSkKKwkJ bnVtX2xheWVycyA9IG1ldGFkYXRhLT5hcnJheV9zaXplOworCWVsc2UgaWYgKG1ldGFkYXRhLT5m bGFncyAmIFNWR0EzRF9TVVJGQUNFX0NVQkVNQVApCiAJCW51bV9sYXllcnMgKj0gU1ZHQTNEX01B WF9TVVJGQUNFX0ZBQ0VTOwogCi0JbnVtX21pcCA9IHNyZi0+bWlwX2xldmVsc1swXTsKKwludW1f bWlwID0gbWV0YWRhdGEtPm1pcF9sZXZlbHNbMF07CiAJaWYgKCFudW1fbWlwKQogCQludW1fbWlw ID0gMTsKIApAQCAtMjA5Niw5ICsyMTA3LDEwIEBAIHN0YXRpYyBpbnQgdm13X3N1cmZhY2VfZGly dHlfYWxsb2Moc3RydWN0IHZtd19yZXNvdXJjZSAqcmVzKQogCQlnb3RvIG91dF9ub19kaXJ0eTsK IAl9CiAKLQludW1fc2FtcGxlcyA9IG1heF90KHUzMiwgMSwgc3JmLT5tdWx0aXNhbXBsZV9jb3Vu dCk7Ci0JcmV0ID0gc3ZnYTNkc3VyZmFjZV9zZXR1cF9jYWNoZSgmc3JmLT5iYXNlX3NpemUsIHNy Zi0+Zm9ybWF0LCBudW1fbWlwLAotCQkJCQludW1fbGF5ZXJzLCBudW1fc2FtcGxlcywgJmRpcnR5 LT5jYWNoZSk7CisJbnVtX3NhbXBsZXMgPSBtYXhfdCh1MzIsIDEsIG1ldGFkYXRhLT5tdWx0aXNh bXBsZV9jb3VudCk7CisJcmV0ID0gc3ZnYTNkc3VyZmFjZV9zZXR1cF9jYWNoZSgmbWV0YWRhdGEt PmJhc2Vfc2l6ZSwgbWV0YWRhdGEtPmZvcm1hdCwKKwkJCQkJbnVtX21pcCwgbnVtX2xheWVycywg bnVtX3NhbXBsZXMsCisJCQkJCSZkaXJ0eS0+Y2FjaGUpOwogCWlmIChyZXQpCiAJCWdvdG8gb3V0 X25vX2NhY2hlOwogCi0tIAoyLjE3LjEKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZy ZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3Rp bmZvL2RyaS1kZXZlbAo=