From mboxrd@z Thu Jan 1 00:00:00 1970 From: Thomas Zimmermann Subject: [PATCH 2/2] drm: Reserve/unreserve GEM VRAM BOs from within pin/unpin functions Date: Thu, 16 May 2019 18:27:46 +0200 Message-ID: <20190516162746.11636-3-tzimmermann@suse.de> References: <20190516162746.11636-1-tzimmermann@suse.de> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mx1.suse.de (mx2.suse.de [195.135.220.15]) by gabe.freedesktop.org (Postfix) with ESMTPS id D79B089789 for ; Thu, 16 May 2019 16:27:52 +0000 (UTC) In-Reply-To: <20190516162746.11636-1-tzimmermann@suse.de> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: daniel@ffwll.ch, airlied@linux.ie, kraxel@redhat.com, christian.koenig@amd.com, ray.huang@amd.com, hdegoede@redhat.com, noralf@tronnes.org, sam@ravnborg.org, z.liuxinliang@hisilicon.com, zourongrong@gmail.com, kong.kongxinwei@hisilicon.com, puck.chen@hisilicon.com Cc: kernel test robot , Thomas Zimmermann , dri-devel@lists.freedesktop.org, virtualization@lists.linux-foundation.org List-Id: dri-devel@lists.freedesktop.org VGhlIG9yaWdpbmFsIGJvY2hzIGFuZCB2Ym94IGltcGxlbWVudGF0aW9ucyBvZiBwaW4gYW5kIHVu cGluIGZ1bmN0aW9ucwphdXRvbWF0aWNhbGx5IHJlc2VydmVkIEJPcyBkdXJpbmcgdmFsaWRhdGlv bi4gVGhpcyBmdW5jdGlvbmFsaXR5IGdvdCBsb3N0CndoaWxlIGNvbnZlcnRpbmcgdGhlIGNvZGUg dG8gYSBnZW5lcmljIGltcGxlbWVudGF0aW9uLiBUaGlzIG1heSByZXN1bHQKaW4gdmFsaWRhdGlu ZyB1bmxvY2tlZCBUVE0gQk9zLgoKQWRkaW5nIHRoZSByZXNlcnZlIGFuZCB1bnJlc2VydmUgb3Bl cmF0aW9ucyB0byBHRU0gVlJBTSdzIHBpbiBhbmQgdW5waW4KZnVuY3Rpb25zIGZpeGVzIHRoZSBi b2NocyBhbmQgdmJveCBkcml2ZXJzLiBBZGRpdGlvbmFsbHkgdGhlIHBhdGNoIGNoYW5nZXMKdGhl IG1nYWcyMDAsIGFzdCBhbmQgaGlibWMgZHJpdmVycyB0byBub3QgcmVzZXJ2ZSBCT3MgYnkgdGhl bXNlbHZlcy4KClNpZ25lZC1vZmYtYnk6IFRob21hcyBaaW1tZXJtYW5uIDx0emltbWVybWFubkBz dXNlLmRlPgpGaXhlczogYTMyMzI5ODdmZGJmMGJlZGU5MmE5ZDdjN2UyZGI5OWE1MDg0ZDMxYiAo ImRybS9ib2NoczogQ29udmVydCBbLi4uXSIpClJlcG9ydGVkLWJ5OiBrZXJuZWwgdGVzdCByb2Jv dCA8bGtwQGludGVsLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vYXN0L2FzdF9tb2RlLmMgICAg ICAgICAgICAgICAgfCAyNCArLS0tLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9kcm1fZ2VtX3ZyYW1f aGVscGVyLmMgICAgICAgICB8IDU0ICsrKysrKysrKysrKysrLS0tLS0KIC4uLi9ncHUvZHJtL2hp c2lsaWNvbi9oaWJtYy9oaWJtY19kcm1fZGUuYyAgICB8ICA2IC0tLQogLi4uL2dwdS9kcm0vaGlz aWxpY29uL2hpYm1jL2hpYm1jX2RybV9mYmRldi5jIHwgMTcgKy0tLS0tCiBkcml2ZXJzL2dwdS9k cm0vbWdhZzIwMC9tZ2FnMjAwX21vZGUuYyAgICAgICAgfCAxOSArLS0tLS0tCiA1IGZpbGVzIGNo YW5nZWQsIDQ1IGluc2VydGlvbnMoKyksIDc1IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9hc3QvYXN0X21vZGUuYyBiL2RyaXZlcnMvZ3B1L2RybS9hc3QvYXN0X21v ZGUuYwppbmRleCAzNDc1NTkxYTIyYzMuLjlhY2E5MTM1YTVjYyAxMDA2NDQKLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2FzdC9hc3RfbW9kZS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hc3QvYXN0X21v ZGUuYwpAQCAtNTM5LDI0ICs1MzksMTYgQEAgc3RhdGljIGludCBhc3RfY3J0Y19kb19zZXRfYmFz ZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCiAJCWFzdF9mYiA9IHRvX2FzdF9mcmFtZWJ1ZmZlcihm Yik7CiAJCW9iaiA9IGFzdF9mYi0+b2JqOwogCQlnYm8gPSBkcm1fZ2VtX3ZyYW1fb2ZfZ2VtKG9i aik7Ci0JCXJldCA9IGRybV9nZW1fdnJhbV9yZXNlcnZlKGdibywgZmFsc2UpOwotCQlpZiAocmV0 KQotCQkJcmV0dXJuIHJldDsKIAkJZHJtX2dlbV92cmFtX3B1c2hfdG9fc3lzdGVtKGdibyk7Ci0J CWRybV9nZW1fdnJhbV91bnJlc2VydmUoZ2JvKTsKIAl9CiAKIAlhc3RfZmIgPSB0b19hc3RfZnJh bWVidWZmZXIoY3J0Yy0+cHJpbWFyeS0+ZmIpOwogCW9iaiA9IGFzdF9mYi0+b2JqOwogCWdibyA9 IGRybV9nZW1fdnJhbV9vZl9nZW0ob2JqKTsKIAotCXJldCA9IGRybV9nZW1fdnJhbV9yZXNlcnZl KGdibywgZmFsc2UpOwotCWlmIChyZXQpCi0JCXJldHVybiByZXQ7Ci0KIAlyZXQgPSBkcm1fZ2Vt X3ZyYW1fcGluKGdibywgRFJNX0dFTV9WUkFNX1BMX0ZMQUdfVlJBTSk7CiAJaWYgKHJldCkKLQkJ Z290byBlcnJfZHJtX2dlbV92cmFtX3VucmVzZXJ2ZTsKKwkJcmV0dXJuIHJldDsKIAlncHVfYWRk ciA9IGRybV9nZW1fdnJhbV9vZmZzZXQoZ2JvKTsKIAlpZiAoZ3B1X2FkZHIgPCAwKSB7CiAJCXJl dCA9IChpbnQpZ3B1X2FkZHI7CkBAIC01NzMsNyArNTY1LDYgQEAgc3RhdGljIGludCBhc3RfY3J0 Y19kb19zZXRfYmFzZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCiAJCQlhc3RfZmJkZXZfc2V0X2Jh c2UoYXN0LCBncHVfYWRkcik7CiAJCX0KIAl9Ci0JZHJtX2dlbV92cmFtX3VucmVzZXJ2ZShnYm8p OwogCiAJYXN0X3NldF9vZmZzZXRfcmVnKGNydGMpOwogCWFzdF9zZXRfc3RhcnRfYWRkcmVzc19j cnQxKGNydGMsICh1MzIpZ3B1X2FkZHIpOwpAQCAtNTgyLDggKzU3Myw2IEBAIHN0YXRpYyBpbnQg YXN0X2NydGNfZG9fc2V0X2Jhc2Uoc3RydWN0IGRybV9jcnRjICpjcnRjLAogCiBlcnJfZHJtX2dl bV92cmFtX3VucGluOgogCWRybV9nZW1fdnJhbV91bnBpbihnYm8pOwotZXJyX2RybV9nZW1fdnJh bV91bnJlc2VydmU6Ci0JZHJtX2dlbV92cmFtX3VucmVzZXJ2ZShnYm8pOwogCXJldHVybiByZXQ7 CiB9CiAKQEAgLTYzMCw4ICs2MTksNiBAQCBzdGF0aWMgaW50IGFzdF9jcnRjX21vZGVfc2V0KHN0 cnVjdCBkcm1fY3J0YyAqY3J0YywKIAogc3RhdGljIHZvaWQgYXN0X2NydGNfZGlzYWJsZShzdHJ1 Y3QgZHJtX2NydGMgKmNydGMpCiB7Ci0JaW50IHJldDsKLQogCURSTV9ERUJVR19LTVMoIlxuIik7 CiAJYXN0X2NydGNfZHBtcyhjcnRjLCBEUk1fTU9ERV9EUE1TX09GRik7CiAJaWYgKGNydGMtPnBy aW1hcnktPmZiKSB7CkBAIC02MzksMTEgKzYyNiw3IEBAIHN0YXRpYyB2b2lkIGFzdF9jcnRjX2Rp c2FibGUoc3RydWN0IGRybV9jcnRjICpjcnRjKQogCQlzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKm9i aiA9IGFzdF9mYi0+b2JqOwogCQlzdHJ1Y3QgZHJtX2dlbV92cmFtX29iamVjdCAqZ2JvID0gZHJt X2dlbV92cmFtX29mX2dlbShvYmopOwogCi0JCXJldCA9IGRybV9nZW1fdnJhbV9yZXNlcnZlKGdi bywgZmFsc2UpOwotCQlpZiAocmV0KQotCQkJcmV0dXJuOwogCQlkcm1fZ2VtX3ZyYW1fcHVzaF90 b19zeXN0ZW0oZ2JvKTsKLQkJZHJtX2dlbV92cmFtX3VucmVzZXJ2ZShnYm8pOwogCX0KIAljcnRj LT5wcmltYXJ5LT5mYiA9IE5VTEw7CiB9CkBAIC05MzksMTIgKzkyMiw3IEBAIHN0YXRpYyBpbnQg YXN0X2N1cnNvcl9pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJaWYgKHJldCkKIAkJcmV0 dXJuIHJldDsKIAlnYm8gPSBkcm1fZ2VtX3ZyYW1fb2ZfZ2VtKG9iaik7Ci0JcmV0ID0gZHJtX2dl bV92cmFtX3Jlc2VydmUoZ2JvLCBmYWxzZSk7Ci0JaWYgKHVubGlrZWx5KHJldCAhPSAwKSkKLQkJ Z290byBmYWlsOwotCiAJcmV0ID0gZHJtX2dlbV92cmFtX3BpbihnYm8sIERSTV9HRU1fVlJBTV9Q TF9GTEFHX1ZSQU0pOwotCWRybV9nZW1fdnJhbV91bnJlc2VydmUoZ2JvKTsKIAlpZiAocmV0KQog CQlnb3RvIGZhaWw7CiAJZ3B1X2FkZHIgPSBkcm1fZ2VtX3ZyYW1fb2Zmc2V0KGdibyk7CmRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2dlbV92cmFtX2hlbHBlci5jIGIvZHJpdmVycy9n cHUvZHJtL2RybV9nZW1fdnJhbV9oZWxwZXIuYwppbmRleCBhMDAyYzAzZWFmNGMuLmJkZTgyMzdl ODAyMSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9nZW1fdnJhbV9oZWxwZXIuYwor KysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2dlbV92cmFtX2hlbHBlci5jCkBAIC0yMzUsMTAgKzIz NSwxMiBAQCBpbnQgZHJtX2dlbV92cmFtX3BpbihzdHJ1Y3QgZHJtX2dlbV92cmFtX29iamVjdCAq Z2JvLCB1bnNpZ25lZCBsb25nIHBsX2ZsYWcpCiAJaW50IGksIHJldDsKIAlzdHJ1Y3QgdHRtX29w ZXJhdGlvbl9jdHggY3R4ID0geyBmYWxzZSwgZmFsc2UgfTsKIAotCWlmIChnYm8tPnBpbl9jb3Vu dCkgewotCQkrK2diby0+cGluX2NvdW50OwotCQlyZXR1cm4gMDsKLQl9CisJcmV0ID0gdHRtX2Jv X3Jlc2VydmUoJmdiby0+Ym8sIHRydWUsIGZhbHNlLCBOVUxMKTsKKwlpZiAocmV0IDwgMCkKKwkJ cmV0dXJuIHJldDsKKworCWlmIChnYm8tPnBpbl9jb3VudCkKKwkJZ290byBvdXQ7CiAKIAlkcm1f Z2VtX3ZyYW1fcGxhY2VtZW50KGdibywgcGxfZmxhZyk7CiAJZm9yIChpID0gMDsgaSA8IGdiby0+ cGxhY2VtZW50Lm51bV9wbGFjZW1lbnQ7ICsraSkKQEAgLTI0NiwxMSArMjQ4LDE3IEBAIGludCBk cm1fZ2VtX3ZyYW1fcGluKHN0cnVjdCBkcm1fZ2VtX3ZyYW1fb2JqZWN0ICpnYm8sIHVuc2lnbmVk IGxvbmcgcGxfZmxhZykKIAogCXJldCA9IHR0bV9ib192YWxpZGF0ZSgmZ2JvLT5ibywgJmdiby0+ cGxhY2VtZW50LCAmY3R4KTsKIAlpZiAocmV0IDwgMCkKLQkJcmV0dXJuIHJldDsKKwkJZ290byBl cnJfdHRtX2JvX3VucmVzZXJ2ZTsKIAotCWdiby0+cGluX2NvdW50ID0gMTsKK291dDoKKwkrK2di by0+cGluX2NvdW50OworCXR0bV9ib191bnJlc2VydmUoJmdiby0+Ym8pOwogCiAJcmV0dXJuIDA7 CisKK2Vycl90dG1fYm9fdW5yZXNlcnZlOgorCXR0bV9ib191bnJlc2VydmUoJmdiby0+Ym8pOwor CXJldHVybiByZXQ7CiB9CiBFWFBPUlRfU1lNQk9MKGRybV9nZW1fdnJhbV9waW4pOwogCkBAIC0z MDgsMjEgKzMxNiwzMiBAQCBpbnQgZHJtX2dlbV92cmFtX3VucGluKHN0cnVjdCBkcm1fZ2VtX3Zy YW1fb2JqZWN0ICpnYm8pCiAJaW50IGksIHJldDsKIAlzdHJ1Y3QgdHRtX29wZXJhdGlvbl9jdHgg Y3R4ID0geyBmYWxzZSwgZmFsc2UgfTsKIAorCXJldCA9IHR0bV9ib19yZXNlcnZlKCZnYm8tPmJv LCB0cnVlLCBmYWxzZSwgTlVMTCk7CisJaWYgKHJldCA8IDApCisJCXJldHVybiByZXQ7CisKIAlp ZiAoV0FSTl9PTl9PTkNFKCFnYm8tPnBpbl9jb3VudCkpCi0JCXJldHVybiAwOworCQlnb3RvIG91 dDsKIAogCS0tZ2JvLT5waW5fY291bnQ7CiAJaWYgKGdiby0+cGluX2NvdW50KQotCQlyZXR1cm4g MDsKKwkJZ290byBvdXQ7CiAKIAlmb3IgKGkgPSAwOyBpIDwgZ2JvLT5wbGFjZW1lbnQubnVtX3Bs YWNlbWVudCA7ICsraSkKIAkJZ2JvLT5wbGFjZW1lbnRzW2ldLmZsYWdzICY9IH5UVE1fUExfRkxB R19OT19FVklDVDsKIAogCXJldCA9IHR0bV9ib192YWxpZGF0ZSgmZ2JvLT5ibywgJmdiby0+cGxh Y2VtZW50LCAmY3R4KTsKIAlpZiAocmV0IDwgMCkKLQkJcmV0dXJuIHJldDsKKwkJZ290byBlcnJf dHRtX2JvX3VucmVzZXJ2ZTsKKworb3V0OgorCXR0bV9ib191bnJlc2VydmUoJmdiby0+Ym8pOwog CiAJcmV0dXJuIDA7CisKK2Vycl90dG1fYm9fdW5yZXNlcnZlOgorCXR0bV9ib191bnJlc2VydmUo Jmdiby0+Ym8pOworCXJldHVybiByZXQ7CiB9CiBFWFBPUlRfU1lNQk9MKGRybV9nZW1fdnJhbV91 bnBpbik7CiAKQEAgLTM3NywxMiArMzk2LDE2IEBAIGludCBkcm1fZ2VtX3ZyYW1fcHVzaF90b19z eXN0ZW0oc3RydWN0IGRybV9nZW1fdnJhbV9vYmplY3QgKmdibykKIAlpbnQgaSwgcmV0OwogCXN0 cnVjdCB0dG1fb3BlcmF0aW9uX2N0eCBjdHggPSB7IGZhbHNlLCBmYWxzZSB9OwogCisJcmV0ID0g dHRtX2JvX3Jlc2VydmUoJmdiby0+Ym8sIHRydWUsIGZhbHNlLCBOVUxMKTsKKwlpZiAocmV0IDwg MCkKKwkJcmV0dXJuIHJldDsKKwogCWlmIChXQVJOX09OX09OQ0UoIWdiby0+cGluX2NvdW50KSkK LQkJcmV0dXJuIDA7CisJCWdvdG8gb3V0OwogCiAJLS1nYm8tPnBpbl9jb3VudDsKIAlpZiAoZ2Jv LT5waW5fY291bnQpCi0JCXJldHVybiAwOworCQlnb3RvIG91dDsKIAogCWlmIChnYm8tPmttYXAu dmlydHVhbCkKIAkJdHRtX2JvX2t1bm1hcCgmZ2JvLT5rbWFwKTsKQEAgLTM5Myw5ICs0MTYsMTYg QEAgaW50IGRybV9nZW1fdnJhbV9wdXNoX3RvX3N5c3RlbShzdHJ1Y3QgZHJtX2dlbV92cmFtX29i amVjdCAqZ2JvKQogCiAJcmV0ID0gdHRtX2JvX3ZhbGlkYXRlKCZnYm8tPmJvLCAmZ2JvLT5wbGFj ZW1lbnQsICZjdHgpOwogCWlmIChyZXQpCi0JCXJldHVybiByZXQ7CisJCWdvdG8gZXJyX3R0bV9i b191bnJlc2VydmU7CisKK291dDoKKwl0dG1fYm9fdW5yZXNlcnZlKCZnYm8tPmJvKTsKIAogCXJl dHVybiAwOworCitlcnJfdHRtX2JvX3VucmVzZXJ2ZToKKwl0dG1fYm9fdW5yZXNlcnZlKCZnYm8t PmJvKTsKKwlyZXR1cm4gcmV0OwogfQogRVhQT1JUX1NZTUJPTChkcm1fZ2VtX3ZyYW1fcHVzaF90 b19zeXN0ZW0pOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaGlzaWxpY29uL2hpYm1j L2hpYm1jX2RybV9kZS5jIGIvZHJpdmVycy9ncHUvZHJtL2hpc2lsaWNvbi9oaWJtYy9oaWJtY19k cm1fZGUuYwppbmRleCBkYjBkZmE1Nzg0NGUuLmZiZGY0OTU3NzllMCAxMDA2NDQKLS0tIGEvZHJp dmVycy9ncHUvZHJtL2hpc2lsaWNvbi9oaWJtYy9oaWJtY19kcm1fZGUuYworKysgYi9kcml2ZXJz L2dwdS9kcm0vaGlzaWxpY29uL2hpYm1jL2hpYm1jX2RybV9kZS5jCkBAIC0xMDcsMTQgKzEwNyw4 IEBAIHN0YXRpYyB2b2lkIGhpYm1jX3BsYW5lX2F0b21pY191cGRhdGUoc3RydWN0IGRybV9wbGFu ZSAqcGxhbmUsCiAKIAloaWJtY19mYiA9IHRvX2hpYm1jX2ZyYW1lYnVmZmVyKHN0YXRlLT5mYik7 CiAJZ2JvID0gZHJtX2dlbV92cmFtX29mX2dlbShoaWJtY19mYi0+b2JqKTsKLQlyZXQgPSBkcm1f Z2VtX3ZyYW1fcmVzZXJ2ZShnYm8sIGZhbHNlKTsKLQlpZiAocmV0KSB7Ci0JCURSTV9FUlJPUigi ZmFpbGVkIHRvIHJlc2VydmUgQk86ICVkIiwgcmV0KTsKLQkJcmV0dXJuOwotCX0KIAogCXJldCA9 IGRybV9nZW1fdnJhbV9waW4oZ2JvLCBEUk1fR0VNX1ZSQU1fUExfRkxBR19WUkFNKTsKLQlkcm1f Z2VtX3ZyYW1fdW5yZXNlcnZlKGdibyk7CiAJaWYgKHJldCkgewogCQlEUk1fRVJST1IoImZhaWxl ZCB0byBwaW4gYm86ICVkIiwgcmV0KTsKIAkJcmV0dXJuOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2hpc2lsaWNvbi9oaWJtYy9oaWJtY19kcm1fZmJkZXYuYyBiL2RyaXZlcnMvZ3B1L2Ry bS9oaXNpbGljb24vaGlibWMvaGlibWNfZHJtX2ZiZGV2LmMKaW5kZXggOWQyMDI1ZmExNmY4Li5i ZDVmYmIyMzk3M2EgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9oaXNpbGljb24vaGlibWMv aGlibWNfZHJtX2ZiZGV2LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2hpc2lsaWNvbi9oaWJtYy9o aWJtY19kcm1fZmJkZXYuYwpAQCAtNjMsNyArNjMsNiBAQCBzdGF0aWMgaW50IGhpYm1jX2RybV9m Yl9jcmVhdGUoc3RydWN0IGRybV9mYl9oZWxwZXIgKmhlbHBlciwKIAlzdHJ1Y3QgZHJtX21vZGVf ZmJfY21kMiBtb2RlX2NtZDsKIAlzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKmdvYmogPSBOVUxMOwog CWludCByZXQgPSAwOwotCWludCByZXQxOwogCXNpemVfdCBzaXplOwogCXVuc2lnbmVkIGludCBi eXRlc19wZXJfcGl4ZWw7CiAJc3RydWN0IGRybV9nZW1fdnJhbV9vYmplY3QgKmdibyA9IE5VTEw7 CkBAIC05MSwxNiArOTAsMTAgQEAgc3RhdGljIGludCBoaWJtY19kcm1fZmJfY3JlYXRlKHN0cnVj dCBkcm1fZmJfaGVscGVyICpoZWxwZXIsCiAKIAlnYm8gPSBkcm1fZ2VtX3ZyYW1fb2ZfZ2VtKGdv YmopOwogCi0JcmV0ID0gZHJtX2dlbV92cmFtX3Jlc2VydmUoZ2JvLCBmYWxzZSk7Ci0JaWYgKHJl dCkgewotCQlEUk1fRVJST1IoImZhaWxlZCB0byByZXNlcnZlIGJvOiAlZFxuIiwgcmV0KTsKLQkJ Z290byBvdXRfdW5yZWZfZ2VtOwotCX0KLQogCXJldCA9IGRybV9nZW1fdnJhbV9waW4oZ2JvLCBE Uk1fR0VNX1ZSQU1fUExfRkxBR19WUkFNKTsKIAlpZiAocmV0KSB7CiAJCURSTV9FUlJPUigiZmFp bGVkIHRvIHBpbiBmYmNvbjogJWRcbiIsIHJldCk7Ci0JCWdvdG8gb3V0X3VucmVzZXJ2ZV90dG1f Ym87CisJCWdvdG8gb3V0X3VucmVmX2dlbTsKIAl9CiAKIAliYXNlID0gZHJtX2dlbV92cmFtX2tt YXAoZ2JvLCB0cnVlLCBOVUxMKTsKQEAgLTEwOSw3ICsxMDIsNiBAQCBzdGF0aWMgaW50IGhpYm1j X2RybV9mYl9jcmVhdGUoc3RydWN0IGRybV9mYl9oZWxwZXIgKmhlbHBlciwKIAkJRFJNX0VSUk9S KCJmYWlsZWQgdG8ga21hcCBmYmNvbjogJWRcbiIsIHJldCk7CiAJCWdvdG8gb3V0X3VucGluX2Jv OwogCX0KLQlkcm1fZ2VtX3ZyYW1fdW5yZXNlcnZlKGdibyk7CiAKIAlpbmZvID0gZHJtX2ZiX2hl bHBlcl9hbGxvY19mYmkoaGVscGVyKTsKIAlpZiAoSVNfRVJSKGluZm8pKSB7CkBAIC0xNDEsMTYg KzEzMyw5IEBAIHN0YXRpYyBpbnQgaGlibWNfZHJtX2ZiX2NyZWF0ZShzdHJ1Y3QgZHJtX2ZiX2hl bHBlciAqaGVscGVyLAogCXJldHVybiAwOwogCiBvdXRfcmVsZWFzZV9mYmk6Ci0JcmV0MSA9IGRy bV9nZW1fdnJhbV9yZXNlcnZlKGdibywgZmFsc2UpOwotCWlmIChyZXQxKSB7Ci0JCURSTV9FUlJP UigiZmFpbGVkIHRvIHJzdiB0dG1fYm8gd2hlbiByZWxlYXNlIGZiaTogJWRcbiIsIHJldDEpOwot CQlnb3RvIG91dF91bnJlZl9nZW07Ci0JfQogCWRybV9nZW1fdnJhbV9rdW5tYXAoZ2JvKTsKIG91 dF91bnBpbl9ibzoKIAlkcm1fZ2VtX3ZyYW1fdW5waW4oZ2JvKTsKLW91dF91bnJlc2VydmVfdHRt X2JvOgotCWRybV9nZW1fdnJhbV91bnJlc2VydmUoZ2JvKTsKIG91dF91bnJlZl9nZW06CiAJZHJt X2dlbV9vYmplY3RfcHV0X3VubG9ja2VkKGdvYmopOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vbWdhZzIwMC9tZ2FnMjAwX21vZGUuYyBiL2RyaXZlcnMvZ3B1L2RybS9tZ2FnMjAwL21n YWcyMDBfbW9kZS5jCmluZGV4IDMwOThiZjVjMTc0NC4uZTc5ODcyYzk2OGJmIDEwMDY0NAotLS0g YS9kcml2ZXJzL2dwdS9kcm0vbWdhZzIwMC9tZ2FnMjAwX21vZGUuYworKysgYi9kcml2ZXJzL2dw dS9kcm0vbWdhZzIwMC9tZ2FnMjAwX21vZGUuYwpAQCAtODc3LDI0ICs4NzcsMTYgQEAgc3RhdGlj IGludCBtZ2FfY3J0Y19kb19zZXRfYmFzZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCiAJCW1nYV9m YiA9IHRvX21nYV9mcmFtZWJ1ZmZlcihmYik7CiAJCW9iaiA9IG1nYV9mYi0+b2JqOwogCQlnYm8g PSBkcm1fZ2VtX3ZyYW1fb2ZfZ2VtKG9iaik7Ci0JCXJldCA9IGRybV9nZW1fdnJhbV9yZXNlcnZl KGdibywgZmFsc2UpOwotCQlpZiAocmV0KQotCQkJcmV0dXJuIHJldDsKIAkJZHJtX2dlbV92cmFt X3B1c2hfdG9fc3lzdGVtKGdibyk7Ci0JCWRybV9nZW1fdnJhbV91bnJlc2VydmUoZ2JvKTsKIAl9 CiAKIAltZ2FfZmIgPSB0b19tZ2FfZnJhbWVidWZmZXIoY3J0Yy0+cHJpbWFyeS0+ZmIpOwogCW9i aiA9IG1nYV9mYi0+b2JqOwogCWdibyA9IGRybV9nZW1fdnJhbV9vZl9nZW0ob2JqKTsKIAotCXJl dCA9IGRybV9nZW1fdnJhbV9yZXNlcnZlKGdibywgZmFsc2UpOwotCWlmIChyZXQpCi0JCXJldHVy biByZXQ7Ci0KIAlyZXQgPSBkcm1fZ2VtX3ZyYW1fcGluKGdibywgRFJNX0dFTV9WUkFNX1BMX0ZM QUdfVlJBTSk7CiAJaWYgKHJldCkKLQkJZ290byBlcnJfZHJtX2dlbV92cmFtX3VucmVzZXJ2ZTsK KwkJcmV0dXJuIHJldDsKIAlncHVfYWRkciA9IGRybV9nZW1fdnJhbV9vZmZzZXQoZ2JvKTsKIAlp ZiAoZ3B1X2FkZHIgPCAwKSB7CiAJCXJldCA9IChpbnQpZ3B1X2FkZHI7CkBAIC05MTAsMTYgKzkw MiwxMiBAQCBzdGF0aWMgaW50IG1nYV9jcnRjX2RvX3NldF9iYXNlKHN0cnVjdCBkcm1fY3J0YyAq Y3J0YywKIAkJfQogCX0KIAotCWRybV9nZW1fdnJhbV91bnJlc2VydmUoZ2JvKTsKLQogCW1nYV9z ZXRfc3RhcnRfYWRkcmVzcyhjcnRjLCAodTMyKWdwdV9hZGRyKTsKIAogCXJldHVybiAwOwogCiBl cnJfZHJtX2dlbV92cmFtX3VucGluOgogCWRybV9nZW1fdnJhbV91bnBpbihnYm8pOwotZXJyX2Ry bV9nZW1fdnJhbV91bnJlc2VydmU6Ci0JZHJtX2dlbV92cmFtX3VucmVzZXJ2ZShnYm8pOwogCXJl dHVybiByZXQ7CiB9CiAKQEAgLTE0MzQsNyArMTQyMiw2IEBAIHN0YXRpYyB2b2lkIG1nYV9jcnRj X2Rlc3Ryb3koc3RydWN0IGRybV9jcnRjICpjcnRjKQogCiBzdGF0aWMgdm9pZCBtZ2FfY3J0Y19k aXNhYmxlKHN0cnVjdCBkcm1fY3J0YyAqY3J0YykKIHsKLQlpbnQgcmV0OwogCURSTV9ERUJVR19L TVMoIlxuIik7CiAJbWdhX2NydGNfZHBtcyhjcnRjLCBEUk1fTU9ERV9EUE1TX09GRik7CiAJaWYg KGNydGMtPnByaW1hcnktPmZiKSB7CkBAIC0xNDQyLDExICsxNDI5LDcgQEAgc3RhdGljIHZvaWQg bWdhX2NydGNfZGlzYWJsZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCiAJCXN0cnVjdCBkcm1fZ2Vt X29iamVjdCAqb2JqID0gbWdhX2ZiLT5vYmo7CiAJCXN0cnVjdCBkcm1fZ2VtX3ZyYW1fb2JqZWN0 ICpnYm8gPSBkcm1fZ2VtX3ZyYW1fb2ZfZ2VtKG9iaik7CiAKLQkJcmV0ID0gZHJtX2dlbV92cmFt X3Jlc2VydmUoZ2JvLCBmYWxzZSk7Ci0JCWlmIChyZXQpCi0JCQlyZXR1cm47CiAJCWRybV9nZW1f dnJhbV9wdXNoX3RvX3N5c3RlbShnYm8pOwotCQlkcm1fZ2VtX3ZyYW1fdW5yZXNlcnZlKGdibyk7 CiAJfQogCWNydGMtPnByaW1hcnktPmZiID0gTlVMTDsKIH0KLS0gCjIuMjEuMAoKX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcg bGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRl c2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVs