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: <20170517172318.GA22379@hc> Date: Wed, 17 May 2017 19:23:18 +0200 To: Sergei Temerkhanov Cc: Borislav Petkov , linux-edac@vger.kernel.org, linux-kernel@vger.kernel.org List-ID: T24gV2VkLCBNYXkgMTcsIDIwMTcgYXQgMDY6MzU6MDVQTSArMDMwMCwgU2VyZ2VpIFRlbWVya2hh bm92IHdyb3RlOgo+IENJTC4uLgo+IAo+IE9uIFR1ZSwgTWF5IDE2LCAyMDE3IGF0IDEyOjU0IFBN LCBKYW4gR2xhdWJlciA8amdsYXViZXJAY2F2aXVtLmNvbT4gd3JvdGU6Cj4gPiBSZXBsYWNlIHRo ZSBkZXByZWNhdGVkIHBjaV9hbGxvY19tc2l4X2V4YWN0KCkgd2l0aAo+ID4gcGNpX2FsbG9jX2ly cV92ZWN0b3JzKCkuCj4gPgo+ID4gQXZvaWQgdGhlIGNvbnRhaW5lcl9vZiB1c2FnZSBpbiB0aGUg aW50ZXJydXB0IGhhbmRsZXIKPiA+IGJ5IHNpbXBseSBwYXNzaW5nIHRoZSByZXF1aXJlZCBzdHJ1 Y3QgYXMgZGF0YSB0byB0aGUgaW50ZXJydXB0Cj4gPiBoYW5kbGVyLgo+ID4KPiA+IFNpZ25lZC1v ZmYtYnk6IEphbiBHbGF1YmVyIDxqZ2xhdWJlckBjYXZpdW0uY29tPgo+ID4gLS0tCj4gPiAgZHJp dmVycy9lZGFjL3RodW5kZXJ4X2VkYWMuYyB8IDkxICsrKysrKysrKysrKysrLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCj4gPiAgMSBmaWxlIGNoYW5nZWQsIDI4IGluc2VydGlvbnMoKyks IDYzIGRlbGV0aW9ucygtKQo+ID4KPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2VkYWMvdGh1bmRl cnhfZWRhYy5jIGIvZHJpdmVycy9lZGFjL3RodW5kZXJ4X2VkYWMuYwo+ID4gaW5kZXggODZkNTg1 Yy4uZGExMjgwNCAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvZWRhYy90aHVuZGVyeF9lZGFjLmMK PiA+ICsrKyBiL2RyaXZlcnMvZWRhYy90aHVuZGVyeF9lZGFjLmMKPiA+IEBAIC0xODMsNyArMTgz LDYgQEAgc3RydWN0IGxtY19lcnJfY3R4IHsKPiA+ICBzdHJ1Y3QgdGh1bmRlcnhfbG1jIHsKPiA+ ICAgICAgICAgdm9pZCBfX2lvbWVtICpyZWdzOwo+ID4gICAgICAgICBzdHJ1Y3QgcGNpX2RldiAq cGRldjsKPiA+IC0gICAgICAgc3RydWN0IG1zaXhfZW50cnkgbXNpeF9lbnQ7Cj4gPgo+ID4gICAg ICAgICBhdG9taWNfdCBlY2NfaW50Owo+ID4KPiA+IEBAIC03MzgsMTggKzczNywxNyBAQCBzdGF0 aWMgaW50IHRodW5kZXJ4X2xtY19wcm9iZShzdHJ1Y3QgcGNpX2RldiAqcGRldiwKPiA+ICAgICAg ICAgbWNpLT5zY3J1Yl9tb2RlID0gU0NSVUJfTk9ORTsKPiA+Cj4gPiAgICAgICAgIGxtYy0+cGRl diA9IHBkZXY7Cj4gPiAtICAgICAgIGxtYy0+bXNpeF9lbnQuZW50cnkgPSAwOwo+ID4KPiA+ICAg ICAgICAgbG1jLT5yaW5nX2hlYWQgPSAwOwo+ID4gICAgICAgICBsbWMtPnJpbmdfdGFpbCA9IDA7 Cj4gPgo+ID4gLSAgICAgICByZXQgPSBwY2lfZW5hYmxlX21zaXhfZXhhY3QocGRldiwgJmxtYy0+ bXNpeF9lbnQsIDEpOwo+ID4gLSAgICAgICBpZiAocmV0KSB7Cj4gPiArICAgICAgIHJldCA9IHBj aV9hbGxvY19pcnFfdmVjdG9ycyhwZGV2LCAxLCAxLCBQQ0lfSVJRX01TSVgpOwo+ID4gKyAgICAg ICBpZiAocmV0IDwgMCkgewo+ID4gICAgICAgICAgICAgICAgIGRldl9lcnIoJnBkZXYtPmRldiwg IkNhbm5vdCBlbmFibGUgaW50ZXJydXB0OiAlZFxuIiwgcmV0KTsKPiA+ICAgICAgICAgICAgICAg ICBnb3RvIGVycl9mcmVlOwo+ID4gICAgICAgICB9Cj4gPgo+ID4gLSAgICAgICByZXQgPSBkZXZt X3JlcXVlc3RfdGhyZWFkZWRfaXJxKCZwZGV2LT5kZXYsIGxtYy0+bXNpeF9lbnQudmVjdG9yLAo+ ID4gKyAgICAgICByZXQgPSBkZXZtX3JlcXVlc3RfdGhyZWFkZWRfaXJxKCZwZGV2LT5kZXYsIHBj aV9pcnFfdmVjdG9yKHBkZXYsIDApLAo+ID4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHRodW5kZXJ4X2xtY19lcnJfaXNyLAo+ID4gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHRodW5kZXJ4X2xtY190aHJlYWRlZF9pc3IsIDAsCj4gPiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIltFREFDXSBUaHVuZGVyWCBMTUMi LCBtY2kpOwo+ID4gQEAgLTEwNzksNyArMTA3Nyw2IEBAIHN0cnVjdCB0aHVuZGVyeF9vY3ggewo+ ID4gICAgICAgICBzdHJ1Y3QgZWRhY19kZXZpY2VfY3RsX2luZm8gKmVkYWNfZGV2Owo+ID4KPiA+ ICAgICAgICAgc3RydWN0IGRlbnRyeSAqZGVidWdmczsKPiA+IC0gICAgICAgc3RydWN0IG1zaXhf ZW50cnkgbXNpeF9lbnRbT0NYX0lOVFNdOwo+ID4KPiA+ICAgICAgICAgc3RydWN0IG9jeF9jb21f ZXJyX2N0eCBjb21fZXJyX2N0eFtSSU5HX0VOVFJJRVNdOwo+ID4gICAgICAgICBzdHJ1Y3Qgb2N4 X2xpbmtfZXJyX2N0eCBsaW5rX2Vycl9jdHhbUklOR19FTlRSSUVTXTsKPiA+IEBAIC0xMDk1LDEy ICsxMDkyLDkgQEAgc3RydWN0IHRodW5kZXJ4X29jeCB7Cj4gPiAgI2RlZmluZSBPQ1hfT1RIRVJf U0laRSAgICAgICAgICg1MCAqIEFSUkFZX1NJWkUob2N4X2NvbV9saW5rX2Vycm9ycykpCj4gPgo+ ID4gIC8qIFRoaXMgaGFuZGxlciBpcyB0aHJlYWRlZCAqLwo+ID4gLXN0YXRpYyBpcnFyZXR1cm5f dCB0aHVuZGVyeF9vY3hfY29tX2lzcihpbnQgaXJxLCB2b2lkICppcnFfaWQpCj4gPiArc3RhdGlj IGlycXJldHVybl90IHRodW5kZXJ4X29jeF9jb21faXNyKGludCBpcnEsIHZvaWQgKmRldl9pZCkK PiA+ICB7Cj4gPiAtICAgICAgIHN0cnVjdCBtc2l4X2VudHJ5ICptc2l4ID0gaXJxX2lkOwo+ID4g LSAgICAgICBzdHJ1Y3QgdGh1bmRlcnhfb2N4ICpvY3ggPSBjb250YWluZXJfb2YobXNpeCwgc3Ry dWN0IHRodW5kZXJ4X29jeCwKPiA+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIG1zaXhfZW50W21zaXgtPmVudHJ5XSk7Cj4gPiAtCj4gPiArICAgICAgIHN0 cnVjdCB0aHVuZGVyeF9vY3ggKm9jeCA9IChzdHJ1Y3QgdGh1bmRlcnhfb2N4ICopIGRldl9pZDsK PiA+ICAgICAgICAgaW50IGxhbmU7Cj4gPiAgICAgICAgIHVuc2lnbmVkIGxvbmcgaGVhZCA9IHJp bmdfcG9zKG9jeC0+Y29tX3JpbmdfaGVhZCwKPiA+ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgQVJSQVlfU0laRShvY3gtPmNvbV9lcnJfY3R4KSk7Cj4gPiBAQCAtMTEyNCwx MiArMTExOCw5IEBAIHN0YXRpYyBpcnFyZXR1cm5fdCB0aHVuZGVyeF9vY3hfY29tX2lzcihpbnQg aXJxLCB2b2lkICppcnFfaWQpCj4gPiAgICAgICAgIHJldHVybiBJUlFfV0FLRV9USFJFQUQ7Cj4g PiAgfQo+ID4KPiA+IC1zdGF0aWMgaXJxcmV0dXJuX3QgdGh1bmRlcnhfb2N4X2NvbV90aHJlYWRl ZF9pc3IoaW50IGlycSwgdm9pZCAqaXJxX2lkKQo+ID4gK3N0YXRpYyBpcnFyZXR1cm5fdCB0aHVu ZGVyeF9vY3hfY29tX3RocmVhZGVkX2lzcihpbnQgaXJxLCB2b2lkICpkZXZfaWQpCj4gPiAgewo+ ID4gLSAgICAgICBzdHJ1Y3QgbXNpeF9lbnRyeSAqbXNpeCA9IGlycV9pZDsKPiA+IC0gICAgICAg c3RydWN0IHRodW5kZXJ4X29jeCAqb2N4ID0gY29udGFpbmVyX29mKG1zaXgsIHN0cnVjdCB0aHVu ZGVyeF9vY3gsCj4gPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBtc2l4X2VudFttc2l4LT5lbnRyeV0pOwo+ID4gLQo+ID4gKyAgICAgICBzdHJ1Y3QgdGh1 bmRlcnhfb2N4ICpvY3ggPSAoc3RydWN0IHRodW5kZXJ4X29jeCAqKSBkZXZfaWQ7Cj4gPiAgICAg ICAgIGlycXJldHVybl90IHJldCA9IElSUV9OT05FOwo+ID4KPiA+ICAgICAgICAgdW5zaWduZWQg bG9uZyB0YWlsOwo+ID4gQEAgLTExODgsMTYgKzExNzksMTQgQEAgc3RhdGljIGlycXJldHVybl90 IHRodW5kZXJ4X29jeF9jb21fdGhyZWFkZWRfaXNyKGludCBpcnEsIHZvaWQgKmlycV9pZCkKPiA+ ICAgICAgICAgcmV0dXJuIHJldDsKPiA+ICB9Cj4gPgo+ID4gLXN0YXRpYyBpcnFyZXR1cm5fdCB0 aHVuZGVyeF9vY3hfbG5rX2lzcihpbnQgaXJxLCB2b2lkICppcnFfaWQpCj4gPiArc3RhdGljIGly cXJldHVybl90IHRodW5kZXJ4X29jeF9sbmtfaXNyKGludCBpcnEsIHZvaWQgKmRldl9pZCkKPiA+ ICB7Cj4gPiAtICAgICAgIHN0cnVjdCBtc2l4X2VudHJ5ICptc2l4ID0gaXJxX2lkOwo+ID4gLSAg ICAgICBzdHJ1Y3QgdGh1bmRlcnhfb2N4ICpvY3ggPSBjb250YWluZXJfb2YobXNpeCwgc3RydWN0 IHRodW5kZXJ4X29jeCwKPiA+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIG1zaXhfZW50W21zaXgtPmVudHJ5XSk7Cj4gPiArICAgICAgIHN0cnVjdCB0aHVu ZGVyeF9vY3ggKm9jeCA9IChzdHJ1Y3QgdGh1bmRlcnhfb2N4ICopIGRldl9pZDsKPiA+ICAgICAg ICAgdW5zaWduZWQgbG9uZyBoZWFkID0gcmluZ19wb3Mob2N4LT5saW5rX3JpbmdfaGVhZCwKPiA+ ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQVJSQVlfU0laRShvY3gtPmxp bmtfZXJyX2N0eCkpOwo+ID4gICAgICAgICBzdHJ1Y3Qgb2N4X2xpbmtfZXJyX2N0eCAqY3R4ID0g Jm9jeC0+bGlua19lcnJfY3R4W2hlYWRdOwo+ID4KPiA+IC0gICAgICAgY3R4LT5saW5rID0gbXNp eC0+ZW50cnk7Cj4gPiArICAgICAgIGN0eC0+bGluayA9IGlycSAtIHBjaV9pcnFfdmVjdG9yKG9j eC0+cGRldiwgMCk7Cj4gCj4gVGhpcyBhc3N1bWVzIE1TSVggdmVjdG9ycyBhcmUgYWxsb2NhdGVk IHNlcXVlbnRpYWxseSwgYXMgZmFyIGFzIEkgY2FuCj4gdGVsbC4gSXMgdGhpcyBiZWhhdmlvciBn dWFyYW50ZWVkPwoKRnJvbSBsb29raW5nIGF0IHRoZSBpbXBsZW1lbnRhdGlvbiBpbiBwY2lfaXJx X3ZlY3RvciBJIHdvdWxkIHNheSBpdCBpcy4KCj4gQXMgYSBwcmVjYXV0aW9uLCBhIGNoZWNrIGZv ciAwIDw9IGN0eC0+bGluayA8PSAyIG1pZ2h0IG5lZWQgdG8gYmUgYWRkZWQgaGVyZS4KPiAKPiA+ ICAgICAgICAgY3R4LT5yZWdfY29tX2xpbmtfaW50ID0gcmVhZHEob2N4LT5yZWdzICsgT0NYX0NP TV9MSU5LWF9JTlQoY3R4LT5saW5rKSk7Cj4gPgo+ID4gICAgICAgICB3cml0ZXEoY3R4LT5yZWdf Y29tX2xpbmtfaW50LCBvY3gtPnJlZ3MgKyBPQ1hfQ09NX0xJTktYX0lOVChjdHgtPmxpbmspKTsK PiA+IEBAIC0xMjA3LDExICsxMTk2LDkgQEAgc3RhdGljIGlycXJldHVybl90IHRodW5kZXJ4X29j eF9sbmtfaXNyKGludCBpcnEsIHZvaWQgKmlycV9pZCkKPiA+ICAgICAgICAgcmV0dXJuIElSUV9X QUtFX1RIUkVBRDsKPiA+ICB9Cj4gPgo+ID4gLXN0YXRpYyBpcnFyZXR1cm5fdCB0aHVuZGVyeF9v Y3hfbG5rX3RocmVhZGVkX2lzcihpbnQgaXJxLCB2b2lkICppcnFfaWQpCj4gPiArc3RhdGljIGly cXJldHVybl90IHRodW5kZXJ4X29jeF9sbmtfdGhyZWFkZWRfaXNyKGludCBpcnEsIHZvaWQgKmRl dl9pZCkKPiA+ICB7Cj4gPiAtICAgICAgIHN0cnVjdCBtc2l4X2VudHJ5ICptc2l4ID0gaXJxX2lk Owo+ID4gLSAgICAgICBzdHJ1Y3QgdGh1bmRlcnhfb2N4ICpvY3ggPSBjb250YWluZXJfb2YobXNp eCwgc3RydWN0IHRodW5kZXJ4X29jeCwKPiA+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIG1zaXhfZW50W21zaXgtPmVudHJ5XSk7Cj4gPiArICAgICAgIHN0 cnVjdCB0aHVuZGVyeF9vY3ggKm9jeCA9IChzdHJ1Y3QgdGh1bmRlcnhfb2N4ICopIGRldl9pZDsK PiA+ICAgICAgICAgaXJxcmV0dXJuX3QgcmV0ID0gSVJRX05PTkU7Cj4gPiAgICAgICAgIHVuc2ln bmVkIGxvbmcgdGFpbDsKPiA+ICAgICAgICAgc3RydWN0IG9jeF9saW5rX2Vycl9jdHggKmN0eDsK PiA+IEBAIC0xNDEwLDIwICsxMzk3LDE1IEBAIHN0YXRpYyBpbnQgdGh1bmRlcnhfb2N4X3Byb2Jl KHN0cnVjdCBwY2lfZGV2ICpwZGV2LAo+ID4KPiA+ICAgICAgICAgb2N4LT5wZGV2ID0gcGRldjsK PiA+Cj4gPiAtICAgICAgIGZvciAoaSA9IDA7IGkgPCBPQ1hfSU5UUzsgaSsrKSB7Cj4gPiAtICAg ICAgICAgICAgICAgb2N4LT5tc2l4X2VudFtpXS5lbnRyeSA9IGk7Cj4gPiAtICAgICAgICAgICAg ICAgb2N4LT5tc2l4X2VudFtpXS52ZWN0b3IgPSAwOwo+ID4gLSAgICAgICB9Cj4gPiAtCj4gPiAt ICAgICAgIHJldCA9IHBjaV9lbmFibGVfbXNpeF9leGFjdChwZGV2LCBvY3gtPm1zaXhfZW50LCBP Q1hfSU5UUyk7Cj4gPiAtICAgICAgIGlmIChyZXQpIHsKPiA+ICsgICAgICAgcmV0ID0gcGNpX2Fs bG9jX2lycV92ZWN0b3JzKHBkZXYsIDEsIE9DWF9JTlRTLCBQQ0lfSVJRX01TSVgpOwo+ID4gKyAg ICAgICBpZiAocmV0IDwgMCkgewo+ID4gICAgICAgICAgICAgICAgIGRldl9lcnIoJnBkZXYtPmRl diwgIkNhbm5vdCBlbmFibGUgaW50ZXJydXB0OiAlZFxuIiwgcmV0KTsKPiA+ICAgICAgICAgICAg ICAgICBnb3RvIGVycl9mcmVlOwo+ID4gICAgICAgICB9Cj4gCj4gV2hhdCBoYXBwZW5zIGlmIGxl c3MgdGhhbiBPQ1hfSU5UUyB2ZWN0b3JzIGFyZSBhbGxvY2F0ZWQ/Cj4KClRoZSBzYW1lIGJlaGF2 aW91ciBhcyBiZWZvcmUsIGl0IGlzIGlnbm9yZWQuCgpSZWdhcmRzLApKYW4KCj4gPgo+ID4gICAg ICAgICBmb3IgKGkgPSAwOyBpIDwgT0NYX0lOVFM7IGkrKykgewo+ID4gICAgICAgICAgICAgICAg IHJldCA9IGRldm1fcmVxdWVzdF90aHJlYWRlZF9pcnEoJnBkZXYtPmRldiwKPiA+IC0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9jeC0+bXNpeF9lbnRbaV0u dmVjdG9yLAo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgcGNpX2lycV92ZWN0b3IocGRldiwgaSksCj4gPiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAoaSA9PSAzKSA/Cj4gPiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGh1bmRlcnhfb2N4X2NvbV9pc3IgOgo+ID4g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRodW5kZXJ4 X29jeF9sbmtfaXNyLAo+ID4gQEAgLTE0MzEsNyArMTQxMyw3IEBAIHN0YXRpYyBpbnQgdGh1bmRl cnhfb2N4X3Byb2JlKHN0cnVjdCBwY2lfZGV2ICpwZGV2LAo+ID4gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRodW5kZXJ4X29jeF9jb21fdGhyZWFkZWRf aXNyIDoKPiA+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB0aHVuZGVyeF9vY3hfbG5rX3RocmVhZGVkX2lzciwKPiA+ICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAsICJbRURBQ10gVGh1bmRlclggT0NYIiwKPiA+ IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZvY3gtPm1z aXhfZW50W2ldKTsKPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIG9jeCk7Cj4gPiAgICAgICAgICAgICAgICAgaWYgKHJldCkKPiA+ICAgICAgICAgICAg ICAgICAgICAgICAgIGdvdG8gZXJyX2ZyZWU7Cj4gPiAgICAgICAgIH0KPiA+IEBAIC0xNzczLDE5 ICsxNzU1LDE0IEBAIHN0cnVjdCB0aHVuZGVyeF9sMmMgewo+ID4KPiA+ICAgICAgICAgaW50IGlu ZGV4Owo+ID4KPiA+IC0gICAgICAgc3RydWN0IG1zaXhfZW50cnkgbXNpeF9lbnQ7Cj4gPiAtCj4g PiAgICAgICAgIHN0cnVjdCBsMmNfZXJyX2N0eCBlcnJfY3R4W1JJTkdfRU5UUklFU107Cj4gPiAg ICAgICAgIHVuc2lnbmVkIGxvbmcgcmluZ19oZWFkOwo+ID4gICAgICAgICB1bnNpZ25lZCBsb25n IHJpbmdfdGFpbDsKPiA+ICB9Owo+ID4KPiA+IC1zdGF0aWMgaXJxcmV0dXJuX3QgdGh1bmRlcnhf bDJjX3RhZF9pc3IoaW50IGlycSwgdm9pZCAqaXJxX2lkKQo+ID4gK3N0YXRpYyBpcnFyZXR1cm5f dCB0aHVuZGVyeF9sMmNfdGFkX2lzcihpbnQgaXJxLCB2b2lkICpkZXZfaWQpCj4gPiAgewo+ID4g LSAgICAgICBzdHJ1Y3QgbXNpeF9lbnRyeSAqbXNpeCA9IGlycV9pZDsKPiA+IC0gICAgICAgc3Ry dWN0IHRodW5kZXJ4X2wyYyAqdGFkID0gY29udGFpbmVyX29mKG1zaXgsIHN0cnVjdCB0aHVuZGVy eF9sMmMsCj4gPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBtc2l4X2VudCk7Cj4gPiAtCj4gPiArICAgICAgIHN0cnVjdCB0aHVuZGVyeF9sMmMgKnRhZCA9 IChzdHJ1Y3QgdGh1bmRlcnhfbDJjICopIGRldl9pZDsKPiA+ICAgICAgICAgdW5zaWduZWQgbG9u ZyBoZWFkID0gcmluZ19wb3ModGFkLT5yaW5nX2hlYWQsIEFSUkFZX1NJWkUodGFkLT5lcnJfY3R4 KSk7Cj4gPiAgICAgICAgIHN0cnVjdCBsMmNfZXJyX2N0eCAqY3R4ID0gJnRhZC0+ZXJyX2N0eFto ZWFkXTsKPiA+Cj4gPiBAQCAtMTgxMiwxMiArMTc4OSw5IEBAIHN0YXRpYyBpcnFyZXR1cm5fdCB0 aHVuZGVyeF9sMmNfdGFkX2lzcihpbnQgaXJxLCB2b2lkICppcnFfaWQpCj4gPiAgICAgICAgIHJl dHVybiBJUlFfV0FLRV9USFJFQUQ7Cj4gPiAgfQo+ID4KPiA+IC1zdGF0aWMgaXJxcmV0dXJuX3Qg dGh1bmRlcnhfbDJjX2NiY19pc3IoaW50IGlycSwgdm9pZCAqaXJxX2lkKQo+ID4gK3N0YXRpYyBp cnFyZXR1cm5fdCB0aHVuZGVyeF9sMmNfY2JjX2lzcihpbnQgaXJxLCB2b2lkICpkZXZfaWQpCj4g PiAgewo+ID4gLSAgICAgICBzdHJ1Y3QgbXNpeF9lbnRyeSAqbXNpeCA9IGlycV9pZDsKPiA+IC0g ICAgICAgc3RydWN0IHRodW5kZXJ4X2wyYyAqY2JjID0gY29udGFpbmVyX29mKG1zaXgsIHN0cnVj dCB0aHVuZGVyeF9sMmMsCj4gPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBtc2l4X2VudCk7Cj4gPiAtCj4gPiArICAgICAgIHN0cnVjdCB0aHVuZGVyeF9s MmMgKmNiYyA9IChzdHJ1Y3QgdGh1bmRlcnhfbDJjICopIGRldl9pZDsKPiA+ICAgICAgICAgdW5z aWduZWQgbG9uZyBoZWFkID0gcmluZ19wb3MoY2JjLT5yaW5nX2hlYWQsIEFSUkFZX1NJWkUoY2Jj LT5lcnJfY3R4KSk7Cj4gPiAgICAgICAgIHN0cnVjdCBsMmNfZXJyX2N0eCAqY3R4ID0gJmNiYy0+ ZXJyX2N0eFtoZWFkXTsKPiA+Cj4gPiBAQCAtMTg0MSwxMiArMTgxNSw5IEBAIHN0YXRpYyBpcnFy ZXR1cm5fdCB0aHVuZGVyeF9sMmNfY2JjX2lzcihpbnQgaXJxLCB2b2lkICppcnFfaWQpCj4gPiAg ICAgICAgIHJldHVybiBJUlFfV0FLRV9USFJFQUQ7Cj4gPiAgfQo+ID4KPiA+IC1zdGF0aWMgaXJx cmV0dXJuX3QgdGh1bmRlcnhfbDJjX21jaV9pc3IoaW50IGlycSwgdm9pZCAqaXJxX2lkKQo+ID4g K3N0YXRpYyBpcnFyZXR1cm5fdCB0aHVuZGVyeF9sMmNfbWNpX2lzcihpbnQgaXJxLCB2b2lkICpk ZXZfaWQpCj4gPiAgewo+ID4gLSAgICAgICBzdHJ1Y3QgbXNpeF9lbnRyeSAqbXNpeCA9IGlycV9p ZDsKPiA+IC0gICAgICAgc3RydWN0IHRodW5kZXJ4X2wyYyAqbWNpID0gY29udGFpbmVyX29mKG1z aXgsIHN0cnVjdCB0aHVuZGVyeF9sMmMsCj4gPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBtc2l4X2VudCk7Cj4gPiAtCj4gPiArICAgICAgIHN0cnVjdCB0 aHVuZGVyeF9sMmMgKm1jaSA9IChzdHJ1Y3QgdGh1bmRlcnhfbDJjICopIGRldl9pZDsKPiA+ICAg ICAgICAgdW5zaWduZWQgbG9uZyBoZWFkID0gcmluZ19wb3MobWNpLT5yaW5nX2hlYWQsIEFSUkFZ X1NJWkUobWNpLT5lcnJfY3R4KSk7Cj4gPiAgICAgICAgIHN0cnVjdCBsMmNfZXJyX2N0eCAqY3R4 ID0gJm1jaS0+ZXJyX2N0eFtoZWFkXTsKPiA+Cj4gPiBAQCAtMTg2MiwxMiArMTgzMyw5IEBAIHN0 YXRpYyBpcnFyZXR1cm5fdCB0aHVuZGVyeF9sMmNfbWNpX2lzcihpbnQgaXJxLCB2b2lkICppcnFf aWQpCj4gPiAgICAgICAgIHJldHVybiBJUlFfV0FLRV9USFJFQUQ7Cj4gPiAgfQo+ID4KPiA+IC1z dGF0aWMgaXJxcmV0dXJuX3QgdGh1bmRlcnhfbDJjX3RocmVhZGVkX2lzcihpbnQgaXJxLCB2b2lk ICppcnFfaWQpCj4gPiArc3RhdGljIGlycXJldHVybl90IHRodW5kZXJ4X2wyY190aHJlYWRlZF9p c3IoaW50IGlycSwgdm9pZCAqZGV2X2lkKQo+ID4gIHsKPiA+IC0gICAgICAgc3RydWN0IG1zaXhf ZW50cnkgKm1zaXggPSBpcnFfaWQ7Cj4gPiAtICAgICAgIHN0cnVjdCB0aHVuZGVyeF9sMmMgKmwy YyA9IGNvbnRhaW5lcl9vZihtc2l4LCBzdHJ1Y3QgdGh1bmRlcnhfbDJjLAo+ID4gLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXNpeF9lbnQpOwo+ID4gLQo+ ID4gKyAgICAgICBzdHJ1Y3QgdGh1bmRlcnhfbDJjICpsMmMgPSAoc3RydWN0IHRodW5kZXJ4X2wy YyAqKSBkZXZfaWQ7Cj4gPiAgICAgICAgIHVuc2lnbmVkIGxvbmcgdGFpbCA9IHJpbmdfcG9zKGwy Yy0+cmluZ190YWlsLCBBUlJBWV9TSVpFKGwyYy0+ZXJyX2N0eCkpOwo+ID4gICAgICAgICBzdHJ1 Y3QgbDJjX2Vycl9jdHggKmN0eCA9ICZsMmMtPmVycl9jdHhbdGFpbF07Cj4gPiAgICAgICAgIGly cXJldHVybl90IHJldCA9IElSUV9OT05FOwo+ID4gQEAgLTIwNDksMjAgKzIwMTcsMTcgQEAgc3Rh dGljIGludCB0aHVuZGVyeF9sMmNfcHJvYmUoc3RydWN0IHBjaV9kZXYgKnBkZXYsCj4gPiAgICAg ICAgIGwyYy0+cmluZ19oZWFkID0gMDsKPiA+ICAgICAgICAgbDJjLT5yaW5nX3RhaWwgPSAwOwo+ ID4KPiA+IC0gICAgICAgbDJjLT5tc2l4X2VudC5lbnRyeSA9IDA7Cj4gPiAtICAgICAgIGwyYy0+ bXNpeF9lbnQudmVjdG9yID0gMDsKPiA+IC0KPiA+IC0gICAgICAgcmV0ID0gcGNpX2VuYWJsZV9t c2l4X2V4YWN0KHBkZXYsICZsMmMtPm1zaXhfZW50LCAxKTsKPiA+IC0gICAgICAgaWYgKHJldCkg ewo+ID4gKyAgICAgICByZXQgPSBwY2lfYWxsb2NfaXJxX3ZlY3RvcnMocGRldiwgMSwgMSwgUENJ X0lSUV9NU0lYKTsKPiA+ICsgICAgICAgaWYgKHJldCA8IDApIHsKPiA+ICAgICAgICAgICAgICAg ICBkZXZfZXJyKCZwZGV2LT5kZXYsICJDYW5ub3QgZW5hYmxlIGludGVycnVwdDogJWRcbiIsIHJl dCk7Cj4gPiAgICAgICAgICAgICAgICAgZ290byBlcnJfZnJlZTsKPiA+ICAgICAgICAgfQo+ID4K PiA+IC0gICAgICAgcmV0ID0gZGV2bV9yZXF1ZXN0X3RocmVhZGVkX2lycSgmcGRldi0+ZGV2LCBs MmMtPm1zaXhfZW50LnZlY3RvciwKPiA+ICsgICAgICAgcmV0ID0gZGV2bV9yZXF1ZXN0X3RocmVh ZGVkX2lycSgmcGRldi0+ZGV2LCBwY2lfaXJxX3ZlY3RvcihwZGV2LCAwKSwKPiA+ICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHVuZGVyeF9sMmNfaXNyLAo+ID4gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRodW5kZXJ4X2wyY190aHJlYWRl ZF9pc3IsCj4gPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwgIltF REFDXSBUaHVuZGVyWCBMMkMiLAo+ID4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICZsMmMtPm1zaXhfZW50KTsKPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBsMmMpOwo+ID4gICAgICAgICBpZiAocmV0KQo+ID4gICAgICAgICAgICAgICAg IGdvdG8gZXJyX2ZyZWU7Cj4gPgo+ID4gLS0KPiA+IDEuOS4xCj4gPgo+IAo+IFJlZ2FyZHMsCj4g U2VyZ2V5Ci0tLQpUbyB1bnN1YnNjcmliZSBmcm9tIHRoaXMgbGlzdDogc2VuZCB0aGUgbGluZSAi dW5zdWJzY3JpYmUgbGludXgtZWRhYyIgaW4KdGhlIGJvZHkgb2YgYSBtZXNzYWdlIHRvIG1ham9y ZG9tb0B2Z2VyLmtlcm5lbC5vcmcKTW9yZSBtYWpvcmRvbW8gaW5mbyBhdCAgaHR0cDovL3ZnZXIu a2VybmVsLm9yZy9tYWpvcmRvbW8taW5mby5odG1sCg== From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753628AbdEQRXk (ORCPT ); Wed, 17 May 2017 13:23:40 -0400 Received: from mail-by2nam03on0047.outbound.protection.outlook.com ([104.47.42.47]:25376 "EHLO NAM03-BY2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751395AbdEQRXg (ORCPT ); Wed, 17 May 2017 13:23:36 -0400 Authentication-Results: gmail.com; dkim=none (message not signed) header.d=none;gmail.com; dmarc=none action=none header.from=caviumnetworks.com; Date: Wed, 17 May 2017 19:23:18 +0200 From: Jan Glauber To: Sergei Temerkhanov Cc: Borislav Petkov , linux-edac@vger.kernel.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH] edac: thunderx: Replace pci_alloc_msix_exact Message-ID: <20170517172318.GA22379@hc> References: <1494928456-7166-1-git-send-email-jglauber@cavium.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.21 (2010-09-15) X-Originating-IP: [46.5.204.67] X-ClientProxiedBy: HE1P192CA0019.EURP192.PROD.OUTLOOK.COM (10.171.121.157) To BN3PR07MB2580.namprd07.prod.outlook.com (10.167.5.8) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 737d514b-d473-4876-e8a2-08d49d4971a1 X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001)(201703131423075)(201703031133081);SRVR:BN3PR07MB2580; X-Microsoft-Exchange-Diagnostics: 1;BN3PR07MB2580;3:RkcOocYC160TgFGy/8vV4RnkNEYnflz8UDvFvxIZP/iTLCEvBJdf630dBcUrk5DEcPhYnHd8XLKLaXU7LZ1UrVE62gjnnVhiyjB/YJgYh1sC9aFGldlV9gQJ3A0VmlU7tMum+c1loGZG/qgVfRKvxlPtIKyPtn8K/rR73975QRiUARt+46mkySN762jUyQ0dwsg9+BoTQVt0J+RBG4XQt+1TgGLEhsmfvARwrCYuosc5bzVmKYSA+x7ndjzxInnpjPvXWtuGZ+vgJRmnN52mNFa12ogdPaKS/M0KsZhrXVOSJiQ9qg0txAGbGfZmEaZdv1rAuGKWwQosnSlL+WhmSg==;25:96sXQfl6+qz6q0C9JGbJMC2N1vf32JcuKJIVzn0Hra6sq7GN/8LO3fjqyc+f5kM5B4H+Br7v/KCYpd6dayItcDzfPr1f/6ayJeZTGwLdHjSlXQBND4wZpRMFNVmasuK9PVMQPvEGwWOv1USwEuSPIomGCsmzoe8R/zqR54q3w9UPsdESJUSrjOOhtvJwoXDPEf2p03JJIVxlstnJqnBzljbmohH6KKOxhYk7VlfftwEt7Em5VUT4XdPRcjoQLbL0CjO8nQTfu84VLhr9hTyvt7CkJ2jT5cKMEr421v6gtnhqmr0XR2vj52LSIUUl2CzkUz8NZ8jZnW0OXQAnPlCYMkUkvtvykl12fo7tySTTY54JuWK5UpDh6p/QsB12ua3FtmMZHrzsWYcKR5uXLiJYs9yOLxGVE1C2UerBm4zQpNGIT5LQfIQYr1UkLg8ohPmxNjRTaN8Vs62LKNQ9t1dKsZfQUkheuy4d/NWl6SgZaIc= X-Microsoft-Exchange-Diagnostics: 1;BN3PR07MB2580;31:Ht31/uVd8jZCVOMP9kvhLrcHzfvPcEFhbq/oZRpaZqA8jpncjBzozUwIDz1c8oAbtlMfPS9f3F3mntgAPAZiDcjC4ilUTSr408gcss4P1MByTJxgjWm+Vrr6h/xSqE6neDyzlO+08Q/NdplocVI8mf8/03HA/FO3//zpzBYsJ60quM65zLU8TIms4E16V2s0AfS2Ph5n/QJ4jAYAtGBwg3lTSGWruPJ9zhcoueGCL0SlvPZcNn+G1L28KUCnCeh6gstE2NPAF3A2FXMpwPEqYw==;20:Z++1iabSgNYgqjXMlTW59qq3u1dp5Y/h74wAWWEsKEUJsK8jYhXa6dIVveplUO0RL0sSYBP2Jt+qu+heH7QMGPjm42p6FjsFAUrhB1aZCnHsyFQF+bu/JnA9Gk5hWAGlUWYjwYOEQheklrkeolAdq9TE/xaJRZ7Cl1MwrkOc7cNrV0205bl/dBG4bxoI7U85P0ikcOgAm8kap1hMamGnIGfHFzNf73blnsVX85ttplRBuJUZJw1eh8KzfIa1kerXH29qFsNPK9S7/EfeESgmydX19Zi9fiNmjXd/SVnXzwvb5gnQb5OJE2gRS67rR0BVC2YqnaAmzEeRaIAM2VdeyVbp7c1gfIUGcmIHtMs4Kzm0aKE0KftARVQEhhUG52NZp+1hktJ+gjAvGJlD4IZj/LXIpphdDCZubFRC8Drt1dmX0VIhxjrrHx7ZkUyWoAUDHNmocrl7KPUOEUiXDXyRNHZXCzZhz6OiwtHtF24vUmcwztU8MKm92Gl6Z+PGc0s26m9ogzg45QWL8I4eJyLky1W8K14qaMwe7RjPMpIosR55mjaFK/oEtTUObYoj9oxu+67XnOxPyVmhNeNysROXCeCeLw+/lkPkv9bbguFMOBE= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(788757137089); X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(6040450)(601004)(2401047)(8121501046)(5005006)(10201501046)(3002001)(93006095)(6041248)(20161123560025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123564025)(20161123562025)(20161123555025)(20161123558100)(6072148);SRVR:BN3PR07MB2580;BCL:0;PCL:0;RULEID:;SRVR:BN3PR07MB2580; X-Microsoft-Exchange-Diagnostics: 1;BN3PR07MB2580;4:r6+6jsneuj/nrVFlS+uwV2GRwr2LqnGAgvzWDfEOmp4ZgWqdV/w3OlixgsW0w97Y+uS+xDj2wwEOCZiF9A1xjy9UcuxV5g5mwUMV2nTvheQ6O7/NM3SZphN4vMljR7TSBfzrUnC94xnhyl6w8csHwU69KJaJ5ljh0vNXecOj93PH66GRMoGHBPEXthHR+sYURIpDiOz+DlINEHarZ2XAyNzH/Fhj5TRjDvAqIazMl+dNpNTRkZ+VYkK2rSsxLgUGox/+yBXQYZfdTKGwbMIwd41w8Ns9/ibkQKZU67mBPKyGXgaK5IW8ae8Tje9XyvjS4ViiHWyHc1zDPZbv0VCbcKh86INKt7C0aIECEfo5glJg7bZA0pRERHl8GNxgApIHZBJp5FJotbyXAUhrVq6JQSSb+Vow1PA1KbT6206vkh5BWEAkb9+z6CpmbwtjAXpnAoWVbe0GaYthmE8YOOJVIMVdTCKtTQZCaZxWPlg/FequrWhdnkzsjdQ0WnbKQqsKJYHybiQ8wSVxQUOkOkDX35g/Nm7l/WwHH0Ds6RISrhAxKrQtUP2YsKggcHyzS2qXrqe9O7GifT0BbboX2nSNceKezyWHnXUQxQCBoB5WxHurSNiro9OoTRa3MW4sjrB0k6ugguJtB8iQw01hP6erGoVaKDejxhMUUa9loBzOu5Z9kE/Fa46S6HefrQmEBRYaI7nu+toUyhILKOLyZPLdAnwoesfwecdzZM+bBxEFDjrnB3NXl4TXXhf/WAEl8a4/B3psW93aHFqLgvR1qJf6FK5wjA/JpU0VxbQaoJLax+EmctQKtKK0E0qPv2lHjPLs X-Forefront-PRVS: 0310C78181 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(4630300001)(6009001)(39850400002)(39400400002)(39410400002)(39450400003)(39840400002)(24454002)(377454003)(83506001)(305945005)(7736002)(33656002)(2906002)(478600001)(81166006)(53546009)(9686003)(55016002)(25786009)(8676002)(33716001)(53936002)(3846002)(42882006)(5660300001)(229853002)(6916009)(2950100002)(4326008)(66066001)(6496005)(189998001)(42186005)(6116002)(38730400002)(110136004)(1076002)(6666003)(54356999)(72206003)(76176999)(50466002)(23726003)(47776003)(50986999)(4001350100001)(18370500001);DIR:OUT;SFP:1101;SCL:1;SRVR:BN3PR07MB2580;H:hc;FPR:;SPF:None;MLV:sfv;LANG:en; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;BN3PR07MB2580;23:Oq6MzBZ8p9qbc1cAW8qJMXZVnh9okmP0yl6oqnETD?= =?us-ascii?Q?l0tb6YmX2jWHW9kM/G9TqPOUamlJyiTnPWlyNj0jWfIC9boGmCwnVsnGfts9?= =?us-ascii?Q?EQCvmddWYqE477TpOZJNuhkgVmOon5zpDb1dPDFUwfLDwIeRlgxusTJAbMRC?= =?us-ascii?Q?/JOmKbWhXf/8QVm5qGHhQt+/MWKaflJ1k19JR047ZhzFGNkCsyJ1sV16UWw3?= =?us-ascii?Q?Yh5ASpxqErhKXmC+tIg3nm05ngKEujPQlvmWYxhG2xxCqmgR2UHiwLAwzRJ0?= =?us-ascii?Q?eG4Ko4QQCfWKAjGASChiL8PJr+G813jfWjt/kuo4Ff798A6QdgtzlvC3nAPj?= =?us-ascii?Q?uuyFSaETQurNBepZHT4G4nvzq2k+tXICuEzfyxt2Q1ZaiMGS9IU8y2O7xTnY?= =?us-ascii?Q?nb/X/5oJaHqaoTbsfXMkmlPuWwhzUR2/RRlZq2IhpxBeAGh+EVynXHiK8Kzv?= =?us-ascii?Q?XunzcpbfngLRlvaYzGTinX7OHfnTJDRYkdcaAyY0mDbUU8Z8LPQIlBhbOakI?= =?us-ascii?Q?RZrYoPqgEsriydy1le6yYuT/aAVUbxxpd0rGguqtCDgBhEWhuea5c/CNUGTl?= =?us-ascii?Q?fZjn/XByQqDD0PHGk095Crd5xEhNM5FDfw03Y3ZyonRpBFnALrMAalUHPlHR?= =?us-ascii?Q?x9NNNnQb2rFH+n5++AYc7gy3nMahWWDoV7ua8y29zjKmRWhj4BIlGV3T9bRv?= =?us-ascii?Q?yiz4mxajCpjPJ19L65UvaT0/W8Pq7Eixtfzlz5MGmPtIhSt9c6s0Hw8lIDxR?= =?us-ascii?Q?p92wKaUHd3qbGiWyvO+XbVeFVGHixOhiOKigVcdxySmx2EIA5F84CZSupoBF?= =?us-ascii?Q?LAHNP6ptouBN36FgCINRtSI605autSglwHBhzbBBS7JS3EGv+Ut8NSzrf/nx?= =?us-ascii?Q?U1pP0OZxJffWS2SjTUADTtqY/cENE7dAT4LlqN3LANqxYJfUn6BeaB3mDB6S?= =?us-ascii?Q?ICvrsCQwtS2lu6djcgaSA5OkJQrEQ+vYet8hKEWsUwvd5nhU0qOwmwkXaHvJ?= =?us-ascii?Q?jXHD0Kw9Z94VtlV9sboVzBUYo/7aKHd1Eb3XDDxKz7s6GEV2H56LwugGm4cn?= =?us-ascii?Q?FmhDRz6IbuwNRrYO8X5YD5dKk6ShwwNVMfPiJiADX4pb+PBcLh0TUM2sV9Ei?= =?us-ascii?Q?wdKm1sOuJvHJKXYT6IBnsEiRdTxKlOna0lq4xga+tvHHmf3T20Ne8T2aXvxa?= =?us-ascii?Q?mrQTbr2RMdiLlaBC2nwppOH802XpontqQv0?= X-Microsoft-Exchange-Diagnostics: 1;BN3PR07MB2580;6:rBZwBl+XUuT3FmFBXrqfFmPNarOOSyUQFZ6jCFleGYsS0VZHf9wx8aAi5L5/8gup9IzWh8Mpec7UfCpxoqrof8SJaBRskw+DUEuAl7T9F5thud9r5ENlebftkKvZ0UUR/kVM7vImZoZO3h18bm0qVi3+sSzo+s3DqDkInXN9+MDFs+ATDqbpKtzl/C9bnNxXg8vR3x4pq+9czvRUEk/GIH+1fA4O/PHo1j/MjCik0vKj9sDb4/W5tQhDRf98yX1xayJeFsmmd3Z8GyBY0aIDeJneyUi7oVKTMldsnTVeB1pQF1AxcbTBgAvdb178TJFje4PyXjTW+S4a7ni1vqzl/otaeSxLIVH3GXbsxcfmvNKzXJO06w3JD2H40WRrIflLBY33s3PRE9EvQc3InjWoheg2NmNX1wGa757hPbOuNf4P9EejFcfSFGkB4Thsb67IFG2ogUe1glz2qnCe8OSj36UO0rIxQdiKnbgHDZ5f5XK+uIJt95omBRk8ewhMMv9Ik8qE8GBzca38+6JZa/Svcw==;5:vfRGupltN7Iwjq3DdpBTSNYkOeLhVBg9dbQDqzoMPzRxEnJ9KLWiDaDEdVPQKJBvsqdIbLdJKjwAGg80EP1Z5t2CWOcS3Q8j4gmW7euzUYYsAykv6haO8YTp4UCghAkOx4gnj71vV56aHjfRGx8GDQ==;24:oJ2nG18YiZjaj1HAUvDLG9zngzpj7cpDtyHInSoJCdG6A6brU1Q6lpTYsDZQ1Mvu0cjRaPPBPbKw9JwV18cOULS89XKPsEUbQmWnLw3acHY= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;BN3PR07MB2580;7:o9Gl8XgSZUUv58zsHDpbZepvlyvw8eraR+OFLckIp0hR0eRl1Fu5yO5TGta4K+8EVPChnH3L5hWJZPuhWrPUvrc+QKJOWWpK6MUw9StrxjDr+gcyF8lI6oL0/CX94UxiCOnZIlpw8E64EUZ9yLU80P/5BRN2iqYDOL1JNlDHmmFRRFWgXLOsdQSgTELhFPQ3f/qHal3FJCFSbFhl803eoRpM6bGOgXK/uvRSfNJ1XlnxLvSPNjjDopBlpxcBEBL3ispYDwX5o/cxCjeBsexNPl1oGxUUleAoiaorowQDz47E+X9wO7AwFE2i6GovsnVbiwgi1UTfYP+CYTa8yI2W4A== X-OriginatorOrg: caviumnetworks.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 May 2017 17:23:31.9823 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN3PR07MB2580 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wed, May 17, 2017 at 06:35:05PM +0300, Sergei Temerkhanov wrote: > CIL... > > On Tue, May 16, 2017 at 12:54 PM, Jan Glauber wrote: > > Replace the deprecated pci_alloc_msix_exact() with > > pci_alloc_irq_vectors(). > > > > Avoid the container_of usage in the interrupt handler > > by simply passing the required struct as data to the interrupt > > handler. > > > > Signed-off-by: Jan Glauber > > --- > > drivers/edac/thunderx_edac.c | 91 ++++++++++++++------------------------------ > > 1 file changed, 28 insertions(+), 63 deletions(-) > > > > diff --git a/drivers/edac/thunderx_edac.c b/drivers/edac/thunderx_edac.c > > index 86d585c..da12804 100644 > > --- a/drivers/edac/thunderx_edac.c > > +++ b/drivers/edac/thunderx_edac.c > > @@ -183,7 +183,6 @@ struct lmc_err_ctx { > > struct thunderx_lmc { > > void __iomem *regs; > > struct pci_dev *pdev; > > - struct msix_entry msix_ent; > > > > atomic_t ecc_int; > > > > @@ -738,18 +737,17 @@ static int thunderx_lmc_probe(struct pci_dev *pdev, > > mci->scrub_mode = SCRUB_NONE; > > > > lmc->pdev = pdev; > > - lmc->msix_ent.entry = 0; > > > > lmc->ring_head = 0; > > lmc->ring_tail = 0; > > > > - ret = pci_enable_msix_exact(pdev, &lmc->msix_ent, 1); > > - if (ret) { > > + ret = pci_alloc_irq_vectors(pdev, 1, 1, PCI_IRQ_MSIX); > > + if (ret < 0) { > > dev_err(&pdev->dev, "Cannot enable interrupt: %d\n", ret); > > goto err_free; > > } > > > > - ret = devm_request_threaded_irq(&pdev->dev, lmc->msix_ent.vector, > > + ret = devm_request_threaded_irq(&pdev->dev, pci_irq_vector(pdev, 0), > > thunderx_lmc_err_isr, > > thunderx_lmc_threaded_isr, 0, > > "[EDAC] ThunderX LMC", mci); > > @@ -1079,7 +1077,6 @@ struct thunderx_ocx { > > struct edac_device_ctl_info *edac_dev; > > > > struct dentry *debugfs; > > - struct msix_entry msix_ent[OCX_INTS]; > > > > struct ocx_com_err_ctx com_err_ctx[RING_ENTRIES]; > > struct ocx_link_err_ctx link_err_ctx[RING_ENTRIES]; > > @@ -1095,12 +1092,9 @@ struct thunderx_ocx { > > #define OCX_OTHER_SIZE (50 * ARRAY_SIZE(ocx_com_link_errors)) > > > > /* This handler is threaded */ > > -static irqreturn_t thunderx_ocx_com_isr(int irq, void *irq_id) > > +static irqreturn_t thunderx_ocx_com_isr(int irq, void *dev_id) > > { > > - struct msix_entry *msix = irq_id; > > - struct thunderx_ocx *ocx = container_of(msix, struct thunderx_ocx, > > - msix_ent[msix->entry]); > > - > > + struct thunderx_ocx *ocx = (struct thunderx_ocx *) dev_id; > > int lane; > > unsigned long head = ring_pos(ocx->com_ring_head, > > ARRAY_SIZE(ocx->com_err_ctx)); > > @@ -1124,12 +1118,9 @@ static irqreturn_t thunderx_ocx_com_isr(int irq, void *irq_id) > > return IRQ_WAKE_THREAD; > > } > > > > -static irqreturn_t thunderx_ocx_com_threaded_isr(int irq, void *irq_id) > > +static irqreturn_t thunderx_ocx_com_threaded_isr(int irq, void *dev_id) > > { > > - struct msix_entry *msix = irq_id; > > - struct thunderx_ocx *ocx = container_of(msix, struct thunderx_ocx, > > - msix_ent[msix->entry]); > > - > > + struct thunderx_ocx *ocx = (struct thunderx_ocx *) dev_id; > > irqreturn_t ret = IRQ_NONE; > > > > unsigned long tail; > > @@ -1188,16 +1179,14 @@ static irqreturn_t thunderx_ocx_com_threaded_isr(int irq, void *irq_id) > > return ret; > > } > > > > -static irqreturn_t thunderx_ocx_lnk_isr(int irq, void *irq_id) > > +static irqreturn_t thunderx_ocx_lnk_isr(int irq, void *dev_id) > > { > > - struct msix_entry *msix = irq_id; > > - struct thunderx_ocx *ocx = container_of(msix, struct thunderx_ocx, > > - msix_ent[msix->entry]); > > + struct thunderx_ocx *ocx = (struct thunderx_ocx *) dev_id; > > unsigned long head = ring_pos(ocx->link_ring_head, > > ARRAY_SIZE(ocx->link_err_ctx)); > > struct ocx_link_err_ctx *ctx = &ocx->link_err_ctx[head]; > > > > - ctx->link = msix->entry; > > + ctx->link = irq - pci_irq_vector(ocx->pdev, 0); > > This assumes MSIX vectors are allocated sequentially, as far as I can > tell. Is this behavior guaranteed? >>From looking at the implementation in pci_irq_vector I would say it is. > As a precaution, a check for 0 <= ctx->link <= 2 might need to be added here. > > > ctx->reg_com_link_int = readq(ocx->regs + OCX_COM_LINKX_INT(ctx->link)); > > > > writeq(ctx->reg_com_link_int, ocx->regs + OCX_COM_LINKX_INT(ctx->link)); > > @@ -1207,11 +1196,9 @@ static irqreturn_t thunderx_ocx_lnk_isr(int irq, void *irq_id) > > return IRQ_WAKE_THREAD; > > } > > > > -static irqreturn_t thunderx_ocx_lnk_threaded_isr(int irq, void *irq_id) > > +static irqreturn_t thunderx_ocx_lnk_threaded_isr(int irq, void *dev_id) > > { > > - struct msix_entry *msix = irq_id; > > - struct thunderx_ocx *ocx = container_of(msix, struct thunderx_ocx, > > - msix_ent[msix->entry]); > > + struct thunderx_ocx *ocx = (struct thunderx_ocx *) dev_id; > > irqreturn_t ret = IRQ_NONE; > > unsigned long tail; > > struct ocx_link_err_ctx *ctx; > > @@ -1410,20 +1397,15 @@ static int thunderx_ocx_probe(struct pci_dev *pdev, > > > > ocx->pdev = pdev; > > > > - for (i = 0; i < OCX_INTS; i++) { > > - ocx->msix_ent[i].entry = i; > > - ocx->msix_ent[i].vector = 0; > > - } > > - > > - ret = pci_enable_msix_exact(pdev, ocx->msix_ent, OCX_INTS); > > - if (ret) { > > + ret = pci_alloc_irq_vectors(pdev, 1, OCX_INTS, PCI_IRQ_MSIX); > > + if (ret < 0) { > > dev_err(&pdev->dev, "Cannot enable interrupt: %d\n", ret); > > goto err_free; > > } > > What happens if less than OCX_INTS vectors are allocated? > The same behaviour as before, it is ignored. Regards, Jan > > > > for (i = 0; i < OCX_INTS; i++) { > > ret = devm_request_threaded_irq(&pdev->dev, > > - ocx->msix_ent[i].vector, > > + pci_irq_vector(pdev, i), > > (i == 3) ? > > thunderx_ocx_com_isr : > > thunderx_ocx_lnk_isr, > > @@ -1431,7 +1413,7 @@ static int thunderx_ocx_probe(struct pci_dev *pdev, > > thunderx_ocx_com_threaded_isr : > > thunderx_ocx_lnk_threaded_isr, > > 0, "[EDAC] ThunderX OCX", > > - &ocx->msix_ent[i]); > > + ocx); > > if (ret) > > goto err_free; > > } > > @@ -1773,19 +1755,14 @@ struct thunderx_l2c { > > > > int index; > > > > - struct msix_entry msix_ent; > > - > > struct l2c_err_ctx err_ctx[RING_ENTRIES]; > > unsigned long ring_head; > > unsigned long ring_tail; > > }; > > > > -static irqreturn_t thunderx_l2c_tad_isr(int irq, void *irq_id) > > +static irqreturn_t thunderx_l2c_tad_isr(int irq, void *dev_id) > > { > > - struct msix_entry *msix = irq_id; > > - struct thunderx_l2c *tad = container_of(msix, struct thunderx_l2c, > > - msix_ent); > > - > > + struct thunderx_l2c *tad = (struct thunderx_l2c *) dev_id; > > unsigned long head = ring_pos(tad->ring_head, ARRAY_SIZE(tad->err_ctx)); > > struct l2c_err_ctx *ctx = &tad->err_ctx[head]; > > > > @@ -1812,12 +1789,9 @@ static irqreturn_t thunderx_l2c_tad_isr(int irq, void *irq_id) > > return IRQ_WAKE_THREAD; > > } > > > > -static irqreturn_t thunderx_l2c_cbc_isr(int irq, void *irq_id) > > +static irqreturn_t thunderx_l2c_cbc_isr(int irq, void *dev_id) > > { > > - struct msix_entry *msix = irq_id; > > - struct thunderx_l2c *cbc = container_of(msix, struct thunderx_l2c, > > - msix_ent); > > - > > + struct thunderx_l2c *cbc = (struct thunderx_l2c *) dev_id; > > unsigned long head = ring_pos(cbc->ring_head, ARRAY_SIZE(cbc->err_ctx)); > > struct l2c_err_ctx *ctx = &cbc->err_ctx[head]; > > > > @@ -1841,12 +1815,9 @@ static irqreturn_t thunderx_l2c_cbc_isr(int irq, void *irq_id) > > return IRQ_WAKE_THREAD; > > } > > > > -static irqreturn_t thunderx_l2c_mci_isr(int irq, void *irq_id) > > +static irqreturn_t thunderx_l2c_mci_isr(int irq, void *dev_id) > > { > > - struct msix_entry *msix = irq_id; > > - struct thunderx_l2c *mci = container_of(msix, struct thunderx_l2c, > > - msix_ent); > > - > > + struct thunderx_l2c *mci = (struct thunderx_l2c *) dev_id; > > unsigned long head = ring_pos(mci->ring_head, ARRAY_SIZE(mci->err_ctx)); > > struct l2c_err_ctx *ctx = &mci->err_ctx[head]; > > > > @@ -1862,12 +1833,9 @@ static irqreturn_t thunderx_l2c_mci_isr(int irq, void *irq_id) > > return IRQ_WAKE_THREAD; > > } > > > > -static irqreturn_t thunderx_l2c_threaded_isr(int irq, void *irq_id) > > +static irqreturn_t thunderx_l2c_threaded_isr(int irq, void *dev_id) > > { > > - struct msix_entry *msix = irq_id; > > - struct thunderx_l2c *l2c = container_of(msix, struct thunderx_l2c, > > - msix_ent); > > - > > + struct thunderx_l2c *l2c = (struct thunderx_l2c *) dev_id; > > unsigned long tail = ring_pos(l2c->ring_tail, ARRAY_SIZE(l2c->err_ctx)); > > struct l2c_err_ctx *ctx = &l2c->err_ctx[tail]; > > irqreturn_t ret = IRQ_NONE; > > @@ -2049,20 +2017,17 @@ static int thunderx_l2c_probe(struct pci_dev *pdev, > > l2c->ring_head = 0; > > l2c->ring_tail = 0; > > > > - l2c->msix_ent.entry = 0; > > - l2c->msix_ent.vector = 0; > > - > > - ret = pci_enable_msix_exact(pdev, &l2c->msix_ent, 1); > > - if (ret) { > > + ret = pci_alloc_irq_vectors(pdev, 1, 1, PCI_IRQ_MSIX); > > + if (ret < 0) { > > dev_err(&pdev->dev, "Cannot enable interrupt: %d\n", ret); > > goto err_free; > > } > > > > - ret = devm_request_threaded_irq(&pdev->dev, l2c->msix_ent.vector, > > + ret = devm_request_threaded_irq(&pdev->dev, pci_irq_vector(pdev, 0), > > thunderx_l2c_isr, > > thunderx_l2c_threaded_isr, > > 0, "[EDAC] ThunderX L2C", > > - &l2c->msix_ent); > > + l2c); > > if (ret) > > goto err_free; > > > > -- > > 1.9.1 > > > > Regards, > Sergey