From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chris Wilson Subject: [PATCH 35/41] drm/i915: Move the global sync optimisation to the timeline Date: Fri, 14 Oct 2016 13:18:27 +0100 Message-ID: <20161014121833.439-36-chris@chris-wilson.co.uk> References: <20161014121833.439-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-lf0-x243.google.com (mail-lf0-x243.google.com [IPv6:2a00:1450:4010:c07::243]) by gabe.freedesktop.org (Postfix) with ESMTPS id 87DC36EC35 for ; Fri, 14 Oct 2016 12:19:17 +0000 (UTC) Received: by mail-lf0-x243.google.com with SMTP id b75so17765362lfg.3 for ; Fri, 14 Oct 2016 05:19:17 -0700 (PDT) In-Reply-To: <20161014121833.439-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 Q3VycmVudGx5IHdlIHRyeSB0byByZWR1Y2UgdGhlIG51bWJlciBvZiBzeW5jaHJvbmlzYXRpb25z IChub3cgdGhlCm51bWJlciBvZiByZXF1ZXN0cyB3ZSBuZWVkIHRvIHdhaXQgdXBvbikgYnkgbm90 aW5nIHRoYXQgaWYgd2UgaGF2ZQplYXJsaWVyIHdhaXRlZCB1cG9uIGEgcmVxdWVzdCwgYWxsIHN1 YnNlcXVlbnQgcmVxdWVzdHMgaW4gdGhlIHRpbWVsaW5lCndpbGwgYmUgYWZ0ZXIgdGhlIHdhaXQu IFRoaXMgb25seSBhcHBsaWVzIHRvIHJlcXVlc3RzIGluIHRoaXMgdGltZWxpbmUsCmFzIG90aGVy IHRpbWVsaW5lcyB3aWxsIG5vdCBiZSBvcmRlcmVkIGJ5IHRoYXQgd2FpdGVyLgoKU2lnbmVkLW9m Zi1ieTogQ2hyaXMgV2lsc29uIDxjaHJpc0BjaHJpcy13aWxzb24uY28udWs+ClJldmlld2VkLWJ5 OiBKb29uYXMgTGFodGluZW4gPGpvb25hcy5sYWh0aW5lbkBsaW51eC5pbnRlbC5jb20+Ci0tLQog ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMgICAgICB8ICA5IC0tLS0tLQogZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCAgICAgICAgICB8ICAxIC0KIGRyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZ2VtX3JlcXVlc3QuYyAgfCAyOSArKysrKysrKysrKy0tLS0tLS0tCiBk cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV90aW1lbGluZS5oIHwgIDEgKwogZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9ncHVfZXJyb3IuYyAgICB8IDQ4ICsrKysrKysrKysrKysrKysrKyst LS0tLS0tLS0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9lbmdpbmVfY3MuYyAgIHwg IDIgLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuYyAgfCAgMyAtLQog ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5oICB8IDIzIC0tLS0tLS0tLS0t LS0tLQogOCBmaWxlcyBjaGFuZ2VkLCA0NyBpbnNlcnRpb25zKCspLCA2OSBkZWxldGlvbnMoLSkK CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jCmluZGV4IGYxY2M0N2QyMjZkZC4uZDYyNjA1 YTAwOWY0IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYwor KysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYwpAQCAtMzI2MiwxNSArMzI2 Miw2IEBAIHN0YXRpYyBpbnQgaTkxNV9zZW1hcGhvcmVfc3RhdHVzKHN0cnVjdCBzZXFfZmlsZSAq bSwgdm9pZCAqdW51c2VkKQogCQlzZXFfcHV0YyhtLCAnXG4nKTsKIAl9CiAKLQlzZXFfcHV0cyht LCAiXG5TeW5jIHNlcW5vOlxuIik7Ci0JZm9yX2VhY2hfZW5naW5lKGVuZ2luZSwgZGV2X3ByaXYs IGlkKSB7Ci0JCWZvciAoaiA9IDA7IGogPCBudW1fcmluZ3M7IGorKykKLQkJCXNlcV9wcmludGYo bSwgIiAgMHglMDh4ICIsCi0JCQkJICAgZW5naW5lLT5zZW1hcGhvcmUuc3luY19zZXFub1tqXSk7 Ci0JCXNlcV9wdXRjKG0sICdcbicpOwotCX0KLQlzZXFfcHV0YyhtLCAnXG4nKTsKLQogCWludGVs X3J1bnRpbWVfcG1fcHV0KGRldl9wcml2KTsKIAltdXRleF91bmxvY2soJmRldi0+c3RydWN0X211 dGV4KTsKIAlyZXR1cm4gMDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf ZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCmluZGV4IDVkMmQzMGE0MDRm Ny4uZTRkYTdhNTNhMzBjIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Ry di5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKQEAgLTc5OCw3ICs3OTgs NiBAQCBzdHJ1Y3QgZHJtX2k5MTVfZXJyb3Jfc3RhdGUgewogCQl1MzIgY3B1X3JpbmdfdGFpbDsK IAogCQl1MzIgbGFzdF9zZXFubzsKLQkJdTMyIHNlbWFwaG9yZV9zZXFub1tJOTE1X05VTV9FTkdJ TkVTIC0gMV07CiAKIAkJLyogUmVnaXN0ZXIgc3RhdGUgKi8KIAkJdTMyIHN0YXJ0OwpkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fcmVxdWVzdC5jIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9nZW1fcmVxdWVzdC5jCmluZGV4IDRmZmI4ZWEzZGE5Yy4uMDQ5NTEw MzAwYTA5IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9yZXF1ZXN0 LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fcmVxdWVzdC5jCkBAIC0yMzgs MzUgKzIzOCw0MSBAQCBzdGF0aWMgaW50IGk5MTVfZ2VtX2NoZWNrX3dlZGdlKHN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIGludCBpOTE1 X2dlbV9pbml0X2dsb2JhbF9zZXFubyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYs Ci0JCQkJICAgICAgdTMyIHNlcW5vKQorc3RhdGljIGludCBpOTE1X2dlbV9pbml0X2dsb2JhbF9z ZXFubyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwgdTMyIHNlcW5vKQogewotCXN0cnVj dCBpOTE1X2dlbV90aW1lbGluZSAqdGltZWxpbmUgPSAmZGV2X3ByaXYtPmd0Lmdsb2JhbF90aW1l bGluZTsKKwlzdHJ1Y3QgaTkxNV9nZW1fdGltZWxpbmUgKnRpbWVsaW5lID0gJmk5MTUtPmd0Lmds b2JhbF90aW1lbGluZTsKIAlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmU7CiAJZW51bSBp bnRlbF9lbmdpbmVfaWQgaWQ7CiAJaW50IHJldDsKIAogCS8qIENhcmVmdWxseSByZXRpcmUgYWxs IHJlcXVlc3RzIHdpdGhvdXQgd3JpdGluZyB0byB0aGUgcmluZ3MgKi8KLQlyZXQgPSBpOTE1X2dl bV93YWl0X2Zvcl9pZGxlKGRldl9wcml2LAorCXJldCA9IGk5MTVfZ2VtX3dhaXRfZm9yX2lkbGUo aTkxNSwKIAkJCQkgICAgIEk5MTVfV0FJVF9JTlRFUlJVUFRJQkxFIHwKIAkJCQkgICAgIEk5MTVf V0FJVF9MT0NLRUQpOwogCWlmIChyZXQpCiAJCXJldHVybiByZXQ7CiAKLQlpOTE1X2dlbV9yZXRp cmVfcmVxdWVzdHMoZGV2X3ByaXYpOworCWk5MTVfZ2VtX3JldGlyZV9yZXF1ZXN0cyhpOTE1KTsK IAogCS8qIElmIHRoZSBzZXFubyB3cmFwcyBhcm91bmQsIHdlIG5lZWQgdG8gY2xlYXIgdGhlIGJy ZWFkY3J1bWIgcmJ0cmVlICovCiAJaWYgKCFpOTE1X3NlcW5vX3Bhc3NlZChzZXFubywgdGltZWxp bmUtPm5leHRfc2Vxbm8pKSB7Ci0JCXdoaWxlIChpbnRlbF9raWNrX3dhaXRlcnMoZGV2X3ByaXYp IHx8Ci0JCSAgICAgICBpbnRlbF9raWNrX3NpZ25hbGVycyhkZXZfcHJpdikpCisJCXdoaWxlIChp bnRlbF9raWNrX3dhaXRlcnMoaTkxNSkgfHwgaW50ZWxfa2lja19zaWduYWxlcnMoaTkxNSkpCiAJ CQl5aWVsZCgpOwogCQl5aWVsZCgpOwogCX0KIAogCS8qIEZpbmFsbHkgcmVzZXQgaHcgc3RhdGUg Ki8KLQlmb3JfZWFjaF9lbmdpbmUoZW5naW5lLCBkZXZfcHJpdiwgaWQpCisJZm9yX2VhY2hfZW5n aW5lKGVuZ2luZSwgaTkxNSwgaWQpCiAJCWludGVsX2VuZ2luZV9pbml0X2dsb2JhbF9zZXFubyhl bmdpbmUsIHNlcW5vKTsKIAorCWxpc3RfZm9yX2VhY2hfZW50cnkodGltZWxpbmUsICZpOTE1LT5n dC50aW1lbGluZXMsIGxpbmspIHsKKwkJZm9yX2VhY2hfZW5naW5lKGVuZ2luZSwgaTkxNSwgaWQp IHsKKwkJCXN0cnVjdCBpbnRlbF90aW1lbGluZSAqdGwgPSAmdGltZWxpbmUtPmVuZ2luZVtpZF07 CisKKwkJCW1lbXNldCh0bC0+c3luY19zZXFubywgMCwgc2l6ZW9mKHRsLT5zeW5jX3NlcW5vKSk7 CisJCX0KKwl9CisKIAlyZXR1cm4gMDsKIH0KIApAQCAtNDYyLDcgKzQ2OCw3IEBAIHN0YXRpYyBp bnQKIGk5MTVfZ2VtX3JlcXVlc3RfYXdhaXRfcmVxdWVzdChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3Jl cXVlc3QgKnRvLAogCQkJICAgICAgIHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqZnJvbSkK IHsKLQlpbnQgaWR4LCByZXQ7CisJaW50IHJldDsKIAogCUdFTV9CVUdfT04odG8gPT0gZnJvbSk7 CiAKQEAgLTQ4Myw4ICs0ODksNyBAQCBpOTE1X2dlbV9yZXF1ZXN0X2F3YWl0X3JlcXVlc3Qoc3Ry dWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICp0bywKIAkJcmV0dXJuIHJldCA8IDAgPyByZXQgOiAw OwogCX0KIAotCWlkeCA9IGludGVsX2VuZ2luZV9zeW5jX2luZGV4KGZyb20tPmVuZ2luZSwgdG8t PmVuZ2luZSk7Ci0JaWYgKGZyb20tPmdsb2JhbF9zZXFubyA8PSBmcm9tLT5lbmdpbmUtPnNlbWFw aG9yZS5zeW5jX3NlcW5vW2lkeF0pCisJaWYgKGZyb20tPmdsb2JhbF9zZXFubyA8PSB0by0+dGlt ZWxpbmUtPnN5bmNfc2Vxbm9bZnJvbS0+ZW5naW5lLT5pZF0pCiAJCXJldHVybiAwOwogCiAJdHJh Y2VfaTkxNV9nZW1fcmluZ19zeW5jX3RvKHRvLCBmcm9tKTsKQEAgLTUwMiw3ICs1MDcsNyBAQCBp OTE1X2dlbV9yZXF1ZXN0X2F3YWl0X3JlcXVlc3Qoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0 ICp0bywKIAkJCXJldHVybiByZXQ7CiAJfQogCi0JZnJvbS0+ZW5naW5lLT5zZW1hcGhvcmUuc3lu Y19zZXFub1tpZHhdID0gZnJvbS0+Z2xvYmFsX3NlcW5vOworCXRvLT50aW1lbGluZS0+c3luY19z ZXFub1tmcm9tLT5lbmdpbmUtPmlkXSA9IGZyb20tPmdsb2JhbF9zZXFubzsKIAlyZXR1cm4gMDsK IH0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fdGltZWxpbmUu aCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX3RpbWVsaW5lLmgKaW5kZXggYmZkZjAz MzFjYzUwLi43NjdiMjM5MTRlYzUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZ2VtX3RpbWVsaW5lLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fdGlt ZWxpbmUuaApAQCAtNDgsNiArNDgsNyBAQCBzdHJ1Y3QgaW50ZWxfdGltZWxpbmUgewogCSAqIHN0 cnVjdF9tdXRleC4KIAkgKi8KIAlzdHJ1Y3QgaTkxNV9nZW1fYWN0aXZlIGxhc3RfcmVxdWVzdDsK Kwl1MzIgc3luY19zZXFub1tJOTE1X05VTV9FTkdJTkVTXTsKIAogCXN0cnVjdCBpOTE1X2dlbV90 aW1lbGluZSAqY29tbW9uOwogfTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZ3B1X2Vycm9yLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dwdV9lcnJvci5jCmlu ZGV4IGFkMmJiN2E2YWJjMy4uMjI3NWE4ZDkxNTM5IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2dwdV9lcnJvci5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf Z3B1X2Vycm9yLmMKQEAgLTQxNSwxNyArNDE1LDEzIEBAIHN0YXRpYyB2b2lkIGVycm9yX3ByaW50 X2VuZ2luZShzdHJ1Y3QgZHJtX2k5MTVfZXJyb3Jfc3RhdGVfYnVmICptLAogCWlmIChJTlRFTF9H RU4obS0+aTkxNSkgPj0gNikgewogCQllcnJfcHJpbnRmKG0sICIgIFJDIFBTTUk6IDB4JTA4eFxu IiwgZWUtPnJjX3BzbWkpOwogCQllcnJfcHJpbnRmKG0sICIgIEZBVUxUX1JFRzogMHglMDh4XG4i LCBlZS0+ZmF1bHRfcmVnKTsKLQkJZXJyX3ByaW50ZihtLCAiICBTWU5DXzA6IDB4JTA4eCBbbGFz dCBzeW5jZWQgMHglMDh4XVxuIiwKLQkJCSAgIGVlLT5zZW1hcGhvcmVfbWJveGVzWzBdLAotCQkJ ICAgZWUtPnNlbWFwaG9yZV9zZXFub1swXSk7Ci0JCWVycl9wcmludGYobSwgIiAgU1lOQ18xOiAw eCUwOHggW2xhc3Qgc3luY2VkIDB4JTA4eF1cbiIsCi0JCQkgICBlZS0+c2VtYXBob3JlX21ib3hl c1sxXSwKLQkJCSAgIGVlLT5zZW1hcGhvcmVfc2Vxbm9bMV0pOwotCQlpZiAoSEFTX1ZFQk9YKG0t Pmk5MTUpKSB7Ci0JCQllcnJfcHJpbnRmKG0sICIgIFNZTkNfMjogMHglMDh4IFtsYXN0IHN5bmNl ZCAweCUwOHhdXG4iLAotCQkJCSAgIGVlLT5zZW1hcGhvcmVfbWJveGVzWzJdLAotCQkJCSAgIGVl LT5zZW1hcGhvcmVfc2Vxbm9bMl0pOwotCQl9CisJCWVycl9wcmludGYobSwgIiAgU1lOQ18wOiAw eCUwOHhcbiIsCisJCQkgICBlZS0+c2VtYXBob3JlX21ib3hlc1swXSk7CisJCWVycl9wcmludGYo bSwgIiAgU1lOQ18xOiAweCUwOHhcbiIsCisJCQkgICBlZS0+c2VtYXBob3JlX21ib3hlc1sxXSk7 CisJCWlmIChIQVNfVkVCT1gobS0+aTkxNSkpCisJCQllcnJfcHJpbnRmKG0sICIgIFNZTkNfMjog MHglMDh4XG4iLAorCQkJCSAgIGVlLT5zZW1hcGhvcmVfbWJveGVzWzJdKTsKIAl9CiAJaWYgKFVT RVNfUFBHVFQobS0+aTkxNSkpIHsKIAkJZXJyX3ByaW50ZihtLCAiICBHRlhfTU9ERTogMHglMDh4 XG4iLCBlZS0+dm1faW5mby5nZnhfbW9kZSk7CkBAIC05NjUsNiArOTYxLDI2IEBAIHN0YXRpYyB2 b2lkIGk5MTVfZ2VtX3JlY29yZF9mZW5jZXMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2LAogCX0KIH0KIAorc3RhdGljIGlubGluZSB1MzIKK2dlbjhfZW5naW5lX3N5bmNfaW5kZXgo c3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lLAorCQkgICAgICAgc3RydWN0IGludGVsX2Vu Z2luZV9jcyAqb3RoZXIpCit7CisJaW50IGlkeDsKKworCS8qCisJICogcmNzIC0+IDAgPSB2Y3Ms IDEgPSBiY3MsIDIgPSB2ZWNzLCAzID0gdmNzMjsKKwkgKiB2Y3MgLT4gMCA9IGJjcywgMSA9IHZl Y3MsIDIgPSB2Y3MyLCAzID0gcmNzOworCSAqIGJjcyAtPiAwID0gdmVjcywgMSA9IHZjczIuIDIg PSByY3MsIDMgPSB2Y3M7CisJICogdmVjcyAtPiAwID0gdmNzMiwgMSA9IHJjcywgMiA9IHZjcywg MyA9IGJjczsKKwkgKiB2Y3MyIC0+IDAgPSByY3MsIDEgPSB2Y3MsIDIgPSBiY3MsIDMgPSB2ZWNz OworCSAqLworCisJaWR4ID0gKG90aGVyIC0gZW5naW5lKSAtIDE7CisJaWYgKGlkeCA8IDApCisJ CWlkeCArPSBJOTE1X05VTV9FTkdJTkVTOworCisJcmV0dXJuIGlkeDsKK30KIAogc3RhdGljIHZv aWQgZ2VuOF9yZWNvcmRfc2VtYXBob3JlX3N0YXRlKHN0cnVjdCBkcm1faTkxNV9lcnJvcl9zdGF0 ZSAqZXJyb3IsCiAJCQkJCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwKQEAgLTk4OCwx MCArMTAwNCw5IEBAIHN0YXRpYyB2b2lkIGdlbjhfcmVjb3JkX3NlbWFwaG9yZV9zdGF0ZShzdHJ1 Y3QgZHJtX2k5MTVfZXJyb3Jfc3RhdGUgKmVycm9yLAogCQlzaWduYWxfb2Zmc2V0ID0KIAkJCShH RU44X1NJR05BTF9PRkZTRVQoZW5naW5lLCBpZCkgJiAoUEFHRV9TSVpFIC0gMSkpIC8gNDsKIAkJ dG1wID0gZXJyb3ItPnNlbWFwaG9yZS0+cGFnZXNbMF07Ci0JCWlkeCA9IGludGVsX2VuZ2luZV9z eW5jX2luZGV4KGVuZ2luZSwgdG8pOworCQlpZHggPSBnZW44X2VuZ2luZV9zeW5jX2luZGV4KGVu Z2luZSwgdG8pOwogCiAJCWVlLT5zZW1hcGhvcmVfbWJveGVzW2lkeF0gPSB0bXBbc2lnbmFsX29m ZnNldF07Ci0JCWVlLT5zZW1hcGhvcmVfc2Vxbm9baWR4XSA9IGVuZ2luZS0+c2VtYXBob3JlLnN5 bmNfc2Vxbm9baWR4XTsKIAl9CiB9CiAKQEAgLTEwMDIsMTQgKzEwMTcsOSBAQCBzdGF0aWMgdm9p ZCBnZW42X3JlY29yZF9zZW1hcGhvcmVfc3RhdGUoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5n aW5lLAogCiAJZWUtPnNlbWFwaG9yZV9tYm94ZXNbMF0gPSBJOTE1X1JFQUQoUklOR19TWU5DXzAo ZW5naW5lLT5tbWlvX2Jhc2UpKTsKIAllZS0+c2VtYXBob3JlX21ib3hlc1sxXSA9IEk5MTVfUkVB RChSSU5HX1NZTkNfMShlbmdpbmUtPm1taW9fYmFzZSkpOwotCWVlLT5zZW1hcGhvcmVfc2Vxbm9b MF0gPSBlbmdpbmUtPnNlbWFwaG9yZS5zeW5jX3NlcW5vWzBdOwotCWVlLT5zZW1hcGhvcmVfc2Vx bm9bMV0gPSBlbmdpbmUtPnNlbWFwaG9yZS5zeW5jX3NlcW5vWzFdOwotCi0JaWYgKEhBU19WRUJP WChkZXZfcHJpdikpIHsKKwlpZiAoSEFTX1ZFQk9YKGRldl9wcml2KSkKIAkJZWUtPnNlbWFwaG9y ZV9tYm94ZXNbMl0gPQogCQkJSTkxNV9SRUFEKFJJTkdfU1lOQ18yKGVuZ2luZS0+bW1pb19iYXNl KSk7Ci0JCWVlLT5zZW1hcGhvcmVfc2Vxbm9bMl0gPSBlbmdpbmUtPnNlbWFwaG9yZS5zeW5jX3Nl cW5vWzJdOwotCX0KIH0KIAogc3RhdGljIHZvaWQgZXJyb3JfcmVjb3JkX2VuZ2luZV93YWl0ZXJz KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2VuZ2luZV9jcy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf ZW5naW5lX2NzLmMKaW5kZXggNmEzMTA1NTEyZDE4Li45NGRlM2Q2NjczM2QgMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2VuZ2luZV9jcy5jCisrKyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2VuZ2luZV9jcy5jCkBAIC0yMDQsOCArMjA0LDYgQEAgdm9pZCBpbnRl bF9lbmdpbmVfaW5pdF9nbG9iYWxfc2Vxbm8oc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5l LCB1MzIgc2Vxbm8pCiAJCQkJICAgICAgIEk5MTVfTlVNX0VOR0lORVMgKiBnZW44X3NlbWFwaG9y ZV9zZXFub19zaXplKTsKIAkJa3VubWFwKHBhZ2UpOwogCX0KLQltZW1zZXQoZW5naW5lLT5zZW1h cGhvcmUuc3luY19zZXFubywgMCwKLQkgICAgICAgc2l6ZW9mKGVuZ2luZS0+c2VtYXBob3JlLnN5 bmNfc2Vxbm8pKTsKIAogCWludGVsX3dyaXRlX3N0YXR1c19wYWdlKGVuZ2luZSwgSTkxNV9HRU1f SFdTX0lOREVYLCBzZXFubyk7CiAJaWYgKGVuZ2luZS0+aXJxX3NlcW5vX2JhcnJpZXIpCmRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmMgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmMKaW5kZXggM2MxZGM5YmY5NWY5Li40OTZm ZGRhY2NkYTYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZm ZXIuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmMKQEAgLTIw MDUsOSArMjAwNSw2IEBAIHN0YXRpYyBpbnQgaW50ZWxfaW5pdF9yaW5nX2J1ZmZlcihzdHJ1Y3Qg aW50ZWxfZW5naW5lX2NzICplbmdpbmUpCiAKIAlpbnRlbF9lbmdpbmVfc2V0dXBfY29tbW9uKGVu Z2luZSk7CiAKLQltZW1zZXQoZW5naW5lLT5zZW1hcGhvcmUuc3luY19zZXFubywgMCwKLQkgICAg ICAgc2l6ZW9mKGVuZ2luZS0+c2VtYXBob3JlLnN5bmNfc2Vxbm8pKTsKLQogCXJldCA9IGludGVs X2VuZ2luZV9pbml0X2NvbW1vbihlbmdpbmUpOwogCWlmIChyZXQpCiAJCWdvdG8gZXJyb3I7CmRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmggYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmgKaW5kZXggOWQyMjhiZWUzNTExLi44 OTE2MjljYWFiNmMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Jpbmdi dWZmZXIuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmgKQEAg LTMxNCw4ICszMTQsNiBAQCBzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzIHsKIAkgKiAgaWUuIHRyYW5z cG9zZSBvZiBmKHgsIHkpCiAJICovCiAJc3RydWN0IHsKLQkJdTMyCXN5bmNfc2Vxbm9bSTkxNV9O VU1fRU5HSU5FUy0xXTsKLQogCQl1bmlvbiB7CiAjZGVmaW5lIEdFTjZfU0VNQVBIT1JFX0xBU1QJ VkVDU19IVwogI2RlZmluZSBHRU42X05VTV9TRU1BUEhPUkVTCShHRU42X1NFTUFQSE9SRV9MQVNU ICsgMSkKQEAgLTM4NSwyNyArMzgzLDYgQEAgaW50ZWxfZW5naW5lX2ZsYWcoY29uc3Qgc3RydWN0 IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQogCXJldHVybiAxIDw8IGVuZ2luZS0+aWQ7CiB9CiAK LXN0YXRpYyBpbmxpbmUgdTMyCi1pbnRlbF9lbmdpbmVfc3luY19pbmRleChzdHJ1Y3QgaW50ZWxf ZW5naW5lX2NzICplbmdpbmUsCi0JCQlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpvdGhlcikKLXsK LQlpbnQgaWR4OwotCi0JLyoKLQkgKiByY3MgLT4gMCA9IHZjcywgMSA9IGJjcywgMiA9IHZlY3Ms IDMgPSB2Y3MyOwotCSAqIHZjcyAtPiAwID0gYmNzLCAxID0gdmVjcywgMiA9IHZjczIsIDMgPSBy Y3M7Ci0JICogYmNzIC0+IDAgPSB2ZWNzLCAxID0gdmNzMi4gMiA9IHJjcywgMyA9IHZjczsKLQkg KiB2ZWNzIC0+IDAgPSB2Y3MyLCAxID0gcmNzLCAyID0gdmNzLCAzID0gYmNzOwotCSAqIHZjczIg LT4gMCA9IHJjcywgMSA9IHZjcywgMiA9IGJjcywgMyA9IHZlY3M7Ci0JICovCi0KLQlpZHggPSAo b3RoZXItPmlkIC0gZW5naW5lLT5pZCkgLSAxOwotCWlmIChpZHggPCAwKQotCQlpZHggKz0gSTkx NV9OVU1fRU5HSU5FUzsKLQotCXJldHVybiBpZHg7Ci19Ci0KIHN0YXRpYyBpbmxpbmUgdm9pZAog aW50ZWxfZmx1c2hfc3RhdHVzX3BhZ2Uoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lLCBp bnQgcmVnKQogewotLSAKMi45LjMKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVk ZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZv L2ludGVsLWdmeAo=