From mboxrd@z Thu Jan 1 00:00:00 1970 From: sourab.gupta@intel.com Subject: [PATCH 05/15] drm/i915: Handle the overflow condition for command stream buf Date: Thu, 2 Jun 2016 10:48:39 +0530 Message-ID: <1464844729-2774-6-git-send-email-sourab.gupta@intel.com> References: <1464844729-2774-1-git-send-email-sourab.gupta@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by gabe.freedesktop.org (Postfix) with ESMTP id 962906E309 for ; Thu, 2 Jun 2016 05:17:12 +0000 (UTC) In-Reply-To: <1464844729-2774-1-git-send-email-sourab.gupta@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 Cc: Daniel Vetter , Sourab Gupta , Deepak S List-Id: intel-gfx@lists.freedesktop.org RnJvbTogU291cmFiIEd1cHRhIDxzb3VyYWIuZ3VwdGFAaW50ZWwuY29tPgoKQWRkIGEgY29tcGls ZSB0aW1lIG9wdGlvbiBmb3IgZGV0ZWN0aW5nIHRoZSBvdmVyZmxvdyBjb25kaXRpb24gb2YgY29t bWFuZApzdHJlYW0gYnVmZmVyLCBhbmQgbm90IG92ZXJ3cml0aW5nIHRoZSBvbGQgZW50cmllcyBp biBzdWNoIGEgY2FzZS4KQWxzbywgc2V0IGEgc3RhdHVzIGZsYWcgdG8gZm9yd2FyZCB0aGUgb3Zl cmZsb3cgY29uZGl0aW9uIHRvIHVzZXJzcGFjZSBpZgpvdmVyZmxvdyBpcyBkZXRlY3RlZC4KClNp Z25lZC1vZmYtYnk6IFNvdXJhYiBHdXB0YSA8c291cmFiLmd1cHRhQGludGVsLmNvbT4KLS0tCiBk cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oICB8ICAyICsrCiBkcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X3BlcmYuYyB8IDc1ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0t LS0tLS0KIDIgZmlsZXMgY2hhbmdlZCwgNjIgaW5zZXJ0aW9ucygrKSwgMTUgZGVsZXRpb25zKC0p CgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKaW5kZXggN2VmZGZjMi4uOGNjZThiZCAxMDA2NDQKLS0t IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2Rydi5oCkBAIC0yMTkwLDYgKzIxOTAsOCBAQCBzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSB7CiAJCQlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqOwogCQkJc3RydWN0IGk5 MTVfdm1hICp2bWE7CiAJCQl1OCAqYWRkcjsKKyNkZWZpbmUgSTkxNV9QRVJGX0NNRF9TVFJFQU1f QlVGX1NUQVRVU19PVkVSRkxPVyAoMTw8MCkKKwkJCXUzMiBzdGF0dXM7CiAJCX0gY29tbWFuZF9z dHJlYW1fYnVmOwogCiAJCXN0cnVjdCBsaXN0X2hlYWQgbm9kZV9saXN0OwpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9wZXJmLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X3BlcmYuYwppbmRleCBiNTNjY2Y1Li5hOWNmMTAzIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X3BlcmYuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3Bl cmYuYwpAQCAtODEsNiArODEsOSBAQCBzdGF0aWMgdTMyIGk5MTVfcGVyZl9zdHJlYW1fcGFyYW5v aWQgPSB0cnVlOwogI2RlZmluZSBHRU44X09BUkVQT1JUX1JFQVNPTl9HT19UUkFOU0lUSU9OICAo MTw8MjMpCiAjZGVmaW5lIEdFTjlfT0FSRVBPUlRfUkVBU09OX0NMS19SQVRJTyAgICAgICgxPDwy NCkKIAorLyogRm9yIGRldGVybWluaW5nIHRoZSBiZWhhdmlvciBvbiBvdmVyZmxvdyBvZiBjb21t YW5kIHN0cmVhbSBzYW1wbGVzICovCisjZGVmaW5lIENNRF9TVFJFQU1fQlVGX09WRVJGTE9XX0FM TE9XRUQKKwogLyogRGF0YSBjb21tb24gdG8gcGVyaW9kaWMgYW5kIFJDUyBiYXNlZCBzYW1wbGVz ICovCiBzdHJ1Y3Qgb2Ffc2FtcGxlX2RhdGEgewogCXUzMiBzb3VyY2U7CkBAIC0xODIsNiArMTg1 LDcgQEAgdm9pZCBpOTE1X3BlcmZfY29tbWFuZF9zdHJlYW1faG9vayhzdHJ1Y3QgZHJtX2k5MTVf Z2VtX3JlcXVlc3QgKnJlcXVlc3QpCiAJbXV0ZXhfdW5sb2NrKCZkZXZfcHJpdi0+cGVyZi5zdHJl YW1zX2xvY2spOwogfQogCisjaWZkZWYgQ01EX1NUUkVBTV9CVUZfT1ZFUkZMT1dfQUxMT1dFRAog LyoKICAqIFJlbGVhc2Ugc29tZSBwZXJmIGVudHJpZXMgdG8gbWFrZSBzcGFjZSBmb3IgYSBuZXcg ZW50cnkgZGF0YS4gV2UgZGVyZWZlcmVuY2UKICAqIHRoZSBhc3NvY2lhdGVkIHJlcXVlc3QgYmVm b3JlIGRlbGV0aW5nIHRoZSBlbnRyeS4gQWxzbywgbm8gbmVlZCB0byBjaGVjayBmb3IKQEAgLTIw OCwyNSArMjEyLDI2IEBAIHN0YXRpYyB2b2lkIHJlbGVhc2Vfc29tZV9wZXJmX2VudHJpZXMoc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCQkJYnJlYWs7CiAJfQogfQorI2VuZGlm CiAKIC8qCi0gKiBJbnNlcnQgdGhlIHBlcmYgZW50cnkgdG8gdGhlIGVuZCBvZiB0aGUgbGlzdC4g VGhpcyBmdW5jdGlvbiBuZXZlciBmYWlscywKLSAqIHNpbmNlIGl0IGFsd2F5cyBtYW5hZ2VzIHRv IGluc2VydCB0aGUgZW50cnkuIElmIHRoZSBzcGFjZSBpcyBleGhhdXN0ZWQgaW4KLSAqIHRoZSBi dWZmZXIsIGl0IHdpbGwgcmVtb3ZlIHRoZSBvbGRlc3QgZW50cmllcyBpbiBvcmRlciB0byBtYWtl IHNwYWNlLgorICogSW5zZXJ0IHRoZSBwZXJmIGVudHJ5IHRvIHRoZSBlbmQgb2YgdGhlIGxpc3Qu IElmIHRoZSBvdmVyd3JpdGUgb2Ygb2xkIGVudHJpZXMKKyAqIGlzIGFsbG93ZWQsIHRoZSBmdW5j dGlvbiBhbHdheXMgbWFuYWdlcyB0byBpbnNlcnQgdGhlIGVudHJ5IGFuZCByZXR1cm5zIDAuCisg KiBJZiBvdmVyd3JpdGUgaXMgbm90IGFsbG93ZWQsIG9uIGRldGVjdGlvbiBvZiBvdmVyZmxvdyBj b25kaXRpb24sIGFuCisgKiBhcHByb3ByaWF0ZSBzdGF0dXMgZmxhZyBpcyBzZXQsIGFuZCBmdW5j dGlvbiByZXR1cm5zIC1FTk9TUEMuCiAgKi8KLXN0YXRpYyB2b2lkIGluc2VydF9wZXJmX2VudHJ5 KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKK3N0YXRpYyBpbnQgaW5zZXJ0X3Bl cmZfZW50cnkoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCQkJCXN0cnVjdCBp OTE1X3BlcmZfY3NfZGF0YV9ub2RlICplbnRyeSkKIHsKIAlzdHJ1Y3QgaTkxNV9wZXJmX2NzX2Rh dGFfbm9kZSAqZmlyc3RfZW50cnksICpsYXN0X2VudHJ5OwogCWludCBtYXhfb2Zmc2V0ID0gZGV2 X3ByaXYtPnBlcmYuY29tbWFuZF9zdHJlYW1fYnVmLm9iai0+YmFzZS5zaXplOwogCXUzMiBlbnRy eV9zaXplID0gZGV2X3ByaXYtPnBlcmYub2Eub2FfYnVmZmVyLmZvcm1hdF9zaXplOworCWludCBy ZXQgPSAwOwogCiAJc3Bpbl9sb2NrKCZkZXZfcHJpdi0+cGVyZi5ub2RlX2xpc3RfbG9jayk7CiAJ aWYgKGxpc3RfZW1wdHkoJmRldl9wcml2LT5wZXJmLm5vZGVfbGlzdCkpIHsKIAkJZW50cnktPm9m ZnNldCA9IDA7Ci0JCWxpc3RfYWRkX3RhaWwoJmVudHJ5LT5saW5rLCAmZGV2X3ByaXYtPnBlcmYu bm9kZV9saXN0KTsKLQkJc3Bpbl91bmxvY2soJmRldl9wcml2LT5wZXJmLm5vZGVfbGlzdF9sb2Nr KTsKLQkJcmV0dXJuOworCQlnb3RvIG91dDsKIAl9CiAKIAlmaXJzdF9lbnRyeSA9IGxpc3RfZmly c3RfZW50cnkoJmRldl9wcml2LT5wZXJmLm5vZGVfbGlzdCwKQEAgLTI0NCwyOSArMjQ5LDQ5IEBA IHN0YXRpYyB2b2lkIGluc2VydF9wZXJmX2VudHJ5KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdiwKIAkJICovCiAJCWVsc2UgaWYgKGVudHJ5X3NpemUgPCBmaXJzdF9lbnRyeS0+b2Zm c2V0KQogCQkJZW50cnktPm9mZnNldCA9IDA7Ci0JCS8qIEluc3VmZmljaWVudCBzcGFjZS4gT3Zl cndyaXRlIGV4aXN0aW5nIG9sZCBlbnRyaWVzICovCisJCS8qIEluc3VmZmljaWVudCBzcGFjZSAq LwogCQllbHNlIHsKKyNpZmRlZiBDTURfU1RSRUFNX0JVRl9PVkVSRkxPV19BTExPV0VECiAJCQl1 MzIgdGFyZ2V0X3NpemUgPSBlbnRyeV9zaXplIC0gZmlyc3RfZW50cnktPm9mZnNldDsKIAogCQkJ cmVsZWFzZV9zb21lX3BlcmZfZW50cmllcyhkZXZfcHJpdiwgdGFyZ2V0X3NpemUpOwogCQkJZW50 cnktPm9mZnNldCA9IDA7CisjZWxzZQorCQkJZGV2X3ByaXYtPnBlcmYuY29tbWFuZF9zdHJlYW1f YnVmLnN0YXR1cyB8PQorCQkJCUk5MTVfUEVSRl9DTURfU1RSRUFNX0JVRl9TVEFUVVNfT1ZFUkZM T1c7CisJCQlyZXQgPSAtRU5PU1BDOworCQkJZ290byBvdXRfdW5sb2NrOworI2VuZGlmCiAJCX0K IAl9IGVsc2UgewogCQkvKiBTdWZmaWNpZW50IHNwYWNlIGF2YWlsYWJsZT8gKi8KIAkJaWYgKGxh c3RfZW50cnktPm9mZnNldCArIDIqZW50cnlfc2l6ZSA8IGZpcnN0X2VudHJ5LT5vZmZzZXQpCiAJ CQllbnRyeS0+b2Zmc2V0ID0gbGFzdF9lbnRyeS0+b2Zmc2V0ICsgZW50cnlfc2l6ZTsKLQkJLyog SW5zdWZmaWNpZW50IHNwYWNlLiBPdmVyd3JpdGUgZXhpc3Rpbmcgb2xkIGVudHJpZXMgKi8KKwkJ LyogSW5zdWZmaWNpZW50IHNwYWNlICovCiAJCWVsc2UgeworI2lmZGVmIENNRF9TVFJFQU1fQlVG X09WRVJGTE9XX0FMTE9XRUQKIAkJCXUzMiB0YXJnZXRfc2l6ZSA9IGVudHJ5X3NpemUgLQogCQkJ CShmaXJzdF9lbnRyeS0+b2Zmc2V0IC0gbGFzdF9lbnRyeS0+b2Zmc2V0IC0KIAkJCQllbnRyeV9z aXplKTsKIAogCQkJcmVsZWFzZV9zb21lX3BlcmZfZW50cmllcyhkZXZfcHJpdiwgdGFyZ2V0X3Np emUpOwogCQkJZW50cnktPm9mZnNldCA9IGxhc3RfZW50cnktPm9mZnNldCArIGVudHJ5X3NpemU7 CisjZWxzZQorCQkJZGV2X3ByaXYtPnBlcmYuY29tbWFuZF9zdHJlYW1fYnVmLnN0YXR1cyB8PQor CQkJCUk5MTVfUEVSRl9DTURfU1RSRUFNX0JVRl9TVEFUVVNfT1ZFUkZMT1c7CisJCQlyZXQgPSAt RU5PU1BDOworCQkJZ290byBvdXRfdW5sb2NrOworI2VuZGlmCiAJCX0KIAl9CisKK291dDoKIAls aXN0X2FkZF90YWlsKCZlbnRyeS0+bGluaywgJmRldl9wcml2LT5wZXJmLm5vZGVfbGlzdCk7Cisj aWZuZGVmIENNRF9TVFJFQU1fQlVGX09WRVJGTE9XX0FMTE9XRUQKK291dF91bmxvY2s6CisjZW5k aWYKIAlzcGluX3VubG9jaygmZGV2X3ByaXYtPnBlcmYubm9kZV9saXN0X2xvY2spOworCXJldHVy biByZXQ7CiB9CiAKIHN0YXRpYyB2b2lkIGk5MTVfcGVyZl9jb21tYW5kX3N0cmVhbV9ob29rX29h KHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxKQpAQCAtMjg4LDE3ICszMTMsMTcgQEAg c3RhdGljIHZvaWQgaTkxNV9wZXJmX2NvbW1hbmRfc3RyZWFtX2hvb2tfb2Eoc3RydWN0IGRybV9p OTE1X2dlbV9yZXF1ZXN0ICpyZXEpCiAJCXJldHVybjsKIAl9CiAKKwlyZXQgPSBpbnNlcnRfcGVy Zl9lbnRyeShkZXZfcHJpdiwgZW50cnkpOworCWlmIChyZXQpCisJCWdvdG8gb3V0X2ZyZWU7CisK IAlyZXQgPSBpbnRlbF9yaW5nX2JlZ2luKHJlcSwgNCk7Ci0JaWYgKHJldCkgewotCQlrZnJlZShl bnRyeSk7Ci0JCXJldHVybjsKLQl9CisJaWYgKHJldCkKKwkJZ290byBvdXQ7CiAKIAllbnRyeS0+ Y3R4X2lkID0gY3R4LT5od19pZDsKIAlpOTE1X2dlbV9yZXF1ZXN0X2Fzc2lnbigmZW50cnktPnJl cXVlc3QsIHJlcSk7CiAKLQlpbnNlcnRfcGVyZl9lbnRyeShkZXZfcHJpdiwgZW50cnkpOwotCiAJ YWRkciA9IGRldl9wcml2LT5wZXJmLmNvbW1hbmRfc3RyZWFtX2J1Zi52bWEtPm5vZGUuc3RhcnQg KwogCQllbnRyeS0+b2Zmc2V0OwogCkBAIC0zMjksNiArMzU0LDEzIEBAIHN0YXRpYyB2b2lkIGk5 MTVfcGVyZl9jb21tYW5kX3N0cmVhbV9ob29rX29hKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVz dCAqcmVxKQogCQlpbnRlbF9yaW5nX2FkdmFuY2UoZW5naW5lKTsKIAl9CiAJaTkxNV92bWFfbW92 ZV90b19hY3RpdmUoZGV2X3ByaXYtPnBlcmYuY29tbWFuZF9zdHJlYW1fYnVmLnZtYSwgcmVxKTsK KwlyZXR1cm47CitvdXQ6CisJc3Bpbl9sb2NrKCZkZXZfcHJpdi0+cGVyZi5ub2RlX2xpc3RfbG9j ayk7CisJbGlzdF9kZWwoJmVudHJ5LT5saW5rKTsKKwlzcGluX3VubG9jaygmZGV2X3ByaXYtPnBl cmYubm9kZV9saXN0X2xvY2spOworb3V0X2ZyZWU6CisJa2ZyZWUoZW50cnkpOwogfQogCiBzdGF0 aWMgaW50IGk5MTVfb2FfcmNzX3dhaXRfZ3B1KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdikKQEAgLTEwMzksNyArMTA3MSwyMCBAQCBzdGF0aWMgaW50IG9hX3Jjc19hcHBlbmRfcmVw b3J0cyhzdHJ1Y3QgaTkxNV9wZXJmX3N0cmVhbSAqc3RyZWFtLAogCXN0cnVjdCBpOTE1X3BlcmZf Y3NfZGF0YV9ub2RlICplbnRyeSwgKm5leHQ7CiAJTElTVF9IRUFEKGZyZWVfbGlzdCk7CiAJaW50 IHJldCA9IDA7CisjaWZuZGVmIENNRF9TVFJFQU1fQlVGX09WRVJGTE9XX0FMTE9XRUQKKwl1MzIg Y3NfYnVmX3N0YXR1cyA9IGRldl9wcml2LT5wZXJmLmNvbW1hbmRfc3RyZWFtX2J1Zi5zdGF0dXM7 CisKKwlpZiAodW5saWtlbHkoY3NfYnVmX3N0YXR1cyAmCisJCQlJOTE1X1BFUkZfQ01EX1NUUkVB TV9CVUZfU1RBVFVTX09WRVJGTE9XKSkgeworCQlyZXQgPSBhcHBlbmRfb2Ffc3RhdHVzKHN0cmVh bSwgcmVhZF9zdGF0ZSwKKwkJCQkgICAgICAgRFJNX0k5MTVfUEVSRl9SRUNPUkRfT0FfQlVGRkVS X09WRVJGTE9XKTsKKwkJaWYgKHJldCkKKwkJCXJldHVybiByZXQ7CiAKKwkJZGV2X3ByaXYtPnBl cmYuY29tbWFuZF9zdHJlYW1fYnVmLnN0YXR1cyAmPQorCQkJCX5JOTE1X1BFUkZfQ01EX1NUUkVB TV9CVUZfU1RBVFVTX09WRVJGTE9XOworCX0KKyNlbmRpZgogCXNwaW5fbG9jaygmZGV2X3ByaXYt PnBlcmYubm9kZV9saXN0X2xvY2spOwogCWlmIChsaXN0X2VtcHR5KCZkZXZfcHJpdi0+cGVyZi5u b2RlX2xpc3QpKSB7CiAJCXNwaW5fdW5sb2NrKCZkZXZfcHJpdi0+cGVyZi5ub2RlX2xpc3RfbG9j ayk7Ci0tIAoxLjkuMQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Au b3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwt Z2Z4Cg==