From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: [PATCH 3/3] drm/i915: Pass in intel_gt at some for_each_engine sites Date: Wed, 16 Oct 2019 13:28:43 +0100 Message-ID: <20191016122843.9429-3-tvrtko.ursulin@linux.intel.com> References: <20191016122843.9429-1-tvrtko.ursulin@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by gabe.freedesktop.org (Postfix) with ESMTPS id DFE1E6E954 for ; Wed, 16 Oct 2019 12:28:49 +0000 (UTC) In-Reply-To: <20191016122843.9429-1-tvrtko.ursulin@linux.intel.com> 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 RnJvbTogVHZydGtvIFVyc3VsaW4gPHR2cnRrby51cnN1bGluQGludGVsLmNvbT4KCldoZXJlIHRo ZSBmdW5jdGlvbiwgb3IgY29kZSBzZWdtZW50LCBvcGVyYXRlcyBvbiBpbnRlbF9ndCwgd2UgbmVl ZCB0bwpzdGFydCBwYXNzaW5nIGl0IGluc3RlYWQgb2YgaTkxNSB0byBmb3JfZWFjaF9lbmdpbmUo X21hc2tlZCkuCgpUaGlzIGlzIGFub3RoZXIgcGFydGlhbCBzdGVwIGluIG1pZ3JhdGlvbiBvZiBp OTE1LT5lbmdpbmVzW10gdG8KZ3QtPmVuZ2luZXNbXS4KClNpZ25lZC1vZmYtYnk6IFR2cnRrbyBV cnN1bGluIDx0dnJ0a28udXJzdWxpbkBpbnRlbC5jb20+CkNjOiBDaHJpcyBXaWxzb24gPGNocmlz QGNocmlzLXdpbHNvbi5jby51az4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9l bmdpbmVfY3MuYyAgICAgfCAgNCArLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2d0 LmMgICAgICAgICAgICB8ICAyICstCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9ndF9w bS5jICAgICAgICAgfCAgOCArKy0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfZ3Rf cmVxdWVzdHMuYyAgIHwgIDIgKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2hhbmdj aGVjay5jICAgICB8ICA2ICsrLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX3Jlc2V0 LmMgICAgICAgICB8IDMwICsrKysrKysrKy0tLS0tLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1 L2d0L3NlbGZ0ZXN0X2NvbnRleHQuYyAgICB8ICA2ICsrLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1 L2d0L3NlbGZ0ZXN0X2VuZ2luZV9wbS5jICB8ICAyICstCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9n dC9zZWxmdGVzdF9oYW5nY2hlY2suYyAgfCAyMCArKysrKystLS0tLS0tCiBkcml2ZXJzL2dwdS9k cm0vaTkxNS9ndC9zZWxmdGVzdF9scmMuYyAgICAgICAgfCAgNiArKy0tCiBkcml2ZXJzL2dwdS9k cm0vaTkxNS9ndC9zZWxmdGVzdF9yZXNldC5jICAgICAgfCAgMiArLQogZHJpdmVycy9ncHUvZHJt L2k5MTUvZ3Qvc2VsZnRlc3RfdGltZWxpbmUuYyAgIHwgIDIgKy0KIC4uLi9ncHUvZHJtL2k5MTUv Z3QvdWMvaW50ZWxfZ3VjX3N1Ym1pc3Npb24uYyB8ICA2ICsrLS0KIGRyaXZlcnMvZ3B1L2RybS9p OTE1L3NlbGZ0ZXN0cy9pZ3RfcmVzZXQuYyAgICB8ICA0ICstLQogMTQgZmlsZXMgY2hhbmdlZCwg NTAgaW5zZXJ0aW9ucygrKSwgNTAgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvZ3QvaW50ZWxfZW5naW5lX2NzLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9n dC9pbnRlbF9lbmdpbmVfY3MuYwppbmRleCBjOWQ2MzljNmJlY2IuLmM4YzhlZTU2MjdlYyAxMDA2 NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfZW5naW5lX2NzLmMKKysrIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfZW5naW5lX2NzLmMKQEAgLTExMTgsNyArMTEx OCw3IEBAIGJvb2wgaW50ZWxfZW5naW5lc19hcmVfaWRsZShzdHJ1Y3QgaW50ZWxfZ3QgKmd0KQog CWlmICghUkVBRF9PTkNFKGd0LT5hd2FrZSkpCiAJCXJldHVybiB0cnVlOwogCi0JZm9yX2VhY2hf ZW5naW5lKGVuZ2luZSwgZ3QtPmk5MTUsIGlkKSB7CisJZm9yX2VhY2hfZW5naW5lKGVuZ2luZSwg Z3QsIGlkKSB7CiAJCWlmICghaW50ZWxfZW5naW5lX2lzX2lkbGUoZW5naW5lKSkKIAkJCXJldHVy biBmYWxzZTsKIAl9CkBAIC0xMTMxLDcgKzExMzEsNyBAQCB2b2lkIGludGVsX2VuZ2luZXNfcmVz ZXRfZGVmYXVsdF9zdWJtaXNzaW9uKHN0cnVjdCBpbnRlbF9ndCAqZ3QpCiAJc3RydWN0IGludGVs X2VuZ2luZV9jcyAqZW5naW5lOwogCWVudW0gaW50ZWxfZW5naW5lX2lkIGlkOwogCi0JZm9yX2Vh Y2hfZW5naW5lKGVuZ2luZSwgZ3QtPmk5MTUsIGlkKQorCWZvcl9lYWNoX2VuZ2luZShlbmdpbmUs IGd0LCBpZCkKIAkJZW5naW5lLT5zZXRfZGVmYXVsdF9zdWJtaXNzaW9uKGVuZ2luZSk7CiB9CiAK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2d0LmMgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9ndC5jCmluZGV4IDdhM2E5OTI1MzU5Yi4uZTZjNDAyMDgz NGE0IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9ndC5jCisrKyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2d0LmMKQEAgLTIwMiw3ICsyMDIsNyBAQCBz dGF0aWMgdm9pZCBnZW42X2NoZWNrX2ZhdWx0cyhzdHJ1Y3QgaW50ZWxfZ3QgKmd0KQogCWVudW0g aW50ZWxfZW5naW5lX2lkIGlkOwogCXUzMiBmYXVsdDsKIAotCWZvcl9lYWNoX2VuZ2luZShlbmdp bmUsIGd0LT5pOTE1LCBpZCkgeworCWZvcl9lYWNoX2VuZ2luZShlbmdpbmUsIGd0LCBpZCkgewog CQlmYXVsdCA9IEdFTjZfUklOR19GQVVMVF9SRUdfUkVBRChlbmdpbmUpOwogCQlpZiAoZmF1bHQg JiBSSU5HX0ZBVUxUX1ZBTElEKSB7CiAJCQlEUk1fREVCVUdfRFJJVkVSKCJVbmV4cGVjdGVkIGZh dWx0XG4iCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9ndF9wbS5j IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfZ3RfcG0uYwppbmRleCBiZDFiZDNlMDBh OTQuLmI4NjZkNWIxZWVlMCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50 ZWxfZ3RfcG0uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9ndF9wbS5jCkBA IC0xMzYsMTYgKzEzNiwxNiBAQCB2b2lkIGludGVsX2d0X3Nhbml0aXplKHN0cnVjdCBpbnRlbF9n dCAqZ3QsIGJvb2wgZm9yY2UpCiAKIAlpbnRlbF91Y19zYW5pdGl6ZSgmZ3QtPnVjKTsKIAotCWZv cl9lYWNoX2VuZ2luZShlbmdpbmUsIGd0LT5pOTE1LCBpZCkKKwlmb3JfZWFjaF9lbmdpbmUoZW5n aW5lLCBndCwgaWQpCiAJCWlmIChlbmdpbmUtPnJlc2V0LnByZXBhcmUpCiAJCQllbmdpbmUtPnJl c2V0LnByZXBhcmUoZW5naW5lKTsKIAogCWlmIChyZXNldF9lbmdpbmVzKGd0KSB8fCBmb3JjZSkg ewotCQlmb3JfZWFjaF9lbmdpbmUoZW5naW5lLCBndC0+aTkxNSwgaWQpCisJCWZvcl9lYWNoX2Vu Z2luZShlbmdpbmUsIGd0LCBpZCkKIAkJCV9faW50ZWxfZW5naW5lX3Jlc2V0KGVuZ2luZSwgZmFs c2UpOwogCX0KIAotCWZvcl9lYWNoX2VuZ2luZShlbmdpbmUsIGd0LT5pOTE1LCBpZCkKKwlmb3Jf ZWFjaF9lbmdpbmUoZW5naW5lLCBndCwgaWQpCiAJCWlmIChlbmdpbmUtPnJlc2V0LmZpbmlzaCkK IAkJCWVuZ2luZS0+cmVzZXQuZmluaXNoKGVuZ2luZSk7CiB9CkBAIC0xNzcsNyArMTc3LDcgQEAg aW50IGludGVsX2d0X3Jlc3VtZShzdHJ1Y3QgaW50ZWxfZ3QgKmd0KQogCWludGVsX3VuY29yZV9m b3JjZXdha2VfZ2V0KGd0LT51bmNvcmUsIEZPUkNFV0FLRV9BTEwpOwogCWludGVsX3JjNl9zYW5p dGl6ZSgmZ3QtPnJjNik7CiAKLQlmb3JfZWFjaF9lbmdpbmUoZW5naW5lLCBndC0+aTkxNSwgaWQp IHsKKwlmb3JfZWFjaF9lbmdpbmUoZW5naW5lLCBndCwgaWQpIHsKIAkJc3RydWN0IGludGVsX2Nv bnRleHQgKmNlOwogCiAJCWludGVsX2VuZ2luZV9wbV9nZXQoZW5naW5lKTsKZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2d0X3JlcXVlc3RzLmMgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9ndC9pbnRlbF9ndF9yZXF1ZXN0cy5jCmluZGV4IGNiYjQwNjliMTFlMS4uYjcz MjI5YTg0ZDg1IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9ndF9y ZXF1ZXN0cy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2d0X3JlcXVlc3Rz LmMKQEAgLTI1LDcgKzI1LDcgQEAgc3RhdGljIHZvaWQgZmx1c2hfc3VibWlzc2lvbihzdHJ1Y3Qg aW50ZWxfZ3QgKmd0KQogCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZTsKIAllbnVtIGlu dGVsX2VuZ2luZV9pZCBpZDsKIAotCWZvcl9lYWNoX2VuZ2luZShlbmdpbmUsIGd0LT5pOTE1LCBp ZCkKKwlmb3JfZWFjaF9lbmdpbmUoZW5naW5lLCBndCwgaWQpCiAJCWludGVsX2VuZ2luZV9mbHVz aF9zdWJtaXNzaW9uKGVuZ2luZSk7CiB9CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2d0L2ludGVsX2hhbmdjaGVjay5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxf aGFuZ2NoZWNrLmMKaW5kZXggYzE0ZGJlYjNjY2MzLi4wZmRlZjAwYWY5ZTQgMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2hhbmdjaGVjay5jCisrKyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2d0L2ludGVsX2hhbmdjaGVjay5jCkBAIC0yMzcsNyArMjM3LDcgQEAgc3Rh dGljIHZvaWQgaGFuZ2NoZWNrX2RlY2xhcmVfaGFuZyhzdHJ1Y3QgaW50ZWxfZ3QgKmd0LAogCQlo dW5nICY9IH5zdHVjazsKIAlsZW4gPSBzY25wcmludGYobXNnLCBzaXplb2YobXNnKSwKIAkJCSIl cyBvbiAiLCBzdHVjayA9PSBodW5nID8gIm5vIHByb2dyZXNzIiA6ICJoYW5nIik7Ci0JZm9yX2Vh Y2hfZW5naW5lX21hc2tlZChlbmdpbmUsIGd0LT5pOTE1LCBodW5nLCB0bXApCisJZm9yX2VhY2hf ZW5naW5lX21hc2tlZChlbmdpbmUsIGd0LCBodW5nLCB0bXApCiAJCWxlbiArPSBzY25wcmludGYo bXNnICsgbGVuLCBzaXplb2YobXNnKSAtIGxlbiwKIAkJCQkgIiVzLCAiLCBlbmdpbmUtPm5hbWUp OwogCW1zZ1tsZW4tMl0gPSAnXDAnOwpAQCAtMjgxLDcgKzI4MSw3IEBAIHN0YXRpYyB2b2lkIGhh bmdjaGVja19lbGFwc2VkKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykKIAkgKi8KIAlpbnRlbF91 bmNvcmVfYXJtX3VuY2xhaW1lZF9tbWlvX2RldGVjdGlvbihndC0+dW5jb3JlKTsKIAotCWZvcl9l YWNoX2VuZ2luZShlbmdpbmUsIGd0LT5pOTE1LCBpZCkgeworCWZvcl9lYWNoX2VuZ2luZShlbmdp bmUsIGd0LCBpZCkgewogCQlzdHJ1Y3QgaGFuZ2NoZWNrIGhjOwogCiAJCWludGVsX2VuZ2luZV9i cmVhZGNydW1ic19pcnEoZW5naW5lKTsKQEAgLTMwMyw3ICszMDMsNyBAQCBzdGF0aWMgdm9pZCBo YW5nY2hlY2tfZWxhcHNlZChzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCiAJaWYgKEdFTV9TSE9X X0RFQlVHKCkgJiYgKGh1bmcgfCBzdHVjaykpIHsKIAkJc3RydWN0IGRybV9wcmludGVyIHAgPSBk cm1fZGVidWdfcHJpbnRlcigiaGFuZ2NoZWNrIik7CiAKLQkJZm9yX2VhY2hfZW5naW5lKGVuZ2lu ZSwgZ3QtPmk5MTUsIGlkKSB7CisJCWZvcl9lYWNoX2VuZ2luZShlbmdpbmUsIGd0LCBpZCkgewog CQkJaWYgKGludGVsX2VuZ2luZV9pc19pZGxlKGVuZ2luZSkpCiAJCQkJY29udGludWU7CiAKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX3Jlc2V0LmMgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9yZXNldC5jCmluZGV4IDc3NDQ1ZDEwMGNhOC4uZmRiYzdj MTgxOTYyIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9yZXNldC5j CisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX3Jlc2V0LmMKQEAgLTI5OCw3ICsy OTgsNyBAQCBzdGF0aWMgaW50IGdlbjZfcmVzZXRfZW5naW5lcyhzdHJ1Y3QgaW50ZWxfZ3QgKmd0 LAogCQlpbnRlbF9lbmdpbmVfbWFza190IHRtcDsKIAogCQlod19tYXNrID0gMDsKLQkJZm9yX2Vh Y2hfZW5naW5lX21hc2tlZChlbmdpbmUsIGd0LT5pOTE1LCBlbmdpbmVfbWFzaywgdG1wKSB7CisJ CWZvcl9lYWNoX2VuZ2luZV9tYXNrZWQoZW5naW5lLCBndCwgZW5naW5lX21hc2ssIHRtcCkgewog CQkJR0VNX0JVR19PTihlbmdpbmUtPmlkID49IEFSUkFZX1NJWkUoaHdfZW5naW5lX21hc2spKTsK IAkJCWh3X21hc2sgfD0gaHdfZW5naW5lX21hc2tbZW5naW5lLT5pZF07CiAJCX0KQEAgLTQzMiw3 ICs0MzIsNyBAQCBzdGF0aWMgaW50IGdlbjExX3Jlc2V0X2VuZ2luZXMoc3RydWN0IGludGVsX2d0 ICpndCwKIAkJaHdfbWFzayA9IEdFTjExX0dSRE9NX0ZVTEw7CiAJfSBlbHNlIHsKIAkJaHdfbWFz ayA9IDA7Ci0JCWZvcl9lYWNoX2VuZ2luZV9tYXNrZWQoZW5naW5lLCBndC0+aTkxNSwgZW5naW5l X21hc2ssIHRtcCkgeworCQlmb3JfZWFjaF9lbmdpbmVfbWFza2VkKGVuZ2luZSwgZ3QsIGVuZ2lu ZV9tYXNrLCB0bXApIHsKIAkJCUdFTV9CVUdfT04oZW5naW5lLT5pZCA+PSBBUlJBWV9TSVpFKGh3 X2VuZ2luZV9tYXNrKSk7CiAJCQlod19tYXNrIHw9IGh3X2VuZ2luZV9tYXNrW2VuZ2luZS0+aWRd OwogCQkJcmV0ID0gZ2VuMTFfbG9ja19zZmMoZW5naW5lLCAmaHdfbWFzayk7CkBAIC00NTEsNyAr NDUxLDcgQEAgc3RhdGljIGludCBnZW4xMV9yZXNldF9lbmdpbmVzKHN0cnVjdCBpbnRlbF9ndCAq Z3QsCiAJICogZXhwaXJhdGlvbikuCiAJICovCiAJaWYgKGVuZ2luZV9tYXNrICE9IEFMTF9FTkdJ TkVTKQotCQlmb3JfZWFjaF9lbmdpbmVfbWFza2VkKGVuZ2luZSwgZ3QtPmk5MTUsIGVuZ2luZV9t YXNrLCB0bXApCisJCWZvcl9lYWNoX2VuZ2luZV9tYXNrZWQoZW5naW5lLCBndCwgZW5naW5lX21h c2ssIHRtcCkKIAkJCWdlbjExX3VubG9ja19zZmMoZW5naW5lKTsKIAogCXJldHVybiByZXQ7CkBA IC01MTAsNyArNTEwLDcgQEAgc3RhdGljIGludCBnZW44X3Jlc2V0X2VuZ2luZXMoc3RydWN0IGlu dGVsX2d0ICpndCwKIAlpbnRlbF9lbmdpbmVfbWFza190IHRtcDsKIAlpbnQgcmV0OwogCi0JZm9y X2VhY2hfZW5naW5lX21hc2tlZChlbmdpbmUsIGd0LT5pOTE1LCBlbmdpbmVfbWFzaywgdG1wKSB7 CisJZm9yX2VhY2hfZW5naW5lX21hc2tlZChlbmdpbmUsIGd0LCBlbmdpbmVfbWFzaywgdG1wKSB7 CiAJCXJldCA9IGdlbjhfZW5naW5lX3Jlc2V0X3ByZXBhcmUoZW5naW5lKTsKIAkJaWYgKHJldCAm JiAhcmVzZXRfbm9uX3JlYWR5KQogCQkJZ290byBza2lwX3Jlc2V0OwpAQCAtNTM2LDcgKzUzNiw3 IEBAIHN0YXRpYyBpbnQgZ2VuOF9yZXNldF9lbmdpbmVzKHN0cnVjdCBpbnRlbF9ndCAqZ3QsCiAJ CXJldCA9IGdlbjZfcmVzZXRfZW5naW5lcyhndCwgZW5naW5lX21hc2ssIHJldHJ5KTsKIAogc2tp cF9yZXNldDoKLQlmb3JfZWFjaF9lbmdpbmVfbWFza2VkKGVuZ2luZSwgZ3QtPmk5MTUsIGVuZ2lu ZV9tYXNrLCB0bXApCisJZm9yX2VhY2hfZW5naW5lX21hc2tlZChlbmdpbmUsIGd0LCBlbmdpbmVf bWFzaywgdG1wKQogCQlnZW44X2VuZ2luZV9yZXNldF9jYW5jZWwoZW5naW5lKTsKIAogCXJldHVy biByZXQ7CkBAIC02ODIsNyArNjgyLDcgQEAgc3RhdGljIGludGVsX2VuZ2luZV9tYXNrX3QgcmVz ZXRfcHJlcGFyZShzdHJ1Y3QgaW50ZWxfZ3QgKmd0KQogCWludGVsX2VuZ2luZV9tYXNrX3QgYXdh a2UgPSAwOwogCWVudW0gaW50ZWxfZW5naW5lX2lkIGlkOwogCi0JZm9yX2VhY2hfZW5naW5lKGVu Z2luZSwgZ3QtPmk5MTUsIGlkKSB7CisJZm9yX2VhY2hfZW5naW5lKGVuZ2luZSwgZ3QsIGlkKSB7 CiAJCWlmIChpbnRlbF9lbmdpbmVfcG1fZ2V0X2lmX2F3YWtlKGVuZ2luZSkpCiAJCQlhd2FrZSB8 PSBlbmdpbmUtPm1hc2s7CiAJCXJlc2V0X3ByZXBhcmVfZW5naW5lKGVuZ2luZSk7CkBAIC03MTIs NyArNzEyLDcgQEAgc3RhdGljIGludCBndF9yZXNldChzdHJ1Y3QgaW50ZWxfZ3QgKmd0LCBpbnRl bF9lbmdpbmVfbWFza190IHN0YWxsZWRfbWFzaykKIAlpZiAoZXJyKQogCQlyZXR1cm4gZXJyOwog Ci0JZm9yX2VhY2hfZW5naW5lKGVuZ2luZSwgZ3QtPmk5MTUsIGlkKQorCWZvcl9lYWNoX2VuZ2lu ZShlbmdpbmUsIGd0LCBpZCkKIAkJX19pbnRlbF9lbmdpbmVfcmVzZXQoZW5naW5lLCBzdGFsbGVk X21hc2sgJiBlbmdpbmUtPm1hc2spOwogCiAJaTkxNV9nZW1fcmVzdG9yZV9mZW5jZXMoZ3QtPmk5 MTUpOwpAQCAtNzMzLDcgKzczMyw3IEBAIHN0YXRpYyB2b2lkIHJlc2V0X2ZpbmlzaChzdHJ1Y3Qg aW50ZWxfZ3QgKmd0LCBpbnRlbF9lbmdpbmVfbWFza190IGF3YWtlKQogCXN0cnVjdCBpbnRlbF9l bmdpbmVfY3MgKmVuZ2luZTsKIAllbnVtIGludGVsX2VuZ2luZV9pZCBpZDsKIAotCWZvcl9lYWNo X2VuZ2luZShlbmdpbmUsIGd0LT5pOTE1LCBpZCkgeworCWZvcl9lYWNoX2VuZ2luZShlbmdpbmUs IGd0LCBpZCkgewogCQlyZXNldF9maW5pc2hfZW5naW5lKGVuZ2luZSk7CiAJCWlmIChhd2FrZSAm IGVuZ2luZS0+bWFzaykKIAkJCWludGVsX2VuZ2luZV9wbV9wdXQoZW5naW5lKTsKQEAgLTc2OSw3 ICs3NjksNyBAQCBzdGF0aWMgdm9pZCBfX2ludGVsX2d0X3NldF93ZWRnZWQoc3RydWN0IGludGVs X2d0ICpndCkKIAlpZiAoR0VNX1NIT1dfREVCVUcoKSAmJiAhaW50ZWxfZW5naW5lc19hcmVfaWRs ZShndCkpIHsKIAkJc3RydWN0IGRybV9wcmludGVyIHAgPSBkcm1fZGVidWdfcHJpbnRlcihfX2Z1 bmNfXyk7CiAKLQkJZm9yX2VhY2hfZW5naW5lKGVuZ2luZSwgZ3QtPmk5MTUsIGlkKQorCQlmb3Jf ZWFjaF9lbmdpbmUoZW5naW5lLCBndCwgaWQpCiAJCQlpbnRlbF9lbmdpbmVfZHVtcChlbmdpbmUs ICZwLCAiJXNcbiIsIGVuZ2luZS0+bmFtZSk7CiAJfQogCkBAIC03ODYsNyArNzg2LDcgQEAgc3Rh dGljIHZvaWQgX19pbnRlbF9ndF9zZXRfd2VkZ2VkKHN0cnVjdCBpbnRlbF9ndCAqZ3QpCiAJaWYg KCFJTlRFTF9JTkZPKGd0LT5pOTE1KS0+Z3B1X3Jlc2V0X2Nsb2JiZXJzX2Rpc3BsYXkpCiAJCV9f aW50ZWxfZ3RfcmVzZXQoZ3QsIEFMTF9FTkdJTkVTKTsKIAotCWZvcl9lYWNoX2VuZ2luZShlbmdp bmUsIGd0LT5pOTE1LCBpZCkKKwlmb3JfZWFjaF9lbmdpbmUoZW5naW5lLCBndCwgaWQpCiAJCWVu Z2luZS0+c3VibWl0X3JlcXVlc3QgPSBub3Bfc3VibWl0X3JlcXVlc3Q7CiAKIAkvKgpAQCAtNzk4 LDcgKzc5OCw3IEBAIHN0YXRpYyB2b2lkIF9faW50ZWxfZ3Rfc2V0X3dlZGdlZChzdHJ1Y3QgaW50 ZWxfZ3QgKmd0KQogCXNldF9iaXQoSTkxNV9XRURHRUQsICZndC0+cmVzZXQuZmxhZ3MpOwogCiAJ LyogTWFyayBhbGwgZXhlY3V0aW5nIHJlcXVlc3RzIGFzIHNraXBwZWQgKi8KLQlmb3JfZWFjaF9l bmdpbmUoZW5naW5lLCBndC0+aTkxNSwgaWQpCisJZm9yX2VhY2hfZW5naW5lKGVuZ2luZSwgZ3Qs IGlkKQogCQllbmdpbmUtPmNhbmNlbF9yZXF1ZXN0cyhlbmdpbmUpOwogCiAJcmVzZXRfZmluaXNo KGd0LCBhd2FrZSk7CkBAIC05MzQsNyArOTM0LDcgQEAgc3RhdGljIGludCByZXN1bWUoc3RydWN0 IGludGVsX2d0ICpndCkKIAllbnVtIGludGVsX2VuZ2luZV9pZCBpZDsKIAlpbnQgcmV0OwogCi0J Zm9yX2VhY2hfZW5naW5lKGVuZ2luZSwgZ3QtPmk5MTUsIGlkKSB7CisJZm9yX2VhY2hfZW5naW5l KGVuZ2luZSwgZ3QsIGlkKSB7CiAJCXJldCA9IGVuZ2luZS0+cmVzdW1lKGVuZ2luZSk7CiAJCWlm IChyZXQpCiAJCQlyZXR1cm4gcmV0OwpAQCAtMTIwNiw3ICsxMjA2LDcgQEAgdm9pZCBpbnRlbF9n dF9oYW5kbGVfZXJyb3Ioc3RydWN0IGludGVsX2d0ICpndCwKIAkgKiBzaW5nbGUgcmVzZXQgZmFp bHMuCiAJICovCiAJaWYgKGludGVsX2hhc19yZXNldF9lbmdpbmUoZ3QpICYmICFpbnRlbF9ndF9p c193ZWRnZWQoZ3QpKSB7Ci0JCWZvcl9lYWNoX2VuZ2luZV9tYXNrZWQoZW5naW5lLCBndC0+aTkx NSwgZW5naW5lX21hc2ssIHRtcCkgeworCQlmb3JfZWFjaF9lbmdpbmVfbWFza2VkKGVuZ2luZSwg Z3QsIGVuZ2luZV9tYXNrLCB0bXApIHsKIAkJCUJVSUxEX0JVR19PTihJOTE1X1JFU0VUX01PREVT RVQgPj0gSTkxNV9SRVNFVF9FTkdJTkUpOwogCQkJaWYgKHRlc3RfYW5kX3NldF9iaXQoSTkxNV9S RVNFVF9FTkdJTkUgKyBlbmdpbmUtPmlkLAogCQkJCQkgICAgICZndC0+cmVzZXQuZmxhZ3MpKQpA QCAtMTIzNCw3ICsxMjM0LDcgQEAgdm9pZCBpbnRlbF9ndF9oYW5kbGVfZXJyb3Ioc3RydWN0IGlu dGVsX2d0ICpndCwKIAlzeW5jaHJvbml6ZV9yY3VfZXhwZWRpdGVkKCk7CiAKIAkvKiBQcmV2ZW50 IGFueSBvdGhlciByZXNldC1lbmdpbmUgYXR0ZW1wdC4gKi8KLQlmb3JfZWFjaF9lbmdpbmUoZW5n aW5lLCBndC0+aTkxNSwgdG1wKSB7CisJZm9yX2VhY2hfZW5naW5lKGVuZ2luZSwgZ3QsIHRtcCkg ewogCQl3aGlsZSAodGVzdF9hbmRfc2V0X2JpdChJOTE1X1JFU0VUX0VOR0lORSArIGVuZ2luZS0+ aWQsCiAJCQkJCSZndC0+cmVzZXQuZmxhZ3MpKQogCQkJd2FpdF9vbl9iaXQoJmd0LT5yZXNldC5m bGFncywKQEAgLTEyNDQsNyArMTI0NCw3IEBAIHZvaWQgaW50ZWxfZ3RfaGFuZGxlX2Vycm9yKHN0 cnVjdCBpbnRlbF9ndCAqZ3QsCiAKIAlpbnRlbF9ndF9yZXNldF9nbG9iYWwoZ3QsIGVuZ2luZV9t YXNrLCBtc2cpOwogCi0JZm9yX2VhY2hfZW5naW5lKGVuZ2luZSwgZ3QtPmk5MTUsIHRtcCkKKwlm b3JfZWFjaF9lbmdpbmUoZW5naW5lLCBndCwgdG1wKQogCQljbGVhcl9iaXRfdW5sb2NrKEk5MTVf UkVTRVRfRU5HSU5FICsgZW5naW5lLT5pZCwKIAkJCQkgJmd0LT5yZXNldC5mbGFncyk7CiAJY2xl YXJfYml0X3VubG9jayhJOTE1X1JFU0VUX0JBQ0tPRkYsICZndC0+cmVzZXQuZmxhZ3MpOwpkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Qvc2VsZnRlc3RfY29udGV4dC5jIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvZ3Qvc2VsZnRlc3RfY29udGV4dC5jCmluZGV4IDdjODM4YTU3ZTE3 NC4uZjYzYTI2YTNlNjIwIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9zZWxm dGVzdF9jb250ZXh0LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Qvc2VsZnRlc3RfY29u dGV4dC5jCkBAIC0xNTksNyArMTU5LDcgQEAgc3RhdGljIGludCBsaXZlX2NvbnRleHRfc2l6ZSh2 b2lkICphcmcpCiAJaWYgKElTX0VSUihmaXhtZSkpCiAJCXJldHVybiBQVFJfRVJSKGZpeG1lKTsK IAotCWZvcl9lYWNoX2VuZ2luZShlbmdpbmUsIGd0LT5pOTE1LCBpZCkgeworCWZvcl9lYWNoX2Vu Z2luZShlbmdpbmUsIGd0LCBpZCkgewogCQlzdHJ1Y3QgewogCQkJc3RydWN0IGRybV9pOTE1X2dl bV9vYmplY3QgKnN0YXRlOwogCQkJdm9pZCAqcGlubmVkOwpAQCAtMzA1LDcgKzMwNSw3IEBAIHN0 YXRpYyBpbnQgbGl2ZV9hY3RpdmVfY29udGV4dCh2b2lkICphcmcpCiAJCWdvdG8gb3V0X2ZpbGU7 CiAJfQogCi0JZm9yX2VhY2hfZW5naW5lKGVuZ2luZSwgZ3QtPmk5MTUsIGlkKSB7CisJZm9yX2Vh Y2hfZW5naW5lKGVuZ2luZSwgZ3QsIGlkKSB7CiAJCWVyciA9IF9fbGl2ZV9hY3RpdmVfY29udGV4 dChlbmdpbmUsIGZpeG1lKTsKIAkJaWYgKGVycikKIAkJCWJyZWFrOwpAQCAtNDE1LDcgKzQxNSw3 IEBAIHN0YXRpYyBpbnQgbGl2ZV9yZW1vdGVfY29udGV4dCh2b2lkICphcmcpCiAJCWdvdG8gb3V0 X2ZpbGU7CiAJfQogCi0JZm9yX2VhY2hfZW5naW5lKGVuZ2luZSwgZ3QtPmk5MTUsIGlkKSB7CisJ Zm9yX2VhY2hfZW5naW5lKGVuZ2luZSwgZ3QsIGlkKSB7CiAJCWVyciA9IF9fbGl2ZV9yZW1vdGVf Y29udGV4dChlbmdpbmUsIGZpeG1lKTsKIAkJaWYgKGVycikKIAkJCWJyZWFrOwpkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Qvc2VsZnRlc3RfZW5naW5lX3BtLmMgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9ndC9zZWxmdGVzdF9lbmdpbmVfcG0uYwppbmRleCAzYTE0MTkzNzY5MTIu LjIwYjljODNmNDNhZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Qvc2VsZnRl c3RfZW5naW5lX3BtLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Qvc2VsZnRlc3RfZW5n aW5lX3BtLmMKQEAgLTI1LDcgKzI1LDcgQEAgc3RhdGljIGludCBsaXZlX2VuZ2luZV9wbSh2b2lk ICphcmcpCiAJfQogCiAJR0VNX0JVR19PTihpbnRlbF9ndF9wbV9pc19hd2FrZShndCkpOwotCWZv cl9lYWNoX2VuZ2luZShlbmdpbmUsIGd0LT5pOTE1LCBpZCkgeworCWZvcl9lYWNoX2VuZ2luZShl bmdpbmUsIGd0LCBpZCkgewogCQljb25zdCB0eXBlb2YoKmlndF9hdG9taWNfcGhhc2VzKSAqcDsK IAogCQlmb3IgKHAgPSBpZ3RfYXRvbWljX3BoYXNlczsgcC0+bmFtZTsgcCsrKSB7CmRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9zZWxmdGVzdF9oYW5nY2hlY2suYyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2d0L3NlbGZ0ZXN0X2hhbmdjaGVjay5jCmluZGV4IDU2OWE0MTA1ZDQ5 ZS4uOGUwMDE2NDY0MzI1IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9zZWxm dGVzdF9oYW5nY2hlY2suYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9zZWxmdGVzdF9o YW5nY2hlY2suYwpAQCAtMzIzLDcgKzMyMyw3IEBAIHN0YXRpYyBpbnQgaWd0X2hhbmdfc2FuaXR5 Y2hlY2sodm9pZCAqYXJnKQogCWlmIChlcnIpCiAJCXJldHVybiBlcnI7CiAKLQlmb3JfZWFjaF9l bmdpbmUoZW5naW5lLCBndC0+aTkxNSwgaWQpIHsKKwlmb3JfZWFjaF9lbmdpbmUoZW5naW5lLCBn dCwgaWQpIHsKIAkJc3RydWN0IGludGVsX3dlZGdlX21lIHc7CiAJCWxvbmcgdGltZW91dDsKIApA QCAtNDAwLDcgKzQwMCw3IEBAIHN0YXRpYyBpbnQgaWd0X3Jlc2V0X25vcCh2b2lkICphcmcpCiAJ cmVzZXRfY291bnQgPSBpOTE1X3Jlc2V0X2NvdW50KGdsb2JhbCk7CiAJY291bnQgPSAwOwogCWRv IHsKLQkJZm9yX2VhY2hfZW5naW5lKGVuZ2luZSwgZ3QtPmk5MTUsIGlkKSB7CisJCWZvcl9lYWNo X2VuZ2luZShlbmdpbmUsIGd0LCBpZCkgewogCQkJaW50IGk7CiAKIAkJCWZvciAoaSA9IDA7IGkg PCAxNjsgaSsrKSB7CkBAIC00NzEsNyArNDcxLDcgQEAgc3RhdGljIGludCBpZ3RfcmVzZXRfbm9w X2VuZ2luZSh2b2lkICphcmcpCiAJfQogCiAJaTkxNV9nZW1fY29udGV4dF9jbGVhcl9iYW5uYWJs ZShjdHgpOwotCWZvcl9lYWNoX2VuZ2luZShlbmdpbmUsIGd0LT5pOTE1LCBpZCkgeworCWZvcl9l YWNoX2VuZ2luZShlbmdpbmUsIGd0LCBpZCkgewogCQl1bnNpZ25lZCBpbnQgcmVzZXRfY291bnQs IHJlc2V0X2VuZ2luZV9jb3VudDsKIAkJdW5zaWduZWQgaW50IGNvdW50OwogCQlJR1RfVElNRU9V VChlbmRfdGltZSk7CkBAIC01NjAsNyArNTYwLDcgQEAgc3RhdGljIGludCBfX2lndF9yZXNldF9l bmdpbmUoc3RydWN0IGludGVsX2d0ICpndCwgYm9vbCBhY3RpdmUpCiAJCQlyZXR1cm4gZXJyOwog CX0KIAotCWZvcl9lYWNoX2VuZ2luZShlbmdpbmUsIGd0LT5pOTE1LCBpZCkgeworCWZvcl9lYWNo X2VuZ2luZShlbmdpbmUsIGd0LCBpZCkgewogCQl1bnNpZ25lZCBpbnQgcmVzZXRfY291bnQsIHJl c2V0X2VuZ2luZV9jb3VudDsKIAkJSUdUX1RJTUVPVVQoZW5kX3RpbWUpOwogCkBAIC03ODIsNyAr NzgyLDcgQEAgc3RhdGljIGludCBfX2lndF9yZXNldF9lbmdpbmVzKHN0cnVjdCBpbnRlbF9ndCAq Z3QsCiAJCQloLmN0eC0+c2NoZWQucHJpb3JpdHkgPSAxMDI0OwogCX0KIAotCWZvcl9lYWNoX2Vu Z2luZShlbmdpbmUsIGd0LT5pOTE1LCBpZCkgeworCWZvcl9lYWNoX2VuZ2luZShlbmdpbmUsIGd0 LCBpZCkgewogCQlzdHJ1Y3QgYWN0aXZlX2VuZ2luZSB0aHJlYWRzW0k5MTVfTlVNX0VOR0lORVNd ID0ge307CiAJCXVuc2lnbmVkIGxvbmcgZGV2aWNlID0gaTkxNV9yZXNldF9jb3VudChnbG9iYWwp OwogCQl1bnNpZ25lZCBsb25nIGNvdW50ID0gMCwgcmVwb3J0ZWQ7CkBAIC04MDAsNyArODAwLDcg QEAgc3RhdGljIGludCBfX2lndF9yZXNldF9lbmdpbmVzKHN0cnVjdCBpbnRlbF9ndCAqZ3QsCiAJ CX0KIAogCQltZW1zZXQodGhyZWFkcywgMCwgc2l6ZW9mKHRocmVhZHMpKTsKLQkJZm9yX2VhY2hf ZW5naW5lKG90aGVyLCBndC0+aTkxNSwgdG1wKSB7CisJCWZvcl9lYWNoX2VuZ2luZShvdGhlciwg Z3QsIHRtcCkgewogCQkJc3RydWN0IHRhc2tfc3RydWN0ICp0c2s7CiAKIAkJCXRocmVhZHNbdG1w XS5yZXNldHMgPQpAQCAtOTE0LDcgKzkxNCw3IEBAIHN0YXRpYyBpbnQgX19pZ3RfcmVzZXRfZW5n aW5lcyhzdHJ1Y3QgaW50ZWxfZ3QgKmd0LAogCQl9CiAKIHVud2luZDoKLQkJZm9yX2VhY2hfZW5n aW5lKG90aGVyLCBndC0+aTkxNSwgdG1wKSB7CisJCWZvcl9lYWNoX2VuZ2luZShvdGhlciwgZ3Qs IHRtcCkgewogCQkJaW50IHJldDsKIAogCQkJaWYgKCF0aHJlYWRzW3RtcF0udGFzaykKQEAgLTEz MzUsNyArMTMzNSw3IEBAIHN0YXRpYyBpbnQgd2FpdF9mb3Jfb3RoZXJzKHN0cnVjdCBpbnRlbF9n dCAqZ3QsCiAJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lOwogCWVudW0gaW50ZWxfZW5n aW5lX2lkIGlkOwogCi0JZm9yX2VhY2hfZW5naW5lKGVuZ2luZSwgZ3QtPmk5MTUsIGlkKSB7CisJ Zm9yX2VhY2hfZW5naW5lKGVuZ2luZSwgZ3QsIGlkKSB7CiAJCWlmIChlbmdpbmUgPT0gZXhjbHVk ZSkKIAkJCWNvbnRpbnVlOwogCkBAIC0xMzYzLDcgKzEzNjMsNyBAQCBzdGF0aWMgaW50IGlndF9y ZXNldF9xdWV1ZSh2b2lkICphcmcpCiAJaWYgKGVycikKIAkJZ290byB1bmxvY2s7CiAKLQlmb3Jf ZWFjaF9lbmdpbmUoZW5naW5lLCBndC0+aTkxNSwgaWQpIHsKKwlmb3JfZWFjaF9lbmdpbmUoZW5n aW5lLCBndCwgaWQpIHsKIAkJc3RydWN0IGk5MTVfcmVxdWVzdCAqcHJldjsKIAkJSUdUX1RJTUVP VVQoZW5kX3RpbWUpOwogCQl1bnNpZ25lZCBpbnQgY291bnQ7CkBAIC0xNjUxLDcgKzE2NTEsNyBA QCBzdGF0aWMgaW50IGlndF9yZXNldF9lbmdpbmVzX2F0b21pYyh2b2lkICphcmcpCiAJCXN0cnVj dCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZTsKIAkJZW51bSBpbnRlbF9lbmdpbmVfaWQgaWQ7CiAK LQkJZm9yX2VhY2hfZW5naW5lKGVuZ2luZSwgZ3QtPmk5MTUsIGlkKSB7CisJCWZvcl9lYWNoX2Vu Z2luZShlbmdpbmUsIGd0LCBpZCkgewogCQkJZXJyID0gaWd0X2F0b21pY19yZXNldF9lbmdpbmUo ZW5naW5lLCBwKTsKIAkJCWlmIChlcnIpCiAJCQkJZ290byBvdXQ7CmRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9ndC9zZWxmdGVzdF9scmMuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2d0L3NlbGZ0ZXN0X2xyYy5jCmluZGV4IDljMWYzNGZiNTg4Mi4uZmE3ODY5NWFmZDg2IDEwMDY0 NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9zZWxmdGVzdF9scmMuYworKysgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9ndC9zZWxmdGVzdF9scmMuYwpAQCAtMjUxMiw3ICsyNTEyLDcgQEAg c3RhdGljIGludCBsaXZlX2xyY19sYXlvdXQodm9pZCAqYXJnKQogCQlyZXR1cm4gLUVOT01FTTsK IAogCWVyciA9IDA7Ci0JZm9yX2VhY2hfZW5naW5lKGVuZ2luZSwgZ3QtPmk5MTUsIGlkKSB7CisJ Zm9yX2VhY2hfZW5naW5lKGVuZ2luZSwgZ3QsIGlkKSB7CiAJCXUzMiAqaHcsICpscmM7CiAJCWlu dCBkdzsKIApAQCAtMjcwNSw3ICsyNzA1LDcgQEAgc3RhdGljIGludCBsaXZlX2xyY19zdGF0ZSh2 b2lkICphcmcpCiAJCWdvdG8gb3V0X2Nsb3NlOwogCX0KIAotCWZvcl9lYWNoX2VuZ2luZShlbmdp bmUsIGd0LT5pOTE1LCBpZCkgeworCWZvcl9lYWNoX2VuZ2luZShlbmdpbmUsIGd0LCBpZCkgewog CQllcnIgPSBfX2xpdmVfbHJjX3N0YXRlKGZpeG1lLCBlbmdpbmUsIHNjcmF0Y2gpOwogCQlpZiAo ZXJyKQogCQkJYnJlYWs7CkBAIC0yODQ4LDcgKzI4NDgsNyBAQCBzdGF0aWMgaW50IGxpdmVfZ3By X2NsZWFyKHZvaWQgKmFyZykKIAkJZ290byBvdXRfY2xvc2U7CiAJfQogCi0JZm9yX2VhY2hfZW5n aW5lKGVuZ2luZSwgZ3QtPmk5MTUsIGlkKSB7CisJZm9yX2VhY2hfZW5naW5lKGVuZ2luZSwgZ3Qs IGlkKSB7CiAJCWVyciA9IF9fbGl2ZV9ncHJfY2xlYXIoZml4bWUsIGVuZ2luZSwgc2NyYXRjaCk7 CiAJCWlmIChlcnIpCiAJCQlicmVhazsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2d0L3NlbGZ0ZXN0X3Jlc2V0LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9zZWxmdGVzdF9y ZXNldC5jCmluZGV4IDQxOWIzOGZhNzgyOC4uNmVmYjkyMjFiN2ZhIDEwMDY0NAotLS0gYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9ndC9zZWxmdGVzdF9yZXNldC5jCisrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2d0L3NlbGZ0ZXN0X3Jlc2V0LmMKQEAgLTEyNSw3ICsxMjUsNyBAQCBzdGF0aWMgaW50 IGlndF9hdG9taWNfZW5naW5lX3Jlc2V0KHZvaWQgKmFyZykKIAlpZiAoIWlndF9mb3JjZV9yZXNl dChndCkpCiAJCWdvdG8gb3V0X3VubG9jazsKIAotCWZvcl9lYWNoX2VuZ2luZShlbmdpbmUsIGd0 LT5pOTE1LCBpZCkgeworCWZvcl9lYWNoX2VuZ2luZShlbmdpbmUsIGd0LCBpZCkgewogCQl0YXNr bGV0X2Rpc2FibGVfbm9zeW5jKCZlbmdpbmUtPmV4ZWNsaXN0cy50YXNrbGV0KTsKIAkJaW50ZWxf ZW5naW5lX3BtX2dldChlbmdpbmUpOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9ndC9zZWxmdGVzdF90aW1lbGluZS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Qvc2VsZnRl c3RfdGltZWxpbmUuYwppbmRleCBkNmRmNDBjZGM4YTYuLjliNGJlNGIyNTQwNCAxMDA2NDQKLS0t IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Qvc2VsZnRlc3RfdGltZWxpbmUuYworKysgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9ndC9zZWxmdGVzdF90aW1lbGluZS5jCkBAIC02NjQsNyArNjY0LDcg QEAgc3RhdGljIGludCBsaXZlX2h3c3Bfd3JhcCh2b2lkICphcmcpCiAJaWYgKGVycikKIAkJZ290 byBvdXRfZnJlZTsKIAotCWZvcl9lYWNoX2VuZ2luZShlbmdpbmUsIGd0LT5pOTE1LCBpZCkgewor CWZvcl9lYWNoX2VuZ2luZShlbmdpbmUsIGd0LCBpZCkgewogCQljb25zdCB1MzIgKmh3c3Bfc2Vx bm9bMl07CiAJCXN0cnVjdCBpOTE1X3JlcXVlc3QgKnJxOwogCQl1MzIgc2Vxbm9bMl07CmRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC91Yy9pbnRlbF9ndWNfc3VibWlzc2lvbi5j IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvdWMvaW50ZWxfZ3VjX3N1Ym1pc3Npb24uYwppbmRl eCBmMzI1ZDNkZDU2NGYuLmU5NzEzYTIxNzc5ZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvZ3QvdWMvaW50ZWxfZ3VjX3N1Ym1pc3Npb24uYworKysgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9ndC91Yy9pbnRlbF9ndWNfc3VibWlzc2lvbi5jCkBAIC0xMDE0LDcgKzEwMTQsNyBAQCBz dGF0aWMgdm9pZCBndWNfaW50ZXJydXB0c19jYXB0dXJlKHN0cnVjdCBpbnRlbF9ndCAqZ3QpCiAJ ICogdG8gR3VDCiAJICovCiAJaXJxcyA9IF9NQVNLRURfQklUX0VOQUJMRShHRlhfSU5URVJSVVBU X1NURUVSSU5HKTsKLQlmb3JfZWFjaF9lbmdpbmUoZW5naW5lLCBndC0+aTkxNSwgaWQpCisJZm9y X2VhY2hfZW5naW5lKGVuZ2luZSwgZ3QsIGlkKQogCQlFTkdJTkVfV1JJVEUoZW5naW5lLCBSSU5H X01PREVfR0VONywgaXJxcyk7CiAKIAkvKiByb3V0ZSBVU0VSX0lOVEVSUlVQVCB0byBIb3N0LCBh bGwgb3RoZXJzIGFyZSBzZW50IHRvIEd1Qy4gKi8KQEAgLTEwNjIsNyArMTA2Miw3IEBAIHN0YXRp YyB2b2lkIGd1Y19pbnRlcnJ1cHRzX3JlbGVhc2Uoc3RydWN0IGludGVsX2d0ICpndCkKIAkgKi8K IAlpcnFzID0gX01BU0tFRF9GSUVMRChHRlhfRk9SV0FSRF9WQkxBTktfTUFTSywgR0ZYX0ZPUldB UkRfVkJMQU5LX05FVkVSKTsKIAlpcnFzIHw9IF9NQVNLRURfQklUX0RJU0FCTEUoR0ZYX0lOVEVS UlVQVF9TVEVFUklORyk7Ci0JZm9yX2VhY2hfZW5naW5lKGVuZ2luZSwgZ3QtPmk5MTUsIGlkKQor CWZvcl9lYWNoX2VuZ2luZShlbmdpbmUsIGd0LCBpZCkKIAkJRU5HSU5FX1dSSVRFKGVuZ2luZSwg UklOR19NT0RFX0dFTjcsIGlycXMpOwogCiAJLyogcm91dGUgYWxsIEdUIGludGVycnVwdHMgdG8g dGhlIGhvc3QgKi8KQEAgLTExNDUsNyArMTE0NSw3IEBAIGludCBpbnRlbF9ndWNfc3VibWlzc2lv bl9lbmFibGUoc3RydWN0IGludGVsX2d1YyAqZ3VjKQogCS8qIFRha2Ugb3ZlciBmcm9tIG1hbnVh bCBjb250cm9sIG9mIEVMU1AgKGV4ZWNsaXN0cykgKi8KIAlndWNfaW50ZXJydXB0c19jYXB0dXJl KGd0KTsKIAotCWZvcl9lYWNoX2VuZ2luZShlbmdpbmUsIGd0LT5pOTE1LCBpZCkgeworCWZvcl9l YWNoX2VuZ2luZShlbmdpbmUsIGd0LCBpZCkgewogCQllbmdpbmUtPnNldF9kZWZhdWx0X3N1Ym1p c3Npb24gPSBndWNfc2V0X2RlZmF1bHRfc3VibWlzc2lvbjsKIAkJZW5naW5lLT5zZXRfZGVmYXVs dF9zdWJtaXNzaW9uKGVuZ2luZSk7CiAJfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvc2VsZnRlc3RzL2lndF9yZXNldC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3Rz L2lndF9yZXNldC5jCmluZGV4IDdlYzhmOGIwNDljNi4uOWY4NTkwYjg2OGE5IDEwMDY0NAotLS0g YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvaWd0X3Jlc2V0LmMKKysrIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL2lndF9yZXNldC5jCkBAIC0yMiw3ICsyMiw3IEBAIHZv aWQgaWd0X2dsb2JhbF9yZXNldF9sb2NrKHN0cnVjdCBpbnRlbF9ndCAqZ3QpCiAJCXdhaXRfZXZl bnQoZ3QtPnJlc2V0LnF1ZXVlLAogCQkJICAgIXRlc3RfYml0KEk5MTVfUkVTRVRfQkFDS09GRiwg Jmd0LT5yZXNldC5mbGFncykpOwogCi0JZm9yX2VhY2hfZW5naW5lKGVuZ2luZSwgZ3QtPmk5MTUs IGlkKSB7CisJZm9yX2VhY2hfZW5naW5lKGVuZ2luZSwgZ3QsIGlkKSB7CiAJCXdoaWxlICh0ZXN0 X2FuZF9zZXRfYml0KEk5MTVfUkVTRVRfRU5HSU5FICsgaWQsCiAJCQkJCSZndC0+cmVzZXQuZmxh Z3MpKQogCQkJd2FpdF9vbl9iaXQoJmd0LT5yZXNldC5mbGFncywgSTkxNV9SRVNFVF9FTkdJTkUg KyBpZCwKQEAgLTM1LDcgKzM1LDcgQEAgdm9pZCBpZ3RfZ2xvYmFsX3Jlc2V0X3VubG9jayhzdHJ1 Y3QgaW50ZWxfZ3QgKmd0KQogCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZTsKIAllbnVt IGludGVsX2VuZ2luZV9pZCBpZDsKIAotCWZvcl9lYWNoX2VuZ2luZShlbmdpbmUsIGd0LT5pOTE1 LCBpZCkKKwlmb3JfZWFjaF9lbmdpbmUoZW5naW5lLCBndCwgaWQpCiAJCWNsZWFyX2JpdChJOTE1 X1JFU0VUX0VOR0lORSArIGlkLCAmZ3QtPnJlc2V0LmZsYWdzKTsKIAogCWNsZWFyX2JpdChJOTE1 X1JFU0VUX0JBQ0tPRkYsICZndC0+cmVzZXQuZmxhZ3MpOwotLSAKMi4yMC4xCgpfX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBs aXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVz a3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZng=