From mboxrd@z Thu Jan 1 00:00:00 1970 From: "=?UTF-8?q?Christian=20K=C3=B6nig?=" Subject: [PATCH 2/7] dma-buf: allow reserving more than one shared fence slot Date: Mon, 24 Sep 2018 13:58:14 +0200 Message-ID: <20180924115819.2116-3-christian.koenig@amd.com> References: <20180924115819.2116-1-christian.koenig@amd.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20180924115819.2116-1-christian.koenig-5C7GfCeVMHo@public.gmane.org> List-Id: Discussion list for AMD gfx List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: amd-gfx-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "amd-gfx" To: amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org TGV0J3Mgc3VwcG9ydCBzaW11bHRhbmVvdXMgc3VibWlzc2lvbnMgdG8gbXVsdGlwbGUgZW5naW5l cy4KClNpZ25lZC1vZmYtYnk6IENocmlzdGlhbiBLw7ZuaWcgPGNocmlzdGlhbi5rb2VuaWdAYW1k LmNvbT4KLS0tCiBkcml2ZXJzL2RtYS1idWYvcmVzZXJ2YXRpb24uYyAgICAgICAgICAgICAgICB8 IDEzICsrKysrKysrLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9jcy5j ICAgICAgIHwgIDIgKy0KIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9vYmplY3Qu YyAgIHwgIDIgKy0KIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV92bS5jICAgICAg IHwgIDQgKystLQogZHJpdmVycy9ncHUvZHJtL2V0bmF2aXYvZXRuYXZpdl9nZW1fc3VibWl0LmMg fCAgMiArLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV92bWEuYyAgICAgICAgICAgICAgfCAg MiArLQogZHJpdmVycy9ncHUvZHJtL21zbS9tc21fZ2VtX3N1Ym1pdC5jICAgICAgICAgfCAgMyAr Ky0KIGRyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L25vdXZlYXVfZmVuY2UuYyAgICAgIHwgIDIgKy0K IGRyaXZlcnMvZ3B1L2RybS9xeGwvcXhsX3JlbGVhc2UuYyAgICAgICAgICAgIHwgIDIgKy0KIGRy aXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX3ZtLmMgICAgICAgICAgIHwgIDIgKy0KIGRyaXZl cnMvZ3B1L2RybS90dG0vdHRtX2JvLmMgICAgICAgICAgICAgICAgIHwgIDQgKystLQogZHJpdmVy cy9ncHUvZHJtL3R0bS90dG1fZXhlY2J1Zl91dGlsLmMgICAgICAgfCAgNCArKy0tCiBkcml2ZXJz L2dwdS9kcm0vdjNkL3YzZF9nZW0uYyAgICAgICAgICAgICAgICB8ICAyICstCiBkcml2ZXJzL2dw dS9kcm0vdmM0L3ZjNF9nZW0uYyAgICAgICAgICAgICAgICB8ICAyICstCiBkcml2ZXJzL2dwdS9k cm0vdmdlbS92Z2VtX2ZlbmNlLmMgICAgICAgICAgICB8ICAyICstCiBpbmNsdWRlL2xpbnV4L3Jl c2VydmF0aW9uLmggICAgICAgICAgICAgICAgICB8ICAzICsrLQogMTYgZmlsZXMgY2hhbmdlZCwg MjggaW5zZXJ0aW9ucygrKSwgMjMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9k bWEtYnVmL3Jlc2VydmF0aW9uLmMgYi9kcml2ZXJzL2RtYS1idWYvcmVzZXJ2YXRpb24uYwppbmRl eCA1ODI1ZmMzMzZhMTMuLjVmYjRmZDQ2MTkwOCAxMDA2NDQKLS0tIGEvZHJpdmVycy9kbWEtYnVm L3Jlc2VydmF0aW9uLmMKKysrIGIvZHJpdmVycy9kbWEtYnVmL3Jlc2VydmF0aW9uLmMKQEAgLTU2 LDkgKzU2LDEwIEBAIGNvbnN0IGNoYXIgcmVzZXJ2YXRpb25fc2VxY291bnRfc3RyaW5nW10gPSAi cmVzZXJ2YXRpb25fc2VxY291bnQiOwogRVhQT1JUX1NZTUJPTChyZXNlcnZhdGlvbl9zZXFjb3Vu dF9zdHJpbmcpOwogCiAvKioKLSAqIHJlc2VydmF0aW9uX29iamVjdF9yZXNlcnZlX3NoYXJlZCAt IFJlc2VydmUgc3BhY2UgdG8gYWRkIGEgc2hhcmVkCi0gKiBmZW5jZSB0byBhIHJlc2VydmF0aW9u X29iamVjdC4KKyAqIHJlc2VydmF0aW9uX29iamVjdF9yZXNlcnZlX3NoYXJlZCAtIFJlc2VydmUg c3BhY2UgdG8gYWRkIHNoYXJlZCBmZW5jZXMgdG8KKyAqIGEgcmVzZXJ2YXRpb25fb2JqZWN0Lgog ICogQG9iajogcmVzZXJ2YXRpb24gb2JqZWN0CisgKiBAbnVtX2ZlbmNlczogbnVtYmVyIG9mIGZl bmNlcyB3ZSB3YW50IHRvIGFkZAogICoKICAqIFNob3VsZCBiZSBjYWxsZWQgYmVmb3JlIHJlc2Vy dmF0aW9uX29iamVjdF9hZGRfc2hhcmVkX2ZlbmNlKCkuICBNdXN0CiAgKiBiZSBjYWxsZWQgd2l0 aCBvYmotPmxvY2sgaGVsZC4KQEAgLTY2LDcgKzY3LDggQEAgRVhQT1JUX1NZTUJPTChyZXNlcnZh dGlvbl9zZXFjb3VudF9zdHJpbmcpOwogICogUkVUVVJOUwogICogWmVybyBmb3Igc3VjY2Vzcywg b3IgLWVycm5vCiAgKi8KLWludCByZXNlcnZhdGlvbl9vYmplY3RfcmVzZXJ2ZV9zaGFyZWQoc3Ry dWN0IHJlc2VydmF0aW9uX29iamVjdCAqb2JqKQoraW50IHJlc2VydmF0aW9uX29iamVjdF9yZXNl cnZlX3NoYXJlZChzdHJ1Y3QgcmVzZXJ2YXRpb25fb2JqZWN0ICpvYmosCisJCQkJICAgICAgdW5z aWduZWQgaW50IG51bV9mZW5jZXMpCiB7CiAJc3RydWN0IHJlc2VydmF0aW9uX29iamVjdF9saXN0 ICpvbGQsICpuZXc7CiAJdW5zaWduZWQgaW50IGksIGosIGssIG1heDsKQEAgLTc0LDEwICs3Niwx MSBAQCBpbnQgcmVzZXJ2YXRpb25fb2JqZWN0X3Jlc2VydmVfc2hhcmVkKHN0cnVjdCByZXNlcnZh dGlvbl9vYmplY3QgKm9iaikKIAlvbGQgPSByZXNlcnZhdGlvbl9vYmplY3RfZ2V0X2xpc3Qob2Jq KTsKIAogCWlmIChvbGQgJiYgb2xkLT5zaGFyZWRfbWF4KSB7Ci0JCWlmIChvbGQtPnNoYXJlZF9j b3VudCA8IG9sZC0+c2hhcmVkX21heCkKKwkJaWYgKChvbGQtPnNoYXJlZF9jb3VudCArIG51bV9m ZW5jZXMpIDw9IG9sZC0+c2hhcmVkX21heCkKIAkJCXJldHVybiAwOwogCQllbHNlCi0JCQltYXgg PSBvbGQtPnNoYXJlZF9tYXggKiAyOworCQkJbWF4ID0gbWF4KG9sZC0+c2hhcmVkX2NvdW50ICsg bnVtX2ZlbmNlcywKKwkJCQkgIG9sZC0+c2hhcmVkX21heCAqIDIpOwogCX0gZWxzZSB7CiAJCW1h eCA9IDQ7CiAJfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1 X2NzLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfY3MuYwppbmRleCA4ODM2 MTg2ZWI1ZWYuLjMyNDNkYTY3ZGI5ZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9h bWRncHUvYW1kZ3B1X2NzLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1 X2NzLmMKQEAgLTk1NSw3ICs5NTUsNyBAQCBzdGF0aWMgaW50IGFtZGdwdV9jc192bV9oYW5kbGlu ZyhzdHJ1Y3QgYW1kZ3B1X2NzX3BhcnNlciAqcCkKIAlpZiAocikKIAkJcmV0dXJuIHI7CiAKLQly ID0gcmVzZXJ2YXRpb25fb2JqZWN0X3Jlc2VydmVfc2hhcmVkKHZtLT5yb290LmJhc2UuYm8tPnRi by5yZXN2KTsKKwlyID0gcmVzZXJ2YXRpb25fb2JqZWN0X3Jlc2VydmVfc2hhcmVkKHZtLT5yb290 LmJhc2UuYm8tPnRiby5yZXN2LCAxKTsKIAlpZiAocikKIAkJcmV0dXJuIHI7CiAKZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9vYmplY3QuYyBiL2RyaXZlcnMv Z3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9vYmplY3QuYwppbmRleCA5MDQwMTRkYzU5MTUuLmNm NzY4YWNiNTFkYyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1 X29iamVjdC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9vYmplY3Qu YwpAQCAtNjQwLDcgKzY0MCw3IEBAIGludCBhbWRncHVfYm9fYmFja3VwX3RvX3NoYWRvdyhzdHJ1 Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwKIAlib19hZGRyID0gYW1kZ3B1X2JvX2dwdV9vZmZzZXQo Ym8pOwogCXNoYWRvd19hZGRyID0gYW1kZ3B1X2JvX2dwdV9vZmZzZXQoYm8tPnNoYWRvdyk7CiAK LQlyID0gcmVzZXJ2YXRpb25fb2JqZWN0X3Jlc2VydmVfc2hhcmVkKGJvLT50Ym8ucmVzdik7CisJ ciA9IHJlc2VydmF0aW9uX29iamVjdF9yZXNlcnZlX3NoYXJlZChiby0+dGJvLnJlc3YsIDEpOwog CWlmIChyKQogCQlnb3RvIGVycjsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9h bWRncHUvYW1kZ3B1X3ZtLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdm0u YwppbmRleCA2OTA0ZDc5NGQ2MGEuLmJkY2UwNTE4M2VkYiAxMDA2NDQKLS0tIGEvZHJpdmVycy9n cHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3ZtLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9h bWRncHUvYW1kZ3B1X3ZtLmMKQEAgLTc3Miw3ICs3NzIsNyBAQCBzdGF0aWMgaW50IGFtZGdwdV92 bV9jbGVhcl9ibyhzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwKIAogCXJpbmcgPSBjb250YWlu ZXJfb2Yodm0tPmVudGl0eS5ycS0+c2NoZWQsIHN0cnVjdCBhbWRncHVfcmluZywgc2NoZWQpOwog Ci0JciA9IHJlc2VydmF0aW9uX29iamVjdF9yZXNlcnZlX3NoYXJlZChiby0+dGJvLnJlc3YpOwor CXIgPSByZXNlcnZhdGlvbl9vYmplY3RfcmVzZXJ2ZV9zaGFyZWQoYm8tPnRiby5yZXN2LCAxKTsK IAlpZiAocikKIAkJcmV0dXJuIHI7CiAKQEAgLTE4MzksNyArMTgzOSw3IEBAIHN0YXRpYyBpbnQg YW1kZ3B1X3ZtX2JvX3VwZGF0ZV9tYXBwaW5nKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LAog CWlmIChyKQogCQlnb3RvIGVycm9yX2ZyZWU7CiAKLQlyID0gcmVzZXJ2YXRpb25fb2JqZWN0X3Jl c2VydmVfc2hhcmVkKHZtLT5yb290LmJhc2UuYm8tPnRiby5yZXN2KTsKKwlyID0gcmVzZXJ2YXRp b25fb2JqZWN0X3Jlc2VydmVfc2hhcmVkKHZtLT5yb290LmJhc2UuYm8tPnRiby5yZXN2LCAxKTsK IAlpZiAocikKIAkJZ290byBlcnJvcl9mcmVlOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vZXRuYXZpdi9ldG5hdml2X2dlbV9zdWJtaXQuYyBiL2RyaXZlcnMvZ3B1L2RybS9ldG5hdml2 L2V0bmF2aXZfZ2VtX3N1Ym1pdC5jCmluZGV4IDk4M2U2N2YxOWU0NS4uMzA4NzVmOGYyOTMzIDEw MDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vZXRuYXZpdi9ldG5hdml2X2dlbV9zdWJtaXQuYwor KysgYi9kcml2ZXJzL2dwdS9kcm0vZXRuYXZpdi9ldG5hdml2X2dlbV9zdWJtaXQuYwpAQCAtMTc5 LDcgKzE3OSw3IEBAIHN0YXRpYyBpbnQgc3VibWl0X2ZlbmNlX3N5bmMoc3RydWN0IGV0bmF2aXZf Z2VtX3N1Ym1pdCAqc3VibWl0KQogCQlzdHJ1Y3QgcmVzZXJ2YXRpb25fb2JqZWN0ICpyb2JqID0g Ym8tPm9iai0+cmVzdjsKIAogCQlpZiAoIShiby0+ZmxhZ3MgJiBFVE5BX1NVQk1JVF9CT19XUklU RSkpIHsKLQkJCXJldCA9IHJlc2VydmF0aW9uX29iamVjdF9yZXNlcnZlX3NoYXJlZChyb2JqKTsK KwkJCXJldCA9IHJlc2VydmF0aW9uX29iamVjdF9yZXNlcnZlX3NoYXJlZChyb2JqLCAxKTsKIAkJ CWlmIChyZXQpCiAJCQkJcmV0dXJuIHJldDsKIAkJfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV92bWEuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfdm1hLmMKaW5k ZXggMTFkODM0Zjk0MjIwLi5mNzRjODU2ODU4ZjkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfdm1hLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV92bWEuYwpA QCAtODkzLDcgKzg5Myw3IEBAIHN0YXRpYyB2b2lkIGV4cG9ydF9mZW5jZShzdHJ1Y3QgaTkxNV92 bWEgKnZtYSwKIAlyZXNlcnZhdGlvbl9vYmplY3RfbG9jayhyZXN2LCBOVUxMKTsKIAlpZiAoZmxh Z3MgJiBFWEVDX09CSkVDVF9XUklURSkKIAkJcmVzZXJ2YXRpb25fb2JqZWN0X2FkZF9leGNsX2Zl bmNlKHJlc3YsICZycS0+ZmVuY2UpOwotCWVsc2UgaWYgKHJlc2VydmF0aW9uX29iamVjdF9yZXNl cnZlX3NoYXJlZChyZXN2KSA9PSAwKQorCWVsc2UgaWYgKHJlc2VydmF0aW9uX29iamVjdF9yZXNl cnZlX3NoYXJlZChyZXN2LCAxKSA9PSAwKQogCQlyZXNlcnZhdGlvbl9vYmplY3RfYWRkX3NoYXJl ZF9mZW5jZShyZXN2LCAmcnEtPmZlbmNlKTsKIAlyZXNlcnZhdGlvbl9vYmplY3RfdW5sb2NrKHJl c3YpOwogfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21zbS9tc21fZ2VtX3N1Ym1pdC5j IGIvZHJpdmVycy9ncHUvZHJtL21zbS9tc21fZ2VtX3N1Ym1pdC5jCmluZGV4IDdiZDgzZTBhZmE5 Ny4uYWNjNWRhNzkxZTM2IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9nZW1f c3VibWl0LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL21zbS9tc21fZ2VtX3N1Ym1pdC5jCkBAIC0y NDEsNyArMjQxLDggQEAgc3RhdGljIGludCBzdWJtaXRfZmVuY2Vfc3luYyhzdHJ1Y3QgbXNtX2dl bV9zdWJtaXQgKnN1Ym1pdCwgYm9vbCBub19pbXBsaWNpdCkKIAkJCSAqIHN0cmFuZ2UgcGxhY2Ug dG8gY2FsbCBpdC4gIE9UT0ggdGhpcyBpcyBhCiAJCQkgKiBjb252ZW5pZW50IGNhbi1mYWlsIHBv aW50IHRvIGhvb2sgaXQgaW4uCiAJCQkgKi8KLQkJCXJldCA9IHJlc2VydmF0aW9uX29iamVjdF9y ZXNlcnZlX3NoYXJlZChtc21fb2JqLT5yZXN2KTsKKwkJCXJldCA9IHJlc2VydmF0aW9uX29iamVj dF9yZXNlcnZlX3NoYXJlZChtc21fb2JqLT5yZXN2LAorCQkJCQkJCQkxKTsKIAkJCWlmIChyZXQp CiAJCQkJcmV0dXJuIHJldDsKIAkJfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL25vdXZl YXUvbm91dmVhdV9mZW5jZS5jIGIvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbm91dmVhdV9mZW5j ZS5jCmluZGV4IDQxMmQ0OWJjNmU1Ni4uYmQ1ODI5OGFmZTEyIDEwMDY0NAotLS0gYS9kcml2ZXJz L2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1X2ZlbmNlLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL25v dXZlYXUvbm91dmVhdV9mZW5jZS5jCkBAIC0zNDEsNyArMzQxLDcgQEAgbm91dmVhdV9mZW5jZV9z eW5jKHN0cnVjdCBub3V2ZWF1X2JvICpudmJvLCBzdHJ1Y3Qgbm91dmVhdV9jaGFubmVsICpjaGFu LCBib29sIGUKIAlpbnQgcmV0ID0gMCwgaTsKIAogCWlmICghZXhjbHVzaXZlKSB7Ci0JCXJldCA9 IHJlc2VydmF0aW9uX29iamVjdF9yZXNlcnZlX3NoYXJlZChyZXN2KTsKKwkJcmV0ID0gcmVzZXJ2 YXRpb25fb2JqZWN0X3Jlc2VydmVfc2hhcmVkKHJlc3YsIDEpOwogCiAJCWlmIChyZXQpCiAJCQly ZXR1cm4gcmV0OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3F4bC9xeGxfcmVsZWFzZS5j IGIvZHJpdmVycy9ncHUvZHJtL3F4bC9xeGxfcmVsZWFzZS5jCmluZGV4IGUzN2YwMDk3Zjc0NC4u YThkNTQ1N2ExYWY5IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vcXhsL3F4bF9yZWxlYXNl LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3F4bC9xeGxfcmVsZWFzZS5jCkBAIC0yMzQsNyArMjM0 LDcgQEAgc3RhdGljIGludCBxeGxfcmVsZWFzZV92YWxpZGF0ZV9ibyhzdHJ1Y3QgcXhsX2JvICpi bykKIAkJCXJldHVybiByZXQ7CiAJfQogCi0JcmV0ID0gcmVzZXJ2YXRpb25fb2JqZWN0X3Jlc2Vy dmVfc2hhcmVkKGJvLT50Ym8ucmVzdik7CisJcmV0ID0gcmVzZXJ2YXRpb25fb2JqZWN0X3Jlc2Vy dmVfc2hhcmVkKGJvLT50Ym8ucmVzdiwgMSk7CiAJaWYgKHJldCkKIAkJcmV0dXJuIHJldDsKIApk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fdm0uYyBiL2RyaXZlcnMv Z3B1L2RybS9yYWRlb24vcmFkZW9uX3ZtLmMKaW5kZXggN2YxYTljNzg3YmQxLi5mZWQxMWVjZTBk ZTYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX3ZtLmMKKysrIGIv ZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fdm0uYwpAQCAtODMxLDcgKzgzMSw3IEBAIHN0 YXRpYyBpbnQgcmFkZW9uX3ZtX3VwZGF0ZV9wdGVzKHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2 LAogCQlpbnQgcjsKIAogCQlyYWRlb25fc3luY19yZXN2KHJkZXYsICZpYi0+c3luYywgcHQtPnRi by5yZXN2LCB0cnVlKTsKLQkJciA9IHJlc2VydmF0aW9uX29iamVjdF9yZXNlcnZlX3NoYXJlZChw dC0+dGJvLnJlc3YpOworCQlyID0gcmVzZXJ2YXRpb25fb2JqZWN0X3Jlc2VydmVfc2hhcmVkKHB0 LT50Ym8ucmVzdiwgMSk7CiAJCWlmIChyKQogCQkJcmV0dXJuIHI7CiAKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS90dG0vdHRtX2JvLmMgYi9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9iby5j CmluZGV4IGIyYTMzYmYxZWYxMC4uNDYxYjMxOGNhMmE2IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dw dS9kcm0vdHRtL3R0bV9iby5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS90dG0vdHRtX2JvLmMKQEAg LTg4Nyw3ICs4ODcsNyBAQCBzdGF0aWMgaW50IHR0bV9ib19hZGRfbW92ZV9mZW5jZShzdHJ1Y3Qg dHRtX2J1ZmZlcl9vYmplY3QgKmJvLAogCWlmIChmZW5jZSkgewogCQlyZXNlcnZhdGlvbl9vYmpl Y3RfYWRkX3NoYXJlZF9mZW5jZShiby0+cmVzdiwgZmVuY2UpOwogCi0JCXJldCA9IHJlc2VydmF0 aW9uX29iamVjdF9yZXNlcnZlX3NoYXJlZChiby0+cmVzdik7CisJCXJldCA9IHJlc2VydmF0aW9u X29iamVjdF9yZXNlcnZlX3NoYXJlZChiby0+cmVzdiwgMSk7CiAJCWlmICh1bmxpa2VseShyZXQp KQogCQkJcmV0dXJuIHJldDsKIApAQCAtOTkyLDcgKzk5Miw3IEBAIGludCB0dG1fYm9fbWVtX3Nw YWNlKHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8sCiAJYm9vbCBoYXNfZXJlc3RhcnRzeXMg PSBmYWxzZTsKIAlpbnQgaSwgcmV0OwogCi0JcmV0ID0gcmVzZXJ2YXRpb25fb2JqZWN0X3Jlc2Vy dmVfc2hhcmVkKGJvLT5yZXN2KTsKKwlyZXQgPSByZXNlcnZhdGlvbl9vYmplY3RfcmVzZXJ2ZV9z aGFyZWQoYm8tPnJlc3YsIDEpOwogCWlmICh1bmxpa2VseShyZXQpKQogCQlyZXR1cm4gcmV0Owog CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9leGVjYnVmX3V0aWwuYyBiL2Ry aXZlcnMvZ3B1L2RybS90dG0vdHRtX2V4ZWNidWZfdXRpbC5jCmluZGV4IGU3M2FlMGQyMjg5Ny4u ZTQ5M2VkYjBkM2U3IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9leGVjYnVm X3V0aWwuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9leGVjYnVmX3V0aWwuYwpAQCAt MTI5LDcgKzEyOSw3IEBAIGludCB0dG1fZXVfcmVzZXJ2ZV9idWZmZXJzKHN0cnVjdCB3d19hY3F1 aXJlX2N0eCAqdGlja2V0LAogCQkJaWYgKCFlbnRyeS0+c2hhcmVkKQogCQkJCWNvbnRpbnVlOwog Ci0JCQlyZXQgPSByZXNlcnZhdGlvbl9vYmplY3RfcmVzZXJ2ZV9zaGFyZWQoYm8tPnJlc3YpOwor CQkJcmV0ID0gcmVzZXJ2YXRpb25fb2JqZWN0X3Jlc2VydmVfc2hhcmVkKGJvLT5yZXN2LCAxKTsK IAkJCWlmICghcmV0KQogCQkJCWNvbnRpbnVlOwogCQl9CkBAIC0xNTEsNyArMTUxLDcgQEAgaW50 IHR0bV9ldV9yZXNlcnZlX2J1ZmZlcnMoc3RydWN0IHd3X2FjcXVpcmVfY3R4ICp0aWNrZXQsCiAJ CX0KIAogCQlpZiAoIXJldCAmJiBlbnRyeS0+c2hhcmVkKQotCQkJcmV0ID0gcmVzZXJ2YXRpb25f b2JqZWN0X3Jlc2VydmVfc2hhcmVkKGJvLT5yZXN2KTsKKwkJCXJldCA9IHJlc2VydmF0aW9uX29i amVjdF9yZXNlcnZlX3NoYXJlZChiby0+cmVzdiwgMSk7CiAKIAkJaWYgKHVubGlrZWx5KHJldCAh PSAwKSkgewogCQkJaWYgKHJldCA9PSAtRUlOVFIpCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vdjNkL3YzZF9nZW0uYyBiL2RyaXZlcnMvZ3B1L2RybS92M2QvdjNkX2dlbS5jCmluZGV4IDVj ZTI0MDk4YTVmZC4uNGE0NjM3NmZmNzk1IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vdjNk L3YzZF9nZW0uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vdjNkL3YzZF9nZW0uYwpAQCAtMzA1LDcg KzMwNSw3IEBAIHYzZF9sb2NrX2JvX3Jlc2VydmF0aW9ucyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 LAogCWZvciAoaSA9IDA7IGkgPCBleGVjLT5ib19jb3VudDsgaSsrKSB7CiAJCWJvID0gdG9fdjNk X2JvKCZleGVjLT5ib1tpXS0+YmFzZSk7CiAKLQkJcmV0ID0gcmVzZXJ2YXRpb25fb2JqZWN0X3Jl c2VydmVfc2hhcmVkKGJvLT5yZXN2KTsKKwkJcmV0ID0gcmVzZXJ2YXRpb25fb2JqZWN0X3Jlc2Vy dmVfc2hhcmVkKGJvLT5yZXN2LCAxKTsKIAkJaWYgKHJldCkgewogCQkJdjNkX3VubG9ja19ib19y ZXNlcnZhdGlvbnMoZGV2LCBleGVjLCBhY3F1aXJlX2N0eCk7CiAJCQlyZXR1cm4gcmV0OwpkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3ZjNC92YzRfZ2VtLmMgYi9kcml2ZXJzL2dwdS9kcm0v dmM0L3ZjNF9nZW0uYwppbmRleCA3OTEwYjlhY2VkZDYuLjVmNzY4ZDg4NmNiMiAxMDA2NDQKLS0t IGEvZHJpdmVycy9ncHUvZHJtL3ZjNC92YzRfZ2VtLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3Zj NC92YzRfZ2VtLmMKQEAgLTYzNSw3ICs2MzUsNyBAQCB2YzRfbG9ja19ib19yZXNlcnZhdGlvbnMo c3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAlmb3IgKGkgPSAwOyBpIDwgZXhlYy0+Ym9fY291bnQ7 IGkrKykgewogCQlibyA9IHRvX3ZjNF9ibygmZXhlYy0+Ym9baV0tPmJhc2UpOwogCi0JCXJldCA9 IHJlc2VydmF0aW9uX29iamVjdF9yZXNlcnZlX3NoYXJlZChiby0+cmVzdik7CisJCXJldCA9IHJl c2VydmF0aW9uX29iamVjdF9yZXNlcnZlX3NoYXJlZChiby0+cmVzdiwgMSk7CiAJCWlmIChyZXQp IHsKIAkJCXZjNF91bmxvY2tfYm9fcmVzZXJ2YXRpb25zKGRldiwgZXhlYywgYWNxdWlyZV9jdHgp OwogCQkJcmV0dXJuIHJldDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS92Z2VtL3ZnZW1f ZmVuY2UuYyBiL2RyaXZlcnMvZ3B1L2RybS92Z2VtL3ZnZW1fZmVuY2UuYwppbmRleCBiMjg4NzZj MjIyYjQuLmYyNjkyZTVhYmFjMiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3ZnZW0vdmdl bV9mZW5jZS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS92Z2VtL3ZnZW1fZmVuY2UuYwpAQCAtMTkz LDcgKzE5Myw3IEBAIGludCB2Z2VtX2ZlbmNlX2F0dGFjaF9pb2N0bChzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2LAogCXJlc2VydmF0aW9uX29iamVjdF9sb2NrKHJlc3YsIE5VTEwpOwogCWlmIChhcmct PmZsYWdzICYgVkdFTV9GRU5DRV9XUklURSkKIAkJcmVzZXJ2YXRpb25fb2JqZWN0X2FkZF9leGNs X2ZlbmNlKHJlc3YsIGZlbmNlKTsKLQllbHNlIGlmICgocmV0ID0gcmVzZXJ2YXRpb25fb2JqZWN0 X3Jlc2VydmVfc2hhcmVkKHJlc3YpKSA9PSAwKQorCWVsc2UgaWYgKChyZXQgPSByZXNlcnZhdGlv bl9vYmplY3RfcmVzZXJ2ZV9zaGFyZWQocmVzdiwgMSkpID09IDApCiAJCXJlc2VydmF0aW9uX29i amVjdF9hZGRfc2hhcmVkX2ZlbmNlKHJlc3YsIGZlbmNlKTsKIAlyZXNlcnZhdGlvbl9vYmplY3Rf dW5sb2NrKHJlc3YpOwogCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L3Jlc2VydmF0aW9uLmgg Yi9pbmNsdWRlL2xpbnV4L3Jlc2VydmF0aW9uLmgKaW5kZXggNTRjZjY3NzNhMTRjLi41ZGRiMGUx NDM3MjEgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvcmVzZXJ2YXRpb24uaAorKysgYi9pbmNs dWRlL2xpbnV4L3Jlc2VydmF0aW9uLmgKQEAgLTI2MSw3ICsyNjEsOCBAQCByZXNlcnZhdGlvbl9v YmplY3RfZ2V0X2V4Y2xfcmN1KHN0cnVjdCByZXNlcnZhdGlvbl9vYmplY3QgKm9iaikKIAlyZXR1 cm4gZmVuY2U7CiB9CiAKLWludCByZXNlcnZhdGlvbl9vYmplY3RfcmVzZXJ2ZV9zaGFyZWQoc3Ry dWN0IHJlc2VydmF0aW9uX29iamVjdCAqb2JqKTsKK2ludCByZXNlcnZhdGlvbl9vYmplY3RfcmVz ZXJ2ZV9zaGFyZWQoc3RydWN0IHJlc2VydmF0aW9uX29iamVjdCAqb2JqLAorCQkJCSAgICAgIHVu c2lnbmVkIGludCBudW1fZmVuY2VzKTsKIHZvaWQgcmVzZXJ2YXRpb25fb2JqZWN0X2FkZF9zaGFy ZWRfZmVuY2Uoc3RydWN0IHJlc2VydmF0aW9uX29iamVjdCAqb2JqLAogCQkJCQkgc3RydWN0IGRt YV9mZW5jZSAqZmVuY2UpOwogCi0tIAoyLjE0LjEKCl9fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fCmFtZC1nZnggbWFpbGluZyBsaXN0CmFtZC1nZnhAbGlzdHMu ZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlz dGluZm8vYW1kLWdmeAo=