From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?UTF-8?q?Micha=C5=82=20Winiarski?= Subject: [PATCH v5] drm/i915: Avoid writing relocs with addresses in non-canonical form Date: Tue, 22 Dec 2015 12:00:24 +0100 Message-ID: <1450782024-21707-1-git-send-email-michal.winiarski@intel.com> References: <1450468863-9268-1-git-send-email-michal.winiarski@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by gabe.freedesktop.org (Postfix) with ESMTP id 0985072007 for ; Tue, 22 Dec 2015 03:00:32 -0800 (PST) In-Reply-To: <1450468863-9268-1-git-send-email-michal.winiarski@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org QWNjb3JkaW5nIHRvIGJzcGVjLCBzb21lIHBhcnRzIG9mIEhXIHJlcXVpcmUgdGhlIGFkZHJlc3Nl cyB0byBiZSBpbgphIGNhbm9uaWNhbCBmb3JtLCB3aGVyZSBiaXRzIFs2Mzo0OF0gPT0gWzQ3XS4g TGV0J3MgY29udmVydCBhZGRyZXNzZXMgdG8KY2Fub25pY2FsIGZvcm0gcHJpb3IgdG8gcmVsb2Nh dGluZyBhbmQgcmV0dXJuIGNvbnZlcnRlZCBvZmZzZXRzIHRvCnVzZXJzcGFjZS4gV2UgYWxzbyBu ZWVkIHRvIG1ha2Ugc3VyZSB0aGF0IHVzZXJzcGFjZSBpcyB1c2luZyBhZGRyZXNzZXMKaW4gY2Fu b25pY2FsIGZvcm0gaW4gY2FzZSBvZiBzb2Z0cGluLgoKdjI6IFdoaXRlc3BhY2UgZml4dXAsIGdl bjhfY2Fub25pY2FsX2FkZHIgZGVzY3JpcHRpb24gKENocmlzLCBWaWxsZSkKdjM6IFJlYmFzZSBv biB0b3Agb2Ygc29mdHBpbiwgZml4IGEgaG9sZSBpbiByZWxvY2F0ZV9lbnRyeSwKICAgIHMvZXhw ZWN0L3JlcXVpcmUgKENocmlzKQp2NDogSGFuZGxlIHNvZnRwaW4gaW4gdmFsaWRhdGVfZXhlY19s aXN0IChDaHJpcykKdjU6IENvbnZlcnQgYmFjayB0byBjYW5vbmljYWwgZm9ybSBhdCBjb3B5X3Rv X3VzZXIgdGltZSAoQ2hyaXMpCgpDYzogQ2hyaXMgV2lsc29uIDxjaHJpc0BjaHJpcy13aWxzb24u Y28udWs+CkNjOiBNaWNoZWwgVGhpZXJyeSA8bWljaGVsLnRoaWVycnlAaW50ZWwuY29tPgpDYzog VmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KU2lnbmVkLW9m Zi1ieTogTWljaGHFgiBXaW5pYXJza2kgPG1pY2hhbC53aW5pYXJza2lAaW50ZWwuY29tPgotLS0K IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2V4ZWNidWZmZXIuYyB8IDEwNyArKysrKysr KysrKysrKysrKystLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDY2IGluc2VydGlvbnMoKyks IDQxIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf Z2VtX2V4ZWNidWZmZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2V4ZWNidWZm ZXIuYwppbmRleCA1ZDAxZWE2Li5jOTA2MjMyIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2dlbV9leGVjYnVmZmVyLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9nZW1fZXhlY2J1ZmZlci5jCkBAIC0yNDksNiArMjQ5LDI1IEBAIHN0YXRpYyBpbmxpbmUgaW50 IHVzZV9jcHVfcmVsb2Moc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaikKIAkJb2JqLT5j YWNoZV9sZXZlbCAhPSBJOTE1X0NBQ0hFX05PTkUpOwogfQogCisvKiBVc2VkIHRvIGNvbnZlcnQg YW55IGFkZHJlc3MgdG8gY2Fub25pY2FsIGZvcm0uCisgKiBTdGFydGluZyBmcm9tIGdlbjgsIHNv bWUgY29tbWFuZHMgKGUuZy4gU1RBVEVfQkFTRV9BRERSRVNTLAorICogTUlfTE9BRF9SRUdJU1RF Ul9NRU0gYW5kIG90aGVycywgc2VlIEJyb2Fkd2VsbCBQUk0gVm9sMmEpIHJlcXVpcmUgdGhlCisg KiBhZGRyZXNzZXMgdG8gYmUgaW4gYSBjYW5vbmljYWwgZm9ybToKKyAqICJHcmFwaGljc0FkZHJl c3NbNjM6NDhdIGFyZSBpZ25vcmVkIGJ5IHRoZSBIVyBhbmQgYXNzdW1lZCB0byBiZSBpbiBjb3Jy ZWN0CisgKiBjYW5vbmljYWwgZm9ybSBbNjM6NDhdID09IFs0N10uIgorICovCitzdGF0aWMgaW5s aW5lIHVpbnQ2NF90IGdlbjhfY2Fub25pY2FsX2FkZHIodWludDY0X3QgYWRkcmVzcykKK3sKKwly ZXR1cm4gKChpbnQ2NF90KWFkZHJlc3MgPDwgMTYpID4+IDE2OworfQorCitzdGF0aWMgaW5saW5l IHVpbnQ2NF90CityZWxvY2F0aW9uX3RhcmdldChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlbG9jYXRp b25fZW50cnkgKnJlbG9jLAorCQkgIHVpbnQ2NF90IHRhcmdldF9vZmZzZXQpCit7CisJcmV0dXJu IGdlbjhfY2Fub25pY2FsX2FkZHIoKGludClyZWxvYy0+ZGVsdGEgKyB0YXJnZXRfb2Zmc2V0KTsK K30KKwogc3RhdGljIGludAogcmVsb2NhdGVfZW50cnlfY3B1KHN0cnVjdCBkcm1faTkxNV9nZW1f b2JqZWN0ICpvYmosCiAJCSAgIHN0cnVjdCBkcm1faTkxNV9nZW1fcmVsb2NhdGlvbl9lbnRyeSAq cmVsb2MsCkBAIC0yNTYsNyArMjc1LDcgQEAgcmVsb2NhdGVfZW50cnlfY3B1KHN0cnVjdCBkcm1f aTkxNV9nZW1fb2JqZWN0ICpvYmosCiB7CiAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IG9iai0+ YmFzZS5kZXY7CiAJdWludDMyX3QgcGFnZV9vZmZzZXQgPSBvZmZzZXRfaW5fcGFnZShyZWxvYy0+ b2Zmc2V0KTsKLQl1aW50NjRfdCBkZWx0YSA9IHJlbG9jLT5kZWx0YSArIHRhcmdldF9vZmZzZXQ7 CisJdWludDY0X3QgZGVsdGEgPSByZWxvY2F0aW9uX3RhcmdldChyZWxvYywgdGFyZ2V0X29mZnNl dCk7CiAJY2hhciAqdmFkZHI7CiAJaW50IHJldDsKIApAQCAtMjkyLDcgKzMxMSw3IEBAIHJlbG9j YXRlX2VudHJ5X2d0dChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqLAogewogCXN0cnVj dCBkcm1fZGV2aWNlICpkZXYgPSBvYmotPmJhc2UuZGV2OwogCXN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7Ci0JdWludDY0X3QgZGVsdGEgPSByZWxv Yy0+ZGVsdGEgKyB0YXJnZXRfb2Zmc2V0OworCXVpbnQ2NF90IGRlbHRhID0gcmVsb2NhdGlvbl90 YXJnZXQocmVsb2MsIHRhcmdldF9vZmZzZXQpOwogCXVpbnQ2NF90IG9mZnNldDsKIAl2b2lkIF9f aW9tZW0gKnJlbG9jX3BhZ2U7CiAJaW50IHJldDsKQEAgLTM0Nyw3ICszNjYsNyBAQCByZWxvY2F0 ZV9lbnRyeV9jbGZsdXNoKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmosCiB7CiAJc3Ry dWN0IGRybV9kZXZpY2UgKmRldiA9IG9iai0+YmFzZS5kZXY7CiAJdWludDMyX3QgcGFnZV9vZmZz ZXQgPSBvZmZzZXRfaW5fcGFnZShyZWxvYy0+b2Zmc2V0KTsKLQl1aW50NjRfdCBkZWx0YSA9IChp bnQpcmVsb2MtPmRlbHRhICsgdGFyZ2V0X29mZnNldDsKKwl1aW50NjRfdCBkZWx0YSA9IHJlbG9j YXRpb25fdGFyZ2V0KHJlbG9jLCB0YXJnZXRfb2Zmc2V0KTsKIAljaGFyICp2YWRkcjsKIAlpbnQg cmV0OwogCkBAIC0zOTUsNyArNDE0LDcgQEAgaTkxNV9nZW1fZXhlY2J1ZmZlcl9yZWxvY2F0ZV9l bnRyeShzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqLAogCXRhcmdldF9pOTE1X29iaiA9 IHRhcmdldF92bWEtPm9iajsKIAl0YXJnZXRfb2JqID0gJnRhcmdldF92bWEtPm9iai0+YmFzZTsK IAotCXRhcmdldF9vZmZzZXQgPSB0YXJnZXRfdm1hLT5ub2RlLnN0YXJ0OworCXRhcmdldF9vZmZz ZXQgPSBnZW44X2Nhbm9uaWNhbF9hZGRyKHRhcmdldF92bWEtPm5vZGUuc3RhcnQpOwogCiAJLyog U2FuZHlicmlkZ2UgUFBHVFQgZXJyYXRhOiBXZSBuZWVkIGEgZ2xvYmFsIGd0dCBtYXBwaW5nIGZv ciBNSSBhbmQKIAkgKiBwaXBlX2NvbnRyb2wgd3JpdGVzIGJlY2F1c2UgdGhlIGdwdSBkb2Vzbid0 IHByb3Blcmx5IHJlZGlyZWN0IHRoZW0KQEAgLTk5NCw2ICsxMDEzLDE4IEBAIHZhbGlkYXRlX2V4 ZWNfbGlzdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCQlpZiAoZXhlY1tpXS5mbGFncyAmIGlu dmFsaWRfZmxhZ3MpCiAJCQlyZXR1cm4gLUVJTlZBTDsKIAorCQkvKiBPZmZzZXQgY2FuIGJlIHVz ZWQgYXMgaW5wdXQgKEVYRUNfT0JKRUNUX1BJTk5FRCksIHNpbmNlCisJCSAqIHVzZXJzcGFjZSBo YXMgdG8gdXNlIGNhbm9uaWNhbCBmb3JtYXQsIHdlIG5lZWQgdG8gcmVqZWN0IGFsbAorCQkgKiBu b24tY2Fub25pY2FsIGFkZHJlc3Nlcy4KKwkJICovCisJCWlmIChleGVjW2ldLm9mZnNldCAhPSBn ZW44X2Nhbm9uaWNhbF9hZGRyKGV4ZWNbaV0ub2Zmc2V0KSkKKwkJCXJldHVybiAtRUlOVkFMOwor CisJCS8qIE9uIHRoZSBvdGhlciBoYW5kLCBmcm9tIGRybV9tbSBwZXJzcGVjdGl2ZSBhZGRyZXNz IHNwYWNlIGlzCisJCSAqIGNvbnRpbnVvdXMsIHNvIHdlJ3JlIGNvbnZlcnRpbmcgdG8gbm9uLWNh bm9uaWNhbCBmb3JtCisJCSAqLworCQlleGVjW2ldLm9mZnNldCAmPSAoMVVMTCA8PCA0OCkgLSAx OworCiAJCWlmIChleGVjW2ldLmFsaWdubWVudCAmJiAhaXNfcG93ZXJfb2ZfMihleGVjW2ldLmFs aWdubWVudCkpCiAJCQlyZXR1cm4gLUVJTlZBTDsKIApAQCAtMTYxNyw2ICsxNjQ4LDI5IEBAIHBy ZV9tdXRleF9lcnI6CiAJcmV0dXJuIHJldDsKIH0KIAorc3RhdGljIGlubGluZSBpbnQKK19faTkx NV9nZW1fZXhlY2xpc3RfY29weV90b191c2VyKHN0cnVjdCBkcm1faTkxNV9nZW1fZXhlY2J1ZmZl cjIgKmFyZ3MsCisJCQkJIHN0cnVjdCBkcm1faTkxNV9nZW1fZXhlY19vYmplY3QyICpleGVjMl9s aXN0KQoreworCXN0cnVjdCBkcm1faTkxNV9nZW1fZXhlY19vYmplY3QyIF9fdXNlciAqdXNlcl9l eGVjX2xpc3QgPQorCQkJICAgdG9fdXNlcl9wdHIoYXJncy0+YnVmZmVyc19wdHIpOworCWludCBp OworCisJZm9yIChpID0gMDsgaSA8IGFyZ3MtPmJ1ZmZlcl9jb3VudDsgaSsrKSB7CisJCS8qIFVz ZXJzcGFjZSB1c2VzIGFkZHJlc3NlcyBpbiBjYW5vbmljYWwgZm9ybSAqLworCQlleGVjMl9saXN0 W2ldLm9mZnNldCA9IGdlbjhfY2Fub25pY2FsX2FkZHIoZXhlYzJfbGlzdFtpXS5vZmZzZXQpOwor CQlpZiAoX19jb3B5X3RvX3VzZXIoJnVzZXJfZXhlY19saXN0W2ldLm9mZnNldCwKKwkJCQkgICAm ZXhlYzJfbGlzdFtpXS5vZmZzZXQsCisJCQkJICAgc2l6ZW9mKHVzZXJfZXhlY19saXN0W2ldLm9m ZnNldCkpKSB7CisJCQlEUk1fREVCVUcoImZhaWxlZCB0byBjb3B5ICVkIGV4ZWMgZW50cmllcyBi YWNrIHRvIHVzZXJcbiIsCisJCQkJICBhcmdzLT5idWZmZXJfY291bnQpOworCQkJcmV0dXJuIC1F RkFVTFQ7CisJCX0KKwl9CisKKwlyZXR1cm4gMDsKK30KKwogLyoKICAqIExlZ2FjeSBleGVjYnVm ZmVyIGp1c3QgY3JlYXRlcyBhbiBleGVjMiBsaXN0IGZyb20gdGhlIG9yaWdpbmFsIGV4ZWMgb2Jq ZWN0CiAgKiBsaXN0IGFycmF5IGFuZCBwYXNzZXMgaXQgdG8gdGhlIHJlYWwgZnVuY3Rpb24uCkBA IC0xNjgxLDI0ICsxNzM1LDEwIEBAIGk5MTVfZ2VtX2V4ZWNidWZmZXIoc3RydWN0IGRybV9kZXZp Y2UgKmRldiwgdm9pZCAqZGF0YSwKIAlpOTE1X2V4ZWNidWZmZXIyX3NldF9jb250ZXh0X2lkKGV4 ZWMyLCAwKTsKIAogCXJldCA9IGk5MTVfZ2VtX2RvX2V4ZWNidWZmZXIoZGV2LCBkYXRhLCBmaWxl LCAmZXhlYzIsIGV4ZWMyX2xpc3QpOwotCWlmICghcmV0KSB7Ci0JCXN0cnVjdCBkcm1faTkxNV9n ZW1fZXhlY19vYmplY3QgX191c2VyICp1c2VyX2V4ZWNfbGlzdCA9Ci0JCQl0b191c2VyX3B0cihh cmdzLT5idWZmZXJzX3B0cik7Ci0KLQkJLyogQ29weSB0aGUgbmV3IGJ1ZmZlciBvZmZzZXRzIGJh Y2sgdG8gdGhlIHVzZXIncyBleGVjIGxpc3QuICovCi0JCWZvciAoaSA9IDA7IGkgPCBhcmdzLT5i dWZmZXJfY291bnQ7IGkrKykgewotCQkJcmV0ID0gX19jb3B5X3RvX3VzZXIoJnVzZXJfZXhlY19s aXN0W2ldLm9mZnNldCwKLQkJCQkJICAgICAmZXhlYzJfbGlzdFtpXS5vZmZzZXQsCi0JCQkJCSAg ICAgc2l6ZW9mKHVzZXJfZXhlY19saXN0W2ldLm9mZnNldCkpOwotCQkJaWYgKHJldCkgewotCQkJ CXJldCA9IC1FRkFVTFQ7Ci0JCQkJRFJNX0RFQlVHKCJmYWlsZWQgdG8gY29weSAlZCBleGVjIGVu dHJpZXMgIgotCQkJCQkgICJiYWNrIHRvIHVzZXIgKCVkKVxuIiwKLQkJCQkJICBhcmdzLT5idWZm ZXJfY291bnQsIHJldCk7Ci0JCQkJYnJlYWs7Ci0JCQl9Ci0JCX0KLQl9CisKKwkvKiBDb3B5IHRo ZSBuZXcgYnVmZmVyIG9mZnNldHMgYmFjayB0byB0aGUgdXNlcidzIGV4ZWMgbGlzdC4gKi8KKwlp ZiAoIXJldCkKKwkJcmV0ID0gX19pOTE1X2dlbV9leGVjbGlzdF9jb3B5X3RvX3VzZXIoJmV4ZWMy LCBleGVjMl9saXN0KTsKIAogCWRybV9mcmVlX2xhcmdlKGV4ZWNfbGlzdCk7CiAJZHJtX2ZyZWVf bGFyZ2UoZXhlYzJfbGlzdCk7CkBAIC0xNzQ1LDI1ICsxNzg1LDEwIEBAIGk5MTVfZ2VtX2V4ZWNi dWZmZXIyKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCiAJfQogCiAJcmV0ID0g aTkxNV9nZW1fZG9fZXhlY2J1ZmZlcihkZXYsIGRhdGEsIGZpbGUsIGFyZ3MsIGV4ZWMyX2xpc3Qp OwotCWlmICghcmV0KSB7Ci0JCS8qIENvcHkgdGhlIG5ldyBidWZmZXIgb2Zmc2V0cyBiYWNrIHRv IHRoZSB1c2VyJ3MgZXhlYyBsaXN0LiAqLwotCQlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX2V4ZWNfb2Jq ZWN0MiBfX3VzZXIgKnVzZXJfZXhlY19saXN0ID0KLQkJCQkgICB0b191c2VyX3B0cihhcmdzLT5i dWZmZXJzX3B0cik7Ci0JCWludCBpOwotCi0JCWZvciAoaSA9IDA7IGkgPCBhcmdzLT5idWZmZXJf Y291bnQ7IGkrKykgewotCQkJcmV0ID0gX19jb3B5X3RvX3VzZXIoJnVzZXJfZXhlY19saXN0W2ld Lm9mZnNldCwKLQkJCQkJICAgICAmZXhlYzJfbGlzdFtpXS5vZmZzZXQsCi0JCQkJCSAgICAgc2l6 ZW9mKHVzZXJfZXhlY19saXN0W2ldLm9mZnNldCkpOwotCQkJaWYgKHJldCkgewotCQkJCXJldCA9 IC1FRkFVTFQ7Ci0JCQkJRFJNX0RFQlVHKCJmYWlsZWQgdG8gY29weSAlZCBleGVjIGVudHJpZXMg IgotCQkJCQkgICJiYWNrIHRvIHVzZXJcbiIsCi0JCQkJCSAgYXJncy0+YnVmZmVyX2NvdW50KTsK LQkJCQlicmVhazsKLQkJCX0KLQkJfQotCX0KKworCS8qIENvcHkgdGhlIG5ldyBidWZmZXIgb2Zm c2V0cyBiYWNrIHRvIHRoZSB1c2VyJ3MgZXhlYyBsaXN0LiAqLworCWlmICghcmV0KQorCQlyZXQg PSBfX2k5MTVfZ2VtX2V4ZWNsaXN0X2NvcHlfdG9fdXNlcihhcmdzLCBleGVjMl9saXN0KTsKIAog CWRybV9mcmVlX2xhcmdlKGV4ZWMyX2xpc3QpOwogCXJldHVybiByZXQ7Ci0tIAoyLjUuMAoKX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1h aWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5m cmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK