From mboxrd@z Thu Jan 1 00:00:00 1970 From: Rob Herring Subject: [PATCH 2/2] drm/panfrost: Add madvise and shrinker support Date: Mon, 5 Aug 2019 08:33:58 -0600 Message-ID: <20190805143358.21245-2-robh@kernel.org> References: <20190805143358.21245-1-robh@kernel.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-io1-f66.google.com (mail-io1-f66.google.com [209.85.166.66]) by gabe.freedesktop.org (Postfix) with ESMTPS id 0424B89E43 for ; Mon, 5 Aug 2019 14:34:03 +0000 (UTC) Received: by mail-io1-f66.google.com with SMTP id j5so163633341ioj.8 for ; Mon, 05 Aug 2019 07:34:02 -0700 (PDT) In-Reply-To: <20190805143358.21245-1-robh@kernel.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: dri-devel@lists.freedesktop.org Cc: Rob Clark , Tomeu Vizoso , David Airlie , Steven Price , Alyssa Rosenzweig List-Id: dri-devel@lists.freedesktop.org QWRkIHN1cHBvcnQgZm9yIG1hZHZpc2UgYW5kIGEgc2hyaW5rZXIgc2ltaWxhciB0byBvdGhlciBk cml2ZXJzLiBUaGlzCmFsbG93cyB1c2Vyc3BhY2UgdG8gbWFyayBCT3Mgd2hpY2ggY2FuIGJlIGZy ZWVkIHdoZW4gdGhlcmUgaXMgbWVtb3J5CnByZXNzdXJlLgoKVW5saWtlIG90aGVyIGltcGxlbWVu dGF0aW9ucywgd2UgZG9uJ3QgZGVwZW5kIG9uIHN0cnVjdF9tdXRleC4gVGhlCmRyaXZlciBtYWlu dGFpbnMgYSBsaXN0IG9mIEJPcyB3aGljaCBjYW4gYmUgZnJlZWQgd2hlbiB0aGUgc2hyaW5rZXIK aXMgY2FsbGVkLiBBY2Nlc3MgdG8gdGhlIGxpc3QgaXMgc2VyaWFsaXplZCB3aXRoIHRoZSBzaHJp bmtlcl9sb2NrLgoKQ2M6IFRvbWV1IFZpem9zbyA8dG9tZXUudml6b3NvQGNvbGxhYm9yYS5jb20+ CkNjOiBEYXZpZCBBaXJsaWUgPGFpcmxpZWRAbGludXguaWU+CkNjOiBEYW5pZWwgVmV0dGVyIDxk YW5pZWxAZmZ3bGwuY2g+ClNpZ25lZC1vZmYtYnk6IFJvYiBIZXJyaW5nIDxyb2JoQGtlcm5lbC5v cmc+Ci0tLQogZHJpdmVycy9ncHUvZHJtL3BhbmZyb3N0L01ha2VmaWxlICAgICAgICAgICAgIHwg ICAxICsKIGRyaXZlcnMvZ3B1L2RybS9wYW5mcm9zdC9UT0RPICAgICAgICAgICAgICAgICB8ICAg MyAtCiBkcml2ZXJzL2dwdS9kcm0vcGFuZnJvc3QvcGFuZnJvc3RfZGV2aWNlLmggICAgfCAgIDQg KwogZHJpdmVycy9ncHUvZHJtL3BhbmZyb3N0L3BhbmZyb3N0X2Rydi5jICAgICAgIHwgIDM4ICsr KysrKysKIGRyaXZlcnMvZ3B1L2RybS9wYW5mcm9zdC9wYW5mcm9zdF9nZW0uYyAgICAgICB8ICAg NSArCiBkcml2ZXJzL2dwdS9kcm0vcGFuZnJvc3QvcGFuZnJvc3RfZ2VtLmggICAgICAgfCAgIDMg KwogLi4uL2dwdS9kcm0vcGFuZnJvc3QvcGFuZnJvc3RfZ2VtX3Nocmlua2VyLmMgIHwgMTA3ICsr KysrKysrKysrKysrKysrKwogaW5jbHVkZS91YXBpL2RybS9wYW5mcm9zdF9kcm0uaCAgICAgICAg ICAgICAgIHwgIDIyICsrKysKIDggZmlsZXMgY2hhbmdlZCwgMTgwIGluc2VydGlvbnMoKyksIDMg ZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9ncHUvZHJtL3BhbmZyb3N0 L3BhbmZyb3N0X2dlbV9zaHJpbmtlci5jCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3Bh bmZyb3N0L01ha2VmaWxlIGIvZHJpdmVycy9ncHUvZHJtL3BhbmZyb3N0L01ha2VmaWxlCmluZGV4 IGVjZjA4NjRjYjUxNS4uYjcxOTM1ODYyNDE3IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0v cGFuZnJvc3QvTWFrZWZpbGUKKysrIGIvZHJpdmVycy9ncHUvZHJtL3BhbmZyb3N0L01ha2VmaWxl CkBAIC01LDYgKzUsNyBAQCBwYW5mcm9zdC15IDo9IFwKIAlwYW5mcm9zdF9kZXZpY2UubyBcCiAJ cGFuZnJvc3RfZGV2ZnJlcS5vIFwKIAlwYW5mcm9zdF9nZW0ubyBcCisJcGFuZnJvc3RfZ2VtX3No cmlua2VyLm8gXAogCXBhbmZyb3N0X2dwdS5vIFwKIAlwYW5mcm9zdF9qb2IubyBcCiAJcGFuZnJv c3RfbW11Lm8gXApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3BhbmZyb3N0L1RPRE8gYi9k cml2ZXJzL2dwdS9kcm0vcGFuZnJvc3QvVE9ETwppbmRleCBjMmU0NGFkZDM3ZDguLmYzYmVjYThk NGNlOSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3BhbmZyb3N0L1RPRE8KKysrIGIvZHJp dmVycy9ncHUvZHJtL3BhbmZyb3N0L1RPRE8KQEAgLTE4LDEwICsxOCw3IEBACiAKIC0gU3VwcG9y dCB1c2Vyc3BhY2UgY29udHJvbGxlZCBHUFUgdmlydHVhbCBhZGRyZXNzZXMuIE5lZWRlZCBmb3Ig VnVsa2FuLiAoVG9tZXUpCiAKLS0gU3VwcG9ydCBmb3IgbWFkdmlzZSBhbmQgYSBzaHJpbmtlci4K LQogLSBDb21wdXRlIGpvYiBzdXBwb3J0LiBTbyBjYWxsZWQgJ2NvbXB1dGUgb25seScgam9icyBu ZWVkIHRvIGJlIHBsdW1iZWQgdXAgdG8KICAgdXNlcnNwYWNlLgogCiAtIFBlcmZvcm1hbmNlIGNv dW50ZXIgc3VwcG9ydC4gKEJvcmlzKQotCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcGFu ZnJvc3QvcGFuZnJvc3RfZGV2aWNlLmggYi9kcml2ZXJzL2dwdS9kcm0vcGFuZnJvc3QvcGFuZnJv c3RfZGV2aWNlLmgKaW5kZXggODNjYzAxY2FmZGUxLi45NzUxZThkYzllYzYgMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvZ3B1L2RybS9wYW5mcm9zdC9wYW5mcm9zdF9kZXZpY2UuaAorKysgYi9kcml2ZXJz L2dwdS9kcm0vcGFuZnJvc3QvcGFuZnJvc3RfZGV2aWNlLmgKQEAgLTg0LDYgKzg0LDEwIEBAIHN0 cnVjdCBwYW5mcm9zdF9kZXZpY2UgewogCXN0cnVjdCBtdXRleCBzY2hlZF9sb2NrOwogCXN0cnVj dCBtdXRleCByZXNldF9sb2NrOwogCisJc3RydWN0IG11dGV4IHNocmlua2VyX2xvY2s7CisJc3Ry dWN0IGxpc3RfaGVhZCBzaHJpbmtlcl9saXN0OworCXN0cnVjdCBzaHJpbmtlciBzaHJpbmtlcjsK KwogCXN0cnVjdCB7CiAJCXN0cnVjdCBkZXZmcmVxICpkZXZmcmVxOwogCQlzdHJ1Y3QgdGhlcm1h bF9jb29saW5nX2RldmljZSAqY29vbGluZzsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9w YW5mcm9zdC9wYW5mcm9zdF9kcnYuYyBiL2RyaXZlcnMvZ3B1L2RybS9wYW5mcm9zdC9wYW5mcm9z dF9kcnYuYwppbmRleCBjYjQzZmY0ZWJmNGEuLjM5OTAwN2QzMDZlYSAxMDA2NDQKLS0tIGEvZHJp dmVycy9ncHUvZHJtL3BhbmZyb3N0L3BhbmZyb3N0X2Rydi5jCisrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9wYW5mcm9zdC9wYW5mcm9zdF9kcnYuYwpAQCAtMzAxLDYgKzMwMSwzOCBAQCBzdGF0aWMgaW50 IHBhbmZyb3N0X2lvY3RsX2dldF9ib19vZmZzZXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9p ZCAqZGF0YSwKIAlyZXR1cm4gMDsKIH0KIAorc3RhdGljIGludCBwYW5mcm9zdF9pb2N0bF9tYWR2 aXNlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCisJCQkJICBzdHJ1Y3QgZHJt X2ZpbGUgKmZpbGVfcHJpdikKK3sKKwlzdHJ1Y3QgZHJtX3BhbmZyb3N0X21hZHZpc2UgKmFyZ3Mg PSBkYXRhOworCXN0cnVjdCBwYW5mcm9zdF9kZXZpY2UgKnBmZGV2ID0gZGV2LT5kZXZfcHJpdmF0 ZTsKKwlzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKmdlbV9vYmo7CisKKwlnZW1fb2JqID0gZHJtX2dl bV9vYmplY3RfbG9va3VwKGZpbGVfcHJpdiwgYXJncy0+aGFuZGxlKTsKKwlpZiAoIWdlbV9vYmop IHsKKwkJRFJNX0RFQlVHKCJGYWlsZWQgdG8gbG9vayB1cCBHRU0gQk8gJWRcbiIsIGFyZ3MtPmhh bmRsZSk7CisJCXJldHVybiAtRU5PRU5UOworCX0KKworCWFyZ3MtPnJldGFpbmVkID0gZHJtX2dl bV9zaG1lbV9tYWR2aXNlKGdlbV9vYmosIGFyZ3MtPm1hZHYpOworCisJaWYgKGFyZ3MtPnJldGFp bmVkKSB7CisJCXN0cnVjdCBwYW5mcm9zdF9nZW1fb2JqZWN0ICpibyA9IHRvX3BhbmZyb3N0X2Jv KGdlbV9vYmopOworCisJCW11dGV4X2xvY2soJnBmZGV2LT5zaHJpbmtlcl9sb2NrKTsKKworCQlp ZiAoYXJncy0+bWFkdiA9PSBQQU5GUk9TVF9NQURWX0RPTlRORUVEKQorCQkJbGlzdF9hZGRfdGFp bCgmYm8tPmJhc2UubWFkdl9saXN0LCAmcGZkZXYtPnNocmlua2VyX2xpc3QpOworCQllbHNlIGlm IChhcmdzLT5tYWR2ID09IFBBTkZST1NUX01BRFZfV0lMTE5FRUQpCisJCQlsaXN0X2RlbF9pbml0 KCZiby0+YmFzZS5tYWR2X2xpc3QpOworCisJCW11dGV4X3VubG9jaygmcGZkZXYtPnNocmlua2Vy X2xvY2spOworCX0KKworCWRybV9nZW1fb2JqZWN0X3B1dF91bmxvY2tlZChnZW1fb2JqKTsKKwly ZXR1cm4gMDsKK30KKwogaW50IHBhbmZyb3N0X3Vuc3RhYmxlX2lvY3RsX2NoZWNrKHZvaWQpCiB7 CiAJaWYgKCF1bnN0YWJsZV9pb2N0bHMpCkBAIC0zNTIsNiArMzg0LDcgQEAgc3RhdGljIGNvbnN0 IHN0cnVjdCBkcm1faW9jdGxfZGVzYyBwYW5mcm9zdF9kcm1fZHJpdmVyX2lvY3Rsc1tdID0gewog CVBBTkZST1NUX0lPQ1RMKEdFVF9CT19PRkZTRVQsCWdldF9ib19vZmZzZXQsCURSTV9SRU5ERVJf QUxMT1cpLAogCVBBTkZST1NUX0lPQ1RMKFBFUkZDTlRfRU5BQkxFLAlwZXJmY250X2VuYWJsZSwJ RFJNX1JFTkRFUl9BTExPVyksCiAJUEFORlJPU1RfSU9DVEwoUEVSRkNOVF9EVU1QLAlwZXJmY250 X2R1bXAsCURSTV9SRU5ERVJfQUxMT1cpLAorCVBBTkZST1NUX0lPQ1RMKE1BRFZJU0UsCQltYWR2 aXNlLAlEUk1fUkVOREVSX0FMTE9XKSwKIH07CiAKIERFRklORV9EUk1fR0VNX1NITUVNX0ZPUFMo cGFuZnJvc3RfZHJtX2RyaXZlcl9mb3BzKTsKQEAgLTQwMCw2ICs0MzMsOCBAQCBzdGF0aWMgaW50 IHBhbmZyb3N0X3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiAJcGZkZXYtPmRk ZXYgPSBkZGV2OwogCiAJc3Bpbl9sb2NrX2luaXQoJnBmZGV2LT5tbV9sb2NrKTsKKwltdXRleF9p bml0KCZwZmRldi0+c2hyaW5rZXJfbG9jayk7CisJSU5JVF9MSVNUX0hFQUQoJnBmZGV2LT5zaHJp bmtlcl9saXN0KTsKIAogCS8qIDRHIGVub3VnaCBmb3Igbm93LiBjYW4gYmUgNDgtYml0ICovCiAJ ZHJtX21tX2luaXQoJnBmZGV2LT5tbSwgU1pfMzJNID4+IFBBR0VfU0hJRlQsIChTWl80RyAtIFNa XzMyTSkgPj4gUEFHRV9TSElGVCk7CkBAIC00MzAsNiArNDY1LDggQEAgc3RhdGljIGludCBwYW5m cm9zdF9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQogCWlmIChlcnIgPCAwKQog CQlnb3RvIGVycl9vdXQxOwogCisJcGFuZnJvc3RfZ2VtX3Nocmlua2VyX2luaXQoZGRldik7CisK IAlyZXR1cm4gMDsKIAogZXJyX291dDE6CkBAIC00NDYsNiArNDgzLDcgQEAgc3RhdGljIGludCBw YW5mcm9zdF9yZW1vdmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKIAlzdHJ1Y3QgZHJt X2RldmljZSAqZGRldiA9IHBmZGV2LT5kZGV2OwogCiAJZHJtX2Rldl91bnJlZ2lzdGVyKGRkZXYp OworCXBhbmZyb3N0X2dlbV9zaHJpbmtlcl9jbGVhbnVwKGRkZXYpOwogCXBtX3J1bnRpbWVfZ2V0 X3N5bmMocGZkZXYtPmRldik7CiAJcG1fcnVudGltZV9wdXRfc3luY19hdXRvc3VzcGVuZChwZmRl di0+ZGV2KTsKIAlwbV9ydW50aW1lX2Rpc2FibGUocGZkZXYtPmRldik7CmRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vcGFuZnJvc3QvcGFuZnJvc3RfZ2VtLmMgYi9kcml2ZXJzL2dwdS9kcm0v cGFuZnJvc3QvcGFuZnJvc3RfZ2VtLmMKaW5kZXggNTQzYWIxYjgxYmQ1Li42N2QzNzQxODQzNDAg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9wYW5mcm9zdC9wYW5mcm9zdF9nZW0uYworKysg Yi9kcml2ZXJzL2dwdS9kcm0vcGFuZnJvc3QvcGFuZnJvc3RfZ2VtLmMKQEAgLTI2LDYgKzI2LDEx IEBAIHN0YXRpYyB2b2lkIHBhbmZyb3N0X2dlbV9mcmVlX29iamVjdChzdHJ1Y3QgZHJtX2dlbV9v YmplY3QgKm9iaikKIAlkcm1fbW1fcmVtb3ZlX25vZGUoJmJvLT5ub2RlKTsKIAlzcGluX3VubG9j aygmcGZkZXYtPm1tX2xvY2spOwogCisJbXV0ZXhfbG9jaygmcGZkZXYtPnNocmlua2VyX2xvY2sp OworCWlmICghbGlzdF9lbXB0eSgmYm8tPmJhc2UubWFkdl9saXN0KSkKKwkJbGlzdF9kZWwoJmJv LT5iYXNlLm1hZHZfbGlzdCk7CisJbXV0ZXhfdW5sb2NrKCZwZmRldi0+c2hyaW5rZXJfbG9jayk7 CisKIAlkcm1fZ2VtX3NobWVtX2ZyZWVfb2JqZWN0KG9iaik7CiB9CiAKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9wYW5mcm9zdC9wYW5mcm9zdF9nZW0uaCBiL2RyaXZlcnMvZ3B1L2RybS9w YW5mcm9zdC9wYW5mcm9zdF9nZW0uaAppbmRleCA2ZGJjYWJhMDIwZmMuLjVmNTFmODgxZWEzZiAx MDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3BhbmZyb3N0L3BhbmZyb3N0X2dlbS5oCisrKyBi L2RyaXZlcnMvZ3B1L2RybS9wYW5mcm9zdC9wYW5mcm9zdF9nZW0uaApAQCAtMjcsNCArMjcsNyBA QCBwYW5mcm9zdF9nZW1fcHJpbWVfaW1wb3J0X3NnX3RhYmxlKHN0cnVjdCBkcm1fZGV2aWNlICpk ZXYsCiAJCQkJICAgc3RydWN0IGRtYV9idWZfYXR0YWNobWVudCAqYXR0YWNoLAogCQkJCSAgIHN0 cnVjdCBzZ190YWJsZSAqc2d0KTsKIAordm9pZCBwYW5mcm9zdF9nZW1fc2hyaW5rZXJfaW5pdChz dHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsKK3ZvaWQgcGFuZnJvc3RfZ2VtX3Nocmlua2VyX2NsZWFu dXAoc3RydWN0IGRybV9kZXZpY2UgKmRldik7CisKICNlbmRpZiAvKiBfX1BBTkZST1NUX0dFTV9I X18gKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9wYW5mcm9zdC9wYW5mcm9zdF9nZW1f c2hyaW5rZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9wYW5mcm9zdC9wYW5mcm9zdF9nZW1fc2hyaW5r ZXIuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmQxOTE2MzJiNjE5 NwotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9wYW5mcm9zdC9wYW5mcm9zdF9n ZW1fc2hyaW5rZXIuYwpAQCAtMCwwICsxLDEwNyBAQAorLyogU1BEWC1MaWNlbnNlLUlkZW50aWZp ZXI6IEdQTC0yLjAgKi8KKy8qIENvcHlyaWdodCAoQykgMjAxOSBBcm0gTHRkLgorICoKKyAqIEJh c2VkIG9uIG1zbV9nZW1fZnJlZWRyZW5vLmM6CisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgUmVkIEhh dAorICogQXV0aG9yOiBSb2IgQ2xhcmsgPHJvYmRjbGFya0BnbWFpbC5jb20+CisgKi8KKworI2lu Y2x1ZGUgPGxpbnV4L2xpc3QuaD4KKworI2luY2x1ZGUgPGRybS9kcm1fZGV2aWNlLmg+CisjaW5j bHVkZSA8ZHJtL2RybV9nZW1fc2htZW1faGVscGVyLmg+CisKKyNpbmNsdWRlICJwYW5mcm9zdF9k ZXZpY2UuaCIKKyNpbmNsdWRlICJwYW5mcm9zdF9nZW0uaCIKKyNpbmNsdWRlICJwYW5mcm9zdF9t bXUuaCIKKworc3RhdGljIHVuc2lnbmVkIGxvbmcKK3BhbmZyb3N0X2dlbV9zaHJpbmtlcl9jb3Vu dChzdHJ1Y3Qgc2hyaW5rZXIgKnNocmlua2VyLCBzdHJ1Y3Qgc2hyaW5rX2NvbnRyb2wgKnNjKQor eworCXN0cnVjdCBwYW5mcm9zdF9kZXZpY2UgKnBmZGV2ID0KKwkJY29udGFpbmVyX29mKHNocmlu a2VyLCBzdHJ1Y3QgcGFuZnJvc3RfZGV2aWNlLCBzaHJpbmtlcik7CisJc3RydWN0IGRybV9nZW1f c2htZW1fb2JqZWN0ICpzaG1lbTsKKwl1bnNpZ25lZCBsb25nIGNvdW50ID0gMDsKKworCWlmICgh bXV0ZXhfdHJ5bG9jaygmcGZkZXYtPnNocmlua2VyX2xvY2spKQorCQlyZXR1cm4gMDsKKworCWxp c3RfZm9yX2VhY2hfZW50cnkoc2htZW0sICZwZmRldi0+c2hyaW5rZXJfbGlzdCwgbWFkdl9saXN0 KSB7CisJCWlmIChkcm1fZ2VtX3NobWVtX2lzX3B1cmdlYWJsZShzaG1lbSkpCisJCQljb3VudCAr PSBzaG1lbS0+YmFzZS5zaXplID4+IFBBR0VfU0hJRlQ7CisJfQorCisJbXV0ZXhfdW5sb2NrKCZw ZmRldi0+c2hyaW5rZXJfbG9jayk7CisKKwlyZXR1cm4gY291bnQ7Cit9CisKK3N0YXRpYyB2b2lk IHBhbmZyb3N0X2dlbV9wdXJnZShzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKm9iaikKK3sKKwlzdHJ1 Y3QgZHJtX2dlbV9zaG1lbV9vYmplY3QgKnNobWVtID0gdG9fZHJtX2dlbV9zaG1lbV9vYmoob2Jq KTsKKwltdXRleF9sb2NrKCZzaG1lbS0+cGFnZXNfbG9jayk7CisKKwlwYW5mcm9zdF9tbXVfdW5t YXAodG9fcGFuZnJvc3RfYm8ob2JqKSk7CisJZHJtX2dlbV9zaG1lbV9wdXJnZV9sb2NrZWQob2Jq KTsKKworCW11dGV4X3VubG9jaygmc2htZW0tPnBhZ2VzX2xvY2spOworfQorCitzdGF0aWMgdW5z aWduZWQgbG9uZworcGFuZnJvc3RfZ2VtX3Nocmlua2VyX3NjYW4oc3RydWN0IHNocmlua2VyICpz aHJpbmtlciwgc3RydWN0IHNocmlua19jb250cm9sICpzYykKK3sKKwlzdHJ1Y3QgcGFuZnJvc3Rf ZGV2aWNlICpwZmRldiA9CisJCWNvbnRhaW5lcl9vZihzaHJpbmtlciwgc3RydWN0IHBhbmZyb3N0 X2RldmljZSwgc2hyaW5rZXIpOworCXN0cnVjdCBkcm1fZ2VtX3NobWVtX29iamVjdCAqc2htZW0s ICp0bXA7CisJdW5zaWduZWQgbG9uZyBmcmVlZCA9IDA7CisKKwlpZiAoIW11dGV4X3RyeWxvY2so JnBmZGV2LT5zaHJpbmtlcl9sb2NrKSkKKwkJcmV0dXJuIFNIUklOS19TVE9QOworCisJbGlzdF9m b3JfZWFjaF9lbnRyeV9zYWZlKHNobWVtLCB0bXAsICZwZmRldi0+c2hyaW5rZXJfbGlzdCwgbWFk dl9saXN0KSB7CisJCWlmIChmcmVlZCA+PSBzYy0+bnJfdG9fc2NhbikKKwkJCWJyZWFrOworCQlp ZiAoZHJtX2dlbV9zaG1lbV9pc19wdXJnZWFibGUoc2htZW0pKSB7CisJCQlwYW5mcm9zdF9nZW1f cHVyZ2UoJnNobWVtLT5iYXNlKTsKKwkJCWZyZWVkICs9IHNobWVtLT5iYXNlLnNpemUgPj4gUEFH RV9TSElGVDsKKwkJCWxpc3RfZGVsX2luaXQoJnNobWVtLT5tYWR2X2xpc3QpOworCQl9CisJfQor CisJbXV0ZXhfdW5sb2NrKCZwZmRldi0+c2hyaW5rZXJfbG9jayk7CisKKwlpZiAoZnJlZWQgPiAw KQorCQlwcl9pbmZvX3JhdGVsaW1pdGVkKCJQdXJnaW5nICVsdSBieXRlc1xuIiwgZnJlZWQgPDwg UEFHRV9TSElGVCk7CisKKwlyZXR1cm4gZnJlZWQ7Cit9CisKKy8qKgorICogcGFuZnJvc3RfZ2Vt X3Nocmlua2VyX2luaXQgLSBJbml0aWFsaXplIHBhbmZyb3N0IHNocmlua2VyCisgKiBAZGV2OiBE Uk0gZGV2aWNlCisgKgorICogVGhpcyBmdW5jdGlvbiByZWdpc3RlcnMgYW5kIHNldHMgdXAgdGhl IHBhbmZyb3N0IHNocmlua2VyLgorICovCit2b2lkIHBhbmZyb3N0X2dlbV9zaHJpbmtlcl9pbml0 KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCit7CisJc3RydWN0IHBhbmZyb3N0X2RldmljZSAqcGZk ZXYgPSBkZXYtPmRldl9wcml2YXRlOworCXBmZGV2LT5zaHJpbmtlci5jb3VudF9vYmplY3RzID0g cGFuZnJvc3RfZ2VtX3Nocmlua2VyX2NvdW50OworCXBmZGV2LT5zaHJpbmtlci5zY2FuX29iamVj dHMgPSBwYW5mcm9zdF9nZW1fc2hyaW5rZXJfc2NhbjsKKwlwZmRldi0+c2hyaW5rZXIuc2Vla3Mg PSBERUZBVUxUX1NFRUtTOworCVdBUk5fT04ocmVnaXN0ZXJfc2hyaW5rZXIoJnBmZGV2LT5zaHJp bmtlcikpOworfQorCisvKioKKyAqIHBhbmZyb3N0X2dlbV9zaHJpbmtlcl9jbGVhbnVwIC0gQ2xl YW4gdXAgcGFuZnJvc3Qgc2hyaW5rZXIKKyAqIEBkZXY6IERSTSBkZXZpY2UKKyAqCisgKiBUaGlz IGZ1bmN0aW9uIHVucmVnaXN0ZXJzIHRoZSBwYW5mcm9zdCBzaHJpbmtlci4KKyAqLwordm9pZCBw YW5mcm9zdF9nZW1fc2hyaW5rZXJfY2xlYW51cChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQorewor CXN0cnVjdCBwYW5mcm9zdF9kZXZpY2UgKnBmZGV2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKKworCWlm IChwZmRldi0+c2hyaW5rZXIubnJfZGVmZXJyZWQpIHsKKwkJdW5yZWdpc3Rlcl9zaHJpbmtlcigm cGZkZXYtPnNocmlua2VyKTsKKwl9Cit9CmRpZmYgLS1naXQgYS9pbmNsdWRlL3VhcGkvZHJtL3Bh bmZyb3N0X2RybS5oIGIvaW5jbHVkZS91YXBpL2RybS9wYW5mcm9zdF9kcm0uaAppbmRleCBiNWQz NzA2Mzg4NDYuLjFiM2ZmOTEwZWJlNyAxMDA2NDQKLS0tIGEvaW5jbHVkZS91YXBpL2RybS9wYW5m cm9zdF9kcm0uaAorKysgYi9pbmNsdWRlL3VhcGkvZHJtL3BhbmZyb3N0X2RybS5oCkBAIC0yMCw2 ICsyMCw3IEBAIGV4dGVybiAiQyIgewogI2RlZmluZSBEUk1fUEFORlJPU1RfR0VUX0JPX09GRlNF VAkJMHgwNQogI2RlZmluZSBEUk1fUEFORlJPU1RfUEVSRkNOVF9FTkFCTEUJCTB4MDYKICNkZWZp bmUgRFJNX1BBTkZST1NUX1BFUkZDTlRfRFVNUAkJMHgwNworI2RlZmluZSBEUk1fUEFORlJPU1Rf TUFEVklTRQkJCTB4MDgKIAogI2RlZmluZSBEUk1fSU9DVExfUEFORlJPU1RfU1VCTUlUCQlEUk1f SU9XKERSTV9DT01NQU5EX0JBU0UgKyBEUk1fUEFORlJPU1RfU1VCTUlULCBzdHJ1Y3QgZHJtX3Bh bmZyb3N0X3N1Ym1pdCkKICNkZWZpbmUgRFJNX0lPQ1RMX1BBTkZST1NUX1dBSVRfQk8JCURSTV9J T1coRFJNX0NPTU1BTkRfQkFTRSArIERSTV9QQU5GUk9TVF9XQUlUX0JPLCBzdHJ1Y3QgZHJtX3Bh bmZyb3N0X3dhaXRfYm8pCkBAIC0yNyw2ICsyOCw3IEBAIGV4dGVybiAiQyIgewogI2RlZmluZSBE Uk1fSU9DVExfUEFORlJPU1RfTU1BUF9CTwkJRFJNX0lPV1IoRFJNX0NPTU1BTkRfQkFTRSArIERS TV9QQU5GUk9TVF9NTUFQX0JPLCBzdHJ1Y3QgZHJtX3BhbmZyb3N0X21tYXBfYm8pCiAjZGVmaW5l IERSTV9JT0NUTF9QQU5GUk9TVF9HRVRfUEFSQU0JCURSTV9JT1dSKERSTV9DT01NQU5EX0JBU0Ug KyBEUk1fUEFORlJPU1RfR0VUX1BBUkFNLCBzdHJ1Y3QgZHJtX3BhbmZyb3N0X2dldF9wYXJhbSkK ICNkZWZpbmUgRFJNX0lPQ1RMX1BBTkZST1NUX0dFVF9CT19PRkZTRVQJRFJNX0lPV1IoRFJNX0NP TU1BTkRfQkFTRSArIERSTV9QQU5GUk9TVF9HRVRfQk9fT0ZGU0VULCBzdHJ1Y3QgZHJtX3BhbmZy b3N0X2dldF9ib19vZmZzZXQpCisjZGVmaW5lIERSTV9JT0NUTF9QQU5GUk9TVF9NQURWSVNFCQlE Uk1fSU9XUihEUk1fQ09NTUFORF9CQVNFICsgRFJNX1BBTkZST1NUX01BRFZJU0UsIHN0cnVjdCBk cm1fcGFuZnJvc3RfbWFkdmlzZSkKIAogLyoKICAqIFVuc3RhYmxlIGlvY3RsKHMpOiBvbmx5IGV4 cG9zZWQgd2hlbiB0aGUgdW5zYWZlIHVuc3RhYmxlX2lvY3RscyBtb2R1bGUKQEAgLTE1OSw2ICsx NjEsMjYgQEAgc3RydWN0IGRybV9wYW5mcm9zdF9wZXJmY250X2R1bXAgewogCV9fdTY0IGJ1Zl9w dHI7CiB9OwogCisvKiBtYWR2aXNlIHByb3ZpZGVzIGEgd2F5IHRvIHRlbGwgdGhlIGtlcm5lbCBp biBjYXNlIGEgYnVmZmVycyBjb250ZW50cworICogY2FuIGJlIGRpc2NhcmRlZCB1bmRlciBtZW1v cnkgcHJlc3N1cmUsIHdoaWNoIGlzIHVzZWZ1bCBmb3IgdXNlcnNwYWNlCisgKiBibyBjYWNoZSB3 aGVyZSB3ZSB3YW50IHRvIG9wdGltaXN0aWNhbGx5IGhvbGQgb24gdG8gYnVmZmVyIGFsbG9jYXRl CisgKiBhbmQgcG90ZW50aWFsIG1tYXAsIGJ1dCBhbGxvdyB0aGUgcGFnZXMgdG8gYmUgZGlzY2Fy ZGVkIHVuZGVyIG1lbW9yeQorICogcHJlc3N1cmUuCisgKgorICogVHlwaWNhbCB1c2FnZSB3b3Vs ZCBpbnZvbHZlIG1hZHZpc2UoRE9OVE5FRUQpIHdoZW4gYnVmZmVyIGVudGVycyBCTworICogY2Fj aGUsIGFuZCBtYWR2aXNlKFdJTExORUVEKSBpZiB0cnlpbmcgdG8gcmVjeWNsZSBidWZmZXIgZnJv bSBCTyBjYWNoZS4KKyAqIEluIHRoZSBXSUxMTkVFRCBjYXNlLCAncmV0YWluZWQnIGluZGljYXRl cyB0byB1c2Vyc3BhY2Ugd2hldGhlciB0aGUKKyAqIGJhY2tpbmcgcGFnZXMgc3RpbGwgZXhpc3Qu CisgKi8KKyNkZWZpbmUgUEFORlJPU1RfTUFEVl9XSUxMTkVFRCAwCS8qIGJhY2tpbmcgcGFnZXMg YXJlIG5lZWRlZCwgc3RhdHVzIHJldHVybmVkIGluICdyZXRhaW5lZCcgKi8KKyNkZWZpbmUgUEFO RlJPU1RfTUFEVl9ET05UTkVFRCAxCS8qIGJhY2tpbmcgcGFnZXMgbm90IG5lZWRlZCAqLworCitz dHJ1Y3QgZHJtX3BhbmZyb3N0X21hZHZpc2UgeworCV9fdTMyIGhhbmRsZTsgICAgICAgICAvKiBp biwgR0VNIGhhbmRsZSAqLworCV9fdTMyIG1hZHY7ICAgICAgICAgICAvKiBpbiwgUEFORlJPU1Rf TUFEVl94ICovCisJX191MzIgcmV0YWluZWQ7ICAgICAgIC8qIG91dCwgd2hldGhlciBiYWNraW5n IHN0b3JlIHN0aWxsIGV4aXN0cyAqLworfTsKKwogI2lmIGRlZmluZWQoX19jcGx1c3BsdXMpCiB9 CiAjZW5kaWYKLS0gCjIuMjAuMQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRl c2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8v ZHJpLWRldmVs