From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chris Wilson Subject: [PATCH v4 1/2] drm/i915: Protect fbdev across slow or failed initialisation Date: Thu, 31 Mar 2016 14:57:42 +0100 Message-ID: <1459432663-990-1-git-send-email-chris@chris-wilson.co.uk> References: <56FD1151.5050303@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wm0-x241.google.com (mail-wm0-x241.google.com [IPv6:2a00:1450:400c:c09::241]) by gabe.freedesktop.org (Postfix) with ESMTPS id 6714F6EA97 for ; Thu, 31 Mar 2016 13:57:56 +0000 (UTC) Received: by mail-wm0-x241.google.com with SMTP id i204so22175147wmd.0 for ; Thu, 31 Mar 2016 06:57:56 -0700 (PDT) In-Reply-To: <56FD1151.5050303@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, Gabriel Feceoru List-Id: intel-gfx@lists.freedesktop.org SWYgdGhlIGluaXRpYWxpc2F0aW9uIGZhaWxzLCB3ZSBtYXkgYmUgbGVmdCB3aXRoIGEgZGFuZ2xp bmcgcG9pbnRlciB3aXRoCmFuIGluY29tcGxldGUgZmJkZXYgc3RydWN0dXJlLiBIZXJlIHdlIHdh bnQgdG8gZGlzYWJsZSBpbnRlcm5hbCBjYWxscwppbnRvIGZiZGV2LiBTaW1pbGFybHksIHRoZSBp bml0aWFsaXNhdGlvbiBtYXkgYmUgc2xvdyBhbmQgd2UgaGF2ZW4ndCB5ZXQKZW5hYmxlZCB0aGUg ZmJkZXYgKGUuZy4gcXVpY2sgc3VzcGVuZCBvciBsYXN0LWNsb3NlIGJlZm9yZSB0aGUgYXN5bmMg aW5pdApjb21wbGV0ZXMpLgoKdjM6IFRvIGNyZWF0ZSBhIHR5cG8gaW50cm9kdWNlZCB3aGVuIHJl dHlwaW5nCnY0OiBQcmV2ZW50IGluZm89PU5VTEwgZGVyZWZlcmVuY2UgaW4gZWFybHkgYm9vdAoK QnVnemlsbGE6IGh0dHBzOi8vYnVncy5mcmVlZGVza3RvcC5vcmcvc2hvd19idWcuY2dpP2lkPTkz NTgwClJlcG9ydGVkLWJ5OiAiTGksIFdlaW5hbiBaIiA8d2VpbmFuLnoubGlAaW50ZWwuY29tPgpU ZXN0ZWQtYnk6IEdhYnJpZWwgRmVjZW9ydSA8Z2FicmllbC5mZWNlb3J1QGludGVsLmNvbT4KU2ln bmVkLW9mZi1ieTogQ2hyaXMgV2lsc29uIDxjaHJpc0BjaHJpcy13aWxzb24uY28udWs+Ci0tLQog ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZmJkZXYuYyB8IDcyICsrKysrKysrKysrKysrKysr KysrKysrKystLS0tLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgNDggaW5zZXJ0aW9ucygrKSwg MjQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf ZmJkZXYuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2ZiZGV2LmMKaW5kZXggMTUzZWE3 YTNmY2Y2Li41ZDRiZTcxYmRmMjIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2ZiZGV2LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZmJkZXYuYwpAQCAt NzU2LDE3ICs3NTYsNDcgQEAgdm9pZCBpbnRlbF9mYmRldl9maW5pKHN0cnVjdCBkcm1fZGV2aWNl ICpkZXYpCiAJZGV2X3ByaXYtPmZiZGV2ID0gTlVMTDsKIH0KIAorc3RhdGljIHN0cnVjdCBpbnRl bF9mYmRldiAqaW50ZWxfZmJkZXZfZ2V0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCit7CisJc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYpOworCXN0cnVjdCBm Yl9pbmZvICppbmZvOworCisJaWYgKGRldl9wcml2LT5mYmRldiA9PSBOVUxMKQorCQlyZXR1cm4g TlVMTDsKKworCWluZm8gPSBkZXZfcHJpdi0+ZmJkZXYtPmhlbHBlci5mYmRldjsKKwlpZiAoaW5m byA9PSBOVUxMKQorCQlyZXR1cm4gTlVMTDsKKworCWlmIChpbmZvLT5zY3JlZW5fYmFzZSA9PSBO VUxMKQorCQlyZXR1cm4gTlVMTDsKKworCXJldHVybiBkZXZfcHJpdi0+ZmJkZXY7Cit9CisKK3N0 YXRpYyBzdHJ1Y3QgaW50ZWxfZmJkZXYgKmludGVsX2ZiZGV2X2dldF9pZl9hY3RpdmUoc3RydWN0 IGRybV9kZXZpY2UgKmRldikKK3sKKwlzdHJ1Y3QgaW50ZWxfZmJkZXYgKmlmYmRldjsKKworCWlm YmRldiA9IGludGVsX2ZiZGV2X2dldChkZXYpOworCWlmIChpZmJkZXYgPT0gTlVMTCkKKwkJcmV0 dXJuIE5VTEw7CisKKwlpZiAoaWZiZGV2LT5oZWxwZXIuZmJkZXYtPnN0YXRlICE9IEZCSU5GT19T VEFURV9SVU5OSU5HKQorCQlyZXR1cm4gTlVMTDsKKworCXJldHVybiBpZmJkZXY7Cit9CisKIHZv aWQgaW50ZWxfZmJkZXZfc2V0X3N1c3BlbmQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgaW50IHN0 YXRlLCBib29sIHN5bmNocm9ub3VzKQogewogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7Ci0Jc3RydWN0IGludGVsX2ZiZGV2ICppZmJkZXYgPSBk ZXZfcHJpdi0+ZmJkZXY7Ci0Jc3RydWN0IGZiX2luZm8gKmluZm87CisJc3RydWN0IGludGVsX2Zi ZGV2ICppZmJkZXY7CiAKLQlpZiAoIWlmYmRldikKKwlpZmJkZXYgPSBpbnRlbF9mYmRldl9nZXQo ZGV2KTsKKwlpZiAoaWZiZGV2ID09IE5VTEwpCiAJCXJldHVybjsKIAotCWluZm8gPSBpZmJkZXYt PmhlbHBlci5mYmRldjsKLQogCWlmIChzeW5jaHJvbm91cykgewogCQkvKiBGbHVzaCBhbnkgcGVu ZGluZyB3b3JrIHRvIHR1cm4gdGhlIGNvbnNvbGUgb24sIGFuZCB0aGVuCiAJCSAqIHdhaXQgdG8g dHVybiBpdCBvZmYuIEl0IG11c3QgYmUgc3luY2hyb25vdXMgYXMgd2UgYXJlCkBAIC03OTgsOCAr ODI4LDEwIEBAIHZvaWQgaW50ZWxfZmJkZXZfc2V0X3N1c3BlbmQoc3RydWN0IGRybV9kZXZpY2Ug KmRldiwgaW50IHN0YXRlLCBib29sIHN5bmNocm9ub3VzCiAJICogYmVlbiByZXN0b3JlZCBmcm9t IHN3YXAuIElmIHRoZSBvYmplY3QgaXMgc3RvbGVuIGhvd2V2ZXIsIGl0IHdpbGwgYmUKIAkgKiBm dWxsIG9mIHdoYXRldmVyIGdhcmJhZ2Ugd2FzIGxlZnQgaW4gdGhlcmUuCiAJICovCi0JaWYgKHN0 YXRlID09IEZCSU5GT19TVEFURV9SVU5OSU5HICYmIGlmYmRldi0+ZmItPm9iai0+c3RvbGVuKQor CWlmIChzdGF0ZSA9PSBGQklORk9fU1RBVEVfUlVOTklORyAmJiBpZmJkZXYtPmZiLT5vYmotPnN0 b2xlbikgeworCQlzdHJ1Y3QgZmJfaW5mbyAqaW5mbyA9IGlmYmRldi0+aGVscGVyLmZiZGV2Owog CQltZW1zZXRfaW8oaW5mby0+c2NyZWVuX2Jhc2UsIDAsIGluZm8tPnNjcmVlbl9zaXplKTsKKwl9 CiAKIAlkcm1fZmJfaGVscGVyX3NldF9zdXNwZW5kKCZpZmJkZXYtPmhlbHBlciwgc3RhdGUpOwog CWNvbnNvbGVfdW5sb2NrKCk7CkBAIC04MDcsMzIgKzgzOSwyNCBAQCB2b2lkIGludGVsX2ZiZGV2 X3NldF9zdXNwZW5kKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIGludCBzdGF0ZSwgYm9vbCBzeW5j aHJvbm91cwogCiB2b2lkIGludGVsX2ZiZGV2X291dHB1dF9wb2xsX2NoYW5nZWQoc3RydWN0IGRy bV9kZXZpY2UgKmRldikKIHsKLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBk ZXYtPmRldl9wcml2YXRlOworCXN0cnVjdCBpbnRlbF9mYmRldiAqaWZiZGV2ID0gaW50ZWxfZmJk ZXZfZ2V0X2lmX2FjdGl2ZShkZXYpOworCisJaWYgKGlmYmRldiA9PSBOVUxMKQorCQlyZXR1cm47 CiAKLQlhc3luY19zeW5jaHJvbml6ZV9mdWxsKCk7Ci0JaWYgKGRldl9wcml2LT5mYmRldikKLQkJ ZHJtX2ZiX2hlbHBlcl9ob3RwbHVnX2V2ZW50KCZkZXZfcHJpdi0+ZmJkZXYtPmhlbHBlcik7CisJ ZHJtX2ZiX2hlbHBlcl9ob3RwbHVnX2V2ZW50KCZpZmJkZXYtPmhlbHBlcik7CiB9CiAKIHZvaWQg aW50ZWxfZmJkZXZfcmVzdG9yZV9tb2RlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiB7Ci0JaW50 IHJldDsKLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2 YXRlOwotCXN0cnVjdCBpbnRlbF9mYmRldiAqaWZiZGV2ID0gZGV2X3ByaXYtPmZiZGV2OwotCXN0 cnVjdCBkcm1fZmJfaGVscGVyICpmYl9oZWxwZXI7CisJc3RydWN0IGludGVsX2ZiZGV2ICppZmJk ZXYgPSBpbnRlbF9mYmRldl9nZXRfaWZfYWN0aXZlKGRldik7CiAKLQlhc3luY19zeW5jaHJvbml6 ZV9mdWxsKCk7Ci0JaWYgKCFpZmJkZXYpCisJaWYgKGlmYmRldiA9PSBOVUxMKQogCQlyZXR1cm47 CiAKLQlmYl9oZWxwZXIgPSAmaWZiZGV2LT5oZWxwZXI7Ci0KLQlyZXQgPSBkcm1fZmJfaGVscGVy X3Jlc3RvcmVfZmJkZXZfbW9kZV91bmxvY2tlZChmYl9oZWxwZXIpOwotCWlmIChyZXQpIHsKLQkJ RFJNX0RFQlVHKCJmYWlsZWQgdG8gcmVzdG9yZSBjcnRjIG1vZGVcbiIpOwotCX0gZWxzZSB7Ci0J CW11dGV4X2xvY2soJmZiX2hlbHBlci0+ZGV2LT5zdHJ1Y3RfbXV0ZXgpOworCWlmIChkcm1fZmJf aGVscGVyX3Jlc3RvcmVfZmJkZXZfbW9kZV91bmxvY2tlZCgmaWZiZGV2LT5oZWxwZXIpID09IDAp IHsKKwkJbXV0ZXhfbG9jaygmZGV2LT5zdHJ1Y3RfbXV0ZXgpOwogCQlpbnRlbF9mYl9vYmpfaW52 YWxpZGF0ZShpZmJkZXYtPmZiLT5vYmosIE9SSUdJTl9HVFQpOwotCQltdXRleF91bmxvY2soJmZi X2hlbHBlci0+ZGV2LT5zdHJ1Y3RfbXV0ZXgpOworCQltdXRleF91bmxvY2soJmRldi0+c3RydWN0 X211dGV4KTsKIAl9CiB9Ci0tIAoyLjguMC5yYzMKCl9fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxp c3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFu L2xpc3RpbmZvL2ludGVsLWdmeAo=