From mboxrd@z Thu Jan 1 00:00:00 1970 From: Rob Herring Subject: [RFC PATCH] drm/panfrost: Add support for mapping BOs on GPU page faults Date: Mon, 10 Jun 2019 11:04:40 -0600 Message-ID: <20190610170440.28525-1-robh@kernel.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-vs1-f65.google.com (mail-vs1-f65.google.com [209.85.217.65]) by gabe.freedesktop.org (Postfix) with ESMTPS id 9C6978915E for ; Mon, 10 Jun 2019 17:06:44 +0000 (UTC) Received: by mail-vs1-f65.google.com with SMTP id q64so5882355vsd.1 for ; Mon, 10 Jun 2019 10:06:44 -0700 (PDT) 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: Boris Brezillon , Robin Murphy , Alyssa Rosenzweig , Steven Price List-Id: dri-devel@lists.freedesktop.org VGhlIG1pZGdhcmQvYmlmcm9zdCBHUFVzIG5lZWQgdG8gYWxsb2NhdGUgR1BVIG1lbW9yeSB3aGlj aCBpcyBhbGxvY2F0ZWQKb24gR1BVIHBhZ2UgZmF1bHRzIGFuZCBub3QgcGlubmVkIGluIG1lbW9y eS4gVGhlIHZlbmRvciBkcml2ZXIgY2FsbHMKdGhpcyBmdW5jdGlvbmFsaXR5IEdST1dfT05fR1BG LgoKVGhpcyBpbXBsZW1lbnRhdGlvbiBhc3N1bWVzIHRoYXQgQk9zIGFsbG9jYXRlZCB3aXRoIHRo ZQpQQU5GUk9TVF9CT19OT01BUCBmbGFnIGFyZSBuZXZlciBtbWFwcGVkIG9yIGV4cG9ydGVkLiBC b3RoIG9mIHRob3NlIG1heQphY3R1YWxseSB3b3JrLCBidXQgSSdtIHVuc3VyZSBpZiB0aGVyZSdz IHNvbWUgaW50ZXJhY3Rpb24gdGhlcmUuIEl0CndvdWxkIGNhdXNlIHRoZSB3aG9sZSBvYmplY3Qg dG8gYmUgcGlubmVkIGluIG1lbW9yeSB3aGljaCB3b3VsZCBkZWZlYXQKdGhlIHBvaW50IG9mIHRo aXMuCgpJc3N1ZXMvcXVlc3Rpb25zL3Rob3VnaHRzOgoKV2hhdCdzIHRoZSBkaWZmZXJlbmNlIGJl dHdlZW4gaV9tYXBwaW5nIGFuZCBmX21hcHBpbmc/CgpXaGF0IGtpbmQgb2YgY2xlYW4tdXAgb24g Y2xvc2UgaXMgbmVlZGVkPyBCYXNlZCBvbiB2Z2VtIGZhdWx0cywgdGhlcmUKZG9lc24ndCBzZWVt IHRvIGJlIGFueSByZWZjb3VudGluZy4gQXNzdW1lIHVzZXJzcGFjZSBpcyByZXNwb25zaWJsZSBm b3IKbm90IGZyZWVpbmcgdGhlIEJPIHdoaWxlIGEgcGFnZSBmYXVsdCBjYW4gb2NjdXI/CgpXaGF0 IGFib3V0IGV2aWN0aW9ucz8gTmVlZCB0byBjYWxsIG1hcHBpbmdfc2V0X3VuZXZpY3RhYmxlKCk/ IE1heWJlIHdlCndhbnQgdGhlc2UgcGFnZXMgdG8gYmUgc3dhcHBhYmxlLCBidXQgdGhlbiB3ZSBu ZWVkIHNvbWUgbm90aWZpY2F0aW9uIHRvCnVubWFwIHRoZW0uCgpObyBuZWVkIGZvciBydW50aW1l IFBNLCBiZWNhdXNlIGZhdWx0cyBzaG91bGQgb25seSBvY2N1ciBkdXJpbmcgam9iCnN1Ym1pdD8K Ck5lZWQgdG8gZmF1bHQgaW4gMk1CIHNlY3Rpb25zIHdoZW4gcG9zc2libGUuIEl0IHNlZW1zIHRo aXMgaGFzIHRvIGJlCmRvbmUgYnkgZ2V0dGluZyBhbiBhcnJheSBvZiBzdHJ1Y3QgcGFnZXMgYW5k IHRoZW4gY29udmVydGluZyB0byBhCnNjYXR0ZXJsaXN0LiBOb3Qgc3VyZSBpZiB0aGVyZSBpcyBh IGJldHRlciB3YXkgdG8gZG8gdGhhdC4gVGhlcmUncyBhbHNvCnNvbWUgZXJyYXRhIG9uIFQ2MDQg bmVlZGluZyB0byBmYXVsdCBpbiBhdCBsZWFzdCA4IHBhZ2VzIGF0IGEgdGltZSB3aGljaAppc24n dCBoYW5kbGVkLgoKQ2M6IFJvYmluIE11cnBoeSA8cm9iaW4ubXVycGh5QGFybS5jb20+CkNjOiBT dGV2ZW4gUHJpY2UgPHN0ZXZlbi5wcmljZUBhcm0uY29tPgpDYzogQWx5c3NhIFJvc2VuendlaWcg PGFseXNzYUByb3Nlbnp3ZWlnLmlvPgpDYzogVG9tZXUgVml6b3NvIDx0b21ldUB0b21ldXZpem9z by5uZXQ+ClNpZ25lZC1vZmYtYnk6IFJvYiBIZXJyaW5nIDxyb2JoQGtlcm5lbC5vcmc+Ci0tLQoK IGRyaXZlcnMvZ3B1L2RybS9wYW5mcm9zdC9UT0RPICAgICAgICAgICB8ICAyIC0KIGRyaXZlcnMv Z3B1L2RybS9wYW5mcm9zdC9wYW5mcm9zdF9kcnYuYyB8IDIyICsrKysrLS0KIGRyaXZlcnMvZ3B1 L2RybS9wYW5mcm9zdC9wYW5mcm9zdF9nZW0uYyB8ICAzICstCiBkcml2ZXJzL2dwdS9kcm0vcGFu ZnJvc3QvcGFuZnJvc3RfZ2VtLmggfCAgOCArKysKIGRyaXZlcnMvZ3B1L2RybS9wYW5mcm9zdC9w YW5mcm9zdF9tbXUuYyB8IDc2ICsrKysrKysrKysrKysrKysrKysrKysrLS0KIGluY2x1ZGUvdWFw aS9kcm0vcGFuZnJvc3RfZHJtLmggICAgICAgICB8ICAyICsKIDYgZmlsZXMgY2hhbmdlZCwgMTAw IGluc2VydGlvbnMoKyksIDEzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9wYW5mcm9zdC9UT0RPIGIvZHJpdmVycy9ncHUvZHJtL3BhbmZyb3N0L1RPRE8KaW5kZXgg YzJlNDRhZGQzN2Q4Li42NDEyOWJmNzM5MzMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9w YW5mcm9zdC9UT0RPCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9wYW5mcm9zdC9UT0RPCkBAIC0xNCw4 ICsxNCw2IEBACiAgIFRoZSBoYXJkIHBhcnQgaXMgaGFuZGxpbmcgd2hlbiBtb3JlIGFkZHJlc3Mg c3BhY2VzIGFyZSBuZWVkZWQgdGhhbiB3aGF0CiAgIHRoZSBoL3cgcHJvdmlkZXMuCiAKLS0gU3Vw cG9ydCBwaW5uaW5nIHBhZ2VzIG9uIGRlbWFuZCAoR1BVIHBhZ2UgZmF1bHRzKS4KLQogLSBTdXBw b3J0IHVzZXJzcGFjZSBjb250cm9sbGVkIEdQVSB2aXJ0dWFsIGFkZHJlc3Nlcy4gTmVlZGVkIGZv ciBWdWxrYW4uIChUb21ldSkKIAogLSBTdXBwb3J0IGZvciBtYWR2aXNlIGFuZCBhIHNocmlua2Vy LgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3BhbmZyb3N0L3BhbmZyb3N0X2Rydi5jIGIv ZHJpdmVycy9ncHUvZHJtL3BhbmZyb3N0L3BhbmZyb3N0X2Rydi5jCmluZGV4IGQxMWUyMjgxZGRl Ni4uZjA4ZDQxZDUxODZhIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vcGFuZnJvc3QvcGFu ZnJvc3RfZHJ2LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3BhbmZyb3N0L3BhbmZyb3N0X2Rydi5j CkBAIC00NCw5ICs0NCwxMSBAQCBzdGF0aWMgaW50IHBhbmZyb3N0X2lvY3RsX2NyZWF0ZV9ibyhz dHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAogewogCWludCByZXQ7CiAJc3RydWN0 IGRybV9nZW1fc2htZW1fb2JqZWN0ICpzaG1lbTsKKwlzdHJ1Y3QgcGFuZnJvc3RfZ2VtX29iamVj dCAqYm87CiAJc3RydWN0IGRybV9wYW5mcm9zdF9jcmVhdGVfYm8gKmFyZ3MgPSBkYXRhOwogCi0J aWYgKCFhcmdzLT5zaXplIHx8IGFyZ3MtPmZsYWdzIHx8IGFyZ3MtPnBhZCkKKwlpZiAoIWFyZ3Mt PnNpemUgfHwgYXJncy0+cGFkIHx8CisJICAgIChhcmdzLT5mbGFncyAmIH5QQU5GUk9TVF9CT19O T01BUCkpCiAJCXJldHVybiAtRUlOVkFMOwogCiAJc2htZW0gPSBkcm1fZ2VtX3NobWVtX2NyZWF0 ZV93aXRoX2hhbmRsZShmaWxlLCBkZXYsIGFyZ3MtPnNpemUsCkBAIC01NCwxMSArNTYsMTYgQEAg c3RhdGljIGludCBwYW5mcm9zdF9pb2N0bF9jcmVhdGVfYm8oc3RydWN0IGRybV9kZXZpY2UgKmRl diwgdm9pZCAqZGF0YSwKIAlpZiAoSVNfRVJSKHNobWVtKSkKIAkJcmV0dXJuIFBUUl9FUlIoc2ht ZW0pOwogCi0JcmV0ID0gcGFuZnJvc3RfbW11X21hcCh0b19wYW5mcm9zdF9ibygmc2htZW0tPmJh c2UpKTsKLQlpZiAocmV0KQotCQlnb3RvIGVycl9mcmVlOworCWJvID0gdG9fcGFuZnJvc3RfYm8o JnNobWVtLT5iYXNlKTsKIAotCWFyZ3MtPm9mZnNldCA9IHRvX3BhbmZyb3N0X2JvKCZzaG1lbS0+ YmFzZSktPm5vZGUuc3RhcnQgPDwgUEFHRV9TSElGVDsKKwlpZiAoIShhcmdzLT5mbGFncyAmIFBB TkZST1NUX0JPX05PTUFQKSkgeworCQlyZXQgPSBwYW5mcm9zdF9tbXVfbWFwKGJvKTsKKwkJaWYg KHJldCkKKwkJCWdvdG8gZXJyX2ZyZWU7CisJfSBlbHNlCisJCWJvLT5ub19tYXAgPSAxOworCisJ YXJncy0+b2Zmc2V0ID0gYm8tPm5vZGUuc3RhcnQgPDwgUEFHRV9TSElGVDsKIAogCXJldHVybiAw OwogCkBAIC0yNjksNiArMjc2LDExIEBAIHN0YXRpYyBpbnQgcGFuZnJvc3RfaW9jdGxfbW1hcF9i byhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAogCQlyZXR1cm4gLUVOT0VOVDsK IAl9CiAKKwlpZiAodG9fcGFuZnJvc3RfYm8oZ2VtX29iaiktPm5vX21hcCkgeworCQlEUk1fREVC VUcoIkNhbid0IG1tYXAgJ25vX21hcCcgR0VNIEJPICVkXG4iLCBhcmdzLT5oYW5kbGUpOworCQly ZXR1cm4gLUVJTlZBTDsKKwl9CisKIAlyZXQgPSBkcm1fZ2VtX2NyZWF0ZV9tbWFwX29mZnNldChn ZW1fb2JqKTsKIAlpZiAocmV0ID09IDApCiAJCWFyZ3MtPm9mZnNldCA9IGRybV92bWFfbm9kZV9v ZmZzZXRfYWRkcigmZ2VtX29iai0+dm1hX25vZGUpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL3BhbmZyb3N0L3BhbmZyb3N0X2dlbS5jIGIvZHJpdmVycy9ncHUvZHJtL3BhbmZyb3N0L3Bh bmZyb3N0X2dlbS5jCmluZGV4IDg4Njg3NWFlMzFkMy4uZWQwYjRmNzk2MTBhIDEwMDY0NAotLS0g YS9kcml2ZXJzL2dwdS9kcm0vcGFuZnJvc3QvcGFuZnJvc3RfZ2VtLmMKKysrIGIvZHJpdmVycy9n cHUvZHJtL3BhbmZyb3N0L3BhbmZyb3N0X2dlbS5jCkBAIC0xOSw3ICsxOSw4IEBAIHN0YXRpYyB2 b2lkIHBhbmZyb3N0X2dlbV9mcmVlX29iamVjdChzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKm9iaikK IAlzdHJ1Y3QgcGFuZnJvc3RfZ2VtX29iamVjdCAqYm8gPSB0b19wYW5mcm9zdF9ibyhvYmopOwog CXN0cnVjdCBwYW5mcm9zdF9kZXZpY2UgKnBmZGV2ID0gb2JqLT5kZXYtPmRldl9wcml2YXRlOwog Ci0JcGFuZnJvc3RfbW11X3VubWFwKGJvKTsKKwlpZiAoIWJvLT5ub19tYXApCisJCXBhbmZyb3N0 X21tdV91bm1hcChibyk7CiAKIAlzcGluX2xvY2soJnBmZGV2LT5tbV9sb2NrKTsKIAlkcm1fbW1f cmVtb3ZlX25vZGUoJmJvLT5ub2RlKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9wYW5m cm9zdC9wYW5mcm9zdF9nZW0uaCBiL2RyaXZlcnMvZ3B1L2RybS9wYW5mcm9zdC9wYW5mcm9zdF9n ZW0uaAppbmRleCAwNDUwMDBlYjVmY2YuLmFhMjEwZDdjYmYzZiAxMDA2NDQKLS0tIGEvZHJpdmVy cy9ncHUvZHJtL3BhbmZyb3N0L3BhbmZyb3N0X2dlbS5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9w YW5mcm9zdC9wYW5mcm9zdF9nZW0uaApAQCAtMTEsNiArMTEsNyBAQCBzdHJ1Y3QgcGFuZnJvc3Rf Z2VtX29iamVjdCB7CiAJc3RydWN0IGRybV9nZW1fc2htZW1fb2JqZWN0IGJhc2U7CiAKIAlzdHJ1 Y3QgZHJtX21tX25vZGUgbm9kZTsKKwl1bnNpZ25lZCBub19tYXA6IDE7CiB9OwogCiBzdGF0aWMg aW5saW5lCkBAIC0xOSw2ICsyMCwxMyBAQCBzdHJ1Y3QgIHBhbmZyb3N0X2dlbV9vYmplY3QgKnRv X3BhbmZyb3N0X2JvKHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqb2JqKQogCXJldHVybiBjb250YWlu ZXJfb2YodG9fZHJtX2dlbV9zaG1lbV9vYmoob2JqKSwgc3RydWN0IHBhbmZyb3N0X2dlbV9vYmpl Y3QsIGJhc2UpOwogfQogCitzdGF0aWMgaW5saW5lCitzdHJ1Y3QgIHBhbmZyb3N0X2dlbV9vYmpl Y3QgKmRybV9tbV9ub2RlX3RvX3BhbmZyb3N0X2JvKHN0cnVjdCBkcm1fbW1fbm9kZSAqbm9kZSkK K3sKKwlyZXR1cm4gY29udGFpbmVyX29mKG5vZGUsIHN0cnVjdCBwYW5mcm9zdF9nZW1fb2JqZWN0 LCBub2RlKTsKK30KKworCiBzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKnBhbmZyb3N0X2dlbV9jcmVh dGVfb2JqZWN0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHNpemVfdCBzaXplKTsKIAogc3RydWN0 IGRybV9nZW1fb2JqZWN0ICoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9wYW5mcm9zdC9w YW5mcm9zdF9tbXUuYyBiL2RyaXZlcnMvZ3B1L2RybS9wYW5mcm9zdC9wYW5mcm9zdF9tbXUuYwpp bmRleCA0MWQxODRmYWIwN2YuLjVhMzY0OTVhMzhmMyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUv ZHJtL3BhbmZyb3N0L3BhbmZyb3N0X21tdS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9wYW5mcm9z dC9wYW5mcm9zdF9tbXUuYwpAQCAtMyw2ICszLDcgQEAKIC8qIENvcHlyaWdodCAoQykgMjAxOSBB cm0gTHRkLiAqLwogI2luY2x1ZGUgPGxpbnV4L2JpdGZpZWxkLmg+CiAjaW5jbHVkZSA8bGludXgv ZGVsYXkuaD4KKyNpbmNsdWRlIDxsaW51eC9kbWEtbWFwcGluZy5oPgogI2luY2x1ZGUgPGxpbnV4 L2ludGVycnVwdC5oPgogI2luY2x1ZGUgPGxpbnV4L2lvLmg+CiAjaW5jbHVkZSA8bGludXgvaW9w b2xsLmg+CkBAIC0xMCw2ICsxMSw3IEBACiAjaW5jbHVkZSA8bGludXgvaW9tbXUuaD4KICNpbmNs dWRlIDxsaW51eC9wbGF0Zm9ybV9kZXZpY2UuaD4KICNpbmNsdWRlIDxsaW51eC9wbV9ydW50aW1l Lmg+CisjaW5jbHVkZSA8bGludXgvc2htZW1fZnMuaD4KICNpbmNsdWRlIDxsaW51eC9zaXplcy5o PgogCiAjaW5jbHVkZSAicGFuZnJvc3RfZGV2aWNlLmgiCkBAIC0yNzcsNiArMjc5LDYwIEBAIHN0 YXRpYyBjb25zdCBzdHJ1Y3QgaW9tbXVfZ2F0aGVyX29wcyBtbXVfdGxiX29wcyA9IHsKIAkudGxi X3N5bmMJPSBtbXVfdGxiX3N5bmNfY29udGV4dCwKIH07CiAKK3N0YXRpYyBzdHJ1Y3QgZHJtX21t X25vZGUgKmFkZHJfdG9fZHJtX21tX25vZGUoc3RydWN0IHBhbmZyb3N0X2RldmljZSAqcGZkZXYs IGludCBhcywgdTY0IGFkZHIpCit7CisJc3RydWN0IGRybV9tbV9ub2RlICpub2RlOworCXU2NCBv ZmZzZXQgPSBhZGRyID4+IFBBR0VfU0hJRlQ7CisKKwlkcm1fbW1fZm9yX2VhY2hfbm9kZShub2Rl LCAmcGZkZXYtPm1tKSB7CisJCWlmIChvZmZzZXQgPj0gbm9kZS0+c3RhcnQgJiYgb2Zmc2V0IDwg KG5vZGUtPnN0YXJ0ICsgbm9kZS0+c2l6ZSkpCisJCQlyZXR1cm4gbm9kZTsKKwl9CisJcmV0dXJu IE5VTEw7Cit9CisKK2ludCBwYW5mcm9zdF9tbXVfbWFwX2ZhdWx0X2FkZHIoc3RydWN0IHBhbmZy b3N0X2RldmljZSAqcGZkZXYsIGludCBhcywgdTY0IGFkZHIpCit7CisJc3RydWN0IHBhZ2UgKnBh Z2U7CisJZG1hX2FkZHJfdCBkbWFfYWRkcjsKKwlzdHJ1Y3QgZHJtX21tX25vZGUgKm5vZGU7CisJ c3RydWN0IHBhbmZyb3N0X2dlbV9vYmplY3QgKmJvOworCXN0cnVjdCBpb19wZ3RhYmxlX29wcyAq b3BzID0gcGZkZXYtPm1tdS0+cGd0Ymxfb3BzOworCXBnb2ZmX3QgcGFnZV9vZmZzZXQgPSBhZGRy ID4+IFBBR0VfU0hJRlQ7CisKKwlhZGRyICY9IFBBR0VfTUFTSzsKKworCW5vZGUgPSBhZGRyX3Rv X2RybV9tbV9ub2RlKHBmZGV2LCBhcywgYWRkcik7CisJaWYgKCFub2RlKQorCQlyZXR1cm4gLUVO T0VOVDsKKworCXBhZ2Vfb2Zmc2V0IC09IG5vZGUtPnN0YXJ0OworCWJvID0gZHJtX21tX25vZGVf dG9fcGFuZnJvc3RfYm8obm9kZSk7CisJaWYgKFdBUk5fT04oIWJvLT5ub19tYXApKQorCQlyZXR1 cm4gLUVJTlZBTDsKKworCWRldl9pbmZvKHBmZGV2LT5kZXYsICJtYXBwaW5nIHBhZ2UgZmF1bHQg QCAlbGx4IiwgYWRkcik7CisKKwlwYWdlID0gc2htZW1fcmVhZF9tYXBwaW5nX3BhZ2UoYm8tPmJh c2UuYmFzZS5maWxwLT5mX21hcHBpbmcsCisJCQkJICAgICAgIHBhZ2Vfb2Zmc2V0KTsKKwlpZiAo SVNfRVJSKHBhZ2UpKQorCQlyZXR1cm4gUFRSX0VSUihwYWdlKTsKKworCWRtYV9hZGRyID0gZG1h X21hcF9wYWdlKHBmZGV2LT5kZXYsIHBhZ2UsIDAsIFBBR0VfU0laRSwgRE1BX0JJRElSRUNUSU9O QUwpOworCisJbXV0ZXhfbG9jaygmcGZkZXYtPm1tdS0+bG9jayk7CisKKwlvcHMtPm1hcChvcHMs IGFkZHIsIGRtYV9hZGRyLCBQQUdFX1NJWkUsIElPTU1VX1dSSVRFIHwgSU9NTVVfUkVBRCk7CisK KwltbXVfd3JpdGUocGZkZXYsIE1NVV9JTlRfQ0xFQVIsIEJJVChhcykpOworCisJbW11X2h3X2Rv X29wZXJhdGlvbihwZmRldiwgYXMsIGFkZHIsIFBBR0VfU0laRSwgQVNfQ09NTUFORF9GTFVTSF9Q VCk7CisKKwltdXRleF91bmxvY2soJnBmZGV2LT5tbXUtPmxvY2spOworCisJcmV0dXJuIDA7Cit9 CisKIHN0YXRpYyBjb25zdCBjaGFyICphY2Nlc3NfdHlwZV9uYW1lKHN0cnVjdCBwYW5mcm9zdF9k ZXZpY2UgKnBmZGV2LAogCQl1MzIgZmF1bHRfc3RhdHVzKQogewpAQCAtMzAyLDEzICszNTgsMTEg QEAgc3RhdGljIGlycXJldHVybl90IHBhbmZyb3N0X21tdV9pcnFfaGFuZGxlcihpbnQgaXJxLCB2 b2lkICpkYXRhKQogewogCXN0cnVjdCBwYW5mcm9zdF9kZXZpY2UgKnBmZGV2ID0gZGF0YTsKIAl1 MzIgc3RhdHVzID0gbW11X3JlYWQocGZkZXYsIE1NVV9JTlRfU1RBVCk7Ci0JaW50IGk7CisJaW50 IGksIHJldDsKIAogCWlmICghc3RhdHVzKQogCQlyZXR1cm4gSVJRX05PTkU7CiAKLQlkZXZfZXJy KHBmZGV2LT5kZXYsICJtbXUgaXJxIHN0YXR1cz0leFxuIiwgc3RhdHVzKTsKLQogCWZvciAoaSA9 IDA7IHN0YXR1czsgaSsrKSB7CiAJCXUzMiBtYXNrID0gQklUKGkpIHwgQklUKGkgKyAxNik7CiAJ CXU2NCBhZGRyOwpAQCAtMzI5LDYgKzM4MywxNyBAQCBzdGF0aWMgaXJxcmV0dXJuX3QgcGFuZnJv c3RfbW11X2lycV9oYW5kbGVyKGludCBpcnEsIHZvaWQgKmRhdGEpCiAJCWFjY2Vzc190eXBlID0g KGZhdWx0X3N0YXR1cyA+PiA4KSAmIDB4MzsKIAkJc291cmNlX2lkID0gKGZhdWx0X3N0YXR1cyA+ PiAxNik7CiAKKwkJLyogUGFnZSBmYXVsdCBvbmx5ICovCisJCWlmICgoc3RhdHVzICYgbWFzaykg PT0gQklUKGkpKSB7CisJCQlXQVJOX09OKGV4Y2VwdGlvbl90eXBlIDwgMHhDMSB8fCBleGNlcHRp b25fdHlwZSA+IDB4QzQpOworCisJCQlyZXQgPSBwYW5mcm9zdF9tbXVfbWFwX2ZhdWx0X2FkZHIo cGZkZXYsIGksIGFkZHIpOworCQkJaWYgKCFyZXQpIHsKKwkJCQlzdGF0dXMgJj0gfm1hc2s7CisJ CQkJY29udGludWU7CisJCQl9CisJCX0KKwogCQkvKiB0ZXJtaW5hbCBmYXVsdCwgcHJpbnQgaW5m byBhYm91dCB0aGUgZmF1bHQgKi8KIAkJZGV2X2VycihwZmRldi0+ZGV2LAogCQkJIlVuaGFuZGxl ZCBQYWdlIGZhdWx0IGluIEFTJWQgYXQgVkEgMHglMDE2bGxYXG4iCkBAIC0zNzAsOCArNDM1LDkg QEAgaW50IHBhbmZyb3N0X21tdV9pbml0KHN0cnVjdCBwYW5mcm9zdF9kZXZpY2UgKnBmZGV2KQog CWlmIChpcnEgPD0gMCkKIAkJcmV0dXJuIC1FTk9ERVY7CiAKLQllcnIgPSBkZXZtX3JlcXVlc3Rf aXJxKHBmZGV2LT5kZXYsIGlycSwgcGFuZnJvc3RfbW11X2lycV9oYW5kbGVyLAotCQkJICAgICAg IElSUUZfU0hBUkVELCAibW11IiwgcGZkZXYpOworCWVyciA9IGRldm1fcmVxdWVzdF90aHJlYWRl ZF9pcnEocGZkZXYtPmRldiwgaXJxLCBOVUxMLAorCQkJCQlwYW5mcm9zdF9tbXVfaXJxX2hhbmRs ZXIsCisJCQkJCUlSUUZfT05FU0hPVCwgIm1tdSIsIHBmZGV2KTsKIAogCWlmIChlcnIpIHsKIAkJ ZGV2X2VycihwZmRldi0+ZGV2LCAiZmFpbGVkIHRvIHJlcXVlc3QgbW11IGlycSIpOwpkaWZmIC0t Z2l0IGEvaW5jbHVkZS91YXBpL2RybS9wYW5mcm9zdF9kcm0uaCBiL2luY2x1ZGUvdWFwaS9kcm0v cGFuZnJvc3RfZHJtLmgKaW5kZXggYTUyZTAyODNiOTBkLi42ZDgzYmFhMGU0YzEgMTAwNjQ0Ci0t LSBhL2luY2x1ZGUvdWFwaS9kcm0vcGFuZnJvc3RfZHJtLmgKKysrIGIvaW5jbHVkZS91YXBpL2Ry bS9wYW5mcm9zdF9kcm0uaApAQCAtNzEsNiArNzEsOCBAQCBzdHJ1Y3QgZHJtX3BhbmZyb3N0X3dh aXRfYm8gewogCV9fczY0IHRpbWVvdXRfbnM7CS8qIGFic29sdXRlICovCiB9OwogCisjZGVmaW5l IFBBTkZST1NUX0JPX05PTUFQCTEKKwogLyoqCiAgKiBzdHJ1Y3QgZHJtX3BhbmZyb3N0X2NyZWF0 ZV9ibyAtIGlvY3RsIGFyZ3VtZW50IGZvciBjcmVhdGluZyBQYW5mcm9zdCBCT3MuCiAgKgotLSAK Mi4yMC4xCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpk cmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0 cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWw=