From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chris Wilson Subject: [PATCH 41/64] drm/i915: Unify legacy/execlists submit_execbuf callbacks Date: Thu, 7 Jul 2016 09:41:47 +0100 Message-ID: <1467880930-23082-41-git-send-email-chris@chris-wilson.co.uk> References: <1467880930-23082-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-x241.google.com (mail-wm0-x241.google.com [IPv6:2a00:1450:400c:c09::241]) by gabe.freedesktop.org (Postfix) with ESMTPS id 115606E76E for ; Thu, 7 Jul 2016 08:43:14 +0000 (UTC) Received: by mail-wm0-x241.google.com with SMTP id n127so1267028wme.0 for ; Thu, 07 Jul 2016 01:43:13 -0700 (PDT) In-Reply-To: <1467880930-23082-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 ICAgfCAxMjMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2xyYy5oICAgICAgICAgICB8ICAgNCAtCiA2IGZpbGVzIGNoYW5nZWQsIDIwIGlu c2VydGlvbnMoKyksIDE1NiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAppbmRl eCA0YTVjZTIyZGNhZjAuLmJkZGI1ZWNlYzkwMiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9kcnYuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCkBA IC0xNzAwLDE4ICsxNzAwLDYgQEAgc3RydWN0IGk5MTVfdmlydHVhbF9ncHUgewogCWJvb2wgYWN0 aXZlOwogfTsKIAotc3RydWN0IGk5MTVfZXhlY2J1ZmZlcl9wYXJhbXMgewotCXN0cnVjdCBkcm1f ZGV2aWNlICAgICAgICAgICAgICAgKmRldjsKLQlzdHJ1Y3QgZHJtX2ZpbGUgICAgICAgICAgICAg ICAgICpmaWxlOwotCXVpbnQzMl90ICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGF0Y2hfZmxh Z3M7Ci0JdWludDMyX3QgICAgICAgICAgICAgICAgICAgICAgICBhcmdzX2JhdGNoX3N0YXJ0X29m ZnNldDsKLQl1aW50NjRfdCAgICAgICAgICAgICAgICAgICAgICAgIGJhdGNoX29ial92bV9vZmZz ZXQ7Ci0Jc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lOwotCXN0cnVjdCBkcm1faTkxNV9n ZW1fb2JqZWN0ICAgICAgKmJhdGNoX29iajsKLQlzdHJ1Y3QgaTkxNV9nZW1fY29udGV4dCAgICAg ICAgICAgICpjdHg7Ci0Jc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICAgICAqcmVxdWVzdDsK LX07Ci0KIC8qIHVzZWQgaW4gY29tcHV0aW5nIHRoZSBuZXcgd2F0ZXJtYXJrcyBzdGF0ZSAqLwog c3RydWN0IGludGVsX3dtX2NvbmZpZyB7CiAJdW5zaWduZWQgaW50IG51bV9waXBlc19hY3RpdmU7 CkBAIC0yMDExLDkgKzE5OTksNiBAQCBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSB7CiAKIAkvKiBB YnN0cmFjdCB0aGUgc3VibWlzc2lvbiBtZWNoYW5pc20gKGxlZ2FjeSByaW5nYnVmZmVyIG9yIGV4 ZWNsaXN0cykgYXdheSAqLwogCXN0cnVjdCB7Ci0JCWludCAoKmV4ZWNidWZfc3VibWl0KShzdHJ1 Y3QgaTkxNV9leGVjYnVmZmVyX3BhcmFtcyAqcGFyYW1zLAotCQkJCSAgICAgIHN0cnVjdCBkcm1f aTkxNV9nZW1fZXhlY2J1ZmZlcjIgKmFyZ3MsCi0JCQkJICAgICAgc3RydWN0IGxpc3RfaGVhZCAq dm1hcyk7CiAJCWludCAoKmluaXRfZW5naW5lcykoc3RydWN0IGRybV9kZXZpY2UgKmRldik7CiAJ CXZvaWQgKCpjbGVhbnVwX2VuZ2luZSkoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKTsK IAkJdm9pZCAoKnN0b3BfZW5naW5lKShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpOwpA QCAtMjk3MywxMSArMjk1OCw2IEBAIGludCBpOTE1X2dlbV9zZXRfZG9tYWluX2lvY3RsKHN0cnVj dCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCiAJCQkgICAgICBzdHJ1Y3QgZHJtX2ZpbGUg KmZpbGVfcHJpdik7CiBpbnQgaTkxNV9nZW1fc3dfZmluaXNoX2lvY3RsKHN0cnVjdCBkcm1fZGV2 aWNlICpkZXYsIHZvaWQgKmRhdGEsCiAJCQkgICAgIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2 KTsKLXZvaWQgaTkxNV9nZW1fZXhlY2J1ZmZlcl9tb3ZlX3RvX2FjdGl2ZShzdHJ1Y3QgbGlzdF9o ZWFkICp2bWFzLAotCQkJCQlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSk7Ci1pbnQg aTkxNV9nZW1fcmluZ2J1ZmZlcl9zdWJtaXNzaW9uKHN0cnVjdCBpOTE1X2V4ZWNidWZmZXJfcGFy YW1zICpwYXJhbXMsCi0JCQkJICAgc3RydWN0IGRybV9pOTE1X2dlbV9leGVjYnVmZmVyMiAqYXJn cywKLQkJCQkgICBzdHJ1Y3QgbGlzdF9oZWFkICp2bWFzKTsKIGludCBpOTE1X2dlbV9leGVjYnVm ZmVyKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCiAJCQlzdHJ1Y3QgZHJtX2Zp bGUgKmZpbGVfcHJpdik7CiBpbnQgaTkxNV9nZW1fZXhlY2J1ZmZlcjIoc3RydWN0IGRybV9kZXZp Y2UgKmRldiwgdm9pZCAqZGF0YSwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZ2VtLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jCmluZGV4IDdjMjFhNGY0 MDI4ZC4uN2E0ODQxMjkyZGNjIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2dlbS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMKQEAgLTQ1MzcsMTIg KzQ1MzcsMTAgQEAgaW50IGk5MTVfZ2VtX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIAlt dXRleF9sb2NrKCZkZXYtPnN0cnVjdF9tdXRleCk7CiAKIAlpZiAoIWk5MTUuZW5hYmxlX2V4ZWNs aXN0cykgewotCQlkZXZfcHJpdi0+Z3QuZXhlY2J1Zl9zdWJtaXQgPSBpOTE1X2dlbV9yaW5nYnVm ZmVyX3N1Ym1pc3Npb247CiAJCWRldl9wcml2LT5ndC5pbml0X2VuZ2luZXMgPSBpOTE1X2dlbV9p bml0X2VuZ2luZXM7CiAJCWRldl9wcml2LT5ndC5jbGVhbnVwX2VuZ2luZSA9IGludGVsX2VuZ2lu ZV9jbGVhbnVwOwogCQlkZXZfcHJpdi0+Z3Quc3RvcF9lbmdpbmUgPSBpbnRlbF9lbmdpbmVfc3Rv cDsKIAl9IGVsc2UgewotCQlkZXZfcHJpdi0+Z3QuZXhlY2J1Zl9zdWJtaXQgPSBpbnRlbF9leGVj bGlzdHNfc3VibWlzc2lvbjsKIAkJZGV2X3ByaXYtPmd0LmluaXRfZW5naW5lcyA9IGludGVsX2xv Z2ljYWxfcmluZ3NfaW5pdDsKIAkJZGV2X3ByaXYtPmd0LmNsZWFudXBfZW5naW5lID0gaW50ZWxf bG9naWNhbF9yaW5nX2NsZWFudXA7CiAJCWRldl9wcml2LT5ndC5zdG9wX2VuZ2luZSA9IGludGVs X2xvZ2ljYWxfcmluZ19zdG9wOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9nZW1fY29udGV4dC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fY29udGV4dC5j CmluZGV4IDMyMDUxYTY4MjQ2Zi4uZWQwNzFmYjFiNzEzIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2dlbV9jb250ZXh0LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9nZW1fY29udGV4dC5jCkBAIC04OTMsOCArODkzLDkgQEAgaW50IGk5MTVfc3dpdGNoX2Nv bnRleHQoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEpCiB7CiAJc3RydWN0IGludGVs X2VuZ2luZV9jcyAqZW5naW5lID0gcmVxLT5lbmdpbmU7CiAKLQlXQVJOX09OKGk5MTUuZW5hYmxl X2V4ZWNsaXN0cyk7CiAJbG9ja2RlcF9hc3NlcnRfaGVsZCgmcmVxLT5pOTE1LT5kcm0uc3RydWN0 X211dGV4KTsKKwlpZiAoaTkxNS5lbmFibGVfZXhlY2xpc3RzKQorCQlyZXR1cm4gMDsKIAogCWlm ICghcmVxLT5jdHgtPmVuZ2luZVtlbmdpbmUtPmlkXS5zdGF0ZSkgewogCQlzdHJ1Y3QgaTkxNV9n ZW1fY29udGV4dCAqdG8gPSByZXEtPmN0eDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZ2VtX2V4ZWNidWZmZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2Vt X2V4ZWNidWZmZXIuYwppbmRleCAyODdlNGU3YjNlNTEuLjViZmIyZTJmM2U2NyAxMDA2NDQKLS0t IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZXhlY2J1ZmZlci5jCisrKyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2V4ZWNidWZmZXIuYwpAQCAtNDUsNiArNDUsMTggQEAK IAogI2RlZmluZSBCQVRDSF9PRkZTRVRfQklBUyAoMjU2KjEwMjQpCiAKK3N0cnVjdCBpOTE1X2V4 ZWNidWZmZXJfcGFyYW1zIHsKKwlzdHJ1Y3QgZHJtX2RldmljZSAgICAgICAgICAgICAgICpkZXY7 CisJc3RydWN0IGRybV9maWxlICAgICAgICAgICAgICAgICAqZmlsZTsKKwl1MzIJCQkJIGRpc3Bh dGNoX2ZsYWdzOworCXUzMgkJCQkgYXJnc19iYXRjaF9zdGFydF9vZmZzZXQ7CisJdTMyCQkJCSBi YXRjaF9vYmpfdm1fb2Zmc2V0OworCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgICAgICAgICAgKmVu Z2luZTsKKwlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAgICAgICpiYXRjaF9vYmo7CisJc3Ry dWN0IGk5MTVfZ2VtX2NvbnRleHQgICAgICAgICAqY3R4OworCXN0cnVjdCBkcm1faTkxNV9nZW1f cmVxdWVzdCAgICAgKnJlcXVlc3Q7Cit9OworCiBzdHJ1Y3QgZWJfdm1hcyB7CiAJc3RydWN0IGxp c3RfaGVhZCB2bWFzOwogCWludCBhbmQ7CkBAIC0xMTA5LDcgKzExMjEsNyBAQCBzdGF0aWMgdm9p ZCBlYl9leHBvcnRfZmVuY2Uoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiwKIAltdXRl eF91bmxvY2soJnJlc3YtPmxvY2suYmFzZSk7CiB9CiAKLXZvaWQKK3N0YXRpYyB2b2lkCiBpOTE1 X2dlbV9leGVjYnVmZmVyX21vdmVfdG9fYWN0aXZlKHN0cnVjdCBsaXN0X2hlYWQgKnZtYXMsCiAJ CQkJICAgc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEpCiB7CkBAIC0xMjM3LDEwICsx MjQ5LDEwIEBAIGVycjoKIAkJcmV0dXJuIEVSUl9QVFIocmV0KTsKIH0KIAotaW50Ci1pOTE1X2dl bV9yaW5nYnVmZmVyX3N1Ym1pc3Npb24oc3RydWN0IGk5MTVfZXhlY2J1ZmZlcl9wYXJhbXMgKnBh cmFtcywKLQkJCSAgICAgICBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX2V4ZWNidWZmZXIyICphcmdzLAot CQkJICAgICAgIHN0cnVjdCBsaXN0X2hlYWQgKnZtYXMpCitzdGF0aWMgaW50CitleGVjYnVmX3N1 Ym1pdChzdHJ1Y3QgaTkxNV9leGVjYnVmZmVyX3BhcmFtcyAqcGFyYW1zLAorCSAgICAgICBzdHJ1 Y3QgZHJtX2k5MTVfZ2VtX2V4ZWNidWZmZXIyICphcmdzLAorCSAgICAgICBzdHJ1Y3QgbGlzdF9o ZWFkICp2bWFzKQogewogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHBhcmFt cy0+cmVxdWVzdC0+aTkxNTsKIAl1NjQgZXhlY19zdGFydCwgZXhlY19sZW47CkBAIC0xNjQ5LDcg KzE2NjEsNyBAQCBpOTE1X2dlbV9kb19leGVjYnVmZmVyKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYs IHZvaWQgKmRhdGEsCiAJcGFyYW1zLT5iYXRjaF9vYmogICAgICAgICAgICAgICA9IGJhdGNoX29i ajsKIAlwYXJhbXMtPmN0eCAgICAgICAgICAgICAgICAgICAgID0gY3R4OwogCi0JcmV0ID0gZGV2 X3ByaXYtPmd0LmV4ZWNidWZfc3VibWl0KHBhcmFtcywgYXJncywgJmViLT52bWFzKTsKKwlyZXQg PSBleGVjYnVmX3N1Ym1pdChwYXJhbXMsIGFyZ3MsICZlYi0+dm1hcyk7CiBlcnJfcmVxdWVzdDoK IAlpOTE1X2dlbV9leGVjYnVmZmVyX3JldGlyZV9jb21tYW5kcyhwYXJhbXMpOwogCmRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2xyYy5jCmluZGV4IGRkOWFjZWY0MTRiNi4uYmRhNjZiOTFhYTAyIDEwMDY0NAot LS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYworKysgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9scmMuYwpAQCAtNjQ1LDM5ICs2NDUsNiBAQCBzdGF0aWMgdm9pZCBleGVj bGlzdHNfY29udGV4dF9xdWV1ZShzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcXVlc3Qp CiAJc3Bpbl91bmxvY2tfYmgoJmVuZ2luZS0+ZXhlY2xpc3RfbG9jayk7CiB9CiAKLXN0YXRpYyBp bnQgZXhlY2xpc3RzX21vdmVfdG9fZ3B1KHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVx LAotCQkJCSBzdHJ1Y3QgbGlzdF9oZWFkICp2bWFzKQotewotCWNvbnN0IHVuc2lnbmVkIG90aGVy X3JpbmdzID0gfmludGVsX2VuZ2luZV9mbGFnKHJlcS0+ZW5naW5lKTsKLQlzdHJ1Y3QgaTkxNV92 bWEgKnZtYTsKLQl1aW50MzJfdCBmbHVzaF9kb21haW5zID0gMDsKLQlib29sIGZsdXNoX2NoaXBz ZXQgPSBmYWxzZTsKLQlpbnQgcmV0OwotCi0JbGlzdF9mb3JfZWFjaF9lbnRyeSh2bWEsIHZtYXMs IGV4ZWNfbGlzdCkgewotCQlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqID0gdm1hLT5v Ymo7Ci0KLQkJaWYgKG9iai0+YWN0aXZlICYgb3RoZXJfcmluZ3MpIHsKLQkJCXJldCA9IGk5MTVf Z2VtX29iamVjdF9zeW5jKG9iaiwgcmVxKTsKLQkJCWlmIChyZXQpCi0JCQkJcmV0dXJuIHJldDsK LQkJfQotCi0JCWlmIChvYmotPmJhc2Uud3JpdGVfZG9tYWluICYgSTkxNV9HRU1fRE9NQUlOX0NQ VSkKLQkJCWZsdXNoX2NoaXBzZXQgfD0gaTkxNV9nZW1fY2xmbHVzaF9vYmplY3Qob2JqLCBmYWxz ZSk7Ci0KLQkJZmx1c2hfZG9tYWlucyB8PSBvYmotPmJhc2Uud3JpdGVfZG9tYWluOwotCX0KLQot CWlmIChmbHVzaF9kb21haW5zICYgSTkxNV9HRU1fRE9NQUlOX0dUVCkKLQkJd21iKCk7Ci0KLQkv KiBVbmNvbmRpdGlvbmFsbHkgaW52YWxpZGF0ZSBncHUgY2FjaGVzIGFuZCBlbnN1cmUgdGhhdCB3 ZSBkbyBmbHVzaAotCSAqIGFueSByZXNpZHVhbCB3cml0ZXMgZnJvbSB0aGUgcHJldmlvdXMgYmF0 Y2guCi0JICovCi0JcmV0dXJuIHJlcS0+ZW5naW5lLT5lbWl0X2ZsdXNoKHJlcSwgSTkxNV9HRU1f R1BVX0RPTUFJTlMsIDApOwotfQotCiBpbnQgaW50ZWxfbG9naWNhbF9yaW5nX2FsbG9jX3JlcXVl c3RfZXh0cmFzKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxdWVzdCkKIHsKIAlzdHJ1 Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUgPSByZXF1ZXN0LT5lbmdpbmU7CkBAIC03NzksOTYg Kzc0Niw2IEBAIGludGVsX2xvZ2ljYWxfcmluZ19hZHZhbmNlX2FuZF9zdWJtaXQoc3RydWN0IGRy bV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXF1ZXN0KQogCXJldHVybiAwOwogfQogCi0vKioKLSAqIGV4 ZWNsaXN0c19zdWJtaXNzaW9uKCkgLSBzdWJtaXQgYSBiYXRjaGJ1ZmZlciBmb3IgZXhlY3V0aW9u LCBFeGVjbGlzdHMgc3R5bGUKLSAqIEBwYXJhbXM6IGV4ZWNidWZmZXIgY2FsbCBwYXJhbWV0ZXJz LgotICogQGFyZ3M6IGV4ZWNidWZmZXIgY2FsbCBhcmd1bWVudHMuCi0gKiBAdm1hczogbGlzdCBv ZiB2bWFzLgotICoKLSAqIFRoaXMgaXMgdGhlIGV2aWwgdHdpbiB2ZXJzaW9uIG9mIGk5MTVfZ2Vt X3JpbmdidWZmZXJfc3VibWlzc2lvbi4gSXQgYWJzdHJhY3RzCi0gKiBhd2F5IHRoZSBzdWJtaXNz aW9uIGRldGFpbHMgb2YgdGhlIGV4ZWNidWZmZXIgaW9jdGwgY2FsbC4KLSAqCi0gKiBSZXR1cm46 IG5vbi16ZXJvIGlmIHRoZSBzdWJtaXNzaW9uIGZhaWxzLgotICovCi1pbnQgaW50ZWxfZXhlY2xp c3RzX3N1Ym1pc3Npb24oc3RydWN0IGk5MTVfZXhlY2J1ZmZlcl9wYXJhbXMgKnBhcmFtcywKLQkJ CSAgICAgICBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX2V4ZWNidWZmZXIyICphcmdzLAotCQkJICAgICAg IHN0cnVjdCBsaXN0X2hlYWQgKnZtYXMpCi17Ci0Jc3RydWN0IGRybV9kZXZpY2UgICAgICAgKmRl diA9IHBhcmFtcy0+ZGV2OwotCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSA9IHBhcmFt cy0+ZW5naW5lOwotCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUo ZGV2KTsKLQlzdHJ1Y3QgaW50ZWxfcmluZyAqcmluZyA9IHBhcmFtcy0+cmVxdWVzdC0+cmluZzsK LQl1NjQgZXhlY19zdGFydDsKLQlpbnQgaW5zdHBfbW9kZTsKLQl1MzIgaW5zdHBfbWFzazsKLQlp bnQgcmV0OwotCi0JaW5zdHBfbW9kZSA9IGFyZ3MtPmZsYWdzICYgSTkxNV9FWEVDX0NPTlNUQU5U U19NQVNLOwotCWluc3RwX21hc2sgPSBJOTE1X0VYRUNfQ09OU1RBTlRTX01BU0s7Ci0Jc3dpdGNo IChpbnN0cF9tb2RlKSB7Ci0JY2FzZSBJOTE1X0VYRUNfQ09OU1RBTlRTX1JFTF9HRU5FUkFMOgot CWNhc2UgSTkxNV9FWEVDX0NPTlNUQU5UU19BQlNPTFVURToKLQljYXNlIEk5MTVfRVhFQ19DT05T VEFOVFNfUkVMX1NVUkZBQ0U6Ci0JCWlmIChpbnN0cF9tb2RlICE9IDAgJiYgZW5naW5lLT5pZCAh PSBSQ1MpIHsKLQkJCURSTV9ERUJVRygibm9uLTAgcmVsIGNvbnN0YW50cyBtb2RlIG9uIG5vbi1S Q1NcbiIpOwotCQkJcmV0dXJuIC1FSU5WQUw7Ci0JCX0KLQotCQlpZiAoaW5zdHBfbW9kZSAhPSBk ZXZfcHJpdi0+cmVsYXRpdmVfY29uc3RhbnRzX21vZGUpIHsKLQkJCWlmIChpbnN0cF9tb2RlID09 IEk5MTVfRVhFQ19DT05TVEFOVFNfUkVMX1NVUkZBQ0UpIHsKLQkJCQlEUk1fREVCVUcoInJlbCBz dXJmYWNlIGNvbnN0YW50cyBtb2RlIGludmFsaWQgb24gZ2VuNStcbiIpOwotCQkJCXJldHVybiAt RUlOVkFMOwotCQkJfQotCi0JCQkvKiBUaGUgSFcgY2hhbmdlZCB0aGUgbWVhbmluZyBvbiB0aGlz IGJpdCBvbiBnZW42ICovCi0JCQlpbnN0cF9tYXNrICY9IH5JOTE1X0VYRUNfQ09OU1RBTlRTX1JF TF9TVVJGQUNFOwotCQl9Ci0JCWJyZWFrOwotCWRlZmF1bHQ6Ci0JCURSTV9ERUJVRygiZXhlY2J1 ZiB3aXRoIHVua25vd24gY29uc3RhbnRzOiAlZFxuIiwgaW5zdHBfbW9kZSk7Ci0JCXJldHVybiAt RUlOVkFMOwotCX0KLQotCWlmIChhcmdzLT5mbGFncyAmIEk5MTVfRVhFQ19HRU43X1NPTF9SRVNF VCkgewotCQlEUk1fREVCVUcoInNvbCByZXNldCBpcyBnZW43IG9ubHlcbiIpOwotCQlyZXR1cm4g LUVJTlZBTDsKLQl9Ci0KLQlyZXQgPSBleGVjbGlzdHNfbW92ZV90b19ncHUocGFyYW1zLT5yZXF1 ZXN0LCB2bWFzKTsKLQlpZiAocmV0KQotCQlyZXR1cm4gcmV0OwotCi0JaWYgKGVuZ2luZS0+aWQg PT0gUkNTICYmCi0JICAgIGluc3RwX21vZGUgIT0gZGV2X3ByaXYtPnJlbGF0aXZlX2NvbnN0YW50 c19tb2RlKSB7Ci0JCXJldCA9IGludGVsX3JpbmdfYmVnaW4ocGFyYW1zLT5yZXF1ZXN0LCA0KTsK LQkJaWYgKHJldCkKLQkJCXJldHVybiByZXQ7Ci0KLQkJaW50ZWxfcmluZ19lbWl0KHJpbmcsIE1J X05PT1ApOwotCQlpbnRlbF9yaW5nX2VtaXQocmluZywgTUlfTE9BRF9SRUdJU1RFUl9JTU0oMSkp OwotCQlpbnRlbF9yaW5nX2VtaXRfcmVnKHJpbmcsIElOU1RQTSk7Ci0JCWludGVsX3JpbmdfZW1p dChyaW5nLCBpbnN0cF9tYXNrIDw8IDE2IHwgaW5zdHBfbW9kZSk7Ci0JCWludGVsX3JpbmdfYWR2 YW5jZShyaW5nKTsKLQotCQlkZXZfcHJpdi0+cmVsYXRpdmVfY29uc3RhbnRzX21vZGUgPSBpbnN0 cF9tb2RlOwotCX0KLQotCWV4ZWNfc3RhcnQgPSBwYXJhbXMtPmJhdGNoX29ial92bV9vZmZzZXQg KwotCQkgICAgIGFyZ3MtPmJhdGNoX3N0YXJ0X29mZnNldDsKLQotCXJldCA9IGVuZ2luZS0+ZW1p dF9iYl9zdGFydChwYXJhbXMtPnJlcXVlc3QsCi0JCQkJICAgIGV4ZWNfc3RhcnQsIGFyZ3MtPmJh dGNoX2xlbiwKLQkJCQkgICAgcGFyYW1zLT5kaXNwYXRjaF9mbGFncyk7Ci0JaWYgKHJldCkKLQkJ cmV0dXJuIHJldDsKLQotCXRyYWNlX2k5MTVfZ2VtX3JpbmdfZGlzcGF0Y2gocGFyYW1zLT5yZXF1 ZXN0LCBwYXJhbXMtPmRpc3BhdGNoX2ZsYWdzKTsKLQotCWk5MTVfZ2VtX2V4ZWNidWZmZXJfbW92 ZV90b19hY3RpdmUodm1hcywgcGFyYW1zLT5yZXF1ZXN0KTsKLQotCXJldHVybiAwOwotfQotCiB2 b2lkIGludGVsX2V4ZWNsaXN0c19jYW5jZWxfcmVxdWVzdHMoc3RydWN0IGludGVsX2VuZ2luZV9j cyAqZW5naW5lKQogewogCXN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxLCAqdG1wOwpk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmggYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9scmMuaAppbmRleCA1ZGFlNWJjNTA0NmUuLmJjZDJiNGY1YjY3NiAx MDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmgKKysrIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmgKQEAgLTkyLDEwICs5Miw2IEBAIHVpbnQ2NF90IGlu dGVsX2xyX2NvbnRleHRfZGVzY3JpcHRvcihzdHJ1Y3QgaTkxNV9nZW1fY29udGV4dCAqY3R4LAog LyogRXhlY2xpc3RzICovCiBpbnQgaW50ZWxfc2FuaXRpemVfZW5hYmxlX2V4ZWNsaXN0cyhzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJCQkJICAgIGludCBlbmFibGVfZXhlY2xp c3RzKTsKLXN0cnVjdCBpOTE1X2V4ZWNidWZmZXJfcGFyYW1zOwotaW50IGludGVsX2V4ZWNsaXN0 c19zdWJtaXNzaW9uKHN0cnVjdCBpOTE1X2V4ZWNidWZmZXJfcGFyYW1zICpwYXJhbXMsCi0JCQkg ICAgICAgc3RydWN0IGRybV9pOTE1X2dlbV9leGVjYnVmZmVyMiAqYXJncywKLQkJCSAgICAgICBz dHJ1Y3QgbGlzdF9oZWFkICp2bWFzKTsKIAogdm9pZCBpbnRlbF9leGVjbGlzdHNfY2FuY2VsX3Jl cXVlc3RzKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSk7CiAKLS0gCjIuOC4xCgpfX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFp bGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5m cmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK