From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?UTF-8?q?Christian=20K=C3=B6nig?= Subject: [PATCH 3/8] drm/amdgpu: split VMID management by VMHUB Date: Fri, 7 Apr 2017 18:11:11 +0200 Message-ID: <1491581476-26758-3-git-send-email-deathsimple@vodafone.de> References: <1491581476-26758-1-git-send-email-deathsimple@vodafone.de> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1491581476-26758-1-git-send-email-deathsimple-ANTagKRnAhcb1SvskN2V4Q@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 RnJvbTogQ2hyaXN0aWFuIEvDtm5pZyA8Y2hyaXN0aWFuLmtvZW5pZ0BhbWQuY29tPgoKVGhpcyB3 YXkgR0ZYIGFuZCBNTSB3b24ndCBmaWdodCBmb3IgVk1JRHMgYW55IG1vcmUuCgpJbml0aWFsbHkg ZGlzYWJsZWQgc2luY2Ugd2UgbmVlZCB0byBzdG9wIGZsdXNoaW5nIGFsbCBIVUJTCmF0IHRoZSBz YW1lIHRpbWUgYXMgd2VsbC4KClNpZ25lZC1vZmYtYnk6IENocmlzdGlhbiBLw7ZuaWcgPGNocmlz dGlhbi5rb2VuaWdAYW1kLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRn cHVfZGV2aWNlLmMgfCAgMSAtCiBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfaWIu YyAgICAgfCAgMyArLQogZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3ZtLmMgICAg IHwgODIgKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vYW1k L2FtZGdwdS9hbWRncHVfdm0uaCAgICAgfCAxNSArKysrLS0KIGRyaXZlcnMvZ3B1L2RybS9hbWQv YW1kZ3B1L2dmeF92N18wLmMgICAgICB8ICAyICstCiBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdw dS9nZnhfdjhfMC5jICAgICAgfCAgMiArLQogZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZ21j X3Y2XzAuYyAgICAgIHwgIDIgKy0KIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2dtY192N18w LmMgICAgICB8ICAyICstCiBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9nbWNfdjhfMC5jICAg ICAgfCAgMiArLQogZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZ21jX3Y5XzAuYyAgICAgIHwg IDMgKy0KIDEwIGZpbGVzIGNoYW5nZWQsIDY5IGluc2VydGlvbnMoKyksIDQ1IGRlbGV0aW9ucygt KQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9kZXZpY2Uu YyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9kZXZpY2UuYwppbmRleCA4ZmNl MzA5Li41Mzk5NmUzIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRn cHVfZGV2aWNlLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2Rldmlj ZS5jCkBAIC0xODg2LDcgKzE4ODYsNiBAQCBpbnQgYW1kZ3B1X2RldmljZV9pbml0KHN0cnVjdCBh bWRncHVfZGV2aWNlICphZGV2LAogCiAJLyogbXV0ZXggaW5pdGlhbGl6YXRpb24gYXJlIGFsbCBk b25lIGhlcmUgc28gd2UKIAkgKiBjYW4gcmVjYWxsIGZ1bmN0aW9uIHdpdGhvdXQgaGF2aW5nIGxv Y2tpbmcgaXNzdWVzICovCi0JbXV0ZXhfaW5pdCgmYWRldi0+dm1fbWFuYWdlci5sb2NrKTsKIAlh dG9taWNfc2V0KCZhZGV2LT5pcnEuaWgubG9jaywgMCk7CiAJbXV0ZXhfaW5pdCgmYWRldi0+Zmly bXdhcmUubXV0ZXgpOwogCW11dGV4X2luaXQoJmFkZXYtPnBtLm11dGV4KTsKZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9pYi5jIGIvZHJpdmVycy9ncHUvZHJt L2FtZC9hbWRncHUvYW1kZ3B1X2liLmMKaW5kZXggZTM4MmViOC4uNDQ4MGUwMSAxMDA2NDQKLS0t IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2liLmMKKysrIGIvZHJpdmVycy9n cHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2liLmMKQEAgLTIxNyw3ICsyMTcsOCBAQCBpbnQgYW1k Z3B1X2liX3NjaGVkdWxlKHN0cnVjdCBhbWRncHVfcmluZyAqcmluZywgdW5zaWduZWQgbnVtX2li cywKIAlpZiAocikgewogCQlkZXZfZXJyKGFkZXYtPmRldiwgImZhaWxlZCB0byBlbWl0IGZlbmNl ICglZClcbiIsIHIpOwogCQlpZiAoam9iICYmIGpvYi0+dm1faWQpCi0JCQlhbWRncHVfdm1fcmVz ZXRfaWQoYWRldiwgam9iLT52bV9pZCk7CisJCQlhbWRncHVfdm1fcmVzZXRfaWQoYWRldiwgcmlu Zy0+ZnVuY3MtPnZtaHViLAorCQkJCQkgICBqb2ItPnZtX2lkKTsKIAkJYW1kZ3B1X3JpbmdfdW5k byhyaW5nKTsKIAkJcmV0dXJuIHI7CiAJfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2Ft ZC9hbWRncHUvYW1kZ3B1X3ZtLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVf dm0uYwppbmRleCBkZTY1NThiLi5kYjQ3YzUxIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0v YW1kL2FtZGdwdS9hbWRncHVfdm0uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9h bWRncHVfdm0uYwpAQCAtNDA2LDYgKzQwNiw5IEBAIGludCBhbWRncHVfdm1fZ3JhYl9pZChzdHJ1 Y3QgYW1kZ3B1X3ZtICp2bSwgc3RydWN0IGFtZGdwdV9yaW5nICpyaW5nLAogCQkgICAgICBzdHJ1 Y3QgYW1kZ3B1X2pvYiAqam9iKQogewogCXN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2ID0gcmlu Zy0+YWRldjsKKwkvKiBUZW1wb3JhcnkgdXNlIG9ubHkgdGhlIGZpcnN0IFZNIG1hbmFnZXIgKi8K Kwl1bnNpZ25lZCB2bWh1YiA9IDA7IC8qcmluZy0+ZnVuY3MtPnZtaHViOyovCisJc3RydWN0IGFt ZGdwdV92bV9pZF9tYW5hZ2VyICppZF9tZ3IgPSAmYWRldi0+dm1fbWFuYWdlci5pZF9tZ3Jbdm1o dWJdOwogCXVpbnQ2NF90IGZlbmNlX2NvbnRleHQgPSBhZGV2LT5mZW5jZV9jb250ZXh0ICsgcmlu Zy0+aWR4OwogCXN0cnVjdCBmZW5jZSAqdXBkYXRlcyA9IHN5bmMtPmxhc3Rfdm1fdXBkYXRlOwog CXN0cnVjdCBhbWRncHVfdm1faWQgKmlkLCAqaWRsZTsKQEAgLTQxMywxNiArNDE2LDE1IEBAIGlu dCBhbWRncHVfdm1fZ3JhYl9pZChzdHJ1Y3QgYW1kZ3B1X3ZtICp2bSwgc3RydWN0IGFtZGdwdV9y aW5nICpyaW5nLAogCXVuc2lnbmVkIGk7CiAJaW50IHIgPSAwOwogCi0JZmVuY2VzID0ga21hbGxv Y19hcnJheShzaXplb2Yodm9pZCAqKSwgYWRldi0+dm1fbWFuYWdlci5udW1faWRzLAotCQkJICAg ICAgIEdGUF9LRVJORUwpOworCWZlbmNlcyA9IGttYWxsb2NfYXJyYXkoc2l6ZW9mKHZvaWQgKiks IGlkX21nci0+bnVtX2lkcywgR0ZQX0tFUk5FTCk7CiAJaWYgKCFmZW5jZXMpCiAJCXJldHVybiAt RU5PTUVNOwogCi0JbXV0ZXhfbG9jaygmYWRldi0+dm1fbWFuYWdlci5sb2NrKTsKKwltdXRleF9s b2NrKCZpZF9tZ3ItPmxvY2spOwogCiAJLyogQ2hlY2sgaWYgd2UgaGF2ZSBhbiBpZGxlIFZNSUQg Ki8KIAlpID0gMDsKLQlsaXN0X2Zvcl9lYWNoX2VudHJ5KGlkbGUsICZhZGV2LT52bV9tYW5hZ2Vy Lmlkc19scnUsIGxpc3QpIHsKKwlsaXN0X2Zvcl9lYWNoX2VudHJ5KGlkbGUsICZpZF9tZ3ItPmlk c19scnUsIGxpc3QpIHsKIAkJZmVuY2VzW2ldID0gYW1kZ3B1X3N5bmNfcGVla19mZW5jZSgmaWRs ZS0+YWN0aXZlLCByaW5nKTsKIAkJaWYgKCFmZW5jZXNbaV0pCiAJCQlicmVhazsKQEAgLTQzMCw3 ICs0MzIsNyBAQCBpbnQgYW1kZ3B1X3ZtX2dyYWJfaWQoc3RydWN0IGFtZGdwdV92bSAqdm0sIHN0 cnVjdCBhbWRncHVfcmluZyAqcmluZywKIAl9CiAKIAkvKiBJZiB3ZSBjYW4ndCBmaW5kIGEgaWRs ZSBWTUlEIHRvIHVzZSwgd2FpdCB0aWxsIG9uZSBiZWNvbWVzIGF2YWlsYWJsZSAqLwotCWlmICgm aWRsZS0+bGlzdCA9PSAmYWRldi0+dm1fbWFuYWdlci5pZHNfbHJ1KSB7CisJaWYgKCZpZGxlLT5s aXN0ID09ICZpZF9tZ3ItPmlkc19scnUpIHsKIAkJdTY0IGZlbmNlX2NvbnRleHQgPSBhZGV2LT52 bV9tYW5hZ2VyLmZlbmNlX2NvbnRleHQgKyByaW5nLT5pZHg7CiAJCXVuc2lnbmVkIHNlcW5vID0g KythZGV2LT52bV9tYW5hZ2VyLnNlcW5vW3JpbmctPmlkeF07CiAJCXN0cnVjdCBmZW5jZV9hcnJh eSAqYXJyYXk7CkBAIC00NTUsNyArNDU3LDcgQEAgaW50IGFtZGdwdV92bV9ncmFiX2lkKHN0cnVj dCBhbWRncHVfdm0gKnZtLCBzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcsCiAJCWlmIChyKQogCQkJ Z290byBlcnJvcjsKIAotCQltdXRleF91bmxvY2soJmFkZXYtPnZtX21hbmFnZXIubG9jayk7CisJ CW11dGV4X3VubG9jaygmaWRfbWdyLT5sb2NrKTsKIAkJcmV0dXJuIDA7CiAKIAl9CkBAIC00NjMs NyArNDY1LDcgQEAgaW50IGFtZGdwdV92bV9ncmFiX2lkKHN0cnVjdCBhbWRncHVfdm0gKnZtLCBz dHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcsCiAKIAlqb2ItPnZtX25lZWRzX2ZsdXNoID0gdHJ1ZTsK IAkvKiBDaGVjayBpZiB3ZSBjYW4gdXNlIGEgVk1JRCBhbHJlYWR5IGFzc2lnbmVkIHRvIHRoaXMg Vk0gKi8KLQlsaXN0X2Zvcl9lYWNoX2VudHJ5X3JldmVyc2UoaWQsICZhZGV2LT52bV9tYW5hZ2Vy Lmlkc19scnUsIGxpc3QpIHsKKwlsaXN0X2Zvcl9lYWNoX2VudHJ5X3JldmVyc2UoaWQsICZpZF9t Z3ItPmlkc19scnUsIGxpc3QpIHsKIAkJc3RydWN0IGZlbmNlICpmbHVzaGVkOwogCiAJCS8qIENo ZWNrIGFsbCB0aGUgcHJlcmVxdWlzaXRlcyB0byB1c2luZyB0aGlzIFZNSUQgKi8KQEAgLTQ5NSwx MyArNDk3LDEzIEBAIGludCBhbWRncHVfdm1fZ3JhYl9pZChzdHJ1Y3QgYW1kZ3B1X3ZtICp2bSwg c3RydWN0IGFtZGdwdV9yaW5nICpyaW5nLAogCQlpZiAocikKIAkJCWdvdG8gZXJyb3I7CiAKLQkJ bGlzdF9tb3ZlX3RhaWwoJmlkLT5saXN0LCAmYWRldi0+dm1fbWFuYWdlci5pZHNfbHJ1KTsKKwkJ bGlzdF9tb3ZlX3RhaWwoJmlkLT5saXN0LCAmaWRfbWdyLT5pZHNfbHJ1KTsKIAotCQlqb2ItPnZt X2lkID0gaWQgLSBhZGV2LT52bV9tYW5hZ2VyLmlkczsKKwkJam9iLT52bV9pZCA9IGlkIC0gaWRf bWdyLT5pZHM7CiAJCWpvYi0+dm1fbmVlZHNfZmx1c2ggPSBmYWxzZTsKIAkJdHJhY2VfYW1kZ3B1 X3ZtX2dyYWJfaWQodm0sIHJpbmctPmlkeCwgam9iKTsKIAotCQltdXRleF91bmxvY2soJmFkZXYt PnZtX21hbmFnZXIubG9jayk7CisJCW11dGV4X3VubG9jaygmaWRfbWdyLT5sb2NrKTsKIAkJcmV0 dXJuIDA7CiAKIAl9OwpAQCAtNTIyLDE0ICs1MjQsMTQgQEAgaW50IGFtZGdwdV92bV9ncmFiX2lk KHN0cnVjdCBhbWRncHVfdm0gKnZtLCBzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcsCiAKIAlpZC0+ cGRfZ3B1X2FkZHIgPSBqb2ItPnZtX3BkX2FkZHI7CiAJaWQtPmN1cnJlbnRfZ3B1X3Jlc2V0X2Nv dW50ID0gYXRvbWljX3JlYWQoJmFkZXYtPmdwdV9yZXNldF9jb3VudGVyKTsKLQlsaXN0X21vdmVf dGFpbCgmaWQtPmxpc3QsICZhZGV2LT52bV9tYW5hZ2VyLmlkc19scnUpOworCWxpc3RfbW92ZV90 YWlsKCZpZC0+bGlzdCwgJmlkX21nci0+aWRzX2xydSk7CiAJYXRvbWljNjRfc2V0KCZpZC0+b3du ZXIsIHZtLT5jbGllbnRfaWQpOwogCi0Jam9iLT52bV9pZCA9IGlkIC0gYWRldi0+dm1fbWFuYWdl ci5pZHM7CisJam9iLT52bV9pZCA9IGlkIC0gaWRfbWdyLT5pZHM7CiAJdHJhY2VfYW1kZ3B1X3Zt X2dyYWJfaWQodm0sIHJpbmctPmlkeCwgam9iKTsKIAogZXJyb3I6Ci0JbXV0ZXhfdW5sb2NrKCZh ZGV2LT52bV9tYW5hZ2VyLmxvY2spOworCW11dGV4X3VubG9jaygmaWRfbWdyLT5sb2NrKTsKIAly ZXR1cm4gcjsKIH0KIApAQCAtNTgxLDcgKzU4Myw5IEBAIHN0YXRpYyB1NjQgYW1kZ3B1X3ZtX2Fk anVzdF9tY19hZGRyKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LCB1NjQgbWNfYWRkcikKIGlu dCBhbWRncHVfdm1fZmx1c2goc3RydWN0IGFtZGdwdV9yaW5nICpyaW5nLCBzdHJ1Y3QgYW1kZ3B1 X2pvYiAqam9iKQogewogCXN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2ID0gcmluZy0+YWRldjsK LQlzdHJ1Y3QgYW1kZ3B1X3ZtX2lkICppZCA9ICZhZGV2LT52bV9tYW5hZ2VyLmlkc1tqb2ItPnZt X2lkXTsKKwl1bnNpZ25lZCB2bWh1YiA9IHJpbmctPmZ1bmNzLT52bWh1YjsKKwlzdHJ1Y3QgYW1k Z3B1X3ZtX2lkX21hbmFnZXIgKmlkX21nciA9ICZhZGV2LT52bV9tYW5hZ2VyLmlkX21nclt2bWh1 Yl07CisJc3RydWN0IGFtZGdwdV92bV9pZCAqaWQgPSAmaWRfbWdyLT5pZHNbam9iLT52bV9pZF07 CiAJYm9vbCBnZHNfc3dpdGNoX25lZWRlZCA9IHJpbmctPmZ1bmNzLT5lbWl0X2dkc19zd2l0Y2gg JiYgKAogCQlpZC0+Z2RzX2Jhc2UgIT0gam9iLT5nZHNfYmFzZSB8fAogCQlpZC0+Z2RzX3NpemUg IT0gam9iLT5nZHNfc2l6ZSB8fApAQCAtNjE5LDEwICs2MjMsMTAgQEAgaW50IGFtZGdwdV92bV9m bHVzaChzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcsIHN0cnVjdCBhbWRncHVfam9iICpqb2IpCiAJ CWlmIChyKQogCQkJcmV0dXJuIHI7CiAKLQkJbXV0ZXhfbG9jaygmYWRldi0+dm1fbWFuYWdlci5s b2NrKTsKKwkJbXV0ZXhfbG9jaygmaWRfbWdyLT5sb2NrKTsKIAkJZmVuY2VfcHV0KGlkLT5sYXN0 X2ZsdXNoKTsKIAkJaWQtPmxhc3RfZmx1c2ggPSBmZW5jZTsKLQkJbXV0ZXhfdW5sb2NrKCZhZGV2 LT52bV9tYW5hZ2VyLmxvY2spOworCQltdXRleF91bmxvY2soJmlkX21nci0+bG9jayk7CiAJfQog CiAJaWYgKGdkc19zd2l0Y2hfbmVlZGVkKSB7CkBAIC02NTcsOSArNjYxLDExIEBAIGludCBhbWRn cHVfdm1fZmx1c2goc3RydWN0IGFtZGdwdV9yaW5nICpyaW5nLCBzdHJ1Y3QgYW1kZ3B1X2pvYiAq am9iKQogICoKICAqIFJlc2V0IHNhdmVkIEdEVywgR1dTIGFuZCBPQSB0byBmb3JjZSBzd2l0Y2gg b24gbmV4dCBmbHVzaC4KICAqLwotdm9pZCBhbWRncHVfdm1fcmVzZXRfaWQoc3RydWN0IGFtZGdw dV9kZXZpY2UgKmFkZXYsIHVuc2lnbmVkIHZtX2lkKQordm9pZCBhbWRncHVfdm1fcmVzZXRfaWQo c3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsIHVuc2lnbmVkIHZtaHViLAorCQkJdW5zaWduZWQg dm1pZCkKIHsKLQlzdHJ1Y3QgYW1kZ3B1X3ZtX2lkICppZCA9ICZhZGV2LT52bV9tYW5hZ2VyLmlk c1t2bV9pZF07CisJc3RydWN0IGFtZGdwdV92bV9pZF9tYW5hZ2VyICppZF9tZ3IgPSAmYWRldi0+ dm1fbWFuYWdlci5pZF9tZ3Jbdm1odWJdOworCXN0cnVjdCBhbWRncHVfdm1faWQgKmlkID0gJmlk X21nci0+aWRzW3ZtaWRdOwogCiAJaWQtPmdkc19iYXNlID0gMDsKIAlpZC0+Z2RzX3NpemUgPSAw OwpAQCAtMjIzMCwyMiArMjIzNiwyOCBAQCB2b2lkIGFtZGdwdV92bV9maW5pKHN0cnVjdCBhbWRn cHVfZGV2aWNlICphZGV2LCBzdHJ1Y3QgYW1kZ3B1X3ZtICp2bSkKICAqLwogdm9pZCBhbWRncHVf dm1fbWFuYWdlcl9pbml0KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQogewotCXVuc2lnbmVk IGk7CisJdW5zaWduZWQgaSwgajsKKworCWZvciAoaSA9IDA7IGkgPCBBTURHUFVfTUFYX1ZNSFVC UzsgKytpKSB7CisJCXN0cnVjdCBhbWRncHVfdm1faWRfbWFuYWdlciAqaWRfbWdyID0KKwkJCSZh ZGV2LT52bV9tYW5hZ2VyLmlkX21ncltpXTsKIAotCUlOSVRfTElTVF9IRUFEKCZhZGV2LT52bV9t YW5hZ2VyLmlkc19scnUpOworCQltdXRleF9pbml0KCZpZF9tZ3ItPmxvY2spOworCQlJTklUX0xJ U1RfSEVBRCgmaWRfbWdyLT5pZHNfbHJ1KTsKIAotCS8qIHNraXAgb3ZlciBWTUlEIDAsIHNpbmNl IGl0IGlzIHRoZSBzeXN0ZW0gVk0gKi8KLQlmb3IgKGkgPSAxOyBpIDwgYWRldi0+dm1fbWFuYWdl ci5udW1faWRzOyArK2kpIHsKLQkJYW1kZ3B1X3ZtX3Jlc2V0X2lkKGFkZXYsIGkpOwotCQlhbWRn cHVfc3luY19jcmVhdGUoJmFkZXYtPnZtX21hbmFnZXIuaWRzW2ldLmFjdGl2ZSk7Ci0JCWxpc3Rf YWRkX3RhaWwoJmFkZXYtPnZtX21hbmFnZXIuaWRzW2ldLmxpc3QsCi0JCQkgICAgICAmYWRldi0+ dm1fbWFuYWdlci5pZHNfbHJ1KTsKKwkJLyogc2tpcCBvdmVyIFZNSUQgMCwgc2luY2UgaXQgaXMg dGhlIHN5c3RlbSBWTSAqLworCQlmb3IgKGogPSAxOyBqIDwgaWRfbWdyLT5udW1faWRzOyArK2op IHsKKwkJCWFtZGdwdV92bV9yZXNldF9pZChhZGV2LCBpLCBqKTsKKwkJCWFtZGdwdV9zeW5jX2Ny ZWF0ZSgmaWRfbWdyLT5pZHNbaV0uYWN0aXZlKTsKKwkJCWxpc3RfYWRkX3RhaWwoJmlkX21nci0+ aWRzW2pdLmxpc3QsICZpZF9tZ3ItPmlkc19scnUpOworCQl9CiAJfQogCiAJYWRldi0+dm1fbWFu YWdlci5mZW5jZV9jb250ZXh0ID0gZmVuY2VfY29udGV4dF9hbGxvYyhBTURHUFVfTUFYX1JJTkdT KTsKIAlmb3IgKGkgPSAwOyBpIDwgQU1ER1BVX01BWF9SSU5HUzsgKytpKQogCQlhZGV2LT52bV9t YW5hZ2VyLnNlcW5vW2ldID0gMDsKIAorCiAJYXRvbWljX3NldCgmYWRldi0+dm1fbWFuYWdlci52 bV9wdGVfbmV4dF9yaW5nLCAwKTsKIAlhdG9taWM2NF9zZXQoJmFkZXYtPnZtX21hbmFnZXIuY2xp ZW50X2NvdW50ZXIsIDApOwogCXNwaW5fbG9ja19pbml0KCZhZGV2LT52bV9tYW5hZ2VyLnBydF9s b2NrKTsKQEAgLTIyNjEsMTMgKzIyNzMsMTkgQEAgdm9pZCBhbWRncHVfdm1fbWFuYWdlcl9pbml0 KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQogICovCiB2b2lkIGFtZGdwdV92bV9tYW5hZ2Vy X2Zpbmkoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCiB7Ci0JdW5zaWduZWQgaTsKKwl1bnNp Z25lZCBpLCBqOwogCi0JZm9yIChpID0gMDsgaSA8IEFNREdQVV9OVU1fVk07ICsraSkgewotCQlz dHJ1Y3QgYW1kZ3B1X3ZtX2lkICppZCA9ICZhZGV2LT52bV9tYW5hZ2VyLmlkc1tpXTsKKwlmb3Ig KGkgPSAwOyBpIDwgQU1ER1BVX01BWF9WTUhVQlM7ICsraSkgeworCQlzdHJ1Y3QgYW1kZ3B1X3Zt X2lkX21hbmFnZXIgKmlkX21nciA9CisJCQkmYWRldi0+dm1fbWFuYWdlci5pZF9tZ3JbaV07CiAK LQkJYW1kZ3B1X3N5bmNfZnJlZSgmYWRldi0+dm1fbWFuYWdlci5pZHNbaV0uYWN0aXZlKTsKLQkJ ZmVuY2VfcHV0KGlkLT5mbHVzaGVkX3VwZGF0ZXMpOwotCQlmZW5jZV9wdXQoaWQtPmxhc3RfZmx1 c2gpOworCQltdXRleF9kZXN0cm95KCZpZF9tZ3ItPmxvY2spOworCQlmb3IgKGogPSAwOyBqIDwg QU1ER1BVX05VTV9WTTsgKytqKSB7CisJCQlzdHJ1Y3QgYW1kZ3B1X3ZtX2lkICppZCA9ICZpZF9t Z3ItPmlkc1tqXTsKKworCQkJYW1kZ3B1X3N5bmNfZnJlZSgmaWQtPmFjdGl2ZSk7CisJCQlmZW5j ZV9wdXQoaWQtPmZsdXNoZWRfdXBkYXRlcyk7CisJCQlmZW5jZV9wdXQoaWQtPmxhc3RfZmx1c2gp OworCQl9CiAJfQogfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1k Z3B1X3ZtLmggYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdm0uaAppbmRleCA0 Njk4N2I0Li41Mzg5NjA0IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9h bWRncHVfdm0uaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdm0uaApA QCAtMTQ2LDEyICsxNDYsMTYgQEAgc3RydWN0IGFtZGdwdV92bV9pZCB7CiAJdWludDMyX3QJCW9h X3NpemU7CiB9OwogCitzdHJ1Y3QgYW1kZ3B1X3ZtX2lkX21hbmFnZXIgeworCXN0cnVjdCBtdXRl eAkJbG9jazsKKwl1bnNpZ25lZAkJbnVtX2lkczsKKwlzdHJ1Y3QgbGlzdF9oZWFkCWlkc19scnU7 CisJc3RydWN0IGFtZGdwdV92bV9pZAlpZHNbQU1ER1BVX05VTV9WTV07Cit9OworCiBzdHJ1Y3Qg YW1kZ3B1X3ZtX21hbmFnZXIgewogCS8qIEhhbmRsaW5nIG9mIFZNSURzICovCi0Jc3RydWN0IG11 dGV4CQkJCWxvY2s7Ci0JdW5zaWduZWQJCQkJbnVtX2lkczsKLQlzdHJ1Y3QgbGlzdF9oZWFkCQkJ aWRzX2xydTsKLQlzdHJ1Y3QgYW1kZ3B1X3ZtX2lkCQkJaWRzW0FNREdQVV9OVU1fVk1dOworCXN0 cnVjdCBhbWRncHVfdm1faWRfbWFuYWdlcgkJaWRfbWdyW0FNREdQVV9NQVhfVk1IVUJTXTsKIAog CS8qIEhhbmRsaW5nIG9mIFZNIGZlbmNlcyAqLwogCXU2NAkJCQkJZmVuY2VfY29udGV4dDsKQEAg LTE5Nyw3ICsyMDEsOCBAQCBpbnQgYW1kZ3B1X3ZtX2dyYWJfaWQoc3RydWN0IGFtZGdwdV92bSAq dm0sIHN0cnVjdCBhbWRncHVfcmluZyAqcmluZywKIAkJICAgICAgc3RydWN0IGFtZGdwdV9zeW5j ICpzeW5jLCBzdHJ1Y3QgZmVuY2UgKmZlbmNlLAogCQkgICAgICBzdHJ1Y3QgYW1kZ3B1X2pvYiAq am9iKTsKIGludCBhbWRncHVfdm1fZmx1c2goc3RydWN0IGFtZGdwdV9yaW5nICpyaW5nLCBzdHJ1 Y3QgYW1kZ3B1X2pvYiAqam9iKTsKLXZvaWQgYW1kZ3B1X3ZtX3Jlc2V0X2lkKHN0cnVjdCBhbWRn cHVfZGV2aWNlICphZGV2LCB1bnNpZ25lZCB2bV9pZCk7Cit2b2lkIGFtZGdwdV92bV9yZXNldF9p ZChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwgdW5zaWduZWQgdm1odWIsCisJCQl1bnNpZ25l ZCB2bWlkKTsKIGludCBhbWRncHVfdm1fdXBkYXRlX2RpcmVjdG9yaWVzKHN0cnVjdCBhbWRncHVf ZGV2aWNlICphZGV2LAogCQkJCSBzdHJ1Y3QgYW1kZ3B1X3ZtICp2bSk7CiBpbnQgYW1kZ3B1X3Zt X2NsZWFyX2ZyZWVkKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LApkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZ2Z4X3Y3XzAuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQv YW1kZ3B1L2dmeF92N18wLmMKaW5kZXggNDIxNDA4ZS4uMmJlMThkMyAxMDA2NDQKLS0tIGEvZHJp dmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZ2Z4X3Y3XzAuYworKysgYi9kcml2ZXJzL2dwdS9kcm0v YW1kL2FtZGdwdS9nZnhfdjdfMC5jCkBAIC0xOTM1LDcgKzE5MzUsNyBAQCBzdGF0aWMgdm9pZCBn ZnhfdjdfMF9ncHVfaW5pdChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKIAkJCQkgICBJTkRF WF9TVFJJREUsIDMpOwogCiAJbXV0ZXhfbG9jaygmYWRldi0+c3JibV9tdXRleCk7Ci0JZm9yIChp ID0gMDsgaSA8IGFkZXYtPnZtX21hbmFnZXIubnVtX2lkczsgaSsrKSB7CisJZm9yIChpID0gMDsg aSA8IGFkZXYtPnZtX21hbmFnZXIuaWRfbWdyWzBdLm51bV9pZHM7IGkrKykgewogCQlpZiAoaSA9 PSAwKQogCQkJc2hfbWVtX2Jhc2UgPSAwOwogCQllbHNlCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vYW1kL2FtZGdwdS9nZnhfdjhfMC5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUv Z2Z4X3Y4XzAuYwppbmRleCBkZjU5MWZiLi5iYjIyZmQ4IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dw dS9kcm0vYW1kL2FtZGdwdS9nZnhfdjhfMC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1k Z3B1L2dmeF92OF8wLmMKQEAgLTM4OTAsNyArMzg5MCw3IEBAIHN0YXRpYyB2b2lkIGdmeF92OF8w X2dwdV9pbml0KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQogCXNoX3N0YXRpY19tZW1fY2Zn ID0gUkVHX1NFVF9GSUVMRChzaF9zdGF0aWNfbWVtX2NmZywgU0hfU1RBVElDX01FTV9DT05GSUcs CiAJCQkJICAgSU5ERVhfU1RSSURFLCAzKTsKIAltdXRleF9sb2NrKCZhZGV2LT5zcmJtX211dGV4 KTsKLQlmb3IgKGkgPSAwOyBpIDwgYWRldi0+dm1fbWFuYWdlci5udW1faWRzOyBpKyspIHsKKwlm b3IgKGkgPSAwOyBpIDwgYWRldi0+dm1fbWFuYWdlci5pZF9tZ3JbMF0ubnVtX2lkczsgaSsrKSB7 CiAJCXZpX3NyYm1fc2VsZWN0KGFkZXYsIDAsIDAsIDAsIGkpOwogCQkvKiBDUCBhbmQgc2hhZGVy cyAqLwogCQlpZiAoaSA9PSAwKSB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Ft ZGdwdS9nbWNfdjZfMC5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZ21jX3Y2XzAuYwpp bmRleCA2MzFhZWYzLi4zMWM1MGIyIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Ft ZGdwdS9nbWNfdjZfMC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2dtY192Nl8w LmMKQEAgLTYyMSw3ICs2MjEsNyBAQCBzdGF0aWMgaW50IGdtY192Nl8wX3ZtX2luaXQoc3RydWN0 IGFtZGdwdV9kZXZpY2UgKmFkZXYpCiAJICogYW1kZ3B1IGdyYXBoaWNzL2NvbXB1dGUgd2lsbCB1 c2UgVk1JRHMgMS03CiAJICogYW1ka2ZkIHdpbGwgdXNlIFZNSURzIDgtMTUKIAkgKi8KLQlhZGV2 LT52bV9tYW5hZ2VyLm51bV9pZHMgPSBBTURHUFVfTlVNX09GX1ZNSURTOworCWFkZXYtPnZtX21h bmFnZXIuaWRfbWdyWzBdLm51bV9pZHMgPSBBTURHUFVfTlVNX09GX1ZNSURTOwogCWFkZXYtPnZt X21hbmFnZXIubnVtX2xldmVsID0gMTsKIAlhbWRncHVfdm1fbWFuYWdlcl9pbml0KGFkZXYpOwog CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9nbWNfdjdfMC5jIGIvZHJp dmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZ21jX3Y3XzAuYwppbmRleCA5MmFiZTEyLi4yMjE3ZDRk IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9nbWNfdjdfMC5jCisrKyBi L2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2dtY192N18wLmMKQEAgLTc0Niw3ICs3NDYsNyBA QCBzdGF0aWMgaW50IGdtY192N18wX3ZtX2luaXQoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYp CiAJICogYW1kZ3B1IGdyYXBoaWNzL2NvbXB1dGUgd2lsbCB1c2UgVk1JRHMgMS03CiAJICogYW1k a2ZkIHdpbGwgdXNlIFZNSURzIDgtMTUKIAkgKi8KLQlhZGV2LT52bV9tYW5hZ2VyLm51bV9pZHMg PSBBTURHUFVfTlVNX09GX1ZNSURTOworCWFkZXYtPnZtX21hbmFnZXIuaWRfbWdyWzBdLm51bV9p ZHMgPSBBTURHUFVfTlVNX09GX1ZNSURTOwogCWFkZXYtPnZtX21hbmFnZXIubnVtX2xldmVsID0g MTsKIAlhbWRncHVfdm1fbWFuYWdlcl9pbml0KGFkZXYpOwogCmRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vYW1kL2FtZGdwdS9nbWNfdjhfMC5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRn cHUvZ21jX3Y4XzAuYwppbmRleCBmMmNjZWZjLi5lNGY1ZGYzIDEwMDY0NAotLS0gYS9kcml2ZXJz L2dwdS9kcm0vYW1kL2FtZGdwdS9nbWNfdjhfMC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQv YW1kZ3B1L2dtY192OF8wLmMKQEAgLTk0OSw3ICs5NDksNyBAQCBzdGF0aWMgaW50IGdtY192OF8w X3ZtX2luaXQoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCiAJICogYW1kZ3B1IGdyYXBoaWNz L2NvbXB1dGUgd2lsbCB1c2UgVk1JRHMgMS03CiAJICogYW1ka2ZkIHdpbGwgdXNlIFZNSURzIDgt MTUKIAkgKi8KLQlhZGV2LT52bV9tYW5hZ2VyLm51bV9pZHMgPSBBTURHUFVfTlVNX09GX1ZNSURT OworCWFkZXYtPnZtX21hbmFnZXIuaWRfbWdyWzBdLm51bV9pZHMgPSBBTURHUFVfTlVNX09GX1ZN SURTOwogCWFkZXYtPnZtX21hbmFnZXIubnVtX2xldmVsID0gMTsKIAlhbWRncHVfdm1fbWFuYWdl cl9pbml0KGFkZXYpOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9n bWNfdjlfMC5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZ21jX3Y5XzAuYwppbmRleCAz YjA0NWUwLi43ZjVjYzc1IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9n bWNfdjlfMC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2dtY192OV8wLmMKQEAg LTUxOSw3ICs1MTksOCBAQCBzdGF0aWMgaW50IGdtY192OV8wX3ZtX2luaXQoc3RydWN0IGFtZGdw dV9kZXZpY2UgKmFkZXYpCiAJICogYW1kZ3B1IGdyYXBoaWNzL2NvbXB1dGUgd2lsbCB1c2UgVk1J RHMgMS03CiAJICogYW1ka2ZkIHdpbGwgdXNlIFZNSURzIDgtMTUKIAkgKi8KLQlhZGV2LT52bV9t YW5hZ2VyLm51bV9pZHMgPSBBTURHUFVfTlVNX09GX1ZNSURTOworCWFkZXYtPnZtX21hbmFnZXIu aWRfbWdyW0FNREdQVV9HRlhIVUJdLm51bV9pZHMgPSBBTURHUFVfTlVNX09GX1ZNSURTOworCWFk ZXYtPnZtX21hbmFnZXIuaWRfbWdyW0FNREdQVV9NTUhVQl0ubnVtX2lkcyA9IEFNREdQVV9OVU1f T0ZfVk1JRFM7CiAKIAkvKiBUT0RPOiBmaXggbnVtX2xldmVsIGZvciBBUFUgd2hlbiB1cGRhdGlu ZyB2bSBzaXplIGFuZCBibG9jayBzaXplICovCiAJaWYgKGFkZXYtPmZsYWdzICYgQU1EX0lTX0FQ VSkKLS0gCjIuNS4wCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fXwphbWQtZ2Z4IG1haWxpbmcgbGlzdAphbWQtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpo dHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2FtZC1nZngK