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: Fri, 4 Nov 2016 15:00:34 +0530 Message-ID: <1478251844-23509-6-git-send-email-sourab.gupta@intel.com> References: <1478251844-23509-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 mga03.intel.com (mga03.intel.com [134.134.136.65]) by gabe.freedesktop.org (Postfix) with ESMTPS id 141966E8F6 for ; Fri, 4 Nov 2016 09:29:14 +0000 (UTC) In-Reply-To: <1478251844-23509-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: "Christopher S . Hall" , Daniel Vetter , Sourab Gupta , Matthew Auld , Thomas Gleixner List-Id: intel-gfx@lists.freedesktop.org RnJvbTogU291cmFiIEd1cHRhIDxzb3VyYWIuZ3VwdGFAaW50ZWwuY29tPgoKQWRkIGEgY29tcGls ZSB0aW1lIG9wdGlvbiBmb3IgZGV0ZWN0aW5nIHRoZSBvdmVyZmxvdyBjb25kaXRpb24gb2YgY29t bWFuZApzdHJlYW0gYnVmZmVyLCBhbmQgbm90IG92ZXJ3cml0aW5nIHRoZSBvbGQgZW50cmllcyBp biBzdWNoIGEgY2FzZS4KQWxzbywgc2V0IGEgc3RhdHVzIGZsYWcgdG8gZm9yd2FyZCB0aGUgb3Zl cmZsb3cgY29uZGl0aW9uIHRvIHVzZXJzcGFjZSBpZgpvdmVyZmxvdyBpcyBkZXRlY3RlZC4KClNp Z25lZC1vZmYtYnk6IFNvdXJhYiBHdXB0YSA8c291cmFiLmd1cHRhQGludGVsLmNvbT4KLS0tCiBk cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oICB8ICAyICsrCiBkcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X3BlcmYuYyB8IDc1ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0t LS0tLS0KIDIgZmlsZXMgY2hhbmdlZCwgNjIgaW5zZXJ0aW9ucygrKSwgMTUgZGVsZXRpb25zKC0p CgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKaW5kZXggZGVkYjdmOC4uZTljZjkzOSAxMDA2NDQKLS0t IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2Rydi5oCkBAIC0yMjM1LDYgKzIyMzUsOCBAQCBzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSB7CiAJCQlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqOwogCQkJc3RydWN0IGk5 MTVfdm1hICp2bWE7CiAJCQl1OCAqYWRkcjsKKyNkZWZpbmUgSTkxNV9QRVJGX0NNRF9TVFJFQU1f QlVGX1NUQVRVU19PVkVSRkxPVyAoMTw8MCkKKwkJCXUzMiBzdGF0dXM7CiAJCX0gY29tbWFuZF9z dHJlYW1fYnVmOwogCiAJCXN0cnVjdCBsaXN0X2hlYWQgbm9kZV9saXN0OwpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9wZXJmLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X3BlcmYuYwppbmRleCAyZWU0NzExLi5lMTBlNzhmIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X3BlcmYuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3Bl cmYuYwpAQCAtMjQ3LDYgKzI0Nyw5IEBAIHN0YXRpYyB1MzIgaTkxNV9wZXJmX3N0cmVhbV9wYXJh bm9pZCA9IHRydWU7CiAjZGVmaW5lIEdFTjhfT0FSRVBPUlRfUkVBU09OX0dPX1RSQU5TSVRJT04g ICgxPDwyMykKICNkZWZpbmUgR0VOOV9PQVJFUE9SVF9SRUFTT05fQ0xLX1JBVElPICAgICAgKDE8 PDI0KQogCisvKiBGb3IgZGV0ZXJtaW5pbmcgdGhlIGJlaGF2aW9yIG9uIG92ZXJmbG93IG9mIGNv bW1hbmQgc3RyZWFtIHNhbXBsZXMgKi8KKyNkZWZpbmUgQ01EX1NUUkVBTV9CVUZfT1ZFUkZMT1df QUxMT1dFRAorCiAvKiBEYXRhIGNvbW1vbiB0byBwZXJpb2RpYyBhbmQgUkNTIGJhc2VkIHNhbXBs ZXMgKi8KIHN0cnVjdCBvYV9zYW1wbGVfZGF0YSB7CiAJdTMyIHNvdXJjZTsKQEAgLTM0OCw2ICsz NTEsNyBAQCB2b2lkIGk5MTVfcGVyZl9jb21tYW5kX3N0cmVhbV9ob29rKHN0cnVjdCBkcm1faTkx NV9nZW1fcmVxdWVzdCAqcmVxdWVzdCkKIAltdXRleF91bmxvY2soJmRldl9wcml2LT5wZXJmLnN0 cmVhbXNfbG9jayk7CiB9CiAKKyNpZmRlZiBDTURfU1RSRUFNX0JVRl9PVkVSRkxPV19BTExPV0VE CiAvKgogICogUmVsZWFzZSBzb21lIHBlcmYgZW50cmllcyB0byBtYWtlIHNwYWNlIGZvciBhIG5l dyBlbnRyeSBkYXRhLiBXZSBkZXJlZmVyZW5jZQogICogdGhlIGFzc29jaWF0ZWQgcmVxdWVzdCBi ZWZvcmUgZGVsZXRpbmcgdGhlIGVudHJ5LiBBbHNvLCBubyBuZWVkIHRvIGNoZWNrIGZvcgpAQCAt Mzc0LDI1ICszNzgsMjYgQEAgc3RhdGljIHZvaWQgcmVsZWFzZV9zb21lX3BlcmZfZW50cmllcyhz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJCQlicmVhazsKIAl9CiB9CisjZW5k aWYKIAogLyoKLSAqIEluc2VydCB0aGUgcGVyZiBlbnRyeSB0byB0aGUgZW5kIG9mIHRoZSBsaXN0 LiBUaGlzIGZ1bmN0aW9uIG5ldmVyIGZhaWxzLAotICogc2luY2UgaXQgYWx3YXlzIG1hbmFnZXMg dG8gaW5zZXJ0IHRoZSBlbnRyeS4gSWYgdGhlIHNwYWNlIGlzIGV4aGF1c3RlZCBpbgotICogdGhl IGJ1ZmZlciwgaXQgd2lsbCByZW1vdmUgdGhlIG9sZGVzdCBlbnRyaWVzIGluIG9yZGVyIHRvIG1h a2Ugc3BhY2UuCisgKiBJbnNlcnQgdGhlIHBlcmYgZW50cnkgdG8gdGhlIGVuZCBvZiB0aGUgbGlz dC4gSWYgdGhlIG92ZXJ3cml0ZSBvZiBvbGQgZW50cmllcworICogaXMgYWxsb3dlZCwgdGhlIGZ1 bmN0aW9uIGFsd2F5cyBtYW5hZ2VzIHRvIGluc2VydCB0aGUgZW50cnkgYW5kIHJldHVybnMgMC4K KyAqIElmIG92ZXJ3cml0ZSBpcyBub3QgYWxsb3dlZCwgb24gZGV0ZWN0aW9uIG9mIG92ZXJmbG93 IGNvbmRpdGlvbiwgYW4KKyAqIGFwcHJvcHJpYXRlIHN0YXR1cyBmbGFnIGlzIHNldCwgYW5kIGZ1 bmN0aW9uIHJldHVybnMgLUVOT1NQQy4KICAqLwotc3RhdGljIHZvaWQgaW5zZXJ0X3BlcmZfZW50 cnkoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAorc3RhdGljIGludCBpbnNlcnRf cGVyZl9lbnRyeShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJCQkJc3RydWN0 IGk5MTVfcGVyZl9jc19kYXRhX25vZGUgKmVudHJ5KQogewogCXN0cnVjdCBpOTE1X3BlcmZfY3Nf ZGF0YV9ub2RlICpmaXJzdF9lbnRyeSwgKmxhc3RfZW50cnk7CiAJaW50IG1heF9vZmZzZXQgPSBk ZXZfcHJpdi0+cGVyZi5jb21tYW5kX3N0cmVhbV9idWYub2JqLT5iYXNlLnNpemU7CiAJdTMyIGVu dHJ5X3NpemUgPSBkZXZfcHJpdi0+cGVyZi5vYS5vYV9idWZmZXIuZm9ybWF0X3NpemU7CisJaW50 IHJldCA9IDA7CiAKIAlzcGluX2xvY2soJmRldl9wcml2LT5wZXJmLm5vZGVfbGlzdF9sb2NrKTsK IAlpZiAobGlzdF9lbXB0eSgmZGV2X3ByaXYtPnBlcmYubm9kZV9saXN0KSkgewogCQllbnRyeS0+ b2Zmc2V0ID0gMDsKLQkJbGlzdF9hZGRfdGFpbCgmZW50cnktPmxpbmssICZkZXZfcHJpdi0+cGVy Zi5ub2RlX2xpc3QpOwotCQlzcGluX3VubG9jaygmZGV2X3ByaXYtPnBlcmYubm9kZV9saXN0X2xv Y2spOwotCQlyZXR1cm47CisJCWdvdG8gb3V0OwogCX0KIAogCWZpcnN0X2VudHJ5ID0gbGlzdF9m aXJzdF9lbnRyeSgmZGV2X3ByaXYtPnBlcmYubm9kZV9saXN0LApAQCAtNDEwLDI5ICs0MTUsNDkg QEAgc3RhdGljIHZvaWQgaW5zZXJ0X3BlcmZfZW50cnkoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2LAogCQkgKi8KIAkJZWxzZSBpZiAoZW50cnlfc2l6ZSA8IGZpcnN0X2VudHJ5LT5v ZmZzZXQpCiAJCQllbnRyeS0+b2Zmc2V0ID0gMDsKLQkJLyogSW5zdWZmaWNpZW50IHNwYWNlLiBP dmVyd3JpdGUgZXhpc3Rpbmcgb2xkIGVudHJpZXMgKi8KKwkJLyogSW5zdWZmaWNpZW50IHNwYWNl ICovCiAJCWVsc2UgeworI2lmZGVmIENNRF9TVFJFQU1fQlVGX09WRVJGTE9XX0FMTE9XRUQKIAkJ CXUzMiB0YXJnZXRfc2l6ZSA9IGVudHJ5X3NpemUgLSBmaXJzdF9lbnRyeS0+b2Zmc2V0OwogCiAJ CQlyZWxlYXNlX3NvbWVfcGVyZl9lbnRyaWVzKGRldl9wcml2LCB0YXJnZXRfc2l6ZSk7CiAJCQll bnRyeS0+b2Zmc2V0ID0gMDsKKyNlbHNlCisJCQlkZXZfcHJpdi0+cGVyZi5jb21tYW5kX3N0cmVh bV9idWYuc3RhdHVzIHw9CisJCQkJSTkxNV9QRVJGX0NNRF9TVFJFQU1fQlVGX1NUQVRVU19PVkVS RkxPVzsKKwkJCXJldCA9IC1FTk9TUEM7CisJCQlnb3RvIG91dF91bmxvY2s7CisjZW5kaWYKIAkJ fQogCX0gZWxzZSB7CiAJCS8qIFN1ZmZpY2llbnQgc3BhY2UgYXZhaWxhYmxlPyAqLwogCQlpZiAo bGFzdF9lbnRyeS0+b2Zmc2V0ICsgMiplbnRyeV9zaXplIDwgZmlyc3RfZW50cnktPm9mZnNldCkK IAkJCWVudHJ5LT5vZmZzZXQgPSBsYXN0X2VudHJ5LT5vZmZzZXQgKyBlbnRyeV9zaXplOwotCQkv KiBJbnN1ZmZpY2llbnQgc3BhY2UuIE92ZXJ3cml0ZSBleGlzdGluZyBvbGQgZW50cmllcyAqLwor CQkvKiBJbnN1ZmZpY2llbnQgc3BhY2UgKi8KIAkJZWxzZSB7CisjaWZkZWYgQ01EX1NUUkVBTV9C VUZfT1ZFUkZMT1dfQUxMT1dFRAogCQkJdTMyIHRhcmdldF9zaXplID0gZW50cnlfc2l6ZSAtCiAJ CQkJKGZpcnN0X2VudHJ5LT5vZmZzZXQgLSBsYXN0X2VudHJ5LT5vZmZzZXQgLQogCQkJCWVudHJ5 X3NpemUpOwogCiAJCQlyZWxlYXNlX3NvbWVfcGVyZl9lbnRyaWVzKGRldl9wcml2LCB0YXJnZXRf c2l6ZSk7CiAJCQllbnRyeS0+b2Zmc2V0ID0gbGFzdF9lbnRyeS0+b2Zmc2V0ICsgZW50cnlfc2l6 ZTsKKyNlbHNlCisJCQlkZXZfcHJpdi0+cGVyZi5jb21tYW5kX3N0cmVhbV9idWYuc3RhdHVzIHw9 CisJCQkJSTkxNV9QRVJGX0NNRF9TVFJFQU1fQlVGX1NUQVRVU19PVkVSRkxPVzsKKwkJCXJldCA9 IC1FTk9TUEM7CisJCQlnb3RvIG91dF91bmxvY2s7CisjZW5kaWYKIAkJfQogCX0KKworb3V0Ogog CWxpc3RfYWRkX3RhaWwoJmVudHJ5LT5saW5rLCAmZGV2X3ByaXYtPnBlcmYubm9kZV9saXN0KTsK KyNpZm5kZWYgQ01EX1NUUkVBTV9CVUZfT1ZFUkZMT1dfQUxMT1dFRAorb3V0X3VubG9jazoKKyNl bmRpZgogCXNwaW5fdW5sb2NrKCZkZXZfcHJpdi0+cGVyZi5ub2RlX2xpc3RfbG9jayk7CisJcmV0 dXJuIHJldDsKIH0KIAogc3RhdGljIHZvaWQgaTkxNV9wZXJmX2NvbW1hbmRfc3RyZWFtX2hvb2tf b2Eoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEpCkBAIC00NTAsMTcgKzQ3NSwxNyBA QCBzdGF0aWMgdm9pZCBpOTE1X3BlcmZfY29tbWFuZF9zdHJlYW1faG9va19vYShzdHJ1Y3QgZHJt X2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSkKIAkJcmV0dXJuOwogCX0KIAorCXJldCA9IGluc2VydF9w ZXJmX2VudHJ5KGRldl9wcml2LCBlbnRyeSk7CisJaWYgKHJldCkKKwkJZ290byBvdXRfZnJlZTsK KwogCXJldCA9IGludGVsX3JpbmdfYmVnaW4ocmVxLCA0KTsKLQlpZiAocmV0KSB7Ci0JCWtmcmVl KGVudHJ5KTsKLQkJcmV0dXJuOwotCX0KKwlpZiAocmV0KQorCQlnb3RvIG91dDsKIAogCWVudHJ5 LT5jdHhfaWQgPSBjdHgtPmh3X2lkOwogCWk5MTVfZ2VtX3JlcXVlc3RfYXNzaWduKCZlbnRyeS0+ cmVxdWVzdCwgcmVxKTsKIAotCWluc2VydF9wZXJmX2VudHJ5KGRldl9wcml2LCBlbnRyeSk7Ci0K IAlhZGRyID0gZGV2X3ByaXYtPnBlcmYuY29tbWFuZF9zdHJlYW1fYnVmLnZtYS0+bm9kZS5zdGFy dCArCiAJCWVudHJ5LT5vZmZzZXQ7CiAKQEAgLTQ4MSw2ICs1MDYsMTMgQEAgc3RhdGljIHZvaWQg aTkxNV9wZXJmX2NvbW1hbmRfc3RyZWFtX2hvb2tfb2Eoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1 ZXN0ICpyZXEpCiAJaW50ZWxfcmluZ19hZHZhbmNlKHJpbmcpOwogCWk5MTVfdm1hX21vdmVfdG9f YWN0aXZlKGRldl9wcml2LT5wZXJmLmNvbW1hbmRfc3RyZWFtX2J1Zi52bWEsIHJlcSwKIAkJCQkJ RVhFQ19PQkpFQ1RfV1JJVEUpOworCXJldHVybjsKK291dDoKKwlzcGluX2xvY2soJmRldl9wcml2 LT5wZXJmLm5vZGVfbGlzdF9sb2NrKTsKKwlsaXN0X2RlbCgmZW50cnktPmxpbmspOworCXNwaW5f dW5sb2NrKCZkZXZfcHJpdi0+cGVyZi5ub2RlX2xpc3RfbG9jayk7CitvdXRfZnJlZToKKwlrZnJl ZShlbnRyeSk7CiB9CiAKIHN0YXRpYyBpbnQgaTkxNV9vYV9yY3Nfd2FpdF9ncHUoc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQpAQCAtMTI0MCw3ICsxMjcyLDIwIEBAIHN0YXRpYyBp bnQgb2FfcmNzX2FwcGVuZF9yZXBvcnRzKHN0cnVjdCBpOTE1X3BlcmZfc3RyZWFtICpzdHJlYW0s CiAJc3RydWN0IGk5MTVfcGVyZl9jc19kYXRhX25vZGUgKmVudHJ5LCAqbmV4dDsKIAlMSVNUX0hF QUQoZnJlZV9saXN0KTsKIAlpbnQgcmV0ID0gMDsKKyNpZm5kZWYgQ01EX1NUUkVBTV9CVUZfT1ZF UkZMT1dfQUxMT1dFRAorCXUzMiBjc19idWZfc3RhdHVzID0gZGV2X3ByaXYtPnBlcmYuY29tbWFu ZF9zdHJlYW1fYnVmLnN0YXR1czsKKworCWlmICh1bmxpa2VseShjc19idWZfc3RhdHVzICYKKwkJ CUk5MTVfUEVSRl9DTURfU1RSRUFNX0JVRl9TVEFUVVNfT1ZFUkZMT1cpKSB7CisJCXJldCA9IGFw cGVuZF9vYV9zdGF0dXMoc3RyZWFtLCByZWFkX3N0YXRlLAorCQkJCSAgICAgICBEUk1fSTkxNV9Q RVJGX1JFQ09SRF9PQV9CVUZGRVJfT1ZFUkZMT1cpOworCQlpZiAocmV0KQorCQkJcmV0dXJuIHJl dDsKIAorCQlkZXZfcHJpdi0+cGVyZi5jb21tYW5kX3N0cmVhbV9idWYuc3RhdHVzICY9CisJCQkJ fkk5MTVfUEVSRl9DTURfU1RSRUFNX0JVRl9TVEFUVVNfT1ZFUkZMT1c7CisJfQorI2VuZGlmCiAJ c3Bpbl9sb2NrKCZkZXZfcHJpdi0+cGVyZi5ub2RlX2xpc3RfbG9jayk7CiAJaWYgKGxpc3RfZW1w dHkoJmRldl9wcml2LT5wZXJmLm5vZGVfbGlzdCkpIHsKIAkJc3Bpbl91bmxvY2soJmRldl9wcml2 LT5wZXJmLm5vZGVfbGlzdF9sb2NrKTsKLS0gCjEuOS4xCgpfX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdm eEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFp bG1hbi9saXN0aW5mby9pbnRlbC1nZngK