From mboxrd@z Thu Jan 1 00:00:00 1970 From: Maarten Lankhorst Subject: [PATCH 2/2] drm/atomic: Cleanup on error properly in the atomic ioctl. Date: Wed, 24 Jun 2015 08:59:25 +0200 Message-ID: <1435129165-21537-2-git-send-email-maarten.lankhorst@linux.intel.com> References: <1435129165-21537-1-git-send-email-maarten.lankhorst@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1435129165-21537-1-git-send-email-maarten.lankhorst@linux.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: dri-devel@lists.freedesktop.org Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org SXQncyBwcm9iYWJseSBhbGxvd2VkIHRvIGxlYXZlIG9sZF9mYiBzZXQgdG8gZ2FyYmFnZSB3aGVu IHVubG9ja2luZywKYnV0IHRvIHByZXZlbnQgdW5kZWZpbmVkIGJlaGF2aW9yIHVuc2V0IGl0IGp1 c3QgaW4gY2FzZS4KCkFsc28gY3J0Y19zdGF0ZS0+ZXZlbnQgY291bGQgYmUgTlVMTCBvbiBtZW1v cnkgYWxsb2NhdGlvbiBmYWlsdXJlLAppbiB3aGljaCBjYXNlIGV2ZW50X3NwYWNlIGlzIGluY3Jl YXNlZCBmb3Igbm8gcmVhc29uLgoKU2lnbmVkLW9mZi1ieTogTWFhcnRlbiBMYW5raG9yc3QgPG1h YXJ0ZW4ubGFua2hvcnN0QGxpbnV4LmludGVsLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vZHJt X2F0b21pYy5jIHwgNjMgKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KIDEgZmlsZSBjaGFuZ2VkLCAyOSBpbnNlcnRpb25zKCspLCAzNCBkZWxldGlvbnMoLSkKCmRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pYy5jIGIvZHJpdmVycy9ncHUvZHJt L2RybV9hdG9taWMuYwppbmRleCBiZDdmNzIzYzcwOGUuLmE4OWY3M2YxZGNhMSAxMDA2NDQKLS0t IGEvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJt X2F0b21pYy5jCkBAIC0xNDYzLDE4ICsxNDYzLDE4IEBAIHJldHJ5OgogCiAJCWlmIChnZXRfdXNl cihvYmpfaWQsIG9ianNfcHRyICsgY29waWVkX29ianMpKSB7CiAJCQlyZXQgPSAtRUZBVUxUOwot CQkJZ290byBmYWlsOworCQkJZ290byBvdXQ7CiAJCX0KIAogCQlvYmogPSBkcm1fbW9kZV9vYmpl Y3RfZmluZChkZXYsIG9ial9pZCwgRFJNX01PREVfT0JKRUNUX0FOWSk7CiAJCWlmICghb2JqIHx8 ICFvYmotPnByb3BlcnRpZXMpIHsKIAkJCXJldCA9IC1FTk9FTlQ7Ci0JCQlnb3RvIGZhaWw7CisJ CQlnb3RvIG91dDsKIAkJfQogCiAJCWlmIChnZXRfdXNlcihjb3VudF9wcm9wcywgY291bnRfcHJv cHNfcHRyICsgY29waWVkX29ianMpKSB7CiAJCQlyZXQgPSAtRUZBVUxUOwotCQkJZ290byBmYWls OworCQkJZ290byBvdXQ7CiAJCX0KIAogCQljb3BpZWRfb2JqcysrOwpAQCAtMTQ4NiwyNSArMTQ4 NiwyNSBAQCByZXRyeToKIAogCQkJaWYgKGdldF91c2VyKHByb3BfaWQsIHByb3BzX3B0ciArIGNv cGllZF9wcm9wcykpIHsKIAkJCQlyZXQgPSAtRUZBVUxUOwotCQkJCWdvdG8gZmFpbDsKKwkJCQln b3RvIG91dDsKIAkJCX0KIAogCQkJcHJvcCA9IGRybV9wcm9wZXJ0eV9maW5kKGRldiwgcHJvcF9p ZCk7CiAJCQlpZiAoIXByb3ApIHsKIAkJCQlyZXQgPSAtRU5PRU5UOwotCQkJCWdvdG8gZmFpbDsK KwkJCQlnb3RvIG91dDsKIAkJCX0KIAogCQkJaWYgKGNvcHlfZnJvbV91c2VyKCZwcm9wX3ZhbHVl LAogCQkJCQkgICBwcm9wX3ZhbHVlc19wdHIgKyBjb3BpZWRfcHJvcHMsCiAJCQkJCSAgIHNpemVv Zihwcm9wX3ZhbHVlKSkpIHsKIAkJCQlyZXQgPSAtRUZBVUxUOwotCQkJCWdvdG8gZmFpbDsKKwkJ CQlnb3RvIG91dDsKIAkJCX0KIAogCQkJcmV0ID0gYXRvbWljX3NldF9wcm9wKHN0YXRlLCBvYmos IHByb3AsIHByb3BfdmFsdWUpOwogCQkJaWYgKHJldCkKLQkJCQlnb3RvIGZhaWw7CisJCQkJZ290 byBvdXQ7CiAKIAkJCWNvcGllZF9wcm9wcysrOwogCQl9CkBAIC0xNTIzLDcgKzE1MjMsNyBAQCBy ZXRyeToKIAkJCWUgPSBjcmVhdGVfdmJsYW5rX2V2ZW50KGRldiwgZmlsZV9wcml2LCBhcmctPnVz ZXJfZGF0YSk7CiAJCQlpZiAoIWUpIHsKIAkJCQlyZXQgPSAtRU5PTUVNOwotCQkJCWdvdG8gZmFp bDsKKwkJCQlnb3RvIG91dDsKIAkJCX0KIAogCQkJY3J0Y19zdGF0ZS0+ZXZlbnQgPSBlOwpAQCAt MTUzMywxMyArMTUzMywxNSBAQCByZXRyeToKIAlpZiAoYXJnLT5mbGFncyAmIERSTV9NT0RFX0FU T01JQ19URVNUX09OTFkpIHsKIAkJcmV0ID0gZHJtX2F0b21pY19jaGVja19vbmx5KHN0YXRlKTsK IAkJLyogX2NoZWNrX29ubHkoKSBkb2VzIG5vdCBmcmVlIHN0YXRlLCB1bmxpa2UgX2NvbW1pdCgp ICovCi0JCWRybV9hdG9taWNfc3RhdGVfZnJlZShzdGF0ZSk7CisJCWlmICghcmV0KQorCQkJZHJt X2F0b21pY19zdGF0ZV9mcmVlKHN0YXRlKTsKIAl9IGVsc2UgaWYgKGFyZy0+ZmxhZ3MgJiBEUk1f TU9ERV9BVE9NSUNfTk9OQkxPQ0spIHsKIAkJcmV0ID0gZHJtX2F0b21pY19hc3luY19jb21taXQo c3RhdGUpOwogCX0gZWxzZSB7CiAJCXJldCA9IGRybV9hdG9taWNfY29tbWl0KHN0YXRlKTsKIAl9 CiAKK291dDoKIAkvKiBpZiBzdWNjZWVkZWQsIGZpeHVwIGxlZ2FjeSBwbGFuZSBjcnRjL2ZiIHB0 cnMgYmVmb3JlIGRyb3BwaW5nCiAJICogbG9ja3MgKGllLiB3aGlsZSBpdCBpcyBzdGlsbCBzYWZl IHRvIGRlcmVmIHBsYW5lLT5zdGF0ZSkuICBXZQogCSAqIG5lZWQgdG8gZG8gdGhpcyBoZXJlIGJl Y2F1c2UgdGhlIGRyaXZlciBlbnRyeSBwb2ludHMgY2Fubm90CkBAIC0xNTUyLDQxICsxNTU0LDM0 IEBAIHJldHJ5OgogCQkJCWRybV9mcmFtZWJ1ZmZlcl9yZWZlcmVuY2UobmV3X2ZiKTsKIAkJCXBs YW5lLT5mYiA9IG5ld19mYjsKIAkJCXBsYW5lLT5jcnRjID0gcGxhbmUtPnN0YXRlLT5jcnRjOwot CQl9IGVsc2UgewotCQkJcGxhbmUtPm9sZF9mYiA9IE5VTEw7Ci0JCX0KLQkJaWYgKHBsYW5lLT5v bGRfZmIpIHsKLQkJCWRybV9mcmFtZWJ1ZmZlcl91bnJlZmVyZW5jZShwbGFuZS0+b2xkX2ZiKTsK LQkJCXBsYW5lLT5vbGRfZmIgPSBOVUxMOworCisJCQlpZiAocGxhbmUtPm9sZF9mYikKKwkJCQlk cm1fZnJhbWVidWZmZXJfdW5yZWZlcmVuY2UocGxhbmUtPm9sZF9mYik7CiAJCX0KKwkJcGxhbmUt Pm9sZF9mYiA9IE5VTEw7CiAJfQogCi0JZHJtX21vZGVzZXRfZHJvcF9sb2NrcygmY3R4KTsKLQlk cm1fbW9kZXNldF9hY3F1aXJlX2ZpbmkoJmN0eCk7Ci0KLQlyZXR1cm4gcmV0OworCWlmIChyZXQg PT0gLUVERUFETEspIHsKKwkJZHJtX2F0b21pY19zdGF0ZV9jbGVhcihzdGF0ZSk7CisJCWRybV9t b2Rlc2V0X2JhY2tvZmYoJmN0eCk7CisJCWdvdG8gcmV0cnk7CisJfQogCi1mYWlsOgotCWlmIChy ZXQgPT0gLUVERUFETEspCi0JCWdvdG8gYmFja29mZjsKKwlpZiAocmV0KSB7CisJCWlmIChhcmct PmZsYWdzICYgRFJNX01PREVfUEFHRV9GTElQX0VWRU5UKSB7CisJCQlmb3JfZWFjaF9jcnRjX2lu X3N0YXRlKHN0YXRlLCBjcnRjLCBjcnRjX3N0YXRlLCBpKSB7CisJCQkJaWYgKCFjcnRjX3N0YXRl LT5ldmVudCkKKwkJCQkJY29udGludWU7CiAKLQlpZiAoYXJnLT5mbGFncyAmIERSTV9NT0RFX1BB R0VfRkxJUF9FVkVOVCkgewotCQlmb3JfZWFjaF9jcnRjX2luX3N0YXRlKHN0YXRlLCBjcnRjLCBj cnRjX3N0YXRlLCBpKSB7Ci0JCQlkZXN0cm95X3ZibGFua19ldmVudChkZXYsIGZpbGVfcHJpdiwg Y3J0Y19zdGF0ZS0+ZXZlbnQpOwotCQkJY3J0Y19zdGF0ZS0+ZXZlbnQgPSBOVUxMOworCQkJCWRl c3Ryb3lfdmJsYW5rX2V2ZW50KGRldiwgZmlsZV9wcml2LCBjcnRjX3N0YXRlLT5ldmVudCk7CisJ CQl9CiAJCX0KLQl9CiAKLQlkcm1fYXRvbWljX3N0YXRlX2ZyZWUoc3RhdGUpOworCQlkcm1fYXRv bWljX3N0YXRlX2ZyZWUoc3RhdGUpOworCX0KIAogCWRybV9tb2Rlc2V0X2Ryb3BfbG9ja3MoJmN0 eCk7CiAJZHJtX21vZGVzZXRfYWNxdWlyZV9maW5pKCZjdHgpOwogCiAJcmV0dXJuIHJldDsKLQot YmFja29mZjoKLQlkcm1fYXRvbWljX3N0YXRlX2NsZWFyKHN0YXRlKTsKLQlkcm1fbW9kZXNldF9i YWNrb2ZmKCZjdHgpOwotCi0JZ290byByZXRyeTsKIH0KLS0gCjIuMS4wCgpfX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0 CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9w Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=