From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH 04/33] drm/i915: Use RCU to annotate and enforce protection for breadcrumb's bh Date: Mon, 8 Aug 2016 11:33:56 +0200 Message-ID: <20160808093356.GZ6232@phenom.ffwll.local> References: <1470581141-14432-1-git-send-email-chris@chris-wilson.co.uk> <1470581141-14432-5-git-send-email-chris@chris-wilson.co.uk> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wm0-x241.google.com (mail-wm0-x241.google.com [IPv6:2a00:1450:400c:c09::241]) by gabe.freedesktop.org (Postfix) with ESMTPS id 1130B6E386 for ; Mon, 8 Aug 2016 09:34:01 +0000 (UTC) Received: by mail-wm0-x241.google.com with SMTP id x83so14250178wma.3 for ; Mon, 08 Aug 2016 02:34:00 -0700 (PDT) Content-Disposition: inline In-Reply-To: <1470581141-14432-5-git-send-email-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: Chris Wilson Cc: Daniel Vetter , intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gU3VuLCBBdWcgMDcsIDIwMTYgYXQgMDM6NDU6MTJQTSArMDEwMCwgQ2hyaXMgV2lsc29uIHdy b3RlOgo+IFRoZSBib3R0b20taGFsZiB3ZSB1c2UgZm9yIHByb2Nlc3NpbmcgdGhlIGJyZWFkY3J1 bWIgaW50ZXJydXB0IGlzIGEKPiB0YXNrLCB3aGljaCBpcyBhbiBSQ1UgcHJvdGVjdGVkIHN0cnVj dC4gV2hlbiBhY2Nlc3NpbmcgdGhpcyBzdHJ1Y3QsIHdlCj4gbmVlZCB0byBiZSBob2xkaW5nIHRo ZSBSQ1UgcmVhZCBsb2NrIHRvIHByZXZlbnQgaXQgZGlzYXBwZWFyaW5nIGJlbmVhdGgKPiB1cy4g V2UgY2FuIHVzZSB0aGUgUkNVIGFubm90YXRpb24gdG8gbWFyayBvdXIgaXJxX3NlcW5vX2JoIHBv aW50ZXIgYXMKPiBiZWluZyB1bmRlciBSQ1UgZ3VhcmQgYW5kIHRoZW4gdXNlIHRoZSBSQ1UgYWNj ZXNzb3JzIHRvIGJvdGggcHJvdmlkZQo+IGNvcnJlY3Qgb3JkZXJpbmcgb2YgYWNjZXNzIHRocm91 Z2ggdGhlIHBvaW50ZXIuCj4gCj4gTW9zdCBub3RhYmx5LCB0aGlzIGZpeGVzIHRoZSBhY2Nlc3Mg ZnJvbSBoYXJkIGlycSBjb250ZXh0IHRvIHVzZSB0aGUgUkNVCj4gcmVhZCBsb2NrLCB3aGljaCBi b3RoIERhbmllbCBhbmQgVHZydGtvIGNvbXBsYWluZWQgYWJvdXQuCj4gCj4gU2lnbmVkLW9mZi1i eTogQ2hyaXMgV2lsc29uIDxjaHJpc0BjaHJpcy13aWxzb24uY28udWs+Cj4gQ2M6IERhbmllbCBW ZXR0ZXIgPGRhbmllbC52ZXR0ZXJAZmZ3bGwuY2g+Cj4gQ2M6IFR2cnRrbyBVcnN1bGluIDx0dnJ0 a28udXJzdWxpbkBsaW51eC5pbnRlbC5jb20+CgpJJ2xsIGxlYXZlIHNwYXJzZS1jaGVja2luZyB0 aGlzIHRvIDBkYXkgYW5kIHJ1bnRpbWUgbG9ja2RlcCBjaGVja2luZyB0byBDSQo7LSkKCj4gLS0t Cj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggICAgICAgICAgfCAgMiArLQo+ICBk cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9icmVhZGNydW1icy5jIHwgMjIgKysrKysrKysrLS0t LS0tLS0tLS0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmMgIHwg IDIgLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5oICB8IDIxICsr KysrKysrKysrKysrLS0tLS0tLQo+ICA0IGZpbGVzIGNoYW5nZWQsIDI0IGluc2VydGlvbnMoKyks IDIzIGRlbGV0aW9ucygtKQo+IAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+IGluZGV4IGZlZWMw MGY3NjllMS4uM2Q1NDZiNWMyZTRjIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZHJ2LmgKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4gQEAg LTM4NDgsNyArMzg0OCw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBfX2k5MTVfcmVxdWVzdF9pcnFf Y29tcGxldGUoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEpCj4gIAkgKiBpcyB3b2tl bi4KPiAgCSAqLwo+ICAJaWYgKGVuZ2luZS0+aXJxX3NlcW5vX2JhcnJpZXIgJiYKPiAtCSAgICBS RUFEX09OQ0UoZW5naW5lLT5icmVhZGNydW1icy5pcnFfc2Vxbm9fYmgpID09IGN1cnJlbnQgJiYK PiArCSAgICByY3VfYWNjZXNzX3BvaW50ZXIoZW5naW5lLT5icmVhZGNydW1icy5pcnFfc2Vxbm9f YmgpID09IGN1cnJlbnQgJiYKPiAgCSAgICBjbXB4Y2hnX3JlbGF4ZWQoJmVuZ2luZS0+YnJlYWRj cnVtYnMuaXJxX3Bvc3RlZCwgMSwgMCkpIHsKPiAgCQlzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRzazsK PiAgCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2JyZWFkY3J1bWJz LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9icmVhZGNydW1icy5jCj4gaW5kZXggOGVj YjNiNjUzOGZjLi43NTUyYmQwMzk1NjUgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfYnJlYWRjcnVtYnMuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2JyZWFkY3J1bWJzLmMKPiBAQCAtNjAsMTAgKzYwLDggQEAgc3RhdGljIHZvaWQgaW50ZWxfYnJl YWRjcnVtYnNfZmFrZV9pcnEodW5zaWduZWQgbG9uZyBkYXRhKQo+ICAJICogZXZlcnkgamlmZmll IGluIG9yZGVyIHRvIGtpY2sgdGhlIG9sZGVzdCB3YWl0ZXIgdG8gZG8gdGhlCj4gIAkgKiBjb2hl cmVudCBzZXFubyBjaGVjay4KPiAgCSAqLwo+IC0JcmN1X3JlYWRfbG9jaygpOwo+ICAJaWYgKGlu dGVsX2VuZ2luZV93YWtldXAoZW5naW5lKSkKPiAgCQltb2RfdGltZXIoJmVuZ2luZS0+YnJlYWRj cnVtYnMuZmFrZV9pcnEsIGppZmZpZXMgKyAxKTsKPiAtCXJjdV9yZWFkX3VubG9jaygpOwo+ICB9 Cj4gIAo+ICBzdGF0aWMgdm9pZCBpcnFfZW5hYmxlKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVu Z2luZSkKPiBAQCAtMjMyLDcgKzIzMCw3IEBAIHN0YXRpYyBib29sIF9faW50ZWxfZW5naW5lX2Fk ZF93YWl0KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwKPiAgCX0KPiAgCXJiX2xpbmtf bm9kZSgmd2FpdC0+bm9kZSwgcGFyZW50LCBwKTsKPiAgCXJiX2luc2VydF9jb2xvcigmd2FpdC0+ bm9kZSwgJmItPndhaXRlcnMpOwo+IC0JR0VNX0JVR19PTighZmlyc3QgJiYgIWItPmlycV9zZXFu b19iaCk7Cj4gKwlHRU1fQlVHX09OKCFmaXJzdCAmJiAhcmN1X2FjY2Vzc19wb2ludGVyKGItPmly cV9zZXFub19iaCkpOwoKTml0OiByZWFkaW5nIHRocm91Z2ggcmN1IGRvY3MgSSB0aGluayB0aGUg c3VnZ2VzdGVkIGFjY2Vzc29yIGhlcmUgaXMKcmN1X2RlcmVmZXJlbmNlX3Byb3RlY3RlZCBmb3Ig d3JpdGUtc2lkZSBhY2Nlc3MuIFRoYXQgb25lIGFsbG93cyB0aGUKY29tcGlsZXIgZnVsbCBmcmVl ZG9tIGZvciByZW9yZGVyaW5nLiBvdG9oIGl0J3MgYSBiaXQgbW9yZSBub2lzZS15IGFuZCBtZWgK YWJvdXQgb3B0aW9uYWwgZGVidWcgY2hlY2tzIGFueXdheS4gU28gd2l0aCBvciB3aXRob3V0IHRo YXQgY2hhbmdlOgoKUmV2aWV3ZWQtYnk6IERhbmllbCBWZXR0ZXIgPGRhbmllbC52ZXR0ZXJAZmZ3 bGwuY2g+Cgo+ICAKPiAgCWlmIChjb21wbGV0ZWQpIHsKPiAgCQlzdHJ1Y3QgcmJfbm9kZSAqbmV4 dCA9IHJiX25leHQoY29tcGxldGVkKTsKPiBAQCAtMjQyLDcgKzI0MCw3IEBAIHN0YXRpYyBib29s IF9faW50ZWxfZW5naW5lX2FkZF93YWl0KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwK PiAgCQkJR0VNX0JVR19PTihmaXJzdCk7Cj4gIAkJCWItPnRpbWVvdXQgPSB3YWl0X3RpbWVvdXQo KTsKPiAgCQkJYi0+Zmlyc3Rfd2FpdCA9IHRvX3dhaXQobmV4dCk7Cj4gLQkJCXNtcF9zdG9yZV9t YihiLT5pcnFfc2Vxbm9fYmgsIGItPmZpcnN0X3dhaXQtPnRzayk7Cj4gKwkJCXJjdV9hc3NpZ25f cG9pbnRlcihiLT5pcnFfc2Vxbm9fYmgsIGItPmZpcnN0X3dhaXQtPnRzayk7Cj4gIAkJCS8qIEFz IHRoZXJlIGlzIGEgZGVsYXkgYmV0d2VlbiByZWFkaW5nIHRoZSBjdXJyZW50Cj4gIAkJCSAqIHNl cW5vLCBwcm9jZXNzaW5nIHRoZSBjb21wbGV0ZWQgdGFza3MgYW5kIHNlbGVjdGluZwo+ICAJCQkg KiB0aGUgbmV4dCB3YWl0ZXIsIHdlIG1heSBoYXZlIG1pc3NlZCB0aGUgaW50ZXJydXB0Cj4gQEAg LTI2OSw3ICsyNjcsNyBAQCBzdGF0aWMgYm9vbCBfX2ludGVsX2VuZ2luZV9hZGRfd2FpdChzdHJ1 Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUsCj4gIAkJR0VNX0JVR19PTihyYl9maXJzdCgmYi0+ d2FpdGVycykgIT0gJndhaXQtPm5vZGUpOwo+ICAJCWItPnRpbWVvdXQgPSB3YWl0X3RpbWVvdXQo KTsKPiAgCQliLT5maXJzdF93YWl0ID0gd2FpdDsKPiAtCQlzbXBfc3RvcmVfbWIoYi0+aXJxX3Nl cW5vX2JoLCB3YWl0LT50c2spOwo+ICsJCXJjdV9hc3NpZ25fcG9pbnRlcihiLT5pcnFfc2Vxbm9f YmgsIHdhaXQtPnRzayk7Cj4gIAkJLyogQWZ0ZXIgYXNzaWduaW5nIG91cnNlbHZlcyBhcyB0aGUg bmV3IGJvdHRvbS1oYWxmLCB3ZSBtdXN0Cj4gIAkJICogcGVyZm9ybSBhIGN1cnNvcnkgY2hlY2sg dG8gcHJldmVudCBhIG1pc3NlZCBpbnRlcnJ1cHQuCj4gIAkJICogRWl0aGVyIHdlIG1pc3MgdGhl IGludGVycnVwdCB3aGlsc3QgcHJvZ3JhbW1pbmcgdGhlIGhhcmR3YXJlLAo+IEBAIC0yODAsNyAr Mjc4LDcgQEAgc3RhdGljIGJvb2wgX19pbnRlbF9lbmdpbmVfYWRkX3dhaXQoc3RydWN0IGludGVs X2VuZ2luZV9jcyAqZW5naW5lLAo+ICAJCSAqLwo+ICAJCV9faW50ZWxfYnJlYWRjcnVtYnNfZW5h YmxlX2lycShiKTsKPiAgCX0KPiAtCUdFTV9CVUdfT04oIWItPmlycV9zZXFub19iaCk7Cj4gKwlH RU1fQlVHX09OKCFyY3VfYWNjZXNzX3BvaW50ZXIoYi0+aXJxX3NlcW5vX2JoKSk7Cj4gIAlHRU1f QlVHX09OKCFiLT5maXJzdF93YWl0KTsKPiAgCUdFTV9CVUdfT04ocmJfZmlyc3QoJmItPndhaXRl cnMpICE9ICZiLT5maXJzdF93YWl0LT5ub2RlKTsKPiAgCj4gQEAgLTMzNSw3ICszMzMsNyBAQCB2 b2lkIGludGVsX2VuZ2luZV9yZW1vdmVfd2FpdChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdp bmUsCj4gIAkJY29uc3QgaW50IHByaW9yaXR5ID0gd2FrZXVwX3ByaW9yaXR5KGIsIHdhaXQtPnRz ayk7Cj4gIAkJc3RydWN0IHJiX25vZGUgKm5leHQ7Cj4gIAo+IC0JCUdFTV9CVUdfT04oYi0+aXJx X3NlcW5vX2JoICE9IHdhaXQtPnRzayk7Cj4gKwkJR0VNX0JVR19PTihyY3VfYWNjZXNzX3BvaW50 ZXIoYi0+aXJxX3NlcW5vX2JoKSAhPSB3YWl0LT50c2spOwo+ICAKPiAgCQkvKiBXZSBhcmUgdGhl IGN1cnJlbnQgYm90dG9tLWhhbGYuIEZpbmQgdGhlIG5leHQgY2FuZGlkYXRlLAo+ICAJCSAqIHRo ZSBmaXJzdCB3YWl0ZXIgaW4gdGhlIHF1ZXVlIG9uIHRoZSByZW1haW5pbmcgb2xkZXN0Cj4gQEAg LTM3OSwxMyArMzc3LDEzIEBAIHZvaWQgaW50ZWxfZW5naW5lX3JlbW92ZV93YWl0KHN0cnVjdCBp bnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwKPiAgCQkJICovCj4gIAkJCWItPnRpbWVvdXQgPSB3YWl0 X3RpbWVvdXQoKTsKPiAgCQkJYi0+Zmlyc3Rfd2FpdCA9IHRvX3dhaXQobmV4dCk7Cj4gLQkJCXNt cF9zdG9yZV9tYihiLT5pcnFfc2Vxbm9fYmgsIGItPmZpcnN0X3dhaXQtPnRzayk7Cj4gKwkJCXJj dV9hc3NpZ25fcG9pbnRlcihiLT5pcnFfc2Vxbm9fYmgsIGItPmZpcnN0X3dhaXQtPnRzayk7Cj4g IAkJCWlmIChiLT5maXJzdF93YWl0LT5zZXFubyAhPSB3YWl0LT5zZXFubykKPiAgCQkJCV9faW50 ZWxfYnJlYWRjcnVtYnNfZW5hYmxlX2lycShiKTsKPiAtCQkJd2FrZV91cF9wcm9jZXNzKGItPmly cV9zZXFub19iaCk7Cj4gKwkJCXdha2VfdXBfcHJvY2VzcyhiLT5maXJzdF93YWl0LT50c2spOwo+ ICAJCX0gZWxzZSB7Cj4gIAkJCWItPmZpcnN0X3dhaXQgPSBOVUxMOwo+IC0JCQlXUklURV9PTkNF KGItPmlycV9zZXFub19iaCwgTlVMTCk7Cj4gKwkJCXJjdV9hc3NpZ25fcG9pbnRlcihiLT5pcnFf c2Vxbm9fYmgsIE5VTEwpOwo+ICAJCQlfX2ludGVsX2JyZWFkY3J1bWJzX2Rpc2FibGVfaXJxKGIp Owo+ICAJCX0KPiAgCX0gZWxzZSB7Cj4gQEAgLTM5OSw3ICszOTcsNyBAQCBvdXRfdW5sb2NrOgo+ ICAJR0VNX0JVR19PTihiLT5maXJzdF93YWl0ID09IHdhaXQpOwo+ICAJR0VNX0JVR19PTihyYl9m aXJzdCgmYi0+d2FpdGVycykgIT0KPiAgCQkgICAoYi0+Zmlyc3Rfd2FpdCA/ICZiLT5maXJzdF93 YWl0LT5ub2RlIDogTlVMTCkpOwo+IC0JR0VNX0JVR19PTighYi0+aXJxX3NlcW5vX2JoIF4gUkJf RU1QVFlfUk9PVCgmYi0+d2FpdGVycykpOwo+ICsJR0VNX0JVR19PTighcmN1X2FjY2Vzc19wb2lu dGVyKGItPmlycV9zZXFub19iaCkgXiBSQl9FTVBUWV9ST09UKCZiLT53YWl0ZXJzKSk7Cj4gIAlz cGluX3VubG9jaygmYi0+bG9jayk7Cj4gIH0KPiAgCj4gQEAgLTU5NiwxMSArNTk0LDkgQEAgdW5z aWduZWQgaW50IGludGVsX2tpY2tfd2FpdGVycyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkx NSkKPiAgCSAqIFJDVSBsb2NrLCBpLmUuIGFzIHdlIGNhbGwgd2FrZV91cF9wcm9jZXNzKCkgd2Ug bXVzdCBiZSBob2xkaW5nIHRoZQo+ICAJICogcmN1X3JlYWRfbG9jaygpLgo+ICAJICovCj4gLQly Y3VfcmVhZF9sb2NrKCk7Cj4gIAlmb3JfZWFjaF9lbmdpbmUoZW5naW5lLCBpOTE1KQo+ICAJCWlm ICh1bmxpa2VseShpbnRlbF9lbmdpbmVfd2FrZXVwKGVuZ2luZSkpKQo+ICAJCQltYXNrIHw9IGlu dGVsX2VuZ2luZV9mbGFnKGVuZ2luZSk7Cj4gLQlyY3VfcmVhZF91bmxvY2soKTsKPiAgCj4gIAly ZXR1cm4gbWFzazsKPiAgfQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9yaW5nYnVmZmVyLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmMK PiBpbmRleCBlMDhhMWUxYjA0ZTQuLjE2YjcyNmZlMzNlYiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9yaW5nYnVmZmVyLmMKPiBAQCAtMjQxMCw5ICsyNDEwLDcgQEAgdm9pZCBpbnRl bF9lbmdpbmVfaW5pdF9zZXFubyhzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUsIHUzMiBz ZXFubykKPiAgCS8qIEFmdGVyIG1hbnVhbGx5IGFkdmFuY2luZyB0aGUgc2Vxbm8sIGZha2UgdGhl IGludGVycnVwdCBpbiBjYXNlCj4gIAkgKiB0aGVyZSBhcmUgYW55IHdhaXRlcnMgZm9yIHRoYXQg c2Vxbm8uCj4gIAkgKi8KPiAtCXJjdV9yZWFkX2xvY2soKTsKPiAgCWludGVsX2VuZ2luZV93YWtl dXAoZW5naW5lKTsKPiAtCXJjdV9yZWFkX3VubG9jaygpOwo+ICB9Cj4gIAo+ICBzdGF0aWMgdm9p ZCBnZW42X2JzZF9zdWJtaXRfcmVxdWVzdChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJl cXVlc3QpCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZm ZXIuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuaAo+IGluZGV4IDRh ZWQ0NTg2YjBiNi4uNjZkYzkzNDY5MDc2IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX3JpbmdidWZmZXIuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X3JpbmdidWZmZXIuaAo+IEBAIC0xNzEsNyArMTcxLDcgQEAgc3RydWN0IGludGVsX2VuZ2luZV9j cyB7Cj4gIAkgKiB0aGUgb3ZlcmhlYWQgb2Ygd2FraW5nIHRoYXQgY2xpZW50IGlzIG11Y2ggcHJl ZmVycmVkLgo+ICAJICovCj4gIAlzdHJ1Y3QgaW50ZWxfYnJlYWRjcnVtYnMgewo+IC0JCXN0cnVj dCB0YXNrX3N0cnVjdCAqaXJxX3NlcW5vX2JoOyAvKiBiaCBmb3IgdXNlciBpbnRlcnJ1cHRzICov Cj4gKwkJc3RydWN0IHRhc2tfc3RydWN0IF9fcmN1ICppcnFfc2Vxbm9fYmg7IC8qIGJoIGZvciBp bnRlcnJ1cHRzICovCj4gIAkJYm9vbCBpcnFfcG9zdGVkOwo+ICAKPiAgCQlzcGlubG9ja190IGxv Y2s7IC8qIHByb3RlY3RzIHRoZSBsaXN0cyBvZiByZXF1ZXN0cyAqLwo+IEBAIC01NDEsMjMgKzU0 MSwzMCBAQCB2b2lkIGludGVsX2VuZ2luZV9lbmFibGVfc2lnbmFsaW5nKHN0cnVjdCBkcm1faTkx NV9nZW1fcmVxdWVzdCAqcmVxdWVzdCk7Cj4gIAo+ICBzdGF0aWMgaW5saW5lIGJvb2wgaW50ZWxf ZW5naW5lX2hhc193YWl0ZXIoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQo+ICB7Cj4g LQlyZXR1cm4gUkVBRF9PTkNFKGVuZ2luZS0+YnJlYWRjcnVtYnMuaXJxX3NlcW5vX2JoKTsKPiAr CXJldHVybiByY3VfYWNjZXNzX3BvaW50ZXIoZW5naW5lLT5icmVhZGNydW1icy5pcnFfc2Vxbm9f YmgpOwo+ICB9Cj4gIAo+ICBzdGF0aWMgaW5saW5lIGJvb2wgaW50ZWxfZW5naW5lX3dha2V1cChz dHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCj4gIHsKPiAgCWJvb2wgd2FrZXVwID0gZmFs c2U7Cj4gLQlzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRzayA9IFJFQURfT05DRShlbmdpbmUtPmJyZWFk Y3J1bWJzLmlycV9zZXFub19iaCk7Cj4gKwo+ICAJLyogTm90ZSB0aGF0IGZvciB0aGlzIG5vdCB0 byBkYW5nZXJvdXNseSBjaGFzZSBhIGRhbmdsaW5nIHBvaW50ZXIsCj4gLQkgKiB0aGUgY2FsbGVy IGlzIHJlc3BvbnNpYmxlIGZvciBlbnN1cmUgdGhhdCB0aGUgdGFzayByZW1haW4gdmFsaWQgZm9y Cj4gLQkgKiB3YWtlX3VwX3Byb2Nlc3MoKSBpLmUuIHRoYXQgdGhlIFJDVSBncmFjZSBwZXJpb2Qg Y2Fubm90IGV4cGlyZS4KPiArCSAqIHdlIG11c3QgaG9sZCB0aGUgcmN1X3JlYWRfbG9jayBoZXJl Lgo+ICAJICoKPiAgCSAqIEFsc28gbm90ZSB0aGF0IHRzayBpcyBsaWtlbHkgdG8gYmUgaW4gIVRB U0tfUlVOTklORyBzdGF0ZSBzbyBhbgo+ICAJICogZWFybHkgdGVzdCBmb3IgdHNrLT5zdGF0ZSAh PSBUQVNLX1JVTk5JTkcgYmVmb3JlIHdha2VfdXBfcHJvY2VzcygpCj4gIAkgKiBpcyB1bmxpa2Vs eSB0byBiZSBiZW5lZmljaWFsLgo+ICAJICovCj4gLQlpZiAodHNrKQo+IC0JCXdha2V1cCA9IHdh a2VfdXBfcHJvY2Vzcyh0c2spOwo+ICsJaWYgKHJjdV9hY2Nlc3NfcG9pbnRlcihlbmdpbmUtPmJy ZWFkY3J1bWJzLmlycV9zZXFub19iaCkpIHsKPiArCQlzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRzazsK PiArCj4gKwkJcmN1X3JlYWRfbG9jaygpOwo+ICsJCXRzayA9IHJjdV9kZXJlZmVyZW5jZShlbmdp bmUtPmJyZWFkY3J1bWJzLmlycV9zZXFub19iaCk7Cj4gKwkJaWYgKHRzaykKPiArCQkJd2FrZXVw ID0gd2FrZV91cF9wcm9jZXNzKHRzayk7Cj4gKwkJcmN1X3JlYWRfdW5sb2NrKCk7Cj4gKwl9Cj4g Kwo+ICAJcmV0dXJuIHdha2V1cDsKPiAgfQo+ICAKPiAtLSAKPiAyLjguMQo+IAoKLS0gCkRhbmll bCBWZXR0ZXIKU29mdHdhcmUgRW5naW5lZXIsIEludGVsIENvcnBvcmF0aW9uCmh0dHA6Ly9ibG9n LmZmd2xsLmNoCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f CkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpo dHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=