From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 Subject: edac: thunderx: Replace pci_alloc_msix_exact From: Jan Glauber Message-Id: <20170518091546.GA25620@hc> Date: Thu, 18 May 2017 11:15:46 +0200 To: Sergei Temerkhanov Cc: Borislav Petkov , linux-edac@vger.kernel.org, linux-kernel@vger.kernel.org, Thomas Gleixner List-ID: T24gVGh1LCBNYXkgMTgsIDIwMTcgYXQgMDI6NTI6NTRBTSArMDMwMCwgU2VyZ2VpIFRlbWVya2hh bm92IHdyb3RlOgo+IE9uIFdlZCwgTWF5IDE3LCAyMDE3IGF0IDg6MjMgUE0sIEphbiBHbGF1YmVy Cj4gPGphbi5nbGF1YmVyQGNhdml1bW5ldHdvcmtzLmNvbT4gd3JvdGU6Cj4gPiBPbiBXZWQsIE1h eSAxNywgMjAxNyBhdCAwNjozNTowNVBNICswMzAwLCBTZXJnZWkgVGVtZXJraGFub3Ygd3JvdGU6 Cj4gPj4gQ0lMLi4uCj4gPj4KPiA+PiBPbiBUdWUsIE1heSAxNiwgMjAxNyBhdCAxMjo1NCBQTSwg SmFuIEdsYXViZXIgPGpnbGF1YmVyQGNhdml1bS5jb20+IHdyb3RlOgo+ID4+ID4gUmVwbGFjZSB0 aGUgZGVwcmVjYXRlZCBwY2lfYWxsb2NfbXNpeF9leGFjdCgpIHdpdGgKPiA+PiA+IHBjaV9hbGxv Y19pcnFfdmVjdG9ycygpLgo+ID4+ID4KPiA+PiA+IEF2b2lkIHRoZSBjb250YWluZXJfb2YgdXNh Z2UgaW4gdGhlIGludGVycnVwdCBoYW5kbGVyCj4gPj4gPiBieSBzaW1wbHkgcGFzc2luZyB0aGUg cmVxdWlyZWQgc3RydWN0IGFzIGRhdGEgdG8gdGhlIGludGVycnVwdAo+ID4+ID4gaGFuZGxlci4K PiA+PiA+Cj4gPj4gPiBTaWduZWQtb2ZmLWJ5OiBKYW4gR2xhdWJlciA8amdsYXViZXJAY2F2aXVt LmNvbT4KPiA+PiA+IC0tLQo+ID4+ID4gIGRyaXZlcnMvZWRhYy90aHVuZGVyeF9lZGFjLmMgfCA5 MSArKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ID4+ID4gIDEg ZmlsZSBjaGFuZ2VkLCAyOCBpbnNlcnRpb25zKCspLCA2MyBkZWxldGlvbnMoLSkKPiA+PiA+Cj4g Pj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9lZGFjL3RodW5kZXJ4X2VkYWMuYyBiL2RyaXZlcnMv ZWRhYy90aHVuZGVyeF9lZGFjLmMKPiA+PiA+IGluZGV4IDg2ZDU4NWMuLmRhMTI4MDQgMTAwNjQ0 Cj4gPj4gPiAtLS0gYS9kcml2ZXJzL2VkYWMvdGh1bmRlcnhfZWRhYy5jCj4gPj4gPiArKysgYi9k cml2ZXJzL2VkYWMvdGh1bmRlcnhfZWRhYy5jCj4gPj4gPiBAQCAtMTgzLDcgKzE4Myw2IEBAIHN0 cnVjdCBsbWNfZXJyX2N0eCB7Cj4gPj4gPiAgc3RydWN0IHRodW5kZXJ4X2xtYyB7Cj4gPj4gPiAg ICAgICAgIHZvaWQgX19pb21lbSAqcmVnczsKPiA+PiA+ICAgICAgICAgc3RydWN0IHBjaV9kZXYg KnBkZXY7Cj4gPj4gPiAtICAgICAgIHN0cnVjdCBtc2l4X2VudHJ5IG1zaXhfZW50Owo+ID4+ID4K PiA+PiA+ICAgICAgICAgYXRvbWljX3QgZWNjX2ludDsKPiA+PiA+Cj4gPj4gPiBAQCAtNzM4LDE4 ICs3MzcsMTcgQEAgc3RhdGljIGludCB0aHVuZGVyeF9sbWNfcHJvYmUoc3RydWN0IHBjaV9kZXYg KnBkZXYsCj4gPj4gPiAgICAgICAgIG1jaS0+c2NydWJfbW9kZSA9IFNDUlVCX05PTkU7Cj4gPj4g Pgo+ID4+ID4gICAgICAgICBsbWMtPnBkZXYgPSBwZGV2Owo+ID4+ID4gLSAgICAgICBsbWMtPm1z aXhfZW50LmVudHJ5ID0gMDsKPiA+PiA+Cj4gPj4gPiAgICAgICAgIGxtYy0+cmluZ19oZWFkID0g MDsKPiA+PiA+ICAgICAgICAgbG1jLT5yaW5nX3RhaWwgPSAwOwo+ID4+ID4KPiA+PiA+IC0gICAg ICAgcmV0ID0gcGNpX2VuYWJsZV9tc2l4X2V4YWN0KHBkZXYsICZsbWMtPm1zaXhfZW50LCAxKTsK PiA+PiA+IC0gICAgICAgaWYgKHJldCkgewo+ID4+ID4gKyAgICAgICByZXQgPSBwY2lfYWxsb2Nf aXJxX3ZlY3RvcnMocGRldiwgMSwgMSwgUENJX0lSUV9NU0lYKTsKPiA+PiA+ICsgICAgICAgaWYg KHJldCA8IDApIHsKPiA+PiA+ICAgICAgICAgICAgICAgICBkZXZfZXJyKCZwZGV2LT5kZXYsICJD YW5ub3QgZW5hYmxlIGludGVycnVwdDogJWRcbiIsIHJldCk7Cj4gPj4gPiAgICAgICAgICAgICAg ICAgZ290byBlcnJfZnJlZTsKPiA+PiA+ICAgICAgICAgfQo+ID4+ID4KPiA+PiA+IC0gICAgICAg cmV0ID0gZGV2bV9yZXF1ZXN0X3RocmVhZGVkX2lycSgmcGRldi0+ZGV2LCBsbWMtPm1zaXhfZW50 LnZlY3RvciwKPiA+PiA+ICsgICAgICAgcmV0ID0gZGV2bV9yZXF1ZXN0X3RocmVhZGVkX2lycSgm cGRldi0+ZGV2LCBwY2lfaXJxX3ZlY3RvcihwZGV2LCAwKSwKPiA+PiA+ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB0aHVuZGVyeF9sbWNfZXJyX2lzciwKPiA+PiA+ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHVuZGVyeF9sbWNfdGhyZWFk ZWRfaXNyLCAwLAo+ID4+ID4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICJbRURBQ10gVGh1bmRlclggTE1DIiwgbWNpKTsKPiA+PiA+IEBAIC0xMDc5LDcgKzEwNzcsNiBA QCBzdHJ1Y3QgdGh1bmRlcnhfb2N4IHsKPiA+PiA+ICAgICAgICAgc3RydWN0IGVkYWNfZGV2aWNl X2N0bF9pbmZvICplZGFjX2RldjsKPiA+PiA+Cj4gPj4gPiAgICAgICAgIHN0cnVjdCBkZW50cnkg KmRlYnVnZnM7Cj4gPj4gPiAtICAgICAgIHN0cnVjdCBtc2l4X2VudHJ5IG1zaXhfZW50W09DWF9J TlRTXTsKPiA+PiA+Cj4gPj4gPiAgICAgICAgIHN0cnVjdCBvY3hfY29tX2Vycl9jdHggY29tX2Vy cl9jdHhbUklOR19FTlRSSUVTXTsKPiA+PiA+ICAgICAgICAgc3RydWN0IG9jeF9saW5rX2Vycl9j dHggbGlua19lcnJfY3R4W1JJTkdfRU5UUklFU107Cj4gPj4gPiBAQCAtMTA5NSwxMiArMTA5Miw5 IEBAIHN0cnVjdCB0aHVuZGVyeF9vY3ggewo+ID4+ID4gICNkZWZpbmUgT0NYX09USEVSX1NJWkUg ICAgICAgICAoNTAgKiBBUlJBWV9TSVpFKG9jeF9jb21fbGlua19lcnJvcnMpKQo+ID4+ID4KPiA+ PiA+ICAvKiBUaGlzIGhhbmRsZXIgaXMgdGhyZWFkZWQgKi8KPiA+PiA+IC1zdGF0aWMgaXJxcmV0 dXJuX3QgdGh1bmRlcnhfb2N4X2NvbV9pc3IoaW50IGlycSwgdm9pZCAqaXJxX2lkKQo+ID4+ID4g K3N0YXRpYyBpcnFyZXR1cm5fdCB0aHVuZGVyeF9vY3hfY29tX2lzcihpbnQgaXJxLCB2b2lkICpk ZXZfaWQpCj4gPj4gPiAgewo+ID4+ID4gLSAgICAgICBzdHJ1Y3QgbXNpeF9lbnRyeSAqbXNpeCA9 IGlycV9pZDsKPiA+PiA+IC0gICAgICAgc3RydWN0IHRodW5kZXJ4X29jeCAqb2N4ID0gY29udGFp bmVyX29mKG1zaXgsIHN0cnVjdCB0aHVuZGVyeF9vY3gsCj4gPj4gPiAtICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtc2l4X2VudFttc2l4LT5lbnRyeV0pOwo+ ID4+ID4gLQo+ID4+ID4gKyAgICAgICBzdHJ1Y3QgdGh1bmRlcnhfb2N4ICpvY3ggPSAoc3RydWN0 IHRodW5kZXJ4X29jeCAqKSBkZXZfaWQ7Cj4gPj4gPiAgICAgICAgIGludCBsYW5lOwo+ID4+ID4g ICAgICAgICB1bnNpZ25lZCBsb25nIGhlYWQgPSByaW5nX3BvcyhvY3gtPmNvbV9yaW5nX2hlYWQs Cj4gPj4gPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFSUkFZX1NJWkUo b2N4LT5jb21fZXJyX2N0eCkpOwo+ID4+ID4gQEAgLTExMjQsMTIgKzExMTgsOSBAQCBzdGF0aWMg aXJxcmV0dXJuX3QgdGh1bmRlcnhfb2N4X2NvbV9pc3IoaW50IGlycSwgdm9pZCAqaXJxX2lkKQo+ ID4+ID4gICAgICAgICByZXR1cm4gSVJRX1dBS0VfVEhSRUFEOwo+ID4+ID4gIH0KPiA+PiA+Cj4g Pj4gPiAtc3RhdGljIGlycXJldHVybl90IHRodW5kZXJ4X29jeF9jb21fdGhyZWFkZWRfaXNyKGlu dCBpcnEsIHZvaWQgKmlycV9pZCkKPiA+PiA+ICtzdGF0aWMgaXJxcmV0dXJuX3QgdGh1bmRlcnhf b2N4X2NvbV90aHJlYWRlZF9pc3IoaW50IGlycSwgdm9pZCAqZGV2X2lkKQo+ID4+ID4gIHsKPiA+ PiA+IC0gICAgICAgc3RydWN0IG1zaXhfZW50cnkgKm1zaXggPSBpcnFfaWQ7Cj4gPj4gPiAtICAg ICAgIHN0cnVjdCB0aHVuZGVyeF9vY3ggKm9jeCA9IGNvbnRhaW5lcl9vZihtc2l4LCBzdHJ1Y3Qg dGh1bmRlcnhfb2N4LAo+ID4+ID4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgbXNpeF9lbnRbbXNpeC0+ZW50cnldKTsKPiA+PiA+IC0KPiA+PiA+ICsgICAg ICAgc3RydWN0IHRodW5kZXJ4X29jeCAqb2N4ID0gKHN0cnVjdCB0aHVuZGVyeF9vY3ggKikgZGV2 X2lkOwo+ID4+ID4gICAgICAgICBpcnFyZXR1cm5fdCByZXQgPSBJUlFfTk9ORTsKPiA+PiA+Cj4g Pj4gPiAgICAgICAgIHVuc2lnbmVkIGxvbmcgdGFpbDsKPiA+PiA+IEBAIC0xMTg4LDE2ICsxMTc5 LDE0IEBAIHN0YXRpYyBpcnFyZXR1cm5fdCB0aHVuZGVyeF9vY3hfY29tX3RocmVhZGVkX2lzcihp bnQgaXJxLCB2b2lkICppcnFfaWQpCj4gPj4gPiAgICAgICAgIHJldHVybiByZXQ7Cj4gPj4gPiAg fQo+ID4+ID4KPiA+PiA+IC1zdGF0aWMgaXJxcmV0dXJuX3QgdGh1bmRlcnhfb2N4X2xua19pc3Io aW50IGlycSwgdm9pZCAqaXJxX2lkKQo+ID4+ID4gK3N0YXRpYyBpcnFyZXR1cm5fdCB0aHVuZGVy eF9vY3hfbG5rX2lzcihpbnQgaXJxLCB2b2lkICpkZXZfaWQpCj4gPj4gPiAgewo+ID4+ID4gLSAg ICAgICBzdHJ1Y3QgbXNpeF9lbnRyeSAqbXNpeCA9IGlycV9pZDsKPiA+PiA+IC0gICAgICAgc3Ry dWN0IHRodW5kZXJ4X29jeCAqb2N4ID0gY29udGFpbmVyX29mKG1zaXgsIHN0cnVjdCB0aHVuZGVy eF9vY3gsCj4gPj4gPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBtc2l4X2VudFttc2l4LT5lbnRyeV0pOwo+ID4+ID4gKyAgICAgICBzdHJ1Y3QgdGh1bmRl cnhfb2N4ICpvY3ggPSAoc3RydWN0IHRodW5kZXJ4X29jeCAqKSBkZXZfaWQ7Cj4gPj4gPiAgICAg ICAgIHVuc2lnbmVkIGxvbmcgaGVhZCA9IHJpbmdfcG9zKG9jeC0+bGlua19yaW5nX2hlYWQsCj4g Pj4gPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFSUkFZX1NJWkUob2N4 LT5saW5rX2Vycl9jdHgpKTsKPiA+PiA+ICAgICAgICAgc3RydWN0IG9jeF9saW5rX2Vycl9jdHgg KmN0eCA9ICZvY3gtPmxpbmtfZXJyX2N0eFtoZWFkXTsKPiA+PiA+Cj4gPj4gPiAtICAgICAgIGN0 eC0+bGluayA9IG1zaXgtPmVudHJ5Owo+ID4+ID4gKyAgICAgICBjdHgtPmxpbmsgPSBpcnEgLSBw Y2lfaXJxX3ZlY3RvcihvY3gtPnBkZXYsIDApOwo+ID4+Cj4gPj4gVGhpcyBhc3N1bWVzIE1TSVgg dmVjdG9ycyBhcmUgYWxsb2NhdGVkIHNlcXVlbnRpYWxseSwgYXMgZmFyIGFzIEkgY2FuCj4gPj4g dGVsbC4gSXMgdGhpcyBiZWhhdmlvciBndWFyYW50ZWVkPwo+ID4KPiA+IEZyb20gbG9va2luZyBh dCB0aGUgaW1wbGVtZW50YXRpb24gaW4gcGNpX2lycV92ZWN0b3IgSSB3b3VsZCBzYXkgaXQgaXMu Cj4gCj4gV2hhdCBpZiB0aGUgaW1wbGVtZW50YXRpb24gY2hhbmdlcz8KCk1heWJlIFRob21hcyBj YW4gY29tbWVudCBpZiB0aGlzIGFzc3VtcHRpb24gY2FuIGJlIG1hZGUgb3Igc2hvdWxkIGJlCmF2 b2lkZWQuLi4KCj4gPgo+ID4+IEFzIGEgcHJlY2F1dGlvbiwgYSBjaGVjayBmb3IgMCA8PSBjdHgt PmxpbmsgPD0gMiBtaWdodCBuZWVkIHRvIGJlIGFkZGVkIGhlcmUuCj4gPj4KPiA+PiA+ICAgICAg ICAgY3R4LT5yZWdfY29tX2xpbmtfaW50ID0gcmVhZHEob2N4LT5yZWdzICsgT0NYX0NPTV9MSU5L WF9JTlQoY3R4LT5saW5rKSk7Cj4gPj4gPgo+ID4+ID4gICAgICAgICB3cml0ZXEoY3R4LT5yZWdf Y29tX2xpbmtfaW50LCBvY3gtPnJlZ3MgKyBPQ1hfQ09NX0xJTktYX0lOVChjdHgtPmxpbmspKTsK PiA+PiA+IEBAIC0xMjA3LDExICsxMTk2LDkgQEAgc3RhdGljIGlycXJldHVybl90IHRodW5kZXJ4 X29jeF9sbmtfaXNyKGludCBpcnEsIHZvaWQgKmlycV9pZCkKPiA+PiA+ICAgICAgICAgcmV0dXJu IElSUV9XQUtFX1RIUkVBRDsKPiA+PiA+ICB9Cj4gPj4gPgo+ID4+ID4gLXN0YXRpYyBpcnFyZXR1 cm5fdCB0aHVuZGVyeF9vY3hfbG5rX3RocmVhZGVkX2lzcihpbnQgaXJxLCB2b2lkICppcnFfaWQp Cj4gPj4gPiArc3RhdGljIGlycXJldHVybl90IHRodW5kZXJ4X29jeF9sbmtfdGhyZWFkZWRfaXNy KGludCBpcnEsIHZvaWQgKmRldl9pZCkKPiA+PiA+ICB7Cj4gPj4gPiAtICAgICAgIHN0cnVjdCBt c2l4X2VudHJ5ICptc2l4ID0gaXJxX2lkOwo+ID4+ID4gLSAgICAgICBzdHJ1Y3QgdGh1bmRlcnhf b2N4ICpvY3ggPSBjb250YWluZXJfb2YobXNpeCwgc3RydWN0IHRodW5kZXJ4X29jeCwKPiA+PiA+ IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1zaXhfZW50 W21zaXgtPmVudHJ5XSk7Cj4gPj4gPiArICAgICAgIHN0cnVjdCB0aHVuZGVyeF9vY3ggKm9jeCA9 IChzdHJ1Y3QgdGh1bmRlcnhfb2N4ICopIGRldl9pZDsKPiA+PiA+ICAgICAgICAgaXJxcmV0dXJu X3QgcmV0ID0gSVJRX05PTkU7Cj4gPj4gPiAgICAgICAgIHVuc2lnbmVkIGxvbmcgdGFpbDsKPiA+ PiA+ICAgICAgICAgc3RydWN0IG9jeF9saW5rX2Vycl9jdHggKmN0eDsKPiA+PiA+IEBAIC0xNDEw LDIwICsxMzk3LDE1IEBAIHN0YXRpYyBpbnQgdGh1bmRlcnhfb2N4X3Byb2JlKHN0cnVjdCBwY2lf ZGV2ICpwZGV2LAo+ID4+ID4KPiA+PiA+ICAgICAgICAgb2N4LT5wZGV2ID0gcGRldjsKPiA+PiA+ Cj4gPj4gPiAtICAgICAgIGZvciAoaSA9IDA7IGkgPCBPQ1hfSU5UUzsgaSsrKSB7Cj4gPj4gPiAt ICAgICAgICAgICAgICAgb2N4LT5tc2l4X2VudFtpXS5lbnRyeSA9IGk7Cj4gPj4gPiAtICAgICAg ICAgICAgICAgb2N4LT5tc2l4X2VudFtpXS52ZWN0b3IgPSAwOwo+ID4+ID4gLSAgICAgICB9Cj4g Pj4gPiAtCj4gPj4gPiAtICAgICAgIHJldCA9IHBjaV9lbmFibGVfbXNpeF9leGFjdChwZGV2LCBv Y3gtPm1zaXhfZW50LCBPQ1hfSU5UUyk7Cj4gPj4gPiAtICAgICAgIGlmIChyZXQpIHsKPiA+PiA+ ICsgICAgICAgcmV0ID0gcGNpX2FsbG9jX2lycV92ZWN0b3JzKHBkZXYsIDEsIE9DWF9JTlRTLCBQ Q0lfSVJRX01TSVgpOwo+ID4+ID4gKyAgICAgICBpZiAocmV0IDwgMCkgewo+ID4+ID4gICAgICAg ICAgICAgICAgIGRldl9lcnIoJnBkZXYtPmRldiwgIkNhbm5vdCBlbmFibGUgaW50ZXJydXB0OiAl ZFxuIiwgcmV0KTsKPiA+PiA+ICAgICAgICAgICAgICAgICBnb3RvIGVycl9mcmVlOwo+ID4+ID4g ICAgICAgICB9Cj4gPj4KPiA+PiBXaGF0IGhhcHBlbnMgaWYgbGVzcyB0aGFuIE9DWF9JTlRTIHZl Y3RvcnMgYXJlIGFsbG9jYXRlZD8KPiA+Pgo+ID4KPiA+IFRoZSBzYW1lIGJlaGF2aW91ciBhcyBi ZWZvcmUsIGl0IGlzIGlnbm9yZWQuCj4gCj4gTm8sIHBjaV9lbmFibGVfbXNpeF9leGFjdCgpIGZh aWxzIHdoZW4gaXQgY2Fubm90IGVuYWJsZSB0aGUgc3BlY2lmaWVkCj4gbnVtYmVyIG9mIGludGVy cnVwdHMuCgpJIGFncmVlLCBJIG1pc3JlYWQgdGhhdCAobWF5YmUgdGhhdCBpcyB0aGUgcmVhc29u IGZvciB0aGUgYWRkZWQgX2V4YWN0KS4KCj4gVGhpcyBjYW4gYmUgYWNoaWV2ZWQgd2l0aCBwY2lf YWxsb2NfaXJxX3ZlY3RvcnMocGRldiwgT0NYX0lOVFMsCj4gT0NYX0lOVFMsIFBDSV9JUlFfTVNJ WCkKClllcy4gVGhhbmtzIGZvciBzcG90dGluZyB0aGlzLgoKPiA+Cj4gPiBSZWdhcmRzLAo+ID4g SmFuCj4gPgo+ID4+ID4KPiA+PiA+ICAgICAgICAgZm9yIChpID0gMDsgaSA8IE9DWF9JTlRTOyBp KyspIHsKPiA+PiA+ICAgICAgICAgICAgICAgICByZXQgPSBkZXZtX3JlcXVlc3RfdGhyZWFkZWRf aXJxKCZwZGV2LT5kZXYsCj4gPj4gPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBvY3gtPm1zaXhfZW50W2ldLnZlY3RvciwKPiA+PiA+ICsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBjaV9pcnFfdmVjdG9yKHBkZXYs IGkpLAo+ID4+ID4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgKGkgPT0gMykgPwo+ID4+ID4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHRodW5kZXJ4X29jeF9jb21faXNyIDoKPiA+PiA+ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHVuZGVyeF9vY3hfbG5rX2lzciwK PiA+PiA+IEBAIC0xNDMxLDcgKzE0MTMsNyBAQCBzdGF0aWMgaW50IHRodW5kZXJ4X29jeF9wcm9i ZShzdHJ1Y3QgcGNpX2RldiAqcGRldiwKPiA+PiA+ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB0aHVuZGVyeF9vY3hfY29tX3RocmVhZGVkX2lzciA6Cj4g Pj4gPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGh1 bmRlcnhfb2N4X2xua190aHJlYWRlZF9pc3IsCj4gPj4gPiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAwLCAiW0VEQUNdIFRodW5kZXJYIE9DWCIsCj4gPj4g PiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmb2N4LT5t c2l4X2VudFtpXSk7Cj4gPj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBvY3gpOwo+ID4+ID4gICAgICAgICAgICAgICAgIGlmIChyZXQpCj4gPj4gPiAg ICAgICAgICAgICAgICAgICAgICAgICBnb3RvIGVycl9mcmVlOwo+ID4+ID4gICAgICAgICB9Cj4g Pj4gPiBAQCAtMTc3MywxOSArMTc1NSwxNCBAQCBzdHJ1Y3QgdGh1bmRlcnhfbDJjIHsKPiA+PiA+ Cj4gPj4gPiAgICAgICAgIGludCBpbmRleDsKPiA+PiA+Cj4gPj4gPiAtICAgICAgIHN0cnVjdCBt c2l4X2VudHJ5IG1zaXhfZW50Owo+ID4+ID4gLQo+ID4+ID4gICAgICAgICBzdHJ1Y3QgbDJjX2Vy cl9jdHggZXJyX2N0eFtSSU5HX0VOVFJJRVNdOwo+ID4+ID4gICAgICAgICB1bnNpZ25lZCBsb25n IHJpbmdfaGVhZDsKPiA+PiA+ICAgICAgICAgdW5zaWduZWQgbG9uZyByaW5nX3RhaWw7Cj4gPj4g PiAgfTsKPiA+PiA+Cj4gPj4gPiAtc3RhdGljIGlycXJldHVybl90IHRodW5kZXJ4X2wyY190YWRf aXNyKGludCBpcnEsIHZvaWQgKmlycV9pZCkKPiA+PiA+ICtzdGF0aWMgaXJxcmV0dXJuX3QgdGh1 bmRlcnhfbDJjX3RhZF9pc3IoaW50IGlycSwgdm9pZCAqZGV2X2lkKQo+ID4+ID4gIHsKPiA+PiA+ IC0gICAgICAgc3RydWN0IG1zaXhfZW50cnkgKm1zaXggPSBpcnFfaWQ7Cj4gPj4gPiAtICAgICAg IHN0cnVjdCB0aHVuZGVyeF9sMmMgKnRhZCA9IGNvbnRhaW5lcl9vZihtc2l4LCBzdHJ1Y3QgdGh1 bmRlcnhfbDJjLAo+ID4+ID4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgbXNpeF9lbnQpOwo+ID4+ID4gLQo+ID4+ID4gKyAgICAgICBzdHJ1Y3QgdGh1bmRl cnhfbDJjICp0YWQgPSAoc3RydWN0IHRodW5kZXJ4X2wyYyAqKSBkZXZfaWQ7Cj4gPj4gPiAgICAg ICAgIHVuc2lnbmVkIGxvbmcgaGVhZCA9IHJpbmdfcG9zKHRhZC0+cmluZ19oZWFkLCBBUlJBWV9T SVpFKHRhZC0+ZXJyX2N0eCkpOwo+ID4+ID4gICAgICAgICBzdHJ1Y3QgbDJjX2Vycl9jdHggKmN0 eCA9ICZ0YWQtPmVycl9jdHhbaGVhZF07Cj4gPj4gPgo+ID4+ID4gQEAgLTE4MTIsMTIgKzE3ODks OSBAQCBzdGF0aWMgaXJxcmV0dXJuX3QgdGh1bmRlcnhfbDJjX3RhZF9pc3IoaW50IGlycSwgdm9p ZCAqaXJxX2lkKQo+ID4+ID4gICAgICAgICByZXR1cm4gSVJRX1dBS0VfVEhSRUFEOwo+ID4+ID4g IH0KPiA+PiA+Cj4gPj4gPiAtc3RhdGljIGlycXJldHVybl90IHRodW5kZXJ4X2wyY19jYmNfaXNy KGludCBpcnEsIHZvaWQgKmlycV9pZCkKPiA+PiA+ICtzdGF0aWMgaXJxcmV0dXJuX3QgdGh1bmRl cnhfbDJjX2NiY19pc3IoaW50IGlycSwgdm9pZCAqZGV2X2lkKQo+ID4+ID4gIHsKPiA+PiA+IC0g ICAgICAgc3RydWN0IG1zaXhfZW50cnkgKm1zaXggPSBpcnFfaWQ7Cj4gPj4gPiAtICAgICAgIHN0 cnVjdCB0aHVuZGVyeF9sMmMgKmNiYyA9IGNvbnRhaW5lcl9vZihtc2l4LCBzdHJ1Y3QgdGh1bmRl cnhfbDJjLAo+ID4+ID4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgbXNpeF9lbnQpOwo+ID4+ID4gLQo+ID4+ID4gKyAgICAgICBzdHJ1Y3QgdGh1bmRlcnhf bDJjICpjYmMgPSAoc3RydWN0IHRodW5kZXJ4X2wyYyAqKSBkZXZfaWQ7Cj4gPj4gPiAgICAgICAg IHVuc2lnbmVkIGxvbmcgaGVhZCA9IHJpbmdfcG9zKGNiYy0+cmluZ19oZWFkLCBBUlJBWV9TSVpF KGNiYy0+ZXJyX2N0eCkpOwo+ID4+ID4gICAgICAgICBzdHJ1Y3QgbDJjX2Vycl9jdHggKmN0eCA9 ICZjYmMtPmVycl9jdHhbaGVhZF07Cj4gPj4gPgo+ID4+ID4gQEAgLTE4NDEsMTIgKzE4MTUsOSBA QCBzdGF0aWMgaXJxcmV0dXJuX3QgdGh1bmRlcnhfbDJjX2NiY19pc3IoaW50IGlycSwgdm9pZCAq aXJxX2lkKQo+ID4+ID4gICAgICAgICByZXR1cm4gSVJRX1dBS0VfVEhSRUFEOwo+ID4+ID4gIH0K PiA+PiA+Cj4gPj4gPiAtc3RhdGljIGlycXJldHVybl90IHRodW5kZXJ4X2wyY19tY2lfaXNyKGlu dCBpcnEsIHZvaWQgKmlycV9pZCkKPiA+PiA+ICtzdGF0aWMgaXJxcmV0dXJuX3QgdGh1bmRlcnhf bDJjX21jaV9pc3IoaW50IGlycSwgdm9pZCAqZGV2X2lkKQo+ID4+ID4gIHsKPiA+PiA+IC0gICAg ICAgc3RydWN0IG1zaXhfZW50cnkgKm1zaXggPSBpcnFfaWQ7Cj4gPj4gPiAtICAgICAgIHN0cnVj dCB0aHVuZGVyeF9sMmMgKm1jaSA9IGNvbnRhaW5lcl9vZihtc2l4LCBzdHJ1Y3QgdGh1bmRlcnhf bDJjLAo+ID4+ID4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgbXNpeF9lbnQpOwo+ID4+ID4gLQo+ID4+ID4gKyAgICAgICBzdHJ1Y3QgdGh1bmRlcnhfbDJj ICptY2kgPSAoc3RydWN0IHRodW5kZXJ4X2wyYyAqKSBkZXZfaWQ7Cj4gPj4gPiAgICAgICAgIHVu c2lnbmVkIGxvbmcgaGVhZCA9IHJpbmdfcG9zKG1jaS0+cmluZ19oZWFkLCBBUlJBWV9TSVpFKG1j aS0+ZXJyX2N0eCkpOwo+ID4+ID4gICAgICAgICBzdHJ1Y3QgbDJjX2Vycl9jdHggKmN0eCA9ICZt Y2ktPmVycl9jdHhbaGVhZF07Cj4gPj4gPgo+ID4+ID4gQEAgLTE4NjIsMTIgKzE4MzMsOSBAQCBz dGF0aWMgaXJxcmV0dXJuX3QgdGh1bmRlcnhfbDJjX21jaV9pc3IoaW50IGlycSwgdm9pZCAqaXJx X2lkKQo+ID4+ID4gICAgICAgICByZXR1cm4gSVJRX1dBS0VfVEhSRUFEOwo+ID4+ID4gIH0KPiA+ PiA+Cj4gPj4gPiAtc3RhdGljIGlycXJldHVybl90IHRodW5kZXJ4X2wyY190aHJlYWRlZF9pc3Io aW50IGlycSwgdm9pZCAqaXJxX2lkKQo+ID4+ID4gK3N0YXRpYyBpcnFyZXR1cm5fdCB0aHVuZGVy eF9sMmNfdGhyZWFkZWRfaXNyKGludCBpcnEsIHZvaWQgKmRldl9pZCkKPiA+PiA+ICB7Cj4gPj4g PiAtICAgICAgIHN0cnVjdCBtc2l4X2VudHJ5ICptc2l4ID0gaXJxX2lkOwo+ID4+ID4gLSAgICAg ICBzdHJ1Y3QgdGh1bmRlcnhfbDJjICpsMmMgPSBjb250YWluZXJfb2YobXNpeCwgc3RydWN0IHRo dW5kZXJ4X2wyYywKPiA+PiA+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIG1zaXhfZW50KTsKPiA+PiA+IC0KPiA+PiA+ICsgICAgICAgc3RydWN0IHRodW5k ZXJ4X2wyYyAqbDJjID0gKHN0cnVjdCB0aHVuZGVyeF9sMmMgKikgZGV2X2lkOwo+ID4+ID4gICAg ICAgICB1bnNpZ25lZCBsb25nIHRhaWwgPSByaW5nX3BvcyhsMmMtPnJpbmdfdGFpbCwgQVJSQVlf U0laRShsMmMtPmVycl9jdHgpKTsKPiA+PiA+ICAgICAgICAgc3RydWN0IGwyY19lcnJfY3R4ICpj dHggPSAmbDJjLT5lcnJfY3R4W3RhaWxdOwo+ID4+ID4gICAgICAgICBpcnFyZXR1cm5fdCByZXQg PSBJUlFfTk9ORTsKPiA+PiA+IEBAIC0yMDQ5LDIwICsyMDE3LDE3IEBAIHN0YXRpYyBpbnQgdGh1 bmRlcnhfbDJjX3Byb2JlKHN0cnVjdCBwY2lfZGV2ICpwZGV2LAo+ID4+ID4gICAgICAgICBsMmMt PnJpbmdfaGVhZCA9IDA7Cj4gPj4gPiAgICAgICAgIGwyYy0+cmluZ190YWlsID0gMDsKPiA+PiA+ Cj4gPj4gPiAtICAgICAgIGwyYy0+bXNpeF9lbnQuZW50cnkgPSAwOwo+ID4+ID4gLSAgICAgICBs MmMtPm1zaXhfZW50LnZlY3RvciA9IDA7Cj4gPj4gPiAtCj4gPj4gPiAtICAgICAgIHJldCA9IHBj aV9lbmFibGVfbXNpeF9leGFjdChwZGV2LCAmbDJjLT5tc2l4X2VudCwgMSk7Cj4gPj4gPiAtICAg ICAgIGlmIChyZXQpIHsKPiA+PiA+ICsgICAgICAgcmV0ID0gcGNpX2FsbG9jX2lycV92ZWN0b3Jz KHBkZXYsIDEsIDEsIFBDSV9JUlFfTVNJWCk7Cj4gPj4gPiArICAgICAgIGlmIChyZXQgPCAwKSB7 Cj4gPj4gPiAgICAgICAgICAgICAgICAgZGV2X2VycigmcGRldi0+ZGV2LCAiQ2Fubm90IGVuYWJs ZSBpbnRlcnJ1cHQ6ICVkXG4iLCByZXQpOwo+ID4+ID4gICAgICAgICAgICAgICAgIGdvdG8gZXJy X2ZyZWU7Cj4gPj4gPiAgICAgICAgIH0KPiA+PiA+Cj4gPj4gPiAtICAgICAgIHJldCA9IGRldm1f cmVxdWVzdF90aHJlYWRlZF9pcnEoJnBkZXYtPmRldiwgbDJjLT5tc2l4X2VudC52ZWN0b3IsCj4g Pj4gPiArICAgICAgIHJldCA9IGRldm1fcmVxdWVzdF90aHJlYWRlZF9pcnEoJnBkZXYtPmRldiwg cGNpX2lycV92ZWN0b3IocGRldiwgMCksCj4gPj4gPiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgdGh1bmRlcnhfbDJjX2lzciwKPiA+PiA+ICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB0aHVuZGVyeF9sMmNfdGhyZWFkZWRfaXNyLAo+ID4+ID4g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAsICJbRURBQ10gVGh1bmRl clggTDJDIiwKPiA+PiA+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAm bDJjLT5tc2l4X2VudCk7Cj4gPj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgbDJjKTsKPiA+PiA+ICAgICAgICAgaWYgKHJldCkKPiA+PiA+ICAgICAgICAgICAgICAg ICBnb3RvIGVycl9mcmVlOwo+ID4+ID4KPiA+PiA+IC0tCj4gPj4gPiAxLjkuMQo+ID4+ID4KPiA+ Pgo+ID4+IFJlZ2FyZHMsCj4gPj4gU2VyZ2V5Ci0tLQpUbyB1bnN1YnNjcmliZSBmcm9tIHRoaXMg bGlzdDogc2VuZCB0aGUgbGluZSAidW5zdWJzY3JpYmUgbGludXgtZWRhYyIgaW4KdGhlIGJvZHkg b2YgYSBtZXNzYWdlIHRvIG1ham9yZG9tb0B2Z2VyLmtlcm5lbC5vcmcKTW9yZSBtYWpvcmRvbW8g aW5mbyBhdCAgaHR0cDovL3ZnZXIua2VybmVsLm9yZy9tYWpvcmRvbW8taW5mby5odG1sCg==