From patchwork Thu Sep 15 10:12:19 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 Subject: [1/6] drm/amdgpu: add AMDGPU_GEM_CREATE_VRAM_CONTIGUOUS flag v3 From: =?UTF-8?q?Christian=20K=C3=B6nig?= X-Patchwork-Id: 110630 Message-Id: <1473934344-2106-1-git-send-email-deathsimple@vodafone.de> To: amd-gfx@lists.freedesktop.org Date: Thu, 15 Sep 2016 12:12:19 +0200 RnJvbTogQ2hyaXN0aWFuIEvDtm5pZyA8Y2hyaXN0aWFuLmtvZW5pZ0BhbWQuY29tPgoKQWRkIGEg ZmxhZyBub3RpbmcgdGhhdCBhIEJPIG11c3QgYmUgY3JlYXRlZCB1c2luZyBsaW5lYXIgVlJBTQph bmQgc2V0IHRoaXMgZmxhZyBvbiBhbGwgaW4ga2VybmVsIHVzZXJzIHdoZXJlIGFwcHJvcHJpYXRl LgoKSG9wZWZ1bGx5IEkgaGF2ZW4ndCBtaXNzZWQgYW55dGhpbmcuCgp2MjogYWRkIGl0IGluIGEg ZmV3IG1vcmUgcGxhY2VzLCBmaXggQ1BVIG1hcHBpbmcuCnYzOiByZW5hbWUgdG8gVlJBTV9DT05U SUdVT1VTLCBmaXggdHlwbyBpbiBDUyBjb2RlLgoKU2lnbmVkLW9mZi1ieTogQ2hyaXN0aWFuIEvD tm5pZyA8Y2hyaXN0aWFuLmtvZW5pZ0BhbWQuY29tPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9hbWQv YW1kZ3B1L2FtZGdwdV9jZ3MuYyAgICB8ICA2ICsrKystLQogZHJpdmVycy9ncHUvZHJtL2FtZC9h bWRncHUvYW1kZ3B1X2NzLmMgICAgIHwgIDkgKysrKysrKysrCiBkcml2ZXJzL2dwdS9kcm0vYW1k L2FtZGdwdS9hbWRncHVfZGV2aWNlLmMgfCAgMyArKy0KIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1k Z3B1L2FtZGdwdV9mYi5jICAgICB8ICAzICsrLQogZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUv YW1kZ3B1X2dhcnQuYyAgIHwgIDMgKystCiBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRn cHVfb2JqZWN0LmMgfCAxMiArKysrKysrKysrLS0KIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1 L2FtZGdwdV90dG0uYyAgICB8ICAzICsrLQogZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1k Z3B1X3V2ZC5jICAgIHwgIDYgKysrKy0tCiBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRn cHVfdmNlLmMgICAgfCAgMyArKy0KIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV92 bS5jICAgICB8ICA2ICsrKystLQogZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZ2Z4X3Y3XzAu YyAgICAgIHwgIDkgKysrKysrLS0tCiBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9nZnhfdjhf MC5jICAgICAgfCAgNiArKysrLS0KIGluY2x1ZGUvdWFwaS9kcm0vYW1kZ3B1X2RybS5oICAgICAg ICAgICAgICB8ICAyICsrCiAxMyBmaWxlcyBjaGFuZ2VkLCA1MyBpbnNlcnRpb25zKCspLCAxOCBk ZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRn cHVfY2dzLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfY2dzLmMKaW5kZXgg ZjFjNTNhMi4uNzlhM2I5OCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUv YW1kZ3B1X2Nncy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9jZ3Mu YwpAQCAtMTQ2LDcgKzE0Niw4IEBAIHN0YXRpYyBpbnQgYW1kZ3B1X2Nnc19hbGxvY19ncHVfbWVt KHN0cnVjdCBjZ3NfZGV2aWNlICpjZ3NfZGV2aWNlLAogCXN3aXRjaCh0eXBlKSB7CiAJY2FzZSBD R1NfR1BVX01FTV9UWVBFX19WSVNJQkxFX0NPTlRJR19GQjoKIAljYXNlIENHU19HUFVfTUVNX1RZ UEVfX1ZJU0lCTEVfRkI6Ci0JCWZsYWdzID0gQU1ER1BVX0dFTV9DUkVBVEVfQ1BVX0FDQ0VTU19S RVFVSVJFRDsKKwkJZmxhZ3MgPSBBTURHUFVfR0VNX0NSRUFURV9DUFVfQUNDRVNTX1JFUVVJUkVE IHwKKwkJCUFNREdQVV9HRU1fQ1JFQVRFX1ZSQU1fQ09OVElHVU9VUzsKIAkJZG9tYWluID0gQU1E R1BVX0dFTV9ET01BSU5fVlJBTTsKIAkJaWYgKG1heF9vZmZzZXQgPiBhZGV2LT5tYy5yZWFsX3Zy YW1fc2l6ZSkKIAkJCXJldHVybiAtRUlOVkFMOwpAQCAtMTU3LDcgKzE1OCw4IEBAIHN0YXRpYyBp bnQgYW1kZ3B1X2Nnc19hbGxvY19ncHVfbWVtKHN0cnVjdCBjZ3NfZGV2aWNlICpjZ3NfZGV2aWNl LAogCQlicmVhazsKIAljYXNlIENHU19HUFVfTUVNX1RZUEVfX0lOVklTSUJMRV9DT05USUdfRkI6 CiAJY2FzZSBDR1NfR1BVX01FTV9UWVBFX19JTlZJU0lCTEVfRkI6Ci0JCWZsYWdzID0gQU1ER1BV X0dFTV9DUkVBVEVfTk9fQ1BVX0FDQ0VTUzsKKwkJZmxhZ3MgPSBBTURHUFVfR0VNX0NSRUFURV9O T19DUFVfQUNDRVNTIHwKKwkJCUFNREdQVV9HRU1fQ1JFQVRFX1ZSQU1fQ09OVElHVU9VUzsKIAkJ ZG9tYWluID0gQU1ER1BVX0dFTV9ET01BSU5fVlJBTTsKIAkJaWYgKGFkZXYtPm1jLnZpc2libGVf dnJhbV9zaXplIDwgYWRldi0+bWMucmVhbF92cmFtX3NpemUpIHsKIAkJCXBsYWNlLmZwZm4gPQpk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2NzLmMgYi9kcml2 ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfY3MuYwppbmRleCBiMGY2ZTY5Li4xODdjMzY2 IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfY3MuYworKysg Yi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfY3MuYwpAQCAtMTE5NSw2ICsxMTk1 LDE1IEBAIGludCBhbWRncHVfY3Nfc3lzdm1fYWNjZXNzX3JlcXVpcmVkKHN0cnVjdCBhbWRncHVf Y3NfcGFyc2VyICpwYXJzZXIpCiAJCXIgPSBhbWRncHVfdHRtX2JpbmQoJmJvLT50Ym8sICZiby0+ dGJvLm1lbSk7CiAJCWlmICh1bmxpa2VseShyKSkKIAkJCXJldHVybiByOworCisJCWlmIChiby0+ ZmxhZ3MgJiBBTURHUFVfR0VNX0NSRUFURV9WUkFNX0NPTlRJR1VPVVMpCisJCQljb250aW51ZTsK KworCQliby0+ZmxhZ3MgfD0gQU1ER1BVX0dFTV9DUkVBVEVfVlJBTV9DT05USUdVT1VTOworCQlh bWRncHVfdHRtX3BsYWNlbWVudF9mcm9tX2RvbWFpbihibywgYm8tPmFsbG93ZWRfZG9tYWlucyk7 CisJCXIgPSB0dG1fYm9fdmFsaWRhdGUoJmJvLT50Ym8sICZiby0+cGxhY2VtZW50LCBmYWxzZSwg ZmFsc2UpOworCQlpZiAodW5saWtlbHkocikpCisJCQlyZXR1cm4gcjsKIAl9CiAKIAlyZXR1cm4g MDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9kZXZpY2Uu YyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9kZXZpY2UuYwppbmRleCA5MTAz ZTdiLi41Njg2ZDEyIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRn cHVfZGV2aWNlLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2Rldmlj ZS5jCkBAIC0yNjQsNyArMjY0LDggQEAgc3RhdGljIGludCBhbWRncHVfdnJhbV9zY3JhdGNoX2lu aXQoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCiAJaWYgKGFkZXYtPnZyYW1fc2NyYXRjaC5y b2JqID09IE5VTEwpIHsKIAkJciA9IGFtZGdwdV9ib19jcmVhdGUoYWRldiwgQU1ER1BVX0dQVV9Q QUdFX1NJWkUsCiAJCQkJICAgICBQQUdFX1NJWkUsIHRydWUsIEFNREdQVV9HRU1fRE9NQUlOX1ZS QU0sCi0JCQkJICAgICBBTURHUFVfR0VNX0NSRUFURV9DUFVfQUNDRVNTX1JFUVVJUkVELAorCQkJ CSAgICAgQU1ER1BVX0dFTV9DUkVBVEVfQ1BVX0FDQ0VTU19SRVFVSVJFRCB8CisJCQkJICAgICBB TURHUFVfR0VNX0NSRUFURV9WUkFNX0NPTlRJR1VPVVMsCiAJCQkJICAgICBOVUxMLCBOVUxMLCAm YWRldi0+dnJhbV9zY3JhdGNoLnJvYmopOwogCQlpZiAocikgewogCQkJcmV0dXJuIHI7CmRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfZmIuYyBiL2RyaXZlcnMv Z3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9mYi5jCmluZGV4IDEwZTAyMTEuLjk1YTRjZGQgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9mYi5jCisrKyBiL2Ry aXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9mYi5jCkBAIC0xNDgsNyArMTQ4LDggQEAg c3RhdGljIGludCBhbWRncHVmYl9jcmVhdGVfcGlubmVkX29iamVjdChzdHJ1Y3QgYW1kZ3B1X2Zi ZGV2ICpyZmJkZXYsCiAJYWxpZ25lZF9zaXplID0gQUxJR04oc2l6ZSwgUEFHRV9TSVpFKTsKIAly ZXQgPSBhbWRncHVfZ2VtX29iamVjdF9jcmVhdGUoYWRldiwgYWxpZ25lZF9zaXplLCAwLAogCQkJ CSAgICAgICBBTURHUFVfR0VNX0RPTUFJTl9WUkFNLAotCQkJCSAgICAgICBBTURHUFVfR0VNX0NS RUFURV9DUFVfQUNDRVNTX1JFUVVJUkVELAorCQkJCSAgICAgICBBTURHUFVfR0VNX0NSRUFURV9D UFVfQUNDRVNTX1JFUVVJUkVEIHwKKwkJCQkgICAgICAgQU1ER1BVX0dFTV9DUkVBVEVfVlJBTV9D T05USUdVT1VTLAogCQkJCSAgICAgICB0cnVlLCAmZ29iaik7CiAJaWYgKHJldCkgewogCQlwcmlu dGsoS0VSTl9FUlIgImZhaWxlZCB0byBhbGxvY2F0ZSBmcmFtZWJ1ZmZlciAoJWQpXG4iLApkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2dhcnQuYyBiL2RyaXZl cnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9nYXJ0LmMKaW5kZXggMGZlZWEzNC4uMjM0Y2Nl NCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2dhcnQuYwor KysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfZ2FydC5jCkBAIC0xMjYsNyAr MTI2LDggQEAgaW50IGFtZGdwdV9nYXJ0X3RhYmxlX3ZyYW1fYWxsb2Moc3RydWN0IGFtZGdwdV9k ZXZpY2UgKmFkZXYpCiAJaWYgKGFkZXYtPmdhcnQucm9iaiA9PSBOVUxMKSB7CiAJCXIgPSBhbWRn cHVfYm9fY3JlYXRlKGFkZXYsIGFkZXYtPmdhcnQudGFibGVfc2l6ZSwKIAkJCQkgICAgIFBBR0Vf U0laRSwgdHJ1ZSwgQU1ER1BVX0dFTV9ET01BSU5fVlJBTSwKLQkJCQkgICAgIEFNREdQVV9HRU1f Q1JFQVRFX0NQVV9BQ0NFU1NfUkVRVUlSRUQsCisJCQkJICAgICBBTURHUFVfR0VNX0NSRUFURV9D UFVfQUNDRVNTX1JFUVVJUkVEIHwKKwkJCQkgICAgIEFNREdQVV9HRU1fQ1JFQVRFX1ZSQU1fQ09O VElHVU9VUywKIAkJCQkgICAgIE5VTEwsIE5VTEwsICZhZGV2LT5nYXJ0LnJvYmopOwogCQlpZiAo cikgewogCQkJcmV0dXJuIHI7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdw dS9hbWRncHVfb2JqZWN0LmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfb2Jq ZWN0LmMKaW5kZXggNjkxNzA3Yi4uM2JkZGM2OCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJt L2FtZC9hbWRncHUvYW1kZ3B1X29iamVjdC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1k Z3B1L2FtZGdwdV9vYmplY3QuYwpAQCAtMjQ3LDcgKzI0Nyw4IEBAIGludCBhbWRncHVfYm9fY3Jl YXRlX2tlcm5lbChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwKIAlpbnQgcjsKIAogCXIgPSBh bWRncHVfYm9fY3JlYXRlKGFkZXYsIHNpemUsIGFsaWduLCB0cnVlLCBkb21haW4sCi0JCQkgICAg IEFNREdQVV9HRU1fQ1JFQVRFX0NQVV9BQ0NFU1NfUkVRVUlSRUQsCisJCQkgICAgIEFNREdQVV9H RU1fQ1JFQVRFX0NQVV9BQ0NFU1NfUkVRVUlSRUQgfAorCQkJICAgICBBTURHUFVfR0VNX0NSRUFU RV9WUkFNX0NPTlRJR1VPVVMsCiAJCQkgICAgIE5VTEwsIE5VTEwsIGJvX3B0cik7CiAJaWYgKHIp IHsKIAkJZGV2X2VycihhZGV2LT5kZXYsICIoJWQpIGZhaWxlZCB0byBhbGxvY2F0ZSBrZXJuZWwg Ym9cbiIsIHIpOwpAQCAtNjQ2LDYgKzY0Nyw4IEBAIGludCBhbWRncHVfYm9fcGluX3Jlc3RyaWN0 ZWQoc3RydWN0IGFtZGdwdV9ibyAqYm8sIHUzMiBkb21haW4sCiAKIAkJcmV0dXJuIDA7CiAJfQor CisJYm8tPmZsYWdzIHw9IEFNREdQVV9HRU1fQ1JFQVRFX1ZSQU1fQ09OVElHVU9VUzsKIAlhbWRn cHVfdHRtX3BsYWNlbWVudF9mcm9tX2RvbWFpbihibywgZG9tYWluKTsKIAlmb3IgKGkgPSAwOyBp IDwgYm8tPnBsYWNlbWVudC5udW1fcGxhY2VtZW50OyBpKyspIHsKIAkJLyogZm9yY2UgdG8gcGlu IGludG8gdmlzaWJsZSB2aWRlbyByYW0gKi8KQEAgLTg4OCw3ICs4OTEsOSBAQCBpbnQgYW1kZ3B1 X2JvX2ZhdWx0X3Jlc2VydmVfbm90aWZ5KHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8pCiAK IAlzaXplID0gYm8tPm1lbS5udW1fcGFnZXMgPDwgUEFHRV9TSElGVDsKIAlvZmZzZXQgPSBiby0+ bWVtLnN0YXJ0IDw8IFBBR0VfU0hJRlQ7Ci0JaWYgKChvZmZzZXQgKyBzaXplKSA8PSBhZGV2LT5t Yy52aXNpYmxlX3ZyYW1fc2l6ZSkKKwkvKiBUT0RPOiBmaWd1cmUgb3V0IGhvdyB0byBtYXAgc2Nh dHRlcmVkIFZSQU0gdG8gdGhlIENQVSAqLworCWlmICgob2Zmc2V0ICsgc2l6ZSkgPD0gYWRldi0+ bWMudmlzaWJsZV92cmFtX3NpemUgJiYKKwkgICAgKGFiby0+ZmxhZ3MgJiBBTURHUFVfR0VNX0NS RUFURV9WUkFNX0NPTlRJR1VPVVMpKQogCQlyZXR1cm4gMDsKIAogCS8qIENhbid0IG1vdmUgYSBw aW5uZWQgQk8gdG8gdmlzaWJsZSBWUkFNICovCkBAIC04OTYsNiArOTAxLDcgQEAgaW50IGFtZGdw dV9ib19mYXVsdF9yZXNlcnZlX25vdGlmeShzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvKQog CQlyZXR1cm4gLUVJTlZBTDsKIAogCS8qIGh1cnJhaCB0aGUgbWVtb3J5IGlzIG5vdCB2aXNpYmxl ICEgKi8KKwlhYm8tPmZsYWdzIHw9IEFNREdQVV9HRU1fQ1JFQVRFX1ZSQU1fQ09OVElHVU9VUzsK IAlhbWRncHVfdHRtX3BsYWNlbWVudF9mcm9tX2RvbWFpbihhYm8sIEFNREdQVV9HRU1fRE9NQUlO X1ZSQU0pOwogCWxwZm4gPQlhZGV2LT5tYy52aXNpYmxlX3ZyYW1fc2l6ZSA+PiBQQUdFX1NISUZU OwogCWZvciAoaSA9IDA7IGkgPCBhYm8tPnBsYWNlbWVudC5udW1fcGxhY2VtZW50OyBpKyspIHsK QEAgLTk1Nyw2ICs5NjMsOCBAQCB1NjQgYW1kZ3B1X2JvX2dwdV9vZmZzZXQoc3RydWN0IGFtZGdw dV9ibyAqYm8pCiAJV0FSTl9PTl9PTkNFKCF3d19tdXRleF9pc19sb2NrZWQoJmJvLT50Ym8ucmVz di0+bG9jaykgJiYKIAkJICAgICAhYm8tPnBpbl9jb3VudCk7CiAJV0FSTl9PTl9PTkNFKGJvLT50 Ym8ubWVtLnN0YXJ0ID09IEFNREdQVV9CT19JTlZBTElEX09GRlNFVCk7CisJV0FSTl9PTl9PTkNF KGJvLT50Ym8ubWVtLm1lbV90eXBlID09IFRUTV9QTF9WUkFNICYmCisJCSAgICAgIShiby0+Zmxh Z3MgJiBBTURHUFVfR0VNX0NSRUFURV9WUkFNX0NPTlRJR1VPVVMpKTsKIAogCXJldHVybiBiby0+ dGJvLm9mZnNldDsKIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2Ft ZGdwdV90dG0uYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV90dG0uYwppbmRl eCA0NDdjMDA5Li5iMWY1ZDczIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdw dS9hbWRncHVfdHRtLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3R0 bS5jCkBAIC0xMTE2LDcgKzExMTYsOCBAQCBpbnQgYW1kZ3B1X3R0bV9pbml0KHN0cnVjdCBhbWRn cHVfZGV2aWNlICphZGV2KQogCiAJciA9IGFtZGdwdV9ib19jcmVhdGUoYWRldiwgMjU2ICogMTAy NCwgUEFHRV9TSVpFLCB0cnVlLAogCQkJICAgICBBTURHUFVfR0VNX0RPTUFJTl9WUkFNLAotCQkJ ICAgICBBTURHUFVfR0VNX0NSRUFURV9DUFVfQUNDRVNTX1JFUVVJUkVELAorCQkJICAgICBBTURH UFVfR0VNX0NSRUFURV9DUFVfQUNDRVNTX1JFUVVJUkVEIHwKKwkJCSAgICAgQU1ER1BVX0dFTV9D UkVBVEVfVlJBTV9DT05USUdVT1VTLAogCQkJICAgICBOVUxMLCBOVUxMLCAmYWRldi0+c3RvbGxl bl92Z2FfbWVtb3J5KTsKIAlpZiAocikgewogCQlyZXR1cm4gcjsKZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV91dmQuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQv YW1kZ3B1L2FtZGdwdV91dmQuYwppbmRleCBjZWU3YmM5YS4uZTY4NDJiMCAxMDA2NDQKLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3V2ZC5jCisrKyBiL2RyaXZlcnMvZ3B1 L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV91dmQuYwpAQCAtMTAwMiw3ICsxMDAyLDggQEAgaW50IGFt ZGdwdV91dmRfZ2V0X2NyZWF0ZV9tc2coc3RydWN0IGFtZGdwdV9yaW5nICpyaW5nLCB1aW50MzJf dCBoYW5kbGUsCiAKIAlyID0gYW1kZ3B1X2JvX2NyZWF0ZShhZGV2LCAxMDI0LCBQQUdFX1NJWkUs IHRydWUsCiAJCQkgICAgIEFNREdQVV9HRU1fRE9NQUlOX1ZSQU0sCi0JCQkgICAgIEFNREdQVV9H RU1fQ1JFQVRFX0NQVV9BQ0NFU1NfUkVRVUlSRUQsCisJCQkgICAgIEFNREdQVV9HRU1fQ1JFQVRF X0NQVV9BQ0NFU1NfUkVRVUlSRUQgfAorCQkJICAgICBBTURHUFVfR0VNX0NSRUFURV9WUkFNX0NP TlRJR1VPVVMsCiAJCQkgICAgIE5VTEwsIE5VTEwsICZibyk7CiAJaWYgKHIpCiAJCXJldHVybiBy OwpAQCAtMTA1MSw3ICsxMDUyLDggQEAgaW50IGFtZGdwdV91dmRfZ2V0X2Rlc3Ryb3lfbXNnKHN0 cnVjdCBhbWRncHVfcmluZyAqcmluZywgdWludDMyX3QgaGFuZGxlLAogCiAJciA9IGFtZGdwdV9i b19jcmVhdGUoYWRldiwgMTAyNCwgUEFHRV9TSVpFLCB0cnVlLAogCQkJICAgICBBTURHUFVfR0VN X0RPTUFJTl9WUkFNLAotCQkJICAgICBBTURHUFVfR0VNX0NSRUFURV9DUFVfQUNDRVNTX1JFUVVJ UkVELAorCQkJICAgICBBTURHUFVfR0VNX0NSRUFURV9DUFVfQUNDRVNTX1JFUVVJUkVEIHwKKwkJ CSAgICAgQU1ER1BVX0dFTV9DUkVBVEVfVlJBTV9DT05USUdVT1VTLAogCQkJICAgICBOVUxMLCBO VUxMLCAmYm8pOwogCWlmIChyKQogCQlyZXR1cm4gcjsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV92Y2UuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1 L2FtZGdwdV92Y2UuYwppbmRleCBiMGM2NzAyLi5jYzdiNGNiIDEwMDY0NAotLS0gYS9kcml2ZXJz L2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdmNlLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2Ft ZC9hbWRncHUvYW1kZ3B1X3ZjZS5jCkBAIC0xNTcsNyArMTU3LDggQEAgaW50IGFtZGdwdV92Y2Vf c3dfaW5pdChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwgdW5zaWduZWQgbG9uZyBzaXplKQog CiAJciA9IGFtZGdwdV9ib19jcmVhdGUoYWRldiwgc2l6ZSwgUEFHRV9TSVpFLCB0cnVlLAogCQkJ ICAgICBBTURHUFVfR0VNX0RPTUFJTl9WUkFNLAotCQkJICAgICBBTURHUFVfR0VNX0NSRUFURV9D UFVfQUNDRVNTX1JFUVVJUkVELAorCQkJICAgICBBTURHUFVfR0VNX0NSRUFURV9DUFVfQUNDRVNT X1JFUVVJUkVEIHwKKwkJCSAgICAgQU1ER1BVX0dFTV9DUkVBVEVfVlJBTV9DT05USUdVT1VTLAog CQkJICAgICBOVUxMLCBOVUxMLCAmYWRldi0+dmNlLnZjcHVfYm8pOwogCWlmIChyKSB7CiAJCWRl dl9lcnIoYWRldi0+ZGV2LCAiKCVkKSBmYWlsZWQgdG8gYWxsb2NhdGUgVkNFIGJvXG4iLCByKTsK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV92bS5jIGIvZHJp dmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3ZtLmMKaW5kZXggYTZhNDhlZC4uODdjOTkw ZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3ZtLmMKKysr IGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3ZtLmMKQEAgLTE0MDAsNyArMTQw MCw4IEBAIGludCBhbWRncHVfdm1fYm9fbWFwKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LAog CQkJCSAgICAgQU1ER1BVX0dQVV9QQUdFX1NJWkUsIHRydWUsCiAJCQkJICAgICBBTURHUFVfR0VN X0RPTUFJTl9WUkFNLAogCQkJCSAgICAgQU1ER1BVX0dFTV9DUkVBVEVfTk9fQ1BVX0FDQ0VTUyB8 Ci0JCQkJICAgICBBTURHUFVfR0VNX0NSRUFURV9TSEFET1csCisJCQkJICAgICBBTURHUFVfR0VN X0NSRUFURV9TSEFET1cgfAorCQkJCSAgICAgQU1ER1BVX0dFTV9DUkVBVEVfVlJBTV9DT05USUdV T1VTLAogCQkJCSAgICAgTlVMTCwgcmVzdiwgJnB0KTsKIAkJaWYgKHIpCiAJCQlnb3RvIGVycm9y X2ZyZWU7CkBAIC0xNjAwLDcgKzE2MDEsOCBAQCBpbnQgYW1kZ3B1X3ZtX2luaXQoc3RydWN0IGFt ZGdwdV9kZXZpY2UgKmFkZXYsIHN0cnVjdCBhbWRncHVfdm0gKnZtKQogCXIgPSBhbWRncHVfYm9f Y3JlYXRlKGFkZXYsIHBkX3NpemUsIGFsaWduLCB0cnVlLAogCQkJICAgICBBTURHUFVfR0VNX0RP TUFJTl9WUkFNLAogCQkJICAgICBBTURHUFVfR0VNX0NSRUFURV9OT19DUFVfQUNDRVNTIHwKLQkJ CSAgICAgQU1ER1BVX0dFTV9DUkVBVEVfU0hBRE9XLAorCQkJICAgICBBTURHUFVfR0VNX0NSRUFU RV9TSEFET1cgfAorCQkJICAgICBBTURHUFVfR0VNX0NSRUFURV9WUkFNX0NPTlRJR1VPVVMsCiAJ CQkgICAgIE5VTEwsIE5VTEwsICZ2bS0+cGFnZV9kaXJlY3RvcnkpOwogCWlmIChyKQogCQlnb3Rv IGVycm9yX2ZyZWVfc2NoZWRfZW50aXR5OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2Ft ZC9hbWRncHUvZ2Z4X3Y3XzAuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2dmeF92N18w LmMKaW5kZXggOGM3ODBmNi4uYjBjOTAxMyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2Ft ZC9hbWRncHUvZ2Z4X3Y3XzAuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9nZnhf djdfMC5jCkBAIC0zMjI3LDcgKzMyMjcsOCBAQCBzdGF0aWMgaW50IGdmeF92N18wX3JsY19pbml0 KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQogCQlpZiAoYWRldi0+Z2Z4LnJsYy5zYXZlX3Jl c3RvcmVfb2JqID09IE5VTEwpIHsKIAkJCXIgPSBhbWRncHVfYm9fY3JlYXRlKGFkZXYsIGR3cyAq IDQsIFBBR0VfU0laRSwgdHJ1ZSwKIAkJCQkJICAgICBBTURHUFVfR0VNX0RPTUFJTl9WUkFNLAot CQkJCQkgICAgIEFNREdQVV9HRU1fQ1JFQVRFX0NQVV9BQ0NFU1NfUkVRVUlSRUQsCisJCQkJCSAg ICAgQU1ER1BVX0dFTV9DUkVBVEVfQ1BVX0FDQ0VTU19SRVFVSVJFRCB8CisJCQkJCSAgICAgQU1E R1BVX0dFTV9DUkVBVEVfVlJBTV9DT05USUdVT1VTLAogCQkJCQkgICAgIE5VTEwsIE5VTEwsCiAJ CQkJCSAgICAgJmFkZXYtPmdmeC5ybGMuc2F2ZV9yZXN0b3JlX29iaik7CiAJCQlpZiAocikgewpA QCAtMzI3MSw3ICszMjcyLDggQEAgc3RhdGljIGludCBnZnhfdjdfMF9ybGNfaW5pdChzdHJ1Y3Qg YW1kZ3B1X2RldmljZSAqYWRldikKIAkJaWYgKGFkZXYtPmdmeC5ybGMuY2xlYXJfc3RhdGVfb2Jq ID09IE5VTEwpIHsKIAkJCXIgPSBhbWRncHVfYm9fY3JlYXRlKGFkZXYsIGR3cyAqIDQsIFBBR0Vf U0laRSwgdHJ1ZSwKIAkJCQkJICAgICBBTURHUFVfR0VNX0RPTUFJTl9WUkFNLAotCQkJCQkgICAg IEFNREdQVV9HRU1fQ1JFQVRFX0NQVV9BQ0NFU1NfUkVRVUlSRUQsCisJCQkJCSAgICAgQU1ER1BV X0dFTV9DUkVBVEVfQ1BVX0FDQ0VTU19SRVFVSVJFRCB8CisJCQkJCSAgICAgQU1ER1BVX0dFTV9D UkVBVEVfVlJBTV9DT05USUdVT1VTLAogCQkJCQkgICAgIE5VTEwsIE5VTEwsCiAJCQkJCSAgICAg JmFkZXYtPmdmeC5ybGMuY2xlYXJfc3RhdGVfb2JqKTsKIAkJCWlmIChyKSB7CkBAIC0zMzExLDcg KzMzMTMsOCBAQCBzdGF0aWMgaW50IGdmeF92N18wX3JsY19pbml0KHN0cnVjdCBhbWRncHVfZGV2 aWNlICphZGV2KQogCQlpZiAoYWRldi0+Z2Z4LnJsYy5jcF90YWJsZV9vYmogPT0gTlVMTCkgewog CQkJciA9IGFtZGdwdV9ib19jcmVhdGUoYWRldiwgYWRldi0+Z2Z4LnJsYy5jcF90YWJsZV9zaXpl LCBQQUdFX1NJWkUsIHRydWUsCiAJCQkJCSAgICAgQU1ER1BVX0dFTV9ET01BSU5fVlJBTSwKLQkJ CQkJICAgICBBTURHUFVfR0VNX0NSRUFURV9DUFVfQUNDRVNTX1JFUVVJUkVELAorCQkJCQkgICAg IEFNREdQVV9HRU1fQ1JFQVRFX0NQVV9BQ0NFU1NfUkVRVUlSRUQgfAorCQkJCQkgICAgIEFNREdQ VV9HRU1fQ1JFQVRFX1ZSQU1fQ09OVElHVU9VUywKIAkJCQkJICAgICBOVUxMLCBOVUxMLAogCQkJ CQkgICAgICZhZGV2LT5nZngucmxjLmNwX3RhYmxlX29iaik7CiAJCQlpZiAocikgewpkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZ2Z4X3Y4XzAuYyBiL2RyaXZlcnMvZ3B1 L2RybS9hbWQvYW1kZ3B1L2dmeF92OF8wLmMKaW5kZXggNGE2ZTA3ZC4uMDA1MDg5ZSAxMDA2NDQK LS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZ2Z4X3Y4XzAuYworKysgYi9kcml2ZXJz L2dwdS9kcm0vYW1kL2FtZGdwdS9nZnhfdjhfMC5jCkBAIC0xMjc0LDcgKzEyNzQsOCBAQCBzdGF0 aWMgaW50IGdmeF92OF8wX3JsY19pbml0KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQogCQlp ZiAoYWRldi0+Z2Z4LnJsYy5jbGVhcl9zdGF0ZV9vYmogPT0gTlVMTCkgewogCQkJciA9IGFtZGdw dV9ib19jcmVhdGUoYWRldiwgZHdzICogNCwgUEFHRV9TSVpFLCB0cnVlLAogCQkJCQkgICAgIEFN REdQVV9HRU1fRE9NQUlOX1ZSQU0sCi0JCQkJCSAgICAgQU1ER1BVX0dFTV9DUkVBVEVfQ1BVX0FD Q0VTU19SRVFVSVJFRCwKKwkJCQkJICAgICBBTURHUFVfR0VNX0NSRUFURV9DUFVfQUNDRVNTX1JF UVVJUkVEIHwKKwkJCQkJICAgICBBTURHUFVfR0VNX0NSRUFURV9WUkFNX0NPTlRJR1VPVVMsCiAJ CQkJCSAgICAgTlVMTCwgTlVMTCwKIAkJCQkJICAgICAmYWRldi0+Z2Z4LnJsYy5jbGVhcl9zdGF0 ZV9vYmopOwogCQkJaWYgKHIpIHsKQEAgLTEzMTYsNyArMTMxNyw4IEBAIHN0YXRpYyBpbnQgZ2Z4 X3Y4XzBfcmxjX2luaXQoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCiAJCWlmIChhZGV2LT5n ZngucmxjLmNwX3RhYmxlX29iaiA9PSBOVUxMKSB7CiAJCQlyID0gYW1kZ3B1X2JvX2NyZWF0ZShh ZGV2LCBhZGV2LT5nZngucmxjLmNwX3RhYmxlX3NpemUsIFBBR0VfU0laRSwgdHJ1ZSwKIAkJCQkJ ICAgICBBTURHUFVfR0VNX0RPTUFJTl9WUkFNLAotCQkJCQkgICAgIEFNREdQVV9HRU1fQ1JFQVRF X0NQVV9BQ0NFU1NfUkVRVUlSRUQsCisJCQkJCSAgICAgQU1ER1BVX0dFTV9DUkVBVEVfQ1BVX0FD Q0VTU19SRVFVSVJFRCB8CisJCQkJCSAgICAgQU1ER1BVX0dFTV9DUkVBVEVfVlJBTV9DT05USUdV T1VTLAogCQkJCQkgICAgIE5VTEwsIE5VTEwsCiAJCQkJCSAgICAgJmFkZXYtPmdmeC5ybGMuY3Bf dGFibGVfb2JqKTsKIAkJCWlmIChyKSB7CmRpZmYgLS1naXQgYS9pbmNsdWRlL3VhcGkvZHJtL2Ft ZGdwdV9kcm0uaCBiL2luY2x1ZGUvdWFwaS9kcm0vYW1kZ3B1X2RybS5oCmluZGV4IDQ3OTc5MzIu LjA4Yzk1YmQgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvdWFwaS9kcm0vYW1kZ3B1X2RybS5oCisrKyBi L2luY2x1ZGUvdWFwaS9kcm0vYW1kZ3B1X2RybS5oCkBAIC04Myw2ICs4Myw4IEBAIGV4dGVybiAi QyIgewogI2RlZmluZSBBTURHUFVfR0VNX0NSRUFURV9WUkFNX0NMRUFSRUQJCSgxIDw8IDMpCiAv KiBGbGFnIHRoYXQgY3JlYXRlIHNoYWRvdyBibyhHVFQpIHdoaWxlIGFsbG9jYXRpbmcgdnJhbSBi byAqLwogI2RlZmluZSBBTURHUFVfR0VNX0NSRUFURV9TSEFET1cJCSgxIDw8IDQpCisvKiBGbGFn IHRoYXQgYWxsb2NhdGluZyB0aGUgQk8gc2hvdWxkIHVzZSBsaW5lYXIgVlJBTSAqLworI2RlZmlu ZSBBTURHUFVfR0VNX0NSRUFURV9WUkFNX0NPTlRJR1VPVVMJKDEgPDwgNSkKIAogc3RydWN0IGRy bV9hbWRncHVfZ2VtX2NyZWF0ZV9pbiAgewogCS8qKiB0aGUgcmVxdWVzdGVkIG1lbW9yeSBzaXpl ICovCg== From patchwork Thu Sep 15 10:12:20 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 Subject: [2/6] drm/amdgpu: use explicit limit for VRAM_CONTIGUOUS From: =?UTF-8?q?Christian=20K=C3=B6nig?= X-Patchwork-Id: 110626 Message-Id: <1473934344-2106-2-git-send-email-deathsimple@vodafone.de> To: amd-gfx@lists.freedesktop.org Date: Thu, 15 Sep 2016 12:12:20 +0200 RnJvbTogQ2hyaXN0aWFuIEvDtm5pZyA8Y2hyaXN0aWFuLmtvZW5pZ0BhbWQuY29tPgoKU3BsaXQg VlJBTSB3b24ndCBoYXZlIGEgdmFsaWQgb2Zmc2V0LCBzbyBqdXN0IHNldCBhbiBleHBsaWNpdCBs aW1pdAp3aGVuIHRoZSBmbGFnIGlzIGdpdmVuIHRvIHRyaWdnZXIgcmVhbGxvY2F0aW9uIGlmIG5l Y2Vzc2FyeS4KClNpZ25lZC1vZmYtYnk6IENocmlzdGlhbiBLw7ZuaWcgPGNocmlzdGlhbi5rb2Vu aWdAYW1kLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfb2JqZWN0 LmMgfCA5ICsrKysrKystLQogMSBmaWxlIGNoYW5nZWQsIDcgaW5zZXJ0aW9ucygrKSwgMiBkZWxl dGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVf b2JqZWN0LmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfb2JqZWN0LmMKaW5k ZXggM2JkZGM2OC4uMDNjNmJmYyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRn cHUvYW1kZ3B1X29iamVjdC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdw dV9vYmplY3QuYwpAQCAtMTIzLDEyICsxMjMsMTcgQEAgc3RhdGljIHZvaWQgYW1kZ3B1X3R0bV9w bGFjZW1lbnRfaW5pdChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwKIAogCWlmIChkb21haW4g JiBBTURHUFVfR0VNX0RPTUFJTl9WUkFNKSB7CiAJCXVuc2lnbmVkIHZpc2libGVfcGZuID0gYWRl di0+bWMudmlzaWJsZV92cmFtX3NpemUgPj4gUEFHRV9TSElGVDsKKwkJdW5zaWduZWQgbHBmbiA9 IDA7CisKKwkJLyogVGhpcyBmb3JjZXMgYSByZWFsbG9jYXRpb24gaWYgdGhlIGZsYWcgd2Fzbid0 IHNldCBiZWZvcmUgKi8KKwkJaWYgKGZsYWdzICYgQU1ER1BVX0dFTV9DUkVBVEVfVlJBTV9DT05U SUdVT1VTKQorCQkJbHBmbiA9IGFkZXYtPm1jLnJlYWxfdnJhbV9zaXplID4+IFBBR0VfU0hJRlQ7 CiAKIAkJaWYgKGZsYWdzICYgQU1ER1BVX0dFTV9DUkVBVEVfTk9fQ1BVX0FDQ0VTUyAmJgogCQkg ICAgIShmbGFncyAmIEFNREdQVV9HRU1fQ1JFQVRFX0NQVV9BQ0NFU1NfUkVRVUlSRUQpICYmCiAJ CSAgICBhZGV2LT5tYy52aXNpYmxlX3ZyYW1fc2l6ZSA8IGFkZXYtPm1jLnJlYWxfdnJhbV9zaXpl KSB7CiAJCQlwbGFjZXNbY10uZnBmbiA9IHZpc2libGVfcGZuOwotCQkJcGxhY2VzW2NdLmxwZm4g PSAwOworCQkJcGxhY2VzW2NdLmxwZm4gPSBscGZuOwogCQkJcGxhY2VzW2NdLmZsYWdzID0gVFRN X1BMX0ZMQUdfV0MgfAogCQkJCVRUTV9QTF9GTEFHX1VOQ0FDSEVEIHwgVFRNX1BMX0ZMQUdfVlJB TSB8CiAJCQkJVFRNX1BMX0ZMQUdfVE9QRE9XTjsKQEAgLTEzNiw3ICsxNDEsNyBAQCBzdGF0aWMg dm9pZCBhbWRncHVfdHRtX3BsYWNlbWVudF9pbml0KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2 LAogCQl9CiAKIAkJcGxhY2VzW2NdLmZwZm4gPSAwOwotCQlwbGFjZXNbY10ubHBmbiA9IDA7CisJ CXBsYWNlc1tjXS5scGZuID0gbHBmbjsKIAkJcGxhY2VzW2NdLmZsYWdzID0gVFRNX1BMX0ZMQUdf V0MgfCBUVE1fUExfRkxBR19VTkNBQ0hFRCB8CiAJCQlUVE1fUExfRkxBR19WUkFNOwogCQlpZiAo ZmxhZ3MgJiBBTURHUFVfR0VNX0NSRUFURV9DUFVfQUNDRVNTX1JFUVVJUkVEKQo= From patchwork Thu Sep 15 10:12:21 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 Subject: [3/6] drm/amdgpu: set at least the node size in the gtt manager From: =?UTF-8?q?Christian=20K=C3=B6nig?= X-Patchwork-Id: 110627 Message-Id: <1473934344-2106-3-git-send-email-deathsimple@vodafone.de> To: amd-gfx@lists.freedesktop.org Date: Thu, 15 Sep 2016 12:12:21 +0200 RnJvbTogQ2hyaXN0aWFuIEvDtm5pZyA8Y2hyaXN0aWFuLmtvZW5pZ0BhbWQuY29tPgoKT3RoZXJ3 aXNlIHRoZSBuZXcgVk0gY29kZSBiZWNvbWVzIGNvbmZ1c2VkLgoKU2lnbmVkLW9mZi1ieTogQ2hy aXN0aWFuIEvDtm5pZyA8Y2hyaXN0aWFuLmtvZW5pZ0BhbWQuY29tPgotLS0KIGRyaXZlcnMvZ3B1 L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9ndHRfbWdyLmMgfCAxICsKIDEgZmlsZSBjaGFuZ2VkLCAx IGluc2VydGlvbigrKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2Ft ZGdwdV9ndHRfbWdyLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfZ3R0X21n ci5jCmluZGV4IDI2MmU4NzIuLjk1N2E3ODggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9h bWQvYW1kZ3B1L2FtZGdwdV9ndHRfbWdyLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRn cHUvYW1kZ3B1X2d0dF9tZ3IuYwpAQCAtMTY3LDYgKzE2Nyw3IEBAIHN0YXRpYyBpbnQgYW1kZ3B1 X2d0dF9tZ3JfbmV3KHN0cnVjdCB0dG1fbWVtX3R5cGVfbWFuYWdlciAqbWFuLAogCQlyZXR1cm4g LUVOT01FTTsKIAogCW5vZGUtPnN0YXJ0ID0gQU1ER1BVX0JPX0lOVkFMSURfT0ZGU0VUOworCW5v ZGUtPnNpemUgPSBtZW0tPm51bV9wYWdlczsKIAltZW0tPm1tX25vZGUgPSBub2RlOwogCiAJaWYg KHBsYWNlLT5mcGZuIHx8IHBsYWNlLT5scGZuIHx8IHBsYWNlLT5mbGFncyAmIFRUTV9QTF9GTEFH X1RPUERPV04pIHsK From patchwork Thu Sep 15 10:12:22 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 Subject: [4/6] drm/amdgpu: handle multiple MM nodes in the VMs v2 From: =?UTF-8?q?Christian=20K=C3=B6nig?= X-Patchwork-Id: 110629 Message-Id: <1473934344-2106-4-git-send-email-deathsimple@vodafone.de> To: amd-gfx@lists.freedesktop.org Date: Thu, 15 Sep 2016 12:12:22 +0200 RnJvbTogQ2hyaXN0aWFuIEvDtm5pZyA8Y2hyaXN0aWFuLmtvZW5pZ0BhbWQuY29tPgoKVGhpcyBh bGxvd3MgdXMgdG8gbWFwIHNjYXR0ZXJlZCBWUkFNIEJPcyB0byB0aGUgVk1zLgoKdjI6IGZpeCBv ZmZzZXQgaGFuZGxpbmcsIHVzZSBwZm4gaW5zdGVhZCBvZiBvZmZzZXQsCiAgICBmaXggUEFHRV9T SVpFICE9IEFNREdQVV9HUFVfUEFHRV9TSVpFIGNhc2UKClNpZ25lZC1vZmYtYnk6IENocmlzdGlh biBLw7ZuaWcgPGNocmlzdGlhbi5rb2VuaWdAYW1kLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0v YW1kL2FtZGdwdS9hbWRncHVfdm0uYyB8IDgxICsrKysrKysrKysrKysrKysrKystLS0tLS0tLS0t LS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA0NiBpbnNlcnRpb25zKCspLCAzNSBkZWxldGlvbnMoLSkK CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdm0uYyBiL2Ry aXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV92bS5jCmluZGV4IDg3Yzk5MGUuLmQzYTJk MWYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV92bS5jCisr KyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV92bS5jCkBAIC0xMDQ5LDggKzEw NDksOCBAQCBlcnJvcl9mcmVlOgogICogQHBhZ2VzX2FkZHI6IERNQSBhZGRyZXNzZXMgdG8gdXNl IGZvciBtYXBwaW5nCiAgKiBAdm06IHJlcXVlc3RlZCB2bQogICogQG1hcHBpbmc6IG1hcHBlZCBy YW5nZSBhbmQgZmxhZ3MgdG8gdXNlIGZvciB0aGUgdXBkYXRlCi0gKiBAYWRkcjogYWRkciB0byBz ZXQgdGhlIGFyZWEgdG8KICAqIEBmbGFnczogSFcgZmxhZ3MgZm9yIHRoZSBtYXBwaW5nCisgKiBA bm9kZXM6IGFycmF5IG9mIGRybV9tbV9ub2RlcyB3aXRoIHRoZSBNQyBhZGRyZXNzZXMKICAqIEBm ZW5jZTogb3B0aW9uYWwgcmVzdWx0aW5nIGZlbmNlCiAgKgogICogU3BsaXQgdGhlIG1hcHBpbmcg aW50byBzbWFsbGVyIGNodW5rcyBzbyB0aGF0IGVhY2ggdXBkYXRlIGZpdHMKQEAgLTEwNjMsMTIg KzEwNjMsMTEgQEAgc3RhdGljIGludCBhbWRncHVfdm1fYm9fc3BsaXRfbWFwcGluZyhzdHJ1Y3Qg YW1kZ3B1X2RldmljZSAqYWRldiwKIAkJCQkgICAgICBkbWFfYWRkcl90ICpwYWdlc19hZGRyLAog CQkJCSAgICAgIHN0cnVjdCBhbWRncHVfdm0gKnZtLAogCQkJCSAgICAgIHN0cnVjdCBhbWRncHVf Ym9fdmFfbWFwcGluZyAqbWFwcGluZywKLQkJCQkgICAgICB1aW50MzJfdCBmbGFncywgdWludDY0 X3QgYWRkciwKKwkJCQkgICAgICB1aW50MzJfdCBmbGFncywKKwkJCQkgICAgICBzdHJ1Y3QgZHJt X21tX25vZGUgKm5vZGVzLAogCQkJCSAgICAgIHN0cnVjdCBmZW5jZSAqKmZlbmNlKQogewotCWNv bnN0IHVpbnQ2NF90IG1heF9zaXplID0gNjRVTEwgKiAxMDI0VUxMICogMTAyNFVMTCAvIEFNREdQ VV9HUFVfUEFHRV9TSVpFOwotCi0JdWludDY0X3Qgc3JjID0gMCwgc3RhcnQgPSBtYXBwaW5nLT5p dC5zdGFydDsKKwl1aW50NjRfdCBwZm4sIHNyYyA9IDAsIHN0YXJ0ID0gbWFwcGluZy0+aXQuc3Rh cnQ7CiAJaW50IHI7CiAKIAkvKiBub3JtYWxseSxib192YS0+ZmxhZ3Mgb25seSBjb250aWFucyBS RUFEQUJMRSBhbmQgV0lSVEVBQkxFIGJpdCBnbyBoZXJlCkBAIC0xMDgxLDIzICsxMDgwLDQwIEBA IHN0YXRpYyBpbnQgYW1kZ3B1X3ZtX2JvX3NwbGl0X21hcHBpbmcoc3RydWN0IGFtZGdwdV9kZXZp Y2UgKmFkZXYsCiAKIAl0cmFjZV9hbWRncHVfdm1fYm9fdXBkYXRlKG1hcHBpbmcpOwogCi0JaWYg KHBhZ2VzX2FkZHIpIHsKLQkJaWYgKGZsYWdzID09IGd0dF9mbGFncykKLQkJCXNyYyA9IGFkZXYt PmdhcnQudGFibGVfYWRkciArIChhZGRyID4+IDEyKSAqIDg7Ci0JCWFkZHIgPSAwOworCXBmbiA9 IG1hcHBpbmctPm9mZnNldCA+PiBQQUdFX1NISUZUOworCWlmIChub2RlcykgeworCQl3aGlsZSAo cGZuID49IG5vZGVzLT5zaXplKSB7CisJCQlwZm4gLT0gbm9kZXMtPnNpemU7CisJCQkrK25vZGVz OworCQl9CiAJfQotCWFkZHIgKz0gbWFwcGluZy0+b2Zmc2V0OwogCi0JaWYgKCFwYWdlc19hZGRy IHx8IHNyYykKLQkJcmV0dXJuIGFtZGdwdV92bV9ib191cGRhdGVfbWFwcGluZyhhZGV2LCBleGNs dXNpdmUsCi0JCQkJCQkgICBzcmMsIHBhZ2VzX2FkZHIsIHZtLAotCQkJCQkJICAgc3RhcnQsIG1h cHBpbmctPml0Lmxhc3QsCi0JCQkJCQkgICBmbGFncywgYWRkciwgZmVuY2UpOworCWRvIHsKKwkJ dWludDY0X3QgbWF4X2VudHJpZXM7CisJCXVpbnQ2NF90IGFkZHIsIGxhc3Q7CisKKwkJaWYgKG5v ZGVzKSB7CisJCQlhZGRyID0gbm9kZXMtPnN0YXJ0IDw8IFBBR0VfU0hJRlQ7CisJCQltYXhfZW50 cmllcyA9IChub2Rlcy0+c2l6ZSAtIHBmbikgKgorCQkJCShQQUdFX1NJWkUgLyBBTURHUFVfR1BV X1BBR0VfU0laRSk7CisJCX0gZWxzZSB7CisJCQlhZGRyID0gMDsKKwkJCW1heF9lbnRyaWVzID0g UzY0X01BWDsKKwkJfQogCi0Jd2hpbGUgKHN0YXJ0ICE9IG1hcHBpbmctPml0Lmxhc3QgKyAxKSB7 Ci0JCXVpbnQ2NF90IGxhc3Q7CisJCWlmIChwYWdlc19hZGRyKSB7CisJCQlpZiAoZmxhZ3MgPT0g Z3R0X2ZsYWdzKQorCQkJCXNyYyA9IGFkZXYtPmdhcnQudGFibGVfYWRkciArCisJCQkJCShhZGRy ID4+IEFNREdQVV9HUFVfUEFHRV9TSElGVCkgKiA4OworCQkJZWxzZQorCQkJCW1heF9lbnRyaWVz ID0gbWluKG1heF9lbnRyaWVzLCAxNnVsbCAqIDEwMjR1bGwpOworCQkJYWRkciA9IDA7CisJCX0g ZWxzZSBpZiAoZmxhZ3MgJiBBTURHUFVfUFRFX1ZBTElEKSB7CisJCQlhZGRyICs9IGFkZXYtPnZt X21hbmFnZXIudnJhbV9iYXNlX29mZnNldDsKKwkJfQorCQlhZGRyICs9IHBmbiA8PCBQQUdFX1NI SUZUOwogCi0JCWxhc3QgPSBtaW4oKHVpbnQ2NF90KW1hcHBpbmctPml0Lmxhc3QsIHN0YXJ0ICsg bWF4X3NpemUgLSAxKTsKKwkJbGFzdCA9IG1pbigodWludDY0X3QpbWFwcGluZy0+aXQubGFzdCwg c3RhcnQgKyBtYXhfZW50cmllcyAtIDEpOwogCQlyID0gYW1kZ3B1X3ZtX2JvX3VwZGF0ZV9tYXBw aW5nKGFkZXYsIGV4Y2x1c2l2ZSwKIAkJCQkJCXNyYywgcGFnZXNfYWRkciwgdm0sCiAJCQkJCQlz dGFydCwgbGFzdCwgZmxhZ3MsIGFkZHIsCkBAIC0xMTA1LDkgKzExMjEsMTQgQEAgc3RhdGljIGlu dCBhbWRncHVfdm1fYm9fc3BsaXRfbWFwcGluZyhzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwK IAkJaWYgKHIpCiAJCQlyZXR1cm4gcjsKIAorCQlwZm4gKz0gbGFzdCAtIHN0YXJ0ICsgMTsKKwkJ aWYgKG5vZGVzICYmIG5vZGVzLT5zaXplID09IHBmbikgeworCQkJcGZuID0gMDsKKwkJCSsrbm9k ZXM7CisJCX0KIAkJc3RhcnQgPSBsYXN0ICsgMTsKLQkJYWRkciArPSBtYXhfc2l6ZSAqIEFNREdQ VV9HUFVfUEFHRV9TSVpFOwotCX0KKworCX0gd2hpbGUgKHVubGlrZWx5KHN0YXJ0ICE9IG1hcHBp bmctPml0Lmxhc3QgKyAxKSk7CiAKIAlyZXR1cm4gMDsKIH0KQEAgLTExMzEsMzQgKzExNTIsMjQg QEAgaW50IGFtZGdwdV92bV9ib191cGRhdGUoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsCiAJ ZG1hX2FkZHJfdCAqcGFnZXNfYWRkciA9IE5VTEw7CiAJdWludDMyX3QgZ3R0X2ZsYWdzLCBmbGFn czsKIAlzdHJ1Y3QgdHRtX21lbV9yZWcgKm1lbTsKKwlzdHJ1Y3QgZHJtX21tX25vZGUgKm5vZGVz OwogCXN0cnVjdCBmZW5jZSAqZXhjbHVzaXZlOwotCXVpbnQ2NF90IGFkZHI7CiAJaW50IHI7CiAK IAlpZiAoY2xlYXIpIHsKIAkJbWVtID0gTlVMTDsKLQkJYWRkciA9IDA7CisJCW5vZGVzID0gTlVM TDsKIAkJZXhjbHVzaXZlID0gTlVMTDsKIAl9IGVsc2UgewogCQlzdHJ1Y3QgdHRtX2RtYV90dCAq dHRtOwogCiAJCW1lbSA9ICZib192YS0+Ym8tPnRiby5tZW07Ci0JCWFkZHIgPSAodTY0KW1lbS0+ c3RhcnQgPDwgUEFHRV9TSElGVDsKLQkJc3dpdGNoIChtZW0tPm1lbV90eXBlKSB7Ci0JCWNhc2Ug VFRNX1BMX1RUOgorCQlub2RlcyA9IG1lbS0+bW1fbm9kZTsKKwkJaWYgKG1lbS0+bWVtX3R5cGUg PT0gVFRNX1BMX1RUKSB7CiAJCQl0dG0gPSBjb250YWluZXJfb2YoYm9fdmEtPmJvLT50Ym8udHRt LCBzdHJ1Y3QKIAkJCQkJICAgdHRtX2RtYV90dCwgdHRtKTsKIAkJCXBhZ2VzX2FkZHIgPSB0dG0t PmRtYV9hZGRyZXNzOwotCQkJYnJlYWs7Ci0KLQkJY2FzZSBUVE1fUExfVlJBTToKLQkJCWFkZHIg Kz0gYWRldi0+dm1fbWFuYWdlci52cmFtX2Jhc2Vfb2Zmc2V0OwotCQkJYnJlYWs7Ci0KLQkJZGVm YXVsdDoKLQkJCWJyZWFrOwogCQl9Ci0KIAkJZXhjbHVzaXZlID0gcmVzZXJ2YXRpb25fb2JqZWN0 X2dldF9leGNsKGJvX3ZhLT5iby0+dGJvLnJlc3YpOwogCX0KIApAQCAtMTE3NCw3ICsxMTg1LDcg QEAgaW50IGFtZGdwdV92bV9ib191cGRhdGUoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsCiAJ bGlzdF9mb3JfZWFjaF9lbnRyeShtYXBwaW5nLCAmYm9fdmEtPmludmFsaWRzLCBsaXN0KSB7CiAJ CXIgPSBhbWRncHVfdm1fYm9fc3BsaXRfbWFwcGluZyhhZGV2LCBleGNsdXNpdmUsCiAJCQkJCSAg ICAgICBndHRfZmxhZ3MsIHBhZ2VzX2FkZHIsIHZtLAotCQkJCQkgICAgICAgbWFwcGluZywgZmxh Z3MsIGFkZHIsCisJCQkJCSAgICAgICBtYXBwaW5nLCBmbGFncywgbm9kZXMsCiAJCQkJCSAgICAg ICAmYm9fdmEtPmxhc3RfcHRfdXBkYXRlKTsKIAkJaWYgKHIpCiAJCQlyZXR1cm4gcjsK From patchwork Thu Sep 15 10:12:23 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 Subject: [5/6] drm/amdgpu: enable amdgpu_move_blit to handle multiple MM nodes v2 From: =?UTF-8?q?Christian=20K=C3=B6nig?= X-Patchwork-Id: 110628 Message-Id: <1473934344-2106-5-git-send-email-deathsimple@vodafone.de> To: amd-gfx@lists.freedesktop.org Date: Thu, 15 Sep 2016 12:12:23 +0200 RnJvbTogQ2hyaXN0aWFuIEvDtm5pZyA8Y2hyaXN0aWFuLmtvZW5pZ0BhbWQuY29tPgoKVGhpcyBh bGxvd3MgdXMgdG8gbW92ZSBzY2F0dGVyZWQgYnVmZmVycyBhcm91bmQuCgp2MjogZml4IGEgY291 cGxlIG9mIHR5cG9zLCBoYW5kbGUgc2NhdHRlcmVkIHRvIHNjYXR0ZXJlZCBtb3ZlcyBhcyB3ZWxs LgoKU2lnbmVkLW9mZi1ieTogQ2hyaXN0aWFuIEvDtm5pZyA8Y2hyaXN0aWFuLmtvZW5pZ0BhbWQu Y29tPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV90dG0uYyB8IDExOCAr KysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDg1IGluc2Vy dGlvbnMoKyksIDMzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9h bWQvYW1kZ3B1L2FtZGdwdV90dG0uYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdw dV90dG0uYwppbmRleCBiMWY1ZDczLi40YjhiMzljIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9k cm0vYW1kL2FtZGdwdS9hbWRncHVfdHRtLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRn cHUvYW1kZ3B1X3R0bS5jCkBAIC0yNTksNjQgKzI1OSwxMTYgQEAgc3RhdGljIHZvaWQgYW1kZ3B1 X21vdmVfbnVsbChzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvLAogCW5ld19tZW0tPm1tX25v ZGUgPSBOVUxMOwogfQogCi1zdGF0aWMgaW50IGFtZGdwdV9tb3ZlX2JsaXQoc3RydWN0IHR0bV9i dWZmZXJfb2JqZWN0ICpibywKLQkJCWJvb2wgZXZpY3QsIGJvb2wgbm9fd2FpdF9ncHUsCi0JCQlz dHJ1Y3QgdHRtX21lbV9yZWcgKm5ld19tZW0sCi0JCQlzdHJ1Y3QgdHRtX21lbV9yZWcgKm9sZF9t ZW0pCitzdGF0aWMgaW50IGFtZGdwdV9tbV9ub2RlX2FkZHIoc3RydWN0IHR0bV9idWZmZXJfb2Jq ZWN0ICpibywKKwkJCSAgICAgICBzdHJ1Y3QgZHJtX21tX25vZGUgKm1tX25vZGUsCisJCQkgICAg ICAgc3RydWN0IHR0bV9tZW1fcmVnICptZW0sCisJCQkgICAgICAgdWludDY0X3QgKmFkZHIpCiB7 Ci0Jc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXY7Ci0Jc3RydWN0IGFtZGdwdV9yaW5nICpyaW5n OwotCXVpbnQ2NF90IG9sZF9zdGFydCwgbmV3X3N0YXJ0OwotCXN0cnVjdCBmZW5jZSAqZmVuY2U7 CiAJaW50IHI7CiAKLQlhZGV2ID0gYW1kZ3B1X2dldF9hZGV2KGJvLT5iZGV2KTsKLQlyaW5nID0g YWRldi0+bW1hbi5idWZmZXJfZnVuY3NfcmluZzsKLQlvbGRfc3RhcnQgPSAodTY0KW9sZF9tZW0t PnN0YXJ0IDw8IFBBR0VfU0hJRlQ7Ci0JbmV3X3N0YXJ0ID0gKHU2NCluZXdfbWVtLT5zdGFydCA8 PCBQQUdFX1NISUZUOwotCi0Jc3dpdGNoIChvbGRfbWVtLT5tZW1fdHlwZSkgeworCXN3aXRjaCAo bWVtLT5tZW1fdHlwZSkgewogCWNhc2UgVFRNX1BMX1RUOgotCQlyID0gYW1kZ3B1X3R0bV9iaW5k KGJvLCBvbGRfbWVtKTsKKwkJciA9IGFtZGdwdV90dG1fYmluZChibywgbWVtKTsKIAkJaWYgKHIp CiAJCQlyZXR1cm4gcjsKIAogCWNhc2UgVFRNX1BMX1ZSQU06Ci0JCW9sZF9zdGFydCArPSBiby0+ YmRldi0+bWFuW29sZF9tZW0tPm1lbV90eXBlXS5ncHVfb2Zmc2V0OworCQkqYWRkciA9IG1tX25v ZGUtPnN0YXJ0IDw8IFBBR0VfU0hJRlQ7CisJCSphZGRyICs9IGJvLT5iZGV2LT5tYW5bbWVtLT5t ZW1fdHlwZV0uZ3B1X29mZnNldDsKIAkJYnJlYWs7CiAJZGVmYXVsdDoKLQkJRFJNX0VSUk9SKCJV bmtub3duIHBsYWNlbWVudCAlZFxuIiwgb2xkX21lbS0+bWVtX3R5cGUpOworCQlEUk1fRVJST1Io IlVua25vd24gcGxhY2VtZW50ICVkXG4iLCBtZW0tPm1lbV90eXBlKTsKIAkJcmV0dXJuIC1FSU5W QUw7CiAJfQotCXN3aXRjaCAobmV3X21lbS0+bWVtX3R5cGUpIHsKLQljYXNlIFRUTV9QTF9UVDoK LQkJciA9IGFtZGdwdV90dG1fYmluZChibywgbmV3X21lbSk7Ci0JCWlmIChyKQotCQkJcmV0dXJu IHI7CiAKLQljYXNlIFRUTV9QTF9WUkFNOgotCQluZXdfc3RhcnQgKz0gYm8tPmJkZXYtPm1hbltu ZXdfbWVtLT5tZW1fdHlwZV0uZ3B1X29mZnNldDsKLQkJYnJlYWs7Ci0JZGVmYXVsdDoKLQkJRFJN X0VSUk9SKCJVbmtub3duIHBsYWNlbWVudCAlZFxuIiwgb2xkX21lbS0+bWVtX3R5cGUpOwotCQly ZXR1cm4gLUVJTlZBTDsKLQl9CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgYW1kZ3B1X21v dmVfYmxpdChzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvLAorCQkJICAgIGJvb2wgZXZpY3Qs IGJvb2wgbm9fd2FpdF9ncHUsCisJCQkgICAgc3RydWN0IHR0bV9tZW1fcmVnICpuZXdfbWVtLAor CQkJICAgIHN0cnVjdCB0dG1fbWVtX3JlZyAqb2xkX21lbSkKK3sKKwlzdHJ1Y3QgYW1kZ3B1X2Rl dmljZSAqYWRldiA9IGFtZGdwdV9nZXRfYWRldihiby0+YmRldik7CisJc3RydWN0IGFtZGdwdV9y aW5nICpyaW5nID0gYWRldi0+bW1hbi5idWZmZXJfZnVuY3NfcmluZzsKKworCXN0cnVjdCBkcm1f bW1fbm9kZSAqb2xkX21tLCAqbmV3X21tOworCXVpbnQ2NF90IG9sZF9zdGFydCwgb2xkX3NpemUs IG5ld19zdGFydCwgbmV3X3NpemU7CisJdW5zaWduZWQgbG9uZyBudW1fcGFnZXM7CisJc3RydWN0 IGZlbmNlICpmZW5jZSA9IE5VTEw7CisJaW50IHI7CisKKwlCVUlMRF9CVUdfT04oKFBBR0VfU0la RSAlIEFNREdQVV9HUFVfUEFHRV9TSVpFKSAhPSAwKTsKKwogCWlmICghcmluZy0+cmVhZHkpIHsK IAkJRFJNX0VSUk9SKCJUcnlpbmcgdG8gbW92ZSBtZW1vcnkgd2l0aCByaW5nIHR1cm5lZCBvZmYu XG4iKTsKIAkJcmV0dXJuIC1FSU5WQUw7CiAJfQogCi0JQlVJTERfQlVHX09OKChQQUdFX1NJWkUg JSBBTURHUFVfR1BVX1BBR0VfU0laRSkgIT0gMCk7CisJb2xkX21tID0gb2xkX21lbS0+bW1fbm9k ZTsKKwlyID0gYW1kZ3B1X21tX25vZGVfYWRkcihibywgb2xkX21tLCBvbGRfbWVtLCAmb2xkX3N0 YXJ0KTsKKwlpZiAocikKKwkJcmV0dXJuIHI7CisJb2xkX3NpemUgPSBvbGRfbW0tPnNpemU7CisK IAotCXIgPSBhbWRncHVfY29weV9idWZmZXIocmluZywgb2xkX3N0YXJ0LCBuZXdfc3RhcnQsCi0J CQkgICAgICAgbmV3X21lbS0+bnVtX3BhZ2VzICogUEFHRV9TSVpFLCAvKiBieXRlcyAqLwotCQkJ ICAgICAgIGJvLT5yZXN2LCAmZmVuY2UsIGZhbHNlKTsKKwluZXdfbW0gPSBuZXdfbWVtLT5tbV9u b2RlOworCXIgPSBhbWRncHVfbW1fbm9kZV9hZGRyKGJvLCBuZXdfbW0sIG5ld19tZW0sICZuZXdf c3RhcnQpOwogCWlmIChyKQogCQlyZXR1cm4gcjsKKwluZXdfc2l6ZSA9IG5ld19tbS0+c2l6ZTsK KworCW51bV9wYWdlcyA9IG5ld19tZW0tPm51bV9wYWdlczsKKwl3aGlsZSAobnVtX3BhZ2VzKSB7 CisJCXVuc2lnbmVkIGxvbmcgY3VyX3BhZ2VzID0gbWluKG9sZF9zaXplLCBuZXdfc2l6ZSk7CisJ CXN0cnVjdCBmZW5jZSAqbmV4dDsKKworCQlyID0gYW1kZ3B1X2NvcHlfYnVmZmVyKHJpbmcsIG9s ZF9zdGFydCwgbmV3X3N0YXJ0LAorCQkJCSAgICAgICBjdXJfcGFnZXMgKiBQQUdFX1NJWkUsCisJ CQkJICAgICAgIGJvLT5yZXN2LCAmbmV4dCwgZmFsc2UpOworCQlpZiAocikKKwkJCWdvdG8gZXJy b3I7CisKKwkJZmVuY2VfcHV0KGZlbmNlKTsKKwkJZmVuY2UgPSBuZXh0OworCisJCW51bV9wYWdl cyAtPSBjdXJfcGFnZXM7CisJCWlmICghbnVtX3BhZ2VzKQorCQkJYnJlYWs7CisKKwkJb2xkX3Np emUgLT0gY3VyX3BhZ2VzOworCQlpZiAoIW9sZF9zaXplKSB7CisJCQlyID0gYW1kZ3B1X21tX25v ZGVfYWRkcihibywgKytvbGRfbW0sIG9sZF9tZW0sCisJCQkJCQkmb2xkX3N0YXJ0KTsKKwkJCWlm IChyKQorCQkJCWdvdG8gZXJyb3I7CisJCQlvbGRfc2l6ZSA9IG9sZF9tbS0+c2l6ZTsKKwkJfSBl bHNlIHsKKwkJCW9sZF9zdGFydCArPSBjdXJfcGFnZXMgKiBQQUdFX1NJWkU7CisJCX0KKworCQlu ZXdfc2l6ZSAtPSBjdXJfcGFnZXM7CisJCWlmICghbmV3X3NpemUpIHsKKwkJCXIgPSBhbWRncHVf bW1fbm9kZV9hZGRyKGJvLCArK25ld19tbSwgbmV3X21lbSwKKwkJCQkJCSZuZXdfc3RhcnQpOwor CQkJaWYgKHIpCisJCQkJZ290byBlcnJvcjsKKworCQkJbmV3X3NpemUgPSBuZXdfbW0tPnNpemU7 CisJCX0gZWxzZSB7CisJCQluZXdfc3RhcnQgKz0gY3VyX3BhZ2VzICogUEFHRV9TSVpFOworCQl9 CisJfQogCiAJciA9IHR0bV9ib19waXBlbGluZV9tb3ZlKGJvLCBmZW5jZSwgZXZpY3QsIG5ld19t ZW0pOwogCWZlbmNlX3B1dChmZW5jZSk7CiAJcmV0dXJuIHI7CisKK2Vycm9yOgorCWlmIChmZW5j ZSkKKwkJZmVuY2Vfd2FpdChmZW5jZSwgZmFsc2UpOworCWZlbmNlX3B1dChmZW5jZSk7CisJcmV0 dXJuIHI7CiB9CiAKIHN0YXRpYyBpbnQgYW1kZ3B1X21vdmVfdnJhbV9yYW0oc3RydWN0IHR0bV9i dWZmZXJfb2JqZWN0ICpibywK From patchwork Thu Sep 15 10:12:24 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 Subject: [6/6] drm/amdgpu: add VRAM manager v2 From: =?UTF-8?q?Christian=20K=C3=B6nig?= X-Patchwork-Id: 110631 Message-Id: <1473934344-2106-6-git-send-email-deathsimple@vodafone.de> To: amd-gfx@lists.freedesktop.org Date: Thu, 15 Sep 2016 12:12:24 +0200 RnJvbTogQ2hyaXN0aWFuIEvDtm5pZyA8Y2hyaXN0aWFuLmtvZW5pZ0BhbWQuY29tPgoKU3BsaXQg VlJBTSBhbGxvY2F0aW9ucyBpbnRvIDRNQiBibG9ja3MuCgp2MjogZml4IHR5cG8gaW4gY29tbWVu dCwgc29tZSBzdWdnZXN0ZWQgY2xlYW51cHMKClNpZ25lZC1vZmYtYnk6IENocmlzdGlhbiBLw7Zu aWcgPGNocmlzdGlhbi5rb2VuaWdAYW1kLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vYW1kL2Ft ZGdwdS9NYWtlZmlsZSAgICAgICAgICB8ICAgMiArLQogZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRn cHUvYW1kZ3B1LmggICAgICAgICAgfCAgIDEgKwogZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUv YW1kZ3B1X2RldmljZS5jICAgfCAgIDcgKwogZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1k Z3B1X2Rydi5jICAgICAgfCAgIDQgKwogZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1 X29iamVjdC5jICAgfCAgIDEgKwogZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3R0 bS5jICAgICAgfCAgIDIgKy0KIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV90dG0u aCAgICAgIHwgICAxICsKIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV92cmFtX21n ci5jIHwgMjIyICsrKysrKysrKysrKysrKysrKysrKysrKysrKwogOCBmaWxlcyBjaGFuZ2VkLCAy MzggaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2 ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdnJhbV9tZ3IuYwoKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L01ha2VmaWxlIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9h bWRncHUvTWFrZWZpbGUKaW5kZXggZjJiOTdjYi4uMjM2ZTlkZiAxMDA2NDQKLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2FtZC9hbWRncHUvTWFrZWZpbGUKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9h bWRncHUvTWFrZWZpbGUKQEAgLTMwLDcgKzMwLDcgQEAgYW1kZ3B1LXkgKz0gYW1kZ3B1X2Rldmlj ZS5vIGFtZGdwdV9rbXMubyBcCiAJYXRvbWJpb3NfZW5jb2RlcnMubyBhbWRncHVfc2EubyBhdG9t Ymlvc19pMmMubyBcCiAJYW1kZ3B1X3ByaW1lLm8gYW1kZ3B1X3ZtLm8gYW1kZ3B1X2liLm8gYW1k Z3B1X3BsbC5vIFwKIAlhbWRncHVfdWNvZGUubyBhbWRncHVfYm9fbGlzdC5vIGFtZGdwdV9jdHgu byBhbWRncHVfc3luYy5vIFwKLQlhbWRncHVfZ3R0X21nci5vCisJYW1kZ3B1X2d0dF9tZ3IubyBh bWRncHVfdnJhbV9tZ3IubwogCiAjIGFkZCBhc2ljIHNwZWNpZmljIGJsb2NrCiBhbWRncHUtJChD T05GSUdfRFJNX0FNREdQVV9DSUspKz0gY2lrLm8gY2lrX2loLm8ga3Zfc21jLm8ga3ZfZHBtLm8g XApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1LmggYi9kcml2 ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHUuaAppbmRleCA1ODhiYWFmLi5lZTU1NzYzIDEw MDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHUuaAorKysgYi9kcml2 ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHUuaApAQCAtOTgsNiArOTgsNyBAQCBleHRlcm4g Y2hhciAqYW1kZ3B1X2Rpc2FibGVfY3U7CiBleHRlcm4gaW50IGFtZGdwdV9zY2xrX2RlZXBfc2xl ZXBfZW47CiBleHRlcm4gY2hhciAqYW1kZ3B1X3ZpcnR1YWxfZGlzcGxheTsKIGV4dGVybiB1bnNp Z25lZCBhbWRncHVfcHBfZmVhdHVyZV9tYXNrOworZXh0ZXJuIGludCBhbWRncHVfdnJhbV9wYWdl X3NwbGl0OwogCiAjZGVmaW5lIEFNREdQVV9XQUlUX0lETEVfVElNRU9VVF9JTl9NUwkgICAgICAg IDMwMDAKICNkZWZpbmUgQU1ER1BVX01BWF9VU0VDX1RJTUVPVVQJCQkxMDAwMDAJLyogMTAwIG1z ICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfZGV2aWNl LmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfZGV2aWNlLmMKaW5kZXggNTY4 NmQxMi4uZjI2YjA2NyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1k Z3B1X2RldmljZS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9kZXZp Y2UuYwpAQCAtMTAxMiw2ICsxMDEyLDEzIEBAIHN0YXRpYyB2b2lkIGFtZGdwdV9jaGVja19hcmd1 bWVudHMoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCiAJCQkgYW1kZ3B1X3ZtX2Jsb2NrX3Np emUpOwogCQlhbWRncHVfdm1fYmxvY2tfc2l6ZSA9IDk7CiAJfQorCisJaWYgKChhbWRncHVfdnJh bV9wYWdlX3NwbGl0ICE9IC0xICYmIGFtZGdwdV92cmFtX3BhZ2Vfc3BsaXQgPCAxNikgfHwKKwkg ICAgIWFtZGdwdV9jaGVja19wb3RfYXJndW1lbnQoYW1kZ3B1X3ZyYW1fcGFnZV9zcGxpdCkpIHsK KwkJZGV2X3dhcm4oYWRldi0+ZGV2LCAiaW52YWxpZCBWUkFNIHBhZ2Ugc3BsaXQgKCVkKVxuIiwK KwkJCSBhbWRncHVfdnJhbV9wYWdlX3NwbGl0KTsKKwkJYW1kZ3B1X3ZyYW1fcGFnZV9zcGxpdCA9 IDEwMjQ7CisJfQogfQogCiAvKioKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1k Z3B1L2FtZGdwdV9kcnYuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9kcnYu YwppbmRleCA5MDJkYTEzLi40NGU2MDVkIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1k L2FtZGdwdS9hbWRncHVfZHJ2LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1k Z3B1X2Rydi5jCkBAIC04Myw2ICs4Myw3IEBAIGludCBhbWRncHVfdm1fc2l6ZSA9IDY0OwogaW50 IGFtZGdwdV92bV9ibG9ja19zaXplID0gLTE7CiBpbnQgYW1kZ3B1X3ZtX2ZhdWx0X3N0b3AgPSAw OwogaW50IGFtZGdwdV92bV9kZWJ1ZyA9IDA7CitpbnQgYW1kZ3B1X3ZyYW1fcGFnZV9zcGxpdCA9 IDEwMjQ7CiBpbnQgYW1kZ3B1X2V4cF9od19zdXBwb3J0ID0gMDsKIGludCBhbWRncHVfZGFsID0g LTE7CiBpbnQgYW1kZ3B1X3NjaGVkX2pvYnMgPSAzMjsKQEAgLTE2NCw2ICsxNjUsOSBAQCBtb2R1 bGVfcGFyYW1fbmFtZWQodm1fZmF1bHRfc3RvcCwgYW1kZ3B1X3ZtX2ZhdWx0X3N0b3AsIGludCwg MDQ0NCk7CiBNT0RVTEVfUEFSTV9ERVNDKHZtX2RlYnVnLCAiRGVidWcgVk0gaGFuZGxpbmcgKDAg PSBkaXNhYmxlZCAoZGVmYXVsdCksIDEgPSBlbmFibGVkKSIpOwogbW9kdWxlX3BhcmFtX25hbWVk KHZtX2RlYnVnLCBhbWRncHVfdm1fZGVidWcsIGludCwgMDY0NCk7CiAKK01PRFVMRV9QQVJNX0RF U0ModnJhbV9wYWdlX3NwbGl0LCAiTnVtYmVyIG9mIHBhZ2VzIGFmdGVyIHdlIHNwbGl0IFZSQU0g YWxsb2NhdGlvbnMgKGRlZmF1bHQgMTAyNCkiKTsKK21vZHVsZV9wYXJhbV9uYW1lZCh2cmFtX3Bh Z2Vfc3BsaXQsIGFtZGdwdV92cmFtX3BhZ2Vfc3BsaXQsIGludCwgMDQ0NCk7CisKIE1PRFVMRV9Q QVJNX0RFU0MoZXhwX2h3X3N1cHBvcnQsICJleHBlcmltZW50YWwgaHcgc3VwcG9ydCAoMSA9IGVu YWJsZSwgMCA9IGRpc2FibGUgKGRlZmF1bHQpKSIpOwogbW9kdWxlX3BhcmFtX25hbWVkKGV4cF9o d19zdXBwb3J0LCBhbWRncHVfZXhwX2h3X3N1cHBvcnQsIGludCwgMDQ0NCk7CiAKZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9vYmplY3QuYyBiL2RyaXZlcnMv Z3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9vYmplY3QuYwppbmRleCAwM2M2YmZjLi5kNmU2Yzkz IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfb2JqZWN0LmMK KysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X29iamVjdC5jCkBAIC05NzAs NiArOTcwLDcgQEAgdTY0IGFtZGdwdV9ib19ncHVfb2Zmc2V0KHN0cnVjdCBhbWRncHVfYm8gKmJv KQogCVdBUk5fT05fT05DRShiby0+dGJvLm1lbS5zdGFydCA9PSBBTURHUFVfQk9fSU5WQUxJRF9P RkZTRVQpOwogCVdBUk5fT05fT05DRShiby0+dGJvLm1lbS5tZW1fdHlwZSA9PSBUVE1fUExfVlJB TSAmJgogCQkgICAgICEoYm8tPmZsYWdzICYgQU1ER1BVX0dFTV9DUkVBVEVfVlJBTV9DT05USUdV T1VTKSk7CisJV0FSTl9PTl9PTkNFKGJvLT50Ym8ubWVtLnN0YXJ0ID09IEFNREdQVV9CT19JTlZB TElEX09GRlNFVCk7CiAKIAlyZXR1cm4gYm8tPnRiby5vZmZzZXQ7CiB9CmRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdHRtLmMgYi9kcml2ZXJzL2dwdS9kcm0v YW1kL2FtZGdwdS9hbWRncHVfdHRtLmMKaW5kZXggNGI4YjM5Yy4uNDI4ZmZiNiAxMDA2NDQKLS0t IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3R0bS5jCisrKyBiL2RyaXZlcnMv Z3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV90dG0uYwpAQCAtMTY4LDcgKzE2OCw3IEBAIHN0YXRp YyBpbnQgYW1kZ3B1X2luaXRfbWVtX3R5cGUoc3RydWN0IHR0bV9ib19kZXZpY2UgKmJkZXYsIHVp bnQzMl90IHR5cGUsCiAJCWJyZWFrOwogCWNhc2UgVFRNX1BMX1ZSQU06CiAJCS8qICJPbi1jYXJk IiB2aWRlbyByYW0gKi8KLQkJbWFuLT5mdW5jID0gJnR0bV9ib19tYW5hZ2VyX2Z1bmM7CisJCW1h bi0+ZnVuYyA9ICZhbWRncHVfdnJhbV9tZ3JfZnVuYzsKIAkJbWFuLT5ncHVfb2Zmc2V0ID0gYWRl di0+bWMudnJhbV9zdGFydDsKIAkJbWFuLT5mbGFncyA9IFRUTV9NRU1UWVBFX0ZMQUdfRklYRUQg fAogCQkJICAgICBUVE1fTUVNVFlQRV9GTEFHX01BUFBBQkxFOwpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3R0bS5oIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9h bWRncHUvYW1kZ3B1X3R0bS5oCmluZGV4IDk4MTJjODAuLmQxYzAwYzAgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV90dG0uaAorKysgYi9kcml2ZXJzL2dwdS9k cm0vYW1kL2FtZGdwdS9hbWRncHVfdHRtLmgKQEAgLTY2LDYgKzY2LDcgQEAgc3RydWN0IGFtZGdw dV9tbWFuIHsKIH07CiAKIGV4dGVybiBjb25zdCBzdHJ1Y3QgdHRtX21lbV90eXBlX21hbmFnZXJf ZnVuYyBhbWRncHVfZ3R0X21ncl9mdW5jOworZXh0ZXJuIGNvbnN0IHN0cnVjdCB0dG1fbWVtX3R5 cGVfbWFuYWdlcl9mdW5jIGFtZGdwdV92cmFtX21ncl9mdW5jOwogCiBpbnQgYW1kZ3B1X2d0dF9t Z3JfYWxsb2Moc3RydWN0IHR0bV9tZW1fdHlwZV9tYW5hZ2VyICptYW4sCiAJCQkgc3RydWN0IHR0 bV9idWZmZXJfb2JqZWN0ICp0Ym8sCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Ft ZGdwdS9hbWRncHVfdnJhbV9tZ3IuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdw dV92cmFtX21nci5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjExMjVmN2YK LS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdnJh bV9tZ3IuYwpAQCAtMCwwICsxLDIyMiBAQAorLyoKKyAqIENvcHlyaWdodCAyMDE1IEFkdmFuY2Vk IE1pY3JvIERldmljZXMsIEluYy4KKyAqCisgKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVk LCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQorICogY29weSBvZiB0 aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29m dHdhcmUiKSwKKyAqIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24s IGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24KKyAqIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5 LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLAorICogYW5k L29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRv IHdob20gdGhlCisgKiBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8g dGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgorICoKKyAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90 aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluCisgKiBh bGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4KKyAqCisg KiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBB TlkgS0lORCwgRVhQUkVTUyBPUgorICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRF RCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCisgKiBGSVRORVNTIEZPUiBB IFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiAgSU4gTk8gRVZFTlQgU0hB TEwKKyAqIFRIRSBDT1BZUklHSFQgSE9MREVSKFMpIE9SIEFVVEhPUihTKSBCRSBMSUFCTEUgRk9S IEFOWSBDTEFJTSwgREFNQUdFUyBPUgorICogT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFO IEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsCisgKiBBUklTSU5HIEZST00s IE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IK KyAqIE9USEVSIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4KKyAqCisgKiBBdXRob3JzOiBDaHJp c3RpYW4gS8O2bmlnCisgKi8KKworI2luY2x1ZGUgPGRybS9kcm1QLmg+CisjaW5jbHVkZSAiYW1k Z3B1LmgiCisKK3N0cnVjdCBhbWRncHVfdnJhbV9tZ3IgeworCXN0cnVjdCBkcm1fbW0gbW07CisJ c3BpbmxvY2tfdCBsb2NrOworfTsKKworLyoqCisgKiBhbWRncHVfdnJhbV9tZ3JfaW5pdCAtIGlu aXQgVlJBTSBtYW5hZ2VyIGFuZCBEUk0gTU0KKyAqCisgKiBAbWFuOiBUVE0gbWVtb3J5IHR5cGUg bWFuYWdlcgorICogQHBfc2l6ZTogbWF4aW11bSBzaXplIG9mIFZSQU0KKyAqCisgKiBBbGxvY2F0 ZSBhbmQgaW5pdGlhbGl6ZSB0aGUgVlJBTSBtYW5hZ2VyLgorICovCitzdGF0aWMgaW50IGFtZGdw dV92cmFtX21ncl9pbml0KHN0cnVjdCB0dG1fbWVtX3R5cGVfbWFuYWdlciAqbWFuLAorCQkJCXVu c2lnbmVkIGxvbmcgcF9zaXplKQoreworCXN0cnVjdCBhbWRncHVfdnJhbV9tZ3IgKm1ncjsKKwor CW1nciA9IGt6YWxsb2Moc2l6ZW9mKCptZ3IpLCBHRlBfS0VSTkVMKTsKKwlpZiAoIW1ncikKKwkJ cmV0dXJuIC1FTk9NRU07CisKKwlkcm1fbW1faW5pdCgmbWdyLT5tbSwgMCwgcF9zaXplKTsKKwlz cGluX2xvY2tfaW5pdCgmbWdyLT5sb2NrKTsKKwltYW4tPnByaXYgPSBtZ3I7CisJcmV0dXJuIDA7 Cit9CisKKy8qKgorICogYW1kZ3B1X3ZyYW1fbWdyX2ZpbmkgLSBmcmVlIGFuZCBkZXN0cm95IFZS QU0gbWFuYWdlcgorICoKKyAqIEBtYW46IFRUTSBtZW1vcnkgdHlwZSBtYW5hZ2VyCisgKgorICog RGVzdHJveSBhbmQgZnJlZSB0aGUgVlJBTSBtYW5hZ2VyLCByZXR1cm5zIC1FQlVTWSBpZiByYW5n ZXMgYXJlIHN0aWxsCisgKiBhbGxvY2F0ZWQgaW5zaWRlIGl0LgorICovCitzdGF0aWMgaW50IGFt ZGdwdV92cmFtX21ncl9maW5pKHN0cnVjdCB0dG1fbWVtX3R5cGVfbWFuYWdlciAqbWFuKQorewor CXN0cnVjdCBhbWRncHVfdnJhbV9tZ3IgKm1nciA9IG1hbi0+cHJpdjsKKworCXNwaW5fbG9jaygm bWdyLT5sb2NrKTsKKwlpZiAoIWRybV9tbV9jbGVhbigmbWdyLT5tbSkpIHsKKwkJc3Bpbl91bmxv Y2soJm1nci0+bG9jayk7CisJCXJldHVybiAtRUJVU1k7CisJfQorCisJZHJtX21tX3Rha2Vkb3du KCZtZ3ItPm1tKTsKKwlzcGluX3VubG9jaygmbWdyLT5sb2NrKTsKKwlrZnJlZShtZ3IpOworCW1h bi0+cHJpdiA9IE5VTEw7CisJcmV0dXJuIDA7Cit9CisKKy8qKgorICogYW1kZ3B1X3ZyYW1fbWdy X25ldyAtIGFsbG9jYXRlIG5ldyByYW5nZXMKKyAqCisgKiBAbWFuOiBUVE0gbWVtb3J5IHR5cGUg bWFuYWdlcgorICogQHRibzogVFRNIEJPIHdlIG5lZWQgdGhpcyByYW5nZSBmb3IKKyAqIEBwbGFj ZTogcGxhY2VtZW50IGZsYWdzIGFuZCByZXN0cmljdGlvbnMKKyAqIEBtZW06IHRoZSByZXN1bHRp bmcgbWVtIG9iamVjdAorICoKKyAqIEFsbG9jYXRlIFZSQU0gZm9yIHRoZSBnaXZlbiBCTy4KKyAq Lworc3RhdGljIGludCBhbWRncHVfdnJhbV9tZ3JfbmV3KHN0cnVjdCB0dG1fbWVtX3R5cGVfbWFu YWdlciAqbWFuLAorCQkJICAgICAgIHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqdGJvLAorCQkJ ICAgICAgIGNvbnN0IHN0cnVjdCB0dG1fcGxhY2UgKnBsYWNlLAorCQkJICAgICAgIHN0cnVjdCB0 dG1fbWVtX3JlZyAqbWVtKQoreworCXN0cnVjdCBhbWRncHVfYm8gKmJvID0gY29udGFpbmVyX29m KHRibywgc3RydWN0IGFtZGdwdV9ibywgdGJvKTsKKwlzdHJ1Y3QgYW1kZ3B1X3ZyYW1fbWdyICpt Z3IgPSBtYW4tPnByaXY7CisJc3RydWN0IGRybV9tbSAqbW0gPSAmbWdyLT5tbTsKKwlzdHJ1Y3Qg ZHJtX21tX25vZGUgKm5vZGVzOworCWVudW0gZHJtX21tX3NlYXJjaF9mbGFncyBzZmxhZ3MgPSBE Uk1fTU1fU0VBUkNIX0RFRkFVTFQ7CisJZW51bSBkcm1fbW1fYWxsb2NhdG9yX2ZsYWdzIGFmbGFn cyA9IERSTV9NTV9DUkVBVEVfREVGQVVMVDsKKwl1bnNpZ25lZCBsb25nIGxwZm4sIG51bV9ub2Rl cywgcGFnZXNfcGVyX25vZGUsIHBhZ2VzX2xlZnQ7CisJdW5zaWduZWQgaTsKKwlpbnQgcjsKKwor CWxwZm4gPSBwbGFjZS0+bHBmbjsKKwlpZiAoIWxwZm4pCisJCWxwZm4gPSBtYW4tPnNpemU7CisK KwlpZiAoYm8tPmZsYWdzICYgQU1ER1BVX0dFTV9DUkVBVEVfVlJBTV9DT05USUdVT1VTIHx8CisJ ICAgIGFtZGdwdV92cmFtX3BhZ2Vfc3BsaXQgPT0gLTEpIHsKKwkJcGFnZXNfcGVyX25vZGUgPSB+ MHVsOworCQludW1fbm9kZXMgPSAxOworCX0gZWxzZSB7CisJCXBhZ2VzX3Blcl9ub2RlID0gbWF4 KCh1aW50MzJfdClhbWRncHVfdnJhbV9wYWdlX3NwbGl0LAorCQkJCSAgICAgbWVtLT5wYWdlX2Fs aWdubWVudCk7CisJCW51bV9ub2RlcyA9IERJVl9ST1VORF9VUChtZW0tPm51bV9wYWdlcywgcGFn ZXNfcGVyX25vZGUpOworCX0KKworCW5vZGVzID0ga2NhbGxvYyhudW1fbm9kZXMsIHNpemVvZigq bm9kZXMpLCBHRlBfS0VSTkVMKTsKKwlpZiAoIW5vZGVzKQorCQlyZXR1cm4gLUVOT01FTTsKKwor CWlmIChwbGFjZS0+ZmxhZ3MgJiBUVE1fUExfRkxBR19UT1BET1dOKSB7CisJCXNmbGFncyA9IERS TV9NTV9TRUFSQ0hfQkVMT1c7CisJCWFmbGFncyA9IERSTV9NTV9DUkVBVEVfVE9QOworCX0KKwor CXBhZ2VzX2xlZnQgPSBtZW0tPm51bV9wYWdlczsKKworCXNwaW5fbG9jaygmbWdyLT5sb2NrKTsK Kwlmb3IgKGkgPSAwOyBpIDwgbnVtX25vZGVzOyArK2kpIHsKKwkJdW5zaWduZWQgbG9uZyBwYWdl cyA9IG1pbihwYWdlc19sZWZ0LCBwYWdlc19wZXJfbm9kZSk7CisJCXVpbnQzMl90IGFsaWdubWVu dCA9IG1lbS0+cGFnZV9hbGlnbm1lbnQ7CisKKwkJaWYgKHBhZ2VzID09IHBhZ2VzX3Blcl9ub2Rl KQorCQkJYWxpZ25tZW50ID0gcGFnZXNfcGVyX25vZGU7CisJCWVsc2UKKwkJCXNmbGFncyB8PSBE Uk1fTU1fU0VBUkNIX0JFU1Q7CisKKwkJciA9IGRybV9tbV9pbnNlcnRfbm9kZV9pbl9yYW5nZV9n ZW5lcmljKG1tLCAmbm9kZXNbaV0sIHBhZ2VzLAorCQkJCQkJCWFsaWdubWVudCwgMCwKKwkJCQkJ CQlwbGFjZS0+ZnBmbiwgbHBmbiwKKwkJCQkJCQlzZmxhZ3MsIGFmbGFncyk7CisJCWlmICh1bmxp a2VseShyKSkKKwkJCWdvdG8gZXJyb3I7CisKKwkJcGFnZXNfbGVmdCAtPSBwYWdlczsKKwl9CisJ c3Bpbl91bmxvY2soJm1nci0+bG9jayk7CisKKwltZW0tPnN0YXJ0ID0gbnVtX25vZGVzID09IDEg PyBub2Rlc1swXS5zdGFydCA6IEFNREdQVV9CT19JTlZBTElEX09GRlNFVDsKKwltZW0tPm1tX25v ZGUgPSBub2RlczsKKworCXJldHVybiAwOworCitlcnJvcjoKKwl3aGlsZSAoaS0tKQorCQlkcm1f bW1fcmVtb3ZlX25vZGUoJm5vZGVzW2ldKTsKKwlzcGluX3VubG9jaygmbWdyLT5sb2NrKTsKKwor CWtmcmVlKG5vZGVzKTsKKwlyZXR1cm4gciA9PSAtRU5PU1BDID8gMCA6IHI7Cit9CisKKy8qKgor ICogYW1kZ3B1X3ZyYW1fbWdyX2RlbCAtIGZyZWUgcmFuZ2VzCisgKgorICogQG1hbjogVFRNIG1l bW9yeSB0eXBlIG1hbmFnZXIKKyAqIEB0Ym86IFRUTSBCTyB3ZSBuZWVkIHRoaXMgcmFuZ2UgZm9y CisgKiBAcGxhY2U6IHBsYWNlbWVudCBmbGFncyBhbmQgcmVzdHJpY3Rpb25zCisgKiBAbWVtOiBU VE0gbWVtb3J5IG9iamVjdAorICoKKyAqIEZyZWUgdGhlIGFsbG9jYXRlZCBWUkFNIGFnYWluLgor ICovCitzdGF0aWMgdm9pZCBhbWRncHVfdnJhbV9tZ3JfZGVsKHN0cnVjdCB0dG1fbWVtX3R5cGVf bWFuYWdlciAqbWFuLAorCQkJCXN0cnVjdCB0dG1fbWVtX3JlZyAqbWVtKQoreworCXN0cnVjdCBh bWRncHVfdnJhbV9tZ3IgKm1nciA9IG1hbi0+cHJpdjsKKwlzdHJ1Y3QgZHJtX21tX25vZGUgKm5v ZGVzID0gbWVtLT5tbV9ub2RlOworCXVuc2lnbmVkIHBhZ2VzID0gbWVtLT5udW1fcGFnZXM7CisK KwlpZiAoIW1lbS0+bW1fbm9kZSkKKwkJcmV0dXJuOworCisJc3Bpbl9sb2NrKCZtZ3ItPmxvY2sp OworCXdoaWxlIChwYWdlcykgeworCQlwYWdlcyAtPSBub2Rlcy0+c2l6ZTsKKwkJZHJtX21tX3Jl bW92ZV9ub2RlKG5vZGVzKTsKKwkJKytub2RlczsKKwl9CisJc3Bpbl91bmxvY2soJm1nci0+bG9j ayk7CisKKwlrZnJlZShtZW0tPm1tX25vZGUpOworCW1lbS0+bW1fbm9kZSA9IE5VTEw7Cit9CisK Ky8qKgorICogYW1kZ3B1X3ZyYW1fbWdyX2RlYnVnIC0gZHVtcCBWUkFNIHRhYmxlCisgKgorICog QG1hbjogVFRNIG1lbW9yeSB0eXBlIG1hbmFnZXIKKyAqIEBwcmVmaXg6IHRleHQgcHJlZml4Cisg KgorICogRHVtcCB0aGUgdGFibGUgY29udGVudCB1c2luZyBwcmludGsuCisgKi8KK3N0YXRpYyB2 b2lkIGFtZGdwdV92cmFtX21ncl9kZWJ1ZyhzdHJ1Y3QgdHRtX21lbV90eXBlX21hbmFnZXIgKm1h biwKKwkJCQkgIGNvbnN0IGNoYXIgKnByZWZpeCkKK3sKKwlzdHJ1Y3QgYW1kZ3B1X3ZyYW1fbWdy ICptZ3IgPSBtYW4tPnByaXY7CisKKwlzcGluX2xvY2soJm1nci0+bG9jayk7CisJZHJtX21tX2Rl YnVnX3RhYmxlKCZtZ3ItPm1tLCBwcmVmaXgpOworCXNwaW5fdW5sb2NrKCZtZ3ItPmxvY2spOwor fQorCitjb25zdCBzdHJ1Y3QgdHRtX21lbV90eXBlX21hbmFnZXJfZnVuYyBhbWRncHVfdnJhbV9t Z3JfZnVuYyA9IHsKKwlhbWRncHVfdnJhbV9tZ3JfaW5pdCwKKwlhbWRncHVfdnJhbV9tZ3JfZmlu aSwKKwlhbWRncHVfdnJhbV9tZ3JfbmV3LAorCWFtZGdwdV92cmFtX21ncl9kZWwsCisJYW1kZ3B1 X3ZyYW1fbWdyX2RlYnVnCit9Owo=