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.8 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS, USER_AGENT_GIT autolearn=unavailable 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 5B233CA9EC0 for ; Mon, 28 Oct 2019 20:17:21 +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 3D54B21721 for ; Mon, 28 Oct 2019 20:17:21 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 3D54B21721 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=ziepe.ca Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=amd-gfx-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id B8F406EA02; Mon, 28 Oct 2019 20:17:17 +0000 (UTC) Received: from mail-qk1-x743.google.com (mail-qk1-x743.google.com [IPv6:2607:f8b0:4864:20::743]) by gabe.freedesktop.org (Postfix) with ESMTPS id AA9A389D5F for ; Mon, 28 Oct 2019 20:10:52 +0000 (UTC) Received: by mail-qk1-x743.google.com with SMTP id m125so5822879qkd.8 for ; Mon, 28 Oct 2019 13:10:52 -0700 (PDT) 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=oam7ohQj1kc8X7oZ0yNH5Qsiwr3vqfv4zRUy2hYn6VU=; b=GSGub8T5716KsMbtRop8ezJSqErUp0LDgIrkwnX53R3qv8TmyFDpk2O+RNfE5IRcjs XMSOoCtc0LHvUeeuY91pGBrIC6Pgg8SCD+ZQGRN9HXdKNJzhyskvL9xjtZhPx0MQyIlr qVOb6YXR0X5Q+1jRYiTqVZpeSes2+4A4UqhJqPDIf1oQmYKE6ra5KHSzesMxRUeVAsgT sL27q+7+V98iSDx4/yLk+2d0I8xswlYHA7G6euIlGJN3KwaOLOGlqIsUFggKuDKwgNWz 62Zhsah5C3mgiFsYQiY+xiRc9W1urmNcteD8klmAubDOBa4xwXIqROQkzKS0ade0ktVw fb9A== X-Gm-Message-State: APjAAAXYc9hxAPQRj9ritVlSeTL7qgvwUhkMaUw5KkNhH2ZhA1Ptq2Ei VnaLrRbzKJKuqz2c1VFfbdLxCw== X-Google-Smtp-Source: APXvYqzFOk0mWTm9zmmEUnrvaGyK7qwShQOI+2XOcxc/OnuoCxvgWFx41ArWQecOobsikGRR1SYw3A== X-Received: by 2002:a37:ac0b:: with SMTP id e11mr9437740qkm.454.1572293451378; Mon, 28 Oct 2019 13:10:51 -0700 (PDT) Received: from ziepe.ca (hlfxns017vw-142-162-113-180.dhcp-dynamic.fibreop.ns.bellaliant.net. [142.162.113.180]) by smtp.gmail.com with ESMTPSA id d10sm1589264qkk.99.2019.10.28.13.10.44 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Mon, 28 Oct 2019 13:10:48 -0700 (PDT) Received: from jgg by mlx.ziepe.ca with local (Exim 4.90_1) (envelope-from ) id 1iPBLf-0001hR-OF; Mon, 28 Oct 2019 17:10:43 -0300 From: Jason Gunthorpe To: linux-mm@kvack.org, Jerome Glisse , Ralph Campbell , John Hubbard , Felix.Kuehling@amd.com Subject: [PATCH v2 15/15] mm/hmm: remove hmm_mirror and related Date: Mon, 28 Oct 2019 17:10:32 -0300 Message-Id: <20191028201032.6352-16-jgg@ziepe.ca> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20191028201032.6352-1-jgg@ziepe.ca> References: <20191028201032.6352-1-jgg@ziepe.ca> MIME-Version: 1.0 X-Mailman-Approved-At: Mon, 28 Oct 2019 20:17:16 +0000 X-Mailman-Original-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ziepe.ca; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=oam7ohQj1kc8X7oZ0yNH5Qsiwr3vqfv4zRUy2hYn6VU=; b=N7d4nLhTvUMAd7m6ziC7Fnj8Fj2CROvNmQEOjInKL4+Co2BowIq9/67UGOKMH9lu3l v1lJgY60Lvap2Ol+aPfOvbu+ct1M49IJCP9kjFJybc7MSm13Yz19vQFIxnvZauHYQnAq Tyed+DS0BV73Lk3U+Muf7IdAsRNmnvS9FYFHJIPWiXHxqb+A8SR5sOQbGgk6pbNcNCbe ZJlgb5V8MwBEuEU6SiQQOf3ZhxPQw5OpEsa0GUzFj1giRGyCsV+YkmtWVYDal1QylK/X j/hvQvUBbitvFj7W8XAgGK6FWzI9bi2GEb/fFY0CTm8OtYBVd8K8YIP27/9hLoeA7SOy TP1A== X-BeenThere: amd-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Discussion list for AMD gfx List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Juergen Gross , David Zhou , Mike Marciniszyn , Stefano Stabellini , Oleksandr Andrushchenko , linux-rdma@vger.kernel.org, nouveau@lists.freedesktop.org, Dennis Dalessandro , amd-gfx@lists.freedesktop.org, Christoph Hellwig , Jason Gunthorpe , dri-devel@lists.freedesktop.org, Alex Deucher , xen-devel@lists.xenproject.org, Boris Ostrovsky , Petr Cvek , =?UTF-8?q?Christian=20K=C3=B6nig?= , Ben Skeggs Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: amd-gfx-bounces@lists.freedesktop.org Sender: "amd-gfx" Message-ID: <20191028201032.5DGBPm175eZr01Cqs0PvbfkzYNkwPgRHCliw6W3r920@z> RnJvbTogSmFzb24gR3VudGhvcnBlIDxqZ2dAbWVsbGFub3guY29tPgoKVGhlIG9ubHkgdHdvIHVz ZXJzIG9mIHRoaXMgYXJlIG5vdyBjb252ZXJ0ZWQgdG8gdXNlIG1tdV9yYW5nZV9ub3RpZmllciwK ZGVsZXRlIGFsbCB0aGUgY29kZSBhbmQgdXBkYXRlIGhtbS5yc3QuCgpSZXZpZXdlZC1ieTogSsOp csO0bWUgR2xpc3NlIDxqZ2xpc3NlQHJlZGhhdC5jb20+ClNpZ25lZC1vZmYtYnk6IEphc29uIEd1 bnRob3JwZSA8amdnQG1lbGxhbm94LmNvbT4KLS0tCiBEb2N1bWVudGF0aW9uL3ZtL2htbS5yc3Qg fCAxMDUgKysrKy0tLS0tLS0tLS0tCiBpbmNsdWRlL2xpbnV4L2htbS5oICAgICAgfCAxODMgKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogbW0vS2NvbmZpZyAgICAgICAgICAgICAgIHwgICAxIC0K IG1tL2htbS5jICAgICAgICAgICAgICAgICB8IDI4NCArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KIDQgZmlsZXMgY2hhbmdlZCwgMzMgaW5zZXJ0aW9ucygrKSwgNTQwIGRl bGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vdm0vaG1tLnJzdCBiL0RvY3Vt ZW50YXRpb24vdm0vaG1tLnJzdAppbmRleCAwYTU5NjBiZWNjZjc2ZC4uYTI0NzY0MzAzNWM0ZTIg MTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24vdm0vaG1tLnJzdAorKysgYi9Eb2N1bWVudGF0aW9u L3ZtL2htbS5yc3QKQEAgLTE0Nyw0OSArMTQ3LDE2IEBAIEFkZHJlc3Mgc3BhY2UgbWlycm9yaW5n IGltcGxlbWVudGF0aW9uIGFuZCBBUEkKIEFkZHJlc3Mgc3BhY2UgbWlycm9yaW5nJ3MgbWFpbiBv YmplY3RpdmUgaXMgdG8gYWxsb3cgZHVwbGljYXRpb24gb2YgYSByYW5nZSBvZgogQ1BVIHBhZ2Ug dGFibGUgaW50byBhIGRldmljZSBwYWdlIHRhYmxlOyBITU0gaGVscHMga2VlcCBib3RoIHN5bmNo cm9uaXplZC4gQQogZGV2aWNlIGRyaXZlciB0aGF0IHdhbnRzIHRvIG1pcnJvciBhIHByb2Nlc3Mg YWRkcmVzcyBzcGFjZSBtdXN0IHN0YXJ0IHdpdGggdGhlCi1yZWdpc3RyYXRpb24gb2YgYW4gaG1t X21pcnJvciBzdHJ1Y3Q6OgotCi0gaW50IGhtbV9taXJyb3JfcmVnaXN0ZXIoc3RydWN0IGhtbV9t aXJyb3IgKm1pcnJvciwKLSAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgbW1fc3RydWN0 ICptbSk7Ci0KLVRoZSBtaXJyb3Igc3RydWN0IGhhcyBhIHNldCBvZiBjYWxsYmFja3MgdGhhdCBh cmUgdXNlZAotdG8gcHJvcGFnYXRlIENQVSBwYWdlIHRhYmxlczo6Ci0KLSBzdHJ1Y3QgaG1tX21p cnJvcl9vcHMgewotICAgICAvKiByZWxlYXNlKCkgLSByZWxlYXNlIGhtbV9taXJyb3IKLSAgICAg ICoKLSAgICAgICogQG1pcnJvcjogcG9pbnRlciB0byBzdHJ1Y3QgaG1tX21pcnJvcgotICAgICAg KgotICAgICAgKiBUaGlzIGlzIGNhbGxlZCB3aGVuIHRoZSBtbV9zdHJ1Y3QgaXMgYmVpbmcgcmVs ZWFzZWQuICBUaGUgY2FsbGJhY2sKLSAgICAgICogbXVzdCBlbnN1cmUgdGhhdCBhbGwgYWNjZXNz IHRvIGFueSBwYWdlcyBvYnRhaW5lZCBmcm9tIHRoaXMgbWlycm9yCi0gICAgICAqIGlzIGhhbHRl ZCBiZWZvcmUgdGhlIGNhbGxiYWNrIHJldHVybnMuIEFsbCBmdXR1cmUgYWNjZXNzIHNob3VsZAot ICAgICAgKiBmYXVsdC4KLSAgICAgICovCi0gICAgIHZvaWQgKCpyZWxlYXNlKShzdHJ1Y3QgaG1t X21pcnJvciAqbWlycm9yKTsKLQotICAgICAvKiBzeW5jX2NwdV9kZXZpY2VfcGFnZXRhYmxlcygp IC0gc3luY2hyb25pemUgcGFnZSB0YWJsZXMKLSAgICAgICoKLSAgICAgICogQG1pcnJvcjogcG9p bnRlciB0byBzdHJ1Y3QgaG1tX21pcnJvcgotICAgICAgKiBAdXBkYXRlOiB1cGRhdGUgaW5mb3Jt YXRpb24gKHNlZSBzdHJ1Y3QgbW11X25vdGlmaWVyX3JhbmdlKQotICAgICAgKiBSZXR1cm46IC1F QUdBSU4gaWYgdXBkYXRlLmJsb2NrYWJsZSBmYWxzZSBhbmQgY2FsbGJhY2sgbmVlZCB0bwotICAg ICAgKiAgICAgICAgIGJsb2NrLCAwIG90aGVyd2lzZS4KLSAgICAgICoKLSAgICAgICogVGhpcyBj YWxsYmFjayB1bHRpbWF0ZWx5IG9yaWdpbmF0ZXMgZnJvbSBtbXVfbm90aWZpZXJzIHdoZW4gdGhl IENQVQotICAgICAgKiBwYWdlIHRhYmxlIGlzIHVwZGF0ZWQuIFRoZSBkZXZpY2UgZHJpdmVyIG11 c3QgdXBkYXRlIGl0cyBwYWdlIHRhYmxlCi0gICAgICAqIGluIHJlc3BvbnNlIHRvIHRoaXMgY2Fs bGJhY2suIFRoZSB1cGRhdGUgYXJndW1lbnQgdGVsbHMgd2hhdCBhY3Rpb24KLSAgICAgICogdG8g cGVyZm9ybS4KLSAgICAgICoKLSAgICAgICogVGhlIGRldmljZSBkcml2ZXIgbXVzdCBub3QgcmV0 dXJuIGZyb20gdGhpcyBjYWxsYmFjayB1bnRpbCB0aGUgZGV2aWNlCi0gICAgICAqIHBhZ2UgdGFi bGVzIGFyZSBjb21wbGV0ZWx5IHVwZGF0ZWQgKFRMQnMgZmx1c2hlZCwgZXRjKTsgdGhpcyBpcyBh Ci0gICAgICAqIHN5bmNocm9ub3VzIGNhbGwuCi0gICAgICAqLwotICAgICBpbnQgKCpzeW5jX2Nw dV9kZXZpY2VfcGFnZXRhYmxlcykoc3RydWN0IGhtbV9taXJyb3IgKm1pcnJvciwKLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0cnVjdCBobW1fdXBkYXRlICp1 cGRhdGUpOwotIH07Ci0KLVRoZSBkZXZpY2UgZHJpdmVyIG11c3QgcGVyZm9ybSB0aGUgdXBkYXRl IGFjdGlvbiB0byB0aGUgcmFuZ2UgKG1hcmsgcmFuZ2UKLXJlYWQgb25seSwgb3IgZnVsbHkgdW5t YXAsIGV0Yy4pLiBUaGUgZGV2aWNlIG11c3QgY29tcGxldGUgdGhlIHVwZGF0ZSBiZWZvcmUKLXRo ZSBkcml2ZXIgY2FsbGJhY2sgcmV0dXJucy4KK3JlZ2lzdHJhdGlvbiBvZiBhIG1tdV9yYW5nZV9u b3RpZmllcjo6CisKKyBtcm4tPm9wcyA9ICZkcml2ZXJfb3BzOworIGludCBtbXVfcmFuZ2Vfbm90 aWZpZXJfaW5zZXJ0KHN0cnVjdCBtbXVfcmFuZ2Vfbm90aWZpZXIgKm1ybiwKKwkJCSAgICAgIHVu c2lnbmVkIGxvbmcgc3RhcnQsIHVuc2lnbmVkIGxvbmcgbGVuZ3RoLAorCQkJICAgICAgc3RydWN0 IG1tX3N0cnVjdCAqbW0pOworCitEdXJpbmcgdGhlIGRyaXZlcl9vcHMtPmludmFsaWRhdGUoKSBj YWxsYmFjayB0aGUgZGV2aWNlIGRyaXZlciBtdXN0IHBlcmZvcm0KK3RoZSB1cGRhdGUgYWN0aW9u IHRvIHRoZSByYW5nZSAobWFyayByYW5nZSByZWFkIG9ubHksIG9yIGZ1bGx5IHVubWFwLAorZXRj LikuIFRoZSBkZXZpY2UgbXVzdCBjb21wbGV0ZSB0aGUgdXBkYXRlIGJlZm9yZSB0aGUgZHJpdmVy IGNhbGxiYWNrIHJldHVybnMuCiAKIFdoZW4gdGhlIGRldmljZSBkcml2ZXIgd2FudHMgdG8gcG9w dWxhdGUgYSByYW5nZSBvZiB2aXJ0dWFsIGFkZHJlc3NlcywgaXQgY2FuCiB1c2U6OgpAQCAtMjE2 LDcwICsxODMsNDYgQEAgVGhlIHVzYWdlIHBhdHRlcm4gaXM6OgogICAgICAgc3RydWN0IGhtbV9y YW5nZSByYW5nZTsKICAgICAgIC4uLgogCisgICAgICByYW5nZS5ub3RpZmllciA9ICZtcm47CiAg ICAgICByYW5nZS5zdGFydCA9IC4uLjsKICAgICAgIHJhbmdlLmVuZCA9IC4uLjsKICAgICAgIHJh bmdlLnBmbnMgPSAuLi47CiAgICAgICByYW5nZS5mbGFncyA9IC4uLjsKICAgICAgIHJhbmdlLnZh bHVlcyA9IC4uLjsKICAgICAgIHJhbmdlLnBmbl9zaGlmdCA9IC4uLjsKLSAgICAgIGhtbV9yYW5n ZV9yZWdpc3RlcigmcmFuZ2UsIG1pcnJvcik7CiAKLSAgICAgIC8qCi0gICAgICAgKiBKdXN0IHdh aXQgZm9yIHJhbmdlIHRvIGJlIHZhbGlkLCBzYWZlIHRvIGlnbm9yZSByZXR1cm4gdmFsdWUgYXMg d2UKLSAgICAgICAqIHdpbGwgdXNlIHRoZSByZXR1cm4gdmFsdWUgb2YgaG1tX3JhbmdlX2ZhdWx0 KCkgYmVsb3cgdW5kZXIgdGhlCi0gICAgICAgKiBtbWFwX3NlbSB0byBhc2NlcnRhaW4gdGhlIHZh bGlkaXR5IG9mIHRoZSByYW5nZS4KLSAgICAgICAqLwotICAgICAgaG1tX3JhbmdlX3dhaXRfdW50 aWxfdmFsaWQoJnJhbmdlLCBUSU1FT1VUX0lOX01TRUMpOworICAgICAgaWYgKCFtbWdldF9ub3Rf emVybyhtcm4tPm5vdGlmaWVyLm1tKSkKKyAgICAgICAgICByZXR1cm4gLUVGQVVMVDsKIAogIGFn YWluOgorICAgICAgcmFuZ2Uubm90aWZpZXJfc2VxID0gbW11X3JhbmdlX3JlYWRfYmVnaW4oJm1y bik7CiAgICAgICBkb3duX3JlYWQoJm1tLT5tbWFwX3NlbSk7CiAgICAgICByZXQgPSBobW1fcmFu Z2VfZmF1bHQoJnJhbmdlLCBITU1fUkFOR0VfU05BUFNIT1QpOwogICAgICAgaWYgKHJldCkgewog ICAgICAgICAgIHVwX3JlYWQoJm1tLT5tbWFwX3NlbSk7Ci0gICAgICAgICAgaWYgKHJldCA9PSAt RUJVU1kpIHsKLSAgICAgICAgICAgIC8qCi0gICAgICAgICAgICAgKiBObyBuZWVkIHRvIGNoZWNr IGhtbV9yYW5nZV93YWl0X3VudGlsX3ZhbGlkKCkgcmV0dXJuIHZhbHVlCi0gICAgICAgICAgICAg KiBvbiByZXRyeSB3ZSB3aWxsIGdldCBwcm9wZXIgZXJyb3Igd2l0aCBobW1fcmFuZ2VfZmF1bHQo KQotICAgICAgICAgICAgICovCi0gICAgICAgICAgICBobW1fcmFuZ2Vfd2FpdF91bnRpbF92YWxp ZCgmcmFuZ2UsIFRJTUVPVVRfSU5fTVNFQyk7Ci0gICAgICAgICAgICBnb3RvIGFnYWluOwotICAg ICAgICAgIH0KLSAgICAgICAgICBobW1fcmFuZ2VfdW5yZWdpc3RlcigmcmFuZ2UpOworICAgICAg ICAgIGlmIChyZXQgPT0gLUVCVVNZKQorICAgICAgICAgICAgICAgICBnb3RvIGFnYWluOwogICAg ICAgICAgIHJldHVybiByZXQ7CiAgICAgICB9CisgICAgICB1cF9yZWFkKCZtbS0+bW1hcF9zZW0p OworCiAgICAgICB0YWtlX2xvY2soZHJpdmVyLT51cGRhdGUpOwotICAgICAgaWYgKCFobW1fcmFu Z2VfdmFsaWQoJnJhbmdlKSkgeworICAgICAgaWYgKG1tdV9yYW5nZV9yZWFkX3JldHJ5KCZtcm4s IHJhbmdlLm5vdGlmaWVyX3NlcSkgewogICAgICAgICAgIHJlbGVhc2VfbG9jayhkcml2ZXItPnVw ZGF0ZSk7Ci0gICAgICAgICAgdXBfcmVhZCgmbW0tPm1tYXBfc2VtKTsKICAgICAgICAgICBnb3Rv IGFnYWluOwogICAgICAgfQogCi0gICAgICAvLyBVc2UgcGZucyBhcnJheSBjb250ZW50IHRvIHVw ZGF0ZSBkZXZpY2UgcGFnZSB0YWJsZQorICAgICAgLyogVXNlIHBmbnMgYXJyYXkgY29udGVudCB0 byB1cGRhdGUgZGV2aWNlIHBhZ2UgdGFibGUsCisgICAgICAgKiB1bmRlciB0aGUgdXBkYXRlIGxv Y2sgKi8KIAotICAgICAgaG1tX3JhbmdlX3VucmVnaXN0ZXIoJnJhbmdlKTsKICAgICAgIHJlbGVh c2VfbG9jayhkcml2ZXItPnVwZGF0ZSk7Ci0gICAgICB1cF9yZWFkKCZtbS0+bW1hcF9zZW0pOwog ICAgICAgcmV0dXJuIDA7CiAgfQogCiBUaGUgZHJpdmVyLT51cGRhdGUgbG9jayBpcyB0aGUgc2Ft ZSBsb2NrIHRoYXQgdGhlIGRyaXZlciB0YWtlcyBpbnNpZGUgaXRzCi1zeW5jX2NwdV9kZXZpY2Vf cGFnZXRhYmxlcygpIGNhbGxiYWNrLiBUaGF0IGxvY2sgbXVzdCBiZSBoZWxkIGJlZm9yZSBjYWxs aW5nCi1obW1fcmFuZ2VfdmFsaWQoKSB0byBhdm9pZCBhbnkgcmFjZSB3aXRoIGEgY29uY3VycmVu dCBDUFUgcGFnZSB0YWJsZSB1cGRhdGUuCi0KLUhNTSBpbXBsZW1lbnRzIGFsbCB0aGlzIG9uIHRv cCBvZiB0aGUgbW11X25vdGlmaWVyIEFQSSBiZWNhdXNlIHdlIHdhbnRlZCBhCi1zaW1wbGVyIEFQ SSBhbmQgYWxzbyB0byBiZSBhYmxlIHRvIHBlcmZvcm0gb3B0aW1pemF0aW9ucyBsYXR0ZXIgb24g bGlrZSBkb2luZwotY29uY3VycmVudCBkZXZpY2UgdXBkYXRlcyBpbiBtdWx0aS1kZXZpY2VzIHNj ZW5hcmlvLgotCi1ITU0gYWxzbyBzZXJ2ZXMgYXMgYW4gaW1wZWRhbmNlIG1pc21hdGNoIGJldHdl ZW4gaG93IENQVSBwYWdlIHRhYmxlIHVwZGF0ZXMKLWFyZSBkb25lIChieSBDUFUgd3JpdGUgdG8g dGhlIHBhZ2UgdGFibGUgYW5kIFRMQiBmbHVzaGVzKSBhbmQgaG93IGRldmljZXMKLXVwZGF0ZSB0 aGVpciBvd24gcGFnZSB0YWJsZS4gRGV2aWNlIHVwZGF0ZXMgYXJlIGEgbXVsdGktc3RlcCBwcm9j ZXNzLiBGaXJzdCwKLWFwcHJvcHJpYXRlIGNvbW1hbmRzIGFyZSB3cml0dGVuIHRvIGEgYnVmZmVy LCB0aGVuIHRoaXMgYnVmZmVyIGlzIHNjaGVkdWxlZCBmb3IKLWV4ZWN1dGlvbiBvbiB0aGUgZGV2 aWNlLiBJdCBpcyBvbmx5IG9uY2UgdGhlIGRldmljZSBoYXMgZXhlY3V0ZWQgY29tbWFuZHMgaW4K LXRoZSBidWZmZXIgdGhhdCB0aGUgdXBkYXRlIGlzIGRvbmUuIENyZWF0aW5nIGFuZCBzY2hlZHVs aW5nIHRoZSB1cGRhdGUgY29tbWFuZAotYnVmZmVyIGNhbiBoYXBwZW4gY29uY3VycmVudGx5IGZv ciBtdWx0aXBsZSBkZXZpY2VzLiBXYWl0aW5nIGZvciBlYWNoIGRldmljZSB0bwotcmVwb3J0IGNv bW1hbmRzIGFzIGV4ZWN1dGVkIGlzIHNlcmlhbGl6ZWQgKHRoZXJlIGlzIG5vIHBvaW50IGluIGRv aW5nIHRoaXMKLWNvbmN1cnJlbnRseSkuCi0KK2ludmFsaWRhdGUoKSBjYWxsYmFjay4gVGhhdCBs b2NrIG11c3QgYmUgaGVsZCBiZWZvcmUgY2FsbGluZworbW11X3JhbmdlX3JlYWRfcmV0cnkoKSB0 byBhdm9pZCBhbnkgcmFjZSB3aXRoIGEgY29uY3VycmVudCBDUFUgcGFnZSB0YWJsZQordXBkYXRl LgogCiBMZXZlcmFnZSBkZWZhdWx0X2ZsYWdzIGFuZCBwZm5fZmxhZ3NfbWFzawogPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGlu dXgvaG1tLmggYi9pbmNsdWRlL2xpbnV4L2htbS5oCmluZGV4IDI2NjZlYjA4YTQwNjE1Li5iNGFm NTE3MzUyMzIzMiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9obW0uaAorKysgYi9pbmNsdWRl L2xpbnV4L2htbS5oCkBAIC02OCwyOSArNjgsNiBAQAogI2luY2x1ZGUgPGxpbnV4L2NvbXBsZXRp b24uaD4KICNpbmNsdWRlIDxsaW51eC9tbXVfbm90aWZpZXIuaD4KIAotCi0vKgotICogc3RydWN0 IGhtbSAtIEhNTSBwZXIgbW0gc3RydWN0Ci0gKgotICogQG1tOiBtbSBzdHJ1Y3QgdGhpcyBITU0g c3RydWN0IGlzIGJvdW5kIHRvCi0gKiBAbG9jazogbG9jayBwcm90ZWN0aW5nIHJhbmdlcyBsaXN0 Ci0gKiBAcmFuZ2VzOiBsaXN0IG9mIHJhbmdlIGJlaW5nIHNuYXBzaG90dGVkCi0gKiBAbWlycm9y czogbGlzdCBvZiBtaXJyb3JzIGZvciB0aGlzIG1tCi0gKiBAbW11X25vdGlmaWVyOiBtbXUgbm90 aWZpZXIgdG8gdHJhY2sgdXBkYXRlcyB0byBDUFUgcGFnZSB0YWJsZQotICogQG1pcnJvcnNfc2Vt OiByZWFkL3dyaXRlIHNlbWFwaG9yZSBwcm90ZWN0aW5nIHRoZSBtaXJyb3JzIGxpc3QKLSAqIEB3 cTogd2FpdCBxdWV1ZSBmb3IgdXNlciB3YWl0aW5nIG9uIGEgcmFuZ2UgaW52YWxpZGF0aW9uCi0g KiBAbm90aWZpZXJzOiBjb3VudCBvZiBhY3RpdmUgbW11IG5vdGlmaWVycwotICovCi1zdHJ1Y3Qg aG1tIHsKLQlzdHJ1Y3QgbW11X25vdGlmaWVyCW1tdV9ub3RpZmllcjsKLQlzcGlubG9ja190CQly YW5nZXNfbG9jazsKLQlzdHJ1Y3QgbGlzdF9oZWFkCXJhbmdlczsKLQlzdHJ1Y3QgbGlzdF9oZWFk CW1pcnJvcnM7Ci0Jc3RydWN0IHJ3X3NlbWFwaG9yZQltaXJyb3JzX3NlbTsKLQl3YWl0X3F1ZXVl X2hlYWRfdAl3cTsKLQlsb25nCQkJbm90aWZpZXJzOwotfTsKLQogLyoKICAqIGhtbV9wZm5fZmxh Z19lIC0gSE1NIGZsYWcgZW51bXMKICAqCkBAIC0xNDMsOSArMTIwLDggQEAgZW51bSBobW1fcGZu X3ZhbHVlX2UgewogLyoKICAqIHN0cnVjdCBobW1fcmFuZ2UgLSB0cmFjayBpbnZhbGlkYXRpb24g bG9jayBvbiB2aXJ0dWFsIGFkZHJlc3MgcmFuZ2UKICAqCi0gKiBAbm90aWZpZXI6IGFuIG9wdGlv bmFsIG1tdV9yYW5nZV9ub3RpZmllcgotICogQG5vdGlmaWVyX3NlcTogd2hlbiBub3RpZmllciBp cyB1c2VkIHRoaXMgaXMgdGhlIHJlc3VsdCBvZgotICogICAgICAgICAgICAgICAgbW11X3Jhbmdl X3JlYWRfYmVnaW4oKQorICogQG5vdGlmaWVyOiBhIG1tdV9yYW5nZV9ub3RpZmllciB0aGF0IGlu Y2x1ZGVzIHRoZSBzdGFydC9lbmQKKyAqIEBub3RpZmllcl9zZXE6IHJlc3VsdCBvZiBtbXVfcmFu Z2VfcmVhZF9iZWdpbigpCiAgKiBAaG1tOiB0aGUgY29yZSBITU0gc3RydWN0dXJlIHRoaXMgcmFu Z2UgaXMgYWN0aXZlIGFnYWluc3QKICAqIEB2bWE6IHRoZSB2bSBhcmVhIHN0cnVjdCBmb3IgdGhl IHJhbmdlCiAgKiBAbGlzdDogYWxsIHJhbmdlIGxvY2sgYXJlIG9uIGEgbGlzdApAQCAtMTYyLDgg KzEzOCw2IEBAIGVudW0gaG1tX3Bmbl92YWx1ZV9lIHsKIHN0cnVjdCBobW1fcmFuZ2UgewogCXN0 cnVjdCBtbXVfcmFuZ2Vfbm90aWZpZXIgKm5vdGlmaWVyOwogCXVuc2lnbmVkIGxvbmcJCW5vdGlm aWVyX3NlcTsKLQlzdHJ1Y3QgaG1tCQkqaG1tOwotCXN0cnVjdCBsaXN0X2hlYWQJbGlzdDsKIAl1 bnNpZ25lZCBsb25nCQlzdGFydDsKIAl1bnNpZ25lZCBsb25nCQllbmQ7CiAJdWludDY0X3QJCSpw Zm5zOwpAQCAtMTcyLDMyICsxNDYsOCBAQCBzdHJ1Y3QgaG1tX3JhbmdlIHsKIAl1aW50NjRfdAkJ ZGVmYXVsdF9mbGFnczsKIAl1aW50NjRfdAkJcGZuX2ZsYWdzX21hc2s7CiAJdWludDhfdAkJCXBm bl9zaGlmdDsKLQlib29sCQkJdmFsaWQ7CiB9OwogCi0vKgotICogaG1tX3JhbmdlX3dhaXRfdW50 aWxfdmFsaWQoKSAtIHdhaXQgZm9yIHJhbmdlIHRvIGJlIHZhbGlkCi0gKiBAcmFuZ2U6IHJhbmdl IGFmZmVjdGVkIGJ5IGludmFsaWRhdGlvbiB0byB3YWl0IG9uCi0gKiBAdGltZW91dDogdGltZSBv dXQgZm9yIHdhaXQgaW4gbXMgKGllIGFib3J0IHdhaXQgYWZ0ZXIgdGhhdCBwZXJpb2Qgb2YgdGlt ZSkKLSAqIFJldHVybjogdHJ1ZSBpZiB0aGUgcmFuZ2UgaXMgdmFsaWQsIGZhbHNlIG90aGVyd2lz ZS4KLSAqLwotc3RhdGljIGlubGluZSBib29sIGhtbV9yYW5nZV93YWl0X3VudGlsX3ZhbGlkKHN0 cnVjdCBobW1fcmFuZ2UgKnJhbmdlLAotCQkJCQkgICAgICB1bnNpZ25lZCBsb25nIHRpbWVvdXQp Ci17Ci0JcmV0dXJuIHdhaXRfZXZlbnRfdGltZW91dChyYW5nZS0+aG1tLT53cSwgcmFuZ2UtPnZh bGlkLAotCQkJCSAgbXNlY3NfdG9famlmZmllcyh0aW1lb3V0KSkgIT0gMDsKLX0KLQotLyoKLSAq IGhtbV9yYW5nZV92YWxpZCgpIC0gdGVzdCBpZiBhIHJhbmdlIGlzIHZhbGlkIG9yIG5vdAotICog QHJhbmdlOiByYW5nZQotICogUmV0dXJuOiB0cnVlIGlmIHRoZSByYW5nZSBpcyB2YWxpZCwgZmFs c2Ugb3RoZXJ3aXNlLgotICovCi1zdGF0aWMgaW5saW5lIGJvb2wgaG1tX3JhbmdlX3ZhbGlkKHN0 cnVjdCBobW1fcmFuZ2UgKnJhbmdlKQotewotCXJldHVybiByYW5nZS0+dmFsaWQ7Ci19Ci0KIC8q CiAgKiBobW1fZGV2aWNlX2VudHJ5X3RvX3BhZ2UoKSAtIHJldHVybiBzdHJ1Y3QgcGFnZSBwb2lu dGVkIHRvIGJ5IGEgZGV2aWNlIGVudHJ5CiAgKiBAcmFuZ2U6IHJhbmdlIHVzZSB0byBkZWNvZGUg ZGV2aWNlIGVudHJ5IHZhbHVlCkBAIC0yNjcsMTExICsyMTcsNiBAQCBzdGF0aWMgaW5saW5lIHVp bnQ2NF90IGhtbV9kZXZpY2VfZW50cnlfZnJvbV9wZm4oY29uc3Qgc3RydWN0IGhtbV9yYW5nZSAq cmFuZ2UsCiAJCXJhbmdlLT5mbGFnc1tITU1fUEZOX1ZBTElEXTsKIH0KIAotLyoKLSAqIE1pcnJv cmluZzogaG93IHRvIHN5bmNocm9uaXplIGRldmljZSBwYWdlIHRhYmxlIHdpdGggQ1BVIHBhZ2Ug dGFibGUuCi0gKgotICogQSBkZXZpY2UgZHJpdmVyIHRoYXQgaXMgcGFydGljaXBhdGluZyBpbiBI TU0gbWlycm9yaW5nIG11c3QgYWx3YXlzCi0gKiBzeW5jaHJvbml6ZSB3aXRoIENQVSBwYWdlIHRh YmxlIHVwZGF0ZXMuIEZvciB0aGlzLCBkZXZpY2UgZHJpdmVycyBjYW4gZWl0aGVyCi0gKiBkaXJl Y3RseSB1c2UgbW11X25vdGlmaWVyIEFQSXMgb3IgdGhleSBjYW4gdXNlIHRoZSBobW1fbWlycm9y IEFQSS4gRGV2aWNlCi0gKiBkcml2ZXJzIGNhbiBkZWNpZGUgdG8gcmVnaXN0ZXIgb25lIG1pcnJv ciBwZXIgZGV2aWNlIHBlciBwcm9jZXNzLCBvciBqdXN0Ci0gKiBvbmUgbWlycm9yIHBlciBwcm9j ZXNzIGZvciBhIGdyb3VwIG9mIGRldmljZXMuIFRoZSBwYXR0ZXJuIGlzOgotICoKLSAqICAgICAg aW50IGRldmljZV9iaW5kX2FkZHJlc3Nfc3BhY2UoLi4uLCBzdHJ1Y3QgbW1fc3RydWN0ICptbSwg Li4uKQotICogICAgICB7Ci0gKiAgICAgICAgICBzdHJ1Y3QgZGV2aWNlX2FkZHJlc3Nfc3BhY2Ug KmRhczsKLSAqCi0gKiAgICAgICAgICAvLyBEZXZpY2UgZHJpdmVyIHNwZWNpZmljIGluaXRpYWxp emF0aW9uLCBhbmQgYWxsb2NhdGlvbiBvZiBkYXMKLSAqICAgICAgICAgIC8vIHdoaWNoIGNvbnRh aW5zIGFuIGhtbV9taXJyb3Igc3RydWN0IGFzIG9uZSBvZiBpdHMgZmllbGRzLgotICogICAgICAg ICAgLi4uCi0gKgotICogICAgICAgICAgcmV0ID0gaG1tX21pcnJvcl9yZWdpc3RlcigmZGFzLT5t aXJyb3IsIG1tLCAmZGV2aWNlX21pcnJvcl9vcHMpOwotICogICAgICAgICAgaWYgKHJldCkgewot ICogICAgICAgICAgICAgIC8vIENsZWFudXAgb24gZXJyb3IKLSAqICAgICAgICAgICAgICByZXR1 cm4gcmV0OwotICogICAgICAgICAgfQotICoKLSAqICAgICAgICAgIC8vIE90aGVyIGRldmljZSBk cml2ZXIgc3BlY2lmaWMgaW5pdGlhbGl6YXRpb24KLSAqICAgICAgICAgIC4uLgotICogICAgICB9 Ci0gKgotICogT25jZSBhbiBobW1fbWlycm9yIGlzIHJlZ2lzdGVyZWQgZm9yIGFuIGFkZHJlc3Mg c3BhY2UsIHRoZSBkZXZpY2UgZHJpdmVyCi0gKiB3aWxsIGdldCBjYWxsYmFja3MgdGhyb3VnaCBz eW5jX2NwdV9kZXZpY2VfcGFnZXRhYmxlcygpIG9wZXJhdGlvbiAoc2VlCi0gKiBobW1fbWlycm9y X29wcyBzdHJ1Y3QpLgotICoKLSAqIERldmljZSBkcml2ZXIgbXVzdCBub3QgZnJlZSB0aGUgc3Ry dWN0IGNvbnRhaW5pbmcgdGhlIGhtbV9taXJyb3Igc3RydWN0Ci0gKiBiZWZvcmUgY2FsbGluZyBo bW1fbWlycm9yX3VucmVnaXN0ZXIoKS4gVGhlIGV4cGVjdGVkIHVzYWdlIGlzIHRvIGRvIHRoYXQg d2hlbgotICogdGhlIGRldmljZSBkcml2ZXIgaXMgdW5iaW5kaW5nIGZyb20gYW4gYWRkcmVzcyBz cGFjZS4KLSAqCi0gKgotICogICAgICB2b2lkIGRldmljZV91bmJpbmRfYWRkcmVzc19zcGFjZShz dHJ1Y3QgZGV2aWNlX2FkZHJlc3Nfc3BhY2UgKmRhcykKLSAqICAgICAgewotICogICAgICAgICAg Ly8gRGV2aWNlIGRyaXZlciBzcGVjaWZpYyBjbGVhbnVwCi0gKiAgICAgICAgICAuLi4KLSAqCi0g KiAgICAgICAgICBobW1fbWlycm9yX3VucmVnaXN0ZXIoJmRhcy0+bWlycm9yKTsKLSAqCi0gKiAg ICAgICAgICAvLyBPdGhlciBkZXZpY2UgZHJpdmVyIHNwZWNpZmljIGNsZWFudXAsIGFuZCBub3cg ZGFzIGNhbiBiZSBmcmVlZAotICogICAgICAgICAgLi4uCi0gKiAgICAgIH0KLSAqLwotCi1zdHJ1 Y3QgaG1tX21pcnJvcjsKLQotLyoKLSAqIHN0cnVjdCBobW1fbWlycm9yX29wcyAtIEhNTSBtaXJy b3IgZGV2aWNlIG9wZXJhdGlvbnMgY2FsbGJhY2sKLSAqCi0gKiBAdXBkYXRlOiBjYWxsYmFjayB0 byB1cGRhdGUgcmFuZ2Ugb24gYSBkZXZpY2UKLSAqLwotc3RydWN0IGhtbV9taXJyb3Jfb3BzIHsK LQkvKiByZWxlYXNlKCkgLSByZWxlYXNlIGhtbV9taXJyb3IKLQkgKgotCSAqIEBtaXJyb3I6IHBv aW50ZXIgdG8gc3RydWN0IGhtbV9taXJyb3IKLQkgKgotCSAqIFRoaXMgaXMgY2FsbGVkIHdoZW4g dGhlIG1tX3N0cnVjdCBpcyBiZWluZyByZWxlYXNlZC4gIFRoZSBjYWxsYmFjawotCSAqIG11c3Qg ZW5zdXJlIHRoYXQgYWxsIGFjY2VzcyB0byBhbnkgcGFnZXMgb2J0YWluZWQgZnJvbSB0aGlzIG1p cnJvcgotCSAqIGlzIGhhbHRlZCBiZWZvcmUgdGhlIGNhbGxiYWNrIHJldHVybnMuIEFsbCBmdXR1 cmUgYWNjZXNzIHNob3VsZAotCSAqIGZhdWx0LgotCSAqLwotCXZvaWQgKCpyZWxlYXNlKShzdHJ1 Y3QgaG1tX21pcnJvciAqbWlycm9yKTsKLQotCS8qIHN5bmNfY3B1X2RldmljZV9wYWdldGFibGVz KCkgLSBzeW5jaHJvbml6ZSBwYWdlIHRhYmxlcwotCSAqCi0JICogQG1pcnJvcjogcG9pbnRlciB0 byBzdHJ1Y3QgaG1tX21pcnJvcgotCSAqIEB1cGRhdGU6IHVwZGF0ZSBpbmZvcm1hdGlvbiAoc2Vl IHN0cnVjdCBtbXVfbm90aWZpZXJfcmFuZ2UpCi0JICogUmV0dXJuOiAtRUFHQUlOIGlmIG1tdV9u b3RpZmllcl9yYW5nZV9ibG9ja2FibGUodXBkYXRlKSBpcyBmYWxzZQotCSAqIGFuZCBjYWxsYmFj ayBuZWVkcyB0byBibG9jaywgMCBvdGhlcndpc2UuCi0JICoKLQkgKiBUaGlzIGNhbGxiYWNrIHVs dGltYXRlbHkgb3JpZ2luYXRlcyBmcm9tIG1tdV9ub3RpZmllcnMgd2hlbiB0aGUgQ1BVCi0JICog cGFnZSB0YWJsZSBpcyB1cGRhdGVkLiBUaGUgZGV2aWNlIGRyaXZlciBtdXN0IHVwZGF0ZSBpdHMg cGFnZSB0YWJsZQotCSAqIGluIHJlc3BvbnNlIHRvIHRoaXMgY2FsbGJhY2suIFRoZSB1cGRhdGUg YXJndW1lbnQgdGVsbHMgd2hhdCBhY3Rpb24KLQkgKiB0byBwZXJmb3JtLgotCSAqCi0JICogVGhl IGRldmljZSBkcml2ZXIgbXVzdCBub3QgcmV0dXJuIGZyb20gdGhpcyBjYWxsYmFjayB1bnRpbCB0 aGUgZGV2aWNlCi0JICogcGFnZSB0YWJsZXMgYXJlIGNvbXBsZXRlbHkgdXBkYXRlZCAoVExCcyBm bHVzaGVkLCBldGMpOyB0aGlzIGlzIGEKLQkgKiBzeW5jaHJvbm91cyBjYWxsLgotCSAqLwotCWlu dCAoKnN5bmNfY3B1X2RldmljZV9wYWdldGFibGVzKSgKLQkJc3RydWN0IGhtbV9taXJyb3IgKm1p cnJvciwKLQkJY29uc3Qgc3RydWN0IG1tdV9ub3RpZmllcl9yYW5nZSAqdXBkYXRlKTsKLX07Ci0K LS8qCi0gKiBzdHJ1Y3QgaG1tX21pcnJvciAtIG1pcnJvciBzdHJ1Y3QgZm9yIGEgZGV2aWNlIGRy aXZlcgotICoKLSAqIEBobW06IHBvaW50ZXIgdG8gc3RydWN0IGhtbSAod2hpY2ggaXMgdW5pcXVl IHBlciBtbV9zdHJ1Y3QpCi0gKiBAb3BzOiBkZXZpY2UgZHJpdmVyIGNhbGxiYWNrIGZvciBITU0g bWlycm9yIG9wZXJhdGlvbnMKLSAqIEBsaXN0OiBmb3IgbGlzdCBvZiBtaXJyb3JzIG9mIGEgZ2l2 ZW4gbW0KLSAqCi0gKiBFYWNoIGFkZHJlc3Mgc3BhY2UgKG1tX3N0cnVjdCkgYmVpbmcgbWlycm9y ZWQgYnkgYSBkZXZpY2UgbXVzdCByZWdpc3RlciBvbmUKLSAqIGluc3RhbmNlIG9mIGFuIGhtbV9t aXJyb3Igc3RydWN0IHdpdGggSE1NLiBITU0gd2lsbCB0cmFjayB0aGUgbGlzdCBvZiBhbGwKLSAq IG1pcnJvcnMgZm9yIGVhY2ggbW1fc3RydWN0LgotICovCi1zdHJ1Y3QgaG1tX21pcnJvciB7Ci0J c3RydWN0IGhtbQkJCSpobW07Ci0JY29uc3Qgc3RydWN0IGhtbV9taXJyb3Jfb3BzCSpvcHM7Ci0J c3RydWN0IGxpc3RfaGVhZAkJbGlzdDsKLX07Ci0KIC8qCiAgKiBSZXRyeSBmYXVsdCBpZiBub24t YmxvY2tpbmcsIGRyb3AgbW1hcF9zZW0gYW5kIHJldHVybiAtRUFHQUlOIGluIHRoYXQgY2FzZS4K ICAqLwpAQCAtMzgxLDE1ICsyMjYsOSBAQCBzdHJ1Y3QgaG1tX21pcnJvciB7CiAjZGVmaW5lIEhN TV9GQVVMVF9TTkFQU0hPVAkJKDEgPDwgMSkKIAogI2lmZGVmIENPTkZJR19ITU1fTUlSUk9SCi1p bnQgaG1tX21pcnJvcl9yZWdpc3RlcihzdHJ1Y3QgaG1tX21pcnJvciAqbWlycm9yLCBzdHJ1Y3Qg bW1fc3RydWN0ICptbSk7Ci12b2lkIGhtbV9taXJyb3JfdW5yZWdpc3RlcihzdHJ1Y3QgaG1tX21p cnJvciAqbWlycm9yKTsKLQogLyoKICAqIFBsZWFzZSBzZWUgRG9jdW1lbnRhdGlvbi92bS9obW0u cnN0IGZvciBob3cgdG8gdXNlIHRoZSByYW5nZSBBUEkuCiAgKi8KLWludCBobW1fcmFuZ2VfcmVn aXN0ZXIoc3RydWN0IGhtbV9yYW5nZSAqcmFuZ2UsIHN0cnVjdCBobW1fbWlycm9yICptaXJyb3Ip Owotdm9pZCBobW1fcmFuZ2VfdW5yZWdpc3RlcihzdHJ1Y3QgaG1tX3JhbmdlICpyYW5nZSk7Ci0K IGxvbmcgaG1tX3JhbmdlX2ZhdWx0KHN0cnVjdCBobW1fcmFuZ2UgKnJhbmdlLCB1bnNpZ25lZCBp bnQgZmxhZ3MpOwogCiBsb25nIGhtbV9yYW5nZV9kbWFfbWFwKHN0cnVjdCBobW1fcmFuZ2UgKnJh bmdlLApAQCAtNDAxLDI0ICsyNDAsNiBAQCBsb25nIGhtbV9yYW5nZV9kbWFfdW5tYXAoc3RydWN0 IGhtbV9yYW5nZSAqcmFuZ2UsCiAJCQkgZG1hX2FkZHJfdCAqZGFkZHJzLAogCQkJIGJvb2wgZGly dHkpOwogI2Vsc2UKLWludCBobW1fbWlycm9yX3JlZ2lzdGVyKHN0cnVjdCBobW1fbWlycm9yICpt aXJyb3IsIHN0cnVjdCBtbV9zdHJ1Y3QgKm1tKQotewotCXJldHVybiAtRU9QTk9UU1VQUDsKLX0K LQotdm9pZCBobW1fbWlycm9yX3VucmVnaXN0ZXIoc3RydWN0IGhtbV9taXJyb3IgKm1pcnJvcikK LXsKLX0KLQotaW50IGhtbV9yYW5nZV9yZWdpc3RlcihzdHJ1Y3QgaG1tX3JhbmdlICpyYW5nZSwg c3RydWN0IGhtbV9taXJyb3IgKm1pcnJvcikKLXsKLQlyZXR1cm4gLUVPUE5PVFNVUFA7Ci19Ci0K LXZvaWQgaG1tX3JhbmdlX3VucmVnaXN0ZXIoc3RydWN0IGhtbV9yYW5nZSAqcmFuZ2UpCi17Ci19 Ci0KIHN0YXRpYyBpbmxpbmUgbG9uZyBobW1fcmFuZ2VfZmF1bHQoc3RydWN0IGhtbV9yYW5nZSAq cmFuZ2UsIHVuc2lnbmVkIGludCBmbGFncykKIHsKIAlyZXR1cm4gLUVPUE5PVFNVUFA7CmRpZmYg LS1naXQgYS9tbS9LY29uZmlnIGIvbW0vS2NvbmZpZwppbmRleCBkMGI1MDQ2ZDlhZWZmZC4uZTM4 ZmYxZDU5NjhkYmYgMTAwNjQ0Ci0tLSBhL21tL0tjb25maWcKKysrIGIvbW0vS2NvbmZpZwpAQCAt Njc1LDcgKzY3NSw2IEBAIGNvbmZpZyBERVZfUEFHRU1BUF9PUFMKIGNvbmZpZyBITU1fTUlSUk9S CiAJYm9vbAogCWRlcGVuZHMgb24gTU1VCi0JZGVwZW5kcyBvbiBNTVVfTk9USUZJRVIKIAogY29u ZmlnIERFVklDRV9QUklWQVRFCiAJYm9vbCAiVW5hZGRyZXNzYWJsZSBkZXZpY2UgbWVtb3J5IChH UFUgbWVtb3J5LCAuLi4pIgpkaWZmIC0tZ2l0IGEvbW0vaG1tLmMgYi9tbS9obW0uYwppbmRleCAy MmFjMzU5NTc3MWZlYi4uNzVkMTVhODIwZTE4MmUgMTAwNjQ0Ci0tLSBhL21tL2htbS5jCisrKyBi L21tL2htbS5jCkBAIC0yNiwxOTMgKzI2LDYgQEAKICNpbmNsdWRlIDxsaW51eC9tbXVfbm90aWZp ZXIuaD4KICNpbmNsdWRlIDxsaW51eC9tZW1vcnlfaG90cGx1Zy5oPgogCi1zdGF0aWMgc3RydWN0 IG1tdV9ub3RpZmllciAqaG1tX2FsbG9jX25vdGlmaWVyKHN0cnVjdCBtbV9zdHJ1Y3QgKm1tKQot ewotCXN0cnVjdCBobW0gKmhtbTsKLQotCWhtbSA9IGt6YWxsb2Moc2l6ZW9mKCpobW0pLCBHRlBf S0VSTkVMKTsKLQlpZiAoIWhtbSkKLQkJcmV0dXJuIEVSUl9QVFIoLUVOT01FTSk7Ci0KLQlpbml0 X3dhaXRxdWV1ZV9oZWFkKCZobW0tPndxKTsKLQlJTklUX0xJU1RfSEVBRCgmaG1tLT5taXJyb3Jz KTsKLQlpbml0X3J3c2VtKCZobW0tPm1pcnJvcnNfc2VtKTsKLQlJTklUX0xJU1RfSEVBRCgmaG1t LT5yYW5nZXMpOwotCXNwaW5fbG9ja19pbml0KCZobW0tPnJhbmdlc19sb2NrKTsKLQlobW0tPm5v dGlmaWVycyA9IDA7Ci0JcmV0dXJuICZobW0tPm1tdV9ub3RpZmllcjsKLX0KLQotc3RhdGljIHZv aWQgaG1tX2ZyZWVfbm90aWZpZXIoc3RydWN0IG1tdV9ub3RpZmllciAqbW4pCi17Ci0Jc3RydWN0 IGhtbSAqaG1tID0gY29udGFpbmVyX29mKG1uLCBzdHJ1Y3QgaG1tLCBtbXVfbm90aWZpZXIpOwot Ci0JV0FSTl9PTighbGlzdF9lbXB0eSgmaG1tLT5yYW5nZXMpKTsKLQlXQVJOX09OKCFsaXN0X2Vt cHR5KCZobW0tPm1pcnJvcnMpKTsKLQlrZnJlZShobW0pOwotfQotCi1zdGF0aWMgdm9pZCBobW1f cmVsZWFzZShzdHJ1Y3QgbW11X25vdGlmaWVyICptbiwgc3RydWN0IG1tX3N0cnVjdCAqbW0pCi17 Ci0Jc3RydWN0IGhtbSAqaG1tID0gY29udGFpbmVyX29mKG1uLCBzdHJ1Y3QgaG1tLCBtbXVfbm90 aWZpZXIpOwotCXN0cnVjdCBobW1fbWlycm9yICptaXJyb3I7Ci0KLQkvKgotCSAqIFNpbmNlIGht bV9yYW5nZV9yZWdpc3RlcigpIGhvbGRzIHRoZSBtbWdldCgpIGxvY2sgaG1tX3JlbGVhc2UoKSBp cwotCSAqIHByZXZlbnRlZCBhcyBsb25nIGFzIGEgcmFuZ2UgZXhpc3RzLgotCSAqLwotCVdBUk5f T04oIWxpc3RfZW1wdHlfY2FyZWZ1bCgmaG1tLT5yYW5nZXMpKTsKLQotCWRvd25fcmVhZCgmaG1t LT5taXJyb3JzX3NlbSk7Ci0JbGlzdF9mb3JfZWFjaF9lbnRyeShtaXJyb3IsICZobW0tPm1pcnJv cnMsIGxpc3QpIHsKLQkJLyoKLQkJICogTm90ZTogVGhlIGRyaXZlciBpcyBub3QgYWxsb3dlZCB0 byB0cmlnZ2VyCi0JCSAqIGhtbV9taXJyb3JfdW5yZWdpc3RlcigpIGZyb20gdGhpcyB0aHJlYWQu Ci0JCSAqLwotCQlpZiAobWlycm9yLT5vcHMtPnJlbGVhc2UpCi0JCQltaXJyb3ItPm9wcy0+cmVs ZWFzZShtaXJyb3IpOwotCX0KLQl1cF9yZWFkKCZobW0tPm1pcnJvcnNfc2VtKTsKLX0KLQotc3Rh dGljIHZvaWQgbm90aWZpZXJzX2RlY3JlbWVudChzdHJ1Y3QgaG1tICpobW0pCi17Ci0JdW5zaWdu ZWQgbG9uZyBmbGFnczsKLQotCXNwaW5fbG9ja19pcnFzYXZlKCZobW0tPnJhbmdlc19sb2NrLCBm bGFncyk7Ci0JaG1tLT5ub3RpZmllcnMtLTsKLQlpZiAoIWhtbS0+bm90aWZpZXJzKSB7Ci0JCXN0 cnVjdCBobW1fcmFuZ2UgKnJhbmdlOwotCi0JCWxpc3RfZm9yX2VhY2hfZW50cnkocmFuZ2UsICZo bW0tPnJhbmdlcywgbGlzdCkgewotCQkJaWYgKHJhbmdlLT52YWxpZCkKLQkJCQljb250aW51ZTsK LQkJCXJhbmdlLT52YWxpZCA9IHRydWU7Ci0JCX0KLQkJd2FrZV91cF9hbGwoJmhtbS0+d3EpOwot CX0KLQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZobW0tPnJhbmdlc19sb2NrLCBmbGFncyk7Ci19 Ci0KLXN0YXRpYyBpbnQgaG1tX2ludmFsaWRhdGVfcmFuZ2Vfc3RhcnQoc3RydWN0IG1tdV9ub3Rp ZmllciAqbW4sCi0JCQljb25zdCBzdHJ1Y3QgbW11X25vdGlmaWVyX3JhbmdlICpucmFuZ2UpCi17 Ci0Jc3RydWN0IGhtbSAqaG1tID0gY29udGFpbmVyX29mKG1uLCBzdHJ1Y3QgaG1tLCBtbXVfbm90 aWZpZXIpOwotCXN0cnVjdCBobW1fbWlycm9yICptaXJyb3I7Ci0Jc3RydWN0IGhtbV9yYW5nZSAq cmFuZ2U7Ci0JdW5zaWduZWQgbG9uZyBmbGFnczsKLQlpbnQgcmV0ID0gMDsKLQotCXNwaW5fbG9j a19pcnFzYXZlKCZobW0tPnJhbmdlc19sb2NrLCBmbGFncyk7Ci0JaG1tLT5ub3RpZmllcnMrKzsK LQlsaXN0X2Zvcl9lYWNoX2VudHJ5KHJhbmdlLCAmaG1tLT5yYW5nZXMsIGxpc3QpIHsKLQkJaWYg KG5yYW5nZS0+ZW5kIDwgcmFuZ2UtPnN0YXJ0IHx8IG5yYW5nZS0+c3RhcnQgPj0gcmFuZ2UtPmVu ZCkKLQkJCWNvbnRpbnVlOwotCi0JCXJhbmdlLT52YWxpZCA9IGZhbHNlOwotCX0KLQlzcGluX3Vu bG9ja19pcnFyZXN0b3JlKCZobW0tPnJhbmdlc19sb2NrLCBmbGFncyk7Ci0KLQlpZiAobW11X25v dGlmaWVyX3JhbmdlX2Jsb2NrYWJsZShucmFuZ2UpKQotCQlkb3duX3JlYWQoJmhtbS0+bWlycm9y c19zZW0pOwotCWVsc2UgaWYgKCFkb3duX3JlYWRfdHJ5bG9jaygmaG1tLT5taXJyb3JzX3NlbSkp IHsKLQkJcmV0ID0gLUVBR0FJTjsKLQkJZ290byBvdXQ7Ci0JfQotCi0JbGlzdF9mb3JfZWFjaF9l bnRyeShtaXJyb3IsICZobW0tPm1pcnJvcnMsIGxpc3QpIHsKLQkJaW50IHJjOwotCi0JCXJjID0g bWlycm9yLT5vcHMtPnN5bmNfY3B1X2RldmljZV9wYWdldGFibGVzKG1pcnJvciwgbnJhbmdlKTsK LQkJaWYgKHJjKSB7Ci0JCQlpZiAoV0FSTl9PTihtbXVfbm90aWZpZXJfcmFuZ2VfYmxvY2thYmxl KG5yYW5nZSkgfHwKLQkJCSAgICByYyAhPSAtRUFHQUlOKSkKLQkJCQljb250aW51ZTsKLQkJCXJl dCA9IC1FQUdBSU47Ci0JCQlicmVhazsKLQkJfQotCX0KLQl1cF9yZWFkKCZobW0tPm1pcnJvcnNf c2VtKTsKLQotb3V0OgotCWlmIChyZXQpCi0JCW5vdGlmaWVyc19kZWNyZW1lbnQoaG1tKTsKLQly ZXR1cm4gcmV0OwotfQotCi1zdGF0aWMgdm9pZCBobW1faW52YWxpZGF0ZV9yYW5nZV9lbmQoc3Ry dWN0IG1tdV9ub3RpZmllciAqbW4sCi0JCQljb25zdCBzdHJ1Y3QgbW11X25vdGlmaWVyX3Jhbmdl ICpucmFuZ2UpCi17Ci0Jc3RydWN0IGhtbSAqaG1tID0gY29udGFpbmVyX29mKG1uLCBzdHJ1Y3Qg aG1tLCBtbXVfbm90aWZpZXIpOwotCi0Jbm90aWZpZXJzX2RlY3JlbWVudChobW0pOwotfQotCi1z dGF0aWMgY29uc3Qgc3RydWN0IG1tdV9ub3RpZmllcl9vcHMgaG1tX21tdV9ub3RpZmllcl9vcHMg PSB7Ci0JLnJlbGVhc2UJCT0gaG1tX3JlbGVhc2UsCi0JLmludmFsaWRhdGVfcmFuZ2Vfc3RhcnQJ PSBobW1faW52YWxpZGF0ZV9yYW5nZV9zdGFydCwKLQkuaW52YWxpZGF0ZV9yYW5nZV9lbmQJPSBo bW1faW52YWxpZGF0ZV9yYW5nZV9lbmQsCi0JLmFsbG9jX25vdGlmaWVyCQk9IGhtbV9hbGxvY19u b3RpZmllciwKLQkuZnJlZV9ub3RpZmllcgkJPSBobW1fZnJlZV9ub3RpZmllciwKLX07Ci0KLS8q Ci0gKiBobW1fbWlycm9yX3JlZ2lzdGVyKCkgLSByZWdpc3RlciBhIG1pcnJvciBhZ2FpbnN0IGFu IG1tCi0gKgotICogQG1pcnJvcjogbmV3IG1pcnJvciBzdHJ1Y3QgdG8gcmVnaXN0ZXIKLSAqIEBt bTogbW0gdG8gcmVnaXN0ZXIgYWdhaW5zdAotICogUmV0dXJuOiAwIG9uIHN1Y2Nlc3MsIC1FTk9N RU0gaWYgbm8gbWVtb3J5LCAtRUlOVkFMIGlmIGludmFsaWQgYXJndW1lbnRzCi0gKgotICogVG8g c3RhcnQgbWlycm9yaW5nIGEgcHJvY2VzcyBhZGRyZXNzIHNwYWNlLCB0aGUgZGV2aWNlIGRyaXZl ciBtdXN0IHJlZ2lzdGVyCi0gKiBhbiBITU0gbWlycm9yIHN0cnVjdC4KLSAqCi0gKiBUaGUgY2Fs bGVyIGNhbm5vdCB1bnJlZ2lzdGVyIHRoZSBobW1fbWlycm9yIHdoaWxlIGFueSByYW5nZXMgYXJl Ci0gKiByZWdpc3RlcmVkLgotICoKLSAqIENhbGxlcnMgdXNpbmcgdGhpcyBmdW5jdGlvbiBtdXN0 IHB1dCBhIGNhbGwgdG8gbW11X25vdGlmaWVyX3N5bmNocm9uaXplKCkKLSAqIGluIHRoZWlyIG1v ZHVsZSBleGl0IGZ1bmN0aW9ucy4KLSAqLwotaW50IGhtbV9taXJyb3JfcmVnaXN0ZXIoc3RydWN0 IGhtbV9taXJyb3IgKm1pcnJvciwgc3RydWN0IG1tX3N0cnVjdCAqbW0pCi17Ci0Jc3RydWN0IG1t dV9ub3RpZmllciAqbW47Ci0KLQlsb2NrZGVwX2Fzc2VydF9oZWxkX3dyaXRlKCZtbS0+bW1hcF9z ZW0pOwotCi0JLyogU2FuaXR5IGNoZWNrICovCi0JaWYgKCFtbSB8fCAhbWlycm9yIHx8ICFtaXJy b3ItPm9wcykKLQkJcmV0dXJuIC1FSU5WQUw7Ci0KLQltbiA9IG1tdV9ub3RpZmllcl9nZXRfbG9j a2VkKCZobW1fbW11X25vdGlmaWVyX29wcywgbW0pOwotCWlmIChJU19FUlIobW4pKQotCQlyZXR1 cm4gUFRSX0VSUihtbik7Ci0JbWlycm9yLT5obW0gPSBjb250YWluZXJfb2YobW4sIHN0cnVjdCBo bW0sIG1tdV9ub3RpZmllcik7Ci0KLQlkb3duX3dyaXRlKCZtaXJyb3ItPmhtbS0+bWlycm9yc19z ZW0pOwotCWxpc3RfYWRkKCZtaXJyb3ItPmxpc3QsICZtaXJyb3ItPmhtbS0+bWlycm9ycyk7Ci0J dXBfd3JpdGUoJm1pcnJvci0+aG1tLT5taXJyb3JzX3NlbSk7Ci0KLQlyZXR1cm4gMDsKLX0KLUVY UE9SVF9TWU1CT0woaG1tX21pcnJvcl9yZWdpc3Rlcik7Ci0KLS8qCi0gKiBobW1fbWlycm9yX3Vu cmVnaXN0ZXIoKSAtIHVucmVnaXN0ZXIgYSBtaXJyb3IKLSAqCi0gKiBAbWlycm9yOiBtaXJyb3Ig c3RydWN0IHRvIHVucmVnaXN0ZXIKLSAqCi0gKiBTdG9wIG1pcnJvcmluZyBhIHByb2Nlc3MgYWRk cmVzcyBzcGFjZSwgYW5kIGNsZWFudXAuCi0gKi8KLXZvaWQgaG1tX21pcnJvcl91bnJlZ2lzdGVy KHN0cnVjdCBobW1fbWlycm9yICptaXJyb3IpCi17Ci0Jc3RydWN0IGhtbSAqaG1tID0gbWlycm9y LT5obW07Ci0KLQlkb3duX3dyaXRlKCZobW0tPm1pcnJvcnNfc2VtKTsKLQlsaXN0X2RlbCgmbWly cm9yLT5saXN0KTsKLQl1cF93cml0ZSgmaG1tLT5taXJyb3JzX3NlbSk7Ci0JbW11X25vdGlmaWVy X3B1dCgmaG1tLT5tbXVfbm90aWZpZXIpOwotfQotRVhQT1JUX1NZTUJPTChobW1fbWlycm9yX3Vu cmVnaXN0ZXIpOwotCiBzdHJ1Y3QgaG1tX3ZtYV93YWxrIHsKIAlzdHJ1Y3QgaG1tX3JhbmdlCSpy YW5nZTsKIAlzdHJ1Y3QgZGV2X3BhZ2VtYXAJKnBnbWFwOwpAQCAtNzc5LDg3ICs1OTIsNiBAQCBz dGF0aWMgdm9pZCBobW1fcGZuc19jbGVhcihzdHJ1Y3QgaG1tX3JhbmdlICpyYW5nZSwKIAkJKnBm bnMgPSByYW5nZS0+dmFsdWVzW0hNTV9QRk5fTk9ORV07CiB9CiAKLS8qCi0gKiBobW1fcmFuZ2Vf cmVnaXN0ZXIoKSAtIHN0YXJ0IHRyYWNraW5nIGNoYW5nZSB0byBDUFUgcGFnZSB0YWJsZSBvdmVy IGEgcmFuZ2UKLSAqIEByYW5nZTogcmFuZ2UKLSAqIEBtbTogdGhlIG1tIHN0cnVjdCBmb3IgdGhl IHJhbmdlIG9mIHZpcnR1YWwgYWRkcmVzcwotICoKLSAqIFJldHVybjogMCBvbiBzdWNjZXNzLCAt RUZBVUxUIGlmIHRoZSBhZGRyZXNzIHNwYWNlIGlzIG5vIGxvbmdlciB2YWxpZAotICoKLSAqIFRy YWNrIHVwZGF0ZXMgdG8gdGhlIENQVSBwYWdlIHRhYmxlIHNlZSBpbmNsdWRlL2xpbnV4L2htbS5o Ci0gKi8KLWludCBobW1fcmFuZ2VfcmVnaXN0ZXIoc3RydWN0IGhtbV9yYW5nZSAqcmFuZ2UsIHN0 cnVjdCBobW1fbWlycm9yICptaXJyb3IpCi17Ci0Jc3RydWN0IGhtbSAqaG1tID0gbWlycm9yLT5o bW07Ci0JdW5zaWduZWQgbG9uZyBmbGFnczsKLQotCXJhbmdlLT52YWxpZCA9IGZhbHNlOwotCXJh bmdlLT5obW0gPSBOVUxMOwotCi0JaWYgKChyYW5nZS0+c3RhcnQgJiAoUEFHRV9TSVpFIC0gMSkp IHx8IChyYW5nZS0+ZW5kICYgKFBBR0VfU0laRSAtIDEpKSkKLQkJcmV0dXJuIC1FSU5WQUw7Ci0J aWYgKHJhbmdlLT5zdGFydCA+PSByYW5nZS0+ZW5kKQotCQlyZXR1cm4gLUVJTlZBTDsKLQotCS8q IFByZXZlbnQgaG1tX3JlbGVhc2UoKSBmcm9tIHJ1bm5pbmcgd2hpbGUgdGhlIHJhbmdlIGlzIHZh bGlkICovCi0JaWYgKCFtbWdldF9ub3RfemVybyhobW0tPm1tdV9ub3RpZmllci5tbSkpCi0JCXJl dHVybiAtRUZBVUxUOwotCi0JLyogSW5pdGlhbGl6ZSByYW5nZSB0byB0cmFjayBDUFUgcGFnZSB0 YWJsZSB1cGRhdGVzLiAqLwotCXNwaW5fbG9ja19pcnFzYXZlKCZobW0tPnJhbmdlc19sb2NrLCBm bGFncyk7Ci0KLQlyYW5nZS0+aG1tID0gaG1tOwotCWxpc3RfYWRkKCZyYW5nZS0+bGlzdCwgJmht bS0+cmFuZ2VzKTsKLQotCS8qCi0JICogSWYgdGhlcmUgYXJlIGFueSBjb25jdXJyZW50IG5vdGlm aWVycyB3ZSBoYXZlIHRvIHdhaXQgZm9yIHRoZW0gZm9yCi0JICogdGhlIHJhbmdlIHRvIGJlIHZh bGlkIChzZWUgaG1tX3JhbmdlX3dhaXRfdW50aWxfdmFsaWQoKSkuCi0JICovCi0JaWYgKCFobW0t Pm5vdGlmaWVycykKLQkJcmFuZ2UtPnZhbGlkID0gdHJ1ZTsKLQlzcGluX3VubG9ja19pcnFyZXN0 b3JlKCZobW0tPnJhbmdlc19sb2NrLCBmbGFncyk7Ci0KLQlyZXR1cm4gMDsKLX0KLUVYUE9SVF9T WU1CT0woaG1tX3JhbmdlX3JlZ2lzdGVyKTsKLQotLyoKLSAqIGhtbV9yYW5nZV91bnJlZ2lzdGVy KCkgLSBzdG9wIHRyYWNraW5nIGNoYW5nZSB0byBDUFUgcGFnZSB0YWJsZSBvdmVyIGEgcmFuZ2UK LSAqIEByYW5nZTogcmFuZ2UKLSAqCi0gKiBSYW5nZSBzdHJ1Y3QgaXMgdXNlZCB0byB0cmFjayB1 cGRhdGVzIHRvIHRoZSBDUFUgcGFnZSB0YWJsZSBhZnRlciBhIGNhbGwgdG8KLSAqIGhtbV9yYW5n ZV9yZWdpc3RlcigpLiBTZWUgaW5jbHVkZS9saW51eC9obW0uaCBmb3IgaG93IHRvIHVzZSBpdC4K LSAqLwotdm9pZCBobW1fcmFuZ2VfdW5yZWdpc3RlcihzdHJ1Y3QgaG1tX3JhbmdlICpyYW5nZSkK LXsKLQlzdHJ1Y3QgaG1tICpobW0gPSByYW5nZS0+aG1tOwotCXVuc2lnbmVkIGxvbmcgZmxhZ3M7 Ci0KLQlzcGluX2xvY2tfaXJxc2F2ZSgmaG1tLT5yYW5nZXNfbG9jaywgZmxhZ3MpOwotCWxpc3Rf ZGVsX2luaXQoJnJhbmdlLT5saXN0KTsKLQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZobW0tPnJh bmdlc19sb2NrLCBmbGFncyk7Ci0KLQkvKiBEcm9wIHJlZmVyZW5jZSB0YWtlbiBieSBobW1fcmFu Z2VfcmVnaXN0ZXIoKSAqLwotCW1tcHV0KGhtbS0+bW11X25vdGlmaWVyLm1tKTsKLQotCS8qCi0J ICogVGhlIHJhbmdlIGlzIG5vdyBpbnZhbGlkIGFuZCB0aGUgcmVmIG9uIHRoZSBobW0gaXMgZHJv cHBlZCwgc28KLQkgKiBwb2lzb24gdGhlIHBvaW50ZXIuICBMZWF2ZSBvdGhlciBmaWVsZHMgaW4g cGxhY2UsIGZvciB0aGUgY2FsbGVyJ3MKLQkgKiB1c2UuCi0JICovCi0JcmFuZ2UtPnZhbGlkID0g ZmFsc2U7Ci0JbWVtc2V0KCZyYW5nZS0+aG1tLCBQT0lTT05fSU5VU0UsIHNpemVvZihyYW5nZS0+ aG1tKSk7Ci19Ci1FWFBPUlRfU1lNQk9MKGhtbV9yYW5nZV91bnJlZ2lzdGVyKTsKLQotc3RhdGlj IGJvb2wgbmVlZHNfcmV0cnkoc3RydWN0IGhtbV9yYW5nZSAqcmFuZ2UpCi17Ci0JaWYgKHJhbmdl LT5ub3RpZmllcikKLQkJcmV0dXJuIG1tdV9yYW5nZV9jaGVja19yZXRyeShyYW5nZS0+bm90aWZp ZXIsCi0JCQkJCSAgICAgcmFuZ2UtPm5vdGlmaWVyX3NlcSk7Ci0JcmV0dXJuICFyYW5nZS0+dmFs aWQ7Ci19Ci0KIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbW1fd2Fsa19vcHMgaG1tX3dhbGtfb3BzID0g ewogCS5wdWRfZW50cnkJPSBobW1fdm1hX3dhbGtfcHVkLAogCS5wbWRfZW50cnkJPSBobW1fdm1h X3dhbGtfcG1kLApAQCAtOTAwLDIwICs2MzIsMTUgQEAgbG9uZyBobW1fcmFuZ2VfZmF1bHQoc3Ry dWN0IGhtbV9yYW5nZSAqcmFuZ2UsIHVuc2lnbmVkIGludCBmbGFncykKIAljb25zdCB1bnNpZ25l ZCBsb25nIGRldmljZV92bWEgPSBWTV9JTyB8IFZNX1BGTk1BUCB8IFZNX01JWEVETUFQOwogCXVu c2lnbmVkIGxvbmcgc3RhcnQgPSByYW5nZS0+c3RhcnQsIGVuZDsKIAlzdHJ1Y3QgaG1tX3ZtYV93 YWxrIGhtbV92bWFfd2FsazsKLQlzdHJ1Y3QgbW1fc3RydWN0ICptbTsKKwlzdHJ1Y3QgbW1fc3Ry dWN0ICptbSA9IHJhbmdlLT5ub3RpZmllci0+bW07CiAJc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2 bWE7CiAJaW50IHJldDsKIAotCWlmIChyYW5nZS0+bm90aWZpZXIpCi0JCW1tID0gcmFuZ2UtPm5v dGlmaWVyLT5tbTsKLQllbHNlCi0JCW1tID0gcmFuZ2UtPmhtbS0+bW11X25vdGlmaWVyLm1tOwot CiAJbG9ja2RlcF9hc3NlcnRfaGVsZCgmbW0tPm1tYXBfc2VtKTsKIAogCWRvIHsKIAkJLyogSWYg cmFuZ2UgaXMgbm8gbG9uZ2VyIHZhbGlkIGZvcmNlIHJldHJ5LiAqLwotCQlpZiAobmVlZHNfcmV0 cnkocmFuZ2UpKQorCQlpZiAobW11X3JhbmdlX2NoZWNrX3JldHJ5KHJhbmdlLT5ub3RpZmllciwg cmFuZ2UtPm5vdGlmaWVyX3NlcSkpCiAJCQlyZXR1cm4gLUVCVVNZOwogCiAJCXZtYSA9IGZpbmRf dm1hKG1tLCBzdGFydCk7CkBAIC05NDYsNyArNjczLDkgQEAgbG9uZyBobW1fcmFuZ2VfZmF1bHQo c3RydWN0IGhtbV9yYW5nZSAqcmFuZ2UsIHVuc2lnbmVkIGludCBmbGFncykKIAkJCXN0YXJ0ID0g aG1tX3ZtYV93YWxrLmxhc3Q7CiAKIAkJCS8qIEtlZXAgdHJ5aW5nIHdoaWxlIHRoZSByYW5nZSBp cyB2YWxpZC4gKi8KLQkJfSB3aGlsZSAocmV0ID09IC1FQlVTWSAmJiAhbmVlZHNfcmV0cnkocmFu Z2UpKTsKKwkJfSB3aGlsZSAocmV0ID09IC1FQlVTWSAmJgorCQkJICFtbXVfcmFuZ2VfY2hlY2tf cmV0cnkocmFuZ2UtPm5vdGlmaWVyLAorCQkJCQkJcmFuZ2UtPm5vdGlmaWVyX3NlcSkpOwogCiAJ CWlmIChyZXQpIHsKIAkJCXVuc2lnbmVkIGxvbmcgaTsKQEAgLTEwMDQsNyArNzMzLDggQEAgbG9u ZyBobW1fcmFuZ2VfZG1hX21hcChzdHJ1Y3QgaG1tX3JhbmdlICpyYW5nZSwgc3RydWN0IGRldmlj ZSAqZGV2aWNlLAogCQkJY29udGludWU7CiAKIAkJLyogQ2hlY2sgaWYgcmFuZ2UgaXMgYmVpbmcg aW52YWxpZGF0ZWQgKi8KLQkJaWYgKG5lZWRzX3JldHJ5KHJhbmdlKSkgeworCQlpZiAobW11X3Jh bmdlX2NoZWNrX3JldHJ5KHJhbmdlLT5ub3RpZmllciwKKwkJCQkJICByYW5nZS0+bm90aWZpZXJf c2VxKSkgewogCQkJcmV0ID0gLUVCVVNZOwogCQkJZ290byB1bm1hcDsKIAkJfQotLSAKMi4yMy4w CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwphbWQtZ2Z4 IG1haWxpbmcgbGlzdAphbWQtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3Rz LmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2FtZC1nZng=