From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chris Wilson Subject: [PATCH v3 08/14] drm/i915/scheduler: Execute requests in order of priorities Date: Mon, 14 Nov 2016 08:56:57 +0000 Message-ID: <20161114085703.16540-8-chris@chris-wilson.co.uk> References: <20161107135950.28861-1-chris@chris-wilson.co.uk> <20161114085703.16540-1-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-x243.google.com (mail-wm0-x243.google.com [IPv6:2a00:1450:400c:c09::243]) by gabe.freedesktop.org (Postfix) with ESMTPS id 5002D6E35B for ; Mon, 14 Nov 2016 08:57:18 +0000 (UTC) Received: by mail-wm0-x243.google.com with SMTP id a20so13342982wme.2 for ; Mon, 14 Nov 2016 00:57:18 -0800 (PST) In-Reply-To: <20161114085703.16540-1-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 VHJhY2sgdGhlIHByaW9yaXR5IG9mIGVhY2ggcmVxdWVzdCBhbmQgdXNlIGl0IHRvIGRldGVybWlu ZSB0aGUgb3JkZXIgaW4Kd2hpY2ggd2Ugc3VibWl0IHJlcXVlc3RzIHRvIHRoZSBoYXJkd2FyZSB2 aWEgZXhlY2xpc3RzLgoKVGhlIHByaW9yaXR5IG9mIHRoZSByZXF1ZXN0IGlzIGRldGVybWluZWQg YnkgdGhlIHVzZXIgKGV2ZW50dWFsbHkgdmlhCnRoZSBjb250ZXh0KSBidXQgbWF5IGJlIG92ZXJy aWRkZW4gYXQgYW55IHRpbWUgYnkgdGhlIGRyaXZlci4gV2hlbiB3ZSBzZXQKdGhlIHByaW9yaXR5 IG9mIHRoZSByZXF1ZXN0LCB3ZSBidW1wIHRoZSBwcmlvcml0eSBvZiBhbGwgb2YgaXRzCmRlcGVu ZGVuY2llcyB0byBtYXRjaCAtIHNvIHRoYXQgYSBoaWdoIHByaW9yaXR5IGRyYXdpbmcgb3BlcmF0 aW9uIGlzIG5vdApzdHVjayBiZWhpbmQgYSBiYWNrZ3JvdW5kIHRhc2suCgpXaGVuIHRoZSByZXF1 ZXN0IGlzIHJlYWR5IHRvIGV4ZWN1dGUgKGkuZS4gd2UgaGF2ZSBzaWduYWxlZCB0aGUgc3VibWl0 CmZlbmNlIGZvbGxvd2luZyBjb21wbGV0aW9uIG9mIGFsbCBpdHMgZGVwZW5kZW5jaWVzLCBpbmNs dWRpbmcgdGhpcmQKcGFydHkgZmVuY2VzKSwgd2UgcHV0IHRoZSByZXF1ZXN0IGludG8gYSBwcmlv cml0eSBzb3J0ZWQgcmJ0cmVlIHRvIGJlCnN1Ym1pdHRlZCB0byB0aGUgaGFyZHdhcmUuIElmIHRo ZSByZXF1ZXN0IGlzIGhpZ2hlciBwcmlvcml0eSB0aGFuIGFsbApwZW5kaW5nIHJlcXVlc3RzLCBp dCB3aWxsIGJlIHN1Ym1pdHRlZCBvbiB0aGUgbmV4dCBjb250ZXh0LXN3aXRjaAppbnRlcnJ1cHQg YXMgc29vbiBhcyB0aGUgaGFyZHdhcmUgaGFzIGNvbXBsZXRlZCB0aGUgY3VycmVudCByZXF1ZXN0 LiBXZQpkbyBub3QgY3VycmVudGx5IHByZWVtcHQgYW55IGN1cnJlbnQgZXhlY3V0aW9uIHRvIGlt bWVkaWF0ZWx5IHJ1biBhIHZlcnkKaGlnaCBwcmlvcml0eSByZXF1ZXN0LCBhdCBsZWFzdCBub3Qg eWV0LgoKT25lIG1vcmUgbGltaXRhdGlvbiwgaXMgdGhhdCB0aGlzIGlzIGZpcnN0IGltcGxlbWVu dGF0aW9uIGlzIGZvcgpleGVjbGlzdHMgb25seSBzbyBjdXJyZW50bHkgbGltaXRlZCB0byBnZW44 L2dlbjkuCgp2MjogUmVwbGFjZSByZWN1cnNpdmUgcHJpb3JpdHkgaW5oZXJpdGFuY2UgYnVtcGlu ZyB3aXRoIGFuIGl0ZXJhdGl2ZQpkZXB0aC1maXJzdCBzZWFyY2ggbGlzdC4KdjM6IGxpc3RfbmV4 dF9lbnRyeSgpIGZvciB3YWxraW5nIGxpc3RzCgpTaWduZWQtb2ZmLWJ5OiBDaHJpcyBXaWxzb24g PGNocmlzQGNocmlzLXdpbHNvbi5jby51az4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2RlYnVnZnMuYyAgICAgICAgfCAgIDcgKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2Vt LmMgICAgICAgICAgICB8ICAgMyArLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fcmVx dWVzdC5jICAgIHwgICA1ICsrCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9yZXF1ZXN0 LmggICAgfCAgIDggKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ3VjX3N1Ym1pc3Npb24u YyB8ICAgMSArCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9lbmdpbmVfY3MuYyAgICAgfCAg IDMgKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5jICAgICAgICAgICB8IDEzNSAr KysrKysrKysrKysrKysrKysrKysrKysrKystLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf cmluZ2J1ZmZlci5oICAgIHwgICAzICstCiA4IGZpbGVzIGNoYW5nZWQsIDE0OSBpbnNlcnRpb25z KCspLCAxNiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2RlYnVnZnMuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jCmluZGV4 IDAzZTNjMmFmYmIwNi4uMWNjOTcxY2I2Y2IxIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2RlYnVnZnMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVn ZnMuYwpAQCAtNjMxLDggKzYzMSw5IEBAIHN0YXRpYyB2b2lkIHByaW50X3JlcXVlc3Qoc3RydWN0 IHNlcV9maWxlICptLAogCQkJICBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJxLAogCQkJ ICBjb25zdCBjaGFyICpwcmVmaXgpCiB7Ci0Jc2VxX3ByaW50ZihtLCAiJXMleCBbJXg6JXhdIEAg JWQ6ICVzXG4iLCBwcmVmaXgsCisJc2VxX3ByaW50ZihtLCAiJXMleCBbJXg6JXhdIHByaW89JWQg QCAlZG1zOiAlc1xuIiwgcHJlZml4LAogCQkgICBycS0+Z2xvYmFsX3NlcW5vLCBycS0+Y3R4LT5o d19pZCwgcnEtPmZlbmNlLnNlcW5vLAorCQkgICBycS0+cHJpb3RyZWUucHJpb3JpdHksCiAJCSAg IGppZmZpZXNfdG9fbXNlY3MoamlmZmllcyAtIHJxLT5lbWl0dGVkX2ppZmZpZXMpLAogCQkgICBy cS0+dGltZWxpbmUtPmNvbW1vbi0+bmFtZSk7CiB9CkBAIC0zMjE2LDYgKzMyMTcsNyBAQCBzdGF0 aWMgaW50IGk5MTVfZW5naW5lX2luZm8oc3RydWN0IHNlcV9maWxlICptLCB2b2lkICp1bnVzZWQp CiAKIAkJaWYgKGk5MTUuZW5hYmxlX2V4ZWNsaXN0cykgewogCQkJdTMyIHB0ciwgcmVhZCwgd3Jp dGU7CisJCQlzdHJ1Y3QgcmJfbm9kZSAqcmI7CiAKIAkJCXNlcV9wcmludGYobSwgIlx0RXhlY2xp c3Qgc3RhdHVzOiAweCUwOHggJTA4eFxuIiwKIAkJCQkgICBJOTE1X1JFQUQoUklOR19FWEVDTElT VF9TVEFUVVNfTE8oZW5naW5lKSksCkBAIC0zMjU1LDcgKzMyNTcsOCBAQCBzdGF0aWMgaW50IGk5 MTVfZW5naW5lX2luZm8oc3RydWN0IHNlcV9maWxlICptLCB2b2lkICp1bnVzZWQpCiAJCQlyY3Vf cmVhZF91bmxvY2soKTsKIAogCQkJc3Bpbl9sb2NrX2lycSgmZW5naW5lLT50aW1lbGluZS0+bG9j ayk7Ci0JCQlsaXN0X2Zvcl9lYWNoX2VudHJ5KHJxLCAmZW5naW5lLT5leGVjbGlzdF9xdWV1ZSwg ZXhlY2xpc3RfbGluaykgeworCQkJZm9yIChyYiA9IGVuZ2luZS0+ZXhlY2xpc3RfZmlyc3Q7IHJi OyByYiA9IHJiX25leHQocmIpKSB7CisJCQkJcnEgPSByYl9lbnRyeShyYiwgdHlwZW9mKCpycSks IHByaW90cmVlLm5vZGUpOwogCQkJCXByaW50X3JlcXVlc3QobSwgcnEsICJcdFx0USAiKTsKIAkJ CX0KIAkJCXNwaW5fdW5sb2NrX2lycSgmZW5naW5lLT50aW1lbGluZS0+bG9jayk7CmRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9nZW0uYwppbmRleCBiMzMxZTU5NjZmZTIuLmE5ZDI3ZjNlODhkMiAxMDA2NDQKLS0t IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYworKysgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2dlbS5jCkBAIC0yNzIyLDEwICsyNzIyLDExIEBAIHN0YXRpYyB2b2lkIGk5MTVf Z2VtX2NsZWFudXBfZW5naW5lKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKIAogCQlz cGluX2xvY2tfaXJxc2F2ZSgmZW5naW5lLT50aW1lbGluZS0+bG9jaywgZmxhZ3MpOwogCi0JCUlO SVRfTElTVF9IRUFEKCZlbmdpbmUtPmV4ZWNsaXN0X3F1ZXVlKTsKIAkJaTkxNV9nZW1fcmVxdWVz dF9wdXQoZW5naW5lLT5leGVjbGlzdF9wb3J0WzBdLnJlcXVlc3QpOwogCQlpOTE1X2dlbV9yZXF1 ZXN0X3B1dChlbmdpbmUtPmV4ZWNsaXN0X3BvcnRbMV0ucmVxdWVzdCk7CiAJCW1lbXNldChlbmdp bmUtPmV4ZWNsaXN0X3BvcnQsIDAsIHNpemVvZihlbmdpbmUtPmV4ZWNsaXN0X3BvcnQpKTsKKwkJ ZW5naW5lLT5leGVjbGlzdF9xdWV1ZSA9IFJCX1JPT1Q7CisJCWVuZ2luZS0+ZXhlY2xpc3RfZmly c3QgPSBOVUxMOwogCiAJCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmVuZ2luZS0+dGltZWxpbmUt PmxvY2ssIGZsYWdzKTsKIAl9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2dlbV9yZXF1ZXN0LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9yZXF1ZXN0LmMK aW5kZXggNzhjODdkOTRkMjA1Li4xMzU3NGExZTI5YjEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZ2VtX3JlcXVlc3QuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2dlbV9yZXF1ZXN0LmMKQEAgLTEzMiw2ICsxMzIsNyBAQCBfX2k5MTVfcHJpb3RyZWVfYWRk X2RlcGVuZGVuY3koc3RydWN0IGk5MTVfcHJpb3RyZWUgKnB0LAogCQkJICAgICAgIHN0cnVjdCBp OTE1X2RlcGVuZGVuY3kgKmRlcCwKIAkJCSAgICAgICB1bnNpZ25lZCBsb25nIGZsYWdzKQogewor CUlOSVRfTElTVF9IRUFEKCZkZXAtPmRmc19saW5rKTsKIAlsaXN0X2FkZCgmZGVwLT53YWl0X2xp bmssICZzaWduYWwtPndhaXRlcnNfbGlzdCk7CiAJbGlzdF9hZGQoJmRlcC0+c2lnbmFsX2xpbmss ICZwdC0+c2lnbmFsZXJzX2xpc3QpOwogCWRlcC0+c2lnbmFsZXIgPSBzaWduYWw7CkBAIC0xNTgs NiArMTU5LDggQEAgaTkxNV9wcmlvdHJlZV9maW5pKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpp OTE1LCBzdHJ1Y3QgaTkxNV9wcmlvdHJlZSAqcHQpCiB7CiAJc3RydWN0IGk5MTVfZGVwZW5kZW5j eSAqZGVwLCAqbmV4dDsKIAorCUdFTV9CVUdfT04oIVJCX0VNUFRZX05PREUoJnB0LT5ub2RlKSk7 CisKIAkvKiBFdmVyeW9uZSB3ZSBkZXBlbmRlZCB1cG9uICh0aGUgZmVuY2VzIHdlIHdhaXQgdG8g YmUgc2lnbmFsZWQpCiAJICogc2hvdWxkIHJldGlyZSBiZWZvcmUgdXMgYW5kIHJlbW92ZSB0aGVt c2VsdmVzIGZyb20gb3VyIGxpc3QuCiAJICogSG93ZXZlciwgcmV0aXJlbWVudCBpcyBydW4gaW5k ZXBlbmRlbnRseSBvbiBlYWNoIHRpbWVsaW5lIGFuZApAQCAtMTgyLDYgKzE4NSw4IEBAIGk5MTVf cHJpb3RyZWVfaW5pdChzdHJ1Y3QgaTkxNV9wcmlvdHJlZSAqcHQpCiB7CiAJSU5JVF9MSVNUX0hF QUQoJnB0LT5zaWduYWxlcnNfbGlzdCk7CiAJSU5JVF9MSVNUX0hFQUQoJnB0LT53YWl0ZXJzX2xp c3QpOworCVJCX0NMRUFSX05PREUoJnB0LT5ub2RlKTsKKwlwdC0+cHJpb3JpdHkgPSBJTlRfTUlO OwogfQogCiB2b2lkIGk5MTVfZ2VtX3JldGlyZV9ub29wKHN0cnVjdCBpOTE1X2dlbV9hY3RpdmUg KmFjdGl2ZSwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX3JlcXVl c3QuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX3JlcXVlc3QuaAppbmRleCA5NDNj MzlkMmE2MmEuLmUyYjA3N2RmMmRhMCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9nZW1fcmVxdWVzdC5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX3Jl cXVlc3QuaApAQCAtNDgsNiArNDgsNyBAQCBzdHJ1Y3QgaTkxNV9kZXBlbmRlbmN5IHsKIAlzdHJ1 Y3QgaTkxNV9wcmlvdHJlZSAqc2lnbmFsZXI7CiAJc3RydWN0IGxpc3RfaGVhZCBzaWduYWxfbGlu azsKIAlzdHJ1Y3QgbGlzdF9oZWFkIHdhaXRfbGluazsKKwlzdHJ1Y3QgbGlzdF9oZWFkIGRmc19s aW5rOwogCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CiAjZGVmaW5lIEk5MTVfREVQRU5ERU5DWV9BTExP QyBCSVQoMCkKIH07CkBAIC02NCw2ICs2NSwxMCBAQCBzdHJ1Y3QgaTkxNV9kZXBlbmRlbmN5IHsK IHN0cnVjdCBpOTE1X3ByaW90cmVlIHsKIAlzdHJ1Y3QgbGlzdF9oZWFkIHNpZ25hbGVyc19saXN0 OyAvKiB0aG9zZSBiZWZvcmUgdXMsIHdlIGRlcGVuZCB1cG9uICovCiAJc3RydWN0IGxpc3RfaGVh ZCB3YWl0ZXJzX2xpc3Q7IC8qIHRob3NlIGFmdGVyIHVzLCB0aGV5IGRlcGVuZCB1cG9uIHVzICov CisJc3RydWN0IHJiX25vZGUgbm9kZTsKKwlpbnQgcHJpb3JpdHk7CisjZGVmaW5lIEk5MTVfUFJJ T1JJVFlfTUFYIDEwMjQKKyNkZWZpbmUgSTkxNV9QUklPUklUWV9NSU4gKC1JOTE1X1BSSU9SSVRZ X01BWCkKIH07CiAKIC8qKgpAQCAtMTk0LDkgKzE5OSw2IEBAIHN0cnVjdCBkcm1faTkxNV9nZW1f cmVxdWVzdCB7CiAJc3RydWN0IGRybV9pOTE1X2ZpbGVfcHJpdmF0ZSAqZmlsZV9wcml2OwogCS8q KiBmaWxlX3ByaXYgbGlzdCBlbnRyeSBmb3IgdGhpcyByZXF1ZXN0ICovCiAJc3RydWN0IGxpc3Rf aGVhZCBjbGllbnRfbGlzdDsKLQotCS8qKiBMaW5rIGluIHRoZSBleGVjbGlzdCBzdWJtaXNzaW9u IHF1ZXVlLCBndWFyZGVkIGJ5IGV4ZWNsaXN0X2xvY2suICovCi0Jc3RydWN0IGxpc3RfaGVhZCBl eGVjbGlzdF9saW5rOwogfTsKIAogZXh0ZXJuIGNvbnN0IHN0cnVjdCBkbWFfZmVuY2Vfb3BzIGk5 MTVfZmVuY2Vfb3BzOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ndWNf c3VibWlzc2lvbi5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ndWNfc3VibWlzc2lvbi5j CmluZGV4IDk0MmY1MDAwZDM3Mi4uNDQ2MjExMjcyNWVmIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2d1Y19zdWJtaXNzaW9uLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9ndWNfc3VibWlzc2lvbi5jCkBAIC0xNTMyLDYgKzE1MzIsNyBAQCBpbnQgaTkxNV9n dWNfc3VibWlzc2lvbl9lbmFibGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQog CS8qIFRha2Ugb3ZlciBmcm9tIG1hbnVhbCBjb250cm9sIG9mIEVMU1AgKGV4ZWNsaXN0cykgKi8K IAlmb3JfZWFjaF9lbmdpbmUoZW5naW5lLCBkZXZfcHJpdiwgaWQpIHsKIAkJZW5naW5lLT5zdWJt aXRfcmVxdWVzdCA9IGk5MTVfZ3VjX3N1Ym1pdDsKKwkJZW5naW5lLT5zY2hlZHVsZSA9IE5VTEw7 CiAKIAkJLyogUmVwbGF5IHRoZSBjdXJyZW50IHNldCBvZiBwcmV2aW91c2x5IHN1Ym1pdHRlZCBy ZXF1ZXN0cyAqLwogCQlsaXN0X2Zvcl9lYWNoX2VudHJ5KHJlcXVlc3QsCmRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9lbmdpbmVfY3MuYyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2VuZ2luZV9jcy5jCmluZGV4IGM5MTcxYTA1ODQ3OC4uM2RhNGQ0NjZlMzMyIDEw MDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9lbmdpbmVfY3MuYworKysgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9lbmdpbmVfY3MuYwpAQCAtMjM5LDcgKzIzOSw4IEBA IHN0YXRpYyB2b2lkIGludGVsX2VuZ2luZV9pbml0X3RpbWVsaW5lKHN0cnVjdCBpbnRlbF9lbmdp bmVfY3MgKmVuZ2luZSkKICAqLwogdm9pZCBpbnRlbF9lbmdpbmVfc2V0dXBfY29tbW9uKHN0cnVj dCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKIHsKLQlJTklUX0xJU1RfSEVBRCgmZW5naW5lLT5l eGVjbGlzdF9xdWV1ZSk7CisJZW5naW5lLT5leGVjbGlzdF9xdWV1ZSA9IFJCX1JPT1Q7CisJZW5n aW5lLT5leGVjbGlzdF9maXJzdCA9IE5VTEw7CiAKIAlpbnRlbF9lbmdpbmVfaW5pdF90aW1lbGlu ZShlbmdpbmUpOwogCWludGVsX2VuZ2luZV9pbml0X2hhbmdjaGVjayhlbmdpbmUpOwpkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9scmMuYwppbmRleCBkMWFlYTc0NjI1MTUuLmQxM2EzMzVhZDgzYSAxMDA2NDQK LS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMKKysrIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfbHJjLmMKQEAgLTQzMiw5ICs0MzIsMTAgQEAgc3RhdGljIGJvb2wgY2Fu X21lcmdlX2N0eChjb25zdCBzdHJ1Y3QgaTkxNV9nZW1fY29udGV4dCAqcHJldiwKIAogc3RhdGlj IHZvaWQgZXhlY2xpc3RzX2RlcXVldWUoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQog ewotCXN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqY3Vyc29yLCAqbGFzdDsKKwlzdHJ1Y3Qg ZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKmxhc3Q7CiAJc3RydWN0IGV4ZWNsaXN0X3BvcnQgKnBvcnQg PSBlbmdpbmUtPmV4ZWNsaXN0X3BvcnQ7CiAJdW5zaWduZWQgbG9uZyBmbGFnczsKKwlzdHJ1Y3Qg cmJfbm9kZSAqcmI7CiAJYm9vbCBzdWJtaXQgPSBmYWxzZTsKIAogCWxhc3QgPSBwb3J0LT5yZXF1 ZXN0OwpAQCAtNDcxLDcgKzQ3MiwxMSBAQCBzdGF0aWMgdm9pZCBleGVjbGlzdHNfZGVxdWV1ZShz dHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCiAJICovCiAKIAlzcGluX2xvY2tfaXJxc2F2 ZSgmZW5naW5lLT50aW1lbGluZS0+bG9jaywgZmxhZ3MpOwotCWxpc3RfZm9yX2VhY2hfZW50cnko Y3Vyc29yLCAmZW5naW5lLT5leGVjbGlzdF9xdWV1ZSwgZXhlY2xpc3RfbGluaykgeworCXJiID0g ZW5naW5lLT5leGVjbGlzdF9maXJzdDsKKwl3aGlsZSAocmIpIHsKKwkJc3RydWN0IGRybV9pOTE1 X2dlbV9yZXF1ZXN0ICpjdXJzb3IgPQorCQkJcmJfZW50cnkocmIsIHR5cGVvZigqY3Vyc29yKSwg cHJpb3RyZWUubm9kZSk7CisKIAkJLyogQ2FuIHdlIGNvbWJpbmUgdGhpcyByZXF1ZXN0IHdpdGgg dGhlIGN1cnJlbnQgcG9ydD8gSXQgaGFzIHRvCiAJCSAqIGJlIHRoZSBzYW1lIGNvbnRleHQvcmlu Z2J1ZmZlciBhbmQgbm90IGhhdmUgYW55IGV4Y2VwdGlvbnMKIAkJICogKGUuZy4gR1ZUIHNheWlu ZyBuZXZlciB0byBjb21iaW5lIGNvbnRleHRzKS4KQEAgLTUwMyw2ICs1MDgsMTEgQEAgc3RhdGlj IHZvaWQgZXhlY2xpc3RzX2RlcXVldWUoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQog CQkJcG9ydCsrOwogCQl9CiAKKwkJcmIgPSByYl9uZXh0KHJiKTsKKwkJcmJfZXJhc2UoJmN1cnNv ci0+cHJpb3RyZWUubm9kZSwgJmVuZ2luZS0+ZXhlY2xpc3RfcXVldWUpOworCQlSQl9DTEVBUl9O T0RFKCZjdXJzb3ItPnByaW90cmVlLm5vZGUpOworCQljdXJzb3ItPnByaW90cmVlLnByaW9yaXR5 ID0gSU5UX01BWDsKKwogCQkvKiBXZSBrZWVwIHRoZSBwcmV2aW91cyBjb250ZXh0IGFsaXZlIHVu dGlsIHdlIHJldGlyZSB0aGUKIAkJICogZm9sbG93aW5nIHJlcXVlc3QuIFRoaXMgZW5zdXJlcyB0 aGF0IGFueSB0aGUgY29udGV4dCBvYmplY3QKIAkJICogaXMgc3RpbGwgcGlubmVkIGZvciBhbnkg cmVzaWR1YWwgd3JpdGVzIHRoZSBIVyBtYWtlcyBpbnRvIGl0CkBAIC01MTcsMTEgKzUyNyw4IEBA IHN0YXRpYyB2b2lkIGV4ZWNsaXN0c19kZXF1ZXVlKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVu Z2luZSkKIAkJc3VibWl0ID0gdHJ1ZTsKIAl9CiAJaWYgKHN1Ym1pdCkgewotCQkvKiBEZWNvdXBs ZSBhbGwgdGhlIHJlcXVlc3RzIHN1Ym1pdHRlZCBmcm9tIHRoZSBxdWV1ZSAqLwotCQllbmdpbmUt PmV4ZWNsaXN0X3F1ZXVlLm5leHQgPSAmY3Vyc29yLT5leGVjbGlzdF9saW5rOwotCQljdXJzb3It PmV4ZWNsaXN0X2xpbmsucHJldiA9ICZlbmdpbmUtPmV4ZWNsaXN0X3F1ZXVlOwotCiAJCWk5MTVf Z2VtX3JlcXVlc3RfYXNzaWduKCZwb3J0LT5yZXF1ZXN0LCBsYXN0KTsKKwkJZW5naW5lLT5leGVj bGlzdF9maXJzdCA9IHJiOwogCX0KIAlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZlbmdpbmUtPnRp bWVsaW5lLT5sb2NrLCBmbGFncyk7CiAKQEAgLTYyNiw2ICs2MzMsMzIgQEAgc3RhdGljIHZvaWQg aW50ZWxfbHJjX2lycV9oYW5kbGVyKHVuc2lnbmVkIGxvbmcgZGF0YSkKIAlpbnRlbF91bmNvcmVf Zm9yY2V3YWtlX3B1dChkZXZfcHJpdiwgZW5naW5lLT5md19kb21haW5zKTsKIH0KIAorc3RhdGlj IGJvb2wgaW5zZXJ0X3JlcXVlc3Qoc3RydWN0IGk5MTVfcHJpb3RyZWUgKnB0LCBzdHJ1Y3QgcmJf cm9vdCAqcm9vdCkKK3sKKwlzdHJ1Y3QgcmJfbm9kZSAqKnAsICpyYjsKKwlib29sIGZpcnN0ID0g dHJ1ZTsKKworCS8qIG1vc3QgcG9zaXRpdmUgcHJpb3JpdHkgaXMgc2NoZWR1bGVkIGZpcnN0LCBl cXVhbCBwcmlvcml0aWVzIGZpZm8gKi8KKwlyYiA9IE5VTEw7CisJcCA9ICZyb290LT5yYl9ub2Rl OworCXdoaWxlICgqcCkgeworCQlzdHJ1Y3QgaTkxNV9wcmlvdHJlZSAqcG9zOworCisJCXJiID0g KnA7CisJCXBvcyA9IHJiX2VudHJ5KHJiLCB0eXBlb2YoKnBvcyksIG5vZGUpOworCQlpZiAocHQt PnByaW9yaXR5ID4gcG9zLT5wcmlvcml0eSkgeworCQkJcCA9ICZyYi0+cmJfbGVmdDsKKwkJfSBl bHNlIHsKKwkJCXAgPSAmcmItPnJiX3JpZ2h0OworCQkJZmlyc3QgPSBmYWxzZTsKKwkJfQorCX0K KwlyYl9saW5rX25vZGUoJnB0LT5ub2RlLCByYiwgcCk7CisJcmJfaW5zZXJ0X2NvbG9yKCZwdC0+ bm9kZSwgcm9vdCk7CisKKwlyZXR1cm4gZmlyc3Q7Cit9CisKIHN0YXRpYyB2b2lkIGV4ZWNsaXN0 c19zdWJtaXRfcmVxdWVzdChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcXVlc3QpCiB7 CiAJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lID0gcmVxdWVzdC0+ZW5naW5lOwpAQCAt NjM0LDEzICs2NjcsOTYgQEAgc3RhdGljIHZvaWQgZXhlY2xpc3RzX3N1Ym1pdF9yZXF1ZXN0KHN0 cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxdWVzdCkKIAkvKiBXaWxsIGJlIGNhbGxlZCBm cm9tIGlycS1jb250ZXh0IHdoZW4gdXNpbmcgZm9yZWlnbiBmZW5jZXMuICovCiAJc3Bpbl9sb2Nr X2lycXNhdmUoJmVuZ2luZS0+dGltZWxpbmUtPmxvY2ssIGZsYWdzKTsKIAotCWxpc3RfYWRkX3Rh aWwoJnJlcXVlc3QtPmV4ZWNsaXN0X2xpbmssICZlbmdpbmUtPmV4ZWNsaXN0X3F1ZXVlKTsKKwlp ZiAoaW5zZXJ0X3JlcXVlc3QoJnJlcXVlc3QtPnByaW90cmVlLCAmZW5naW5lLT5leGVjbGlzdF9x dWV1ZSkpCisJCWVuZ2luZS0+ZXhlY2xpc3RfZmlyc3QgPSAmcmVxdWVzdC0+cHJpb3RyZWUubm9k ZTsKIAlpZiAoZXhlY2xpc3RzX2Vsc3BfaWRsZShlbmdpbmUpKQogCQl0YXNrbGV0X2hpX3NjaGVk dWxlKCZlbmdpbmUtPmlycV90YXNrbGV0KTsKIAogCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmVu Z2luZS0+dGltZWxpbmUtPmxvY2ssIGZsYWdzKTsKIH0KIAorc3RhdGljIHN0cnVjdCBpbnRlbF9l bmdpbmVfY3MgKgorcHRfbG9ja19lbmdpbmUoc3RydWN0IGk5MTVfcHJpb3RyZWUgKnB0LCBzdHJ1 Y3QgaW50ZWxfZW5naW5lX2NzICpsb2NrZWQpCit7CisJc3RydWN0IGludGVsX2VuZ2luZV9jcyAq ZW5naW5lOworCisJZW5naW5lID0gY29udGFpbmVyX29mKHB0LAorCQkJICAgICAgc3RydWN0IGRy bV9pOTE1X2dlbV9yZXF1ZXN0LAorCQkJICAgICAgcHJpb3RyZWUpLT5lbmdpbmU7CisJaWYgKGVu Z2luZSAhPSBsb2NrZWQpIHsKKwkJaWYgKGxvY2tlZCkKKwkJCXNwaW5fdW5sb2NrX2lycSgmbG9j a2VkLT50aW1lbGluZS0+bG9jayk7CisJCXNwaW5fbG9ja19pcnEoJmVuZ2luZS0+dGltZWxpbmUt PmxvY2spOworCX0KKworCXJldHVybiBlbmdpbmU7Cit9CisKK3N0YXRpYyB2b2lkIGV4ZWNsaXN0 c19zY2hlZHVsZShzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcXVlc3QsIGludCBwcmlv KQoreworCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSA9IE5VTEw7CisJc3RydWN0IGk5 MTVfZGVwZW5kZW5jeSAqZGVwLCAqcDsKKwlzdHJ1Y3QgaTkxNV9kZXBlbmRlbmN5IHN0YWNrOwor CUxJU1RfSEVBRChkZnMpOworCisJaWYgKHByaW8gPD0gUkVBRF9PTkNFKHJlcXVlc3QtPnByaW90 cmVlLnByaW9yaXR5KSkKKwkJcmV0dXJuOworCisJLyogTmVlZCBCS0wgaW4gb3JkZXIgdG8gdXNl IHRoZSB0ZW1wb3JhcnkgbGluayBpbnNpZGUgaTkxNV9kZXBlbmRlbmN5ICovCisJbG9ja2RlcF9h c3NlcnRfaGVsZCgmcmVxdWVzdC0+aTkxNS0+ZHJtLnN0cnVjdF9tdXRleCk7CisKKwlzdGFjay5z aWduYWxlciA9ICZyZXF1ZXN0LT5wcmlvdHJlZTsKKwlsaXN0X2FkZCgmc3RhY2suZGZzX2xpbmss ICZkZnMpOworCisJLyogUmVjdXJzaXZlbHkgYnVtcCBhbGwgZGVwZW5kZW50IHByaW9yaXRpZXMg dG8gbWF0Y2ggdGhlIG5ldyByZXF1ZXN0ICovCisJbGlzdF9mb3JfZWFjaF9lbnRyeV9zYWZlKGRl cCwgcCwgJmRmcywgZGZzX2xpbmspIHsKKwkJc3RydWN0IGk5MTVfcHJpb3RyZWUgKnB0ID0gZGVw LT5zaWduYWxlcjsKKworCQlsaXN0X2Zvcl9lYWNoX2VudHJ5KHAsICZwdC0+c2lnbmFsZXJzX2xp c3QsIHNpZ25hbF9saW5rKQorCQkJaWYgKHByaW8gPiBSRUFEX09OQ0UocC0+c2lnbmFsZXItPnBy aW9yaXR5KSkKKwkJCQlsaXN0X21vdmVfdGFpbCgmcC0+ZGZzX2xpbmssICZkZnMpOworCisJCXAg PSBsaXN0X25leHRfZW50cnkoZGVwLCBkZnNfbGluayk7CisJCWlmICghUkJfRU1QVFlfTk9ERSgm cHQtPm5vZGUpKQorCQkJY29udGludWU7CisKKwkJZW5naW5lID0gcHRfbG9ja19lbmdpbmUocHQs IGVuZ2luZSk7CisKKwkJLyogSWYgaXQgaXMgbm90IGFscmVhZHkgaW4gdGhlIHJidHJlZSwgd2Ug Y2FuIHVwZGF0ZSB0aGUKKwkJICogcHJpb3JpdHkgaW5wbGFjZSBhbmQgc2tpcCBvdmVyIGl0IChh bmQgaXRzIGRlcGVuZGVuY2llcykKKwkJICogaWYgaXQgaXMgcmVmZXJlbmNlZCAqYWdhaW4qIGFz IHdlIGRlc2NlbmQgdGhlIGRmcy4KKwkJICovCisJCWlmIChwcmlvID4gcHQtPnByaW9yaXR5ICYm IFJCX0VNUFRZX05PREUoJnB0LT5ub2RlKSkgeworCQkJcHQtPnByaW9yaXR5ID0gcHJpbzsKKwkJ CWxpc3RfZGVsX2luaXQoJmRlcC0+ZGZzX2xpbmspOworCQl9CisJfQorCisJLyogRmlmbyBhbmQg ZGVwdGgtZmlyc3QgcmVwbGFjZW1lbnQgZW5zdXJlIG91ciBkZXBzIGV4ZWN1dGUgYmVmb3JlIHVz ICovCisJbGlzdF9mb3JfZWFjaF9lbnRyeV9zYWZlX3JldmVyc2UoZGVwLCBwLCAmZGZzLCBkZnNf bGluaykgeworCQlzdHJ1Y3QgaTkxNV9wcmlvdHJlZSAqcHQgPSBkZXAtPnNpZ25hbGVyOworCisJ CUlOSVRfTElTVF9IRUFEKCZkZXAtPmRmc19saW5rKTsKKworCQllbmdpbmUgPSBwdF9sb2NrX2Vu Z2luZShwdCwgZW5naW5lKTsKKworCQlpZiAocHJpbyA8PSBwdC0+cHJpb3JpdHkpCisJCQljb250 aW51ZTsKKworCQlHRU1fQlVHX09OKFJCX0VNUFRZX05PREUoJnB0LT5ub2RlKSk7CisKKwkJcHQt PnByaW9yaXR5ID0gcHJpbzsKKwkJcmJfZXJhc2UoJnB0LT5ub2RlLCAmZW5naW5lLT5leGVjbGlz dF9xdWV1ZSk7CisJCWlmIChpbnNlcnRfcmVxdWVzdChwdCwgJmVuZ2luZS0+ZXhlY2xpc3RfcXVl dWUpKQorCQkJZW5naW5lLT5leGVjbGlzdF9maXJzdCA9ICZwdC0+bm9kZTsKKwl9CisKKwlpZiAo ZW5naW5lKQorCQlzcGluX3VubG9ja19pcnEoJmVuZ2luZS0+dGltZWxpbmUtPmxvY2spOworCisJ LyogWFhYIERvIHdlIG5lZWQgdG8gcHJlZW1wdCB0byBtYWtlIHJvb20gZm9yIHVzIGFuZCBvdXIg ZGVwcz8gKi8KK30KKwogaW50IGludGVsX2xvZ2ljYWxfcmluZ19hbGxvY19yZXF1ZXN0X2V4dHJh cyhzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcXVlc3QpCiB7CiAJc3RydWN0IGludGVs X2VuZ2luZV9jcyAqZW5naW5lID0gcmVxdWVzdC0+ZW5naW5lOwpAQCAtMTY3Nyw4ICsxNzkzLDEw IEBAIHZvaWQgaW50ZWxfZXhlY2xpc3RzX2VuYWJsZV9zdWJtaXNzaW9uKHN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdikKIAlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmU7CiAJ ZW51bSBpbnRlbF9lbmdpbmVfaWQgaWQ7CiAKLQlmb3JfZWFjaF9lbmdpbmUoZW5naW5lLCBkZXZf cHJpdiwgaWQpCisJZm9yX2VhY2hfZW5naW5lKGVuZ2luZSwgZGV2X3ByaXYsIGlkKSB7CiAJCWVu Z2luZS0+c3VibWl0X3JlcXVlc3QgPSBleGVjbGlzdHNfc3VibWl0X3JlcXVlc3Q7CisJCWVuZ2lu ZS0+c2NoZWR1bGUgPSBleGVjbGlzdHNfc2NoZWR1bGU7CisJfQogfQogCiBzdGF0aWMgdm9pZApA QCAtMTY5MSw2ICsxODA5LDcgQEAgbG9naWNhbF9yaW5nX2RlZmF1bHRfdmZ1bmNzKHN0cnVjdCBp bnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKIAllbmdpbmUtPmVtaXRfYnJlYWRjcnVtYiA9IGdlbjhf ZW1pdF9icmVhZGNydW1iOwogCWVuZ2luZS0+ZW1pdF9icmVhZGNydW1iX3N6ID0gZ2VuOF9lbWl0 X2JyZWFkY3J1bWJfc3o7CiAJZW5naW5lLT5zdWJtaXRfcmVxdWVzdCA9IGV4ZWNsaXN0c19zdWJt aXRfcmVxdWVzdDsKKwllbmdpbmUtPnNjaGVkdWxlID0gZXhlY2xpc3RzX3NjaGVkdWxlOwogCiAJ ZW5naW5lLT5pcnFfZW5hYmxlID0gZ2VuOF9sb2dpY2FsX3JpbmdfZW5hYmxlX2lycTsKIAllbmdp bmUtPmlycV9kaXNhYmxlID0gZ2VuOF9sb2dpY2FsX3JpbmdfZGlzYWJsZV9pcnE7CmRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmggYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmgKaW5kZXggYjk1ODM5NDFlYjZiLi4zNDY2YjRl NzdlN2MgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIu aAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmgKQEAgLTM0OCw3 ICszNDgsOCBAQCBzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzIHsKIAkJc3RydWN0IGRybV9pOTE1X2dl bV9yZXF1ZXN0ICpyZXF1ZXN0OwogCQl1bnNpZ25lZCBpbnQgY291bnQ7CiAJfSBleGVjbGlzdF9w b3J0WzJdOwotCXN0cnVjdCBsaXN0X2hlYWQgZXhlY2xpc3RfcXVldWU7CisJc3RydWN0IHJiX3Jv b3QgZXhlY2xpc3RfcXVldWU7CisJc3RydWN0IHJiX25vZGUgKmV4ZWNsaXN0X2ZpcnN0OwogCXVu c2lnbmVkIGludCBmd19kb21haW5zOwogCWJvb2wgZGlzYWJsZV9saXRlX3Jlc3RvcmVfd2E7CiAJ Ym9vbCBwcmVlbXB0X3dhOwotLSAKMi4xMC4yCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0 cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9s aXN0aW5mby9pbnRlbC1nZngK