From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-16.8 required=3.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 2C98CC4743C for ; Mon, 14 Jun 2021 11:54:23 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id DDCC661185 for ; Mon, 14 Jun 2021 11:54:22 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org DDCC661185 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=linux.intel.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=intel-gfx-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 8478D897F3; Mon, 14 Jun 2021 11:54:21 +0000 (UTC) Received: from mga12.intel.com (mga12.intel.com [192.55.52.136]) by gabe.freedesktop.org (Postfix) with ESMTPS id BCBA1897F3; Mon, 14 Jun 2021 11:54:19 +0000 (UTC) IronPort-SDR: TZF3JwSvISdd6UiD80M+p4dzlwbxdslKSBt+nft2hgMH3/4samyGio9V+rvxpPTycQlaio6cHh PKaQlPVuGYWQ== X-IronPort-AV: E=McAfee;i="6200,9189,10014"; a="185490608" X-IronPort-AV: E=Sophos;i="5.83,273,1616482800"; d="scan'208";a="185490608" Received: from fmsmga008.fm.intel.com ([10.253.24.58]) by fmsmga106.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 14 Jun 2021 04:54:19 -0700 IronPort-SDR: hyiqIfVf/Ezi01NIF8w6ziqWrrI5GIqIUJhGA8vRKRAtLZLubnTekWIiAK/X98qsWA6IqLholn 2HUu0Br9/Qvg== X-IronPort-AV: E=Sophos;i="5.83,273,1616482800"; d="scan'208";a="451570239" Received: from janlundk-mobl1.ger.corp.intel.com (HELO thellst-mobl1.intel.com) ([10.249.254.32]) by fmsmga008-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 14 Jun 2021 04:54:16 -0700 From: =?UTF-8?q?Thomas=20Hellstr=C3=B6m?= To: intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org Date: Mon, 14 Jun 2021 13:54:03 +0200 Message-Id: <20210614115406.153107-2-thomas.hellstrom@linux.intel.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210614115406.153107-1-thomas.hellstrom@linux.intel.com> References: <20210614115406.153107-1-thomas.hellstrom@linux.intel.com> MIME-Version: 1.0 Subject: [Intel-gfx] [PATCH v4 1/4] drm/i915: Update object placement flags to be mutable X-BeenThere: intel-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Intel graphics driver community testing & development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: =?UTF-8?q?Thomas=20Hellstr=C3=B6m?= , matthew.auld@intel.com Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" VGhlIG9iamVjdCBvcHMgaTkxNV9HRU1fT0JKRUNUX0hBU19JT01FTSBhbmQgdGhlIG9iamVjdApJ OTE1X0JPX0FMTE9DX1NUUlVDVF9QQUdFIGZsYWdzIGFyZSBjb25zaWRlcmVkIGltbXV0YWJsZSBi eQptdWNoIG9mIG91ciBjb2RlLiBJbnRyb2R1Y2UgYSBuZXcgbWVtX2ZsYWdzIG1lbWJlciB0byBo b2xkIHRoZXNlCmFuZCBtYWtlIHN1cmUgY2hlY2tzIGZvciB0aGVzZSBmbGFncyBiZWluZyBzZXQg YXJlIGVpdGhlciBkb25lCnVuZGVyIHRoZSBvYmplY3QgbG9jayBvciB3aXRoIHBhZ2VzIHByb3Bl cmx5IHBpbm5lZC4gVGhlIGZsYWdzCndpbGwgY2hhbmdlIGR1cmluZyBtaWdyYXRpb24gdW5kZXIg dGhlIG9iamVjdCBsb2NrLgoKU2lnbmVkLW9mZi1ieTogVGhvbWFzIEhlbGxzdHLDtm0gPHRob21h cy5oZWxsc3Ryb21AbGludXguaW50ZWwuY29tPgpSZXZpZXdlZC1ieTogTWF0dGhldyBBdWxkIDxt YXR0aGV3LmF1bGRAaW50ZWwuY29tPgotLS0KdjI6Ci0gVW5jb25kaXRpb25hbGx5IHNldCBWTV9J TyBvbiBvdXIgVk1BcyBpbiBsaW5lIHdpdGggdGhlIHJlc3QgY29yZSBnZW0KICBhbmQgVFRNLiBT aW5jZSB0aGUgYm8gbWlnaHQgYmUgbWlncmF0ZWQgd2hpbGUgdGhlIFZNQSBpcyBzdGlsbCBhbGl2 ZSwKICB0aGVyZSBpcyBubyBzZW5zZSwgd2hldGhlciBvciBub3QgaXQgbWFwcyBpb21lbSBtaWdo dCBjaGFuZ2UuCi0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX2ludGVybmFs LmMgIHwgIDQgKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9tbWFuLmMgICAg ICB8IDEyICsrKy0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX29iamVjdC5j ICAgIHwgMzggKysrKysrKysrKysrKysrKysrKwogZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5 MTVfZ2VtX29iamVjdC5oICAgIHwgMTQgKystLS0tLQogLi4uL2dwdS9kcm0vaTkxNS9nZW0vaTkx NV9nZW1fb2JqZWN0X3R5cGVzLmggIHwgMjAgKysrKystLS0tLQogZHJpdmVycy9ncHUvZHJtL2k5 MTUvZ2VtL2k5MTVfZ2VtX3BhZ2VzLmMgICAgIHwgIDIgKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1 L2dlbS9pOTE1X2dlbV9waHlzLmMgICAgICB8ICAyICstCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9n ZW0vaTkxNV9nZW1fc2htZW0uYyAgICAgfCAxMCArKystLQogZHJpdmVycy9ncHUvZHJtL2k5MTUv Z2VtL2k5MTVfZ2VtX3R0bS5jICAgICAgIHwgIDIgKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2dl bS9pOTE1X2dlbV91c2VycHRyLmMgICB8ICA0ICstCiAuLi4vZHJtL2k5MTUvZ2VtL3NlbGZ0ZXN0 cy9odWdlX2dlbV9vYmplY3QuYyAgfCAgNCArLQogLi4uL2dwdS9kcm0vaTkxNS9nZW0vc2VsZnRl c3RzL2h1Z2VfcGFnZXMuYyAgIHwgIDUgKy0tCiAuLi4vZHJtL2k5MTUvZ2VtL3NlbGZ0ZXN0cy9p OTE1X2dlbV9tbWFuLmMgICAgfCAgNCArLQogLi4uL2RybS9pOTE1L2dlbS9zZWxmdGVzdHMvaTkx NV9nZW1fcGh5cy5jICAgIHwgIDMgKy0KIDE0IGZpbGVzIGNoYW5nZWQsIDc5IGluc2VydGlvbnMo KyksIDQ1IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dl bS9pOTE1X2dlbV9pbnRlcm5hbC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2Vt X2ludGVybmFsLmMKaW5kZXggY2U2YjY2NGIxMGFhLi4xM2IyMTdmNzUwNTUgMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9pbnRlcm5hbC5jCisrKyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9pbnRlcm5hbC5jCkBAIC0xNzcsOCArMTc3LDgg QEAgaTkxNV9nZW1fb2JqZWN0X2NyZWF0ZV9pbnRlcm5hbChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqaTkxNSwKIAkJcmV0dXJuIEVSUl9QVFIoLUVOT01FTSk7CiAKIAlkcm1fZ2VtX3ByaXZhdGVf b2JqZWN0X2luaXQoJmk5MTUtPmRybSwgJm9iai0+YmFzZSwgc2l6ZSk7Ci0JaTkxNV9nZW1fb2Jq ZWN0X2luaXQob2JqLCAmaTkxNV9nZW1fb2JqZWN0X2ludGVybmFsX29wcywgJmxvY2tfY2xhc3Ms Ci0JCQkgICAgIEk5MTVfQk9fQUxMT0NfU1RSVUNUX1BBR0UpOworCWk5MTVfZ2VtX29iamVjdF9p bml0KG9iaiwgJmk5MTVfZ2VtX29iamVjdF9pbnRlcm5hbF9vcHMsICZsb2NrX2NsYXNzLCAwKTsK KwlvYmotPm1lbV9mbGFncyB8PSBJOTE1X0JPX0ZMQUdfU1RSVUNUX1BBR0U7CiAKIAkvKgogCSAq IE1hcmsgdGhlIG9iamVjdCBhcyB2b2xhdGlsZSwgc3VjaCB0aGF0IHRoZSBwYWdlcyBhcmUgbWFy a2VkIGFzCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fbW1h bi5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX21tYW4uYwppbmRleCAyZmQx NTU3NDJiZDIuLjY0OTdhMmRiZGFiOSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv Z2VtL2k5MTVfZ2VtX21tYW4uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9n ZW1fbW1hbi5jCkBAIC02ODQsNyArNjg0LDcgQEAgX19hc3NpZ25fbW1hcF9vZmZzZXQoc3RydWN0 IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiwKIAogCWlmIChtbWFwX3R5cGUgIT0gSTkxNV9NTUFQ X1RZUEVfR1RUICYmCiAJICAgICFpOTE1X2dlbV9vYmplY3RfaGFzX3N0cnVjdF9wYWdlKG9iaikg JiYKLQkgICAgIWk5MTVfZ2VtX29iamVjdF90eXBlX2hhcyhvYmosIEk5MTVfR0VNX09CSkVDVF9I QVNfSU9NRU0pKQorCSAgICAhaTkxNV9nZW1fb2JqZWN0X2hhc19pb21lbShvYmopKQogCQlyZXR1 cm4gLUVOT0RFVjsKIAogCW1tbyA9IG1tYXBfb2Zmc2V0X2F0dGFjaChvYmosIG1tYXBfdHlwZSwg ZmlsZSk7CkBAIC03MDgsNyArNzA4LDEyIEBAIF9fYXNzaWduX21tYXBfb2Zmc2V0X2hhbmRsZShz dHJ1Y3QgZHJtX2ZpbGUgKmZpbGUsCiAJaWYgKCFvYmopCiAJCXJldHVybiAtRU5PRU5UOwogCisJ ZXJyID0gaTkxNV9nZW1fb2JqZWN0X2xvY2tfaW50ZXJydXB0aWJsZShvYmosIE5VTEwpOworCWlm IChlcnIpCisJCWdvdG8gb3V0X3B1dDsKIAllcnIgPSBfX2Fzc2lnbl9tbWFwX29mZnNldChvYmos IG1tYXBfdHlwZSwgb2Zmc2V0LCBmaWxlKTsKKwlpOTE1X2dlbV9vYmplY3RfdW5sb2NrKG9iaik7 CitvdXRfcHV0OgogCWk5MTVfZ2VtX29iamVjdF9wdXQob2JqKTsKIAlyZXR1cm4gZXJyOwogfQpA QCAtOTMyLDEwICs5MzcsNyBAQCBpbnQgaTkxNV9nZW1fbW1hcChzdHJ1Y3QgZmlsZSAqZmlscCwg c3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWEpCiAJCXJldHVybiBQVFJfRVJSKGFub24pOwogCX0K IAotCXZtYS0+dm1fZmxhZ3MgfD0gVk1fUEZOTUFQIHwgVk1fRE9OVEVYUEFORCB8IFZNX0RPTlRE VU1QOwotCi0JaWYgKGk5MTVfZ2VtX29iamVjdF9oYXNfaW9tZW0ob2JqKSkKLQkJdm1hLT52bV9m bGFncyB8PSBWTV9JTzsKKwl2bWEtPnZtX2ZsYWdzIHw9IFZNX1BGTk1BUCB8IFZNX0RPTlRFWFBB TkQgfCBWTV9ET05URFVNUCB8IFZNX0lPOwogCiAJLyoKIAkgKiBXZSBrZWVwIHRoZSByZWYgb24g bW1vLT5vYmosIG5vdCB2bV9maWxlLCBidXQgd2UgcmVxdWlyZQpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX29iamVjdC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvZ2VtL2k5MTVfZ2VtX29iamVjdC5jCmluZGV4IGNmMThjNDMwZDUxZi4uMDdlOGZmOWE4YWFl IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fb2JqZWN0LmMK KysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX29iamVjdC5jCkBAIC00NzUs NiArNDc1LDQ0IEBAIGJvb2wgaTkxNV9nZW1fb2JqZWN0X21pZ3JhdGFibGUoc3RydWN0IGRybV9p OTE1X2dlbV9vYmplY3QgKm9iaikKIAlyZXR1cm4gb2JqLT5tbS5uX3BsYWNlbWVudHMgPiAxOwog fQogCisvKioKKyAqIGk5MTVfZ2VtX29iamVjdF9oYXNfc3RydWN0X3BhZ2UgLSBXaGV0aGVyIHRo ZSBvYmplY3QgaXMgcGFnZS1iYWNrZWQKKyAqIEBvYmo6IFRoZSBvYmplY3QgdG8gcXVlcnkuCisg KgorICogVGhpcyBmdW5jdGlvbiBzaG91bGQgb25seSBiZSBjYWxsZWQgd2hpbGUgdGhlIG9iamVj dCBpcyBsb2NrZWQgb3IgcGlubmVkLAorICogb3RoZXJ3aXNlIHRoZSBwYWdlIGJhY2tpbmcgbWF5 IGNoYW5nZSB1bmRlciB0aGUgY2FsbGVyLgorICoKKyAqIFJldHVybjogVHJ1ZSBpZiBwYWdlLWJh Y2tlZCwgZmFsc2Ugb3RoZXJ3aXNlLgorICovCitib29sIGk5MTVfZ2VtX29iamVjdF9oYXNfc3Ry dWN0X3BhZ2UoY29uc3Qgc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaikKK3sKKyNpZmRl ZiBDT05GSUdfTE9DS0RFUAorCWlmIChJU19ER0ZYKHRvX2k5MTUob2JqLT5iYXNlLmRldikpICYm CisJICAgIGk5MTVfZ2VtX29iamVjdF9ldmljdGFibGUoKHZvaWQgX19mb3JjZSAqKW9iaikpCisJ CWFzc2VydF9vYmplY3RfaGVsZF9zaGFyZWQob2JqKTsKKyNlbmRpZgorCXJldHVybiBvYmotPm1l bV9mbGFncyAmIEk5MTVfQk9fRkxBR19TVFJVQ1RfUEFHRTsKK30KKworLyoqCisgKiBpOTE1X2dl bV9vYmplY3RfaGFzX2lvbWVtIC0gV2hldGhlciB0aGUgb2JqZWN0IGlzIGlvbWVtLWJhY2tlZAor ICogQG9iajogVGhlIG9iamVjdCB0byBxdWVyeS4KKyAqCisgKiBUaGlzIGZ1bmN0aW9uIHNob3Vs ZCBvbmx5IGJlIGNhbGxlZCB3aGlsZSB0aGUgb2JqZWN0IGlzIGxvY2tlZCBvciBwaW5uZWQsCisg KiBvdGhlcndpc2UgdGhlIGlvbWVtIGJhY2tpbmcgbWF5IGNoYW5nZSB1bmRlciB0aGUgY2FsbGVy LgorICoKKyAqIFJldHVybjogVHJ1ZSBpZiBpb21lbS1iYWNrZWQsIGZhbHNlIG90aGVyd2lzZS4K KyAqLworYm9vbCBpOTE1X2dlbV9vYmplY3RfaGFzX2lvbWVtKGNvbnN0IHN0cnVjdCBkcm1faTkx NV9nZW1fb2JqZWN0ICpvYmopCit7CisjaWZkZWYgQ09ORklHX0xPQ0tERVAKKwlpZiAoSVNfREdG WCh0b19pOTE1KG9iai0+YmFzZS5kZXYpKSAmJgorCSAgICBpOTE1X2dlbV9vYmplY3RfZXZpY3Rh YmxlKCh2b2lkIF9fZm9yY2UgKilvYmopKQorCQlhc3NlcnRfb2JqZWN0X2hlbGRfc2hhcmVkKG9i aik7CisjZW5kaWYKKwlyZXR1cm4gb2JqLT5tZW1fZmxhZ3MgJiBJOTE1X0JPX0ZMQUdfSU9NRU07 Cit9CisKIHZvaWQgaTkxNV9nZW1faW5pdF9fb2JqZWN0cyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqaTkxNSkKIHsKIAlJTklUX1dPUksoJmk5MTUtPm1tLmZyZWVfd29yaywgX19pOTE1X2dlbV9m cmVlX3dvcmspOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2Vt X29iamVjdC5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX29iamVjdC5oCmlu ZGV4IGU5ZWVjZWJmNWM5ZC4uNjBjNzYwZWJkZTQyIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9nZW0vaTkxNV9nZW1fb2JqZWN0LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv Z2VtL2k5MTVfZ2VtX29iamVjdC5oCkBAIC0xNDcsNyArMTQ3LDcgQEAgaTkxNV9nZW1fb2JqZWN0 X3B1dChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqKQogLyoKICAqIElmIG1vcmUgdGhh biBvbmUgcG90ZW50aWFsIHNpbXVsdGFuZW91cyBsb2NrZXIsIGFzc2VydCBoZWxkLgogICovCi1z dGF0aWMgaW5saW5lIHZvaWQgYXNzZXJ0X29iamVjdF9oZWxkX3NoYXJlZChzdHJ1Y3QgZHJtX2k5 MTVfZ2VtX29iamVjdCAqb2JqKQorc3RhdGljIGlubGluZSB2b2lkIGFzc2VydF9vYmplY3RfaGVs ZF9zaGFyZWQoY29uc3Qgc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaikKIHsKIAkvKgog CSAqIE5vdGUgbW0gbGlzdCBsb29rdXAgaXMgcHJvdGVjdGVkIGJ5CkBAIC0yNjEsMTcgKzI2MSw5 IEBAIGk5MTVfZ2VtX29iamVjdF90eXBlX2hhcyhjb25zdCBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29i amVjdCAqb2JqLAogCXJldHVybiBvYmotPm9wcy0+ZmxhZ3MgJiBmbGFnczsKIH0KIAotc3RhdGlj IGlubGluZSBib29sCi1pOTE1X2dlbV9vYmplY3RfaGFzX3N0cnVjdF9wYWdlKGNvbnN0IHN0cnVj dCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmopCi17Ci0JcmV0dXJuIG9iai0+ZmxhZ3MgJiBJOTE1 X0JPX0FMTE9DX1NUUlVDVF9QQUdFOwotfQorYm9vbCBpOTE1X2dlbV9vYmplY3RfaGFzX3N0cnVj dF9wYWdlKGNvbnN0IHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmopOwogCi1zdGF0aWMg aW5saW5lIGJvb2wKLWk5MTVfZ2VtX29iamVjdF9oYXNfaW9tZW0oY29uc3Qgc3RydWN0IGRybV9p OTE1X2dlbV9vYmplY3QgKm9iaikKLXsKLQlyZXR1cm4gaTkxNV9nZW1fb2JqZWN0X3R5cGVfaGFz KG9iaiwgSTkxNV9HRU1fT0JKRUNUX0hBU19JT01FTSk7Ci19Citib29sIGk5MTVfZ2VtX29iamVj dF9oYXNfaW9tZW0oY29uc3Qgc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaik7CiAKIHN0 YXRpYyBpbmxpbmUgYm9vbAogaTkxNV9nZW1fb2JqZWN0X2lzX3Nocmlua2FibGUoY29uc3Qgc3Ry dWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaikKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2dlbS9pOTE1X2dlbV9vYmplY3RfdHlwZXMuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2dlbS9pOTE1X2dlbV9vYmplY3RfdHlwZXMuaAppbmRleCAyYTIzYjc3NDI0YjMuLmZiOWNjYzNm NTBlNyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX29iamVj dF90eXBlcy5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9vYmplY3Rf dHlwZXMuaApAQCAtMzMsMTAgKzMzLDkgQEAgc3RydWN0IGk5MTVfbHV0X2hhbmRsZSB7CiAKIHN0 cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0X29wcyB7CiAJdW5zaWduZWQgaW50IGZsYWdzOwotI2Rl ZmluZSBJOTE1X0dFTV9PQkpFQ1RfSEFTX0lPTUVNCUJJVCgxKQotI2RlZmluZSBJOTE1X0dFTV9P QkpFQ1RfSVNfU0hSSU5LQUJMRQlCSVQoMikKLSNkZWZpbmUgSTkxNV9HRU1fT0JKRUNUX0lTX1BS T1hZCUJJVCgzKQotI2RlZmluZSBJOTE1X0dFTV9PQkpFQ1RfTk9fTU1BUAkJQklUKDQpCisjZGVm aW5lIEk5MTVfR0VNX09CSkVDVF9JU19TSFJJTktBQkxFCUJJVCgxKQorI2RlZmluZSBJOTE1X0dF TV9PQkpFQ1RfSVNfUFJPWFkJQklUKDIpCisjZGVmaW5lIEk5MTVfR0VNX09CSkVDVF9OT19NTUFQ CQlCSVQoMykKIAogCS8qIEludGVyZmFjZSBiZXR3ZWVuIHRoZSBHRU0gb2JqZWN0IGFuZCBpdHMg YmFja2luZyBzdG9yYWdlLgogCSAqIGdldF9wYWdlcygpIGlzIGNhbGxlZCBvbmNlIHByaW9yIHRv IHRoZSB1c2Ugb2YgdGhlIGFzc29jaWF0ZWQgc2V0CkBAIC0yMDEsMTcgKzIwMCwxOCBAQCBzdHJ1 Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCB7CiAJdW5zaWduZWQgbG9uZyBmbGFnczsKICNkZWZpbmUg STkxNV9CT19BTExPQ19DT05USUdVT1VTIEJJVCgwKQogI2RlZmluZSBJOTE1X0JPX0FMTE9DX1ZP TEFUSUxFICAgQklUKDEpCi0jZGVmaW5lIEk5MTVfQk9fQUxMT0NfU1RSVUNUX1BBR0UgQklUKDIp Ci0jZGVmaW5lIEk5MTVfQk9fQUxMT0NfQ1BVX0NMRUFSICBCSVQoMykKLSNkZWZpbmUgSTkxNV9C T19BTExPQ19VU0VSICAgICAgIEJJVCg0KQorI2RlZmluZSBJOTE1X0JPX0FMTE9DX0NQVV9DTEVB UiAgQklUKDIpCisjZGVmaW5lIEk5MTVfQk9fQUxMT0NfVVNFUiAgICAgICBCSVQoMykKICNkZWZp bmUgSTkxNV9CT19BTExPQ19GTEFHUyAoSTkxNV9CT19BTExPQ19DT05USUdVT1VTIHwgXAogCQkJ ICAgICBJOTE1X0JPX0FMTE9DX1ZPTEFUSUxFIHwgXAotCQkJICAgICBJOTE1X0JPX0FMTE9DX1NU UlVDVF9QQUdFIHwgXAogCQkJICAgICBJOTE1X0JPX0FMTE9DX0NQVV9DTEVBUiB8IFwKIAkJCSAg ICAgSTkxNV9CT19BTExPQ19VU0VSKQotI2RlZmluZSBJOTE1X0JPX1JFQURPTkxZICAgICAgICAg QklUKDUpCi0jZGVmaW5lIEk5MTVfVElMSU5HX1FVSVJLX0JJVCAgICA2IC8qIHVua25vd24gc3dp enpsaW5nOyBkbyBub3QgcmVsZWFzZSEgKi8KKyNkZWZpbmUgSTkxNV9CT19SRUFET05MWSAgICAg ICAgIEJJVCg0KQorI2RlZmluZSBJOTE1X1RJTElOR19RVUlSS19CSVQgICAgNSAvKiB1bmtub3du IHN3aXp6bGluZzsgZG8gbm90IHJlbGVhc2UhICovCiAKKwl1bnNpZ25lZCBpbnQgbWVtX2ZsYWdz OjI7CisjZGVmaW5lIEk5MTVfQk9fRkxBR19TVFJVQ1RfUEFHRSBCSVQoMCkKKyNkZWZpbmUgSTkx NV9CT19GTEFHX0lPTUVNICAgICAgIEJJVCgxKQogCS8qCiAJICogSXMgdGhlIG9iamVjdCB0byBi ZSBtYXBwZWQgYXMgcmVhZC1vbmx5IHRvIHRoZSBHUFUKIAkgKiBPbmx5IGhvbm91cmVkIGlmIGhh cmR3YXJlIGhhcyByZWxldmFudCBwdGUgYml0CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9nZW0vaTkxNV9nZW1fcGFnZXMuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1 X2dlbV9wYWdlcy5jCmluZGV4IDA4NjAwNWMxYzdlYS4uZjJmODUwZTMxYjhlIDEwMDY0NAotLS0g YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fcGFnZXMuYworKysgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fcGFnZXMuYwpAQCAtMzUxLDcgKzM1MSw3IEBAIHZv aWQgKmk5MTVfZ2VtX29iamVjdF9waW5fbWFwKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpv YmosCiAJaW50IGVycjsKIAogCWlmICghaTkxNV9nZW1fb2JqZWN0X2hhc19zdHJ1Y3RfcGFnZShv YmopICYmCi0JICAgICFpOTE1X2dlbV9vYmplY3RfdHlwZV9oYXMob2JqLCBJOTE1X0dFTV9PQkpF Q1RfSEFTX0lPTUVNKSkKKwkgICAgIWk5MTVfZ2VtX29iamVjdF9oYXNfaW9tZW0ob2JqKSkKIAkJ cmV0dXJuIEVSUl9QVFIoLUVOWElPKTsKIAogCWFzc2VydF9vYmplY3RfaGVsZChvYmopOwpkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX3BoeXMuYyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9waHlzLmMKaW5kZXggYmU3MmFkMDYzNGJhLi43 OTg2NjEyZjQ4ZmEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dl bV9waHlzLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX3BoeXMuYwpA QCAtNzYsNyArNzYsNyBAQCBzdGF0aWMgaW50IGk5MTVfZ2VtX29iamVjdF9nZXRfcGFnZXNfcGh5 cyhzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqKQogCWludGVsX2d0X2NoaXBzZXRfZmx1 c2goJnRvX2k5MTUob2JqLT5iYXNlLmRldiktPmd0KTsKIAogCS8qIFdlJ3JlIG5vIGxvbmdlciBz dHJ1Y3QgcGFnZSBiYWNrZWQgKi8KLQlvYmotPmZsYWdzICY9IH5JOTE1X0JPX0FMTE9DX1NUUlVD VF9QQUdFOworCW9iai0+bWVtX2ZsYWdzICY9IH5JOTE1X0JPX0ZMQUdfU1RSVUNUX1BBR0U7CiAJ X19pOTE1X2dlbV9vYmplY3Rfc2V0X3BhZ2VzKG9iaiwgc3QsIHNnLT5sZW5ndGgpOwogCiAJcmV0 dXJuIDA7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fc2ht ZW0uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9zaG1lbS5jCmluZGV4IDVk MTZjNDQ2MmZkYS4uMzY0OGFlMWQ2NjI4IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9nZW0vaTkxNV9nZW1fc2htZW0uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkx NV9nZW1fc2htZW0uYwpAQCAtMjg0LDYgKzI4NCw3IEBAIF9faTkxNV9nZW1fb2JqZWN0X3JlbGVh c2Vfc2htZW0oc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiwKIAkJCQlib29sIG5lZWRz X2NsZmx1c2gpCiB7CiAJR0VNX0JVR19PTihvYmotPm1tLm1hZHYgPT0gX19JOTE1X01BRFZfUFVS R0VEKTsKKwlHRU1fV0FSTl9PTihJU19ER0ZYKHRvX2k5MTUob2JqLT5iYXNlLmRldikpKTsKIAog CWlmIChvYmotPm1tLm1hZHYgPT0gSTkxNV9NQURWX0RPTlRORUVEKQogCQlvYmotPm1tLmRpcnR5 ID0gZmFsc2U7CkBAIC0zMDIsNiArMzAzLDcgQEAgdm9pZCBpOTE1X2dlbV9vYmplY3RfcHV0X3Bh Z2VzX3NobWVtKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmosIHN0cnVjdCBzZ18KIAlz dHJ1Y3QgcGFnZXZlYyBwdmVjOwogCXN0cnVjdCBwYWdlICpwYWdlOwogCisJR0VNX1dBUk5fT04o SVNfREdGWCh0b19pOTE1KG9iai0+YmFzZS5kZXYpKSk7CiAJX19pOTE1X2dlbV9vYmplY3RfcmVs ZWFzZV9zaG1lbShvYmosIHBhZ2VzLCB0cnVlKTsKIAogCWk5MTVfZ2VtX2d0dF9maW5pc2hfcGFn ZXMob2JqLCBwYWdlcyk7CkBAIC00NDQsNyArNDQ2LDcgQEAgc2htZW1fcHJlYWQoc3RydWN0IGRy bV9pOTE1X2dlbV9vYmplY3QgKm9iaiwKIAogc3RhdGljIHZvaWQgc2htZW1fcmVsZWFzZShzdHJ1 Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqKQogewotCWlmIChvYmotPmZsYWdzICYgSTkxNV9C T19BTExPQ19TVFJVQ1RfUEFHRSkKKwlpZiAoaTkxNV9nZW1fb2JqZWN0X2hhc19zdHJ1Y3RfcGFn ZShvYmopKQogCQlpOTE1X2dlbV9vYmplY3RfcmVsZWFzZV9tZW1vcnlfcmVnaW9uKG9iaik7CiAK IAlmcHV0KG9iai0+YmFzZS5maWxwKTsKQEAgLTUxMyw5ICs1MTUsOCBAQCBzdGF0aWMgaW50IHNo bWVtX29iamVjdF9pbml0KHN0cnVjdCBpbnRlbF9tZW1vcnlfcmVnaW9uICptZW0sCiAJbWFwcGlu Z19zZXRfZ2ZwX21hc2sobWFwcGluZywgbWFzayk7CiAJR0VNX0JVR19PTighKG1hcHBpbmdfZ2Zw X21hc2sobWFwcGluZykgJiBfX0dGUF9SRUNMQUlNKSk7CiAKLQlpOTE1X2dlbV9vYmplY3RfaW5p dChvYmosICZpOTE1X2dlbV9zaG1lbV9vcHMsICZsb2NrX2NsYXNzLAotCQkJICAgICBJOTE1X0JP X0FMTE9DX1NUUlVDVF9QQUdFKTsKLQorCWk5MTVfZ2VtX29iamVjdF9pbml0KG9iaiwgJmk5MTVf Z2VtX3NobWVtX29wcywgJmxvY2tfY2xhc3MsIDApOworCW9iai0+bWVtX2ZsYWdzIHw9IEk5MTVf Qk9fRkxBR19TVFJVQ1RfUEFHRTsKIAlvYmotPndyaXRlX2RvbWFpbiA9IEk5MTVfR0VNX0RPTUFJ Tl9DUFU7CiAJb2JqLT5yZWFkX2RvbWFpbnMgPSBJOTE1X0dFTV9ET01BSU5fQ1BVOwogCkBAIC01 NjEsNiArNTYyLDcgQEAgaTkxNV9nZW1fb2JqZWN0X2NyZWF0ZV9zaG1lbV9mcm9tX2RhdGEoc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCXJlc291cmNlX3NpemVfdCBvZmZzZXQ7 CiAJaW50IGVycjsKIAorCUdFTV9XQVJOX09OKElTX0RHRlgoZGV2X3ByaXYpKTsKIAlvYmogPSBp OTE1X2dlbV9vYmplY3RfY3JlYXRlX3NobWVtKGRldl9wcml2LCByb3VuZF91cChzaXplLCBQQUdF X1NJWkUpKTsKIAlpZiAoSVNfRVJSKG9iaikpCiAJCXJldHVybiBvYmo7CmRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fdHRtLmMgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9nZW0vaTkxNV9nZW1fdHRtLmMKaW5kZXggYmYzMzcyNGJlZDVjLi4zM2FiNDdmMWUwNWIg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV90dG0uYworKysg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fdHRtLmMKQEAgLTU2Myw3ICs1NjMs NiBAQCBzdGF0aWMgdTY0IGk5MTVfdHRtX21tYXBfb2Zmc2V0KHN0cnVjdCBkcm1faTkxNV9nZW1f b2JqZWN0ICpvYmopCiAKIGNvbnN0IHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0X29wcyBpOTE1 X2dlbV90dG1fb2JqX29wcyA9IHsKIAkubmFtZSA9ICJpOTE1X2dlbV9vYmplY3RfdHRtIiwKLQku ZmxhZ3MgPSBJOTE1X0dFTV9PQkpFQ1RfSEFTX0lPTUVNLAogCiAJLmdldF9wYWdlcyA9IGk5MTVf dHRtX2dldF9wYWdlcywKIAkucHV0X3BhZ2VzID0gaTkxNV90dG1fcHV0X3BhZ2VzLApAQCAtNjIw LDYgKzYxOSw3IEBAIGludCBfX2k5MTVfZ2VtX3R0bV9vYmplY3RfaW5pdChzdHJ1Y3QgaW50ZWxf bWVtb3J5X3JlZ2lvbiAqbWVtLAogCWk5MTVfZ2VtX29iamVjdF9pbml0X21lbW9yeV9yZWdpb24o b2JqLCBtZW0pOwogCWk5MTVfZ2VtX29iamVjdF9tYWtlX3Vuc2hyaW5rYWJsZShvYmopOwogCW9i ai0+cmVhZF9kb21haW5zID0gSTkxNV9HRU1fRE9NQUlOX1dDIHwgSTkxNV9HRU1fRE9NQUlOX0dU VDsKKwlvYmotPm1lbV9mbGFncyB8PSBJOTE1X0JPX0ZMQUdfSU9NRU07CiAJaTkxNV9nZW1fb2Jq ZWN0X3NldF9jYWNoZV9jb2hlcmVuY3kob2JqLCBJOTE1X0NBQ0hFX05PTkUpOwogCUlOSVRfUkFE SVhfVFJFRSgmb2JqLT50dG0uZ2V0X2lvX3BhZ2UucmFkaXgsIEdGUF9LRVJORUwgfCBfX0dGUF9O T1dBUk4pOwogCW11dGV4X2luaXQoJm9iai0+dHRtLmdldF9pb19wYWdlLmxvY2spOwpkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX3VzZXJwdHIuYyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV91c2VycHRyLmMKaW5kZXggNzQ4N2JhYjExZjBi Li5lOTlmY2U0NDI5YTcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1 X2dlbV91c2VycHRyLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX3Vz ZXJwdHIuYwpAQCAtNTM4LDggKzUzOCw4IEBAIGk5MTVfZ2VtX3VzZXJwdHJfaW9jdGwoc3RydWN0 IGRybV9kZXZpY2UgKmRldiwKIAkJcmV0dXJuIC1FTk9NRU07CiAKIAlkcm1fZ2VtX3ByaXZhdGVf b2JqZWN0X2luaXQoZGV2LCAmb2JqLT5iYXNlLCBhcmdzLT51c2VyX3NpemUpOwotCWk5MTVfZ2Vt X29iamVjdF9pbml0KG9iaiwgJmk5MTVfZ2VtX3VzZXJwdHJfb3BzLCAmbG9ja19jbGFzcywKLQkJ CSAgICAgSTkxNV9CT19BTExPQ19TVFJVQ1RfUEFHRSk7CisJaTkxNV9nZW1fb2JqZWN0X2luaXQo b2JqLCAmaTkxNV9nZW1fdXNlcnB0cl9vcHMsICZsb2NrX2NsYXNzLCAwKTsKKwlvYmotPm1lbV9m bGFncyA9IEk5MTVfQk9fRkxBR19TVFJVQ1RfUEFHRTsKIAlvYmotPnJlYWRfZG9tYWlucyA9IEk5 MTVfR0VNX0RPTUFJTl9DUFU7CiAJb2JqLT53cml0ZV9kb21haW4gPSBJOTE1X0dFTV9ET01BSU5f Q1BVOwogCWk5MTVfZ2VtX29iamVjdF9zZXRfY2FjaGVfY29oZXJlbmN5KG9iaiwgSTkxNV9DQUNI RV9MTEMpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL3NlbGZ0ZXN0cy9o dWdlX2dlbV9vYmplY3QuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9zZWxmdGVzdHMvaHVn ZV9nZW1fb2JqZWN0LmMKaW5kZXggMGM4ZWNmZGY1NDA1Li5mOTYzYjhlMWUzN2IgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9zZWxmdGVzdHMvaHVnZV9nZW1fb2JqZWN0LmMK KysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL3NlbGZ0ZXN0cy9odWdlX2dlbV9vYmplY3Qu YwpAQCAtMTE0LDggKzExNCw4IEBAIGh1Z2VfZ2VtX29iamVjdChzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqaTkxNSwKIAkJcmV0dXJuIEVSUl9QVFIoLUVOT01FTSk7CiAKIAlkcm1fZ2VtX3ByaXZh dGVfb2JqZWN0X2luaXQoJmk5MTUtPmRybSwgJm9iai0+YmFzZSwgZG1hX3NpemUpOwotCWk5MTVf Z2VtX29iamVjdF9pbml0KG9iaiwgJmh1Z2Vfb3BzLCAmbG9ja19jbGFzcywKLQkJCSAgICAgSTkx NV9CT19BTExPQ19TVFJVQ1RfUEFHRSk7CisJaTkxNV9nZW1fb2JqZWN0X2luaXQob2JqLCAmaHVn ZV9vcHMsICZsb2NrX2NsYXNzLCAwKTsKKwlvYmotPm1lbV9mbGFncyB8PSBJOTE1X0JPX0ZMQUdf U1RSVUNUX1BBR0U7CiAKIAlvYmotPnJlYWRfZG9tYWlucyA9IEk5MTVfR0VNX0RPTUFJTl9DUFU7 CiAJb2JqLT53cml0ZV9kb21haW4gPSBJOTE1X0dFTV9ET01BSU5fQ1BVOwpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL3NlbGZ0ZXN0cy9odWdlX3BhZ2VzLmMgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9nZW0vc2VsZnRlc3RzL2h1Z2VfcGFnZXMuYwppbmRleCBkYWRkNDg1YmM1 MmYuLmNjYzY3ZWQxYTg0YiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL3Nl bGZ0ZXN0cy9odWdlX3BhZ2VzLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL3NlbGZ0 ZXN0cy9odWdlX3BhZ2VzLmMKQEAgLTE2Nyw5ICsxNjcsOCBAQCBodWdlX3BhZ2VzX29iamVjdChz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwKIAkJcmV0dXJuIEVSUl9QVFIoLUVOT01FTSk7 CiAKIAlkcm1fZ2VtX3ByaXZhdGVfb2JqZWN0X2luaXQoJmk5MTUtPmRybSwgJm9iai0+YmFzZSwg c2l6ZSk7Ci0JaTkxNV9nZW1fb2JqZWN0X2luaXQob2JqLCAmaHVnZV9wYWdlX29wcywgJmxvY2tf Y2xhc3MsCi0JCQkgICAgIEk5MTVfQk9fQUxMT0NfU1RSVUNUX1BBR0UpOwotCisJaTkxNV9nZW1f b2JqZWN0X2luaXQob2JqLCAmaHVnZV9wYWdlX29wcywgJmxvY2tfY2xhc3MsIDApOworCW9iai0+ bWVtX2ZsYWdzIHw9IEk5MTVfQk9fRkxBR19TVFJVQ1RfUEFHRTsKIAlpOTE1X2dlbV9vYmplY3Rf c2V0X3ZvbGF0aWxlKG9iaik7CiAKIAlvYmotPndyaXRlX2RvbWFpbiA9IEk5MTVfR0VNX0RPTUFJ Tl9DUFU7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vc2VsZnRlc3RzL2k5 MTVfZ2VtX21tYW4uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9zZWxmdGVzdHMvaTkxNV9n ZW1fbW1hbi5jCmluZGV4IDQ0YjVkZTA2Y2U2NC4uZmNlYTBkZGFiY2M1IDEwMDY0NAotLS0gYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vc2VsZnRlc3RzL2k5MTVfZ2VtX21tYW4uYworKysgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vc2VsZnRlc3RzL2k5MTVfZ2VtX21tYW4uYwpAQCAtODM3 LDcgKzgzNyw3IEBAIHN0YXRpYyBib29sIGNhbl9tbWFwKHN0cnVjdCBkcm1faTkxNV9nZW1fb2Jq ZWN0ICpvYmosIGVudW0gaTkxNV9tbWFwX3R5cGUgdHlwZSkKIAogCWlmICh0eXBlICE9IEk5MTVf TU1BUF9UWVBFX0dUVCAmJgogCSAgICAhaTkxNV9nZW1fb2JqZWN0X2hhc19zdHJ1Y3RfcGFnZShv YmopICYmCi0JICAgICFpOTE1X2dlbV9vYmplY3RfdHlwZV9oYXMob2JqLCBJOTE1X0dFTV9PQkpF Q1RfSEFTX0lPTUVNKSkKKwkgICAgIWk5MTVfZ2VtX29iamVjdF9oYXNfaW9tZW0ob2JqKSkKIAkJ cmV0dXJuIGZhbHNlOwogCiAJcmV0dXJuIHRydWU7CkBAIC05OTEsNyArOTkxLDcgQEAgc3RhdGlj IGNvbnN0IGNoYXIgKnJlcHJfbW1hcF90eXBlKGVudW0gaTkxNV9tbWFwX3R5cGUgdHlwZSkKIHN0 YXRpYyBib29sIGNhbl9hY2Nlc3MoY29uc3Qgc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9i aikKIHsKIAlyZXR1cm4gaTkxNV9nZW1fb2JqZWN0X2hhc19zdHJ1Y3RfcGFnZShvYmopIHx8Ci0J ICAgICAgIGk5MTVfZ2VtX29iamVjdF90eXBlX2hhcyhvYmosIEk5MTVfR0VNX09CSkVDVF9IQVNf SU9NRU0pOworCSAgICAgICBpOTE1X2dlbV9vYmplY3RfaGFzX2lvbWVtKG9iaik7CiB9CiAKIHN0 YXRpYyBpbnQgX19pZ3RfbW1hcF9hY2Nlc3Moc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUs CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vc2VsZnRlc3RzL2k5MTVfZ2Vt X3BoeXMuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9zZWxmdGVzdHMvaTkxNV9nZW1fcGh5 cy5jCmluZGV4IDNhNmNlODdmOGI1Mi4uZDQzZDhkYWUwZjY5IDEwMDY0NAotLS0gYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9nZW0vc2VsZnRlc3RzL2k5MTVfZ2VtX3BoeXMuYworKysgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9nZW0vc2VsZnRlc3RzL2k5MTVfZ2VtX3BoeXMuYwpAQCAtMjUsMTMgKzI1 LDE0IEBAIHN0YXRpYyBpbnQgbW9ja19waHlzX29iamVjdCh2b2lkICphcmcpCiAJCWdvdG8gb3V0 OwogCX0KIAorCWk5MTVfZ2VtX29iamVjdF9sb2NrKG9iaiwgTlVMTCk7CiAJaWYgKCFpOTE1X2dl bV9vYmplY3RfaGFzX3N0cnVjdF9wYWdlKG9iaikpIHsKKwkJaTkxNV9nZW1fb2JqZWN0X3VubG9j ayhvYmopOwogCQllcnIgPSAtRUlOVkFMOwogCQlwcl9lcnIoInNobWVtIGhhcyBubyBzdHJ1Y3Qg cGFnZVxuIik7CiAJCWdvdG8gb3V0X29iajsKIAl9CiAKLQlpOTE1X2dlbV9vYmplY3RfbG9jayhv YmosIE5VTEwpOwogCWVyciA9IGk5MTVfZ2VtX29iamVjdF9hdHRhY2hfcGh5cyhvYmosIFBBR0Vf U0laRSk7CiAJaTkxNV9nZW1fb2JqZWN0X3VubG9jayhvYmopOwogCWlmIChlcnIpIHsKLS0gCjIu MzEuMQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50 ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBz Oi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg== From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-16.8 required=3.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 5D6DCC2B9F4 for ; Mon, 14 Jun 2021 11:54:26 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 2970061107 for ; Mon, 14 Jun 2021 11:54:26 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 2970061107 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=linux.intel.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=dri-devel-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 95CA889CB8; Mon, 14 Jun 2021 11:54:22 +0000 (UTC) Received: from mga12.intel.com (mga12.intel.com [192.55.52.136]) by gabe.freedesktop.org (Postfix) with ESMTPS id BCBA1897F3; Mon, 14 Jun 2021 11:54:19 +0000 (UTC) IronPort-SDR: TZF3JwSvISdd6UiD80M+p4dzlwbxdslKSBt+nft2hgMH3/4samyGio9V+rvxpPTycQlaio6cHh PKaQlPVuGYWQ== X-IronPort-AV: E=McAfee;i="6200,9189,10014"; a="185490608" X-IronPort-AV: E=Sophos;i="5.83,273,1616482800"; d="scan'208";a="185490608" Received: from fmsmga008.fm.intel.com ([10.253.24.58]) by fmsmga106.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 14 Jun 2021 04:54:19 -0700 IronPort-SDR: hyiqIfVf/Ezi01NIF8w6ziqWrrI5GIqIUJhGA8vRKRAtLZLubnTekWIiAK/X98qsWA6IqLholn 2HUu0Br9/Qvg== X-IronPort-AV: E=Sophos;i="5.83,273,1616482800"; d="scan'208";a="451570239" Received: from janlundk-mobl1.ger.corp.intel.com (HELO thellst-mobl1.intel.com) ([10.249.254.32]) by fmsmga008-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 14 Jun 2021 04:54:16 -0700 From: =?UTF-8?q?Thomas=20Hellstr=C3=B6m?= To: intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org Subject: [PATCH v4 1/4] drm/i915: Update object placement flags to be mutable Date: Mon, 14 Jun 2021 13:54:03 +0200 Message-Id: <20210614115406.153107-2-thomas.hellstrom@linux.intel.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210614115406.153107-1-thomas.hellstrom@linux.intel.com> References: <20210614115406.153107-1-thomas.hellstrom@linux.intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: =?UTF-8?q?Thomas=20Hellstr=C3=B6m?= , matthew.auld@intel.com Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" The object ops i915_GEM_OBJECT_HAS_IOMEM and the object I915_BO_ALLOC_STRUCT_PAGE flags are considered immutable by much of our code. Introduce a new mem_flags member to hold these and make sure checks for these flags being set are either done under the object lock or with pages properly pinned. The flags will change during migration under the object lock. Signed-off-by: Thomas Hellström Reviewed-by: Matthew Auld --- v2: - Unconditionally set VM_IO on our VMAs in line with the rest core gem and TTM. Since the bo might be migrated while the VMA is still alive, there is no sense, whether or not it maps iomem might change. --- drivers/gpu/drm/i915/gem/i915_gem_internal.c | 4 +- drivers/gpu/drm/i915/gem/i915_gem_mman.c | 12 +++--- drivers/gpu/drm/i915/gem/i915_gem_object.c | 38 +++++++++++++++++++ drivers/gpu/drm/i915/gem/i915_gem_object.h | 14 ++----- .../gpu/drm/i915/gem/i915_gem_object_types.h | 20 +++++----- drivers/gpu/drm/i915/gem/i915_gem_pages.c | 2 +- drivers/gpu/drm/i915/gem/i915_gem_phys.c | 2 +- drivers/gpu/drm/i915/gem/i915_gem_shmem.c | 10 +++-- drivers/gpu/drm/i915/gem/i915_gem_ttm.c | 2 +- drivers/gpu/drm/i915/gem/i915_gem_userptr.c | 4 +- .../drm/i915/gem/selftests/huge_gem_object.c | 4 +- .../gpu/drm/i915/gem/selftests/huge_pages.c | 5 +-- .../drm/i915/gem/selftests/i915_gem_mman.c | 4 +- .../drm/i915/gem/selftests/i915_gem_phys.c | 3 +- 14 files changed, 79 insertions(+), 45 deletions(-) diff --git a/drivers/gpu/drm/i915/gem/i915_gem_internal.c b/drivers/gpu/drm/i915/gem/i915_gem_internal.c index ce6b664b10aa..13b217f75055 100644 --- a/drivers/gpu/drm/i915/gem/i915_gem_internal.c +++ b/drivers/gpu/drm/i915/gem/i915_gem_internal.c @@ -177,8 +177,8 @@ i915_gem_object_create_internal(struct drm_i915_private *i915, return ERR_PTR(-ENOMEM); drm_gem_private_object_init(&i915->drm, &obj->base, size); - i915_gem_object_init(obj, &i915_gem_object_internal_ops, &lock_class, - I915_BO_ALLOC_STRUCT_PAGE); + i915_gem_object_init(obj, &i915_gem_object_internal_ops, &lock_class, 0); + obj->mem_flags |= I915_BO_FLAG_STRUCT_PAGE; /* * Mark the object as volatile, such that the pages are marked as diff --git a/drivers/gpu/drm/i915/gem/i915_gem_mman.c b/drivers/gpu/drm/i915/gem/i915_gem_mman.c index 2fd155742bd2..6497a2dbdab9 100644 --- a/drivers/gpu/drm/i915/gem/i915_gem_mman.c +++ b/drivers/gpu/drm/i915/gem/i915_gem_mman.c @@ -684,7 +684,7 @@ __assign_mmap_offset(struct drm_i915_gem_object *obj, if (mmap_type != I915_MMAP_TYPE_GTT && !i915_gem_object_has_struct_page(obj) && - !i915_gem_object_type_has(obj, I915_GEM_OBJECT_HAS_IOMEM)) + !i915_gem_object_has_iomem(obj)) return -ENODEV; mmo = mmap_offset_attach(obj, mmap_type, file); @@ -708,7 +708,12 @@ __assign_mmap_offset_handle(struct drm_file *file, if (!obj) return -ENOENT; + err = i915_gem_object_lock_interruptible(obj, NULL); + if (err) + goto out_put; err = __assign_mmap_offset(obj, mmap_type, offset, file); + i915_gem_object_unlock(obj); +out_put: i915_gem_object_put(obj); return err; } @@ -932,10 +937,7 @@ int i915_gem_mmap(struct file *filp, struct vm_area_struct *vma) return PTR_ERR(anon); } - vma->vm_flags |= VM_PFNMAP | VM_DONTEXPAND | VM_DONTDUMP; - - if (i915_gem_object_has_iomem(obj)) - vma->vm_flags |= VM_IO; + vma->vm_flags |= VM_PFNMAP | VM_DONTEXPAND | VM_DONTDUMP | VM_IO; /* * We keep the ref on mmo->obj, not vm_file, but we require diff --git a/drivers/gpu/drm/i915/gem/i915_gem_object.c b/drivers/gpu/drm/i915/gem/i915_gem_object.c index cf18c430d51f..07e8ff9a8aae 100644 --- a/drivers/gpu/drm/i915/gem/i915_gem_object.c +++ b/drivers/gpu/drm/i915/gem/i915_gem_object.c @@ -475,6 +475,44 @@ bool i915_gem_object_migratable(struct drm_i915_gem_object *obj) return obj->mm.n_placements > 1; } +/** + * i915_gem_object_has_struct_page - Whether the object is page-backed + * @obj: The object to query. + * + * This function should only be called while the object is locked or pinned, + * otherwise the page backing may change under the caller. + * + * Return: True if page-backed, false otherwise. + */ +bool i915_gem_object_has_struct_page(const struct drm_i915_gem_object *obj) +{ +#ifdef CONFIG_LOCKDEP + if (IS_DGFX(to_i915(obj->base.dev)) && + i915_gem_object_evictable((void __force *)obj)) + assert_object_held_shared(obj); +#endif + return obj->mem_flags & I915_BO_FLAG_STRUCT_PAGE; +} + +/** + * i915_gem_object_has_iomem - Whether the object is iomem-backed + * @obj: The object to query. + * + * This function should only be called while the object is locked or pinned, + * otherwise the iomem backing may change under the caller. + * + * Return: True if iomem-backed, false otherwise. + */ +bool i915_gem_object_has_iomem(const struct drm_i915_gem_object *obj) +{ +#ifdef CONFIG_LOCKDEP + if (IS_DGFX(to_i915(obj->base.dev)) && + i915_gem_object_evictable((void __force *)obj)) + assert_object_held_shared(obj); +#endif + return obj->mem_flags & I915_BO_FLAG_IOMEM; +} + void i915_gem_init__objects(struct drm_i915_private *i915) { INIT_WORK(&i915->mm.free_work, __i915_gem_free_work); diff --git a/drivers/gpu/drm/i915/gem/i915_gem_object.h b/drivers/gpu/drm/i915/gem/i915_gem_object.h index e9eecebf5c9d..60c760ebde42 100644 --- a/drivers/gpu/drm/i915/gem/i915_gem_object.h +++ b/drivers/gpu/drm/i915/gem/i915_gem_object.h @@ -147,7 +147,7 @@ i915_gem_object_put(struct drm_i915_gem_object *obj) /* * If more than one potential simultaneous locker, assert held. */ -static inline void assert_object_held_shared(struct drm_i915_gem_object *obj) +static inline void assert_object_held_shared(const struct drm_i915_gem_object *obj) { /* * Note mm list lookup is protected by @@ -261,17 +261,9 @@ i915_gem_object_type_has(const struct drm_i915_gem_object *obj, return obj->ops->flags & flags; } -static inline bool -i915_gem_object_has_struct_page(const struct drm_i915_gem_object *obj) -{ - return obj->flags & I915_BO_ALLOC_STRUCT_PAGE; -} +bool i915_gem_object_has_struct_page(const struct drm_i915_gem_object *obj); -static inline bool -i915_gem_object_has_iomem(const struct drm_i915_gem_object *obj) -{ - return i915_gem_object_type_has(obj, I915_GEM_OBJECT_HAS_IOMEM); -} +bool i915_gem_object_has_iomem(const struct drm_i915_gem_object *obj); static inline bool i915_gem_object_is_shrinkable(const struct drm_i915_gem_object *obj) diff --git a/drivers/gpu/drm/i915/gem/i915_gem_object_types.h b/drivers/gpu/drm/i915/gem/i915_gem_object_types.h index 2a23b77424b3..fb9ccc3f50e7 100644 --- a/drivers/gpu/drm/i915/gem/i915_gem_object_types.h +++ b/drivers/gpu/drm/i915/gem/i915_gem_object_types.h @@ -33,10 +33,9 @@ struct i915_lut_handle { struct drm_i915_gem_object_ops { unsigned int flags; -#define I915_GEM_OBJECT_HAS_IOMEM BIT(1) -#define I915_GEM_OBJECT_IS_SHRINKABLE BIT(2) -#define I915_GEM_OBJECT_IS_PROXY BIT(3) -#define I915_GEM_OBJECT_NO_MMAP BIT(4) +#define I915_GEM_OBJECT_IS_SHRINKABLE BIT(1) +#define I915_GEM_OBJECT_IS_PROXY BIT(2) +#define I915_GEM_OBJECT_NO_MMAP BIT(3) /* Interface between the GEM object and its backing storage. * get_pages() is called once prior to the use of the associated set @@ -201,17 +200,18 @@ struct drm_i915_gem_object { unsigned long flags; #define I915_BO_ALLOC_CONTIGUOUS BIT(0) #define I915_BO_ALLOC_VOLATILE BIT(1) -#define I915_BO_ALLOC_STRUCT_PAGE BIT(2) -#define I915_BO_ALLOC_CPU_CLEAR BIT(3) -#define I915_BO_ALLOC_USER BIT(4) +#define I915_BO_ALLOC_CPU_CLEAR BIT(2) +#define I915_BO_ALLOC_USER BIT(3) #define I915_BO_ALLOC_FLAGS (I915_BO_ALLOC_CONTIGUOUS | \ I915_BO_ALLOC_VOLATILE | \ - I915_BO_ALLOC_STRUCT_PAGE | \ I915_BO_ALLOC_CPU_CLEAR | \ I915_BO_ALLOC_USER) -#define I915_BO_READONLY BIT(5) -#define I915_TILING_QUIRK_BIT 6 /* unknown swizzling; do not release! */ +#define I915_BO_READONLY BIT(4) +#define I915_TILING_QUIRK_BIT 5 /* unknown swizzling; do not release! */ + unsigned int mem_flags:2; +#define I915_BO_FLAG_STRUCT_PAGE BIT(0) +#define I915_BO_FLAG_IOMEM BIT(1) /* * Is the object to be mapped as read-only to the GPU * Only honoured if hardware has relevant pte bit diff --git a/drivers/gpu/drm/i915/gem/i915_gem_pages.c b/drivers/gpu/drm/i915/gem/i915_gem_pages.c index 086005c1c7ea..f2f850e31b8e 100644 --- a/drivers/gpu/drm/i915/gem/i915_gem_pages.c +++ b/drivers/gpu/drm/i915/gem/i915_gem_pages.c @@ -351,7 +351,7 @@ void *i915_gem_object_pin_map(struct drm_i915_gem_object *obj, int err; if (!i915_gem_object_has_struct_page(obj) && - !i915_gem_object_type_has(obj, I915_GEM_OBJECT_HAS_IOMEM)) + !i915_gem_object_has_iomem(obj)) return ERR_PTR(-ENXIO); assert_object_held(obj); diff --git a/drivers/gpu/drm/i915/gem/i915_gem_phys.c b/drivers/gpu/drm/i915/gem/i915_gem_phys.c index be72ad0634ba..7986612f48fa 100644 --- a/drivers/gpu/drm/i915/gem/i915_gem_phys.c +++ b/drivers/gpu/drm/i915/gem/i915_gem_phys.c @@ -76,7 +76,7 @@ static int i915_gem_object_get_pages_phys(struct drm_i915_gem_object *obj) intel_gt_chipset_flush(&to_i915(obj->base.dev)->gt); /* We're no longer struct page backed */ - obj->flags &= ~I915_BO_ALLOC_STRUCT_PAGE; + obj->mem_flags &= ~I915_BO_FLAG_STRUCT_PAGE; __i915_gem_object_set_pages(obj, st, sg->length); return 0; diff --git a/drivers/gpu/drm/i915/gem/i915_gem_shmem.c b/drivers/gpu/drm/i915/gem/i915_gem_shmem.c index 5d16c4462fda..3648ae1d6628 100644 --- a/drivers/gpu/drm/i915/gem/i915_gem_shmem.c +++ b/drivers/gpu/drm/i915/gem/i915_gem_shmem.c @@ -284,6 +284,7 @@ __i915_gem_object_release_shmem(struct drm_i915_gem_object *obj, bool needs_clflush) { GEM_BUG_ON(obj->mm.madv == __I915_MADV_PURGED); + GEM_WARN_ON(IS_DGFX(to_i915(obj->base.dev))); if (obj->mm.madv == I915_MADV_DONTNEED) obj->mm.dirty = false; @@ -302,6 +303,7 @@ void i915_gem_object_put_pages_shmem(struct drm_i915_gem_object *obj, struct sg_ struct pagevec pvec; struct page *page; + GEM_WARN_ON(IS_DGFX(to_i915(obj->base.dev))); __i915_gem_object_release_shmem(obj, pages, true); i915_gem_gtt_finish_pages(obj, pages); @@ -444,7 +446,7 @@ shmem_pread(struct drm_i915_gem_object *obj, static void shmem_release(struct drm_i915_gem_object *obj) { - if (obj->flags & I915_BO_ALLOC_STRUCT_PAGE) + if (i915_gem_object_has_struct_page(obj)) i915_gem_object_release_memory_region(obj); fput(obj->base.filp); @@ -513,9 +515,8 @@ static int shmem_object_init(struct intel_memory_region *mem, mapping_set_gfp_mask(mapping, mask); GEM_BUG_ON(!(mapping_gfp_mask(mapping) & __GFP_RECLAIM)); - i915_gem_object_init(obj, &i915_gem_shmem_ops, &lock_class, - I915_BO_ALLOC_STRUCT_PAGE); - + i915_gem_object_init(obj, &i915_gem_shmem_ops, &lock_class, 0); + obj->mem_flags |= I915_BO_FLAG_STRUCT_PAGE; obj->write_domain = I915_GEM_DOMAIN_CPU; obj->read_domains = I915_GEM_DOMAIN_CPU; @@ -561,6 +562,7 @@ i915_gem_object_create_shmem_from_data(struct drm_i915_private *dev_priv, resource_size_t offset; int err; + GEM_WARN_ON(IS_DGFX(dev_priv)); obj = i915_gem_object_create_shmem(dev_priv, round_up(size, PAGE_SIZE)); if (IS_ERR(obj)) return obj; diff --git a/drivers/gpu/drm/i915/gem/i915_gem_ttm.c b/drivers/gpu/drm/i915/gem/i915_gem_ttm.c index bf33724bed5c..33ab47f1e05b 100644 --- a/drivers/gpu/drm/i915/gem/i915_gem_ttm.c +++ b/drivers/gpu/drm/i915/gem/i915_gem_ttm.c @@ -563,7 +563,6 @@ static u64 i915_ttm_mmap_offset(struct drm_i915_gem_object *obj) const struct drm_i915_gem_object_ops i915_gem_ttm_obj_ops = { .name = "i915_gem_object_ttm", - .flags = I915_GEM_OBJECT_HAS_IOMEM, .get_pages = i915_ttm_get_pages, .put_pages = i915_ttm_put_pages, @@ -620,6 +619,7 @@ int __i915_gem_ttm_object_init(struct intel_memory_region *mem, i915_gem_object_init_memory_region(obj, mem); i915_gem_object_make_unshrinkable(obj); obj->read_domains = I915_GEM_DOMAIN_WC | I915_GEM_DOMAIN_GTT; + obj->mem_flags |= I915_BO_FLAG_IOMEM; i915_gem_object_set_cache_coherency(obj, I915_CACHE_NONE); INIT_RADIX_TREE(&obj->ttm.get_io_page.radix, GFP_KERNEL | __GFP_NOWARN); mutex_init(&obj->ttm.get_io_page.lock); diff --git a/drivers/gpu/drm/i915/gem/i915_gem_userptr.c b/drivers/gpu/drm/i915/gem/i915_gem_userptr.c index 7487bab11f0b..e99fce4429a7 100644 --- a/drivers/gpu/drm/i915/gem/i915_gem_userptr.c +++ b/drivers/gpu/drm/i915/gem/i915_gem_userptr.c @@ -538,8 +538,8 @@ i915_gem_userptr_ioctl(struct drm_device *dev, return -ENOMEM; drm_gem_private_object_init(dev, &obj->base, args->user_size); - i915_gem_object_init(obj, &i915_gem_userptr_ops, &lock_class, - I915_BO_ALLOC_STRUCT_PAGE); + i915_gem_object_init(obj, &i915_gem_userptr_ops, &lock_class, 0); + obj->mem_flags = I915_BO_FLAG_STRUCT_PAGE; obj->read_domains = I915_GEM_DOMAIN_CPU; obj->write_domain = I915_GEM_DOMAIN_CPU; i915_gem_object_set_cache_coherency(obj, I915_CACHE_LLC); diff --git a/drivers/gpu/drm/i915/gem/selftests/huge_gem_object.c b/drivers/gpu/drm/i915/gem/selftests/huge_gem_object.c index 0c8ecfdf5405..f963b8e1e37b 100644 --- a/drivers/gpu/drm/i915/gem/selftests/huge_gem_object.c +++ b/drivers/gpu/drm/i915/gem/selftests/huge_gem_object.c @@ -114,8 +114,8 @@ huge_gem_object(struct drm_i915_private *i915, return ERR_PTR(-ENOMEM); drm_gem_private_object_init(&i915->drm, &obj->base, dma_size); - i915_gem_object_init(obj, &huge_ops, &lock_class, - I915_BO_ALLOC_STRUCT_PAGE); + i915_gem_object_init(obj, &huge_ops, &lock_class, 0); + obj->mem_flags |= I915_BO_FLAG_STRUCT_PAGE; obj->read_domains = I915_GEM_DOMAIN_CPU; obj->write_domain = I915_GEM_DOMAIN_CPU; diff --git a/drivers/gpu/drm/i915/gem/selftests/huge_pages.c b/drivers/gpu/drm/i915/gem/selftests/huge_pages.c index dadd485bc52f..ccc67ed1a84b 100644 --- a/drivers/gpu/drm/i915/gem/selftests/huge_pages.c +++ b/drivers/gpu/drm/i915/gem/selftests/huge_pages.c @@ -167,9 +167,8 @@ huge_pages_object(struct drm_i915_private *i915, return ERR_PTR(-ENOMEM); drm_gem_private_object_init(&i915->drm, &obj->base, size); - i915_gem_object_init(obj, &huge_page_ops, &lock_class, - I915_BO_ALLOC_STRUCT_PAGE); - + i915_gem_object_init(obj, &huge_page_ops, &lock_class, 0); + obj->mem_flags |= I915_BO_FLAG_STRUCT_PAGE; i915_gem_object_set_volatile(obj); obj->write_domain = I915_GEM_DOMAIN_CPU; diff --git a/drivers/gpu/drm/i915/gem/selftests/i915_gem_mman.c b/drivers/gpu/drm/i915/gem/selftests/i915_gem_mman.c index 44b5de06ce64..fcea0ddabcc5 100644 --- a/drivers/gpu/drm/i915/gem/selftests/i915_gem_mman.c +++ b/drivers/gpu/drm/i915/gem/selftests/i915_gem_mman.c @@ -837,7 +837,7 @@ static bool can_mmap(struct drm_i915_gem_object *obj, enum i915_mmap_type type) if (type != I915_MMAP_TYPE_GTT && !i915_gem_object_has_struct_page(obj) && - !i915_gem_object_type_has(obj, I915_GEM_OBJECT_HAS_IOMEM)) + !i915_gem_object_has_iomem(obj)) return false; return true; @@ -991,7 +991,7 @@ static const char *repr_mmap_type(enum i915_mmap_type type) static bool can_access(const struct drm_i915_gem_object *obj) { return i915_gem_object_has_struct_page(obj) || - i915_gem_object_type_has(obj, I915_GEM_OBJECT_HAS_IOMEM); + i915_gem_object_has_iomem(obj); } static int __igt_mmap_access(struct drm_i915_private *i915, diff --git a/drivers/gpu/drm/i915/gem/selftests/i915_gem_phys.c b/drivers/gpu/drm/i915/gem/selftests/i915_gem_phys.c index 3a6ce87f8b52..d43d8dae0f69 100644 --- a/drivers/gpu/drm/i915/gem/selftests/i915_gem_phys.c +++ b/drivers/gpu/drm/i915/gem/selftests/i915_gem_phys.c @@ -25,13 +25,14 @@ static int mock_phys_object(void *arg) goto out; } + i915_gem_object_lock(obj, NULL); if (!i915_gem_object_has_struct_page(obj)) { + i915_gem_object_unlock(obj); err = -EINVAL; pr_err("shmem has no struct page\n"); goto out_obj; } - i915_gem_object_lock(obj, NULL); err = i915_gem_object_attach_phys(obj, PAGE_SIZE); i915_gem_object_unlock(obj); if (err) { -- 2.31.1