From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chris Wilson Subject: [PATCH 070/190] drm/i915: Unify legacy/execlists submit_execbuf callbacks Date: Mon, 11 Jan 2016 09:17:21 +0000 Message-ID: <1452503961-14837-70-git-send-email-chris@chris-wilson.co.uk> References: <1452503961-14837-1-git-send-email-chris@chris-wilson.co.uk> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wm0-f68.google.com (mail-wm0-f68.google.com [74.125.82.68]) by gabe.freedesktop.org (Postfix) with ESMTPS id D30886E257 for ; Mon, 11 Jan 2016 01:20:59 -0800 (PST) Received: by mail-wm0-f68.google.com with SMTP id f206so25334221wmf.2 for ; Mon, 11 Jan 2016 01:20:59 -0800 (PST) In-Reply-To: <1452503961-14837-1-git-send-email-chris@chris-wilson.co.uk> 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 List-Id: intel-gfx@lists.freedesktop.org Tm93IHRoYXQgZW1pdHRpbmcgcmVxdWVzdHMgaXMgaWRlbnRpY2FsIGJldHdlZW4gbGVnYWN5IGFu ZCBleGVjbGlzdHMsIHdlCmNhbiB1c2UgdGhlIHNhbWUgZnVuY3Rpb24gdG8gYnVpbGQgdXAgdGhl IHJpbmcgZm9yIHN1Ym1pdHRpbmcgdG8gZWl0aGVyCmVuZ2luZS4gKFdpdGggdGhlIGV4Y2VwdGlv biBvZiBpOTE1X3N3aXRjaF9jb250ZXh0cygpLCBidXQgaW4gdGltZSB0aGF0CndpbGwgYWxzbyBi ZSBoYW5kbGVkIGdyYWNlZnVsbHkuKQoKU2lnbmVkLW9mZi1ieTogQ2hyaXMgV2lsc29uIDxjaHJp c0BjaHJpcy13aWxzb24uY28udWs+Ci0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYu aCAgICAgICAgICAgIHwgIDIwIC0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5j ICAgICAgICAgICAgfCAgIDIgLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fY29udGV4 dC5jICAgIHwgICAzICstCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9leGVjYnVmZmVy LmMgfCAgMjQgKysrKy0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYyAgICAgICAg ICAgfCAxMjkgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2xyYy5oICAgICAgICAgICB8ICAgNCAtCiA2IGZpbGVzIGNoYW5nZWQsIDIwIGlu c2VydGlvbnMoKyksIDE2MiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAppbmRl eCAwYzU4MDEyNGQ0NmQuLmNhZTQ0OGUyMzhjYSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9kcnYuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCkBA IC0xNjU1LDE4ICsxNjU1LDYgQEAgc3RydWN0IGk5MTVfdmlydHVhbF9ncHUgewogCWJvb2wgYWN0 aXZlOwogfTsKIAotc3RydWN0IGk5MTVfZXhlY2J1ZmZlcl9wYXJhbXMgewotCXN0cnVjdCBkcm1f ZGV2aWNlICAgICAgICAgICAgICAgKmRldjsKLQlzdHJ1Y3QgZHJtX2ZpbGUgICAgICAgICAgICAg ICAgICpmaWxlOwotCXVpbnQzMl90ICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGF0Y2hfZmxh Z3M7Ci0JdWludDMyX3QgICAgICAgICAgICAgICAgICAgICAgICBhcmdzX2JhdGNoX3N0YXJ0X29m ZnNldDsKLQl1aW50NjRfdCAgICAgICAgICAgICAgICAgICAgICAgIGJhdGNoX29ial92bV9vZmZz ZXQ7Ci0Jc3RydWN0IGludGVsX2VuZ2luZV9jcyAgICAgICAgICAqcmluZzsKLQlzdHJ1Y3QgZHJt X2k5MTVfZ2VtX29iamVjdCAgICAgICpiYXRjaF9vYmo7Ci0Jc3RydWN0IGludGVsX2NvbnRleHQg ICAgICAgICAgICAqY3R4OwotCXN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAgICAgKnJlcXVl c3Q7Ci19OwotCiAvKiB1c2VkIGluIGNvbXB1dGluZyB0aGUgbmV3IHdhdGVybWFya3Mgc3RhdGUg Ki8KIHN0cnVjdCBpbnRlbF93bV9jb25maWcgewogCXVuc2lnbmVkIGludCBudW1fcGlwZXNfYWN0 aXZlOwpAQCAtMTkzNCw5ICsxOTIyLDYgQEAgc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgewogCiAJ LyogQWJzdHJhY3QgdGhlIHN1Ym1pc3Npb24gbWVjaGFuaXNtIChsZWdhY3kgcmluZ2J1ZmZlciBv ciBleGVjbGlzdHMpIGF3YXkgKi8KIAlzdHJ1Y3QgewotCQlpbnQgKCpleGVjYnVmX3N1Ym1pdCko c3RydWN0IGk5MTVfZXhlY2J1ZmZlcl9wYXJhbXMgKnBhcmFtcywKLQkJCQkgICAgICBzdHJ1Y3Qg ZHJtX2k5MTVfZ2VtX2V4ZWNidWZmZXIyICphcmdzLAotCQkJCSAgICAgIHN0cnVjdCBsaXN0X2hl YWQgKnZtYXMpOwogCQlpbnQgKCppbml0X3JpbmdzKShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsK IAkJdm9pZCAoKmNsZWFudXBfcmluZykoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZyk7CiAJ CXZvaWQgKCpzdG9wX3JpbmcpKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcpOwpAQCAtMjY1 NiwxMSArMjY0MSw2IEBAIGludCBpOTE1X2dlbV9zZXRfZG9tYWluX2lvY3RsKHN0cnVjdCBkcm1f ZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCiAJCQkgICAgICBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVf cHJpdik7CiBpbnQgaTkxNV9nZW1fc3dfZmluaXNoX2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpk ZXYsIHZvaWQgKmRhdGEsCiAJCQkgICAgIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KTsKLXZv aWQgaTkxNV9nZW1fZXhlY2J1ZmZlcl9tb3ZlX3RvX2FjdGl2ZShzdHJ1Y3QgbGlzdF9oZWFkICp2 bWFzLAotCQkJCQlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSk7Ci1pbnQgaTkxNV9n ZW1fcmluZ2J1ZmZlcl9zdWJtaXNzaW9uKHN0cnVjdCBpOTE1X2V4ZWNidWZmZXJfcGFyYW1zICpw YXJhbXMsCi0JCQkJICAgc3RydWN0IGRybV9pOTE1X2dlbV9leGVjYnVmZmVyMiAqYXJncywKLQkJ CQkgICBzdHJ1Y3QgbGlzdF9oZWFkICp2bWFzKTsKIGludCBpOTE1X2dlbV9leGVjYnVmZmVyKHN0 cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCiAJCQlzdHJ1Y3QgZHJtX2ZpbGUgKmZp bGVfcHJpdik7CiBpbnQgaTkxNV9nZW1fZXhlY2J1ZmZlcjIoc3RydWN0IGRybV9kZXZpY2UgKmRl diwgdm9pZCAqZGF0YSwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2Vt LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jCmluZGV4IDViNWFmZGNkOTYzNC4u MjM1YTNkZTZlMGEwIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5j CisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMKQEAgLTQzMDgsMTIgKzQzMDgs MTAgQEAgaW50IGk5MTVfZ2VtX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIAltdXRleF9s b2NrKCZkZXYtPnN0cnVjdF9tdXRleCk7CiAKIAlpZiAoIWk5MTUuZW5hYmxlX2V4ZWNsaXN0cykg ewotCQlkZXZfcHJpdi0+Z3QuZXhlY2J1Zl9zdWJtaXQgPSBpOTE1X2dlbV9yaW5nYnVmZmVyX3N1 Ym1pc3Npb247CiAJCWRldl9wcml2LT5ndC5pbml0X3JpbmdzID0gaTkxNV9nZW1faW5pdF9yaW5n czsKIAkJZGV2X3ByaXYtPmd0LmNsZWFudXBfcmluZyA9IGludGVsX2VuZ2luZV9jbGVhbnVwOwog CQlkZXZfcHJpdi0+Z3Quc3RvcF9yaW5nID0gaW50ZWxfZW5naW5lX3N0b3A7CiAJfSBlbHNlIHsK LQkJZGV2X3ByaXYtPmd0LmV4ZWNidWZfc3VibWl0ID0gaW50ZWxfZXhlY2xpc3RzX3N1Ym1pc3Np b247CiAJCWRldl9wcml2LT5ndC5pbml0X3JpbmdzID0gaW50ZWxfbG9naWNhbF9yaW5nc19pbml0 OwogCQlkZXZfcHJpdi0+Z3QuY2xlYW51cF9yaW5nID0gaW50ZWxfbG9naWNhbF9yaW5nX2NsZWFu dXA7CiAJCWRldl9wcml2LT5ndC5zdG9wX3JpbmcgPSBpbnRlbF9sb2dpY2FsX3Jpbmdfc3RvcDsK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2NvbnRleHQuYyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2NvbnRleHQuYwppbmRleCBjMDc4ZWJjMjlkYTUu LjcyYjA4NzVhOTVhNCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1f Y29udGV4dC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2NvbnRleHQuYwpA QCAtODE5LDggKzgxOSw5IEBAIHVucGluX291dDoKICAqLwogaW50IGk5MTVfc3dpdGNoX2NvbnRl eHQoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEpCiB7CisJaWYgKGk5MTUuZW5hYmxl X2V4ZWNsaXN0cykKKwkJcmV0dXJuIDA7CiAKLQlXQVJOX09OKGk5MTUuZW5hYmxlX2V4ZWNsaXN0 cyk7CiAJV0FSTl9PTighbXV0ZXhfaXNfbG9ja2VkKCZyZXEtPmk5MTUtPmRldi0+c3RydWN0X211 dGV4KSk7CiAKIAlpZiAocmVxLT5jdHgtPmxlZ2FjeV9od19jdHgucmNzX3N0YXRlID09IE5VTEwp IHsgLyogV2UgaGF2ZSB0aGUgZmFrZSBjb250ZXh0ICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2dlbV9leGVjYnVmZmVyLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2dlbV9leGVjYnVmZmVyLmMKaW5kZXggM2U2Mzg0ZGVjYTY1Li42ZGVlMjcyMjRkZGIgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2V4ZWNidWZmZXIuYworKysg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9leGVjYnVmZmVyLmMKQEAgLTQxLDYgKzQx LDE4IEBACiAKICNkZWZpbmUgQkFUQ0hfT0ZGU0VUX0JJQVMgKDI1NioxMDI0KQogCitzdHJ1Y3Qg aTkxNV9leGVjYnVmZmVyX3BhcmFtcyB7CisJc3RydWN0IGRybV9kZXZpY2UgICAgICAgICAgICAg ICAqZGV2OworCXN0cnVjdCBkcm1fZmlsZSAgICAgICAgICAgICAgICAgKmZpbGU7CisJdWludDMy X3QgICAgICAgICAgICAgICAgICAgICAgICBkaXNwYXRjaF9mbGFnczsKKwl1aW50MzJfdCAgICAg ICAgICAgICAgICAgICAgICAgIGFyZ3NfYmF0Y2hfc3RhcnRfb2Zmc2V0OworCXVpbnQ2NF90ICAg ICAgICAgICAgICAgICAgICAgICAgYmF0Y2hfb2JqX3ZtX29mZnNldDsKKwlzdHJ1Y3QgaW50ZWxf ZW5naW5lX2NzICAgICAgICAgICpyaW5nOworCXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICAg ICAgKmJhdGNoX29iajsKKwlzdHJ1Y3QgaW50ZWxfY29udGV4dCAgICAgICAgICAgICpjdHg7CisJ c3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICAgICAqcmVxdWVzdDsKK307CisKIHN0cnVjdCBl Yl92bWFzIHsKIAlzdHJ1Y3QgbGlzdF9oZWFkIHZtYXM7CiAJaW50IGFuZDsKQEAgLTEwOTMsNyAr MTEwNSw3IEBAIGk5MTVfZ2VtX3ZhbGlkYXRlX2NvbnRleHQoc3RydWN0IGRybV9kZXZpY2UgKmRl diwgc3RydWN0IGRybV9maWxlICpmaWxlLAogCXJldHVybiBjdHg7CiB9CiAKLXZvaWQKK3N0YXRp YyB2b2lkCiBpOTE1X2dlbV9leGVjYnVmZmVyX21vdmVfdG9fYWN0aXZlKHN0cnVjdCBsaXN0X2hl YWQgKnZtYXMsCiAJCQkJICAgc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEpCiB7CkBA IC0xMjE5LDEwICsxMjMxLDEwIEBAIGVycjoKIAkJcmV0dXJuIEVSUl9QVFIocmV0KTsKIH0KIAot aW50Ci1pOTE1X2dlbV9yaW5nYnVmZmVyX3N1Ym1pc3Npb24oc3RydWN0IGk5MTVfZXhlY2J1ZmZl cl9wYXJhbXMgKnBhcmFtcywKLQkJCSAgICAgICBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX2V4ZWNidWZm ZXIyICphcmdzLAotCQkJICAgICAgIHN0cnVjdCBsaXN0X2hlYWQgKnZtYXMpCitzdGF0aWMgaW50 CitleGVjYnVmX3N1Ym1pdChzdHJ1Y3QgaTkxNV9leGVjYnVmZmVyX3BhcmFtcyAqcGFyYW1zLAor CSAgICAgICBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX2V4ZWNidWZmZXIyICphcmdzLAorCSAgICAgICBz dHJ1Y3QgbGlzdF9oZWFkICp2bWFzKQogewogCXN0cnVjdCBpbnRlbF9yaW5nICpyaW5nID0gcGFy YW1zLT5yZXF1ZXN0LT5yaW5nOwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9 IHBhcmFtcy0+cmVxdWVzdC0+aTkxNTsKQEAgLTE2MjAsNyArMTYzMiw3IEBAIGk5MTVfZ2VtX2Rv X2V4ZWNidWZmZXIoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKIAlwYXJhbXMt PmJhdGNoX29iaiAgICAgICAgICAgICAgID0gYmF0Y2hfb2JqOwogCXBhcmFtcy0+Y3R4ICAgICAg ICAgICAgICAgICAgICAgPSBjdHg7CiAKLQlyZXQgPSBkZXZfcHJpdi0+Z3QuZXhlY2J1Zl9zdWJt aXQocGFyYW1zLCBhcmdzLCAmZWItPnZtYXMpOworCXJldCA9IGV4ZWNidWZfc3VibWl0KHBhcmFt cywgYXJncywgJmViLT52bWFzKTsKIAlpOTE1X2dlbV9leGVjYnVmZmVyX3JldGlyZV9jb21tYW5k cyhwYXJhbXMpOwogCiBlcnJfYmF0Y2hfdW5waW46CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9scmMuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5jCmlu ZGV4IDJmOTJjNDMzOTdlYi4uODRhOGJjYzkwZDc4IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9scmMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMu YwpAQCAtNjE2LDM5ICs2MTYsNiBAQCBzdGF0aWMgaW50IGV4ZWNsaXN0c19jb250ZXh0X3F1ZXVl KHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxdWVzdCkKIAlyZXR1cm4gMDsKIH0KIAot c3RhdGljIGludCBleGVjbGlzdHNfbW92ZV90b19ncHUoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1 ZXN0ICpyZXEsCi0JCQkJIHN0cnVjdCBsaXN0X2hlYWQgKnZtYXMpCi17Ci0JY29uc3QgdW5zaWdu ZWQgb3RoZXJfcmluZ3MgPSB+aW50ZWxfZW5naW5lX2ZsYWcocmVxLT5lbmdpbmUpOwotCXN0cnVj dCBpOTE1X3ZtYSAqdm1hOwotCXVpbnQzMl90IGZsdXNoX2RvbWFpbnMgPSAwOwotCWJvb2wgZmx1 c2hfY2hpcHNldCA9IGZhbHNlOwotCWludCByZXQ7Ci0KLQlsaXN0X2Zvcl9lYWNoX2VudHJ5KHZt YSwgdm1hcywgZXhlY19saXN0KSB7Ci0JCXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmog PSB2bWEtPm9iajsKLQotCQlpZiAob2JqLT5hY3RpdmUgJiBvdGhlcl9yaW5ncykgewotCQkJcmV0 ID0gaTkxNV9nZW1fb2JqZWN0X3N5bmMob2JqLCByZXEpOwotCQkJaWYgKHJldCkKLQkJCQlyZXR1 cm4gcmV0OwotCQl9Ci0KLQkJaWYgKG9iai0+YmFzZS53cml0ZV9kb21haW4gJiBJOTE1X0dFTV9E T01BSU5fQ1BVKQotCQkJZmx1c2hfY2hpcHNldCB8PSBpOTE1X2dlbV9jbGZsdXNoX29iamVjdChv YmosIGZhbHNlKTsKLQotCQlmbHVzaF9kb21haW5zIHw9IG9iai0+YmFzZS53cml0ZV9kb21haW47 Ci0JfQotCi0JaWYgKGZsdXNoX2RvbWFpbnMgJiBJOTE1X0dFTV9ET01BSU5fR1RUKQotCQl3bWIo KTsKLQotCS8qIFVuY29uZGl0aW9uYWxseSBpbnZhbGlkYXRlIGdwdSBjYWNoZXMgYW5kIGVuc3Vy ZSB0aGF0IHdlIGRvIGZsdXNoCi0JICogYW55IHJlc2lkdWFsIHdyaXRlcyBmcm9tIHRoZSBwcmV2 aW91cyBiYXRjaC4KLQkgKi8KLQlyZXR1cm4gcmVxLT5lbmdpbmUtPmVtaXRfZmx1c2gocmVxLCBJ OTE1X0dFTV9HUFVfRE9NQUlOUywgMCk7Ci19Ci0KIGludCBpbnRlbF9sb2dpY2FsX3JpbmdfYWxs b2NfcmVxdWVzdF9leHRyYXMoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXF1ZXN0KQog ewogCWludCByZXQ7CkBAIC03MDAsMTAyICs2NjcsNiBAQCBpbnRlbF9sb2dpY2FsX3JpbmdfYWR2 YW5jZV9hbmRfc3VibWl0KHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxdWVzdCkKIAkJ ZXhlY2xpc3RzX2NvbnRleHRfcXVldWUocmVxdWVzdCk7CiB9CiAKLS8qKgotICogZXhlY2xpc3Rz X3N1Ym1pc3Npb24oKSAtIHN1Ym1pdCBhIGJhdGNoYnVmZmVyIGZvciBleGVjdXRpb24sIEV4ZWNs aXN0cyBzdHlsZQotICogQGRldjogRFJNIGRldmljZS4KLSAqIEBmaWxlOiBEUk0gZmlsZS4KLSAq IEByaW5nOiBFbmdpbmUgQ29tbWFuZCBTdHJlYW1lciB0byBzdWJtaXQgdG8uCi0gKiBAY3R4OiBD b250ZXh0IHRvIGVtcGxveSBmb3IgdGhpcyBzdWJtaXNzaW9uLgotICogQGFyZ3M6IGV4ZWNidWZm ZXIgY2FsbCBhcmd1bWVudHMuCi0gKiBAdm1hczogbGlzdCBvZiB2bWFzLgotICogQGJhdGNoX29i ajogdGhlIGJhdGNoYnVmZmVyIHRvIHN1Ym1pdC4KLSAqIEBleGVjX3N0YXJ0OiBiYXRjaGJ1ZmZl ciBzdGFydCB2aXJ0dWFsIGFkZHJlc3MgcG9pbnRlci4KLSAqIEBkaXNwYXRjaF9mbGFnczogdHJh bnNsYXRlZCBleGVjYnVmZmVyIGNhbGwgZmxhZ3MuCi0gKgotICogVGhpcyBpcyB0aGUgZXZpbCB0 d2luIHZlcnNpb24gb2YgaTkxNV9nZW1fcmluZ2J1ZmZlcl9zdWJtaXNzaW9uLiBJdCBhYnN0cmFj dHMKLSAqIGF3YXkgdGhlIHN1Ym1pc3Npb24gZGV0YWlscyBvZiB0aGUgZXhlY2J1ZmZlciBpb2N0 bCBjYWxsLgotICoKLSAqIFJldHVybjogbm9uLXplcm8gaWYgdGhlIHN1Ym1pc3Npb24gZmFpbHMu Ci0gKi8KLWludCBpbnRlbF9leGVjbGlzdHNfc3VibWlzc2lvbihzdHJ1Y3QgaTkxNV9leGVjYnVm ZmVyX3BhcmFtcyAqcGFyYW1zLAotCQkJICAgICAgIHN0cnVjdCBkcm1faTkxNV9nZW1fZXhlY2J1 ZmZlcjIgKmFyZ3MsCi0JCQkgICAgICAgc3RydWN0IGxpc3RfaGVhZCAqdm1hcykKLXsKLQlzdHJ1 Y3QgZHJtX2RldmljZSAgICAgICAqZGV2ID0gcGFyYW1zLT5kZXY7Ci0Jc3RydWN0IGludGVsX2Vu Z2luZV9jcyAgKmVuZ2luZSA9IHBhcmFtcy0+cmluZzsKLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwotCXN0cnVjdCBpbnRlbF9yaW5nICpyaW5n ID0gcGFyYW1zLT5yZXF1ZXN0LT5yaW5nOwotCXU2NCBleGVjX3N0YXJ0OwotCWludCBpbnN0cF9t b2RlOwotCXUzMiBpbnN0cF9tYXNrOwotCWludCByZXQ7Ci0KLQlpbnN0cF9tb2RlID0gYXJncy0+ ZmxhZ3MgJiBJOTE1X0VYRUNfQ09OU1RBTlRTX01BU0s7Ci0JaW5zdHBfbWFzayA9IEk5MTVfRVhF Q19DT05TVEFOVFNfTUFTSzsKLQlzd2l0Y2ggKGluc3RwX21vZGUpIHsKLQljYXNlIEk5MTVfRVhF Q19DT05TVEFOVFNfUkVMX0dFTkVSQUw6Ci0JY2FzZSBJOTE1X0VYRUNfQ09OU1RBTlRTX0FCU09M VVRFOgotCWNhc2UgSTkxNV9FWEVDX0NPTlNUQU5UU19SRUxfU1VSRkFDRToKLQkJaWYgKGluc3Rw X21vZGUgIT0gMCAmJiBlbmdpbmUtPmlkICE9IFJDUykgewotCQkJRFJNX0RFQlVHKCJub24tMCBy ZWwgY29uc3RhbnRzIG1vZGUgb24gbm9uLVJDU1xuIik7Ci0JCQlyZXR1cm4gLUVJTlZBTDsKLQkJ fQotCi0JCWlmIChpbnN0cF9tb2RlICE9IGRldl9wcml2LT5yZWxhdGl2ZV9jb25zdGFudHNfbW9k ZSkgewotCQkJaWYgKGluc3RwX21vZGUgPT0gSTkxNV9FWEVDX0NPTlNUQU5UU19SRUxfU1VSRkFD RSkgewotCQkJCURSTV9ERUJVRygicmVsIHN1cmZhY2UgY29uc3RhbnRzIG1vZGUgaW52YWxpZCBv biBnZW41K1xuIik7Ci0JCQkJcmV0dXJuIC1FSU5WQUw7Ci0JCQl9Ci0KLQkJCS8qIFRoZSBIVyBj aGFuZ2VkIHRoZSBtZWFuaW5nIG9uIHRoaXMgYml0IG9uIGdlbjYgKi8KLQkJCWluc3RwX21hc2sg Jj0gfkk5MTVfRVhFQ19DT05TVEFOVFNfUkVMX1NVUkZBQ0U7Ci0JCX0KLQkJYnJlYWs7Ci0JZGVm YXVsdDoKLQkJRFJNX0RFQlVHKCJleGVjYnVmIHdpdGggdW5rbm93biBjb25zdGFudHM6ICVkXG4i LCBpbnN0cF9tb2RlKTsKLQkJcmV0dXJuIC1FSU5WQUw7Ci0JfQotCi0JaWYgKGFyZ3MtPmZsYWdz ICYgSTkxNV9FWEVDX0dFTjdfU09MX1JFU0VUKSB7Ci0JCURSTV9ERUJVRygic29sIHJlc2V0IGlz IGdlbjcgb25seVxuIik7Ci0JCXJldHVybiAtRUlOVkFMOwotCX0KLQotCXJldCA9IGV4ZWNsaXN0 c19tb3ZlX3RvX2dwdShwYXJhbXMtPnJlcXVlc3QsIHZtYXMpOwotCWlmIChyZXQpCi0JCXJldHVy biByZXQ7Ci0KLQlpZiAoZW5naW5lLT5pZCA9PSBSQ1MgJiYKLQkgICAgaW5zdHBfbW9kZSAhPSBk ZXZfcHJpdi0+cmVsYXRpdmVfY29uc3RhbnRzX21vZGUpIHsKLQkJcmV0ID0gaW50ZWxfcmluZ19i ZWdpbihwYXJhbXMtPnJlcXVlc3QsIDQpOwotCQlpZiAocmV0KQotCQkJcmV0dXJuIHJldDsKLQot CQlpbnRlbF9yaW5nX2VtaXQocmluZywgTUlfTk9PUCk7Ci0JCWludGVsX3JpbmdfZW1pdChyaW5n LCBNSV9MT0FEX1JFR0lTVEVSX0lNTSgxKSk7Ci0JCWludGVsX3JpbmdfZW1pdF9yZWcocmluZywg SU5TVFBNKTsKLQkJaW50ZWxfcmluZ19lbWl0KHJpbmcsIGluc3RwX21hc2sgPDwgMTYgfCBpbnN0 cF9tb2RlKTsKLQkJaW50ZWxfcmluZ19hZHZhbmNlKHJpbmcpOwotCi0JCWRldl9wcml2LT5yZWxh dGl2ZV9jb25zdGFudHNfbW9kZSA9IGluc3RwX21vZGU7Ci0JfQotCi0JZXhlY19zdGFydCA9IHBh cmFtcy0+YmF0Y2hfb2JqX3ZtX29mZnNldCArCi0JCSAgICAgYXJncy0+YmF0Y2hfc3RhcnRfb2Zm c2V0OwotCi0JcmV0ID0gZW5naW5lLT5lbWl0X2JiX3N0YXJ0KHBhcmFtcy0+cmVxdWVzdCwKLQkJ CQkgICAgZXhlY19zdGFydCwgYXJncy0+YmF0Y2hfbGVuLAotCQkJCSAgICBwYXJhbXMtPmRpc3Bh dGNoX2ZsYWdzKTsKLQlpZiAocmV0KQotCQlyZXR1cm4gcmV0OwotCi0JdHJhY2VfaTkxNV9nZW1f cmluZ19kaXNwYXRjaChwYXJhbXMtPnJlcXVlc3QsIHBhcmFtcy0+ZGlzcGF0Y2hfZmxhZ3MpOwot Ci0JaTkxNV9nZW1fZXhlY2J1ZmZlcl9tb3ZlX3RvX2FjdGl2ZSh2bWFzLCBwYXJhbXMtPnJlcXVl c3QpOwotCi0JcmV0dXJuIDA7Ci19Ci0KIHZvaWQgaW50ZWxfZXhlY2xpc3RzX3JldGlyZV9yZXF1 ZXN0cyhzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nKQogewogCXN0cnVjdCBkcm1faTkxNV9n ZW1fcmVxdWVzdCAqcmVxLCAqdG1wOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfbHJjLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuaAppbmRleCA3ZjAx ZDJkZGFjZmEuLjg3YmM5YWNjNDIyNCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfbHJjLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmgKQEAgLTc5 LDEwICs3OSw2IEBAIHVpbnQ2NF90IGludGVsX2xyX2NvbnRleHRfZGVzY3JpcHRvcihzdHJ1Y3Qg aW50ZWxfY29udGV4dCAqY3R4LAogCiAvKiBFeGVjbGlzdHMgKi8KIGludCBpbnRlbF9zYW5pdGl6 ZV9lbmFibGVfZXhlY2xpc3RzKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIGludCBlbmFibGVfZXhl Y2xpc3RzKTsKLXN0cnVjdCBpOTE1X2V4ZWNidWZmZXJfcGFyYW1zOwotaW50IGludGVsX2V4ZWNs aXN0c19zdWJtaXNzaW9uKHN0cnVjdCBpOTE1X2V4ZWNidWZmZXJfcGFyYW1zICpwYXJhbXMsCi0J CQkgICAgICAgc3RydWN0IGRybV9pOTE1X2dlbV9leGVjYnVmZmVyMiAqYXJncywKLQkJCSAgICAg ICBzdHJ1Y3QgbGlzdF9oZWFkICp2bWFzKTsKIHUzMiBpbnRlbF9leGVjbGlzdHNfY3R4X2lkKHN0 cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpjdHhfb2JqKTsKIAogdm9pZCBpbnRlbF9scmNfaXJx X2hhbmRsZXIoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZyk7Ci0tIAoyLjcuMC5yYzMKCl9f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBt YWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMu ZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==