From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chris Wilson Subject: [PATCH v2 1/3] drm/i915: Mark i915_request.timeline as a volatile, rcu pointer Date: Thu, 19 Sep 2019 12:19:10 +0100 Message-ID: <20190919111912.21631-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 fireflyinternet.com (mail.fireflyinternet.com [109.228.58.192]) by gabe.freedesktop.org (Postfix) with ESMTPS id 92CFF6F980 for ; Thu, 19 Sep 2019 11:19:22 +0000 (UTC) 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 VGhlIHJlcXVlc3QtPnRpbWVsaW5lIGlzIG9ubHkgdmFsaWQgdW50aWwgdGhlIHJlcXVlc3QgaXMg cmV0aXJlZCAoaS5lLgpiZWZvcmUgaXQgaXMgY29tcGxldGVkKS4gVXBvbiByZXRpcmluZyB0aGUg cmVxdWVzdCwgdGhlIGNvbnRleHQgbWF5IGJlCnVucGlubmVkIGFuZCBmcmVlZCwgYW5kIGFsb25n IHdpdGggaXQgdGhlIHRpbWVsaW5lIG1heSBiZSBmcmVlZC4gV2UKdGhlcmVmb3JlIG5lZWQgdG8g YmUgdmVyeSBjYXJlZnVsIHdoZW4gY2hhc2luZyBycS0+dGltZWxpbmUgdGhhdCB0aGUKcG9pbnRl ciBkb2VzIG5vdCBkaXNhcHBlYXIgYmVuZWF0aCB1cy4gVGhlIHZhc3QgbWFqb3JpdHkgb2YgdXNl cnMgYXJlIGluCmEgcHJvdGVjdGVkIGNvbnRleHQsIGVpdGhlciBkdXJpbmcgcmVxdWVzdCBjb25z dHJ1Y3Rpb24gb3IgcmV0aXJlbWVudCwKd2hlcmUgdGhlIHRpbWVsaW5lLT5tdXRleCBpcyBoZWxk IGFuZCB0aGUgdGltZWxpbmUgY2Fubm90IGRpc2FwcGVhci4gSXQKaXMgdGhvc2UgZmV3IG9mZiB0 aGUgYmVhdGVuIHBhdGggKHdoZXJlIHdlIGFjY2VzcyBhIHNlY29uZCB0aW1lbGluZSkgdGhhdApu ZWVkIGV4dHJhIHNjcnV0aW55IC0tIHRvIGJlIGFkZGVkIGluIHRoZSBuZXh0IHBhdGNoIGFmdGVy IGZpcnN0IGFkZGluZwp0aGUgd2FybmluZ3MgYWJvdXQgZGFuZ2Vyb3VzIGFjY2Vzcy4KCk9uZSBj b21wbGljYXRpb24sIHdoZXJlIHdlIGNhbm5vdCB1c2UgdGhlIHRpbWVsaW5lLT5tdXRleCBpdHNl bGYsIGlzCmR1cmluZyByZXF1ZXN0IHN1Ym1pc3Npb24gb250byBoYXJkd2FyZSAodW5kZXIgc3Bp bmxvY2tzKS4gSGVyZSwgd2Ugd2FudAp0byBjaGVjayBvbiB0aGUgdGltZWxpbmUgdG8gZmluYWxp emUgdGhlIGJyZWFkY3J1bWIsIGFuZCBzbyB3ZSBuZWVkIHRvCmltcG9zZSBhIHNlY29uZCBydWxl IHRvIGVuc3VyZSB0aGF0IHRoZSByZXF1ZXN0LT50aW1lbGluZSBpcyBpbmRlZWQKdmFsaWQuIEFz IHdlIGFyZSBzdWJtaXR0aW5nIHRoZSByZXF1ZXN0LCBpdCdzIGNvbnRleHQgYW5kIHRpbWVsaW5l IG11c3QKYmUgcGlubmVkLCBhcyBpdCB3aWxsIGJlIHVzZWQgYnkgdGhlIGhhcmR3YXJlLiBTaW5j ZSBpdCBpcyBwaW5uZWQsIHdlCmtub3cgdGhlIHJlcXVlc3QtPnRpbWVsaW5lIG11c3Qgc3RpbGwg YmUgdmFsaWQsIGFuZCB3ZSBjYW5ub3Qgc3VibWl0IHRoZQppZGxlIGJhcnJpZXIgdW50aWwgYWZ0 ZXIgd2UgcmVsZWFzZSB0aGUgZW5naW5lLT5hY3RpdmUubG9jaywgZXJnbyB3aGlsZQpzdWJtaXR0 aW5nIGFuZCBob2xkaW5nIHRoYXQgc3BpbmxvY2ssIGEgc2Vjb25kIHRocmVhZCBjYW5ub3QgcmVs ZWFzZSB0aGUKdGltZWxpbmUuCgp2MjogRG9uJ3QgYmUgbGF6eSBpbnNpZGUgc2VsZnRlc3RzOyBo b2xkIHRoZSB0aW1lbGluZS0+bXV0ZXggZm9yIGFzIGxvbmcKYXMgd2UgbmVlZCBpdCwgYW5kIHRp ZHkgdXAgYWNxdWlyaW5nIHRoZSB0aW1lbGluZSB3aXRoIGEgYml0IG9mCnJlZmFjdG9yaW5nIChp OTE1X2FjdGl2ZV9hZGRfcmVxdWVzdCkKClNpZ25lZC1vZmYtYnk6IENocmlzIFdpbHNvbiA8Y2hy aXNAY2hyaXMtd2lsc29uLmNvLnVrPgpDYzogVHZydGtvIFVyc3VsaW4gPHR2cnRrby51cnN1bGlu QGludGVsLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX292ZXJs YXkuYyAgfCAgMiArLQogLi4uL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fY2xpZW50X2JsdC5j ICAgIHwgIDIgKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9jb250ZXh0LmMg ICB8ICAyICstCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9jb250ZXh0LmMgICAgICAg fCAgNCArLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfZW5naW5lX2NzLmMgICAgIHwg NTcgKysrKysrKysrKysrKysrKy0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfZW5n aW5lX3BtLmMgICAgIHwgIDIgKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2VuZ2lu ZV9wb29sLmggICB8ICAyICstCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9scmMuYyAg ICAgICAgICAgfCAxNyArKystLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX3Jpbmdi dWZmZXIuYyAgICB8IDI3ICsrKysrLS0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxf dGltZWxpbmUuYyAgICAgIHwgIDYgKy0KIC4uLi9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfdGltZWxp bmVfdHlwZXMuaCAgICB8ICAxICsKIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L3NlbGZ0ZXN0X2Nv bnRleHQuYyAgICB8IDE4ICsrKystLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Qvc2VsZnRlc3Rf bHJjLmMgICAgICAgIHwgIDIgKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfYWN0aXZlLmMg ICAgICAgICAgICB8ICAyICstCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2FjdGl2ZS5oICAg ICAgICAgICAgfCAgNiArKwogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZXF1ZXN0LmMgICAg ICAgICAgIHwgMjggKysrKystLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlcXVlc3Qu aCAgICAgICAgICAgfCAyMiArKysrKystCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3ZtYS5j ICAgICAgICAgICAgICAgfCAgNiArLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL2k5 MTVfYWN0aXZlLmMgIHwgIDIgKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9pZ3Rf c3Bpbm5lci5jICB8ICAyICstCiAyMCBmaWxlcyBjaGFuZ2VkLCAxNDcgaW5zZXJ0aW9ucygrKSwg NjMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxh eS9pbnRlbF9vdmVybGF5LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX292 ZXJsYXkuYwppbmRleCAyOWVkZmMzNDM3MTYuLjVlZmVmOWJhYmFkYiAxMDA2NDQKLS0tIGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9vdmVybGF5LmMKKysrIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9vdmVybGF5LmMKQEAgLTIzMCw3ICsyMzAsNyBAQCBh bGxvY19yZXF1ZXN0KHN0cnVjdCBpbnRlbF9vdmVybGF5ICpvdmVybGF5LCB2b2lkICgqZm4pKHN0 cnVjdCBpbnRlbF9vdmVybGF5ICopKQogCWlmIChJU19FUlIocnEpKQogCQlyZXR1cm4gcnE7CiAK LQllcnIgPSBpOTE1X2FjdGl2ZV9yZWYoJm92ZXJsYXktPmxhc3RfZmxpcCwgcnEtPnRpbWVsaW5l LCBycSk7CisJZXJyID0gaTkxNV9hY3RpdmVfYWRkX3JlcXVlc3QoJm92ZXJsYXktPmxhc3RfZmxp cCwgcnEpOwogCWlmIChlcnIpIHsKIAkJaTkxNV9yZXF1ZXN0X2FkZChycSk7CiAJCXJldHVybiBF UlJfUFRSKGVycik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9n ZW1fY2xpZW50X2JsdC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX2NsaWVu dF9ibHQuYwppbmRleCBmOTk5MjA2NTI3NTEuLjdmNjFhODAyNDEzMyAxMDA2NDQKLS0tIGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX2NsaWVudF9ibHQuYworKysgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fY2xpZW50X2JsdC5jCkBAIC0yMTEsNyArMjExLDcg QEAgc3RhdGljIHZvaWQgY2xlYXJfcGFnZXNfd29ya2VyKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29y aykKIAkgKiBrZWVwIHRyYWNrIG9mIHRoZSBHUFUgYWN0aXZpdHkgd2l0aGluIHRoaXMgdm1hL3Jl cXVlc3QsIGFuZAogCSAqIHByb3BhZ2F0ZSB0aGUgc2lnbmFsIGZyb20gdGhlIHJlcXVlc3QgdG8g dy0+ZG1hLgogCSAqLwotCWVyciA9IGk5MTVfYWN0aXZlX3JlZigmdm1hLT5hY3RpdmUsIHJxLT50 aW1lbGluZSwgcnEpOworCWVyciA9IGk5MTVfYWN0aXZlX2FkZF9yZXF1ZXN0KCZ2bWEtPmFjdGl2 ZSwgcnEpOwogCWlmIChlcnIpCiAJCWdvdG8gb3V0X3JlcXVlc3Q7CiAKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9jb250ZXh0LmMgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9nZW0vaTkxNV9nZW1fY29udGV4dC5jCmluZGV4IGYxYzBlNWQ5NThmMy4uNGEzNGM0 ZjYyMDY1IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fY29u dGV4dC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9jb250ZXh0LmMK QEAgLTkxMCw3ICs5MTAsNyBAQCBzdGF0aWMgaW50IGNvbnRleHRfYmFycmllcl90YXNrKHN0cnVj dCBpOTE1X2dlbV9jb250ZXh0ICpjdHgsCiAJCWlmIChlbWl0KQogCQkJZXJyID0gZW1pdChycSwg ZGF0YSk7CiAJCWlmIChlcnIgPT0gMCkKLQkJCWVyciA9IGk5MTVfYWN0aXZlX3JlZigmY2ItPmJh c2UsIHJxLT50aW1lbGluZSwgcnEpOworCQkJZXJyID0gaTkxNV9hY3RpdmVfYWRkX3JlcXVlc3Qo JmNiLT5iYXNlLCBycSk7CiAKIAkJaTkxNV9yZXF1ZXN0X2FkZChycSk7CiAJCWlmIChlcnIpCmRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9jb250ZXh0LmMgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9jb250ZXh0LmMKaW5kZXggYzA0OTU4MTFmNDkzLi4y NmNiODM4YzI3MmMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2Nv bnRleHQuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9jb250ZXh0LmMKQEAg LTI5OCw3ICsyOTgsNyBAQCBpbnQgaW50ZWxfY29udGV4dF9wcmVwYXJlX3JlbW90ZV9yZXF1ZXN0 KHN0cnVjdCBpbnRlbF9jb250ZXh0ICpjZSwKIAkvKiBPbmx5IHN1aXRhYmxlIGZvciB1c2UgaW4g cmVtb3RlbHkgbW9kaWZ5aW5nIHRoaXMgY29udGV4dCAqLwogCUdFTV9CVUdfT04ocnEtPmh3X2Nv bnRleHQgPT0gY2UpOwogCi0JaWYgKHJxLT50aW1lbGluZSAhPSB0bCkgeyAvKiBiZXdhcmUgdGlt ZWxpbmUgc2hhcmluZyAqLworCWlmIChyY3VfYWNjZXNzX3BvaW50ZXIocnEtPnRpbWVsaW5lKSAh PSB0bCkgeyAvKiB0aW1lbGluZSBzaGFyaW5nISAqLwogCQllcnIgPSBtdXRleF9sb2NrX2ludGVy cnVwdGlibGVfbmVzdGVkKCZ0bC0+bXV0ZXgsCiAJCQkJCQkgICAgICBTSU5HTEVfREVQVEhfTkVT VElORyk7CiAJCWlmIChlcnIpCkBAIC0zMTksNyArMzE5LDcgQEAgaW50IGludGVsX2NvbnRleHRf cHJlcGFyZV9yZW1vdGVfcmVxdWVzdChzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY2UsCiAJICogd29y ZHMgdHJhbnNmZXIgdGhlIHBpbm5lZCBjZSBvYmplY3QgdG8gdHJhY2tlZCBhY3RpdmUgcmVxdWVz dC4KIAkgKi8KIAlHRU1fQlVHX09OKGk5MTVfYWN0aXZlX2lzX2lkbGUoJmNlLT5hY3RpdmUpKTsK LQlyZXR1cm4gaTkxNV9hY3RpdmVfcmVmKCZjZS0+YWN0aXZlLCBycS0+dGltZWxpbmUsIHJxKTsK KwlyZXR1cm4gaTkxNV9hY3RpdmVfYWRkX3JlcXVlc3QoJmNlLT5hY3RpdmUsIHJxKTsKIH0KIAog c3RydWN0IGk5MTVfcmVxdWVzdCAqaW50ZWxfY29udGV4dF9jcmVhdGVfcmVxdWVzdChzdHJ1Y3Qg aW50ZWxfY29udGV4dCAqY2UpCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9p bnRlbF9lbmdpbmVfY3MuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2VuZ2luZV9j cy5jCmluZGV4IDNjMTc2YjBmNGI0NS4uZjQ1MWQ1MDc2YmRlIDEwMDY0NAotLS0gYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9lbmdpbmVfY3MuYworKysgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9ndC9pbnRlbF9lbmdpbmVfY3MuYwpAQCAtNjgwLDYgKzY4MCw4IEBAIHN0YXRpYyBpbnQg bWVhc3VyZV9icmVhZGNydW1iX2R3KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKIAkJ CQllbmdpbmUtPnN0YXR1c19wYWdlLnZtYSkpCiAJCWdvdG8gb3V0X2ZyYW1lOwogCisJbXV0ZXhf bG9jaygmZnJhbWUtPnRpbWVsaW5lLm11dGV4KTsKKwogCWZyYW1lLT5yaW5nLnZhZGRyID0gZnJh bWUtPmNzOwogCWZyYW1lLT5yaW5nLnNpemUgPSBzaXplb2YoZnJhbWUtPmNzKTsKIAlmcmFtZS0+ cmluZy5lZmZlY3RpdmVfc2l6ZSA9IGZyYW1lLT5yaW5nLnNpemU7CkBAIC02ODgsMTggKzY5MCwy MiBAQCBzdGF0aWMgaW50IG1lYXN1cmVfYnJlYWRjcnVtYl9kdyhzdHJ1Y3QgaW50ZWxfZW5naW5l X2NzICplbmdpbmUpCiAJZnJhbWUtPnJxLmk5MTUgPSBlbmdpbmUtPmk5MTU7CiAJZnJhbWUtPnJx LmVuZ2luZSA9IGVuZ2luZTsKIAlmcmFtZS0+cnEucmluZyA9ICZmcmFtZS0+cmluZzsKLQlmcmFt ZS0+cnEudGltZWxpbmUgPSAmZnJhbWUtPnRpbWVsaW5lOworCXJjdV9hc3NpZ25fcG9pbnRlcihm cmFtZS0+cnEudGltZWxpbmUsICZmcmFtZS0+dGltZWxpbmUpOwogCiAJZHcgPSBpbnRlbF90aW1l bGluZV9waW4oJmZyYW1lLT50aW1lbGluZSk7CiAJaWYgKGR3IDwgMCkKIAkJZ290byBvdXRfdGlt ZWxpbmU7CiAKKwlzcGluX2xvY2tfaXJxKCZlbmdpbmUtPmFjdGl2ZS5sb2NrKTsKIAlkdyA9IGVu Z2luZS0+ZW1pdF9maW5pX2JyZWFkY3J1bWIoJmZyYW1lLT5ycSwgZnJhbWUtPmNzKSAtIGZyYW1l LT5jczsKKwlzcGluX3VubG9ja19pcnEoJmVuZ2luZS0+YWN0aXZlLmxvY2spOworCiAJR0VNX0JV R19PTihkdyAmIDEpOyAvKiBSSU5HX1RBSUwgbXVzdCBiZSBxd29yZCBhbGlnbmVkICovCiAKIAlp bnRlbF90aW1lbGluZV91bnBpbigmZnJhbWUtPnRpbWVsaW5lKTsKIAogb3V0X3RpbWVsaW5lOgor CW11dGV4X3VubG9jaygmZnJhbWUtPnRpbWVsaW5lLm11dGV4KTsKIAlpbnRlbF90aW1lbGluZV9m aW5pKCZmcmFtZS0+dGltZWxpbmUpOwogb3V0X2ZyYW1lOgogCWtmcmVlKGZyYW1lKTsKQEAgLTEx OTYsNiArMTIwMiwyNyBAQCBzdGF0aWMgdm9pZCBoZXhkdW1wKHN0cnVjdCBkcm1fcHJpbnRlciAq bSwgY29uc3Qgdm9pZCAqYnVmLCBzaXplX3QgbGVuKQogCX0KIH0KIAorc3RhdGljIHN0cnVjdCBp bnRlbF90aW1lbGluZSAqZ2V0X3RpbWVsaW5lKHN0cnVjdCBpOTE1X3JlcXVlc3QgKnJxKQorewor CXN0cnVjdCBpbnRlbF90aW1lbGluZSAqdGw7CisKKwkvKgorCSAqIEV2ZW4gdGhvdWdoIHdlIGFy ZSBob2xkaW5nIHRoZSBlbmdpbmUtPmFjdGl2ZS5sb2NrIGhlcmUsIHRoZXJlCisJICogaXMgbm8g Y29udHJvbCBvdmVyIHRoZSBzdWJtaXNzaW9uIHF1ZXVlIHBlci1zZSBhbmQgd2UgYXJlCisJICog aW5zcGVjdGluZyB0aGUgYWN0aXZlIHN0YXRlIGF0IGEgcmFuZG9tIHBvaW50IGluIHRpbWUsIHdp dGggYW4KKwkgKiB1bmtub3duIHF1ZXVlLiBQbGF5IHNhZmUgYW5kIG1ha2Ugc3VyZSB0aGUgdGlt ZWxpbmUgcmVtYWlucyB2YWxpZC4KKwkgKiAoT25seSBiZWluZyB1c2VkIGZvciBwcmV0dHkgcHJp bnRpbmcsIG9uZSBleHRyYSBrcmVmIHNob3VsZG4ndAorCSAqIGNhdXNlIGEgY2FtZWwgc3RhbXBl ZGUhKQorCSAqLworCXJjdV9yZWFkX2xvY2soKTsKKwl0bCA9IHJjdV9kZXJlZmVyZW5jZShycS0+ dGltZWxpbmUpOworCWlmICgha3JlZl9nZXRfdW5sZXNzX3plcm8oJnRsLT5rcmVmKSkKKwkJdGwg PSBOVUxMOworCXJjdV9yZWFkX3VubG9jaygpOworCisJcmV0dXJuIHRsOworfQorCiBzdGF0aWMg dm9pZCBpbnRlbF9lbmdpbmVfcHJpbnRfcmVnaXN0ZXJzKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3Mg KmVuZ2luZSwKIAkJCQkJIHN0cnVjdCBkcm1fcHJpbnRlciAqbSkKIHsKQEAgLTEyOTAsMjcgKzEz MTcsMzcgQEAgc3RhdGljIHZvaWQgaW50ZWxfZW5naW5lX3ByaW50X3JlZ2lzdGVycyhzdHJ1Y3Qg aW50ZWxfZW5naW5lX2NzICplbmdpbmUsCiAJCQlpbnQgbGVuOwogCiAJCQlsZW4gPSBzbnByaW50 ZihoZHIsIHNpemVvZihoZHIpLAotCQkJCSAgICAgICAiXHRcdEFjdGl2ZVslZDogIiwKKwkJCQkg ICAgICAgIlx0XHRBY3RpdmVbJWRdOiAiLAogCQkJCSAgICAgICAoaW50KShwb3J0IC0gZXhlY2xp c3RzLT5hY3RpdmUpKTsKLQkJCWlmICghaTkxNV9yZXF1ZXN0X3NpZ25hbGVkKHJxKSkKKwkJCWlm ICghaTkxNV9yZXF1ZXN0X3NpZ25hbGVkKHJxKSkgeworCQkJCXN0cnVjdCBpbnRlbF90aW1lbGlu ZSAqdGwgPSBnZXRfdGltZWxpbmUocnEpOworCiAJCQkJbGVuICs9IHNucHJpbnRmKGhkciArIGxl biwgc2l6ZW9mKGhkcikgLSBsZW4sCiAJCQkJCQkicmluZzp7c3RhcnQ6JTA4eCwgaHdzcDolMDh4 LCBzZXFubzolMDh4fSwgIiwKIAkJCQkJCWk5MTVfZ2d0dF9vZmZzZXQocnEtPnJpbmctPnZtYSks Ci0JCQkJCQlycS0+dGltZWxpbmUtPmh3c3Bfb2Zmc2V0LAorCQkJCQkJdGwgPyB0bC0+aHdzcF9v ZmZzZXQgOiAwLAogCQkJCQkJaHdzcF9zZXFubyhycSkpOworCisJCQkJaWYgKHRsKQorCQkJCQlp bnRlbF90aW1lbGluZV9wdXQodGwpOworCQkJfQogCQkJc25wcmludGYoaGRyICsgbGVuLCBzaXpl b2YoaGRyKSAtIGxlbiwgInJxOiAiKTsKIAkJCXByaW50X3JlcXVlc3QobSwgcnEsIGhkcik7CiAJ CX0KIAkJZm9yIChwb3J0ID0gZXhlY2xpc3RzLT5wZW5kaW5nOyAocnEgPSAqcG9ydCk7IHBvcnQr KykgeworCQkJc3RydWN0IGludGVsX3RpbWVsaW5lICp0bCA9IGdldF90aW1lbGluZShycSk7CiAJ CQljaGFyIGhkcls4MF07CiAKIAkJCXNucHJpbnRmKGhkciwgc2l6ZW9mKGhkciksCiAJCQkJICJc dFx0UGVuZGluZ1slZF0gcmluZzp7c3RhcnQ6JTA4eCwgaHdzcDolMDh4LCBzZXFubzolMDh4fSwg cnE6ICIsCiAJCQkJIChpbnQpKHBvcnQgLSBleGVjbGlzdHMtPnBlbmRpbmcpLAogCQkJCSBpOTE1 X2dndHRfb2Zmc2V0KHJxLT5yaW5nLT52bWEpLAotCQkJCSBycS0+dGltZWxpbmUtPmh3c3Bfb2Zm c2V0LAorCQkJCSB0bCA/IHRsLT5od3NwX29mZnNldCA6IDAsCiAJCQkJIGh3c3Bfc2Vxbm8ocnEp KTsKIAkJCXByaW50X3JlcXVlc3QobSwgcnEsIGhkcik7CisKKwkJCWlmICh0bCkKKwkJCQlpbnRl bF90aW1lbGluZV9wdXQodGwpOwogCQl9CiAJCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmVuZ2lu ZS0+YWN0aXZlLmxvY2ssIGZsYWdzKTsKIAl9IGVsc2UgaWYgKElOVEVMX0dFTihkZXZfcHJpdikg PiA2KSB7CkBAIC0xMzg4LDYgKzE0MjUsOCBAQCB2b2lkIGludGVsX2VuZ2luZV9kdW1wKHN0cnVj dCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwKIAlzcGluX2xvY2tfaXJxc2F2ZSgmZW5naW5lLT5h Y3RpdmUubG9jaywgZmxhZ3MpOwogCXJxID0gaW50ZWxfZW5naW5lX2ZpbmRfYWN0aXZlX3JlcXVl c3QoZW5naW5lKTsKIAlpZiAocnEpIHsKKwkJc3RydWN0IGludGVsX3RpbWVsaW5lICp0bCA9IGdl dF90aW1lbGluZShycSk7CisKIAkJcHJpbnRfcmVxdWVzdChtLCBycSwgIlx0XHRhY3RpdmUgIik7 CiAKIAkJZHJtX3ByaW50ZihtLCAiXHRcdHJpbmctPnN0YXJ0OiAgMHglMDh4XG4iLApAQCAtMTQw MCw4ICsxNDM5LDEyIEBAIHZvaWQgaW50ZWxfZW5naW5lX2R1bXAoc3RydWN0IGludGVsX2VuZ2lu ZV9jcyAqZW5naW5lLAogCQkJICAgcnEtPnJpbmctPmVtaXQpOwogCQlkcm1fcHJpbnRmKG0sICJc dFx0cmluZy0+c3BhY2U6ICAweCUwOHhcbiIsCiAJCQkgICBycS0+cmluZy0+c3BhY2UpOwotCQlk cm1fcHJpbnRmKG0sICJcdFx0cmluZy0+aHdzcDogICAweCUwOHhcbiIsCi0JCQkgICBycS0+dGlt ZWxpbmUtPmh3c3Bfb2Zmc2V0KTsKKworCQlpZiAodGwpIHsKKwkJCWRybV9wcmludGYobSwgIlx0 XHRyaW5nLT5od3NwOiAgIDB4JTA4eFxuIiwKKwkJCQkgICB0bC0+aHdzcF9vZmZzZXQpOworCQkJ aW50ZWxfdGltZWxpbmVfcHV0KHRsKTsKKwkJfQogCiAJCXByaW50X3JlcXVlc3RfcmluZyhtLCBy cSk7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2VuZ2luZV9w bS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfZW5naW5lX3BtLmMKaW5kZXggNjVi NWNhNzRiMzk0Li5jZTYxYzgzZDY4ZTkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2d0L2ludGVsX2VuZ2luZV9wbS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVs X2VuZ2luZV9wbS5jCkBAIC0xMDMsNyArMTAzLDcgQEAgc3RhdGljIGJvb2wgc3dpdGNoX3RvX2tl cm5lbF9jb250ZXh0KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKIAkJLyogQ29udGV4 dCBzd2l0Y2ggZmFpbGVkLCBob3BlIGZvciB0aGUgYmVzdCEgTWF5YmUgcmVzZXQ/ICovCiAJCWdv dG8gb3V0X3VubG9jazsKIAotCWludGVsX3RpbWVsaW5lX2VudGVyKHJxLT50aW1lbGluZSk7CisJ aW50ZWxfdGltZWxpbmVfZW50ZXIoaTkxNV9yZXF1ZXN0X3RpbWVsaW5lKHJxKSk7CiAKIAkvKiBD aGVjayBhZ2FpbiBvbiB0aGUgbmV4dCByZXRpcmVtZW50LiAqLwogCWVuZ2luZS0+d2FrZXJlZl9z ZXJpYWwgPSBlbmdpbmUtPnNlcmlhbCArIDE7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9ndC9pbnRlbF9lbmdpbmVfcG9vbC5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50 ZWxfZW5naW5lX3Bvb2wuaAppbmRleCA3ZTIxMjNiMzM1OTQuLjFiZDg5Y2FkYzNiNyAxMDA2NDQK LS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfZW5naW5lX3Bvb2wuaAorKysgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9lbmdpbmVfcG9vbC5oCkBAIC0xOCw3ICsxOCw3 IEBAIHN0YXRpYyBpbmxpbmUgaW50CiBpbnRlbF9lbmdpbmVfcG9vbF9tYXJrX2FjdGl2ZShzdHJ1 Y3QgaW50ZWxfZW5naW5lX3Bvb2xfbm9kZSAqbm9kZSwKIAkJCSAgICAgIHN0cnVjdCBpOTE1X3Jl cXVlc3QgKnJxKQogewotCXJldHVybiBpOTE1X2FjdGl2ZV9yZWYoJm5vZGUtPmFjdGl2ZSwgcnEt PnRpbWVsaW5lLCBycSk7CisJcmV0dXJuIGk5MTVfYWN0aXZlX2FkZF9yZXF1ZXN0KCZub2RlLT5h Y3RpdmUsIHJxKTsKIH0KIAogc3RhdGljIGlubGluZSB2b2lkCmRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9scmMuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2lu dGVsX2xyYy5jCmluZGV4IGE5OTE2NmEyZDJlYi4uYWMyMTU4N2I3NWY2IDEwMDY0NAotLS0gYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9scmMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9ndC9pbnRlbF9scmMuYwpAQCAtMTgyNSw3ICsxODI1LDcgQEAgc3RhdGljIGludCBnZW44 X2VtaXRfaW5pdF9icmVhZGNydW1iKHN0cnVjdCBpOTE1X3JlcXVlc3QgKnJxKQogewogCXUzMiAq Y3M7CiAKLQlHRU1fQlVHX09OKCFycS0+dGltZWxpbmUtPmhhc19pbml0aWFsX2JyZWFkY3J1bWIp OworCUdFTV9CVUdfT04oIWk5MTVfcmVxdWVzdF90aW1lbGluZShycSktPmhhc19pbml0aWFsX2Jy ZWFkY3J1bWIpOwogCiAJY3MgPSBpbnRlbF9yaW5nX2JlZ2luKHJxLCA2KTsKIAlpZiAoSVNfRVJS KGNzKSkKQEAgLTE4NDEsNyArMTg0MSw3IEBAIHN0YXRpYyBpbnQgZ2VuOF9lbWl0X2luaXRfYnJl YWRjcnVtYihzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpycSkKIAkqY3MrKyA9IE1JX05PT1A7CiAKIAkq Y3MrKyA9IE1JX1NUT1JFX0RXT1JEX0lNTV9HRU40IHwgTUlfVVNFX0dHVFQ7Ci0JKmNzKysgPSBy cS0+dGltZWxpbmUtPmh3c3Bfb2Zmc2V0OworCSpjcysrID0gaTkxNV9yZXF1ZXN0X3RpbWVsaW5l KHJxKS0+aHdzcF9vZmZzZXQ7CiAJKmNzKysgPSAwOwogCSpjcysrID0gcnEtPmZlbmNlLnNlcW5v IC0gMTsKIApAQCAtMjMyNCw3ICsyMzI0LDggQEAgc3RhdGljIHZvaWQgcmVzZXRfY3NiX3BvaW50 ZXJzKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKIAogc3RhdGljIHN0cnVjdCBpOTE1 X3JlcXVlc3QgKmFjdGl2ZV9yZXF1ZXN0KHN0cnVjdCBpOTE1X3JlcXVlc3QgKnJxKQogewotCWNv bnN0IHN0cnVjdCBsaXN0X2hlYWQgKiBjb25zdCBsaXN0ID0gJnJxLT50aW1lbGluZS0+cmVxdWVz dHM7CisJY29uc3Qgc3RydWN0IGxpc3RfaGVhZCAqIGNvbnN0IGxpc3QgPQorCQkmaTkxNV9yZXF1 ZXN0X2FjdGl2ZV90aW1lbGluZShycSktPnJlcXVlc3RzOwogCWNvbnN0IHN0cnVjdCBpbnRlbF9j b250ZXh0ICogY29uc3QgY2UgPSBycS0+aHdfY29udGV4dDsKIAlzdHJ1Y3QgaTkxNV9yZXF1ZXN0 ICphY3RpdmUgPSBOVUxMOwogCkBAIC0yODU1LDcgKzI4NTYsNyBAQCBzdGF0aWMgdTMyICpnZW44 X2VtaXRfZmluaV9icmVhZGNydW1iKHN0cnVjdCBpOTE1X3JlcXVlc3QgKnJlcXVlc3QsIHUzMiAq Y3MpCiB7CiAJY3MgPSBnZW44X2VtaXRfZ2d0dF93cml0ZShjcywKIAkJCQkgIHJlcXVlc3QtPmZl bmNlLnNlcW5vLAotCQkJCSAgcmVxdWVzdC0+dGltZWxpbmUtPmh3c3Bfb2Zmc2V0LAorCQkJCSAg aTkxNV9yZXF1ZXN0X2FjdGl2ZV90aW1lbGluZShyZXF1ZXN0KS0+aHdzcF9vZmZzZXQsCiAJCQkJ ICAwKTsKIAogCXJldHVybiBnZW44X2VtaXRfZmluaV9icmVhZGNydW1iX2Zvb3RlcihyZXF1ZXN0 LCBjcyk7CkBAIC0yODcyLDcgKzI4NzMsNyBAQCBzdGF0aWMgdTMyICpnZW44X2VtaXRfZmluaV9i cmVhZGNydW1iX3JjcyhzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpyZXF1ZXN0LCB1MzIgKmNzKQogCS8q IFhYWCBmbHVzaCt3cml0ZStDU19TVEFMTCBhbGwgaW4gb25lIHVwc2V0cyBnZW1fY29uY3VycmVu dF9ibHQ6a2JsICovCiAJY3MgPSBnZW44X2VtaXRfZ2d0dF93cml0ZV9yY3MoY3MsCiAJCQkJICAg ICAgcmVxdWVzdC0+ZmVuY2Uuc2Vxbm8sCi0JCQkJICAgICAgcmVxdWVzdC0+dGltZWxpbmUtPmh3 c3Bfb2Zmc2V0LAorCQkJCSAgICAgIGk5MTVfcmVxdWVzdF9hY3RpdmVfdGltZWxpbmUocmVxdWVz dCktPmh3c3Bfb2Zmc2V0LAogCQkJCSAgICAgIFBJUEVfQ09OVFJPTF9GTFVTSF9FTkFCTEUgfAog CQkJCSAgICAgIFBJUEVfQ09OVFJPTF9DU19TVEFMTCk7CiAKQEAgLTI4ODQsNyArMjg4NSw3IEBA IGdlbjExX2VtaXRfZmluaV9icmVhZGNydW1iX3JjcyhzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpyZXF1 ZXN0LCB1MzIgKmNzKQogewogCWNzID0gZ2VuOF9lbWl0X2dndHRfd3JpdGVfcmNzKGNzLAogCQkJ CSAgICAgIHJlcXVlc3QtPmZlbmNlLnNlcW5vLAotCQkJCSAgICAgIHJlcXVlc3QtPnRpbWVsaW5l LT5od3NwX29mZnNldCwKKwkJCQkgICAgICBpOTE1X3JlcXVlc3RfYWN0aXZlX3RpbWVsaW5lKHJl cXVlc3QpLT5od3NwX29mZnNldCwKIAkJCQkgICAgICBQSVBFX0NPTlRST0xfQ1NfU1RBTEwgfAog CQkJCSAgICAgIFBJUEVfQ09OVFJPTF9USUxFX0NBQ0hFX0ZMVVNIIHwKIAkJCQkgICAgICBQSVBF X0NPTlRST0xfUkVOREVSX1RBUkdFVF9DQUNIRV9GTFVTSCB8CkBAIC0yOTQ4LDcgKzI5NDksNyBA QCBzdGF0aWMgdTMyICpnZW4xMl9lbWl0X2ZpbmlfYnJlYWRjcnVtYihzdHJ1Y3QgaTkxNV9yZXF1 ZXN0ICpyZXF1ZXN0LCB1MzIgKmNzKQogewogCWNzID0gZ2VuOF9lbWl0X2dndHRfd3JpdGUoY3Ms CiAJCQkJICByZXF1ZXN0LT5mZW5jZS5zZXFubywKLQkJCQkgIHJlcXVlc3QtPnRpbWVsaW5lLT5o d3NwX29mZnNldCwKKwkJCQkgIGk5MTVfcmVxdWVzdF9hY3RpdmVfdGltZWxpbmUocmVxdWVzdCkt Pmh3c3Bfb2Zmc2V0LAogCQkJCSAgMCk7CiAKIAlyZXR1cm4gZ2VuMTJfZW1pdF9maW5pX2JyZWFk Y3J1bWJfZm9vdGVyKHJlcXVlc3QsIGNzKTsKQEAgLTI5NTksNyArMjk2MCw3IEBAIGdlbjEyX2Vt aXRfZmluaV9icmVhZGNydW1iX3JjcyhzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpyZXF1ZXN0LCB1MzIg KmNzKQogewogCWNzID0gZ2VuOF9lbWl0X2dndHRfd3JpdGVfcmNzKGNzLAogCQkJCSAgICAgIHJl cXVlc3QtPmZlbmNlLnNlcW5vLAotCQkJCSAgICAgIHJlcXVlc3QtPnRpbWVsaW5lLT5od3NwX29m ZnNldCwKKwkJCQkgICAgICBpOTE1X3JlcXVlc3RfYWN0aXZlX3RpbWVsaW5lKHJlcXVlc3QpLT5o d3NwX29mZnNldCwKIAkJCQkgICAgICBQSVBFX0NPTlRST0xfQ1NfU1RBTEwgfAogCQkJCSAgICAg IFBJUEVfQ09OVFJPTF9USUxFX0NBQ0hFX0ZMVVNIIHwKIAkJCQkgICAgICBQSVBFX0NPTlRST0xf UkVOREVSX1RBUkdFVF9DQUNIRV9GTFVTSCB8CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9ndC9pbnRlbF9yaW5nYnVmZmVyLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRl bF9yaW5nYnVmZmVyLmMKaW5kZXggYTI1Yjg0YjEyZWYxLi4wNzQ3YjhjOWY3NjggMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX3JpbmdidWZmZXIuYworKysgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9yaW5nYnVmZmVyLmMKQEAgLTMyMiw3ICszMjIsOCBA QCBzdGF0aWMgdTMyICpnZW42X3Jjc19lbWl0X2JyZWFkY3J1bWIoc3RydWN0IGk5MTVfcmVxdWVz dCAqcnEsIHUzMiAqY3MpCiAJCSBQSVBFX0NPTlRST0xfRENfRkxVU0hfRU5BQkxFIHwKIAkJIFBJ UEVfQ09OVFJPTF9RV19XUklURSB8CiAJCSBQSVBFX0NPTlRST0xfQ1NfU1RBTEwpOwotCSpjcysr ID0gcnEtPnRpbWVsaW5lLT5od3NwX29mZnNldCB8IFBJUEVfQ09OVFJPTF9HTE9CQUxfR1RUOwor CSpjcysrID0gaTkxNV9yZXF1ZXN0X2FjdGl2ZV90aW1lbGluZShycSktPmh3c3Bfb2Zmc2V0IHwK KwkJUElQRV9DT05UUk9MX0dMT0JBTF9HVFQ7CiAJKmNzKysgPSBycS0+ZmVuY2Uuc2Vxbm87CiAK IAkqY3MrKyA9IE1JX1VTRVJfSU5URVJSVVBUOwpAQCAtNDI1LDcgKzQyNiw3IEBAIHN0YXRpYyB1 MzIgKmdlbjdfcmNzX2VtaXRfYnJlYWRjcnVtYihzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpycSwgdTMy ICpjcykKIAkJIFBJUEVfQ09OVFJPTF9RV19XUklURSB8CiAJCSBQSVBFX0NPTlRST0xfR0xPQkFM X0dUVF9JVkIgfAogCQkgUElQRV9DT05UUk9MX0NTX1NUQUxMKTsKLQkqY3MrKyA9IHJxLT50aW1l bGluZS0+aHdzcF9vZmZzZXQ7CisJKmNzKysgPSBpOTE1X3JlcXVlc3RfYWN0aXZlX3RpbWVsaW5l KHJxKS0+aHdzcF9vZmZzZXQ7CiAJKmNzKysgPSBycS0+ZmVuY2Uuc2Vxbm87CiAKIAkqY3MrKyA9 IE1JX1VTRVJfSU5URVJSVVBUOwpAQCAtNDM5LDggKzQ0MCw4IEBAIHN0YXRpYyB1MzIgKmdlbjdf cmNzX2VtaXRfYnJlYWRjcnVtYihzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpycSwgdTMyICpjcykKIAog c3RhdGljIHUzMiAqZ2VuNl94Y3NfZW1pdF9icmVhZGNydW1iKHN0cnVjdCBpOTE1X3JlcXVlc3Qg KnJxLCB1MzIgKmNzKQogewotCUdFTV9CVUdfT04ocnEtPnRpbWVsaW5lLT5od3NwX2dndHQgIT0g cnEtPmVuZ2luZS0+c3RhdHVzX3BhZ2Uudm1hKTsKLQlHRU1fQlVHX09OKG9mZnNldF9pbl9wYWdl KHJxLT50aW1lbGluZS0+aHdzcF9vZmZzZXQpICE9IEk5MTVfR0VNX0hXU19TRVFOT19BRERSKTsK KwlHRU1fQlVHX09OKGk5MTVfcmVxdWVzdF9hY3RpdmVfdGltZWxpbmUocnEpLT5od3NwX2dndHQg IT0gcnEtPmVuZ2luZS0+c3RhdHVzX3BhZ2Uudm1hKTsKKwlHRU1fQlVHX09OKG9mZnNldF9pbl9w YWdlKGk5MTVfcmVxdWVzdF9hY3RpdmVfdGltZWxpbmUocnEpLT5od3NwX29mZnNldCkgIT0gSTkx NV9HRU1fSFdTX1NFUU5PX0FERFIpOwogCiAJKmNzKysgPSBNSV9GTFVTSF9EVyB8IE1JX0ZMVVNI X0RXX09QX1NUT1JFRFcgfCBNSV9GTFVTSF9EV19TVE9SRV9JTkRFWDsKIAkqY3MrKyA9IEk5MTVf R0VNX0hXU19TRVFOT19BRERSIHwgTUlfRkxVU0hfRFdfVVNFX0dUVDsKQEAgLTQ1OSw4ICs0NjAs OCBAQCBzdGF0aWMgdTMyICpnZW43X3hjc19lbWl0X2JyZWFkY3J1bWIoc3RydWN0IGk5MTVfcmVx dWVzdCAqcnEsIHUzMiAqY3MpCiB7CiAJaW50IGk7CiAKLQlHRU1fQlVHX09OKHJxLT50aW1lbGlu ZS0+aHdzcF9nZ3R0ICE9IHJxLT5lbmdpbmUtPnN0YXR1c19wYWdlLnZtYSk7Ci0JR0VNX0JVR19P TihvZmZzZXRfaW5fcGFnZShycS0+dGltZWxpbmUtPmh3c3Bfb2Zmc2V0KSAhPSBJOTE1X0dFTV9I V1NfU0VRTk9fQUREUik7CisJR0VNX0JVR19PTihpOTE1X3JlcXVlc3RfYWN0aXZlX3RpbWVsaW5l KHJxKS0+aHdzcF9nZ3R0ICE9IHJxLT5lbmdpbmUtPnN0YXR1c19wYWdlLnZtYSk7CisJR0VNX0JV R19PTihvZmZzZXRfaW5fcGFnZShpOTE1X3JlcXVlc3RfYWN0aXZlX3RpbWVsaW5lKHJxKS0+aHdz cF9vZmZzZXQpICE9IEk5MTVfR0VNX0hXU19TRVFOT19BRERSKTsKIAogCSpjcysrID0gTUlfRkxV U0hfRFcgfCBNSV9GTFVTSF9EV19PUF9TVE9SRURXIHwgTUlfRkxVU0hfRFdfU1RPUkVfSU5ERVg7 CiAJKmNzKysgPSBJOTE1X0dFTV9IV1NfU0VRTk9fQUREUiB8IE1JX0ZMVVNIX0RXX1VTRV9HVFQ7 CkBAIC05MzgsOCArOTM5LDggQEAgc3RhdGljIHZvaWQgaTl4eF9zdWJtaXRfcmVxdWVzdChzdHJ1 Y3QgaTkxNV9yZXF1ZXN0ICpyZXF1ZXN0KQogCiBzdGF0aWMgdTMyICppOXh4X2VtaXRfYnJlYWRj cnVtYihzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpycSwgdTMyICpjcykKIHsKLQlHRU1fQlVHX09OKHJx LT50aW1lbGluZS0+aHdzcF9nZ3R0ICE9IHJxLT5lbmdpbmUtPnN0YXR1c19wYWdlLnZtYSk7Ci0J R0VNX0JVR19PTihvZmZzZXRfaW5fcGFnZShycS0+dGltZWxpbmUtPmh3c3Bfb2Zmc2V0KSAhPSBJ OTE1X0dFTV9IV1NfU0VRTk9fQUREUik7CisJR0VNX0JVR19PTihpOTE1X3JlcXVlc3RfYWN0aXZl X3RpbWVsaW5lKHJxKS0+aHdzcF9nZ3R0ICE9IHJxLT5lbmdpbmUtPnN0YXR1c19wYWdlLnZtYSk7 CisJR0VNX0JVR19PTihvZmZzZXRfaW5fcGFnZShpOTE1X3JlcXVlc3RfYWN0aXZlX3RpbWVsaW5l KHJxKS0+aHdzcF9vZmZzZXQpICE9IEk5MTVfR0VNX0hXU19TRVFOT19BRERSKTsKIAogCSpjcysr ID0gTUlfRkxVU0g7CiAKQEAgLTk2MSw4ICs5NjIsOCBAQCBzdGF0aWMgdTMyICpnZW41X2VtaXRf YnJlYWRjcnVtYihzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpycSwgdTMyICpjcykKIHsKIAlpbnQgaTsK IAotCUdFTV9CVUdfT04ocnEtPnRpbWVsaW5lLT5od3NwX2dndHQgIT0gcnEtPmVuZ2luZS0+c3Rh dHVzX3BhZ2Uudm1hKTsKLQlHRU1fQlVHX09OKG9mZnNldF9pbl9wYWdlKHJxLT50aW1lbGluZS0+ aHdzcF9vZmZzZXQpICE9IEk5MTVfR0VNX0hXU19TRVFOT19BRERSKTsKKwlHRU1fQlVHX09OKGk5 MTVfcmVxdWVzdF9hY3RpdmVfdGltZWxpbmUocnEpLT5od3NwX2dndHQgIT0gcnEtPmVuZ2luZS0+ c3RhdHVzX3BhZ2Uudm1hKTsKKwlHRU1fQlVHX09OKG9mZnNldF9pbl9wYWdlKGk5MTVfcmVxdWVz dF9hY3RpdmVfdGltZWxpbmUocnEpLT5od3NwX29mZnNldCkgIT0gSTkxNV9HRU1fSFdTX1NFUU5P X0FERFIpOwogCiAJKmNzKysgPSBNSV9GTFVTSDsKIApAQCAtMTgxNSw3ICsxODE2LDcgQEAgc3Rh dGljIGludCByaW5nX3JlcXVlc3RfYWxsb2Moc3RydWN0IGk5MTVfcmVxdWVzdCAqcmVxdWVzdCkK IAlpbnQgcmV0OwogCiAJR0VNX0JVR19PTighaW50ZWxfY29udGV4dF9pc19waW5uZWQocmVxdWVz dC0+aHdfY29udGV4dCkpOwotCUdFTV9CVUdfT04ocmVxdWVzdC0+dGltZWxpbmUtPmhhc19pbml0 aWFsX2JyZWFkY3J1bWIpOworCUdFTV9CVUdfT04oaTkxNV9yZXF1ZXN0X3RpbWVsaW5lKHJlcXVl c3QpLT5oYXNfaW5pdGlhbF9icmVhZGNydW1iKTsKIAogCS8qCiAJICogRmx1c2ggZW5vdWdoIHNw YWNlIHRvIHJlZHVjZSB0aGUgbGlrZWxpaG9vZCBvZiB3YWl0aW5nIGFmdGVyCkBAIC0xOTI2LDcg KzE5MjcsOSBAQCB1MzIgKmludGVsX3JpbmdfYmVnaW4oc3RydWN0IGk5MTVfcmVxdWVzdCAqcnEs IHVuc2lnbmVkIGludCBudW1fZHdvcmRzKQogCQkgKi8KIAkJR0VNX0JVR19PTighcnEtPnJlc2Vy dmVkX3NwYWNlKTsKIAotCQlyZXQgPSB3YWl0X2Zvcl9zcGFjZShyaW5nLCBycS0+dGltZWxpbmUs IHRvdGFsX2J5dGVzKTsKKwkJcmV0ID0gd2FpdF9mb3Jfc3BhY2UocmluZywKKwkJCQkgICAgIGk5 MTVfcmVxdWVzdF90aW1lbGluZShycSksCisJCQkJICAgICB0b3RhbF9ieXRlcyk7CiAJCWlmICh1 bmxpa2VseShyZXQpKQogCQkJcmV0dXJuIEVSUl9QVFIocmV0KTsKIAl9CmRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF90aW1lbGluZS5jIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvZ3QvaW50ZWxfdGltZWxpbmUuYwppbmRleCA5Y2IwMWQ5ODI4ZjEuLjExNWEyNGQ0YTIw YSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfdGltZWxpbmUuYwor KysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF90aW1lbGluZS5jCkBAIC00OTMsNyAr NDkzLDcgQEAgaW50IGludGVsX3RpbWVsaW5lX2dldF9zZXFubyhzdHJ1Y3QgaW50ZWxfdGltZWxp bmUgKnRsLAogc3RhdGljIGludCBjYWNoZWxpbmVfcmVmKHN0cnVjdCBpbnRlbF90aW1lbGluZV9j YWNoZWxpbmUgKmNsLAogCQkJIHN0cnVjdCBpOTE1X3JlcXVlc3QgKnJxKQogewotCXJldHVybiBp OTE1X2FjdGl2ZV9yZWYoJmNsLT5hY3RpdmUsIHJxLT50aW1lbGluZSwgcnEpOworCXJldHVybiBp OTE1X2FjdGl2ZV9hZGRfcmVxdWVzdCgmY2wtPmFjdGl2ZSwgcnEpOwogfQogCiBpbnQgaW50ZWxf dGltZWxpbmVfcmVhZF9od3NwKHN0cnVjdCBpOTE1X3JlcXVlc3QgKmZyb20sCkBAIC01MDQsNyAr NTA0LDcgQEAgaW50IGludGVsX3RpbWVsaW5lX3JlYWRfaHdzcChzdHJ1Y3QgaTkxNV9yZXF1ZXN0 ICpmcm9tLAogCXN0cnVjdCBpbnRlbF90aW1lbGluZSAqdGwgPSBmcm9tLT50aW1lbGluZTsKIAlp bnQgZXJyOwogCi0JR0VNX0JVR19PTih0by0+dGltZWxpbmUgPT0gdGwpOworCUdFTV9CVUdfT04o cmN1X2FjY2Vzc19wb2ludGVyKHRvLT50aW1lbGluZSkgPT0gdGwpOwogCiAJbXV0ZXhfbG9ja19u ZXN0ZWQoJnRsLT5tdXRleCwgU0lOR0xFX0RFUFRIX05FU1RJTkcpOwogCWVyciA9IGk5MTVfcmVx dWVzdF9jb21wbGV0ZWQoZnJvbSk7CkBAIC01NDEsNyArNTQxLDcgQEAgdm9pZCBfX2ludGVsX3Rp bWVsaW5lX2ZyZWUoc3RydWN0IGtyZWYgKmtyZWYpCiAJCWNvbnRhaW5lcl9vZihrcmVmLCB0eXBl b2YoKnRpbWVsaW5lKSwga3JlZik7CiAKIAlpbnRlbF90aW1lbGluZV9maW5pKHRpbWVsaW5lKTsK LQlrZnJlZSh0aW1lbGluZSk7CisJa2ZyZWVfcmN1KHRpbWVsaW5lLCByY3UpOwogfQogCiBzdGF0 aWMgdm9pZCB0aW1lbGluZXNfZmluaShzdHJ1Y3QgaW50ZWxfZ3QgKmd0KQpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfdGltZWxpbmVfdHlwZXMuaCBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2d0L2ludGVsX3RpbWVsaW5lX3R5cGVzLmgKaW5kZXggMmIxYmFmMmZjYzhl Li5jNjY4YzRjNTBlNzUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVs X3RpbWVsaW5lX3R5cGVzLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfdGlt ZWxpbmVfdHlwZXMuaApAQCAtODAsNiArODAsNyBAQCBzdHJ1Y3QgaW50ZWxfdGltZWxpbmUgewog CXN0cnVjdCBpbnRlbF9ndCAqZ3Q7CiAKIAlzdHJ1Y3Qga3JlZiBrcmVmOworCXN0cnVjdCByY3Vf aGVhZCByY3U7CiB9OwogCiAjZW5kaWYgLyogX19JOTE1X1RJTUVMSU5FX1RZUEVTX0hfXyAqLwpk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Qvc2VsZnRlc3RfY29udGV4dC5jIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Qvc2VsZnRlc3RfY29udGV4dC5jCmluZGV4IDlkMWVhMjZj N2EyZC4uNGNlMWUyNTQzM2QyIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9z ZWxmdGVzdF9jb250ZXh0LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Qvc2VsZnRlc3Rf Y29udGV4dC5jCkBAIC0xNCwyMiArMTQsMjggQEAKIAogc3RhdGljIGludCByZXF1ZXN0X3N5bmMo c3RydWN0IGk5MTVfcmVxdWVzdCAqcnEpCiB7CisJc3RydWN0IGludGVsX3RpbWVsaW5lICp0bCA9 IGk5MTVfcmVxdWVzdF90aW1lbGluZShycSk7CiAJbG9uZyB0aW1lb3V0OwogCWludCBlcnIgPSAw OwogCisJaW50ZWxfdGltZWxpbmVfZ2V0KHRsKTsKIAlpOTE1X3JlcXVlc3RfZ2V0KHJxKTsKIAot CWk5MTVfcmVxdWVzdF9hZGQocnEpOworCS8qIE9wZW5jb2RlIGk5MTVfcmVxdWVzdF9hZGQoKSBz byB3ZSBjYW4ga2VlcCB0aGUgdGltZWxpbmUgbG9ja2VkLiAqLworCV9faTkxNV9yZXF1ZXN0X2Nv bW1pdChycSk7CisJX19pOTE1X3JlcXVlc3RfcXVldWUocnEsIE5VTEwpOworCiAJdGltZW91dCA9 IGk5MTVfcmVxdWVzdF93YWl0KHJxLCAwLCBIWiAvIDEwKTsKLQlpZiAodGltZW91dCA8IDApIHsK KwlpZiAodGltZW91dCA8IDApCiAJCWVyciA9IHRpbWVvdXQ7Ci0JfSBlbHNlIHsKLQkJbXV0ZXhf bG9jaygmcnEtPnRpbWVsaW5lLT5tdXRleCk7CisJZWxzZQogCQlpOTE1X3JlcXVlc3RfcmV0aXJl X3VwdG8ocnEpOwotCQltdXRleF91bmxvY2soJnJxLT50aW1lbGluZS0+bXV0ZXgpOwotCX0KKwor CWxvY2tkZXBfdW5waW5fbG9jaygmdGwtPm11dGV4LCBycS0+Y29va2llKTsKKwltdXRleF91bmxv Y2soJnRsLT5tdXRleCk7CiAKIAlpOTE1X3JlcXVlc3RfcHV0KHJxKTsKKwlpbnRlbF90aW1lbGlu ZV9wdXQodGwpOwogCiAJcmV0dXJuIGVycjsKIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2d0L3NlbGZ0ZXN0X2xyYy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Qvc2VsZnRl c3RfbHJjLmMKaW5kZXggMjZkMDViZDFiZGM4Li45M2E4NzFiZmQ5NWQgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2d0L3NlbGZ0ZXN0X2xyYy5jCisrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2d0L3NlbGZ0ZXN0X2xyYy5jCkBAIC0xMDg5LDcgKzEwODksNyBAQCBzdGF0aWMgaW50 IGxpdmVfc3VwcHJlc3Nfd2FpdF9wcmVlbXB0KHZvaWQgKmFyZykKIAkJCQl9CiAKIAkJCQkvKiBE aXNhYmxlIE5FV0NMSUVOVCBwcm9tb3Rpb24gKi8KLQkJCQlfX2k5MTVfYWN0aXZlX3JlcXVlc3Rf c2V0KCZycVtpXS0+dGltZWxpbmUtPmxhc3RfcmVxdWVzdCwKKwkJCQlfX2k5MTVfYWN0aXZlX3Jl cXVlc3Rfc2V0KCZpOTE1X3JlcXVlc3RfdGltZWxpbmUocnFbaV0pLT5sYXN0X3JlcXVlc3QsCiAJ CQkJCQkJICBkdW1teSk7CiAJCQkJaTkxNV9yZXF1ZXN0X2FkZChycVtpXSk7CiAJCQl9CmRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2FjdGl2ZS5jIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9hY3RpdmUuYwppbmRleCA2YTQ0N2YxZDAxMTAuLmQ1YWFjNmZmODAzYSAx MDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9hY3RpdmUuYworKysgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2FjdGl2ZS5jCkBAIC02OTUsNyArNjk1LDcgQEAgdm9pZCBp OTE1X3JlcXVlc3RfYWRkX2FjdGl2ZV9iYXJyaWVycyhzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpycSkK IAlzdHJ1Y3QgbGxpc3Rfbm9kZSAqbm9kZSwgKm5leHQ7CiAKIAlHRU1fQlVHX09OKGludGVsX2Vu Z2luZV9pc192aXJ0dWFsKGVuZ2luZSkpOwotCUdFTV9CVUdfT04ocnEtPnRpbWVsaW5lICE9IGVu Z2luZS0+a2VybmVsX2NvbnRleHQtPnRpbWVsaW5lKTsKKwlHRU1fQlVHX09OKGk5MTVfcmVxdWVz dF90aW1lbGluZShycSkgIT0gZW5naW5lLT5rZXJuZWxfY29udGV4dC0+dGltZWxpbmUpOwogCiAJ LyoKIAkgKiBBdHRhY2ggdGhlIGxpc3Qgb2YgcHJvdG8tZmVuY2VzIHRvIHRoZSBpbi1mbGlnaHQg cmVxdWVzdCBzdWNoCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2FjdGl2 ZS5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9hY3RpdmUuaAppbmRleCBmOTUwNThmOTkw NTcuLjk0OWM2ODM1MzM1YiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9h Y3RpdmUuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2FjdGl2ZS5oCkBAIC0zNzMs NiArMzczLDEyIEBAIGludCBpOTE1X2FjdGl2ZV9yZWYoc3RydWN0IGk5MTVfYWN0aXZlICpyZWYs CiAJCSAgICBzdHJ1Y3QgaW50ZWxfdGltZWxpbmUgKnRsLAogCQkgICAgc3RydWN0IGk5MTVfcmVx dWVzdCAqcnEpOwogCitzdGF0aWMgaW5saW5lIGludAoraTkxNV9hY3RpdmVfYWRkX3JlcXVlc3Qo c3RydWN0IGk5MTVfYWN0aXZlICpyZWYsIHN0cnVjdCBpOTE1X3JlcXVlc3QgKnJxKQoreworCXJl dHVybiBpOTE1X2FjdGl2ZV9yZWYocmVmLCBpOTE1X3JlcXVlc3RfdGltZWxpbmUocnEpLCBycSk7 Cit9CisKIGludCBpOTE1X2FjdGl2ZV93YWl0KHN0cnVjdCBpOTE1X2FjdGl2ZSAqcmVmKTsKIAog aW50IGk5MTVfcmVxdWVzdF9hd2FpdF9hY3RpdmUoc3RydWN0IGk5MTVfcmVxdWVzdCAqcnEsCmRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlcXVlc3QuYyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfcmVxdWVzdC5jCmluZGV4IDYwNmFjZGU0N2ZhMC4uZmI2ZjIxYzQx OTM0IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlcXVlc3QuYworKysg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlcXVlc3QuYwpAQCAtMjIwLDcgKzIyMCw2IEBA IHN0YXRpYyBib29sIGk5MTVfcmVxdWVzdF9yZXRpcmUoc3RydWN0IGk5MTVfcmVxdWVzdCAqcnEp CiB7CiAJc3RydWN0IGk5MTVfYWN0aXZlX3JlcXVlc3QgKmFjdGl2ZSwgKm5leHQ7CiAKLQlsb2Nr ZGVwX2Fzc2VydF9oZWxkKCZycS0+dGltZWxpbmUtPm11dGV4KTsKIAlpZiAoIWk5MTVfcmVxdWVz dF9jb21wbGV0ZWQocnEpKQogCQlyZXR1cm4gZmFsc2U7CiAKQEAgLTI0MSw3ICsyNDAsOCBAQCBz dGF0aWMgYm9vbCBpOTE1X3JlcXVlc3RfcmV0aXJlKHN0cnVjdCBpOTE1X3JlcXVlc3QgKnJxKQog CSAqIE5vdGUgdGhpcyByZXF1aXJlcyB0aGF0IHdlIGFyZSBhbHdheXMgY2FsbGVkIGluIHJlcXVl c3QKIAkgKiBjb21wbGV0aW9uIG9yZGVyLgogCSAqLwotCUdFTV9CVUdfT04oIWxpc3RfaXNfZmly c3QoJnJxLT5saW5rLCAmcnEtPnRpbWVsaW5lLT5yZXF1ZXN0cykpOworCUdFTV9CVUdfT04oIWxp c3RfaXNfZmlyc3QoJnJxLT5saW5rLAorCQkJCSAgJmk5MTVfcmVxdWVzdF90aW1lbGluZShycSkt PnJlcXVlc3RzKSk7CiAJcnEtPnJpbmctPmhlYWQgPSBycS0+cG9zdGZpeDsKIAogCS8qCkBAIC0z MTcsNyArMzE3LDcgQEAgc3RhdGljIGJvb2wgaTkxNV9yZXF1ZXN0X3JldGlyZShzdHJ1Y3QgaTkx NV9yZXF1ZXN0ICpycSkKIAogdm9pZCBpOTE1X3JlcXVlc3RfcmV0aXJlX3VwdG8oc3RydWN0IGk5 MTVfcmVxdWVzdCAqcnEpCiB7Ci0Jc3RydWN0IGludGVsX3RpbWVsaW5lICogY29uc3QgdGwgPSBy cS0+dGltZWxpbmU7CisJc3RydWN0IGludGVsX3RpbWVsaW5lICogY29uc3QgdGwgPSBpOTE1X3Jl cXVlc3RfdGltZWxpbmUocnEpOwogCXN0cnVjdCBpOTE1X3JlcXVlc3QgKnRtcDsKIAogCUdFTV9U UkFDRSgiJXMgZmVuY2UgJWxseDolbGxkLCBjdXJyZW50ICVkXG4iLApAQCAtMzI1LDcgKzMyNSw2 IEBAIHZvaWQgaTkxNV9yZXF1ZXN0X3JldGlyZV91cHRvKHN0cnVjdCBpOTE1X3JlcXVlc3QgKnJx KQogCQkgIHJxLT5mZW5jZS5jb250ZXh0LCBycS0+ZmVuY2Uuc2Vxbm8sCiAJCSAgaHdzcF9zZXFu byhycSkpOwogCi0JbG9ja2RlcF9hc3NlcnRfaGVsZCgmdGwtPm11dGV4KTsKIAlHRU1fQlVHX09O KCFpOTE1X3JlcXVlc3RfY29tcGxldGVkKHJxKSk7CiAKIAlkbyB7CkBAIC02NjEsOSArNjYwLDEx IEBAIF9faTkxNV9yZXF1ZXN0X2NyZWF0ZShzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY2UsIGdmcF90 IGdmcCkKIAlycS0+Z2VtX2NvbnRleHQgPSBjZS0+Z2VtX2NvbnRleHQ7CiAJcnEtPmVuZ2luZSA9 IGNlLT5lbmdpbmU7CiAJcnEtPnJpbmcgPSBjZS0+cmluZzsKLQlycS0+dGltZWxpbmUgPSB0bDsK KworCXJjdV9hc3NpZ25fcG9pbnRlcihycS0+dGltZWxpbmUsIHRsKTsKIAlycS0+aHdzcF9zZXFu byA9IHRsLT5od3NwX3NlcW5vOwogCXJxLT5od3NwX2NhY2hlbGluZSA9IHRsLT5od3NwX2NhY2hl bGluZTsKKwogCXJxLT5yY3VzdGF0ZSA9IGdldF9zdGF0ZV9zeW5jaHJvbml6ZV9yY3UoKTsgLyog YWN0cyBhcyBzbXBfbWIoKSAqLwogCiAJc3Bpbl9sb2NrX2luaXQoJnJxLT5sb2NrKTsKQEAgLTc3 MSw3ICs3NzIsOCBAQCBpOTE1X3JlcXVlc3RfYXdhaXRfc3RhcnQoc3RydWN0IGk5MTVfcmVxdWVz dCAqcnEsIHN0cnVjdCBpOTE1X3JlcXVlc3QgKnNpZ25hbCkKIAkJcmV0dXJuIDA7CiAKIAlzaWdu YWwgPSBsaXN0X3ByZXZfZW50cnkoc2lnbmFsLCBsaW5rKTsKLQlpZiAoaW50ZWxfdGltZWxpbmVf c3luY19pc19sYXRlcihycS0+dGltZWxpbmUsICZzaWduYWwtPmZlbmNlKSkKKwlpZiAoaW50ZWxf dGltZWxpbmVfc3luY19pc19sYXRlcihpOTE1X3JlcXVlc3RfdGltZWxpbmUocnEpLAorCQkJCQkg JnNpZ25hbC0+ZmVuY2UpKQogCQlyZXR1cm4gMDsKIAogCXJldHVybiBpOTE1X3N3X2ZlbmNlX2F3 YWl0X2RtYV9mZW5jZSgmcnEtPnN1Ym1pdCwKQEAgLTk0Nyw3ICs5NDksOCBAQCBpOTE1X3JlcXVl c3RfYXdhaXRfZG1hX2ZlbmNlKHN0cnVjdCBpOTE1X3JlcXVlc3QgKnJxLCBzdHJ1Y3QgZG1hX2Zl bmNlICpmZW5jZSkKIAogCQkvKiBTcXVhc2ggcmVwZWF0ZWQgd2FpdHMgdG8gdGhlIHNhbWUgdGlt ZWxpbmVzICovCiAJCWlmIChmZW5jZS0+Y29udGV4dCAmJgotCQkgICAgaW50ZWxfdGltZWxpbmVf c3luY19pc19sYXRlcihycS0+dGltZWxpbmUsIGZlbmNlKSkKKwkJICAgIGludGVsX3RpbWVsaW5l X3N5bmNfaXNfbGF0ZXIoaTkxNV9yZXF1ZXN0X3RpbWVsaW5lKHJxKSwKKwkJCQkJCSBmZW5jZSkp CiAJCQljb250aW51ZTsKIAogCQlpZiAoZG1hX2ZlbmNlX2lzX2k5MTUoZmVuY2UpKQpAQCAtOTYx LDcgKzk2NCw4IEBAIGk5MTVfcmVxdWVzdF9hd2FpdF9kbWFfZmVuY2Uoc3RydWN0IGk5MTVfcmVx dWVzdCAqcnEsIHN0cnVjdCBkbWFfZmVuY2UgKmZlbmNlKQogCiAJCS8qIFJlY29yZCB0aGUgbGF0 ZXN0IGZlbmNlIHVzZWQgYWdhaW5zdCBlYWNoIHRpbWVsaW5lICovCiAJCWlmIChmZW5jZS0+Y29u dGV4dCkKLQkJCWludGVsX3RpbWVsaW5lX3N5bmNfc2V0KHJxLT50aW1lbGluZSwgZmVuY2UpOwor CQkJaW50ZWxfdGltZWxpbmVfc3luY19zZXQoaTkxNV9yZXF1ZXN0X3RpbWVsaW5lKHJxKSwKKwkJ CQkJCWZlbmNlKTsKIAl9IHdoaWxlICgtLW5jaGlsZCk7CiAKIAlyZXR1cm4gMDsKQEAgLTExMDMs NyArMTEwNyw3IEBAIHZvaWQgaTkxNV9yZXF1ZXN0X3NraXAoc3RydWN0IGk5MTVfcmVxdWVzdCAq cnEsIGludCBlcnJvcikKIHN0YXRpYyBzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICoKIF9faTkxNV9yZXF1 ZXN0X2FkZF90b190aW1lbGluZShzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpycSkKIHsKLQlzdHJ1Y3Qg aW50ZWxfdGltZWxpbmUgKnRpbWVsaW5lID0gcnEtPnRpbWVsaW5lOworCXN0cnVjdCBpbnRlbF90 aW1lbGluZSAqdGltZWxpbmUgPSBpOTE1X3JlcXVlc3RfdGltZWxpbmUocnEpOwogCXN0cnVjdCBp OTE1X3JlcXVlc3QgKnByZXY7CiAKIAkvKgpAQCAtMTIxNiw3ICsxMjIwLDcgQEAgdm9pZCBfX2k5 MTVfcmVxdWVzdF9xdWV1ZShzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpycSwKIHZvaWQgaTkxNV9yZXF1 ZXN0X2FkZChzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpycSkKIHsKIAlzdHJ1Y3QgaTkxNV9zY2hlZF9h dHRyIGF0dHIgPSBycS0+Z2VtX2NvbnRleHQtPnNjaGVkOwotCXN0cnVjdCBpbnRlbF90aW1lbGlu ZSAqIGNvbnN0IHRsID0gcnEtPnRpbWVsaW5lOworCXN0cnVjdCBpbnRlbF90aW1lbGluZSAqIGNv bnN0IHRsID0gaTkxNV9yZXF1ZXN0X3RpbWVsaW5lKHJxKTsKIAlzdHJ1Y3QgaTkxNV9yZXF1ZXN0 ICpwcmV2OwogCiAJbG9ja2RlcF9hc3NlcnRfaGVsZCgmdGwtPm11dGV4KTsKQEAgLTEyNzEsNyAr MTI3NSw5IEBAIHZvaWQgaTkxNV9yZXF1ZXN0X2FkZChzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpycSkK IAkgKiB3b3JrIG9uIGJlaGFsZiBvZiBvdGhlcnMgLS0gYnV0IGluc3RlYWQgd2Ugc2hvdWxkIGJl bmVmaXQgZnJvbQogCSAqIGltcHJvdmVkIHJlc291cmNlIG1hbmFnZW1lbnQuIChXZWxsLCB0aGF0 J3MgdGhlIHRoZW9yeSBhdCBsZWFzdC4pCiAJICovCi0JaWYgKHByZXYgJiYgaTkxNV9yZXF1ZXN0 X2NvbXBsZXRlZChwcmV2KSAmJiBwcmV2LT50aW1lbGluZSA9PSB0bCkKKwlpZiAocHJldiAmJgor CSAgICBpOTE1X3JlcXVlc3RfY29tcGxldGVkKHByZXYpICYmCisJICAgIHJjdV9hY2Nlc3NfcG9p bnRlcihwcmV2LT50aW1lbGluZSkgPT0gdGwpCiAJCWk5MTVfcmVxdWVzdF9yZXRpcmVfdXB0byhw cmV2KTsKIAogCW11dGV4X3VubG9jaygmdGwtPm11dGV4KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfcmVxdWVzdC5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9y ZXF1ZXN0LmgKaW5kZXggOGFjNmUxMjI2YTU2Li5iMThmNDk1MjhkZWQgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVxdWVzdC5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfcmVxdWVzdC5oCkBAIC0xMTMsNyArMTEzLDcgQEAgc3RydWN0IGk5MTVfcmVxdWVz dCB7CiAJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lOwogCXN0cnVjdCBpbnRlbF9jb250 ZXh0ICpod19jb250ZXh0OwogCXN0cnVjdCBpbnRlbF9yaW5nICpyaW5nOwotCXN0cnVjdCBpbnRl bF90aW1lbGluZSAqdGltZWxpbmU7CisJc3RydWN0IGludGVsX3RpbWVsaW5lIF9fcmN1ICp0aW1l bGluZTsKIAlzdHJ1Y3QgbGlzdF9oZWFkIHNpZ25hbF9saW5rOwogCiAJLyoKQEAgLTQ0Miw2ICs0 NDIsMjYgQEAgc3RhdGljIGlubGluZSBib29sIGk5MTVfcmVxdWVzdF9oYXNfbm9wcmVlbXB0KGNv bnN0IHN0cnVjdCBpOTE1X3JlcXVlc3QgKnJxKQogCXJldHVybiB1bmxpa2VseShycS0+ZmxhZ3Mg JiBJOTE1X1JFUVVFU1RfTk9QUkVFTVBUKTsKIH0KIAorc3RhdGljIGlubGluZSBzdHJ1Y3QgaW50 ZWxfdGltZWxpbmUgKgoraTkxNV9yZXF1ZXN0X3RpbWVsaW5lKHN0cnVjdCBpOTE1X3JlcXVlc3Qg KnJxKQoreworCS8qIFZhbGlkIG9ubHkgd2hpbGUgdGhlIHJlcXVlc3QgaXMgYmVpbmcgY29uc3Ry dWN0ZWQgKG9yIHJldGlyZWQpLiAqLworCXJldHVybiByY3VfZGVyZWZlcmVuY2VfcHJvdGVjdGVk KHJxLT50aW1lbGluZSwKKwkJCQkJIGxvY2tkZXBfaXNfaGVsZCgmcmN1X2FjY2Vzc19wb2ludGVy KHJxLT50aW1lbGluZSktPm11dGV4KSk7Cit9CisKK3N0YXRpYyBpbmxpbmUgc3RydWN0IGludGVs X3RpbWVsaW5lICoKK2k5MTVfcmVxdWVzdF9hY3RpdmVfdGltZWxpbmUoc3RydWN0IGk5MTVfcmVx dWVzdCAqcnEpCit7CisJLyoKKwkgKiBXaGVuIGluIHVzZSBkdXJpbmcgc3VibWlzc2lvbiwgd2Ug YXJlIHByb3RlY3RlZCBieSBhIGd1YXJhbnRlZSB0aGF0CisJICogdGhlIGNvbnRleHQvdGltZWxp bmUgaXMgcGlubmVkIGFuZCBtdXN0IHJlbWFpbiBwaW5uZWQgdW50aWwgYWZ0ZXIKKwkgKiB0aGlz IHN1Ym1pc3Npb24uCisJICovCisJcmV0dXJuIHJjdV9kZXJlZmVyZW5jZV9wcm90ZWN0ZWQocnEt PnRpbWVsaW5lLAorCQkJCQkgbG9ja2RlcF9pc19oZWxkKCZycS0+ZW5naW5lLT5hY3RpdmUubG9j aykpOworfQorCiBib29sIGk5MTVfcmV0aXJlX3JlcXVlc3RzKHN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICppOTE1KTsKIAogI2VuZGlmIC8qIEk5MTVfUkVRVUVTVF9IICovCmRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3ZtYS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV92bWEuYwppbmRleCA0MTEwNDdkNmE5MDkuLjlkNWIwZjg3YzIxMCAxMDA2NDQKLS0tIGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV92bWEuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X3ZtYS5jCkBAIC05MDAsMTUgKzkwMCwxMyBAQCBpbnQgaTkxNV92bWFfbW92ZV90b19hY3Rp dmUoc3RydWN0IGk5MTVfdm1hICp2bWEsCiAJICogYWRkIHRoZSBhY3RpdmUgcmVmZXJlbmNlIGZp cnN0IGFuZCBxdWV1ZSBmb3IgaXQgdG8gYmUgZHJvcHBlZAogCSAqICpsYXN0Ki4KIAkgKi8KLQll cnIgPSBpOTE1X2FjdGl2ZV9yZWYoJnZtYS0+YWN0aXZlLCBycS0+dGltZWxpbmUsIHJxKTsKKwll cnIgPSBpOTE1X2FjdGl2ZV9hZGRfcmVxdWVzdCgmdm1hLT5hY3RpdmUsIHJxKTsKIAlpZiAodW5s aWtlbHkoZXJyKSkKIAkJcmV0dXJuIGVycjsKIAogCWlmIChmbGFncyAmIEVYRUNfT0JKRUNUX1dS SVRFKSB7CiAJCWlmIChpbnRlbF9mcm9udGJ1ZmZlcl9pbnZhbGlkYXRlKG9iai0+ZnJvbnRidWZm ZXIsIE9SSUdJTl9DUykpCi0JCQlpOTE1X2FjdGl2ZV9yZWYoJm9iai0+ZnJvbnRidWZmZXItPndy aXRlLAotCQkJCQlycS0+dGltZWxpbmUsCi0JCQkJCXJxKTsKKwkJCWk5MTVfYWN0aXZlX2FkZF9y ZXF1ZXN0KCZvYmotPmZyb250YnVmZmVyLT53cml0ZSwgcnEpOwogCiAJCWRtYV9yZXN2X2FkZF9l eGNsX2ZlbmNlKHZtYS0+cmVzdiwgJnJxLT5mZW5jZSk7CiAJCW9iai0+d3JpdGVfZG9tYWluID0g STkxNV9HRU1fRE9NQUlOX1JFTkRFUjsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L3NlbGZ0ZXN0cy9pOTE1X2FjdGl2ZS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3Rz L2k5MTVfYWN0aXZlLmMKaW5kZXggNzdkODQ0YWM4YjcxLi5hZmVjZmEwODFmZjQgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9pOTE1X2FjdGl2ZS5jCisrKyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9pOTE1X2FjdGl2ZS5jCkBAIC0xMTAsNyArMTEw LDcgQEAgX19saXZlX2FjdGl2ZV9zZXR1cChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkK IAkJCQkJCSAgICAgICBzdWJtaXQsCiAJCQkJCQkgICAgICAgR0ZQX0tFUk5FTCk7CiAJCWlmIChl cnIgPj0gMCkKLQkJCWVyciA9IGk5MTVfYWN0aXZlX3JlZigmYWN0aXZlLT5iYXNlLCBycS0+dGlt ZWxpbmUsIHJxKTsKKwkJCWVyciA9IGk5MTVfYWN0aXZlX2FkZF9yZXF1ZXN0KCZhY3RpdmUtPmJh c2UsIHJxKTsKIAkJaTkxNV9yZXF1ZXN0X2FkZChycSk7CiAJCWlmIChlcnIpIHsKIAkJCXByX2Vy cigiRmFpbGVkIHRvIHRyYWNrIGFjdGl2ZSByZWYhXG4iKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9pZ3Rfc3Bpbm5lci5jIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvc2VsZnRlc3RzL2lndF9zcGlubmVyLmMKaW5kZXggMTFmMDRhZDQ4ZTY4Li5lZTg0NTBiODcx ZGEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9pZ3Rfc3Bpbm5l ci5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9pZ3Rfc3Bpbm5lci5jCkBA IC0xNDcsNyArMTQ3LDcgQEAgaWd0X3NwaW5uZXJfY3JlYXRlX3JlcXVlc3Qoc3RydWN0IGlndF9z cGlubmVyICpzcGluLAogCWludGVsX2d0X2NoaXBzZXRfZmx1c2goZW5naW5lLT5ndCk7CiAKIAlp ZiAoZW5naW5lLT5lbWl0X2luaXRfYnJlYWRjcnVtYiAmJgotCSAgICBycS0+dGltZWxpbmUtPmhh c19pbml0aWFsX2JyZWFkY3J1bWIpIHsKKwkgICAgaTkxNV9yZXF1ZXN0X3RpbWVsaW5lKHJxKS0+ aGFzX2luaXRpYWxfYnJlYWRjcnVtYikgewogCQllcnIgPSBlbmdpbmUtPmVtaXRfaW5pdF9icmVh ZGNydW1iKHJxKTsKIAkJaWYgKGVycikKIAkJCWdvdG8gY2FuY2VsX3JxOwotLSAKMi4yMy4wCgpf X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZngg bWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0 cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZng=