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_INVALID,DKIM_SIGNED, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 19C6CC3A59C for ; Fri, 16 Aug 2019 13:00:48 +0000 (UTC) Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) (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 D46F82133F for ; Fri, 16 Aug 2019 13:00:47 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=infradead.org header.i=@infradead.org header.b="iR4RQqu+" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org D46F82133F Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=lst.de Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=xen-devel-bounces@lists.xenproject.org Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1hybqH-0006qW-RQ; Fri, 16 Aug 2019 13:00:29 +0000 Received: from us1-rack-iad1.inumbo.com ([172.99.69.81]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1hybqG-0006qM-Vj for xen-devel@lists.xenproject.org; Fri, 16 Aug 2019 13:00:29 +0000 X-Inumbo-ID: cf14b4b4-c025-11e9-b90c-bc764e2007e4 Received: from bombadil.infradead.org (unknown [2607:7c80:54:e::133]) by us1-rack-iad1.inumbo.com (Halon) with ESMTPS id cf14b4b4-c025-11e9-b90c-bc764e2007e4; Fri, 16 Aug 2019 13:00:23 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=bombadil.20170209; h=Content-Transfer-Encoding: MIME-Version:References:In-Reply-To:Message-Id:Date:Subject:Cc:To:From:Sender :Reply-To:Content-Type:Content-ID:Content-Description:Resent-Date:Resent-From :Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help: List-Unsubscribe:List-Subscribe:List-Post:List-Owner:List-Archive; bh=CYpi0teFzgsdcDn3Rp0ocLA5BezN+Qr08JclQqd6e88=; b=iR4RQqu+h7VeOJs3PiAKiaDx+J 0dsRrPWFooTfSjcYzwbherx+7E+OVGBRvLsc4Wq745SS+m+hH0+iUik9lH1ZANHls6qWujSGnlhtP UpwcE9H/YMCloTFqRSLIc8rVFd6ahPqvlUTyVC00v5fi+dVRDZvX/JlDoggaQmC7P+okYl5VO/ddd aFBOY5QQ9wDLpTW2hhp/WqQ95qnjFMayfCDKpfGTyrYHjI9NxxxVvyxV5I/lLHNbKG5ZRmDTotMeo fY3SujHW4HknHL86mVCFL9NevgCcr1EdGeaWY0/7Q2HmOay73c17hIRV1JajhdJ/MEvb5kjG7/pP8 2r/CX9nQ==; Received: from [91.112.187.46] (helo=localhost) by bombadil.infradead.org with esmtpsa (Exim 4.92 #3 (Red Hat Linux)) id 1hybq7-0006JH-8s; Fri, 16 Aug 2019 13:00:20 +0000 From: Christoph Hellwig To: Stefano Stabellini , Konrad Rzeszutek Wilk Date: Fri, 16 Aug 2019 15:00:03 +0200 Message-Id: <20190816130013.31154-2-hch@lst.de> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20190816130013.31154-1-hch@lst.de> References: <20190816130013.31154-1-hch@lst.de> MIME-Version: 1.0 X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org. See http://www.infradead.org/rpr.html Subject: [Xen-devel] [PATCH 01/11] xen/arm: use dma-noncoherent.h calls for xen-swiotlb cache maintainance X-BeenThere: xen-devel@lists.xenproject.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Cc: xen-devel@lists.xenproject.org, iommu@lists.linux-foundation.org, x86@kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" UmV1c2UgdGhlIGFybTY0IGNvZGUgdGhhdCB1c2VzIHRoZSBkbWEtZGlyZWN0L3N3aW90bGIgaGVs cGVycyBmb3IgRE1BCm5vbi1jb2hlcmVudCBkZXZpY2VzLgoKU2lnbmVkLW9mZi1ieTogQ2hyaXN0 b3BoIEhlbGx3aWcgPGhjaEBsc3QuZGU+Ci0tLQogYXJjaC9hcm0vS2NvbmZpZyAgICAgICAgICAg ICAgICAgICAgICAgICAgIHwgIDQgKwogYXJjaC9hcm0vaW5jbHVkZS9hc20vZGV2aWNlLmggICAg ICAgICAgICAgIHwgIDMgLQogYXJjaC9hcm0vaW5jbHVkZS9hc20veGVuL3BhZ2UtY29oZXJlbnQu aCAgIHwgOTMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogYXJjaC9hcm0vbW0vS2NvbmZpZyAgICAg ICAgICAgICAgICAgICAgICAgIHwgIDQgLQogYXJjaC9hcm0vbW0vZG1hLW1hcHBpbmcuYyAgICAg ICAgICAgICAgICAgIHwgIDggKy0KIGFyY2gvYXJtNjQvaW5jbHVkZS9hc20veGVuL3BhZ2UtY29o ZXJlbnQuaCB8IDc1IC0tLS0tLS0tLS0tLS0tLS0tCiBkcml2ZXJzL3hlbi9zd2lvdGxiLXhlbi5j ICAgICAgICAgICAgICAgICAgfCA0OSArLS0tLS0tLS0tLS0KIGluY2x1ZGUveGVuL2FybS9wYWdl LWNvaGVyZW50LmggICAgICAgICAgICB8IDcxICsrKysrKysrKysrKysrKysrCiA4IGZpbGVzIGNo YW5nZWQsIDc4IGluc2VydGlvbnMoKyksIDIyOSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9h cmNoL2FybS9LY29uZmlnIGIvYXJjaC9hcm0vS2NvbmZpZwppbmRleCAzM2IwMDU3OWJlZmYuLjI0 MzYwMjExNTM0YSAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vS2NvbmZpZworKysgYi9hcmNoL2FybS9L Y29uZmlnCkBAIC03LDYgKzcsOCBAQCBjb25maWcgQVJNCiAJc2VsZWN0IEFSQ0hfSEFTX0JJTkZN VF9GTEFUCiAJc2VsZWN0IEFSQ0hfSEFTX0RFQlVHX1ZJUlRVQUwgaWYgTU1VCiAJc2VsZWN0IEFS Q0hfSEFTX0RFVk1FTV9JU19BTExPV0VECisJc2VsZWN0IEFSQ0hfSEFTX0RNQV9DT0hFUkVOVF9U T19QRk4gaWYgU1dJT1RMQgorCXNlbGVjdCBBUkNIX0hBU19ETUFfTU1BUF9QR1BST1QgaWYgU1dJ T1RMQgogCXNlbGVjdCBBUkNIX0hBU19FTEZfUkFORE9NSVpFCiAJc2VsZWN0IEFSQ0hfSEFTX0ZP UlRJRllfU09VUkNFCiAJc2VsZWN0IEFSQ0hfSEFTX0tFRVBJTklUUkQKQEAgLTE4LDYgKzIwLDgg QEAgY29uZmlnIEFSTQogCXNlbGVjdCBBUkNIX0hBU19TRVRfTUVNT1JZCiAJc2VsZWN0IEFSQ0hf SEFTX1NUUklDVF9LRVJORUxfUldYIGlmIE1NVSAmJiAhWElQX0tFUk5FTAogCXNlbGVjdCBBUkNI X0hBU19TVFJJQ1RfTU9EVUxFX1JXWCBpZiBNTVUKKwlzZWxlY3QgQVJDSF9IQVNfU1lOQ19ETUFf Rk9SX0RFVklDRSBpZiBTV0lPVExCCisJc2VsZWN0IEFSQ0hfSEFTX1NZTkNfRE1BX0ZPUl9DUFUg aWYgU1dJT1RMQgogCXNlbGVjdCBBUkNIX0hBU19URUFSRE9XTl9ETUFfT1BTIGlmIE1NVQogCXNl bGVjdCBBUkNIX0hBU19USUNLX0JST0FEQ0FTVCBpZiBHRU5FUklDX0NMT0NLRVZFTlRTX0JST0FE Q0FTVAogCXNlbGVjdCBBUkNIX0hBVkVfQ1VTVE9NX0dQSU9fSApkaWZmIC0tZ2l0IGEvYXJjaC9h cm0vaW5jbHVkZS9hc20vZGV2aWNlLmggYi9hcmNoL2FybS9pbmNsdWRlL2FzbS9kZXZpY2UuaApp bmRleCBmNjk1NWI1NWM1NDQuLmM2NzViYzBkNWFhOCAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vaW5j bHVkZS9hc20vZGV2aWNlLmgKKysrIGIvYXJjaC9hcm0vaW5jbHVkZS9hc20vZGV2aWNlLmgKQEAg LTE0LDkgKzE0LDYgQEAgc3RydWN0IGRldl9hcmNoZGF0YSB7CiAjZW5kaWYKICNpZmRlZiBDT05G SUdfQVJNX0RNQV9VU0VfSU9NTVUKIAlzdHJ1Y3QgZG1hX2lvbW11X21hcHBpbmcJKm1hcHBpbmc7 Ci0jZW5kaWYKLSNpZmRlZiBDT05GSUdfWEVOCi0JY29uc3Qgc3RydWN0IGRtYV9tYXBfb3BzICpk ZXZfZG1hX29wczsKICNlbmRpZgogCXVuc2lnbmVkIGludCBkbWFfY29oZXJlbnQ6MTsKIAl1bnNp Z25lZCBpbnQgZG1hX29wc19zZXR1cDoxOwpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vaW5jbHVkZS9h c20veGVuL3BhZ2UtY29oZXJlbnQuaCBiL2FyY2gvYXJtL2luY2x1ZGUvYXNtL3hlbi9wYWdlLWNv aGVyZW50LmgKaW5kZXggMmM0MDNlN2M3ODJkLi4yN2U5ODQ5Nzc0MDIgMTAwNjQ0Ci0tLSBhL2Fy Y2gvYXJtL2luY2x1ZGUvYXNtL3hlbi9wYWdlLWNvaGVyZW50LmgKKysrIGIvYXJjaC9hcm0vaW5j bHVkZS9hc20veGVuL3BhZ2UtY29oZXJlbnQuaApAQCAtMSw5NSArMSwyIEBACiAvKiBTUERYLUxp Y2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMCAqLwotI2lmbmRlZiBfQVNNX0FSTV9YRU5fUEFHRV9D T0hFUkVOVF9ICi0jZGVmaW5lIF9BU01fQVJNX1hFTl9QQUdFX0NPSEVSRU5UX0gKLQotI2luY2x1 ZGUgPGxpbnV4L2RtYS1tYXBwaW5nLmg+Ci0jaW5jbHVkZSA8YXNtL3BhZ2UuaD4KICNpbmNsdWRl IDx4ZW4vYXJtL3BhZ2UtY29oZXJlbnQuaD4KLQotc3RhdGljIGlubGluZSBjb25zdCBzdHJ1Y3Qg ZG1hX21hcF9vcHMgKnhlbl9nZXRfZG1hX29wcyhzdHJ1Y3QgZGV2aWNlICpkZXYpCi17Ci0JaWYg KGRldiAmJiBkZXYtPmFyY2hkYXRhLmRldl9kbWFfb3BzKQotCQlyZXR1cm4gZGV2LT5hcmNoZGF0 YS5kZXZfZG1hX29wczsKLQlyZXR1cm4gZ2V0X2FyY2hfZG1hX29wcyhOVUxMKTsKLX0KLQotc3Rh dGljIGlubGluZSB2b2lkICp4ZW5fYWxsb2NfY29oZXJlbnRfcGFnZXMoc3RydWN0IGRldmljZSAq aHdkZXYsIHNpemVfdCBzaXplLAotCQlkbWFfYWRkcl90ICpkbWFfaGFuZGxlLCBnZnBfdCBmbGFn cywgdW5zaWduZWQgbG9uZyBhdHRycykKLXsKLQlyZXR1cm4geGVuX2dldF9kbWFfb3BzKGh3ZGV2 KS0+YWxsb2MoaHdkZXYsIHNpemUsIGRtYV9oYW5kbGUsIGZsYWdzLCBhdHRycyk7Ci19Ci0KLXN0 YXRpYyBpbmxpbmUgdm9pZCB4ZW5fZnJlZV9jb2hlcmVudF9wYWdlcyhzdHJ1Y3QgZGV2aWNlICpo d2Rldiwgc2l6ZV90IHNpemUsCi0JCXZvaWQgKmNwdV9hZGRyLCBkbWFfYWRkcl90IGRtYV9oYW5k bGUsIHVuc2lnbmVkIGxvbmcgYXR0cnMpCi17Ci0JeGVuX2dldF9kbWFfb3BzKGh3ZGV2KS0+ZnJl ZShod2Rldiwgc2l6ZSwgY3B1X2FkZHIsIGRtYV9oYW5kbGUsIGF0dHJzKTsKLX0KLQotc3RhdGlj IGlubGluZSB2b2lkIHhlbl9kbWFfbWFwX3BhZ2Uoc3RydWN0IGRldmljZSAqaHdkZXYsIHN0cnVj dCBwYWdlICpwYWdlLAotCSAgICAgZG1hX2FkZHJfdCBkZXZfYWRkciwgdW5zaWduZWQgbG9uZyBv ZmZzZXQsIHNpemVfdCBzaXplLAotCSAgICAgZW51bSBkbWFfZGF0YV9kaXJlY3Rpb24gZGlyLCB1 bnNpZ25lZCBsb25nIGF0dHJzKQotewotCXVuc2lnbmVkIGxvbmcgcGFnZV9wZm4gPSBwYWdlX3Rv X3hlbl9wZm4ocGFnZSk7Ci0JdW5zaWduZWQgbG9uZyBkZXZfcGZuID0gWEVOX1BGTl9ET1dOKGRl dl9hZGRyKTsKLQl1bnNpZ25lZCBsb25nIGNvbXBvdW5kX3BhZ2VzID0KLQkJKDE8PGNvbXBvdW5k X29yZGVyKHBhZ2UpKSAqIFhFTl9QRk5fUEVSX1BBR0U7Ci0JYm9vbCBsb2NhbCA9IChwYWdlX3Bm biA8PSBkZXZfcGZuKSAmJgotCQkoZGV2X3BmbiAtIHBhZ2VfcGZuIDwgY29tcG91bmRfcGFnZXMp OwotCi0JLyoKLQkgKiBEb20wIGlzIG1hcHBlZCAxOjEsIHdoaWxlIHRoZSBMaW51eCBwYWdlIGNh biBzcGFuIGFjcm9zcwotCSAqIG11bHRpcGxlIFhlbiBwYWdlcywgaXQncyBub3QgcG9zc2libGUg Zm9yIGl0IHRvIGNvbnRhaW4gYQotCSAqIG1peCBvZiBsb2NhbCBhbmQgZm9yZWlnbiBYZW4gcGFn ZXMuIFNvIGlmIHRoZSBmaXJzdCB4ZW5fcGZuCi0JICogPT0gbWZuIHRoZSBwYWdlIGlzIGxvY2Fs IG90aGVyd2lzZSBpdCdzIGEgZm9yZWlnbiBwYWdlCi0JICogZ3JhbnQtbWFwcGVkIGluIGRvbTAu IElmIHRoZSBwYWdlIGlzIGxvY2FsIHdlIGNhbiBzYWZlbHkKLQkgKiBjYWxsIHRoZSBuYXRpdmUg ZG1hX29wcyBmdW5jdGlvbiwgb3RoZXJ3aXNlIHdlIGNhbGwgdGhlIHhlbgotCSAqIHNwZWNpZmlj IGZ1bmN0aW9uLgotCSAqLwotCWlmIChsb2NhbCkKLQkJeGVuX2dldF9kbWFfb3BzKGh3ZGV2KS0+ bWFwX3BhZ2UoaHdkZXYsIHBhZ2UsIG9mZnNldCwgc2l6ZSwgZGlyLCBhdHRycyk7Ci0JZWxzZQot CQlfX3hlbl9kbWFfbWFwX3BhZ2UoaHdkZXYsIHBhZ2UsIGRldl9hZGRyLCBvZmZzZXQsIHNpemUs IGRpciwgYXR0cnMpOwotfQotCi1zdGF0aWMgaW5saW5lIHZvaWQgeGVuX2RtYV91bm1hcF9wYWdl KHN0cnVjdCBkZXZpY2UgKmh3ZGV2LCBkbWFfYWRkcl90IGhhbmRsZSwKLQkJc2l6ZV90IHNpemUs IGVudW0gZG1hX2RhdGFfZGlyZWN0aW9uIGRpciwgdW5zaWduZWQgbG9uZyBhdHRycykKLXsKLQl1 bnNpZ25lZCBsb25nIHBmbiA9IFBGTl9ET1dOKGhhbmRsZSk7Ci0JLyoKLQkgKiBEb20wIGlzIG1h cHBlZCAxOjEsIHdoaWxlIHRoZSBMaW51eCBwYWdlIGNhbiBiZSBzcGFubmVkIGFjY3Jvc3MKLQkg KiBtdWx0aXBsZSBYZW4gcGFnZSwgaXQncyBub3QgcG9zc2libGUgdG8gaGF2ZSBhIG1peCBvZiBs b2NhbCBhbmQKLQkgKiBmb3JlaWduIFhlbiBwYWdlLiBEb20wIGlzIG1hcHBlZCAxOjEsIHNvIGNh bGxpbmcgcGZuX3ZhbGlkIG9uIGEKLQkgKiBmb3JlaWduIG1mbiB3aWxsIGFsd2F5cyByZXR1cm4g ZmFsc2UuIElmIHRoZSBwYWdlIGlzIGxvY2FsIHdlIGNhbgotCSAqIHNhZmVseSBjYWxsIHRoZSBu YXRpdmUgZG1hX29wcyBmdW5jdGlvbiwgb3RoZXJ3aXNlIHdlIGNhbGwgdGhlIHhlbgotCSAqIHNw ZWNpZmljIGZ1bmN0aW9uLgotCSAqLwotCWlmIChwZm5fdmFsaWQocGZuKSkgewotCQlpZiAoeGVu X2dldF9kbWFfb3BzKGh3ZGV2KS0+dW5tYXBfcGFnZSkKLQkJCXhlbl9nZXRfZG1hX29wcyhod2Rl diktPnVubWFwX3BhZ2UoaHdkZXYsIGhhbmRsZSwgc2l6ZSwgZGlyLCBhdHRycyk7Ci0JfSBlbHNl Ci0JCV9feGVuX2RtYV91bm1hcF9wYWdlKGh3ZGV2LCBoYW5kbGUsIHNpemUsIGRpciwgYXR0cnMp OwotfQotCi1zdGF0aWMgaW5saW5lIHZvaWQgeGVuX2RtYV9zeW5jX3NpbmdsZV9mb3JfY3B1KHN0 cnVjdCBkZXZpY2UgKmh3ZGV2LAotCQlkbWFfYWRkcl90IGhhbmRsZSwgc2l6ZV90IHNpemUsIGVu dW0gZG1hX2RhdGFfZGlyZWN0aW9uIGRpcikKLXsKLQl1bnNpZ25lZCBsb25nIHBmbiA9IFBGTl9E T1dOKGhhbmRsZSk7Ci0JaWYgKHBmbl92YWxpZChwZm4pKSB7Ci0JCWlmICh4ZW5fZ2V0X2RtYV9v cHMoaHdkZXYpLT5zeW5jX3NpbmdsZV9mb3JfY3B1KQotCQkJeGVuX2dldF9kbWFfb3BzKGh3ZGV2 KS0+c3luY19zaW5nbGVfZm9yX2NwdShod2RldiwgaGFuZGxlLCBzaXplLCBkaXIpOwotCX0gZWxz ZQotCQlfX3hlbl9kbWFfc3luY19zaW5nbGVfZm9yX2NwdShod2RldiwgaGFuZGxlLCBzaXplLCBk aXIpOwotfQotCi1zdGF0aWMgaW5saW5lIHZvaWQgeGVuX2RtYV9zeW5jX3NpbmdsZV9mb3JfZGV2 aWNlKHN0cnVjdCBkZXZpY2UgKmh3ZGV2LAotCQlkbWFfYWRkcl90IGhhbmRsZSwgc2l6ZV90IHNp emUsIGVudW0gZG1hX2RhdGFfZGlyZWN0aW9uIGRpcikKLXsKLQl1bnNpZ25lZCBsb25nIHBmbiA9 IFBGTl9ET1dOKGhhbmRsZSk7Ci0JaWYgKHBmbl92YWxpZChwZm4pKSB7Ci0JCWlmICh4ZW5fZ2V0 X2RtYV9vcHMoaHdkZXYpLT5zeW5jX3NpbmdsZV9mb3JfZGV2aWNlKQotCQkJeGVuX2dldF9kbWFf b3BzKGh3ZGV2KS0+c3luY19zaW5nbGVfZm9yX2RldmljZShod2RldiwgaGFuZGxlLCBzaXplLCBk aXIpOwotCX0gZWxzZQotCQlfX3hlbl9kbWFfc3luY19zaW5nbGVfZm9yX2RldmljZShod2Rldiwg aGFuZGxlLCBzaXplLCBkaXIpOwotfQotCi0jZW5kaWYgLyogX0FTTV9BUk1fWEVOX1BBR0VfQ09I RVJFTlRfSCAqLwpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbW0vS2NvbmZpZyBiL2FyY2gvYXJtL21t L0tjb25maWcKaW5kZXggYzU0Y2Q3ZWQ5MGJhLi5jMTIyMmMwZTlmZDMgMTAwNjQ0Ci0tLSBhL2Fy Y2gvYXJtL21tL0tjb25maWcKKysrIGIvYXJjaC9hcm0vbW0vS2NvbmZpZwpAQCAtNjY0LDEwICs2 NjQsNiBAQCBjb25maWcgQVJNX0xQQUUKIAkJIUNQVV8zMnY0ICYmICFDUFVfMzJ2MwogCXNlbGVj dCBQSFlTX0FERFJfVF82NEJJVAogCXNlbGVjdCBTV0lPVExCCi0Jc2VsZWN0IEFSQ0hfSEFTX0RN QV9DT0hFUkVOVF9UT19QRk4KLQlzZWxlY3QgQVJDSF9IQVNfRE1BX01NQVBfUEdQUk9UCi0Jc2Vs ZWN0IEFSQ0hfSEFTX1NZTkNfRE1BX0ZPUl9ERVZJQ0UKLQlzZWxlY3QgQVJDSF9IQVNfU1lOQ19E TUFfRk9SX0NQVQogCWhlbHAKIAkgIFNheSBZIGlmIHlvdSBoYXZlIGFuIEFSTXY3IHByb2Nlc3Nv ciBzdXBwb3J0aW5nIHRoZSBMUEFFIHBhZ2UKIAkgIHRhYmxlIGZvcm1hdCBhbmQgeW91IHdvdWxk IGxpa2UgdG8gYWNjZXNzIG1lbW9yeSBiZXlvbmQgdGhlCmRpZmYgLS1naXQgYS9hcmNoL2FybS9t bS9kbWEtbWFwcGluZy5jIGIvYXJjaC9hcm0vbW0vZG1hLW1hcHBpbmcuYwppbmRleCBkNDI1NTdl ZTY5YzIuLjczODA5NzM5NjQ0NSAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vbW0vZG1hLW1hcHBpbmcu YworKysgYi9hcmNoL2FybS9tbS9kbWEtbWFwcGluZy5jCkBAIC0xMTMyLDEwICsxMTMyLDYgQEAg c3RhdGljIGNvbnN0IHN0cnVjdCBkbWFfbWFwX29wcyAqYXJtX2dldF9kbWFfbWFwX29wcyhib29s IGNvaGVyZW50KQogCSAqIDMyLWJpdCBETUEuCiAJICogVXNlIHRoZSBnZW5lcmljIGRtYS1kaXJl Y3QgLyBzd2lvdGxiIG9wcyBjb2RlIGluIHRoYXQgY2FzZSwgYXMgdGhhdAogCSAqIGhhbmRsZXMg Ym91bmNlIGJ1ZmZlcmluZyBmb3IgdXMuCi0JICoKLQkgKiBOb3RlOiB0aGlzIGNoZWNrcyBDT05G SUdfQVJNX0xQQUUgaW5zdGVhZCBvZiBDT05GSUdfU1dJT1RMQiBhcyB0aGUKLQkgKiBsYXR0ZXIg aXMgYWxzbyBzZWxlY3RlZCBieSB0aGUgWGVuIGNvZGUsIGJ1dCB0aGF0IGNvZGUgZm9yIG5vdyBy ZWxpZXMKLQkgKiBvbiBub24tTlVMTCBkZXZfZG1hX29wcy4gIFRvIGJlIGNsZWFuZWQgdXAgbGF0 ZXIuCiAJICovCiAJaWYgKElTX0VOQUJMRUQoQ09ORklHX0FSTV9MUEFFKSkKIAkJcmV0dXJuIE5V TEw7CkBAIC0yMzYzLDEwICsyMzU5LDggQEAgdm9pZCBhcmNoX3NldHVwX2RtYV9vcHMoc3RydWN0 IGRldmljZSAqZGV2LCB1NjQgZG1hX2Jhc2UsIHU2NCBzaXplLAogCXNldF9kbWFfb3BzKGRldiwg ZG1hX29wcyk7CiAKICNpZmRlZiBDT05GSUdfWEVOCi0JaWYgKHhlbl9pbml0aWFsX2RvbWFpbigp KSB7Ci0JCWRldi0+YXJjaGRhdGEuZGV2X2RtYV9vcHMgPSBkZXYtPmRtYV9vcHM7CisJaWYgKHhl bl9pbml0aWFsX2RvbWFpbigpKQogCQlkZXYtPmRtYV9vcHMgPSB4ZW5fZG1hX29wczsKLQl9CiAj ZW5kaWYKIAlkZXYtPmFyY2hkYXRhLmRtYV9vcHNfc2V0dXAgPSB0cnVlOwogfQpkaWZmIC0tZ2l0 IGEvYXJjaC9hcm02NC9pbmNsdWRlL2FzbS94ZW4vcGFnZS1jb2hlcmVudC5oIGIvYXJjaC9hcm02 NC9pbmNsdWRlL2FzbS94ZW4vcGFnZS1jb2hlcmVudC5oCmluZGV4IGQ4OGU1NmI5MGI5My4uMjdl OTg0OTc3NDAyIDEwMDY0NAotLS0gYS9hcmNoL2FybTY0L2luY2x1ZGUvYXNtL3hlbi9wYWdlLWNv aGVyZW50LmgKKysrIGIvYXJjaC9hcm02NC9pbmNsdWRlL2FzbS94ZW4vcGFnZS1jb2hlcmVudC5o CkBAIC0xLDc3ICsxLDIgQEAKIC8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wICov Ci0jaWZuZGVmIF9BU01fQVJNNjRfWEVOX1BBR0VfQ09IRVJFTlRfSAotI2RlZmluZSBfQVNNX0FS TTY0X1hFTl9QQUdFX0NPSEVSRU5UX0gKLQotI2luY2x1ZGUgPGxpbnV4L2RtYS1tYXBwaW5nLmg+ Ci0jaW5jbHVkZSA8YXNtL3BhZ2UuaD4KICNpbmNsdWRlIDx4ZW4vYXJtL3BhZ2UtY29oZXJlbnQu aD4KLQotc3RhdGljIGlubGluZSB2b2lkICp4ZW5fYWxsb2NfY29oZXJlbnRfcGFnZXMoc3RydWN0 IGRldmljZSAqaHdkZXYsIHNpemVfdCBzaXplLAotCQlkbWFfYWRkcl90ICpkbWFfaGFuZGxlLCBn ZnBfdCBmbGFncywgdW5zaWduZWQgbG9uZyBhdHRycykKLXsKLQlyZXR1cm4gZG1hX2RpcmVjdF9h bGxvYyhod2Rldiwgc2l6ZSwgZG1hX2hhbmRsZSwgZmxhZ3MsIGF0dHJzKTsKLX0KLQotc3RhdGlj IGlubGluZSB2b2lkIHhlbl9mcmVlX2NvaGVyZW50X3BhZ2VzKHN0cnVjdCBkZXZpY2UgKmh3ZGV2 LCBzaXplX3Qgc2l6ZSwKLQkJdm9pZCAqY3B1X2FkZHIsIGRtYV9hZGRyX3QgZG1hX2hhbmRsZSwg dW5zaWduZWQgbG9uZyBhdHRycykKLXsKLQlkbWFfZGlyZWN0X2ZyZWUoaHdkZXYsIHNpemUsIGNw dV9hZGRyLCBkbWFfaGFuZGxlLCBhdHRycyk7Ci19Ci0KLXN0YXRpYyBpbmxpbmUgdm9pZCB4ZW5f ZG1hX3N5bmNfc2luZ2xlX2Zvcl9jcHUoc3RydWN0IGRldmljZSAqaHdkZXYsCi0JCWRtYV9hZGRy X3QgaGFuZGxlLCBzaXplX3Qgc2l6ZSwgZW51bSBkbWFfZGF0YV9kaXJlY3Rpb24gZGlyKQotewot CXVuc2lnbmVkIGxvbmcgcGZuID0gUEZOX0RPV04oaGFuZGxlKTsKLQotCWlmIChwZm5fdmFsaWQo cGZuKSkKLQkJZG1hX2RpcmVjdF9zeW5jX3NpbmdsZV9mb3JfY3B1KGh3ZGV2LCBoYW5kbGUsIHNp emUsIGRpcik7Ci0JZWxzZQotCQlfX3hlbl9kbWFfc3luY19zaW5nbGVfZm9yX2NwdShod2Rldiwg aGFuZGxlLCBzaXplLCBkaXIpOwotfQotCi1zdGF0aWMgaW5saW5lIHZvaWQgeGVuX2RtYV9zeW5j X3NpbmdsZV9mb3JfZGV2aWNlKHN0cnVjdCBkZXZpY2UgKmh3ZGV2LAotCQlkbWFfYWRkcl90IGhh bmRsZSwgc2l6ZV90IHNpemUsIGVudW0gZG1hX2RhdGFfZGlyZWN0aW9uIGRpcikKLXsKLQl1bnNp Z25lZCBsb25nIHBmbiA9IFBGTl9ET1dOKGhhbmRsZSk7Ci0JaWYgKHBmbl92YWxpZChwZm4pKQot CQlkbWFfZGlyZWN0X3N5bmNfc2luZ2xlX2Zvcl9kZXZpY2UoaHdkZXYsIGhhbmRsZSwgc2l6ZSwg ZGlyKTsKLQllbHNlCi0JCV9feGVuX2RtYV9zeW5jX3NpbmdsZV9mb3JfZGV2aWNlKGh3ZGV2LCBo YW5kbGUsIHNpemUsIGRpcik7Ci19Ci0KLXN0YXRpYyBpbmxpbmUgdm9pZCB4ZW5fZG1hX21hcF9w YWdlKHN0cnVjdCBkZXZpY2UgKmh3ZGV2LCBzdHJ1Y3QgcGFnZSAqcGFnZSwKLQkgICAgIGRtYV9h ZGRyX3QgZGV2X2FkZHIsIHVuc2lnbmVkIGxvbmcgb2Zmc2V0LCBzaXplX3Qgc2l6ZSwKLQkgICAg IGVudW0gZG1hX2RhdGFfZGlyZWN0aW9uIGRpciwgdW5zaWduZWQgbG9uZyBhdHRycykKLXsKLQl1 bnNpZ25lZCBsb25nIHBhZ2VfcGZuID0gcGFnZV90b194ZW5fcGZuKHBhZ2UpOwotCXVuc2lnbmVk IGxvbmcgZGV2X3BmbiA9IFhFTl9QRk5fRE9XTihkZXZfYWRkcik7Ci0JdW5zaWduZWQgbG9uZyBj b21wb3VuZF9wYWdlcyA9Ci0JCSgxPDxjb21wb3VuZF9vcmRlcihwYWdlKSkgKiBYRU5fUEZOX1BF Ul9QQUdFOwotCWJvb2wgbG9jYWwgPSAocGFnZV9wZm4gPD0gZGV2X3BmbikgJiYKLQkJKGRldl9w Zm4gLSBwYWdlX3BmbiA8IGNvbXBvdW5kX3BhZ2VzKTsKLQotCWlmIChsb2NhbCkKLQkJZG1hX2Rp cmVjdF9tYXBfcGFnZShod2RldiwgcGFnZSwgb2Zmc2V0LCBzaXplLCBkaXIsIGF0dHJzKTsKLQll bHNlCi0JCV9feGVuX2RtYV9tYXBfcGFnZShod2RldiwgcGFnZSwgZGV2X2FkZHIsIG9mZnNldCwg c2l6ZSwgZGlyLCBhdHRycyk7Ci19Ci0KLXN0YXRpYyBpbmxpbmUgdm9pZCB4ZW5fZG1hX3VubWFw X3BhZ2Uoc3RydWN0IGRldmljZSAqaHdkZXYsIGRtYV9hZGRyX3QgaGFuZGxlLAotCQlzaXplX3Qg c2l6ZSwgZW51bSBkbWFfZGF0YV9kaXJlY3Rpb24gZGlyLCB1bnNpZ25lZCBsb25nIGF0dHJzKQot ewotCXVuc2lnbmVkIGxvbmcgcGZuID0gUEZOX0RPV04oaGFuZGxlKTsKLQkvKgotCSAqIERvbTAg aXMgbWFwcGVkIDE6MSwgd2hpbGUgdGhlIExpbnV4IHBhZ2UgY2FuIGJlIHNwYW5uZWQgYWNjcm9z cwotCSAqIG11bHRpcGxlIFhlbiBwYWdlLCBpdCdzIG5vdCBwb3NzaWJsZSB0byBoYXZlIGEgbWl4 IG9mIGxvY2FsIGFuZAotCSAqIGZvcmVpZ24gWGVuIHBhZ2UuIERvbTAgaXMgbWFwcGVkIDE6MSwg c28gY2FsbGluZyBwZm5fdmFsaWQgb24gYQotCSAqIGZvcmVpZ24gbWZuIHdpbGwgYWx3YXlzIHJl dHVybiBmYWxzZS4gSWYgdGhlIHBhZ2UgaXMgbG9jYWwgd2UgY2FuCi0JICogc2FmZWx5IGNhbGwg dGhlIG5hdGl2ZSBkbWFfb3BzIGZ1bmN0aW9uLCBvdGhlcndpc2Ugd2UgY2FsbCB0aGUgeGVuCi0J ICogc3BlY2lmaWMgZnVuY3Rpb24uCi0JICovCi0JaWYgKHBmbl92YWxpZChwZm4pKQotCQlkbWFf ZGlyZWN0X3VubWFwX3BhZ2UoaHdkZXYsIGhhbmRsZSwgc2l6ZSwgZGlyLCBhdHRycyk7Ci0JZWxz ZQotCQlfX3hlbl9kbWFfdW5tYXBfcGFnZShod2RldiwgaGFuZGxlLCBzaXplLCBkaXIsIGF0dHJz KTsKLX0KLQotI2VuZGlmIC8qIF9BU01fQVJNNjRfWEVOX1BBR0VfQ09IRVJFTlRfSCAqLwpkaWZm IC0tZ2l0IGEvZHJpdmVycy94ZW4vc3dpb3RsYi14ZW4uYyBiL2RyaXZlcnMveGVuL3N3aW90bGIt eGVuLmMKaW5kZXggYWUxZGY0OTZiZjM4Li5iODgwODY3N2FlMWQgMTAwNjQ0Ci0tLSBhL2RyaXZl cnMveGVuL3N3aW90bGIteGVuLmMKKysrIGIvZHJpdmVycy94ZW4vc3dpb3RsYi14ZW4uYwpAQCAt NTQ3LDUxICs1NDcsNiBAQCB4ZW5fc3dpb3RsYl9kbWFfc3VwcG9ydGVkKHN0cnVjdCBkZXZpY2Ug Kmh3ZGV2LCB1NjQgbWFzaykKIAlyZXR1cm4geGVuX3ZpcnRfdG9fYnVzKHhlbl9pb190bGJfZW5k IC0gMSkgPD0gbWFzazsKIH0KIAotLyoKLSAqIENyZWF0ZSB1c2Vyc3BhY2UgbWFwcGluZyBmb3Ig dGhlIERNQS1jb2hlcmVudCBtZW1vcnkuCi0gKiBUaGlzIGZ1bmN0aW9uIHNob3VsZCBiZSBjYWxs ZWQgd2l0aCB0aGUgcGFnZXMgZnJvbSB0aGUgY3VycmVudCBkb21haW4gb25seSwKLSAqIHBhc3Np bmcgcGFnZXMgbWFwcGVkIGZyb20gb3RoZXIgZG9tYWlucyB3b3VsZCBsZWFkIHRvIG1lbW9yeSBj b3JydXB0aW9uLgotICovCi1zdGF0aWMgaW50Ci14ZW5fc3dpb3RsYl9kbWFfbW1hcChzdHJ1Y3Qg ZGV2aWNlICpkZXYsIHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hLAotCQkgICAgIHZvaWQgKmNw dV9hZGRyLCBkbWFfYWRkcl90IGRtYV9hZGRyLCBzaXplX3Qgc2l6ZSwKLQkJICAgICB1bnNpZ25l ZCBsb25nIGF0dHJzKQotewotI2lmZGVmIENPTkZJR19BUk0KLQlpZiAoeGVuX2dldF9kbWFfb3Bz KGRldiktPm1tYXApCi0JCXJldHVybiB4ZW5fZ2V0X2RtYV9vcHMoZGV2KS0+bW1hcChkZXYsIHZt YSwgY3B1X2FkZHIsCi0JCQkJCQkgICAgZG1hX2FkZHIsIHNpemUsIGF0dHJzKTsKLSNlbmRpZgot CXJldHVybiBkbWFfY29tbW9uX21tYXAoZGV2LCB2bWEsIGNwdV9hZGRyLCBkbWFfYWRkciwgc2l6 ZSwgYXR0cnMpOwotfQotCi0vKgotICogVGhpcyBmdW5jdGlvbiBzaG91bGQgYmUgY2FsbGVkIHdp dGggdGhlIHBhZ2VzIGZyb20gdGhlIGN1cnJlbnQgZG9tYWluIG9ubHksCi0gKiBwYXNzaW5nIHBh Z2VzIG1hcHBlZCBmcm9tIG90aGVyIGRvbWFpbnMgd291bGQgbGVhZCB0byBtZW1vcnkgY29ycnVw dGlvbi4KLSAqLwotc3RhdGljIGludAoteGVuX3N3aW90bGJfZ2V0X3NndGFibGUoc3RydWN0IGRl dmljZSAqZGV2LCBzdHJ1Y3Qgc2dfdGFibGUgKnNndCwKLQkJCXZvaWQgKmNwdV9hZGRyLCBkbWFf YWRkcl90IGhhbmRsZSwgc2l6ZV90IHNpemUsCi0JCQl1bnNpZ25lZCBsb25nIGF0dHJzKQotewot I2lmZGVmIENPTkZJR19BUk0KLQlpZiAoeGVuX2dldF9kbWFfb3BzKGRldiktPmdldF9zZ3RhYmxl KSB7Ci0jaWYgMAotCS8qCi0JICogVGhpcyBjaGVjayB2ZXJpZmllcyB0aGF0IHRoZSBwYWdlIGJl bG9uZ3MgdG8gdGhlIGN1cnJlbnQgZG9tYWluIGFuZAotCSAqIGlzIG5vdCBvbmUgbWFwcGVkIGZy b20gYW5vdGhlciBkb21haW4uCi0JICogVGhpcyBjaGVjayBpcyBmb3IgZGVidWcgb25seSwgYW5k IHNob3VsZCBub3QgZ28gdG8gcHJvZHVjdGlvbiBidWlsZAotCSAqLwotCQl1bnNpZ25lZCBsb25n IGJmbiA9IFBIWVNfUEZOKGRtYV90b19waHlzKGRldiwgaGFuZGxlKSk7Ci0JCUJVR19PTiAoIXBh Z2VfaXNfcmFtKGJmbikpOwotI2VuZGlmCi0JCXJldHVybiB4ZW5fZ2V0X2RtYV9vcHMoZGV2KS0+ Z2V0X3NndGFibGUoZGV2LCBzZ3QsIGNwdV9hZGRyLAotCQkJCQkJCSAgIGhhbmRsZSwgc2l6ZSwg YXR0cnMpOwotCX0KLSNlbmRpZgotCXJldHVybiBkbWFfY29tbW9uX2dldF9zZ3RhYmxlKGRldiwg c2d0LCBjcHVfYWRkciwgaGFuZGxlLCBzaXplLCBhdHRycyk7Ci19Ci0KIGNvbnN0IHN0cnVjdCBk bWFfbWFwX29wcyB4ZW5fc3dpb3RsYl9kbWFfb3BzID0gewogCS5hbGxvYyA9IHhlbl9zd2lvdGxi X2FsbG9jX2NvaGVyZW50LAogCS5mcmVlID0geGVuX3N3aW90bGJfZnJlZV9jb2hlcmVudCwKQEAg LTYwNCw2ICs1NTksNiBAQCBjb25zdCBzdHJ1Y3QgZG1hX21hcF9vcHMgeGVuX3N3aW90bGJfZG1h X29wcyA9IHsKIAkubWFwX3BhZ2UgPSB4ZW5fc3dpb3RsYl9tYXBfcGFnZSwKIAkudW5tYXBfcGFn ZSA9IHhlbl9zd2lvdGxiX3VubWFwX3BhZ2UsCiAJLmRtYV9zdXBwb3J0ZWQgPSB4ZW5fc3dpb3Rs Yl9kbWFfc3VwcG9ydGVkLAotCS5tbWFwID0geGVuX3N3aW90bGJfZG1hX21tYXAsCi0JLmdldF9z Z3RhYmxlID0geGVuX3N3aW90bGJfZ2V0X3NndGFibGUsCisJLm1tYXAgPSBkbWFfY29tbW9uX21t YXAsCisJLmdldF9zZ3RhYmxlID0gZG1hX2NvbW1vbl9nZXRfc2d0YWJsZSwKIH07CmRpZmYgLS1n aXQgYS9pbmNsdWRlL3hlbi9hcm0vcGFnZS1jb2hlcmVudC5oIGIvaW5jbHVkZS94ZW4vYXJtL3Bh Z2UtY29oZXJlbnQuaAppbmRleCAyY2E5MTY0YTc5YmYuLmRhMmNjMDljOGVkYSAxMDA2NDQKLS0t IGEvaW5jbHVkZS94ZW4vYXJtL3BhZ2UtY29oZXJlbnQuaAorKysgYi9pbmNsdWRlL3hlbi9hcm0v cGFnZS1jb2hlcmVudC5oCkBAIC0yLDYgKzIsOSBAQAogI2lmbmRlZiBfWEVOX0FSTV9QQUdFX0NP SEVSRU5UX0gKICNkZWZpbmUgX1hFTl9BUk1fUEFHRV9DT0hFUkVOVF9ICiAKKyNpbmNsdWRlIDxs aW51eC9kbWEtbWFwcGluZy5oPgorI2luY2x1ZGUgPGFzbS9wYWdlLmg+CisKIHZvaWQgX194ZW5f ZG1hX21hcF9wYWdlKHN0cnVjdCBkZXZpY2UgKmh3ZGV2LCBzdHJ1Y3QgcGFnZSAqcGFnZSwKIAkg ICAgIGRtYV9hZGRyX3QgZGV2X2FkZHIsIHVuc2lnbmVkIGxvbmcgb2Zmc2V0LCBzaXplX3Qgc2l6 ZSwKIAkgICAgIGVudW0gZG1hX2RhdGFfZGlyZWN0aW9uIGRpciwgdW5zaWduZWQgbG9uZyBhdHRy cyk7CkBAIC0xMyw0ICsxNiw3MiBAQCB2b2lkIF9feGVuX2RtYV9zeW5jX3NpbmdsZV9mb3JfY3B1 KHN0cnVjdCBkZXZpY2UgKmh3ZGV2LAogdm9pZCBfX3hlbl9kbWFfc3luY19zaW5nbGVfZm9yX2Rl dmljZShzdHJ1Y3QgZGV2aWNlICpod2RldiwKIAkJZG1hX2FkZHJfdCBoYW5kbGUsIHNpemVfdCBz aXplLCBlbnVtIGRtYV9kYXRhX2RpcmVjdGlvbiBkaXIpOwogCitzdGF0aWMgaW5saW5lIHZvaWQg Knhlbl9hbGxvY19jb2hlcmVudF9wYWdlcyhzdHJ1Y3QgZGV2aWNlICpod2Rldiwgc2l6ZV90IHNp emUsCisJCWRtYV9hZGRyX3QgKmRtYV9oYW5kbGUsIGdmcF90IGZsYWdzLCB1bnNpZ25lZCBsb25n IGF0dHJzKQoreworCXJldHVybiBkbWFfZGlyZWN0X2FsbG9jKGh3ZGV2LCBzaXplLCBkbWFfaGFu ZGxlLCBmbGFncywgYXR0cnMpOworfQorCitzdGF0aWMgaW5saW5lIHZvaWQgeGVuX2ZyZWVfY29o ZXJlbnRfcGFnZXMoc3RydWN0IGRldmljZSAqaHdkZXYsIHNpemVfdCBzaXplLAorCQl2b2lkICpj cHVfYWRkciwgZG1hX2FkZHJfdCBkbWFfaGFuZGxlLCB1bnNpZ25lZCBsb25nIGF0dHJzKQorewor CWRtYV9kaXJlY3RfZnJlZShod2Rldiwgc2l6ZSwgY3B1X2FkZHIsIGRtYV9oYW5kbGUsIGF0dHJz KTsKK30KKworc3RhdGljIGlubGluZSB2b2lkIHhlbl9kbWFfc3luY19zaW5nbGVfZm9yX2NwdShz dHJ1Y3QgZGV2aWNlICpod2RldiwKKwkJZG1hX2FkZHJfdCBoYW5kbGUsIHNpemVfdCBzaXplLCBl bnVtIGRtYV9kYXRhX2RpcmVjdGlvbiBkaXIpCit7CisJdW5zaWduZWQgbG9uZyBwZm4gPSBQRk5f RE9XTihoYW5kbGUpOworCisJaWYgKHBmbl92YWxpZChwZm4pKQorCQlkbWFfZGlyZWN0X3N5bmNf c2luZ2xlX2Zvcl9jcHUoaHdkZXYsIGhhbmRsZSwgc2l6ZSwgZGlyKTsKKwllbHNlCisJCV9feGVu X2RtYV9zeW5jX3NpbmdsZV9mb3JfY3B1KGh3ZGV2LCBoYW5kbGUsIHNpemUsIGRpcik7Cit9CisK K3N0YXRpYyBpbmxpbmUgdm9pZCB4ZW5fZG1hX3N5bmNfc2luZ2xlX2Zvcl9kZXZpY2Uoc3RydWN0 IGRldmljZSAqaHdkZXYsCisJCWRtYV9hZGRyX3QgaGFuZGxlLCBzaXplX3Qgc2l6ZSwgZW51bSBk bWFfZGF0YV9kaXJlY3Rpb24gZGlyKQoreworCXVuc2lnbmVkIGxvbmcgcGZuID0gUEZOX0RPV04o aGFuZGxlKTsKKwlpZiAocGZuX3ZhbGlkKHBmbikpCisJCWRtYV9kaXJlY3Rfc3luY19zaW5nbGVf Zm9yX2RldmljZShod2RldiwgaGFuZGxlLCBzaXplLCBkaXIpOworCWVsc2UKKwkJX194ZW5fZG1h X3N5bmNfc2luZ2xlX2Zvcl9kZXZpY2UoaHdkZXYsIGhhbmRsZSwgc2l6ZSwgZGlyKTsKK30KKwor c3RhdGljIGlubGluZSB2b2lkIHhlbl9kbWFfbWFwX3BhZ2Uoc3RydWN0IGRldmljZSAqaHdkZXYs IHN0cnVjdCBwYWdlICpwYWdlLAorCSAgICAgZG1hX2FkZHJfdCBkZXZfYWRkciwgdW5zaWduZWQg bG9uZyBvZmZzZXQsIHNpemVfdCBzaXplLAorCSAgICAgZW51bSBkbWFfZGF0YV9kaXJlY3Rpb24g ZGlyLCB1bnNpZ25lZCBsb25nIGF0dHJzKQoreworCXVuc2lnbmVkIGxvbmcgcGFnZV9wZm4gPSBw YWdlX3RvX3hlbl9wZm4ocGFnZSk7CisJdW5zaWduZWQgbG9uZyBkZXZfcGZuID0gWEVOX1BGTl9E T1dOKGRldl9hZGRyKTsKKwl1bnNpZ25lZCBsb25nIGNvbXBvdW5kX3BhZ2VzID0KKwkJKDE8PGNv bXBvdW5kX29yZGVyKHBhZ2UpKSAqIFhFTl9QRk5fUEVSX1BBR0U7CisJYm9vbCBsb2NhbCA9IChw YWdlX3BmbiA8PSBkZXZfcGZuKSAmJgorCQkoZGV2X3BmbiAtIHBhZ2VfcGZuIDwgY29tcG91bmRf cGFnZXMpOworCisJaWYgKGxvY2FsKQorCQlkbWFfZGlyZWN0X21hcF9wYWdlKGh3ZGV2LCBwYWdl LCBvZmZzZXQsIHNpemUsIGRpciwgYXR0cnMpOworCWVsc2UKKwkJX194ZW5fZG1hX21hcF9wYWdl KGh3ZGV2LCBwYWdlLCBkZXZfYWRkciwgb2Zmc2V0LCBzaXplLCBkaXIsIGF0dHJzKTsKK30KKwor c3RhdGljIGlubGluZSB2b2lkIHhlbl9kbWFfdW5tYXBfcGFnZShzdHJ1Y3QgZGV2aWNlICpod2Rl diwgZG1hX2FkZHJfdCBoYW5kbGUsCisJCXNpemVfdCBzaXplLCBlbnVtIGRtYV9kYXRhX2RpcmVj dGlvbiBkaXIsIHVuc2lnbmVkIGxvbmcgYXR0cnMpCit7CisJdW5zaWduZWQgbG9uZyBwZm4gPSBQ Rk5fRE9XTihoYW5kbGUpOworCS8qCisJICogRG9tMCBpcyBtYXBwZWQgMToxLCB3aGlsZSB0aGUg TGludXggcGFnZSBjYW4gYmUgc3Bhbm5lZCBhY2Nyb3NzCisJICogbXVsdGlwbGUgWGVuIHBhZ2Us IGl0J3Mgbm90IHBvc3NpYmxlIHRvIGhhdmUgYSBtaXggb2YgbG9jYWwgYW5kCisJICogZm9yZWln biBYZW4gcGFnZS4gRG9tMCBpcyBtYXBwZWQgMToxLCBzbyBjYWxsaW5nIHBmbl92YWxpZCBvbiBh CisJICogZm9yZWlnbiBtZm4gd2lsbCBhbHdheXMgcmV0dXJuIGZhbHNlLiBJZiB0aGUgcGFnZSBp cyBsb2NhbCB3ZSBjYW4KKwkgKiBzYWZlbHkgY2FsbCB0aGUgbmF0aXZlIGRtYV9vcHMgZnVuY3Rp b24sIG90aGVyd2lzZSB3ZSBjYWxsIHRoZSB4ZW4KKwkgKiBzcGVjaWZpYyBmdW5jdGlvbi4KKwkg Ki8KKwlpZiAocGZuX3ZhbGlkKHBmbikpCisJCWRtYV9kaXJlY3RfdW5tYXBfcGFnZShod2Rldiwg aGFuZGxlLCBzaXplLCBkaXIsIGF0dHJzKTsKKwllbHNlCisJCV9feGVuX2RtYV91bm1hcF9wYWdl KGh3ZGV2LCBoYW5kbGUsIHNpemUsIGRpciwgYXR0cnMpOworfQorCiAjZW5kaWYgLyogX1hFTl9B Uk1fUEFHRV9DT0hFUkVOVF9IICovCi0tIAoyLjIwLjEKCgpfX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZl bEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL21haWxt YW4vbGlzdGluZm8veGVuLWRldmVs