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,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 2D2D4C4332D for ; Thu, 19 Mar 2020 20:25:20 +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 0132020776 for ; Thu, 19 Mar 2020 20:25:20 +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="Ccplv5n7" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 0132020776 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 432FD6EA76; Thu, 19 Mar 2020 20:25:14 +0000 (UTC) Received: from mail-lj1-x243.google.com (mail-lj1-x243.google.com [IPv6:2a00:1450:4864:20::243]) by gabe.freedesktop.org (Postfix) with ESMTPS id B22DE6EA73 for ; Thu, 19 Mar 2020 20:25:06 +0000 (UTC) Received: by mail-lj1-x243.google.com with SMTP id g12so4062735ljj.3 for ; Thu, 19 Mar 2020 13:25:06 -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=eF1Gkc8vCVETNfFf+XwPfOaxcnrQAmhNJcPiG1kgIHA=; b=Ccplv5n7Y8NHHZYBgNX+Fsea8Li1CvB7arEXEIwA9n0onXja2hivlzbwdoWVF98GWO 6v6stkzSu8HT4pPYE9Mqhyo9835a3Acl2S0pmHKnjhF8n9n0kmhrO8+uJGXnUcHgEw5Q QSFeyhaKRqnn87QSzwSDLxMFXC2mM2L6HYIYpR8vYtxgSd53RUfW6o9/xXD/iBcDy0Nh s17AZIblX7zL8BepSf2+dJMmzww/BD9sUb9I6pKA55/+oBv74Og2ZwR/L9lHNboYyONk E1M867T5+jz5xl3Ndq+RyGXkgr6ILZrnc4NbBk5s5aYWee6TYY1f7CAn5TS8g670Wk6D pLxA== 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=eF1Gkc8vCVETNfFf+XwPfOaxcnrQAmhNJcPiG1kgIHA=; b=OdR5yNg95YETaP1LyAXyu1dMUhsV5bO6L8w3eJRaqyhQLkZM/K3+PpZ9IujYvnmbJ+ j42w9XH9pnP5tkkn1gk/RbzXItCtsBdu2mWLPz0vpWgsWTaMeeDBnL+Px+sJmZiRoatO xXTxiyXu4AGEnwWgg3CG2X4TUspjjYfOJDJ3dYS279LYxWa0aOtVlDm5wYT3OasrEiyb 7aydgy53ZO91XOVYi3hJJOT6/e1mPQlyJ+YPFWhUK+g+IJOlt95fq8io9wuB7fPLkKBK 3i3tIOj+9EDU2jTKqCK9rTJv37MEWfZnAuXkx4WFQrJHGGv78QsmHIl/vQosWZ4YkpQJ 3GPw== X-Gm-Message-State: ANhLgQ1EgSQzjIuQuMNsQFYZf5MYaF/YpUMEe79akCU8BmXgmY1rOjZa DA12wYnQtJkT0gQFUKLanZWhp+xWTcI= X-Google-Smtp-Source: ADFU+vsO3Lm0p43xAXKBGxJ1OZFHjw8HJJzVm07jmvQRsBsskhzNR0aiMhFPFTYlo1eqAdA+B1R5+w== X-Received: by 2002:a2e:86ca:: with SMTP id n10mr3097401ljj.219.1584649503857; Thu, 19 Mar 2020 13:25:03 -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 v3sm2074372lfp.8.2020.03.19.13.25.02 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 19 Mar 2020 13:25:03 -0700 (PDT) From: rscheidegger.oss@gmail.com X-Google-Original-From: sroland@vmware.com To: dri-devel@lists.freedesktop.org Subject: [PATCH 13/17] drm/vmwgfx: Split surface metadata from struct vmw_surface Date: Thu, 19 Mar 2020 21:24:10 +0100 Message-Id: <20200319202414.9296-14-sroland@vmware.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200319202414.9296-1-sroland@vmware.com> References: <20200319202414.9296-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 bWFzX29zQHNoaXBtYWlsLm9yZz4KU2lnbmVkLW9mZi1ieTogUm9sYW5kIFNjaGVpZGVnZ2VyIChW TXdhcmUpIDxyc2NoZWlkZWdnZXIub3NzQGdtYWlsLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0v dm13Z2Z4L3Ztd2dmeF9kcnYuaCAgICAgfCAgNTYgKysrKy0tCiBkcml2ZXJzL2dwdS9kcm0vdm13 Z2Z4L3Ztd2dmeF9rbXMuYyAgICAgfCAgMTYgKy0KIGRyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13 Z2Z4X3N0ZHUuYyAgICB8ICA0NCArKystLQogZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhf c3VyZmFjZS5jIHwgMjQwICsrKysrKysrKysrKystLS0tLS0tLS0tLQogNCBmaWxlcyBjaGFuZ2Vk LCAyMDIgaW5zZXJ0aW9ucygrKSwgMTU0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92 bXdnZnhfZHJ2LmgKaW5kZXggNTY5NWUyNjU0MDhjLi5iNjlhZDRmM2RhN2EgMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2Rydi5oCisrKyBiL2RyaXZlcnMvZ3B1L2Ry bS92bXdnZngvdm13Z2Z4X2Rydi5oCkBAIC0yMjUsMjQgKzIyNSw1NiBAQCBzdHJ1Y3Qgdm13X2N1 cnNvcl9zbm9vcGVyIHsKIHN0cnVjdCB2bXdfZnJhbWVidWZmZXI7CiBzdHJ1Y3Qgdm13X3N1cmZh Y2Vfb2Zmc2V0OwogCi1zdHJ1Y3Qgdm13X3N1cmZhY2UgewotCXN0cnVjdCB2bXdfcmVzb3VyY2Ug cmVzOwotCVNWR0EzZFN1cmZhY2VBbGxGbGFncyBmbGFnczsKLQl1aW50MzJfdCBmb3JtYXQ7Ci0J dWludDMyX3QgbWlwX2xldmVsc1tEUk1fVk1XX01BWF9TVVJGQUNFX0ZBQ0VTXTsKKy8qKgorICog c3RydWN0IHZtd19zdXJmYWNlX21ldGFkYXRhIC0gTWV0YWRhdGEgZGVzY3JpYmluZyBhIHN1cmZh Y2UuCisgKgorICogQGZsYWdzOiBEZXZpY2UgZmxhZ3MuCisgKiBAZm9ybWF0OiBTdXJmYWNlIFNW R0EzRF94IGZvcm1hdC4KKyAqIEBtaXBfbGV2ZWxzOiBNaXAgbGV2ZWwgZm9yIGVhY2ggZmFjZS4g Rm9yIEdCIGZpcnN0IGluZGV4IGlzIHVzZWQgb25seS4KKyAqIEBtdWx0aXNhbXBsZV9jb3VudDog U2FtcGxlIGNvdW50LgorICogQG11bHRpc2FtcGxlX3BhdHRlcm46IFNhbXBsZSBwYXR0ZXJucy4K KyAqIEBxdWFsaXR5X2xldmVsOiBRdWFsaXR5IGxldmVsLgorICogQGF1dG9nZW5fZmlsdGVyOiBG aWx0ZXIgZm9yIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIG1pcG1hcHMuCisgKiBAYXJyYXlfc2l6 ZTogTnVtYmVyIG9mIGFycmF5IGVsZW1lbnRzIGZvciBhIDFELzJEIHRleHR1cmUuIEZvciBjdWJl bWFwCisgICAgICAgICAgICAgICAgdGV4dHVyZSBudW1iZXIgb2YgZmFjZXMgKiBhcnJheV9zaXpl LiBUaGlzIHNob3VsZCBiZSAwIGZvciBwcmUKKwkJU000IGRldmljZS4KKyAqIEBudW1fc2l6ZXM6 IFNpemUgb2YgQHNpemVzLiBGb3IgR0Igc3VyZmFjZSB0aGlzIHNob3VsZCBhbHdheXMgYmUgMS4K KyAqIEBiYXNlX3NpemU6IFN1cmZhY2UgZGltZW5zaW9uLgorICogQHNpemVzOiBBcnJheSByZXBy ZXNlbnRpbmcgbWlwIHNpemVzLiBMZWdhY3kgb25seS4KKyAqIEBzY2Fub3V0OiBXaGV0aGVyIHRo aXMgc3VyZmFjZSB3aWxsIGJlIHVzZWQgZm9yIHNjYW5vdXQuCisgKgorICogVGhpcyB0cmFja3Mg bWV0YWRhdGEgZm9yIGJvdGggbGVnYWN5IGFuZCBndWVzdCBiYWNrZWQgc3VyZmFjZS4KKyAqLwor c3RydWN0IHZtd19zdXJmYWNlX21ldGFkYXRhIHsKKwl1NjQgZmxhZ3M7CisJdTMyIGZvcm1hdDsK Kwl1MzIgbWlwX2xldmVsc1tEUk1fVk1XX01BWF9TVVJGQUNFX0ZBQ0VTXTsKKwl1MzIgbXVsdGlz YW1wbGVfY291bnQ7CisJdTMyIG11bHRpc2FtcGxlX3BhdHRlcm47CisJdTMyIHF1YWxpdHlfbGV2 ZWw7CisJdTMyIGF1dG9nZW5fZmlsdGVyOworCXUzMiBhcnJheV9zaXplOworCXUzMiBudW1fc2l6 ZXM7CiAJc3RydWN0IGRybV92bXdfc2l6ZSBiYXNlX3NpemU7CiAJc3RydWN0IGRybV92bXdfc2l6 ZSAqc2l6ZXM7Ci0JdWludDMyX3QgbnVtX3NpemVzOwogCWJvb2wgc2Nhbm91dDsKLQl1aW50MzJf dCBhcnJheV9zaXplOwotCS8qIFRPRE8gc28gZmFyIGp1c3QgYSBleHRyYSBwb2ludGVyICovCit9 OworCisvKioKKyAqIHN0cnVjdCB2bXdfc3VyZmFjZTogUmVzb3VyY2Ugc3RydWN0dXJlIGZvciBh IHN1cmZhY2UuCisgKgorICogQHJlczogVGhlIGJhc2UgcmVzb3VyY2UgZm9yIHRoaXMgc3VyZmFj ZS4KKyAqIEBtZXRhZGF0YTogTWV0YWRhdGEgZm9yIHRoaXMgc3VyZmFjZSByZXNvdXJjZS4KKyAq IEBzbm9vcGVyOiBDdXJzb3IgZGF0YS4gTGVnYWN5IHN1cmZhY2Ugb25seS4KKyAqIEBvZmZzZXRz OiBMZWdhY3kgc3VyZmFjZSBvbmx5LgorICogQHZpZXdfbGlzdDogTGlzdCBvZiB2aWV3cyBib3Vu ZCB0byB0aGlzIHN1cmZhY2UuCisgKi8KK3N0cnVjdCB2bXdfc3VyZmFjZSB7CisJc3RydWN0IHZt d19yZXNvdXJjZSByZXM7CisJc3RydWN0IHZtd19zdXJmYWNlX21ldGFkYXRhIG1ldGFkYXRhOwog CXN0cnVjdCB2bXdfY3Vyc29yX3Nub29wZXIgc25vb3BlcjsKIAlzdHJ1Y3Qgdm13X3N1cmZhY2Vf b2Zmc2V0ICpvZmZzZXRzOwotCVNWR0EzZFRleHR1cmVGaWx0ZXIgYXV0b2dlbl9maWx0ZXI7Ci0J dWludDMyX3QgbXVsdGlzYW1wbGVfY291bnQ7CiAJc3RydWN0IGxpc3RfaGVhZCB2aWV3X2xpc3Q7 Ci0JU1ZHQTNkTVNQYXR0ZXJuIG11bHRpc2FtcGxlX3BhdHRlcm47Ci0JU1ZHQTNkTVNRdWFsaXR5 TGV2ZWwgcXVhbGl0eV9sZXZlbDsKIH07CiAKIHN0cnVjdCB2bXdfbWFya2VyX3F1ZXVlIHsKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2ttcy5jIGIvZHJpdmVycy9n cHUvZHJtL3Ztd2dmeC92bXdnZnhfa21zLmMKaW5kZXggMzEzZjAzNDJlZGZlLi5hOWU0OWY4OTc0 NzYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2ttcy5jCisrKyBi L2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2ttcy5jCkBAIC05MDUsMTQgKzkwNSwxNCBA QCBzdGF0aWMgaW50IHZtd19rbXNfbmV3X2ZyYW1lYnVmZmVyX3N1cmZhY2Uoc3RydWN0IHZtd19w cml2YXRlICpkZXZfcHJpdiwKIAkgKi8KIAogCS8qIFN1cmZhY2UgbXVzdCBiZSBtYXJrZWQgYXMg YSBzY2Fub3V0LiAqLwotCWlmICh1bmxpa2VseSghc3VyZmFjZS0+c2Nhbm91dCkpCisJaWYgKHVu bGlrZWx5KCFzdXJmYWNlLT5tZXRhZGF0YS5zY2Fub3V0KSkKIAkJcmV0dXJuIC1FSU5WQUw7CiAK LQlpZiAodW5saWtlbHkoc3VyZmFjZS0+bWlwX2xldmVsc1swXSAhPSAxIHx8Ci0JCSAgICAgc3Vy ZmFjZS0+bnVtX3NpemVzICE9IDEgfHwKLQkJICAgICBzdXJmYWNlLT5iYXNlX3NpemUud2lkdGgg PCBtb2RlX2NtZC0+d2lkdGggfHwKLQkJICAgICBzdXJmYWNlLT5iYXNlX3NpemUuaGVpZ2h0IDwg bW9kZV9jbWQtPmhlaWdodCB8fAotCQkgICAgIHN1cmZhY2UtPmJhc2Vfc2l6ZS5kZXB0aCAhPSAx KSkgeworCWlmICh1bmxpa2VseShzdXJmYWNlLT5tZXRhZGF0YS5taXBfbGV2ZWxzWzBdICE9IDEg fHwKKwkJICAgICBzdXJmYWNlLT5tZXRhZGF0YS5udW1fc2l6ZXMgIT0gMSB8fAorCQkgICAgIHN1 cmZhY2UtPm1ldGFkYXRhLmJhc2Vfc2l6ZS53aWR0aCA8IG1vZGVfY21kLT53aWR0aCB8fAorCQkg ICAgIHN1cmZhY2UtPm1ldGFkYXRhLmJhc2Vfc2l6ZS5oZWlnaHQgPCBtb2RlX2NtZC0+aGVpZ2h0 IHx8CisJCSAgICAgc3VyZmFjZS0+bWV0YWRhdGEuYmFzZV9zaXplLmRlcHRoICE9IDEpKSB7CiAJ CURSTV9FUlJPUigiSW5jb21wYXRpYmxlIHN1cmZhY2UgZGltZW5zaW9ucyAiCiAJCQkgICJmb3Ig cmVxdWVzdGVkIG1vZGUuXG4iKTsKIAkJcmV0dXJuIC1FSU5WQUw7CkBAIC05NDEsNyArOTQxLDcg QEAgc3RhdGljIGludCB2bXdfa21zX25ld19mcmFtZWJ1ZmZlcl9zdXJmYWNlKHN0cnVjdCB2bXdf cHJpdmF0ZSAqZGV2X3ByaXYsCiAJICogRm9yIERYLCBzdXJmYWNlIGZvcm1hdCB2YWxpZGF0aW9u IGlzIGRvbmUgd2hlbiBzdXJmYWNlLT5zY2Fub3V0CiAJICogaXMgc2V0LgogCSAqLwotCWlmICgh aGFzX3NtNF9jb250ZXh0KGRldl9wcml2KSAmJiBmb3JtYXQgIT0gc3VyZmFjZS0+Zm9ybWF0KSB7 CisJaWYgKCFoYXNfc200X2NvbnRleHQoZGV2X3ByaXYpICYmIGZvcm1hdCAhPSBzdXJmYWNlLT5t ZXRhZGF0YS5mb3JtYXQpIHsKIAkJRFJNX0VSUk9SKCJJbnZhbGlkIHN1cmZhY2UgZm9ybWF0IGZv ciByZXF1ZXN0ZWQgbW9kZS5cbiIpOwogCQlyZXR1cm4gLUVJTlZBTDsKIAl9CkBAIC0yNTk3LDcg KzI1OTcsNyBAQCBpbnQgdm13X2ttc191cGRhdGVfcHJveHkoc3RydWN0IHZtd19yZXNvdXJjZSAq cmVzLAogCQkJIGludCBpbmNyZW1lbnQpCiB7CiAJc3RydWN0IHZtd19wcml2YXRlICpkZXZfcHJp diA9IHJlcy0+ZGV2X3ByaXY7Ci0Jc3RydWN0IGRybV92bXdfc2l6ZSAqc2l6ZSA9ICZ2bXdfcmVz X3RvX3NyZihyZXMpLT5iYXNlX3NpemU7CisJc3RydWN0IGRybV92bXdfc2l6ZSAqc2l6ZSA9ICZ2 bXdfcmVzX3RvX3NyZihyZXMpLT5tZXRhZGF0YS5iYXNlX3NpemU7CiAJc3RydWN0IHsKIAkJU1ZH QTNkQ21kSGVhZGVyIGhlYWRlcjsKIAkJU1ZHQTNkQ21kVXBkYXRlR0JJbWFnZSBib2R5OwpkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfc3RkdS5jIGIvZHJpdmVycy9n cHUvZHJtL3Ztd2dmeC92bXdnZnhfc3RkdS5jCmluZGV4IDk3YTNhYmE4ZGQzYS4uZjMxNTdkZWE5 NmRjIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9zdGR1LmMKKysr IGIvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfc3RkdS5jCkBAIC01OTAsNyArNTkwLDcg QEAgc3RhdGljIHZvaWQgdm13X3N0ZHVfYm9fY3B1X2NvbW1pdChzdHJ1Y3Qgdm13X2ttc19kaXJ0 eSAqZGlydHkpCiAJCXJldHVybjsKIAogCS8qIEFzc3VtZSB3ZSBhcmUgYmxpdHRpbmcgZnJvbSBH dWVzdCAoYm8pIHRvIEhvc3QgKGRpc3BsYXlfc3JmKSAqLwotCWRzdF9waXRjaCA9IHN0ZHUtPmRp c3BsYXlfc3JmLT5iYXNlX3NpemUud2lkdGggKiBzdGR1LT5jcHA7CisJZHN0X3BpdGNoID0gc3Rk dS0+ZGlzcGxheV9zcmYtPm1ldGFkYXRhLmJhc2Vfc2l6ZS53aWR0aCAqIHN0ZHUtPmNwcDsKIAlk c3RfYm8gPSAmc3RkdS0+ZGlzcGxheV9zcmYtPnJlcy5iYWNrdXAtPmJhc2U7CiAJZHN0X29mZnNl dCA9IGRkaXJ0eS0+dG9wICogZHN0X3BpdGNoICsgZGRpcnR5LT5sZWZ0ICogc3RkdS0+Y3BwOwog CkBAIC0xMDU1LDggKzEwNTUsOSBAQCB2bXdfc3RkdV9wcmltYXJ5X3BsYW5lX3ByZXBhcmVfZmIo c3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCiAJdmZiID0gdm13X2ZyYW1lYnVmZmVyX3RvX3ZmYihu ZXdfZmIpOwogCW5ld192ZmJzID0gKHZmYi0+Ym8pID8gTlVMTCA6IHZtd19mcmFtZWJ1ZmZlcl90 b192ZmJzKG5ld19mYik7CiAKLQlpZiAobmV3X3ZmYnMgJiYgbmV3X3ZmYnMtPnN1cmZhY2UtPmJh c2Vfc2l6ZS53aWR0aCA9PSBoZGlzcGxheSAmJgotCSAgICBuZXdfdmZicy0+c3VyZmFjZS0+YmFz ZV9zaXplLmhlaWdodCA9PSB2ZGlzcGxheSkKKwlpZiAobmV3X3ZmYnMgJiYKKwkgICAgbmV3X3Zm YnMtPnN1cmZhY2UtPm1ldGFkYXRhLmJhc2Vfc2l6ZS53aWR0aCA9PSBoZGlzcGxheSAmJgorCSAg ICBuZXdfdmZicy0+c3VyZmFjZS0+bWV0YWRhdGEuYmFzZV9zaXplLmhlaWdodCA9PSB2ZGlzcGxh eSkKIAkJbmV3X2NvbnRlbnRfdHlwZSA9IFNBTUVfQVNfRElTUExBWTsKIAllbHNlIGlmICh2ZmIt PmJvKQogCQluZXdfY29udGVudF90eXBlID0gU0VQQVJBVEVfQk87CkBAIC0xMDc5LDE1ICsxMDgw LDE1IEBAIHZtd19zdGR1X3ByaW1hcnlfcGxhbmVfcHJlcGFyZV9mYihzdHJ1Y3QgZHJtX3BsYW5l ICpwbGFuZSwKIAogCQkJc3dpdGNoIChuZXdfZmItPmZvcm1hdC0+Y3BwWzBdKjgpIHsKIAkJCWNh c2UgMzI6Ci0JCQkJY29udGVudF9zcmYuZm9ybWF0ID0gU1ZHQTNEX1g4UjhHOEI4OworCQkJCWNv bnRlbnRfc3JmLm1ldGFkYXRhLmZvcm1hdCA9IFNWR0EzRF9YOFI4RzhCODsKIAkJCQlicmVhazsK IAogCQkJY2FzZSAxNjoKLQkJCQljb250ZW50X3NyZi5mb3JtYXQgPSBTVkdBM0RfUjVHNkI1Owor CQkJCWNvbnRlbnRfc3JmLm1ldGFkYXRhLmZvcm1hdCA9IFNWR0EzRF9SNUc2QjU7CiAJCQkJYnJl YWs7CiAKIAkJCWNhc2UgODoKLQkJCQljb250ZW50X3NyZi5mb3JtYXQgPSBTVkdBM0RfUDg7CisJ CQkJY29udGVudF9zcmYubWV0YWRhdGEuZm9ybWF0ID0gU1ZHQTNEX1A4OwogCQkJCWJyZWFrOwog CiAJCQlkZWZhdWx0OgpAQCAtMTA5NSwyMiArMTA5NiwyNSBAQCB2bXdfc3RkdV9wcmltYXJ5X3Bs YW5lX3ByZXBhcmVfZmIoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCiAJCQkJcmV0dXJuIC1FSU5W QUw7CiAJCQl9CiAKLQkJCWNvbnRlbnRfc3JmLmZsYWdzICAgICAgICAgICAgID0gMDsKLQkJCWNv bnRlbnRfc3JmLm1pcF9sZXZlbHNbMF0gICAgID0gMTsKLQkJCWNvbnRlbnRfc3JmLm11bHRpc2Ft cGxlX2NvdW50ID0gMDsKLQkJCWNvbnRlbnRfc3JmLm11bHRpc2FtcGxlX3BhdHRlcm4gPQorCQkJ Y29udGVudF9zcmYubWV0YWRhdGEuZmxhZ3MgPSAwOworCQkJY29udGVudF9zcmYubWV0YWRhdGEu bWlwX2xldmVsc1swXSA9IDE7CisJCQljb250ZW50X3NyZi5tZXRhZGF0YS5tdWx0aXNhbXBsZV9j b3VudCA9IDA7CisJCQljb250ZW50X3NyZi5tZXRhZGF0YS5tdWx0aXNhbXBsZV9wYXR0ZXJuID0K IAkJCQlTVkdBM0RfTVNfUEFUVEVSTl9OT05FOwotCQkJY29udGVudF9zcmYucXVhbGl0eV9sZXZl bCA9IFNWR0EzRF9NU19RVUFMSVRZX05PTkU7CisJCQljb250ZW50X3NyZi5tZXRhZGF0YS5xdWFs aXR5X2xldmVsID0KKwkJCQlTVkdBM0RfTVNfUVVBTElUWV9OT05FOwogCQl9IGVsc2UgewogCQkJ Y29udGVudF9zcmYgPSAqbmV3X3ZmYnMtPnN1cmZhY2U7CiAJCX0KIAogCQlpZiAodnBzLT5zdXJm KSB7Ci0JCQlzdHJ1Y3QgZHJtX3Ztd19zaXplIGN1cl9iYXNlX3NpemUgPSB2cHMtPnN1cmYtPmJh c2Vfc2l6ZTsKKwkJCXN0cnVjdCBkcm1fdm13X3NpemUgY3VyX2Jhc2Vfc2l6ZSA9CisJCQkJdnBz LT5zdXJmLT5tZXRhZGF0YS5iYXNlX3NpemU7CiAKIAkJCWlmIChjdXJfYmFzZV9zaXplLndpZHRo ICE9IGRpc3BsYXlfYmFzZV9zaXplLndpZHRoIHx8CiAJCQkgICAgY3VyX2Jhc2Vfc2l6ZS5oZWln aHQgIT0gZGlzcGxheV9iYXNlX3NpemUuaGVpZ2h0IHx8Ci0JCQkgICAgdnBzLT5zdXJmLT5mb3Jt YXQgIT0gY29udGVudF9zcmYuZm9ybWF0KSB7CisJCQkgICAgdnBzLT5zdXJmLT5tZXRhZGF0YS5m b3JtYXQgIT0KKwkJCSAgICBjb250ZW50X3NyZi5tZXRhZGF0YS5mb3JtYXQpIHsKIAkJCQlXQVJO X09OKHZwcy0+cGlubmVkICE9IDApOwogCQkJCXZtd19zdXJmYWNlX3VucmVmZXJlbmNlKCZ2cHMt PnN1cmYpOwogCQkJfQpAQCAtMTEyMiwxNSArMTEyNiwxNSBAQCB2bXdfc3RkdV9wcmltYXJ5X3Bs YW5lX3ByZXBhcmVfZmIoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCiAJCQkJKGNydGMtPmRldiwK IAkJCQkgLyogS2VybmVsIHZpc2libGUgb25seSAqLwogCQkJCSAwLAotCQkJCSBjb250ZW50X3Ny Zi5mbGFncywKLQkJCQkgY29udGVudF9zcmYuZm9ybWF0LAorCQkJCSBjb250ZW50X3NyZi5tZXRh ZGF0YS5mbGFncywKKwkJCQkgY29udGVudF9zcmYubWV0YWRhdGEuZm9ybWF0LAogCQkJCSB0cnVl LCAgLyogYSBzY2Fub3V0IGJ1ZmZlciAqLwotCQkJCSBjb250ZW50X3NyZi5taXBfbGV2ZWxzWzBd LAotCQkJCSBjb250ZW50X3NyZi5tdWx0aXNhbXBsZV9jb3VudCwKKwkJCQkgY29udGVudF9zcmYu bWV0YWRhdGEubWlwX2xldmVsc1swXSwKKwkJCQkgY29udGVudF9zcmYubWV0YWRhdGEubXVsdGlz YW1wbGVfY291bnQsCiAJCQkJIDAsCiAJCQkJIGRpc3BsYXlfYmFzZV9zaXplLAotCQkJCSBjb250 ZW50X3NyZi5tdWx0aXNhbXBsZV9wYXR0ZXJuLAotCQkJCSBjb250ZW50X3NyZi5xdWFsaXR5X2xl dmVsLAorCQkJCSBjb250ZW50X3NyZi5tZXRhZGF0YS5tdWx0aXNhbXBsZV9wYXR0ZXJuLAorCQkJ CSBjb250ZW50X3NyZi5tZXRhZGF0YS5xdWFsaXR5X2xldmVsLAogCQkJCSAmdnBzLT5zdXJmKTsK IAkJCWlmIChyZXQgIT0gMCkgewogCQkJCURSTV9FUlJPUigiQ291bGRuJ3QgYWxsb2NhdGUgU1RE VSBzdXJmYWNlLlxuIik7CkBAIC0xMzA4LDcgKzEzMTIsNyBAQCB2bXdfc3RkdV9ib19wb3B1bGF0 ZV91cGRhdGVfY3B1KHN0cnVjdCB2bXdfZHVfdXBkYXRlX3BsYW5lICAqdXBkYXRlLCB2b2lkICpj bWQsCiAJZGlmZi5jcHAgPSBzdGR1LT5jcHA7CiAKIAlkc3RfYm8gPSAmc3RkdS0+ZGlzcGxheV9z cmYtPnJlcy5iYWNrdXAtPmJhc2U7Ci0JZHN0X3BpdGNoID0gc3RkdS0+ZGlzcGxheV9zcmYtPmJh c2Vfc2l6ZS53aWR0aCAqIHN0ZHUtPmNwcDsKKwlkc3RfcGl0Y2ggPSBzdGR1LT5kaXNwbGF5X3Ny Zi0+bWV0YWRhdGEuYmFzZV9zaXplLndpZHRoICogc3RkdS0+Y3BwOwogCWRzdF9vZmZzZXQgPSBi Yi0+eTEgKiBkc3RfcGl0Y2ggKyBiYi0+eDEgKiBzdGR1LT5jcHA7CiAKIAlzcmNfYm8gPSAmdmZi Ym8tPmJ1ZmZlci0+YmFzZTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13 Z2Z4X3N1cmZhY2UuYyBiL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X3N1cmZhY2UuYwpp bmRleCAyYTkxNWJkZDRiNTIuLmViZjEyZjliODdjYSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUv ZHJtL3Ztd2dmeC92bXdnZnhfc3VyZmFjZS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS92bXdnZngv dm13Z2Z4X3N1cmZhY2UuYwpAQCAtMTk5LDcgKzE5OSw3IEBAIHN0cnVjdCB2bXdfc3VyZmFjZV9k ZXN0cm95IHsKICAqLwogc3RhdGljIGlubGluZSB1aW50MzJfdCB2bXdfc3VyZmFjZV9kbWFfc2l6 ZShjb25zdCBzdHJ1Y3Qgdm13X3N1cmZhY2UgKnNyZikKIHsKLQlyZXR1cm4gc3JmLT5udW1fc2l6 ZXMgKiBzaXplb2Yoc3RydWN0IHZtd19zdXJmYWNlX2RtYSk7CisJcmV0dXJuIHNyZi0+bWV0YWRh dGEubnVtX3NpemVzICogc2l6ZW9mKHN0cnVjdCB2bXdfc3VyZmFjZV9kbWEpOwogfQogCiAKQEAg LTIxMyw3ICsyMTMsNyBAQCBzdGF0aWMgaW5saW5lIHVpbnQzMl90IHZtd19zdXJmYWNlX2RtYV9z aXplKGNvbnN0IHN0cnVjdCB2bXdfc3VyZmFjZSAqc3JmKQogICovCiBzdGF0aWMgaW5saW5lIHVp bnQzMl90IHZtd19zdXJmYWNlX2RlZmluZV9zaXplKGNvbnN0IHN0cnVjdCB2bXdfc3VyZmFjZSAq c3JmKQogewotCXJldHVybiBzaXplb2Yoc3RydWN0IHZtd19zdXJmYWNlX2RlZmluZSkgKyBzcmYt Pm51bV9zaXplcyAqCisJcmV0dXJuIHNpemVvZihzdHJ1Y3Qgdm13X3N1cmZhY2VfZGVmaW5lKSAr IHNyZi0+bWV0YWRhdGEubnVtX3NpemVzICoKIAkJc2l6ZW9mKFNWR0EzZFNpemUpOwogfQogCkBA IC0yNjIsNyArMjYyLDggQEAgc3RhdGljIHZvaWQgdm13X3N1cmZhY2VfZGVmaW5lX2VuY29kZShj b25zdCBzdHJ1Y3Qgdm13X3N1cmZhY2UgKnNyZiwKIAl1aW50MzJfdCBjbWRfbGVuOwogCWludCBp OwogCi0JY21kX2xlbiA9IHNpemVvZihjbWQtPmJvZHkpICsgc3JmLT5udW1fc2l6ZXMgKiBzaXpl b2YoU1ZHQTNkU2l6ZSk7CisJY21kX2xlbiA9IHNpemVvZihjbWQtPmJvZHkpICsgc3JmLT5tZXRh ZGF0YS5udW1fc2l6ZXMgKgorCQlzaXplb2YoU1ZHQTNkU2l6ZSk7CiAKIAljbWQtPmhlYWRlci5p ZCA9IFNWR0FfM0RfQ01EX1NVUkZBQ0VfREVGSU5FOwogCWNtZC0+aGVhZGVyLnNpemUgPSBjbWRf bGVuOwpAQCAtMjcyLDE2ICsyNzMsMTYgQEAgc3RhdGljIHZvaWQgdm13X3N1cmZhY2VfZGVmaW5l X2VuY29kZShjb25zdCBzdHJ1Y3Qgdm13X3N1cmZhY2UgKnNyZiwKIAkgKiBzaW5jZSBkcml2ZXIg aW50ZXJuYWxseSBzdG9yZXMgYXMgNjQgYml0LgogCSAqIEZvciBsZWdhY3kgc3VyZmFjZSBkZWZp bmUgb25seSAzMiBiaXQgZmxhZyBpcyBzdXBwb3J0ZWQuCiAJICovCi0JY21kLT5ib2R5LnN1cmZh Y2VGbGFncyA9IChTVkdBM2RTdXJmYWNlMUZsYWdzKXNyZi0+ZmxhZ3M7Ci0JY21kLT5ib2R5LmZv cm1hdCA9IHNyZi0+Zm9ybWF0OworCWNtZC0+Ym9keS5zdXJmYWNlRmxhZ3MgPSAoU1ZHQTNkU3Vy ZmFjZTFGbGFncylzcmYtPm1ldGFkYXRhLmZsYWdzOworCWNtZC0+Ym9keS5mb3JtYXQgPSBzcmYt Pm1ldGFkYXRhLmZvcm1hdDsKIAlmb3IgKGkgPSAwOyBpIDwgRFJNX1ZNV19NQVhfU1VSRkFDRV9G QUNFUzsgKytpKQotCQljbWQtPmJvZHkuZmFjZVtpXS5udW1NaXBMZXZlbHMgPSBzcmYtPm1pcF9s ZXZlbHNbaV07CisJCWNtZC0+Ym9keS5mYWNlW2ldLm51bU1pcExldmVscyA9IHNyZi0+bWV0YWRh dGEubWlwX2xldmVsc1tpXTsKIAogCWNtZCArPSAxOwogCWNtZF9zaXplID0gKFNWR0EzZFNpemUg KikgY21kOwotCXNyY19zaXplID0gc3JmLT5zaXplczsKKwlzcmNfc2l6ZSA9IHNyZi0+bWV0YWRh dGEuc2l6ZXM7CiAKLQlmb3IgKGkgPSAwOyBpIDwgc3JmLT5udW1fc2l6ZXM7ICsraSwgY21kX3Np emUrKywgc3JjX3NpemUrKykgeworCWZvciAoaSA9IDA7IGkgPCBzcmYtPm1ldGFkYXRhLm51bV9z aXplczsgKytpLCBjbWRfc2l6ZSsrLCBzcmNfc2l6ZSsrKSB7CiAJCWNtZF9zaXplLT53aWR0aCA9 IHNyY19zaXplLT53aWR0aDsKIAkJY21kX3NpemUtPmhlaWdodCA9IHNyY19zaXplLT5oZWlnaHQ7 CiAJCWNtZF9zaXplLT5kZXB0aCA9IHNyY19zaXplLT5kZXB0aDsKQEAgLTMwNSwxNSArMzA2LDE1 IEBAIHN0YXRpYyB2b2lkIHZtd19zdXJmYWNlX2RtYV9lbmNvZGUoc3RydWN0IHZtd19zdXJmYWNl ICpzcmYsCiAJdWludDMyX3QgaTsKIAlzdHJ1Y3Qgdm13X3N1cmZhY2VfZG1hICpjbWQgPSAoc3Ry dWN0IHZtd19zdXJmYWNlX2RtYSAqKWNtZF9zcGFjZTsKIAljb25zdCBzdHJ1Y3Qgc3ZnYTNkX3N1 cmZhY2VfZGVzYyAqZGVzYyA9Ci0JCXN2Z2EzZHN1cmZhY2VfZ2V0X2Rlc2Moc3JmLT5mb3JtYXQp OworCQlzdmdhM2RzdXJmYWNlX2dldF9kZXNjKHNyZi0+bWV0YWRhdGEuZm9ybWF0KTsKIAotCWZv ciAoaSA9IDA7IGkgPCBzcmYtPm51bV9zaXplczsgKytpKSB7CisJZm9yIChpID0gMDsgaSA8IHNy Zi0+bWV0YWRhdGEubnVtX3NpemVzOyArK2kpIHsKIAkJU1ZHQTNkQ21kSGVhZGVyICpoZWFkZXIg PSAmY21kLT5oZWFkZXI7CiAJCVNWR0EzZENtZFN1cmZhY2VETUEgKmJvZHkgPSAmY21kLT5ib2R5 OwogCQlTVkdBM2RDb3B5Qm94ICpjYiA9ICZjbWQtPmNiOwogCQlTVkdBM2RDbWRTdXJmYWNlRE1B U3VmZml4ICpzdWZmaXggPSAmY21kLT5zdWZmaXg7CiAJCWNvbnN0IHN0cnVjdCB2bXdfc3VyZmFj ZV9vZmZzZXQgKmN1cl9vZmZzZXQgPSAmc3JmLT5vZmZzZXRzW2ldOwotCQljb25zdCBzdHJ1Y3Qg ZHJtX3Ztd19zaXplICpjdXJfc2l6ZSA9ICZzcmYtPnNpemVzW2ldOworCQljb25zdCBzdHJ1Y3Qg ZHJtX3Ztd19zaXplICpjdXJfc2l6ZSA9ICZzcmYtPm1ldGFkYXRhLnNpemVzW2ldOwogCiAJCWhl YWRlci0+aWQgPSBTVkdBXzNEX0NNRF9TVVJGQUNFX0RNQTsKIAkJaGVhZGVyLT5zaXplID0gc2l6 ZW9mKCpib2R5KSArIHNpemVvZigqY2IpICsgc2l6ZW9mKCpzdWZmaXgpOwpAQCAtNjY5LDcgKzY3 MCw3IEBAIHN0YXRpYyB2b2lkIHZtd191c2VyX3N1cmZhY2VfZnJlZShzdHJ1Y3Qgdm13X3Jlc291 cmNlICpyZXMpCiAJaWYgKHVzZXJfc3JmLT5tYXN0ZXIpCiAJCWRybV9tYXN0ZXJfcHV0KCZ1c2Vy X3NyZi0+bWFzdGVyKTsKIAlrZnJlZShzcmYtPm9mZnNldHMpOwotCWtmcmVlKHNyZi0+c2l6ZXMp OworCWtmcmVlKHNyZi0+bWV0YWRhdGEuc2l6ZXMpOwogCWtmcmVlKHNyZi0+c25vb3Blci5pbWFn ZSk7CiAJdHRtX3ByaW1lX29iamVjdF9rZnJlZSh1c2VyX3NyZiwgcHJpbWUpOwogCXR0bV9tZW1f Z2xvYmFsX2ZyZWUodm13X21lbV9nbG9iKGRldl9wcml2KSwgc2l6ZSk7CkBAIC03MjgsNiArNzI5 LDcgQEAgaW50IHZtd19zdXJmYWNlX2RlZmluZV9pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 LCB2b2lkICpkYXRhLAogCXN0cnVjdCB2bXdfcHJpdmF0ZSAqZGV2X3ByaXYgPSB2bXdfcHJpdihk ZXYpOwogCXN0cnVjdCB2bXdfdXNlcl9zdXJmYWNlICp1c2VyX3NyZjsKIAlzdHJ1Y3Qgdm13X3N1 cmZhY2UgKnNyZjsKKwlzdHJ1Y3Qgdm13X3N1cmZhY2VfbWV0YWRhdGEgKm1ldGFkYXRhOwogCXN0 cnVjdCB2bXdfcmVzb3VyY2UgKnJlczsKIAlzdHJ1Y3Qgdm13X3Jlc291cmNlICp0bXA7CiAJdW5p b24gZHJtX3Ztd19zdXJmYWNlX2NyZWF0ZV9hcmcgKmFyZyA9CkBAIC03OTMsNDMgKzc5NSw0NSBA QCBpbnQgdm13X3N1cmZhY2VfZGVmaW5lX2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZv aWQgKmRhdGEsCiAJfQogCiAJc3JmID0gJnVzZXJfc3JmLT5zcmY7CisJbWV0YWRhdGEgPSAmc3Jm LT5tZXRhZGF0YTsKIAlyZXMgPSAmc3JmLT5yZXM7CiAKIAkvKiBEcml2ZXIgaW50ZXJuYWxseSBz dG9yZXMgYXMgNjQtYml0IGZsYWdzICovCi0Jc3JmLT5mbGFncyA9IChTVkdBM2RTdXJmYWNlQWxs RmxhZ3MpcmVxLT5mbGFnczsKLQlzcmYtPmZvcm1hdCA9IHJlcS0+Zm9ybWF0OwotCXNyZi0+c2Nh bm91dCA9IHJlcS0+c2Nhbm91dDsKKwltZXRhZGF0YS0+ZmxhZ3MgPSAoU1ZHQTNkU3VyZmFjZUFs bEZsYWdzKXJlcS0+ZmxhZ3M7CisJbWV0YWRhdGEtPmZvcm1hdCA9IHJlcS0+Zm9ybWF0OworCW1l dGFkYXRhLT5zY2Fub3V0ID0gcmVxLT5zY2Fub3V0OwogCi0JbWVtY3B5KHNyZi0+bWlwX2xldmVs cywgcmVxLT5taXBfbGV2ZWxzLCBzaXplb2Yoc3JmLT5taXBfbGV2ZWxzKSk7Ci0Jc3JmLT5udW1f c2l6ZXMgPSBudW1fc2l6ZXM7CisJbWVtY3B5KG1ldGFkYXRhLT5taXBfbGV2ZWxzLCByZXEtPm1p cF9sZXZlbHMsCisJICAgICAgIHNpemVvZihtZXRhZGF0YS0+bWlwX2xldmVscykpOworCW1ldGFk YXRhLT5udW1fc2l6ZXMgPSBudW1fc2l6ZXM7CiAJdXNlcl9zcmYtPnNpemUgPSBzaXplOwotCXNy Zi0+c2l6ZXMgPSBtZW1kdXBfdXNlcigoc3RydWN0IGRybV92bXdfc2l6ZSBfX3VzZXIgKikodW5z aWduZWQgbG9uZykKLQkJCQkgcmVxLT5zaXplX2FkZHIsCi0JCQkJIHNpemVvZigqc3JmLT5zaXpl cykgKiBzcmYtPm51bV9zaXplcyk7Ci0JaWYgKElTX0VSUihzcmYtPnNpemVzKSkgewotCQlyZXQg PSBQVFJfRVJSKHNyZi0+c2l6ZXMpOworCW1ldGFkYXRhLT5zaXplcyA9CisJCW1lbWR1cF91c2Vy KChzdHJ1Y3QgZHJtX3Ztd19zaXplIF9fdXNlciAqKSh1bnNpZ25lZCBsb25nKQorCQkJICAgIHJl cS0+c2l6ZV9hZGRyLAorCQkJICAgIHNpemVvZigqbWV0YWRhdGEtPnNpemVzKSAqIG1ldGFkYXRh LT5udW1fc2l6ZXMpOworCWlmIChJU19FUlIobWV0YWRhdGEtPnNpemVzKSkgeworCQlyZXQgPSBQ VFJfRVJSKG1ldGFkYXRhLT5zaXplcyk7CiAJCWdvdG8gb3V0X25vX3NpemVzOwogCX0KLQlzcmYt Pm9mZnNldHMgPSBrbWFsbG9jX2FycmF5KHNyZi0+bnVtX3NpemVzLAotCQkJCSAgICAgc2l6ZW9m KCpzcmYtPm9mZnNldHMpLAorCXNyZi0+b2Zmc2V0cyA9IGttYWxsb2NfYXJyYXkobWV0YWRhdGEt Pm51bV9zaXplcywgc2l6ZW9mKCpzcmYtPm9mZnNldHMpLAogCQkJCSAgICAgR0ZQX0tFUk5FTCk7 CiAJaWYgKHVubGlrZWx5KCFzcmYtPm9mZnNldHMpKSB7CiAJCXJldCA9IC1FTk9NRU07CiAJCWdv dG8gb3V0X25vX29mZnNldHM7CiAJfQogCi0Jc3JmLT5iYXNlX3NpemUgPSAqc3JmLT5zaXplczsK LQlzcmYtPmF1dG9nZW5fZmlsdGVyID0gU1ZHQTNEX1RFWF9GSUxURVJfTk9ORTsKLQlzcmYtPm11 bHRpc2FtcGxlX2NvdW50ID0gMDsKLQlzcmYtPm11bHRpc2FtcGxlX3BhdHRlcm4gPSBTVkdBM0Rf TVNfUEFUVEVSTl9OT05FOwotCXNyZi0+cXVhbGl0eV9sZXZlbCA9IFNWR0EzRF9NU19RVUFMSVRZ X05PTkU7CisJbWV0YWRhdGEtPmJhc2Vfc2l6ZSA9ICpzcmYtPm1ldGFkYXRhLnNpemVzOworCW1l dGFkYXRhLT5hdXRvZ2VuX2ZpbHRlciA9IFNWR0EzRF9URVhfRklMVEVSX05PTkU7CisJbWV0YWRh dGEtPm11bHRpc2FtcGxlX2NvdW50ID0gMDsKKwltZXRhZGF0YS0+bXVsdGlzYW1wbGVfcGF0dGVy biA9IFNWR0EzRF9NU19QQVRURVJOX05PTkU7CisJbWV0YWRhdGEtPnF1YWxpdHlfbGV2ZWwgPSBT VkdBM0RfTVNfUVVBTElUWV9OT05FOwogCiAJY3VyX2JvX29mZnNldCA9IDA7CiAJY3VyX29mZnNl dCA9IHNyZi0+b2Zmc2V0czsKLQljdXJfc2l6ZSA9IHNyZi0+c2l6ZXM7CisJY3VyX3NpemUgPSBt ZXRhZGF0YS0+c2l6ZXM7CiAKIAlmb3IgKGkgPSAwOyBpIDwgRFJNX1ZNV19NQVhfU1VSRkFDRV9G QUNFUzsgKytpKSB7Ci0JCWZvciAoaiA9IDA7IGogPCBzcmYtPm1pcF9sZXZlbHNbaV07ICsraikg eworCQlmb3IgKGogPSAwOyBqIDwgbWV0YWRhdGEtPm1pcF9sZXZlbHNbaV07ICsraikgewogCQkJ dWludDMyX3Qgc3RyaWRlID0gc3ZnYTNkc3VyZmFjZV9jYWxjdWxhdGVfcGl0Y2gKIAkJCQkoZGVz YywgY3VyX3NpemUpOwogCkBAIC04NDMsMTEgKzg0NywxMSBAQCBpbnQgdm13X3N1cmZhY2VfZGVm aW5lX2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCiAJCX0KIAl9CiAJ cmVzLT5iYWNrdXBfc2l6ZSA9IGN1cl9ib19vZmZzZXQ7Ci0JaWYgKHNyZi0+c2Nhbm91dCAmJgot CSAgICBzcmYtPm51bV9zaXplcyA9PSAxICYmCi0JICAgIHNyZi0+c2l6ZXNbMF0ud2lkdGggPT0g NjQgJiYKLQkgICAgc3JmLT5zaXplc1swXS5oZWlnaHQgPT0gNjQgJiYKLQkgICAgc3JmLT5mb3Jt YXQgPT0gU1ZHQTNEX0E4UjhHOEI4KSB7CisJaWYgKG1ldGFkYXRhLT5zY2Fub3V0ICYmCisJICAg IG1ldGFkYXRhLT5udW1fc2l6ZXMgPT0gMSAmJgorCSAgICBtZXRhZGF0YS0+c2l6ZXNbMF0ud2lk dGggPT0gNjQgJiYKKwkgICAgbWV0YWRhdGEtPnNpemVzWzBdLmhlaWdodCA9PSA2NCAmJgorCSAg ICBtZXRhZGF0YS0+Zm9ybWF0ID09IFNWR0EzRF9BOFI4RzhCOCkgewogCiAJCXNyZi0+c25vb3Bl ci5pbWFnZSA9IGt6YWxsb2MoNjQgKiA2NCAqIDQsIEdGUF9LRVJORUwpOwogCQlpZiAoIXNyZi0+ c25vb3Blci5pbWFnZSkgewpAQCAtOTExLDcgKzkxNSw3IEBAIGludCB2bXdfc3VyZmFjZV9kZWZp bmVfaW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKIG91dF9ub19jb3B5 OgogCWtmcmVlKHNyZi0+b2Zmc2V0cyk7CiBvdXRfbm9fb2Zmc2V0czoKLQlrZnJlZShzcmYtPnNp emVzKTsKKwlrZnJlZShtZXRhZGF0YS0+c2l6ZXMpOwogb3V0X25vX3NpemVzOgogCXR0bV9wcmlt ZV9vYmplY3Rfa2ZyZWUodXNlcl9zcmYsIHByaW1lKTsKIG91dF9ub191c2VyX3NyZjoKQEAgLTEw MzEsMTggKzEwMzUsMTkgQEAgaW50IHZtd19zdXJmYWNlX3JlZmVyZW5jZV9pb2N0bChzdHJ1Y3Qg ZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAogCXNyZiA9ICZ1c2VyX3NyZi0+c3JmOwogCiAJ LyogRG93bmNhc3Qgb2YgZmxhZ3Mgd2hlbiBzZW5kaW5nIGJhY2sgdG8gdXNlciBzcGFjZSAqLwot CXJlcC0+ZmxhZ3MgPSAodWludDMyX3Qpc3JmLT5mbGFnczsKLQlyZXAtPmZvcm1hdCA9IHNyZi0+ Zm9ybWF0OwotCW1lbWNweShyZXAtPm1pcF9sZXZlbHMsIHNyZi0+bWlwX2xldmVscywgc2l6ZW9m KHNyZi0+bWlwX2xldmVscykpOworCXJlcC0+ZmxhZ3MgPSAodWludDMyX3Qpc3JmLT5tZXRhZGF0 YS5mbGFnczsKKwlyZXAtPmZvcm1hdCA9IHNyZi0+bWV0YWRhdGEuZm9ybWF0OworCW1lbWNweShy ZXAtPm1pcF9sZXZlbHMsIHNyZi0+bWV0YWRhdGEubWlwX2xldmVscywKKwkgICAgICAgc2l6ZW9m KHNyZi0+bWV0YWRhdGEubWlwX2xldmVscykpOwogCXVzZXJfc2l6ZXMgPSAoc3RydWN0IGRybV92 bXdfc2l6ZSBfX3VzZXIgKikodW5zaWduZWQgbG9uZykKIAkgICAgcmVwLT5zaXplX2FkZHI7CiAK IAlpZiAodXNlcl9zaXplcykKLQkJcmV0ID0gY29weV90b191c2VyKHVzZXJfc2l6ZXMsICZzcmYt PmJhc2Vfc2l6ZSwKLQkJCQkgICBzaXplb2Yoc3JmLT5iYXNlX3NpemUpKTsKKwkJcmV0ID0gY29w eV90b191c2VyKHVzZXJfc2l6ZXMsICZzcmYtPm1ldGFkYXRhLmJhc2Vfc2l6ZSwKKwkJCQkgICBz aXplb2Yoc3JmLT5tZXRhZGF0YS5iYXNlX3NpemUpKTsKIAlpZiAodW5saWtlbHkocmV0ICE9IDAp KSB7CiAJCVZNV19ERUJVR19VU0VSKCJjb3B5X3RvX3VzZXIgZmFpbGVkICVwICV1XG4iLCB1c2Vy X3NpemVzLAotCQkJICAgICAgIHNyZi0+bnVtX3NpemVzKTsKKwkJCSAgICAgICBzcmYtPm1ldGFk YXRhLm51bV9zaXplcyk7CiAJCXR0bV9yZWZfb2JqZWN0X2Jhc2VfdW5yZWYodGZpbGUsIGJhc2Ut PmhhbmRsZSwgVFRNX1JFRl9VU0FHRSk7CiAJCXJldCA9IC1FRkFVTFQ7CiAJfQpAQCAtMTA2Miw2 ICsxMDY3LDcgQEAgc3RhdGljIGludCB2bXdfZ2Jfc3VyZmFjZV9jcmVhdGUoc3RydWN0IHZtd19y ZXNvdXJjZSAqcmVzKQogewogCXN0cnVjdCB2bXdfcHJpdmF0ZSAqZGV2X3ByaXYgPSByZXMtPmRl dl9wcml2OwogCXN0cnVjdCB2bXdfc3VyZmFjZSAqc3JmID0gdm13X3Jlc190b19zcmYocmVzKTsK KwlzdHJ1Y3Qgdm13X3N1cmZhY2VfbWV0YWRhdGEgKm1ldGFkYXRhID0gJnNyZi0+bWV0YWRhdGE7 CiAJdWludDMyX3QgY21kX2xlbiwgY21kX2lkLCBzdWJtaXRfbGVuOwogCWludCByZXQ7CiAJc3Ry dWN0IHsKQEAgLTEwOTIsMTEgKzEwOTgsMTEgQEAgc3RhdGljIGludCB2bXdfZ2Jfc3VyZmFjZV9j cmVhdGUoc3RydWN0IHZtd19yZXNvdXJjZSAqcmVzKQogCQlnb3RvIG91dF9ub19maWZvOwogCX0K IAotCWlmIChoYXNfc200XzFfY29udGV4dChkZXZfcHJpdikgJiYgc3JmLT5hcnJheV9zaXplID4g MCkgeworCWlmIChoYXNfc200XzFfY29udGV4dChkZXZfcHJpdikgJiYgbWV0YWRhdGEtPmFycmF5 X3NpemUgPiAwKSB7CiAJCWNtZF9pZCA9IFNWR0FfM0RfQ01EX0RFRklORV9HQl9TVVJGQUNFX1Yz OwogCQljbWRfbGVuID0gc2l6ZW9mKGNtZDMtPmJvZHkpOwogCQlzdWJtaXRfbGVuID0gc2l6ZW9m KCpjbWQzKTsKLQl9IGVsc2UgaWYgKHNyZi0+YXJyYXlfc2l6ZSA+IDApIHsKKwl9IGVsc2UgaWYg KG1ldGFkYXRhLT5hcnJheV9zaXplID4gMCkgewogCQkvKiBWTVdfU01fNCBzdXBwb3J0IHZlcmlm aWVkIGF0IGNyZWF0aW9uIHRpbWUuICovCiAJCWNtZF9pZCA9IFNWR0FfM0RfQ01EX0RFRklORV9H Ql9TVVJGQUNFX1YyOwogCQljbWRfbGVuID0gc2l6ZW9mKGNtZDItPmJvZHkpOwpAQCAtMTExNSw0 NiArMTEyMSw0NiBAQCBzdGF0aWMgaW50IHZtd19nYl9zdXJmYWNlX2NyZWF0ZShzdHJ1Y3Qgdm13 X3Jlc291cmNlICpyZXMpCiAJCWdvdG8gb3V0X25vX2ZpZm87CiAJfQogCi0JaWYgKGhhc19zbTRf MV9jb250ZXh0KGRldl9wcml2KSAmJiBzcmYtPmFycmF5X3NpemUgPiAwKSB7CisJaWYgKGhhc19z bTRfMV9jb250ZXh0KGRldl9wcml2KSAmJiBtZXRhZGF0YS0+YXJyYXlfc2l6ZSA+IDApIHsKIAkJ Y21kMy0+aGVhZGVyLmlkID0gY21kX2lkOwogCQljbWQzLT5oZWFkZXIuc2l6ZSA9IGNtZF9sZW47 CiAJCWNtZDMtPmJvZHkuc2lkID0gc3JmLT5yZXMuaWQ7Ci0JCWNtZDMtPmJvZHkuc3VyZmFjZUZs YWdzID0gc3JmLT5mbGFnczsKLQkJY21kMy0+Ym9keS5mb3JtYXQgPSBzcmYtPmZvcm1hdDsKLQkJ Y21kMy0+Ym9keS5udW1NaXBMZXZlbHMgPSBzcmYtPm1pcF9sZXZlbHNbMF07Ci0JCWNtZDMtPmJv ZHkubXVsdGlzYW1wbGVDb3VudCA9IHNyZi0+bXVsdGlzYW1wbGVfY291bnQ7Ci0JCWNtZDMtPmJv ZHkubXVsdGlzYW1wbGVQYXR0ZXJuID0gc3JmLT5tdWx0aXNhbXBsZV9wYXR0ZXJuOwotCQljbWQz LT5ib2R5LnF1YWxpdHlMZXZlbCA9IHNyZi0+cXVhbGl0eV9sZXZlbDsKLQkJY21kMy0+Ym9keS5h dXRvZ2VuRmlsdGVyID0gc3JmLT5hdXRvZ2VuX2ZpbHRlcjsKLQkJY21kMy0+Ym9keS5zaXplLndp ZHRoID0gc3JmLT5iYXNlX3NpemUud2lkdGg7Ci0JCWNtZDMtPmJvZHkuc2l6ZS5oZWlnaHQgPSBz cmYtPmJhc2Vfc2l6ZS5oZWlnaHQ7Ci0JCWNtZDMtPmJvZHkuc2l6ZS5kZXB0aCA9IHNyZi0+YmFz ZV9zaXplLmRlcHRoOwotCQljbWQzLT5ib2R5LmFycmF5U2l6ZSA9IHNyZi0+YXJyYXlfc2l6ZTsK LQl9IGVsc2UgaWYgKHNyZi0+YXJyYXlfc2l6ZSA+IDApIHsKKwkJY21kMy0+Ym9keS5zdXJmYWNl RmxhZ3MgPSBtZXRhZGF0YS0+ZmxhZ3M7CisJCWNtZDMtPmJvZHkuZm9ybWF0ID0gbWV0YWRhdGEt PmZvcm1hdDsKKwkJY21kMy0+Ym9keS5udW1NaXBMZXZlbHMgPSBtZXRhZGF0YS0+bWlwX2xldmVs c1swXTsKKwkJY21kMy0+Ym9keS5tdWx0aXNhbXBsZUNvdW50ID0gbWV0YWRhdGEtPm11bHRpc2Ft cGxlX2NvdW50OworCQljbWQzLT5ib2R5Lm11bHRpc2FtcGxlUGF0dGVybiA9IG1ldGFkYXRhLT5t dWx0aXNhbXBsZV9wYXR0ZXJuOworCQljbWQzLT5ib2R5LnF1YWxpdHlMZXZlbCA9IG1ldGFkYXRh LT5xdWFsaXR5X2xldmVsOworCQljbWQzLT5ib2R5LmF1dG9nZW5GaWx0ZXIgPSBtZXRhZGF0YS0+ YXV0b2dlbl9maWx0ZXI7CisJCWNtZDMtPmJvZHkuc2l6ZS53aWR0aCA9IG1ldGFkYXRhLT5iYXNl X3NpemUud2lkdGg7CisJCWNtZDMtPmJvZHkuc2l6ZS5oZWlnaHQgPSBtZXRhZGF0YS0+YmFzZV9z aXplLmhlaWdodDsKKwkJY21kMy0+Ym9keS5zaXplLmRlcHRoID0gbWV0YWRhdGEtPmJhc2Vfc2l6 ZS5kZXB0aDsKKwkJY21kMy0+Ym9keS5hcnJheVNpemUgPSBtZXRhZGF0YS0+YXJyYXlfc2l6ZTsK Kwl9IGVsc2UgaWYgKG1ldGFkYXRhLT5hcnJheV9zaXplID4gMCkgewogCQljbWQyLT5oZWFkZXIu aWQgPSBjbWRfaWQ7CiAJCWNtZDItPmhlYWRlci5zaXplID0gY21kX2xlbjsKIAkJY21kMi0+Ym9k eS5zaWQgPSBzcmYtPnJlcy5pZDsKLQkJY21kMi0+Ym9keS5zdXJmYWNlRmxhZ3MgPSBzcmYtPmZs YWdzOwotCQljbWQyLT5ib2R5LmZvcm1hdCA9IHNyZi0+Zm9ybWF0OwotCQljbWQyLT5ib2R5Lm51 bU1pcExldmVscyA9IHNyZi0+bWlwX2xldmVsc1swXTsKLQkJY21kMi0+Ym9keS5tdWx0aXNhbXBs ZUNvdW50ID0gc3JmLT5tdWx0aXNhbXBsZV9jb3VudDsKLQkJY21kMi0+Ym9keS5hdXRvZ2VuRmls dGVyID0gc3JmLT5hdXRvZ2VuX2ZpbHRlcjsKLQkJY21kMi0+Ym9keS5zaXplLndpZHRoID0gc3Jm LT5iYXNlX3NpemUud2lkdGg7Ci0JCWNtZDItPmJvZHkuc2l6ZS5oZWlnaHQgPSBzcmYtPmJhc2Vf c2l6ZS5oZWlnaHQ7Ci0JCWNtZDItPmJvZHkuc2l6ZS5kZXB0aCA9IHNyZi0+YmFzZV9zaXplLmRl cHRoOwotCQljbWQyLT5ib2R5LmFycmF5U2l6ZSA9IHNyZi0+YXJyYXlfc2l6ZTsKKwkJY21kMi0+ Ym9keS5zdXJmYWNlRmxhZ3MgPSBtZXRhZGF0YS0+ZmxhZ3M7CisJCWNtZDItPmJvZHkuZm9ybWF0 ID0gbWV0YWRhdGEtPmZvcm1hdDsKKwkJY21kMi0+Ym9keS5udW1NaXBMZXZlbHMgPSBtZXRhZGF0 YS0+bWlwX2xldmVsc1swXTsKKwkJY21kMi0+Ym9keS5tdWx0aXNhbXBsZUNvdW50ID0gbWV0YWRh dGEtPm11bHRpc2FtcGxlX2NvdW50OworCQljbWQyLT5ib2R5LmF1dG9nZW5GaWx0ZXIgPSBtZXRh ZGF0YS0+YXV0b2dlbl9maWx0ZXI7CisJCWNtZDItPmJvZHkuc2l6ZS53aWR0aCA9IG1ldGFkYXRh LT5iYXNlX3NpemUud2lkdGg7CisJCWNtZDItPmJvZHkuc2l6ZS5oZWlnaHQgPSBtZXRhZGF0YS0+ YmFzZV9zaXplLmhlaWdodDsKKwkJY21kMi0+Ym9keS5zaXplLmRlcHRoID0gbWV0YWRhdGEtPmJh c2Vfc2l6ZS5kZXB0aDsKKwkJY21kMi0+Ym9keS5hcnJheVNpemUgPSBtZXRhZGF0YS0+YXJyYXlf c2l6ZTsKIAl9IGVsc2UgewogCQljbWQtPmhlYWRlci5pZCA9IGNtZF9pZDsKIAkJY21kLT5oZWFk ZXIuc2l6ZSA9IGNtZF9sZW47CiAJCWNtZC0+Ym9keS5zaWQgPSBzcmYtPnJlcy5pZDsKLQkJY21k LT5ib2R5LnN1cmZhY2VGbGFncyA9IHNyZi0+ZmxhZ3M7Ci0JCWNtZC0+Ym9keS5mb3JtYXQgPSBz cmYtPmZvcm1hdDsKLQkJY21kLT5ib2R5Lm51bU1pcExldmVscyA9IHNyZi0+bWlwX2xldmVsc1sw XTsKLQkJY21kLT5ib2R5Lm11bHRpc2FtcGxlQ291bnQgPSBzcmYtPm11bHRpc2FtcGxlX2NvdW50 OwotCQljbWQtPmJvZHkuYXV0b2dlbkZpbHRlciA9IHNyZi0+YXV0b2dlbl9maWx0ZXI7Ci0JCWNt ZC0+Ym9keS5zaXplLndpZHRoID0gc3JmLT5iYXNlX3NpemUud2lkdGg7Ci0JCWNtZC0+Ym9keS5z aXplLmhlaWdodCA9IHNyZi0+YmFzZV9zaXplLmhlaWdodDsKLQkJY21kLT5ib2R5LnNpemUuZGVw dGggPSBzcmYtPmJhc2Vfc2l6ZS5kZXB0aDsKKwkJY21kLT5ib2R5LnN1cmZhY2VGbGFncyA9IG1l dGFkYXRhLT5mbGFnczsKKwkJY21kLT5ib2R5LmZvcm1hdCA9IG1ldGFkYXRhLT5mb3JtYXQ7CisJ CWNtZC0+Ym9keS5udW1NaXBMZXZlbHMgPSBtZXRhZGF0YS0+bWlwX2xldmVsc1swXTsKKwkJY21k LT5ib2R5Lm11bHRpc2FtcGxlQ291bnQgPSBtZXRhZGF0YS0+bXVsdGlzYW1wbGVfY291bnQ7CisJ CWNtZC0+Ym9keS5hdXRvZ2VuRmlsdGVyID0gbWV0YWRhdGEtPmF1dG9nZW5fZmlsdGVyOworCQlj bWQtPmJvZHkuc2l6ZS53aWR0aCA9IG1ldGFkYXRhLT5iYXNlX3NpemUud2lkdGg7CisJCWNtZC0+ Ym9keS5zaXplLmhlaWdodCA9IG1ldGFkYXRhLT5iYXNlX3NpemUuaGVpZ2h0OworCQljbWQtPmJv ZHkuc2l6ZS5kZXB0aCA9IG1ldGFkYXRhLT5iYXNlX3NpemUuZGVwdGg7CiAJfQogCiAJdm13X2Zp Zm9fY29tbWl0KGRldl9wcml2LCBzdWJtaXRfbGVuKTsKQEAgLTE0MTIsNiArMTQxOCw3IEBAIGlu dCB2bXdfc3VyZmFjZV9nYl9wcml2X2RlZmluZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCQku bm9fd2FpdF9ncHUgPSBmYWxzZQogCX07CiAJc3RydWN0IHZtd19zdXJmYWNlICpzcmY7CisJc3Ry dWN0IHZtd19zdXJmYWNlX21ldGFkYXRhICptZXRhZGF0YTsKIAlpbnQgcmV0OwogCXUzMiBudW1f bGF5ZXJzID0gMTsKIAl1MzIgc2FtcGxlX2NvdW50ID0gMTsKQEAgLTE0NzMsMzYgKzE0ODAsMzcg QEAgaW50IHZtd19zdXJmYWNlX2diX3ByaXZfZGVmaW5lKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYs CiAJdXNlcl9zcmYtPnByaW1lLmJhc2UudGZpbGUgICAgID0gTlVMTDsKIAogCXNyZiA9ICZ1c2Vy X3NyZi0+c3JmOwotCXNyZi0+ZmxhZ3MgICAgICAgICAgICAgPSBzdmdhM2RfZmxhZ3M7Ci0Jc3Jm LT5mb3JtYXQgICAgICAgICAgICA9IGZvcm1hdDsKLQlzcmYtPnNjYW5vdXQgICAgICAgICAgID0g Zm9yX3NjYW5vdXQ7Ci0Jc3JmLT5taXBfbGV2ZWxzWzBdICAgICA9IG51bV9taXBfbGV2ZWxzOwot CXNyZi0+bnVtX3NpemVzICAgICAgICAgPSAxOwotCXNyZi0+c2l6ZXMgICAgICAgICAgICAgPSBO VUxMOwotCXNyZi0+b2Zmc2V0cyAgICAgICAgICAgPSBOVUxMOwotCXNyZi0+YmFzZV9zaXplICAg ICAgICAgPSBzaXplOwotCXNyZi0+YXV0b2dlbl9maWx0ZXIgICAgPSBTVkdBM0RfVEVYX0ZJTFRF Ul9OT05FOwotCXNyZi0+YXJyYXlfc2l6ZSAgICAgICAgPSBhcnJheV9zaXplOwotCXNyZi0+bXVs dGlzYW1wbGVfY291bnQgPSBtdWx0aXNhbXBsZV9jb3VudDsKLQlzcmYtPm11bHRpc2FtcGxlX3Bh dHRlcm4gPSBtdWx0aXNhbXBsZV9wYXR0ZXJuOwotCXNyZi0+cXVhbGl0eV9sZXZlbCA9IHF1YWxp dHlfbGV2ZWw7CisJbWV0YWRhdGEgPSAmc3JmLT5tZXRhZGF0YTsKKwltZXRhZGF0YS0+ZmxhZ3Mg PSBzdmdhM2RfZmxhZ3M7CisJbWV0YWRhdGEtPmZvcm1hdCA9IGZvcm1hdDsKKwltZXRhZGF0YS0+ c2Nhbm91dCA9IGZvcl9zY2Fub3V0OworCW1ldGFkYXRhLT5taXBfbGV2ZWxzWzBdID0gbnVtX21p cF9sZXZlbHM7CisJbWV0YWRhdGEtPm51bV9zaXplcyA9IDE7CisJbWV0YWRhdGEtPnNpemVzID0g TlVMTDsKKwlzcmYtPm9mZnNldHMgPSBOVUxMOworCW1ldGFkYXRhLT5iYXNlX3NpemUgPSBzaXpl OworCW1ldGFkYXRhLT5hdXRvZ2VuX2ZpbHRlciA9IFNWR0EzRF9URVhfRklMVEVSX05PTkU7CisJ bWV0YWRhdGEtPmFycmF5X3NpemUgPSBhcnJheV9zaXplOworCW1ldGFkYXRhLT5tdWx0aXNhbXBs ZV9jb3VudCA9IG11bHRpc2FtcGxlX2NvdW50OworCW1ldGFkYXRhLT5tdWx0aXNhbXBsZV9wYXR0 ZXJuID0gbXVsdGlzYW1wbGVfcGF0dGVybjsKKwltZXRhZGF0YS0+cXVhbGl0eV9sZXZlbCA9IHF1 YWxpdHlfbGV2ZWw7CiAKIAlpZiAoYXJyYXlfc2l6ZSkKIAkJbnVtX2xheWVycyA9IGFycmF5X3Np emU7CiAJZWxzZSBpZiAoc3ZnYTNkX2ZsYWdzICYgU1ZHQTNEX1NVUkZBQ0VfQ1VCRU1BUCkKIAkJ bnVtX2xheWVycyA9IFNWR0EzRF9NQVhfU1VSRkFDRV9GQUNFUzsKIAotCWlmIChzcmYtPmZsYWdz ICYgU1ZHQTNEX1NVUkZBQ0VfTVVMVElTQU1QTEUpCi0JCXNhbXBsZV9jb3VudCA9IHNyZi0+bXVs dGlzYW1wbGVfY291bnQ7CisJaWYgKG1ldGFkYXRhLT5mbGFncyAmIFNWR0EzRF9TVVJGQUNFX01V TFRJU0FNUExFKQorCQlzYW1wbGVfY291bnQgPSBtZXRhZGF0YS0+bXVsdGlzYW1wbGVfY291bnQ7 CiAKLQlzcmYtPnJlcy5iYWNrdXBfc2l6ZSAgID0KLQkJc3ZnYTNkc3VyZmFjZV9nZXRfc2VyaWFs aXplZF9zaXplX2V4dGVuZGVkKHNyZi0+Zm9ybWF0LAotCQkJCQkJCSAgIHNyZi0+YmFzZV9zaXpl LAotCQkJCQkJCSAgIHNyZi0+bWlwX2xldmVsc1swXSwKKwlzcmYtPnJlcy5iYWNrdXBfc2l6ZSA9 CisJCXN2Z2EzZHN1cmZhY2VfZ2V0X3NlcmlhbGl6ZWRfc2l6ZV9leHRlbmRlZChtZXRhZGF0YS0+ Zm9ybWF0LAorCQkJCQkJCSAgIG1ldGFkYXRhLT5iYXNlX3NpemUsCisJCQkJCQkJICAgbWV0YWRh dGEtPm1pcF9sZXZlbHNbMF0sCiAJCQkJCQkJICAgbnVtX2xheWVycywKIAkJCQkJCQkgICBzYW1w bGVfY291bnQpOwogCi0JaWYgKHNyZi0+ZmxhZ3MgJiBTVkdBM0RfU1VSRkFDRV9CSU5EX1NUUkVB TV9PVVRQVVQpCisJaWYgKG1ldGFkYXRhLT5mbGFncyAmIFNWR0EzRF9TVVJGQUNFX0JJTkRfU1RS RUFNX09VVFBVVCkKIAkJc3JmLT5yZXMuYmFja3VwX3NpemUgKz0gc2l6ZW9mKFNWR0EzZERYU09T dGF0ZSk7CiAKIAkvKgpAQCAtMTUxNiw3ICsxNTI0LDcgQEAgaW50IHZtd19zdXJmYWNlX2diX3By aXZfZGVmaW5lKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJaWYgKGRldl9wcml2LT5hY3RpdmVf ZGlzcGxheV91bml0ID09IHZtd19kdV9zY3JlZW5fdGFyZ2V0ICYmCiAJICAgIGZvcl9zY2Fub3V0 ICYmIHNpemUud2lkdGggPD0gZGV2X3ByaXYtPnN0ZHVfbWF4X3dpZHRoICYmCiAJICAgIHNpemUu aGVpZ2h0IDw9IGRldl9wcml2LT5zdGR1X21heF9oZWlnaHQpCi0JCXNyZi0+ZmxhZ3MgfD0gU1ZH QTNEX1NVUkZBQ0VfU0NSRUVOVEFSR0VUOworCQltZXRhZGF0YS0+ZmxhZ3MgfD0gU1ZHQTNEX1NV UkZBQ0VfU0NSRUVOVEFSR0VUOwogCiAJLyoKIAkgKiBGcm9tIHRoaXMgcG9pbnQsIHRoZSBnZW5l cmljIHJlc291cmNlIG1hbmFnZW1lbnQgZnVuY3Rpb25zCkBAIC0xNzYyLDYgKzE3NzAsNyBAQCB2 bXdfZ2Jfc3VyZmFjZV9yZWZlcmVuY2VfaW50ZXJuYWwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwK IAlzdHJ1Y3QgdHRtX29iamVjdF9maWxlICp0ZmlsZSA9IHZtd19mcHJpdihmaWxlX3ByaXYpLT50 ZmlsZTsKIAlzdHJ1Y3Qgdm13X3N1cmZhY2UgKnNyZjsKIAlzdHJ1Y3Qgdm13X3VzZXJfc3VyZmFj ZSAqdXNlcl9zcmY7CisJc3RydWN0IHZtd19zdXJmYWNlX21ldGFkYXRhICptZXRhZGF0YTsKIAlz dHJ1Y3QgdHRtX2Jhc2Vfb2JqZWN0ICpiYXNlOwogCXVpbnQzMl90IGJhY2t1cF9oYW5kbGU7CiAJ aW50IHJldCA9IC1FSU5WQUw7CkBAIC0xNzc3LDYgKzE3ODYsNyBAQCB2bXdfZ2Jfc3VyZmFjZV9y ZWZlcmVuY2VfaW50ZXJuYWwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAkJRFJNX0VSUk9SKCJT aGFyZWQgR0Igc3VyZmFjZSBpcyBtaXNzaW5nIGEgYmFja3VwIGJ1ZmZlci5cbiIpOwogCQlnb3Rv IG91dF9iYWRfcmVzb3VyY2U7CiAJfQorCW1ldGFkYXRhID0gJnNyZi0+bWV0YWRhdGE7CiAKIAlt dXRleF9sb2NrKCZkZXZfcHJpdi0+Y21kYnVmX211dGV4KTsgLyogUHJvdGVjdCByZXMtPmJhY2t1 cCAqLwogCXJldCA9IHZtd191c2VyX2JvX3JlZmVyZW5jZSh0ZmlsZSwgc3JmLT5yZXMuYmFja3Vw LCAmYmFja3VwX2hhbmRsZSk7CkBAIC0xNzkwLDE1ICsxODAwLDE1IEBAIHZtd19nYl9zdXJmYWNl X3JlZmVyZW5jZV9pbnRlcm5hbChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCQlnb3RvIG91dF9i YWRfcmVzb3VyY2U7CiAJfQogCi0JcmVwLT5jcmVxLmJhc2Uuc3ZnYTNkX2ZsYWdzID0gU1ZHQTNE X0ZMQUdTX0xPV0VSXzMyKHNyZi0+ZmxhZ3MpOwotCXJlcC0+Y3JlcS5iYXNlLmZvcm1hdCA9IHNy Zi0+Zm9ybWF0OwotCXJlcC0+Y3JlcS5iYXNlLm1pcF9sZXZlbHMgPSBzcmYtPm1pcF9sZXZlbHNb MF07CisJcmVwLT5jcmVxLmJhc2Uuc3ZnYTNkX2ZsYWdzID0gU1ZHQTNEX0ZMQUdTX0xPV0VSXzMy KG1ldGFkYXRhLT5mbGFncyk7CisJcmVwLT5jcmVxLmJhc2UuZm9ybWF0ID0gbWV0YWRhdGEtPmZv cm1hdDsKKwlyZXAtPmNyZXEuYmFzZS5taXBfbGV2ZWxzID0gbWV0YWRhdGEtPm1pcF9sZXZlbHNb MF07CiAJcmVwLT5jcmVxLmJhc2UuZHJtX3N1cmZhY2VfZmxhZ3MgPSAwOwotCXJlcC0+Y3JlcS5i YXNlLm11bHRpc2FtcGxlX2NvdW50ID0gc3JmLT5tdWx0aXNhbXBsZV9jb3VudDsKLQlyZXAtPmNy ZXEuYmFzZS5hdXRvZ2VuX2ZpbHRlciA9IHNyZi0+YXV0b2dlbl9maWx0ZXI7Ci0JcmVwLT5jcmVx LmJhc2UuYXJyYXlfc2l6ZSA9IHNyZi0+YXJyYXlfc2l6ZTsKKwlyZXAtPmNyZXEuYmFzZS5tdWx0 aXNhbXBsZV9jb3VudCA9IG1ldGFkYXRhLT5tdWx0aXNhbXBsZV9jb3VudDsKKwlyZXAtPmNyZXEu YmFzZS5hdXRvZ2VuX2ZpbHRlciA9IG1ldGFkYXRhLT5hdXRvZ2VuX2ZpbHRlcjsKKwlyZXAtPmNy ZXEuYmFzZS5hcnJheV9zaXplID0gbWV0YWRhdGEtPmFycmF5X3NpemU7CiAJcmVwLT5jcmVxLmJh c2UuYnVmZmVyX2hhbmRsZSA9IGJhY2t1cF9oYW5kbGU7Ci0JcmVwLT5jcmVxLmJhc2UuYmFzZV9z aXplID0gc3JmLT5iYXNlX3NpemU7CisJcmVwLT5jcmVxLmJhc2UuYmFzZV9zaXplID0gbWV0YWRh dGEtPmJhc2Vfc2l6ZTsKIAlyZXAtPmNyZXAuaGFuZGxlID0gdXNlcl9zcmYtPnByaW1lLmJhc2Uu aGFuZGxlOwogCXJlcC0+Y3JlcC5iYWNrdXBfc2l6ZSA9IHNyZi0+cmVzLmJhY2t1cF9zaXplOwog CXJlcC0+Y3JlcC5idWZmZXJfaGFuZGxlID0gYmFja3VwX2hhbmRsZTsKQEAgLTE4MDgsOSArMTgx OCw5IEBAIHZtd19nYl9zdXJmYWNlX3JlZmVyZW5jZV9pbnRlcm5hbChzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2LAogCiAJcmVwLT5jcmVxLnZlcnNpb24gPSBkcm1fdm13X2diX3N1cmZhY2VfdjE7CiAJ cmVwLT5jcmVxLnN2Z2EzZF9mbGFnc191cHBlcl8zMl9iaXRzID0KLQkJU1ZHQTNEX0ZMQUdTX1VQ UEVSXzMyKHNyZi0+ZmxhZ3MpOwotCXJlcC0+Y3JlcS5tdWx0aXNhbXBsZV9wYXR0ZXJuID0gc3Jm LT5tdWx0aXNhbXBsZV9wYXR0ZXJuOwotCXJlcC0+Y3JlcS5xdWFsaXR5X2xldmVsID0gc3JmLT5x dWFsaXR5X2xldmVsOworCQlTVkdBM0RfRkxBR1NfVVBQRVJfMzIobWV0YWRhdGEtPmZsYWdzKTsK KwlyZXAtPmNyZXEubXVsdGlzYW1wbGVfcGF0dGVybiA9IG1ldGFkYXRhLT5tdWx0aXNhbXBsZV9w YXR0ZXJuOworCXJlcC0+Y3JlcS5xdWFsaXR5X2xldmVsID0gbWV0YWRhdGEtPnF1YWxpdHlfbGV2 ZWw7CiAJcmVwLT5jcmVxLm11c3RfYmVfemVybyA9IDA7CiAKIG91dF9iYWRfcmVzb3VyY2U6CkBA IC0xOTY4LDcgKzE5NzgsNyBAQCBzdGF0aWMgdm9pZCB2bXdfc3VyZmFjZV9kaXJ0eV9yYW5nZV9h ZGQoc3RydWN0IHZtd19yZXNvdXJjZSAqcmVzLCBzaXplX3Qgc3RhcnQsCiAJCSAgICBzdGFydCA+ PSByZXMtPmJhY2t1cF9vZmZzZXQgKyByZXMtPmJhY2t1cF9zaXplKSkKIAkJcmV0dXJuOwogCi0J aWYgKHNyZi0+Zm9ybWF0ID09IFNWR0EzRF9CVUZGRVIpCisJaWYgKHNyZi0+bWV0YWRhdGEuZm9y bWF0ID09IFNWR0EzRF9CVUZGRVIpCiAJCXZtd19zdXJmYWNlX2J1Zl9kaXJ0eV9yYW5nZV9hZGQo cmVzLCBzdGFydCwgZW5kKTsKIAllbHNlCiAJCXZtd19zdXJmYWNlX3RleF9kaXJ0eV9yYW5nZV9h ZGQocmVzLCBzdGFydCwgZW5kKTsKQEAgLTIwNTgsNiArMjA2OCw3IEBAIHN0YXRpYyBpbnQgdm13 X3N1cmZhY2VfZGlydHlfc3luYyhzdHJ1Y3Qgdm13X3Jlc291cmNlICpyZXMpCiBzdGF0aWMgaW50 IHZtd19zdXJmYWNlX2RpcnR5X2FsbG9jKHN0cnVjdCB2bXdfcmVzb3VyY2UgKnJlcykKIHsKIAlz dHJ1Y3Qgdm13X3N1cmZhY2UgKnNyZiA9IHZtd19yZXNfdG9fc3JmKHJlcyk7CisJY29uc3Qgc3Ry dWN0IHZtd19zdXJmYWNlX21ldGFkYXRhICptZXRhZGF0YSA9ICZzcmYtPm1ldGFkYXRhOwogCXN0 cnVjdCB2bXdfc3VyZmFjZV9kaXJ0eSAqZGlydHk7CiAJdTMyIG51bV9sYXllcnMgPSAxOwogCXUz MiBudW1fbWlwOwpAQCAtMjA3MCwxMiArMjA4MSwxMiBAQCBzdGF0aWMgaW50IHZtd19zdXJmYWNl X2RpcnR5X2FsbG9jKHN0cnVjdCB2bXdfcmVzb3VyY2UgKnJlcykKIAl9OwogCWludCByZXQ7CiAK LQlpZiAoc3JmLT5hcnJheV9zaXplKQotCQludW1fbGF5ZXJzID0gc3JmLT5hcnJheV9zaXplOwot CWVsc2UgaWYgKHNyZi0+ZmxhZ3MgJiBTVkdBM0RfU1VSRkFDRV9DVUJFTUFQKQorCWlmIChtZXRh ZGF0YS0+YXJyYXlfc2l6ZSkKKwkJbnVtX2xheWVycyA9IG1ldGFkYXRhLT5hcnJheV9zaXplOwor CWVsc2UgaWYgKG1ldGFkYXRhLT5mbGFncyAmIFNWR0EzRF9TVVJGQUNFX0NVQkVNQVApCiAJCW51 bV9sYXllcnMgKj0gU1ZHQTNEX01BWF9TVVJGQUNFX0ZBQ0VTOwogCi0JbnVtX21pcCA9IHNyZi0+ bWlwX2xldmVsc1swXTsKKwludW1fbWlwID0gbWV0YWRhdGEtPm1pcF9sZXZlbHNbMF07CiAJaWYg KCFudW1fbWlwKQogCQludW1fbWlwID0gMTsKIApAQCAtMjA5Niw5ICsyMTA3LDEwIEBAIHN0YXRp YyBpbnQgdm13X3N1cmZhY2VfZGlydHlfYWxsb2Moc3RydWN0IHZtd19yZXNvdXJjZSAqcmVzKQog CQlnb3RvIG91dF9ub19kaXJ0eTsKIAl9CiAKLQludW1fc2FtcGxlcyA9IG1heF90KHUzMiwgMSwg c3JmLT5tdWx0aXNhbXBsZV9jb3VudCk7Ci0JcmV0ID0gc3ZnYTNkc3VyZmFjZV9zZXR1cF9jYWNo ZSgmc3JmLT5iYXNlX3NpemUsIHNyZi0+Zm9ybWF0LCBudW1fbWlwLAotCQkJCQludW1fbGF5ZXJz LCBudW1fc2FtcGxlcywgJmRpcnR5LT5jYWNoZSk7CisJbnVtX3NhbXBsZXMgPSBtYXhfdCh1MzIs IDEsIG1ldGFkYXRhLT5tdWx0aXNhbXBsZV9jb3VudCk7CisJcmV0ID0gc3ZnYTNkc3VyZmFjZV9z ZXR1cF9jYWNoZSgmbWV0YWRhdGEtPmJhc2Vfc2l6ZSwgbWV0YWRhdGEtPmZvcm1hdCwKKwkJCQkJ bnVtX21pcCwgbnVtX2xheWVycywgbnVtX3NhbXBsZXMsCisJCQkJCSZkaXJ0eS0+Y2FjaGUpOwog CWlmIChyZXQpCiAJCWdvdG8gb3V0X25vX2NhY2hlOwogCi0tIAoyLjE3LjEKCl9fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxp c3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNr dG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=