From mboxrd@z Thu Jan 1 00:00:00 1970 From: Thomas Hellstrom Subject: [PATCH 2/2] drm/vmwgfx: Fix a layout race-condition Date: Thu, 4 Oct 2018 22:38:23 +0000 Message-ID: <20181004223753.22846-2-thellstrom@vmware.com> References: <20181004223753.22846-1-thellstrom@vmware.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from NAM04-CO1-obe.outbound.protection.outlook.com (mail-eopbgr690054.outbound.protection.outlook.com [40.107.69.54]) by gabe.freedesktop.org (Postfix) with ESMTPS id AE0436E67C for ; Thu, 4 Oct 2018 22:38:25 +0000 (UTC) In-Reply-To: <20181004223753.22846-1-thellstrom@vmware.com> Content-Language: en-US List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: "dri-devel@lists.freedesktop.org" Cc: "daniel.vetter@ffwll.ch" , Thomas Hellstrom , linux-graphics-maintainer List-Id: dri-devel@lists.freedesktop.org VGhpcyBmaXhlcyBhIGxheW91dCB1cGRhdGUgcmFjZSBjb25kaXRpb24uIFdlIG1ha2Ugc3VyZQp0 aGUgY3J0YyBtdXRleCBpcyBsb2NrZWQgYmVmb3JlIHdlIGRlcmVmZXJlbmNlIGNydGMtPnN0YXRl LiBPdGhlcndpc2UgdGhlCnN0YXRlIG1pZ2h0IGNoYW5nZSB1bmRlciB1cy4KClNpbmNlIG5vdyB3 ZSdyZSBhbHJlYWR5IGhvbGRpbmcgdGhlIGNydGMgbXV0ZXhlcyB3aGVuIHJlYWRpbmcgdGhlIGd1 aQpjb29yZGluYXRlcywgcHJvdGVjdCB0aGVtIHdpdGggdGhlIGNydGMgbXV0ZXhlcyByYXRoZXIg dGhhbiB3aXRoIHRoZQpyZXF1ZXN0ZWRfbGF5b3V0IG11dGV4LgoKU2lnbmVkLW9mZi1ieTogVGhv bWFzIEhlbGxzdHJvbSA8dGhlbGxzdHJvbUB2bXdhcmUuY29tPgpSZXZpZXdlZC1ieTogRGVlcGFr IFJhd2F0IDxkcmF3YXRAdm13YXJlLmNvbT4KUmV2aWV3ZWQtYnk6IFNpbmNsYWlyIFllaCA8c3ll aEB2bXdhcmUuY29tPgotLS0KIGRyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2Rydi5jIHwg IDEgLQogZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfZHJ2LmggfCAgOSAtLS0tLS0KIGRy aXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2ttcy5jIHwgNjQgKysrKysrKysrKysrKysrKysr KysrKy0tLS0tLS0tLS0tLS0tLQogMyBmaWxlcyBjaGFuZ2VkLCAzOCBpbnNlcnRpb25zKCspLCAz NiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dm eF9kcnYuYyBiL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2Rydi5jCmluZGV4IDYxYTg0 Yjk1OGQ2Ny4uODEwNzc1Mzg2OWUwIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4 L3Ztd2dmeF9kcnYuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9kcnYuYwpA QCAtNjY1LDcgKzY2NSw2IEBAIHN0YXRpYyBpbnQgdm13X2RyaXZlcl9sb2FkKHN0cnVjdCBkcm1f ZGV2aWNlICpkZXYsIHVuc2lnbmVkIGxvbmcgY2hpcHNldCkKIAltdXRleF9pbml0KCZkZXZfcHJp di0+Y21kYnVmX211dGV4KTsKIAltdXRleF9pbml0KCZkZXZfcHJpdi0+cmVsZWFzZV9tdXRleCk7 CiAJbXV0ZXhfaW5pdCgmZGV2X3ByaXYtPmJpbmRpbmdfbXV0ZXgpOwotCW11dGV4X2luaXQoJmRl dl9wcml2LT5yZXF1ZXN0ZWRfbGF5b3V0X211dGV4KTsKIAltdXRleF9pbml0KCZkZXZfcHJpdi0+ Z2xvYmFsX2ttc19zdGF0ZV9tdXRleCk7CiAJdHRtX2xvY2tfaW5pdCgmZGV2X3ByaXYtPnJlc2Vy dmF0aW9uX3NlbSk7CiAJc3Bpbl9sb2NrX2luaXQoJmRldl9wcml2LT5yZXNvdXJjZV9sb2NrKTsK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2Rydi5oIGIvZHJpdmVy cy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfZHJ2LmgKaW5kZXggZWEyYzIyZDkyMzU3Li5hYWQ5OTQy YTNmNTQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2Rydi5oCisr KyBiL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2Rydi5oCkBAIC00NjcsMTUgKzQ2Nyw2 IEBAIHN0cnVjdCB2bXdfcHJpdmF0ZSB7CiAKIAl1aW50MzJfdCBudW1fZGlzcGxheXM7CiAKLQkv KgotCSAqIEN1cnJlbnRseSByZXF1ZXN0ZWRfbGF5b3V0X211dGV4IGlzIHVzZWQgdG8gcHJvdGVj dCB0aGUgZ3VpCi0JICogcG9zaXRpb25pZyBzdGF0ZSBpbiBkaXNwbGF5IHVuaXQuIFdpdGggdGhh dCB1c2UgY2FzZSBjdXJyZW50bHkgdGhpcwotCSAqIG11dGV4IGlzIG9ubHkgdGFrZW4gZHVyaW5n IGxheW91dCBpb2N0bCBhbmQgYXRvbWljIGNoZWNrX21vZGVzZXQuCi0JICogT3RoZXIgZGlzcGxh eSB1bml0IHN0YXRlIGNhbiBiZSBwcm90ZWN0ZWQgd2l0aCB0aGlzIG11dGV4IGJ1dCB0aGF0Ci0J ICogbmVlZHMgY2FyZWZ1bCBjb25zaWRlcmF0aW9uLgotCSAqLwotCXN0cnVjdCBtdXRleCByZXF1 ZXN0ZWRfbGF5b3V0X211dGV4OwotCiAJLyoKIAkgKiBGcmFtZWJ1ZmZlciBpbmZvLgogCSAqLwpk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfa21zLmMgYi9kcml2ZXJz L2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9rbXMuYwppbmRleCBjY2FlYzJjYmFiZDIuLjFlMGYzZmY2 MWQyMSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfa21zLmMKKysr IGIvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfa21zLmMKQEAgLTE2NDYsNyArMTY0Niw2 IEBAIHN0YXRpYyBpbnQgdm13X2ttc19jaGVja19pbXBsaWNpdChzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2LAogc3RhdGljIGludCB2bXdfa21zX2NoZWNrX3RvcG9sb2d5KHN0cnVjdCBkcm1fZGV2aWNl ICpkZXYsCiAJCQkJICBzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUpCiB7Ci0Jc3RydWN0 IHZtd19wcml2YXRlICpkZXZfcHJpdiA9IHZtd19wcml2KGRldik7CiAJc3RydWN0IGRybV9jcnRj X3N0YXRlICpvbGRfY3J0Y19zdGF0ZSwgKm5ld19jcnRjX3N0YXRlOwogCXN0cnVjdCBkcm1fcmVj dCAqcmVjdHM7CiAJc3RydWN0IGRybV9jcnRjICpjcnRjOwpAQCAtMTY1OCwxOSArMTY1NywzMSBA QCBzdGF0aWMgaW50IHZtd19rbXNfY2hlY2tfdG9wb2xvZ3koc3RydWN0IGRybV9kZXZpY2UgKmRl diwKIAlpZiAoIXJlY3RzKQogCQlyZXR1cm4gLUVOT01FTTsKIAotCW11dGV4X2xvY2soJmRldl9w cml2LT5yZXF1ZXN0ZWRfbGF5b3V0X211dGV4KTsKLQogCWRybV9mb3JfZWFjaF9jcnRjKGNydGMs IGRldikgewogCQlzdHJ1Y3Qgdm13X2Rpc3BsYXlfdW5pdCAqZHUgPSB2bXdfY3J0Y190b19kdShj cnRjKTsKLQkJc3RydWN0IGRybV9jcnRjX3N0YXRlICpjcnRjX3N0YXRlID0gY3J0Yy0+c3RhdGU7 CisJCXN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZTsKIAogCQlpID0gZHJtX2NydGNf aW5kZXgoY3J0Yyk7CiAKLQkJaWYgKGNydGNfc3RhdGUgJiYgY3J0Y19zdGF0ZS0+ZW5hYmxlKSB7 CisJCWNydGNfc3RhdGUgPSB2bXdfY3J0Y19zdGF0ZV9hbmRfbG9jayhzdGF0ZSwgY3J0Yyk7CisJ CWlmIChJU19FUlIoY3J0Y19zdGF0ZSkpIHsKKwkJCXJldCA9IFBUUl9FUlIoY3J0Y19zdGF0ZSk7 CisJCQlnb3RvIGNsZWFuOworCQl9CisKKwkJaWYgKCFjcnRjX3N0YXRlKQorCQkJY29udGludWU7 CisKKwkJaWYgKGNydGNfc3RhdGUtPmVuYWJsZSkgewogCQkJcmVjdHNbaV0ueDEgPSBkdS0+Z3Vp X3g7CiAJCQlyZWN0c1tpXS55MSA9IGR1LT5ndWlfeTsKIAkJCXJlY3RzW2ldLngyID0gZHUtPmd1 aV94ICsgY3J0Y19zdGF0ZS0+bW9kZS5oZGlzcGxheTsKIAkJCXJlY3RzW2ldLnkyID0gZHUtPmd1 aV95ICsgY3J0Y19zdGF0ZS0+bW9kZS52ZGlzcGxheTsKKwkJfSBlbHNlIHsKKwkJCXJlY3RzW2ld LngxID0gMDsKKwkJCXJlY3RzW2ldLnkxID0gMDsKKwkJCXJlY3RzW2ldLngyID0gMDsKKwkJCXJl Y3RzW2ldLnkyID0gMDsKIAkJfQogCX0KIApAQCAtMTY4MiwxNCArMTY5Myw2IEBAIHN0YXRpYyBp bnQgdm13X2ttc19jaGVja190b3BvbG9neShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCQlzdHJ1 Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqY29ubl9zdGF0ZTsKIAkJc3RydWN0IHZtd19jb25uZWN0 b3Jfc3RhdGUgKnZtd19jb25uX3N0YXRlOwogCi0JCWlmICghbmV3X2NydGNfc3RhdGUtPmVuYWJs ZSAmJiBvbGRfY3J0Y19zdGF0ZS0+ZW5hYmxlKSB7Ci0JCQlyZWN0c1tpXS54MSA9IDA7Ci0JCQly ZWN0c1tpXS55MSA9IDA7Ci0JCQlyZWN0c1tpXS54MiA9IDA7Ci0JCQlyZWN0c1tpXS55MiA9IDA7 Ci0JCQljb250aW51ZTsKLQkJfQotCiAJCWlmICghZHUtPnByZWZfYWN0aXZlKSB7CiAJCQlyZXQg PSAtRUlOVkFMOwogCQkJZ290byBjbGVhbjsKQEAgLTE3MTAsMTggKzE3MTMsMTIgQEAgc3RhdGlj IGludCB2bXdfa21zX2NoZWNrX3RvcG9sb2d5KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJCXZt d19jb25uX3N0YXRlID0gdm13X2Nvbm5lY3Rvcl9zdGF0ZV90b192Y3MoY29ubl9zdGF0ZSk7CiAJ CXZtd19jb25uX3N0YXRlLT5ndWlfeCA9IGR1LT5ndWlfeDsKIAkJdm13X2Nvbm5fc3RhdGUtPmd1 aV95ID0gZHUtPmd1aV95OwotCi0JCXJlY3RzW2ldLngxID0gZHUtPmd1aV94OwotCQlyZWN0c1tp XS55MSA9IGR1LT5ndWlfeTsKLQkJcmVjdHNbaV0ueDIgPSBkdS0+Z3VpX3ggKyBuZXdfY3J0Y19z dGF0ZS0+bW9kZS5oZGlzcGxheTsKLQkJcmVjdHNbaV0ueTIgPSBkdS0+Z3VpX3kgKyBuZXdfY3J0 Y19zdGF0ZS0+bW9kZS52ZGlzcGxheTsKIAl9CiAKIAlyZXQgPSB2bXdfa21zX2NoZWNrX2Rpc3Bs YXlfbWVtb3J5KGRldiwgZGV2LT5tb2RlX2NvbmZpZy5udW1fY3J0YywKIAkJCQkJICAgcmVjdHMp OwogCiBjbGVhbjoKLQltdXRleF91bmxvY2soJmRldl9wcml2LT5yZXF1ZXN0ZWRfbGF5b3V0X211 dGV4KTsKIAlrZnJlZShyZWN0cyk7CiAJcmV0dXJuIHJldDsKIH0KQEAgLTIwNzgsMTEgKzIwNzUs MjUgQEAgc3RhdGljIGludCB2bXdfZHVfdXBkYXRlX2xheW91dChzdHJ1Y3Qgdm13X3ByaXZhdGUg KmRldl9wcml2LAogCXN0cnVjdCB2bXdfZGlzcGxheV91bml0ICpkdTsKIAlzdHJ1Y3QgZHJtX2Nv bm5lY3RvciAqY29uOwogCXN0cnVjdCBkcm1fY29ubmVjdG9yX2xpc3RfaXRlciBjb25uX2l0ZXI7 CisJc3RydWN0IGRybV9tb2Rlc2V0X2FjcXVpcmVfY3R4IGN0eDsKKwlzdHJ1Y3QgZHJtX2NydGMg KmNydGM7CisJaW50IHJldDsKKworCS8qIEN1cnJlbnRseSBndWlfeC95IGlzIHByb3RlY3RlZCB3 aXRoIHRoZSBjcnRjIG11dGV4ICovCisJbXV0ZXhfbG9jaygmZGV2LT5tb2RlX2NvbmZpZy5tdXRl eCk7CisJZHJtX21vZGVzZXRfYWNxdWlyZV9pbml0KCZjdHgsIDApOworcmV0cnk6CisJZHJtX2Zv cl9lYWNoX2NydGMoY3J0YywgZGV2KSB7CisJCXJldCA9IGRybV9tb2Rlc2V0X2xvY2soJmNydGMt Pm11dGV4LCAmY3R4KTsKKwkJaWYgKHJldCA8IDApIHsKKwkJCWlmIChyZXQgPT0gLUVERUFETEsp IHsKKwkJCQlkcm1fbW9kZXNldF9iYWNrb2ZmKCZjdHgpOworCQkJCWdvdG8gcmV0cnk7CisJCQl9 CisJCQlnb3RvIG91dF9maW5pOworCQl9CisJfQogCi0JLyoKLQkgKiBDdXJyZW50bHkgb25seSBn dWlfeC95IGlzIHByb3RlY3RlZCB3aXRoIHJlcXVlc3RlZF9sYXlvdXRfbXV0ZXguCi0JICovCi0J bXV0ZXhfbG9jaygmZGV2X3ByaXYtPnJlcXVlc3RlZF9sYXlvdXRfbXV0ZXgpOwogCWRybV9jb25u ZWN0b3JfbGlzdF9pdGVyX2JlZ2luKGRldiwgJmNvbm5faXRlcik7CiAJZHJtX2Zvcl9lYWNoX2Nv bm5lY3Rvcl9pdGVyKGNvbiwgJmNvbm5faXRlcikgewogCQlkdSA9IHZtd19jb25uZWN0b3JfdG9f ZHUoY29uKTsKQEAgLTIxMDEsOSArMjExMiw3IEBAIHN0YXRpYyBpbnQgdm13X2R1X3VwZGF0ZV9s YXlvdXQoc3RydWN0IHZtd19wcml2YXRlICpkZXZfcHJpdiwKIAkJfQogCX0KIAlkcm1fY29ubmVj dG9yX2xpc3RfaXRlcl9lbmQoJmNvbm5faXRlcik7Ci0JbXV0ZXhfdW5sb2NrKCZkZXZfcHJpdi0+ cmVxdWVzdGVkX2xheW91dF9tdXRleCk7CiAKLQltdXRleF9sb2NrKCZkZXYtPm1vZGVfY29uZmln Lm11dGV4KTsKIAlsaXN0X2Zvcl9lYWNoX2VudHJ5KGNvbiwgJmRldi0+bW9kZV9jb25maWcuY29u bmVjdG9yX2xpc3QsIGhlYWQpIHsKIAkJZHUgPSB2bXdfY29ubmVjdG9yX3RvX2R1KGNvbik7CiAJ CWlmIChudW1fcmVjdHMgPiBkdS0+dW5pdCkgewpAQCAtMjEyMyw5ICsyMTMyLDEyIEBAIHN0YXRp YyBpbnQgdm13X2R1X3VwZGF0ZV9sYXlvdXQoc3RydWN0IHZtd19wcml2YXRlICpkZXZfcHJpdiwK IAkJfQogCQljb24tPnN0YXR1cyA9IHZtd19kdV9jb25uZWN0b3JfZGV0ZWN0KGNvbiwgdHJ1ZSk7 CiAJfQotCW11dGV4X3VubG9jaygmZGV2LT5tb2RlX2NvbmZpZy5tdXRleCk7CiAKIAlkcm1fc3lz ZnNfaG90cGx1Z19ldmVudChkZXYpOworb3V0X2Zpbmk6CisJZHJtX21vZGVzZXRfZHJvcF9sb2Nr cygmY3R4KTsKKwlkcm1fbW9kZXNldF9hY3F1aXJlX2ZpbmkoJmN0eCk7CisJbXV0ZXhfdW5sb2Nr KCZkZXYtPm1vZGVfY29uZmlnLm11dGV4KTsKIAogCXJldHVybiAwOwogfQotLSAKMi4xNC40Cgpf X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwg bWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0 cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK