From mboxrd@z Thu Jan 1 00:00:00 1970 From: Alex Deucher Subject: [PATCH 05/14] drm/amdgpu: use fence_context to judge ctx switch Date: Wed, 4 May 2016 14:26:46 -0400 Message-ID: <1462386415-25600-5-git-send-email-alexander.deucher@amd.com> References: <1462386415-25600-1-git-send-email-alexander.deucher@amd.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-io0-x236.google.com (mail-io0-x236.google.com [IPv6:2607:f8b0:4001:c06::236]) by gabe.freedesktop.org (Postfix) with ESMTPS id 723EE6E12F for ; Wed, 4 May 2016 18:27:07 +0000 (UTC) Received: by mail-io0-x236.google.com with SMTP id d62so62751832iof.2 for ; Wed, 04 May 2016 11:27:07 -0700 (PDT) In-Reply-To: <1462386415-25600-1-git-send-email-alexander.deucher@amd.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: dri-devel@lists.freedesktop.org Cc: Alex Deucher , Monk Liu List-Id: dri-devel@lists.freedesktop.org RnJvbTogTW9uayBMaXUgPE1vbmsuTGl1QGFtZC5jb20+Cgp1c2UgY3R4IHBvaW50ZXIgaXMgbm90 IHNhZmUsIGN1eiB0aGV5IGFyZSBsaWtlbHkgYWxyZWFkeQpiZSBhc3NpZ25lZCB0byBhbm90aGVy IGN0eCB3aGVuIGRvaW5nIGNvbXBhcmluZy4KCmZlbmNlX2NvbnRleHQgaXMgYWx3YXlzIGluY3Jl YXNpbmcgYW5kIGhhdmUgcmFyZSBjaGFuY2UKdG8gb3ZlcmJhY2sgdG8gdXNlZCBudW1iZXIgZm9y IGpvYnMgdGhhdCBzY2hlZHVsZWQgdG8KcmluZyBjb250aW51ZW9uc2x5CgpTaWduZWQtb2ZmLWJ5 OiBNb25rIExpdSA8TW9uay5MaXVAYW1kLmNvbT4KUmV2aWV3ZWQtYnk6IEFsZXggRGV1Y2hlciA8 YWxleGFuZGVyLmRldWNoZXJAYW1kLmNvbT4KU2lnbmVkLW9mZi1ieTogQWxleCBEZXVjaGVyIDxh bGV4YW5kZXIuZGV1Y2hlckBhbWQuY29tPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1 L2FtZGdwdS5oICAgICAgICAgICB8ICA4ICsrKystLS0tCiBkcml2ZXJzL2dwdS9kcm0vYW1kL2Ft ZGdwdS9hbWRncHVfY3MuYyAgICAgICAgfCAgMSAtCiBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdw dS9hbWRncHVfaWIuYyAgICAgICAgfCAxNCArKysrKysrLS0tLS0tLQogZHJpdmVycy9ncHUvZHJt L2FtZC9hbWRncHUvYW1kZ3B1X3ZjZS5jICAgICAgIHwgIDIgKy0KIGRyaXZlcnMvZ3B1L2RybS9h bWQvYW1kZ3B1L2FtZGdwdV92Y2UuaCAgICAgICB8ICAyICstCiBkcml2ZXJzL2dwdS9kcm0vYW1k L2FtZGdwdS9jaWtfc2RtYS5jICAgICAgICAgfCAgMiArLQogZHJpdmVycy9ncHUvZHJtL2FtZC9h bWRncHUvZ2Z4X3Y3XzAuYyAgICAgICAgIHwgMTEgKysrKystLS0tLS0KIGRyaXZlcnMvZ3B1L2Ry bS9hbWQvYW1kZ3B1L2dmeF92OF8wLmMgICAgICAgICB8IDExICsrKysrLS0tLS0tCiBkcml2ZXJz L2dwdS9kcm0vYW1kL2FtZGdwdS9zZG1hX3YyXzQuYyAgICAgICAgfCAgMiArLQogZHJpdmVycy9n cHUvZHJtL2FtZC9hbWRncHUvc2RtYV92M18wLmMgICAgICAgIHwgIDIgKy0KIGRyaXZlcnMvZ3B1 L2RybS9hbWQvYW1kZ3B1L3V2ZF92NF8yLmMgICAgICAgICB8ICAyICstCiBkcml2ZXJzL2dwdS9k cm0vYW1kL2FtZGdwdS91dmRfdjVfMC5jICAgICAgICAgfCAgMiArLQogZHJpdmVycy9ncHUvZHJt L2FtZC9hbWRncHUvdXZkX3Y2XzAuYyAgICAgICAgIHwgIDIgKy0KIGRyaXZlcnMvZ3B1L2RybS9h bWQvc2NoZWR1bGVyL2dwdV9zY2hlZHVsZXIuYyB8ICAxICsKIGRyaXZlcnMvZ3B1L2RybS9hbWQv c2NoZWR1bGVyL2dwdV9zY2hlZHVsZXIuaCB8ICAxICsKIDE1IGZpbGVzIGNoYW5nZWQsIDMxIGlu c2VydGlvbnMoKyksIDMyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9hbWQvYW1kZ3B1L2FtZGdwdS5oIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1 LmgKaW5kZXggMmVlOTlkYy4uOWQ1NGQ3NiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2Ft ZC9hbWRncHUvYW1kZ3B1LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1 LmgKQEAgLTI4Myw3ICsyODMsNyBAQCBzdHJ1Y3QgYW1kZ3B1X3JpbmdfZnVuY3MgewogCWludCAo KnBhcnNlX2NzKShzdHJ1Y3QgYW1kZ3B1X2NzX3BhcnNlciAqcCwgdWludDMyX3QgaWJfaWR4KTsK IAkvKiBjb21tYW5kIGVtaXQgZnVuY3Rpb25zICovCiAJdm9pZCAoKmVtaXRfaWIpKHN0cnVjdCBh bWRncHVfcmluZyAqcmluZywKLQkJCXN0cnVjdCBhbWRncHVfaWIgKmliKTsKKwkJCXN0cnVjdCBh bWRncHVfaWIgKmliLCBib29sIGN0eF9zd2l0Y2gpOwogCXZvaWQgKCplbWl0X2ZlbmNlKShzdHJ1 Y3QgYW1kZ3B1X3JpbmcgKnJpbmcsIHVpbnQ2NF90IGFkZHIsCiAJCQkgICB1aW50NjRfdCBzZXEs IHVuc2lnbmVkIGZsYWdzKTsKIAl2b2lkICgqZW1pdF9waXBlbGluZV9zeW5jKShzdHJ1Y3QgYW1k Z3B1X3JpbmcgKnJpbmcpOwpAQCAtNzQyLDcgKzc0Miw2IEBAIHN0cnVjdCBhbWRncHVfaWIgewog CXN0cnVjdCBhbWRncHVfdXNlcl9mZW5jZSAgICAgICAgKnVzZXI7CiAJdW5zaWduZWQJCQl2bV9p ZDsKIAl1aW50NjRfdAkJCXZtX3BkX2FkZHI7Ci0Jc3RydWN0IGFtZGdwdV9jdHgJCSpjdHg7CiAJ dWludDMyX3QJCQlnZHNfYmFzZSwgZ2RzX3NpemU7CiAJdWludDMyX3QJCQlnd3NfYmFzZSwgZ3dz X3NpemU7CiAJdWludDMyX3QJCQlvYV9iYXNlLCBvYV9zaXplOwpAQCAtODA1LDcgKzgwNCw3IEBA IHN0cnVjdCBhbWRncHVfcmluZyB7CiAJdW5zaWduZWQJCXdwdHJfb2ZmczsKIAl1bnNpZ25lZAkJ bmV4dF9ycHRyX29mZnM7CiAJdW5zaWduZWQJCWZlbmNlX29mZnM7Ci0Jc3RydWN0IGFtZGdwdV9j dHgJKmN1cnJlbnRfY3R4OworCXVpbnQ2NF90IGxhc3RfZmVuY2VfY29udGV4dDsKIAllbnVtIGFt ZGdwdV9yaW5nX3R5cGUJdHlwZTsKIAljaGFyCQkJbmFtZVsxNl07CiAJdW5zaWduZWQJCWNvbmRf ZXhlX29mZnM7CkBAIC0xMjUzLDYgKzEyNTIsNyBAQCBzdHJ1Y3QgYW1kZ3B1X2pvYiB7CiAJc3Ry dWN0IGZlbmNlCQkqZmVuY2U7IC8qIHRoZSBodyBmZW5jZSAqLwogCXVpbnQzMl90CQludW1faWJz OwogCXZvaWQJCQkqb3duZXI7CisJdWludDY0X3QJCQlmZW5jZV9jb250ZXh0OwogCXN0cnVjdCBh bWRncHVfdXNlcl9mZW5jZSB1ZjsKIH07CiAjZGVmaW5lIHRvX2FtZGdwdV9qb2Ioc2NoZWRfam9i KQkJXApAQCAtMjIxOSw3ICsyMjE5LDcgQEAgYW1kZ3B1X2dldF9zZG1hX2luc3RhbmNlKHN0cnVj dCBhbWRncHVfcmluZyAqcmluZykKICNkZWZpbmUgYW1kZ3B1X3JpbmdfZ2V0X3JwdHIocikgKHIp LT5mdW5jcy0+Z2V0X3JwdHIoKHIpKQogI2RlZmluZSBhbWRncHVfcmluZ19nZXRfd3B0cihyKSAo ciktPmZ1bmNzLT5nZXRfd3B0cigocikpCiAjZGVmaW5lIGFtZGdwdV9yaW5nX3NldF93cHRyKHIp IChyKS0+ZnVuY3MtPnNldF93cHRyKChyKSkKLSNkZWZpbmUgYW1kZ3B1X3JpbmdfZW1pdF9pYihy LCBpYikgKHIpLT5mdW5jcy0+ZW1pdF9pYigociksIChpYikpCisjZGVmaW5lIGFtZGdwdV9yaW5n X2VtaXRfaWIociwgaWIsIGYpIChyKS0+ZnVuY3MtPmVtaXRfaWIoKHIpLCAoaWIpLCAoZikpCiAj ZGVmaW5lIGFtZGdwdV9yaW5nX2VtaXRfcGlwZWxpbmVfc3luYyhyKSAociktPmZ1bmNzLT5lbWl0 X3BpcGVsaW5lX3N5bmMoKHIpKQogI2RlZmluZSBhbWRncHVfcmluZ19lbWl0X3ZtX2ZsdXNoKHIs IHZtaWQsIGFkZHIpIChyKS0+ZnVuY3MtPmVtaXRfdm1fZmx1c2goKHIpLCAodm1pZCksIChhZGRy KSkKICNkZWZpbmUgYW1kZ3B1X3JpbmdfZW1pdF9mZW5jZShyLCBhZGRyLCBzZXEsIGZsYWdzKSAo ciktPmZ1bmNzLT5lbWl0X2ZlbmNlKChyKSwgKGFkZHIpLCAoc2VxKSwgKGZsYWdzKSkKZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9jcy5jIGIvZHJpdmVycy9n cHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2NzLmMKaW5kZXggMWEwNjU5Ni4uOGMzYmY2MyAxMDA2 NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2NzLmMKKysrIGIvZHJp dmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2NzLmMKQEAgLTc0MSw3ICs3NDEsNiBAQCBz dGF0aWMgaW50IGFtZGdwdV9jc19pYl9maWxsKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LAog CiAJCWliLT5sZW5ndGhfZHcgPSBjaHVua19pYi0+aWJfYnl0ZXMgLyA0OwogCQlpYi0+ZmxhZ3Mg PSBjaHVua19pYi0+ZmxhZ3M7Ci0JCWliLT5jdHggPSBwYXJzZXItPmN0eDsKIAkJaisrOwogCX0K IApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2liLmMgYi9k cml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfaWIuYwppbmRleCAwZWQ2NDMwLi4xNjkz ZmM3ZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2liLmMK KysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2liLmMKQEAgLTEyMCw3ICsx MjAsNyBAQCBpbnQgYW1kZ3B1X2liX3NjaGVkdWxlKHN0cnVjdCBhbWRncHVfcmluZyAqcmluZywg dW5zaWduZWQgbnVtX2licywKIHsKIAlzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiA9IHJpbmct PmFkZXY7CiAJc3RydWN0IGFtZGdwdV9pYiAqaWIgPSAmaWJzWzBdOwotCXN0cnVjdCBhbWRncHVf Y3R4ICpjdHgsICpvbGRfY3R4OworCXVpbnQ2NF90IGZlbmNlX2NvbnRleHQgPSAwLCBvbGQgPSBy aW5nLT5sYXN0X2ZlbmNlX2NvbnRleHQ7CiAJc3RydWN0IGZlbmNlICpod2Y7CiAJc3RydWN0IGFt ZGdwdV92bSAqdm0gPSBOVUxMOwogCXVuc2lnbmVkIGksIHBhdGNoX29mZnNldCA9IH4wOwpAQCAt MTMwLDkgKzEzMCwxMCBAQCBpbnQgYW1kZ3B1X2liX3NjaGVkdWxlKHN0cnVjdCBhbWRncHVfcmlu ZyAqcmluZywgdW5zaWduZWQgbnVtX2licywKIAlpZiAobnVtX2licyA9PSAwKQogCQlyZXR1cm4g LUVJTlZBTDsKIAotCWN0eCA9IGlicy0+Y3R4OwotCWlmIChqb2IpIC8qIGZvciBkb21haW4wIGpv YiBsaWtlIHJpbmcgdGVzdCwgaWJzLT5qb2IgaXMgbm90IGFzc2lnbmVkICovCisJaWYgKGpvYikg ey8qIGZvciBkb21haW4wIGpvYiBsaWtlIHJpbmcgdGVzdCwgaWJzLT5qb2IgaXMgbm90IGFzc2ln bmVkICovCiAJCXZtID0gam9iLT52bTsKKwkJZmVuY2VfY29udGV4dCA9IGpvYi0+ZmVuY2VfY29u dGV4dDsKKwl9CiAKIAlpZiAoIXJpbmctPnJlYWR5KSB7CiAJCWRldl9lcnIoYWRldi0+ZGV2LCAi Y291bGRuJ3Qgc2NoZWR1bGUgaWJcbiIpOwpAQCAtMTcxLDEyICsxNzIsMTEgQEAgaW50IGFtZGdw dV9pYl9zY2hlZHVsZShzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcsIHVuc2lnbmVkIG51bV9pYnMs CiAJLyogYWx3YXlzIHNldCBjb25kX2V4ZWNfcG9sbGluZyB0byBDT05USU5VRSAqLwogCSpyaW5n LT5jb25kX2V4ZV9jcHVfYWRkciA9IDE7CiAKLQlvbGRfY3R4ID0gcmluZy0+Y3VycmVudF9jdHg7 CiAJZm9yIChpID0gMDsgaSA8IG51bV9pYnM7ICsraSkgewogCQlpYiA9ICZpYnNbaV07Ci0JCWFt ZGdwdV9yaW5nX2VtaXRfaWIocmluZywgaWIpOwotCQlyaW5nLT5jdXJyZW50X2N0eCA9IGN0eDsK KwkJYW1kZ3B1X3JpbmdfZW1pdF9pYihyaW5nLCBpYiwgKGkgPT0gMCAmJiBvbGQgIT0gZmVuY2Vf Y29udGV4dCkpOwogCX0KKwlyaW5nLT5sYXN0X2ZlbmNlX2NvbnRleHQgPSBmZW5jZV9jb250ZXh0 OwogCiAJaWYgKHZtKSB7CiAJCWlmIChyaW5nLT5mdW5jcy0+ZW1pdF9oZHBfaW52YWxpZGF0ZSkK QEAgLTE4Niw3ICsxODYsNyBAQCBpbnQgYW1kZ3B1X2liX3NjaGVkdWxlKHN0cnVjdCBhbWRncHVf cmluZyAqcmluZywgdW5zaWduZWQgbnVtX2licywKIAlyID0gYW1kZ3B1X2ZlbmNlX2VtaXQocmlu ZywgJmh3Zik7CiAJaWYgKHIpIHsKIAkJZGV2X2VycihhZGV2LT5kZXYsICJmYWlsZWQgdG8gZW1p dCBmZW5jZSAoJWQpXG4iLCByKTsKLQkJcmluZy0+Y3VycmVudF9jdHggPSBvbGRfY3R4OworCQly aW5nLT5sYXN0X2ZlbmNlX2NvbnRleHQgPSBvbGQ7CiAJCWlmIChpYi0+dm1faWQpCiAJCQlhbWRn cHVfdm1fcmVzZXRfaWQoYWRldiwgaWItPnZtX2lkKTsKIAkJYW1kZ3B1X3JpbmdfdW5kbyhyaW5n KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV92Y2UuYyBi L2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV92Y2UuYwppbmRleCA3N2M2YzA4Li4x ZmFiZjE1IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdmNl LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3ZjZS5jCkBAIC03NjEs NyArNzYxLDcgQEAgb3V0OgogICogQGliOiB0aGUgSUIgdG8gZXhlY3V0ZQogICoKICAqLwotdm9p ZCBhbWRncHVfdmNlX3JpbmdfZW1pdF9pYihzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcsIHN0cnVj dCBhbWRncHVfaWIgKmliKQordm9pZCBhbWRncHVfdmNlX3JpbmdfZW1pdF9pYihzdHJ1Y3QgYW1k Z3B1X3JpbmcgKnJpbmcsIHN0cnVjdCBhbWRncHVfaWIgKmliLCBib29sIGN0eF9zd2l0Y2gpCiB7 CiAJYW1kZ3B1X3Jpbmdfd3JpdGUocmluZywgVkNFX0NNRF9JQik7CiAJYW1kZ3B1X3Jpbmdfd3Jp dGUocmluZywgbG93ZXJfMzJfYml0cyhpYi0+Z3B1X2FkZHIpKTsKZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV92Y2UuaCBiL2RyaXZlcnMvZ3B1L2RybS9hbWQv YW1kZ3B1L2FtZGdwdV92Y2UuaAppbmRleCBlZjk5ZDIzLi40MGQwNjUwIDEwMDY0NAotLS0gYS9k cml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdmNlLmgKKysrIGIvZHJpdmVycy9ncHUv ZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3ZjZS5oCkBAIC0zNCw3ICszNCw3IEBAIGludCBhbWRncHVf dmNlX2dldF9kZXN0cm95X21zZyhzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcsIHVpbnQzMl90IGhh bmRsZSwKIAkJCSAgICAgICBib29sIGRpcmVjdCwgc3RydWN0IGZlbmNlICoqZmVuY2UpOwogdm9p ZCBhbWRncHVfdmNlX2ZyZWVfaGFuZGxlcyhzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwgc3Ry dWN0IGRybV9maWxlICpmaWxwKTsKIGludCBhbWRncHVfdmNlX3JpbmdfcGFyc2VfY3Moc3RydWN0 IGFtZGdwdV9jc19wYXJzZXIgKnAsIHVpbnQzMl90IGliX2lkeCk7Ci12b2lkIGFtZGdwdV92Y2Vf cmluZ19lbWl0X2liKHN0cnVjdCBhbWRncHVfcmluZyAqcmluZywgc3RydWN0IGFtZGdwdV9pYiAq aWIpOwordm9pZCBhbWRncHVfdmNlX3JpbmdfZW1pdF9pYihzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJp bmcsIHN0cnVjdCBhbWRncHVfaWIgKmliLCBib29sIGN0eF9zd2l0Y2gpOwogdm9pZCBhbWRncHVf dmNlX3JpbmdfZW1pdF9mZW5jZShzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcsIHU2NCBhZGRyLCB1 NjQgc2VxLAogCQkJCXVuc2lnbmVkIGZsYWdzKTsKIGludCBhbWRncHVfdmNlX3JpbmdfdGVzdF9y aW5nKHN0cnVjdCBhbWRncHVfcmluZyAqcmluZyk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vYW1kL2FtZGdwdS9jaWtfc2RtYS5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvY2lr X3NkbWEuYwppbmRleCA4ZDY5YzY1Li5kNTRmYjE5IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9k cm0vYW1kL2FtZGdwdS9jaWtfc2RtYS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1 L2Npa19zZG1hLmMKQEAgLTIxMCw3ICsyMTAsNyBAQCBzdGF0aWMgdm9pZCBjaWtfc2RtYV9yaW5n X2luc2VydF9ub3Aoc3RydWN0IGFtZGdwdV9yaW5nICpyaW5nLCB1aW50MzJfdCBjb3VudCkKICAq IFNjaGVkdWxlIGFuIElCIGluIHRoZSBETUEgcmluZyAoQ0lLKS4KICAqLwogc3RhdGljIHZvaWQg Y2lrX3NkbWFfcmluZ19lbWl0X2liKHN0cnVjdCBhbWRncHVfcmluZyAqcmluZywKLQkJCSAgIHN0 cnVjdCBhbWRncHVfaWIgKmliKQorCQkJICAgc3RydWN0IGFtZGdwdV9pYiAqaWIsIGJvb2wgY3R4 X3N3aXRjaCkKIHsKIAl1MzIgZXh0cmFfYml0cyA9IGliLT52bV9pZCAmIDB4ZjsKIAl1MzIgbmV4 dF9ycHRyID0gcmluZy0+d3B0ciArIDU7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1k L2FtZGdwdS9nZnhfdjdfMC5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZ2Z4X3Y3XzAu YwppbmRleCAwMzEwODkwLi45ODEzODE5IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1k L2FtZGdwdS9nZnhfdjdfMC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2dmeF92 N18wLmMKQEAgLTIwMjksMTcgKzIwMjksMTYgQEAgc3RhdGljIHZvaWQgZ2Z4X3Y3XzBfcmluZ19l bWl0X2ZlbmNlX2NvbXB1dGUoc3RydWN0IGFtZGdwdV9yaW5nICpyaW5nLAogICogb24gdGhlIGdm eCByaW5nIGZvciBleGVjdXRpb24gYnkgdGhlIEdQVS4KICAqLwogc3RhdGljIHZvaWQgZ2Z4X3Y3 XzBfcmluZ19lbWl0X2liX2dmeChzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcsCi0JCQkJICBzdHJ1 Y3QgYW1kZ3B1X2liICppYikKKwkJCQkgIHN0cnVjdCBhbWRncHVfaWIgKmliLCBib29sIGN0eF9z d2l0Y2gpCiB7Ci0JYm9vbCBuZWVkX2N0eF9zd2l0Y2ggPSByaW5nLT5jdXJyZW50X2N0eCAhPSBp Yi0+Y3R4OwogCXUzMiBoZWFkZXIsIGNvbnRyb2wgPSAwOwogCXUzMiBuZXh0X3JwdHIgPSByaW5n LT53cHRyICsgNTsKIAogCS8qIGRyb3AgdGhlIENFIHByZWFtYmxlIElCIGZvciB0aGUgc2FtZSBj b250ZXh0ICovCi0JaWYgKChpYi0+ZmxhZ3MgJiBBTURHUFVfSUJfRkxBR19QUkVBTUJMRSkgJiYg IW5lZWRfY3R4X3N3aXRjaCkKKwlpZiAoKGliLT5mbGFncyAmIEFNREdQVV9JQl9GTEFHX1BSRUFN QkxFKSAmJiAhY3R4X3N3aXRjaCkKIAkJcmV0dXJuOwogCi0JaWYgKG5lZWRfY3R4X3N3aXRjaCkK KwlpZiAoY3R4X3N3aXRjaCkKIAkJbmV4dF9ycHRyICs9IDI7CiAKIAluZXh0X3JwdHIgKz0gNDsK QEAgLTIwNTAsNyArMjA0OSw3IEBAIHN0YXRpYyB2b2lkIGdmeF92N18wX3JpbmdfZW1pdF9pYl9n Zngoc3RydWN0IGFtZGdwdV9yaW5nICpyaW5nLAogCWFtZGdwdV9yaW5nX3dyaXRlKHJpbmcsIG5l eHRfcnB0cik7CiAKIAkvKiBpbnNlcnQgU1dJVENIX0JVRkZFUiBwYWNrZXQgYmVmb3JlIGZpcnN0 IElCIGluIHRoZSByaW5nIGZyYW1lICovCi0JaWYgKG5lZWRfY3R4X3N3aXRjaCkgeworCWlmIChj dHhfc3dpdGNoKSB7CiAJCWFtZGdwdV9yaW5nX3dyaXRlKHJpbmcsIFBBQ0tFVDMoUEFDS0VUM19T V0lUQ0hfQlVGRkVSLCAwKSk7CiAJCWFtZGdwdV9yaW5nX3dyaXRlKHJpbmcsIDApOwogCX0KQEAg LTIwNzMsNyArMjA3Miw3IEBAIHN0YXRpYyB2b2lkIGdmeF92N18wX3JpbmdfZW1pdF9pYl9nZngo c3RydWN0IGFtZGdwdV9yaW5nICpyaW5nLAogfQogCiBzdGF0aWMgdm9pZCBnZnhfdjdfMF9yaW5n X2VtaXRfaWJfY29tcHV0ZShzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcsCi0JCQkJICBzdHJ1Y3Qg YW1kZ3B1X2liICppYikKKwkJCQkgIHN0cnVjdCBhbWRncHVfaWIgKmliLCBib29sIGN0eF9zd2l0 Y2gpCiB7CiAJdTMyIGhlYWRlciwgY29udHJvbCA9IDA7CiAJdTMyIG5leHRfcnB0ciA9IHJpbmct PndwdHIgKyA1OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZ2Z4X3Y4 XzAuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2dmeF92OF8wLmMKaW5kZXggYTgyOTQ1 Zi4uMDY0ZjI1NSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZ2Z4X3Y4 XzAuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9nZnhfdjhfMC5jCkBAIC01NjQ0 LDE3ICs1NjQ0LDE2IEBAIHN0YXRpYyB2b2lkIGdmeF92OF8wX3JpbmdfZW1pdF9oZHBfaW52YWxp ZGF0ZShzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcpCiB9CiAKIHN0YXRpYyB2b2lkIGdmeF92OF8w X3JpbmdfZW1pdF9pYl9nZngoc3RydWN0IGFtZGdwdV9yaW5nICpyaW5nLAotCQkJCSAgc3RydWN0 IGFtZGdwdV9pYiAqaWIpCisJCQkJICBzdHJ1Y3QgYW1kZ3B1X2liICppYiwgYm9vbCBjdHhfc3dp dGNoKQogewotCWJvb2wgbmVlZF9jdHhfc3dpdGNoID0gcmluZy0+Y3VycmVudF9jdHggIT0gaWIt PmN0eDsKIAl1MzIgaGVhZGVyLCBjb250cm9sID0gMDsKIAl1MzIgbmV4dF9ycHRyID0gcmluZy0+ d3B0ciArIDU7CiAKIAkvKiBkcm9wIHRoZSBDRSBwcmVhbWJsZSBJQiBmb3IgdGhlIHNhbWUgY29u dGV4dCAqLwotCWlmICgoaWItPmZsYWdzICYgQU1ER1BVX0lCX0ZMQUdfUFJFQU1CTEUpICYmICFu ZWVkX2N0eF9zd2l0Y2gpCisJaWYgKChpYi0+ZmxhZ3MgJiBBTURHUFVfSUJfRkxBR19QUkVBTUJM RSkgJiYgIWN0eF9zd2l0Y2gpCiAJCXJldHVybjsKIAotCWlmIChuZWVkX2N0eF9zd2l0Y2gpCisJ aWYgKGN0eF9zd2l0Y2gpCiAJCW5leHRfcnB0ciArPSAyOwogCiAJbmV4dF9ycHRyICs9IDQ7CkBA IC01NjY1LDcgKzU2NjQsNyBAQCBzdGF0aWMgdm9pZCBnZnhfdjhfMF9yaW5nX2VtaXRfaWJfZ2Z4 KHN0cnVjdCBhbWRncHVfcmluZyAqcmluZywKIAlhbWRncHVfcmluZ193cml0ZShyaW5nLCBuZXh0 X3JwdHIpOwogCiAJLyogaW5zZXJ0IFNXSVRDSF9CVUZGRVIgcGFja2V0IGJlZm9yZSBmaXJzdCBJ QiBpbiB0aGUgcmluZyBmcmFtZSAqLwotCWlmIChuZWVkX2N0eF9zd2l0Y2gpIHsKKwlpZiAoY3R4 X3N3aXRjaCkgewogCQlhbWRncHVfcmluZ193cml0ZShyaW5nLCBQQUNLRVQzKFBBQ0tFVDNfU1dJ VENIX0JVRkZFUiwgMCkpOwogCQlhbWRncHVfcmluZ193cml0ZShyaW5nLCAwKTsKIAl9CkBAIC01 Njg4LDcgKzU2ODcsNyBAQCBzdGF0aWMgdm9pZCBnZnhfdjhfMF9yaW5nX2VtaXRfaWJfZ2Z4KHN0 cnVjdCBhbWRncHVfcmluZyAqcmluZywKIH0KIAogc3RhdGljIHZvaWQgZ2Z4X3Y4XzBfcmluZ19l bWl0X2liX2NvbXB1dGUoc3RydWN0IGFtZGdwdV9yaW5nICpyaW5nLAotCQkJCSAgc3RydWN0IGFt ZGdwdV9pYiAqaWIpCisJCQkJICBzdHJ1Y3QgYW1kZ3B1X2liICppYiwgYm9vbCBjdHhfc3dpdGNo KQogewogCXUzMiBoZWFkZXIsIGNvbnRyb2wgPSAwOwogCXUzMiBuZXh0X3JwdHIgPSByaW5nLT53 cHRyICsgNTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L3NkbWFfdjJf NC5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvc2RtYV92Ml80LmMKaW5kZXggMjdjYTQ2 ZC4uYWJlMzkwMjQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L3NkbWFf djJfNC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L3NkbWFfdjJfNC5jCkBAIC0y NDIsNyArMjQyLDcgQEAgc3RhdGljIHZvaWQgc2RtYV92Ml80X3JpbmdfaW5zZXJ0X25vcChzdHJ1 Y3QgYW1kZ3B1X3JpbmcgKnJpbmcsIHVpbnQzMl90IGNvdW50KQogICogU2NoZWR1bGUgYW4gSUIg aW4gdGhlIERNQSByaW5nIChWSSkuCiAgKi8KIHN0YXRpYyB2b2lkIHNkbWFfdjJfNF9yaW5nX2Vt aXRfaWIoc3RydWN0IGFtZGdwdV9yaW5nICpyaW5nLAotCQkJCSAgIHN0cnVjdCBhbWRncHVfaWIg KmliKQorCQkJCSAgIHN0cnVjdCBhbWRncHVfaWIgKmliLCBib29sIGN0eF9zd2l0Y2gpCiB7CiAJ dTMyIHZtaWQgPSBpYi0+dm1faWQgJiAweGY7CiAJdTMyIG5leHRfcnB0ciA9IHJpbmctPndwdHIg KyA1OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvc2RtYV92M18wLmMg Yi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9zZG1hX3YzXzAuYwppbmRleCAyNzhiMWZlLi5l MjIyNzYyIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9zZG1hX3YzXzAu YworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9zZG1hX3YzXzAuYwpAQCAtNDAwLDcg KzQwMCw3IEBAIHN0YXRpYyB2b2lkIHNkbWFfdjNfMF9yaW5nX2luc2VydF9ub3Aoc3RydWN0IGFt ZGdwdV9yaW5nICpyaW5nLCB1aW50MzJfdCBjb3VudCkKICAqIFNjaGVkdWxlIGFuIElCIGluIHRo ZSBETUEgcmluZyAoVkkpLgogICovCiBzdGF0aWMgdm9pZCBzZG1hX3YzXzBfcmluZ19lbWl0X2li KHN0cnVjdCBhbWRncHVfcmluZyAqcmluZywKLQkJCQkgICBzdHJ1Y3QgYW1kZ3B1X2liICppYikK KwkJCQkgICBzdHJ1Y3QgYW1kZ3B1X2liICppYiwgYm9vbCBjdHhfc3dpdGNoKQogewogCXUzMiB2 bWlkID0gaWItPnZtX2lkICYgMHhmOwogCXUzMiBuZXh0X3JwdHIgPSByaW5nLT53cHRyICsgNTsK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L3V2ZF92NF8yLmMgYi9kcml2 ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS91dmRfdjRfMi5jCmluZGV4IGFiZDM3YTcuLmI5YzJhNDkg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L3V2ZF92NF8yLmMKKysrIGIv ZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvdXZkX3Y0XzIuYwpAQCAtNDg5LDcgKzQ4OSw3IEBA IHN0YXRpYyBpbnQgdXZkX3Y0XzJfcmluZ190ZXN0X3Jpbmcoc3RydWN0IGFtZGdwdV9yaW5nICpy aW5nKQogICogV3JpdGUgcmluZyBjb21tYW5kcyB0byBleGVjdXRlIHRoZSBpbmRpcmVjdCBidWZm ZXIKICAqLwogc3RhdGljIHZvaWQgdXZkX3Y0XzJfcmluZ19lbWl0X2liKHN0cnVjdCBhbWRncHVf cmluZyAqcmluZywKLQkJCQkgIHN0cnVjdCBhbWRncHVfaWIgKmliKQorCQkJCSAgc3RydWN0IGFt ZGdwdV9pYiAqaWIsIGJvb2wgY3R4X3N3aXRjaCkKIHsKIAlhbWRncHVfcmluZ193cml0ZShyaW5n LCBQQUNLRVQwKG1tVVZEX1JCQ19JQl9CQVNFLCAwKSk7CiAJYW1kZ3B1X3Jpbmdfd3JpdGUocmlu ZywgaWItPmdwdV9hZGRyKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1 L3V2ZF92NV8wLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS91dmRfdjVfMC5jCmluZGV4 IDFjMWEwZTJjLi40NjViNzdjIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdw dS91dmRfdjVfMC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L3V2ZF92NV8wLmMK QEAgLTUzOSw3ICs1MzksNyBAQCBzdGF0aWMgaW50IHV2ZF92NV8wX3JpbmdfdGVzdF9yaW5nKHN0 cnVjdCBhbWRncHVfcmluZyAqcmluZykKICAqIFdyaXRlIHJpbmcgY29tbWFuZHMgdG8gZXhlY3V0 ZSB0aGUgaW5kaXJlY3QgYnVmZmVyCiAgKi8KIHN0YXRpYyB2b2lkIHV2ZF92NV8wX3JpbmdfZW1p dF9pYihzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcsCi0JCQkJICBzdHJ1Y3QgYW1kZ3B1X2liICpp YikKKwkJCQkgIHN0cnVjdCBhbWRncHVfaWIgKmliLCBib29sIGN0eF9zd2l0Y2gpCiB7CiAJYW1k Z3B1X3Jpbmdfd3JpdGUocmluZywgUEFDS0VUMChtbVVWRF9MTUlfUkJDX0lCXzY0QklUX0JBUl9M T1csIDApKTsKIAlhbWRncHVfcmluZ193cml0ZShyaW5nLCBsb3dlcl8zMl9iaXRzKGliLT5ncHVf YWRkcikpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvdXZkX3Y2XzAu YyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L3V2ZF92Nl8wLmMKaW5kZXggZDAxNWNiMC4u YzJmNzkwYiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvdXZkX3Y2XzAu YworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS91dmRfdjZfMC5jCkBAIC02MzEsNyAr NjMxLDcgQEAgc3RhdGljIGludCB1dmRfdjZfMF9yaW5nX3Rlc3RfcmluZyhzdHJ1Y3QgYW1kZ3B1 X3JpbmcgKnJpbmcpCiAgKiBXcml0ZSByaW5nIGNvbW1hbmRzIHRvIGV4ZWN1dGUgdGhlIGluZGly ZWN0IGJ1ZmZlcgogICovCiBzdGF0aWMgdm9pZCB1dmRfdjZfMF9yaW5nX2VtaXRfaWIoc3RydWN0 IGFtZGdwdV9yaW5nICpyaW5nLAotCQkJCSAgc3RydWN0IGFtZGdwdV9pYiAqaWIpCisJCQkJICBz dHJ1Y3QgYW1kZ3B1X2liICppYiwgYm9vbCBjdHhfc3dpdGNoKQogewogCWFtZGdwdV9yaW5nX3dy aXRlKHJpbmcsIFBBQ0tFVDAobW1VVkRfTE1JX1JCQ19JQl82NEJJVF9CQVJfTE9XLCAwKSk7CiAJ YW1kZ3B1X3Jpbmdfd3JpdGUocmluZywgbG93ZXJfMzJfYml0cyhpYi0+Z3B1X2FkZHIpKTsKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvc2NoZWR1bGVyL2dwdV9zY2hlZHVsZXIuYyBi L2RyaXZlcnMvZ3B1L2RybS9hbWQvc2NoZWR1bGVyL2dwdV9zY2hlZHVsZXIuYwppbmRleCBjMTYy NDhjLi5hNWQ3MzZjIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL3NjaGVkdWxlci9n cHVfc2NoZWR1bGVyLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9zY2hlZHVsZXIvZ3B1X3Nj aGVkdWxlci5jCkBAIC0zOTIsNiArMzkyLDcgQEAgaW50IGFtZF9zY2hlZF9qb2JfaW5pdChzdHJ1 Y3QgYW1kX3NjaGVkX2pvYiAqam9iLAogCWtyZWZfaW5pdCgmam9iLT5yZWZjb3VudCk7CiAJam9i LT5zY2hlZCA9IHNjaGVkOwogCWpvYi0+c19lbnRpdHkgPSBlbnRpdHk7CisJam9iLT5mZW5jZV9j b250ZXh0ID0gZW50aXR5LT5mZW5jZV9jb250ZXh0OwogCWpvYi0+c19mZW5jZSA9IGFtZF9zY2hl ZF9mZW5jZV9jcmVhdGUoZW50aXR5LCBvd25lcik7CiAJaWYgKCFqb2ItPnNfZmVuY2UpCiAJCXJl dHVybiAtRU5PTUVNOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9zY2hlZHVsZXIv Z3B1X3NjaGVkdWxlci5oIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9zY2hlZHVsZXIvZ3B1X3NjaGVk dWxlci5oCmluZGV4IDE2OWY3MGYuLjU1NjEwMjAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9hbWQvc2NoZWR1bGVyL2dwdV9zY2hlZHVsZXIuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1k L3NjaGVkdWxlci9ncHVfc2NoZWR1bGVyLmgKQEAgLTg3LDYgKzg3LDcgQEAgc3RydWN0IGFtZF9z Y2hlZF9qb2IgewogCXN0cnVjdCB3b3JrX3N0cnVjdCAgICAgICAgICAgICB3b3JrX2ZyZWVfam9i OwogCXN0cnVjdCBsaXN0X2hlYWQJCQkgICBub2RlOwogCXN0cnVjdCBkZWxheWVkX3dvcmsgd29y a190ZHI7CisJdWludDY0X3QJCWZlbmNlX2NvbnRleHQ7CiAJdm9pZCAoKnRpbWVvdXRfY2FsbGJh Y2spIChzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspOwogCXZvaWQgKCpmcmVlX2NhbGxiYWNrKShz dHJ1Y3Qga3JlZiAqcmVmY291bnQpOwogfTsKLS0gCjIuNS41CgpfX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1k ZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcv bWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK