From mboxrd@z Thu Jan 1 00:00:00 1970 From: Bjorn Helgaas Subject: Re: [PATCH] pci: fix incorrect value returned from pcie_get_speed_cap Date: Tue, 20 Nov 2018 09:13:03 -0600 Message-ID: <20181120151303.GB191199@google.com> References: <20181120004704.GA191199@google.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: List-Id: Discussion list for AMD gfx List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: amd-gfx-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "amd-gfx" To: Alex Deucher Cc: talgi-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org, Linux PCI , mpatocka-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org, amd-gfx list , tariqt-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org T24gVHVlLCBOb3YgMjAsIDIwMTggYXQgMDk6MTc6NTJBTSAtMDUwMCwgQWxleCBEZXVjaGVyIHdy b3RlOgo+IE9uIE1vbiwgTm92IDE5LCAyMDE4IGF0IDc6NDcgUE0gQmpvcm4gSGVsZ2FhcyA8aGVs Z2Fhc0BrZXJuZWwub3JnPiB3cm90ZToKPiA+IE9uIFR1ZSwgT2N0IDMwLCAyMDE4IGF0IDEyOjM2 OjA4UE0gLTA0MDAsIE1pa3VsYXMgUGF0b2NrYSB3cm90ZToKPiA+ID4gVGhlIG1hY3JvcyBQQ0lf RVhQX0xOS0NBUF9TTFNfKkdCIGFyZSB2YWx1ZXMsIG5vdCBiaXQgbWFza3MuIFdlIG11c3QgbWFz awo+ID4gPiB0aGUgcmVnaXN0ZXIgYW5kIGNvbXBhcmUgaXQgYWdhaW5zdCB0aGVtLgo+ID4gPgo+ ID4gPiBUaGlzIHBhdGNoIGZpeGVzIGVycm9ycyAiYW1kZ3B1OiBbcG93ZXJwbGF5XSBmYWlsZWQg dG8gc2VuZCBtZXNzYWdlIDI2MQo+ID4gPiByZXQgaXMgMCIgZXJyb3JzIHdoZW4gUENJZS12MyBj YXJkIGlzIHBsdWdnZWQgaW50byBQQ0llLXYxIHNsb3QsIGJlY2F1c2UKPiA+ID4gdGhlIHNsb3Qg aXMgYmVpbmcgaW5jb3JyZWN0bHkgcmVwb3J0ZWQgYXMgUENJZS12MyBjYXBhYmxlLgo+ID4gPgo+ ID4gPiBTaWduZWQtb2ZmLWJ5OiBNaWt1bGFzIFBhdG9ja2EgPG1wYXRvY2thQHJlZGhhdC5jb20+ Cj4gPiA+IEZpeGVzOiA2Y2Y1N2JlMGY3OGUgKCJQQ0k6IEFkZCBwY2llX2dldF9zcGVlZF9jYXAo KSB0byBmaW5kIG1heCBzdXBwb3J0ZWQgbGluayBzcGVlZCIpCj4gPiA+IENjOiBzdGFibGVAdmdl ci5rZXJuZWwub3JnICAgICMgdjQuMTcrCj4gPiA+Cj4gPiA+IC0tLQo+ID4gPiAgZHJpdmVycy9w Y2kvcGNpLmMgfCAgICA4ICsrKystLS0tCj4gPiA+ICAxIGZpbGUgY2hhbmdlZCwgNCBpbnNlcnRp b25zKCspLCA0IGRlbGV0aW9ucygtKQo+ID4gPgo+ID4gPiBJbmRleDogbGludXgtNC4xOS9kcml2 ZXJzL3BjaS9wY2kuYwo+ID4gPiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Cj4gPiA+IC0tLSBsaW51eC00LjE5Lm9yaWcv ZHJpdmVycy9wY2kvcGNpLmMgMjAxOC0xMC0zMCAxNjo1ODo1OC4wMDAwMDAwMDAgKzAxMDAKPiA+ ID4gKysrIGxpbnV4LTQuMTkvZHJpdmVycy9wY2kvcGNpLmMgICAgICAyMDE4LTEwLTMwIDE2OjU4 OjU4LjAwMDAwMDAwMCArMDEwMAo+ID4gPiBAQCAtNTQ5MiwxMyArNTQ5MiwxMyBAQCBlbnVtIHBj aV9idXNfc3BlZWQgcGNpZV9nZXRfc3BlZWRfY2FwKHN0Cj4gPiA+Cj4gPiA+ICAgICAgIHBjaWVf Y2FwYWJpbGl0eV9yZWFkX2R3b3JkKGRldiwgUENJX0VYUF9MTktDQVAsICZsbmtjYXApOwo+ID4g PiAgICAgICBpZiAobG5rY2FwKSB7Cj4gPiA+IC0gICAgICAgICAgICAgaWYgKGxua2NhcCAmIFBD SV9FWFBfTE5LQ0FQX1NMU18xNl8wR0IpCj4gPiA+ICsgICAgICAgICAgICAgaWYgKChsbmtjYXAg JiBQQ0lfRVhQX0xOS0NBUF9TTFMpID09IFBDSV9FWFBfTE5LQ0FQX1NMU18xNl8wR0IpCj4gPiA+ ICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gUENJRV9TUEVFRF8xNl8wR1Q7Cj4gPiA+IC0g ICAgICAgICAgICAgZWxzZSBpZiAobG5rY2FwICYgUENJX0VYUF9MTktDQVBfU0xTXzhfMEdCKQo+ ID4gPiArICAgICAgICAgICAgIGVsc2UgaWYgKChsbmtjYXAgJiBQQ0lfRVhQX0xOS0NBUF9TTFMp ID09IFBDSV9FWFBfTE5LQ0FQX1NMU184XzBHQikKPiA+ID4gICAgICAgICAgICAgICAgICAgICAg IHJldHVybiBQQ0lFX1NQRUVEXzhfMEdUOwo+ID4gPiAtICAgICAgICAgICAgIGVsc2UgaWYgKGxu a2NhcCAmIFBDSV9FWFBfTE5LQ0FQX1NMU181XzBHQikKPiA+ID4gKyAgICAgICAgICAgICBlbHNl IGlmICgobG5rY2FwICYgUENJX0VYUF9MTktDQVBfU0xTKSA9PVBDSV9FWFBfTE5LQ0FQX1NMU181 XzBHQikKPiA+ID4gICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBQQ0lFX1NQRUVEXzVfMEdU Owo+ID4gPiAtICAgICAgICAgICAgIGVsc2UgaWYgKGxua2NhcCAmIFBDSV9FWFBfTE5LQ0FQX1NM U18yXzVHQikKPiA+ID4gKyAgICAgICAgICAgICBlbHNlIGlmICgobG5rY2FwICYgUENJX0VYUF9M TktDQVBfU0xTKSA9PSBQQ0lfRVhQX0xOS0NBUF9TTFNfMl81R0IpCj4gPiA+ICAgICAgICAgICAg ICAgICAgICAgICByZXR1cm4gUENJRV9TUEVFRF8yXzVHVDsKPiA+ID4gICAgICAgfQo+ID4gPgo+ ID4KPiA+IEknZCBsaWtlIHRvIGFwcGx5IHRoaXMgYXMgYmVsb3csIHdoZXJlIEkgcmVtb3ZlZCB0 aGUgOF8wR0IgYW5kIDE2XzBHQgo+ID4gY2FzZXMgYXMgcmVjb21tZW5kZWQgYnkgdGhlIHNwZWMu ICBJIGNhbid0IHRlc3QgaXQgbXlzZWxmLCBhbmQgdGhlCj4gPiBidWd6aWxsYXMgZG9uJ3QgY29u dGFpbiBlbm91Z2ggaW5mb3JtYXRpb24gZm9yIG1lIHRvIGNvbmZpcm0gdGhhdCB0aGUKPiA+IHBh dGNoIGJlbG93IGlzIGVub3VnaCAodGhlICJsc3BjaSAtdnYiIG91dHB1dCBvZiB0aGUgcm9vdCBw b3J0IGFuZCBHUFUKPiA+IGlzIHdoYXQgSSB3b3VsZCBuZWVkKS4KPiA+Cj4gPiBJJ20gY29uZnVz ZWQgYWJvdXQgdGhlIGZhY3QgdGhhdCA2Y2Y1N2JlMGY3OGUgYXBwZWFyZWQgaW4gdjQuMTcsIGJ1 dAo+ID4gdjQuMTggd29ya3MgZmluZSBhY2NvcmRpbmcgdG8gYm90aCBidWd6aWxsYXMuCj4gCj4g VGhpcyBpc3N1ZSBhZmZlY3RzIEFNRCBHUFVzIGJlY2F1c2Ugd2Ugc3dpdGNoZWQgZnJvbSB1c2lu ZyBhbiBvcGVuCj4gY29kZWQgY2hlY2sgZm9yIHBjaWUgbGluayBzcGVlZHMgaW4gdGhlIGRyaXZl ciB0byB1c2luZyB0aGUgY29tbW9uCj4gcGNpZSB2YXJpYW50cyBpbgo+IGh0dHBzOi8vZ2l0Lmtl cm5lbC5vcmcvcHViL3NjbS9saW51eC9rZXJuZWwvZ2l0L3RvcnZhbGRzL2xpbnV4LmdpdC9jb21t aXQvP2g9djQuMTkmaWQ9NWQ5YTYzMzA0MDMyNzFmYmIxMjQ0ZjE0MzgwYTdjYzQ0NjYyNzk2ZgoK T0ssIHRoYW5rcy4gIEkgYWRkZWQgdGhhdCBTSEExIGFuZCBhIG5vdGUgdG8gZXhwbGFpbiB0aGUg Y29ubmVjdGlvbi4KCj4gVGhlIHBhdGNoIGJlbG93IHdvdWxkIHJlZ3Jlc3MgcGVyZm9ybWFuY2Us IGF0IGxlYXN0IG9uIEFNRCBHUFVzLCBzaW5jZQo+IHdlJ2QgZW5kIHVwIHJlcG9ydGluZyBhIG1h eCBzcGVlZCBvZiBnZW4gMiAoNSBHVC9zKSB3aGljaCB3b3VsZCBjYXVzZQo+IHRoZSBkcml2ZXIg dG8gbGltaXQgdGhlIHNwZWVkIHRvIGdlbjIgZXZlbiBpZiBnZW4zIG9yIDQgYXJlIGF2YWlsYWJs ZS4KCkkgZ3Vlc3MgdGhpcyBtZWFucyB0aGVzZSBwYXJ0cyBhcmUgYnJva2VuIHdpdGggcmVzcGVj dCB0byB0aGUgc3BlYywKc2luY2UgdGhleSBzdXBwb3J0IGdlbjMgc3BlZWRzIGJ1dCBkb24ndCBp bXBsZW1lbnQgTG5rQ2FwMj8KCkdlbjIsIGkuZS4sIFBDSWUgcjIuMSwgb25seSBkZWZpbmVkIDIu NSBHVC9zIGFuZCA1IEdUL3MuICBEZXZpY2VzCmNhcGFibGUgb2YgdGhlIGhpZ2hlciBzcGVlZHMg YWRkZWQgYnkgUENJZSByMy4wIGFyZSBzdXBwb3NlZCB0bwppbXBsZW1lbnQgTG5rQ2FwMiwgYnV0 IGlmIHdlJ3JlIGV2ZW4gZ2V0dGluZyB0byB0aGlzIGNvZGUsIGl0IG1lYW5zCkxua0NhcDIgd2Fz IHplcm8uCgpJZiB3ZSBjb25maXJtIHRoYXQgdGhpcyBpcyBhIGRldmljZSBkZWZlY3QsIHRoZSBx dWVzdGlvbiBpcyB3aGF0IHRoZQpiZXN0IHdheSB0byB3b3JrIGFyb3VuZCBpdCBpcy4gIFByb2Jh Ymx5IHRoZSBvcmlnaW5hbCBwYXRjaCBpcyBlYXNpZXIKdGhhbiBzb21lIHNvcnQgb2YgcXVpcmss IGJ1dCB3ZSdkIG5lZWQgdG8gZXhwYW5kIHRoZSBjb21tZW50IGEgbGl0dGxlCmJpdCB0byBleHBs YWluIHdoeSB3ZSdyZSBub3QgZm9sbG93aW5nIHRoZSBzcGVjIHJlY29tbWVuZGF0aW9uLgoKSXQg bG9va3MgbGlrZSBsc3BjaSBwcm9iYWJseSBhbHNvIG5lZWRzIHNvbWUgdXBkYXRpbmcgaGVyZSAt LSBpdApjdXJyZW50bHkgZG9lc24ndCBkbyBhbnl0aGluZyBhdCBhbGwgd2l0aCBMbmtDYXAyLgoK PiA+IEkgYWxzbyBkb24ndCBoYXZlIGEgZ29vZCBmZWVsIGZvciB3aGV0aGVyIHRoaXMgaXMgdXJn ZW50IGVub3VnaCB0byBiZQo+ID4gYSB2NC4yMCBmaXggb3Igd2hldGhlciBpdCBjYW4gd2FpdCBm b3IgdjQuMjEuICBFdmlkZW5jZSBlaXRoZXIgd2F5Cj4gPiB3b3VsZCBoZWxwLgo+IAo+IEknZCBs aWtlIGl0IHRvIGxhbmQgZm9yIDQuMTkgYW5kIDQuMjAgYXQgbGVhc3QuICBBbHRlcm5hdGl2ZWx5 LCB3ZQo+IGNvdWxkIHJldmVydCBhbGwgb2YgdGhlIGRybSBwYXRjaGVzIHRvIGFuZCBicmluZyBi YWNrIGFsbCB0aGUgb3Blbgo+IGNvZGVkIGltcGxlbWVudGF0aW9ucywgYnV0IGl0J3MgYSBmYWly bHkgbGFyZ2UgbnVtYmVyIG9mIHBhdGNoZXMgdG8KPiByZXZlcnQuCgpPSywgc291bmRzIGxpa2Ug aXQgbWFrZXMgc2Vuc2UgdG8gZG8gdGhpcyBmb3IgdjQuMjAgYW5kIGJhY2twb3J0IGl0IGF0Cmxl YXN0IHRvIHY0LjE5IHN0YWJsZS4gIEkgZG8gd2FudCB0byBnZXQgdGhlIHBsYWNlcyBiZWxvdyBm aXhlZCBhbHNvLgpUaGV5IG1heSBub3QgYmUgYXMgdXJnZW50LCBidXQgd2UgbWlnaHQgYXMgd2Vs bCB0cnkgYW5kIG1ha2UKZXZlcnl0aGluZyBjb25zaXN0ZW50IHdoaWxlIHdlJ3JlIGxvb2tpbmcg YXQgaXQuCgo+ID4gV2UgYWxzbyBuZWVkIHNpbWlsYXIgZml4ZXMgaW4gcGNpX3NldF9idXNfc3Bl ZWQoKSwgcGNpZV9zcGVlZHMoKQo+ID4gKGhmaTEpLCBjb2JhbHRfcGNpZV9zdGF0dXNfc2hvdygp LCBoYmFfaW9jdGxfY2FsbGJhY2soKSwKPiA+IHFsYTI0eHhfcGNpX2luZm9fc3RyKCksIGFuZCBt YXliZSBhIGNvdXBsZSBvdGhlciBwbGFjZXMuCj4gPgo+ID4gQmpvcm4KPiA+Cj4gPgo+ID4gY29t bWl0IDg3MWY3M2FiZjRiOGU2YWVlOGEyMDY3NzVmOTQ0ZWRlN2M3ZDcyNTAKPiA+IEF1dGhvcjog TWlrdWxhcyBQYXRvY2thIDxtcGF0b2NrYUByZWRoYXQuY29tPgo+ID4gRGF0ZTogICBUdWUgT2N0 IDMwIDEyOjM2OjA4IDIwMTggLTA0MDAKPiA+Cj4gPiAgICAgUENJOiBGaXggaW5jb3JyZWN0IHZh bHVlIHJldHVybmVkIGZyb20gcGNpZV9nZXRfc3BlZWRfY2FwKCkKPiA+Cj4gPiAgICAgVGhlIG1h Y3JvcyBQQ0lfRVhQX0xOS0NBUF9TTFNfKkdCIGFyZSB2YWx1ZXMsIG5vdCBiaXQgbWFza3MuICBX ZSBtdXN0IG1hc2sKPiA+ICAgICB0aGUgcmVnaXN0ZXIgYW5kIGNvbXBhcmUgaXQgYWdhaW5zdCB0 aGVtLgo+ID4KPiA+ICAgICBUaGlzIHBhdGNoIGZpeGVzIGVycm9ycyAiYW1kZ3B1OiBbcG93ZXJw bGF5XSBmYWlsZWQgdG8gc2VuZCBtZXNzYWdlIDI2MSByZXQKPiA+ICAgICBpcyAwIiBlcnJvcnMg d2hlbiBQQ0llLXYzIGNhcmQgaXMgcGx1Z2dlZCBpbnRvIFBDSWUtdjEgc2xvdCwgYmVjYXVzZSB0 aGUKPiA+ICAgICBzbG90IGlzIGJlaW5nIGluY29ycmVjdGx5IHJlcG9ydGVkIGFzIFBDSWUtdjMg Y2FwYWJsZS4KPiA+Cj4gPiAgICAgRml4ZXM6IDZjZjU3YmUwZjc4ZSAoIlBDSTogQWRkIHBjaWVf Z2V0X3NwZWVkX2NhcCgpIHRvIGZpbmQgbWF4IHN1cHBvcnRlZCBsaW5rIHNwZWVkIikKPiA+ICAg ICBMaW5rOiBodHRwczovL2J1Z3MuZnJlZWRlc2t0b3Aub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDg3 MDQKPiA+ICAgICBMaW5rOiBodHRwczovL2J1Z3MuZnJlZWRlc2t0b3Aub3JnL3Nob3dfYnVnLmNn aT9pZD0xMDg3NzgKPiA+ICAgICBTaWduZWQtb2ZmLWJ5OiBNaWt1bGFzIFBhdG9ja2EgPG1wYXRv Y2thQHJlZGhhdC5jb20+Cj4gPiAgICAgW2JoZWxnYWFzOiB1cGRhdGUgY29tbWVudCwgcmVtb3Zl IHVzZSBvZiBQQ0lfRVhQX0xOS0NBUF9TTFNfOF8wR0IgYW5kCj4gPiAgICAgUENJX0VYUF9MTktD QVBfU0xTXzE2XzBHQiBzaW5jZSB0aG9zZSBzaG91bGQgYmUgY292ZXJlZCBieSBQQ0lfRVhQX0xO S0NBUDJdCj4gPiAgICAgU2lnbmVkLW9mZi1ieTogQmpvcm4gSGVsZ2FhcyA8YmhlbGdhYXNAZ29v Z2xlLmNvbT4KPiA+ICAgICBBY2tlZC1ieTogQWxleCBEZXVjaGVyIDxhbGV4YW5kZXIuZGV1Y2hl ckBhbWQuY29tPgo+ID4gICAgIENjOiBzdGFibGVAdmdlci5rZXJuZWwub3JnICAgICAgIyB2NC4x NysKPiA+Cj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9wY2kvcGNpLmMgYi9kcml2ZXJzL3BjaS9w Y2kuYwo+ID4gaW5kZXggZDA2OGYxMWQwOGE3Li44NTYzZDFkOWIxMDIgMTAwNjQ0Cj4gPiAtLS0g YS9kcml2ZXJzL3BjaS9wY2kuYwo+ID4gKysrIGIvZHJpdmVycy9wY2kvcGNpLmMKPiA+IEBAIC01 NTU2LDkgKzU1NTYsMTMgQEAgZW51bSBwY2lfYnVzX3NwZWVkIHBjaWVfZ2V0X3NwZWVkX2NhcChz dHJ1Y3QgcGNpX2RldiAqZGV2KQo+ID4gICAgICAgICB1MzIgbG5rY2FwMiwgbG5rY2FwOwo+ID4K PiA+ICAgICAgICAgLyoKPiA+IC0gICAgICAgICogUENJZSByNC4wIHNlYyA3LjUuMy4xOCByZWNv bW1lbmRzIHVzaW5nIHRoZSBTdXBwb3J0ZWQgTGluawo+ID4gLSAgICAgICAgKiBTcGVlZHMgVmVj dG9yIGluIExpbmsgQ2FwYWJpbGl0aWVzIDIgd2hlbiBzdXBwb3J0ZWQsIGZhbGxpbmcKPiA+IC0g ICAgICAgICogYmFjayB0byBNYXggTGluayBTcGVlZCBpbiBMaW5rIENhcGFiaWxpdGllcyBvdGhl cndpc2UuCj4gPiArICAgICAgICAqIExpbmsgQ2FwYWJpbGl0aWVzIDIgd2FzIGFkZGVkIGluIFBD SWUgcjMuMCwgc2VjIDcuOC4xOC4gIFRoZQo+ID4gKyAgICAgICAgKiBpbXBsZW1lbnRhdGlvbiBu b3RlIHRoZXJlIHJlY29tbWVuZHMgdXNpbmcgdGhlIFN1cHBvcnRlZCBMaW5rCj4gPiArICAgICAg ICAqIFNwZWVkcyBWZWN0b3IgaW4gTGluayBDYXBhYmlsaXRpZXMgMiB3aGVuIHN1cHBvcnRlZC4K PiA+ICsgICAgICAgICoKPiA+ICsgICAgICAgICogV2l0aG91dCBMaW5rIENhcGFiaWxpdGllcyAy LCBpLmUuLCBwcmlvciB0byBQQ0llIHIzLjAsIHNvZnR3YXJlCj4gPiArICAgICAgICAqIHNob3Vs ZCB1c2UgdGhlIFN1cHBvcnRlZCBMaW5rIFNwZWVkcyBmaWVsZCBpbiBMaW5rIENhcGFiaWxpdGll cywKPiA+ICsgICAgICAgICogd2hlcmUgb25seSAyLjUgR1QvcyBhbmQgNS4wIEdUL3Mgc3BlZWRz IHdlcmUgZGVmaW5lZC4KPiA+ICAgICAgICAgICovCj4gPiAgICAgICAgIHBjaWVfY2FwYWJpbGl0 eV9yZWFkX2R3b3JkKGRldiwgUENJX0VYUF9MTktDQVAyLCAmbG5rY2FwMik7Cj4gPiAgICAgICAg IGlmIChsbmtjYXAyKSB7IC8qIFBDSWUgcjMuMC1jb21wbGlhbnQgKi8KPiA+IEBAIC01NTc1LDEz ICs1NTc5LDkgQEAgZW51bSBwY2lfYnVzX3NwZWVkIHBjaWVfZ2V0X3NwZWVkX2NhcChzdHJ1Y3Qg cGNpX2RldiAqZGV2KQo+ID4KPiA+ICAgICAgICAgcGNpZV9jYXBhYmlsaXR5X3JlYWRfZHdvcmQo ZGV2LCBQQ0lfRVhQX0xOS0NBUCwgJmxua2NhcCk7Cj4gPiAgICAgICAgIGlmIChsbmtjYXApIHsK PiA+IC0gICAgICAgICAgICAgICBpZiAobG5rY2FwICYgUENJX0VYUF9MTktDQVBfU0xTXzE2XzBH QikKPiA+IC0gICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBQQ0lFX1NQRUVEXzE2XzBHVDsK PiA+IC0gICAgICAgICAgICAgICBlbHNlIGlmIChsbmtjYXAgJiBQQ0lfRVhQX0xOS0NBUF9TTFNf OF8wR0IpCj4gPiAtICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gUENJRV9TUEVFRF84XzBH VDsKPiA+IC0gICAgICAgICAgICAgICBlbHNlIGlmIChsbmtjYXAgJiBQQ0lfRVhQX0xOS0NBUF9T TFNfNV8wR0IpCj4gPiArICAgICAgICAgICAgICAgaWYgKChsbmtjYXAgJiBQQ0lfRVhQX0xOS0NB UF9TTFMpID09IFBDSV9FWFBfTE5LQ0FQX1NMU181XzBHQikKPiA+ICAgICAgICAgICAgICAgICAg ICAgICAgIHJldHVybiBQQ0lFX1NQRUVEXzVfMEdUOwo+ID4gLSAgICAgICAgICAgICAgIGVsc2Ug aWYgKGxua2NhcCAmIFBDSV9FWFBfTE5LQ0FQX1NMU18yXzVHQikKPiA+ICsgICAgICAgICAgICAg ICBlbHNlIGlmICgobG5rY2FwICYgUENJX0VYUF9MTktDQVBfU0xTKSA9PSBQQ0lfRVhQX0xOS0NB UF9TTFNfMl81R0IpCj4gPiAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gUENJRV9TUEVF RF8yXzVHVDsKPiA+ICAgICAgICAgfQo+ID4KX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX18KYW1kLWdmeCBtYWlsaW5nIGxpc3QKYW1kLWdmeEBsaXN0cy5mcmVl ZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5m by9hbWQtZ2Z4Cg== From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-15.1 required=3.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,INCLUDES_PATCH,MAILING_LIST_MULTI, MENTIONS_GIT_HOSTING,SIGNED_OFF_BY,SPF_PASS,URIBL_BLOCKED,USER_AGENT_MUTT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 5F48AC28CF8 for ; Tue, 20 Nov 2018 15:13:08 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 1E5A820851 for ; Tue, 20 Nov 2018 15:13:08 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=kernel.org header.i=@kernel.org header.b="GjfooLZt" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 1E5A820851 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=kernel.org Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-pci-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728242AbeKUBmn (ORCPT ); Tue, 20 Nov 2018 20:42:43 -0500 Received: from mail.kernel.org ([198.145.29.99]:59702 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725851AbeKUBmn (ORCPT ); Tue, 20 Nov 2018 20:42:43 -0500 Received: from localhost (173-25-171-118.client.mchsi.com [173.25.171.118]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 72037206BA; Tue, 20 Nov 2018 15:13:05 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1542726785; bh=guKcLinyXsRXGX8eBh2sdUxkgj/JMgzol82PTdVEFbg=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=GjfooLZtAPCh3yQPt87WmStx0h33N9P+mh6dByIL6ecBWyoBn48Tb+wmCa2aTplKw a3SSfDEcvd/GAY2h7zWkRz1A/vRyVPM36YZKPCED+oHkMnJHBawTguykMPTevQdp5c A2BstTISGuPbL33Of+1nmt82x+TrSK5YgEs0m1OU= Date: Tue, 20 Nov 2018 09:13:03 -0600 From: Bjorn Helgaas To: Alex Deucher Cc: mpatocka@redhat.com, Linux PCI , talgi@mellanox.com, tariqt@mellanox.com, amd-gfx list Subject: Re: [PATCH] pci: fix incorrect value returned from pcie_get_speed_cap Message-ID: <20181120151303.GB191199@google.com> References: <20181120004704.GA191199@google.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.10.1 (2018-07-13) Sender: linux-pci-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-pci@vger.kernel.org On Tue, Nov 20, 2018 at 09:17:52AM -0500, Alex Deucher wrote: > On Mon, Nov 19, 2018 at 7:47 PM Bjorn Helgaas wrote: > > On Tue, Oct 30, 2018 at 12:36:08PM -0400, Mikulas Patocka wrote: > > > The macros PCI_EXP_LNKCAP_SLS_*GB are values, not bit masks. We must mask > > > the register and compare it against them. > > > > > > This patch fixes errors "amdgpu: [powerplay] failed to send message 261 > > > ret is 0" errors when PCIe-v3 card is plugged into PCIe-v1 slot, because > > > the slot is being incorrectly reported as PCIe-v3 capable. > > > > > > Signed-off-by: Mikulas Patocka > > > Fixes: 6cf57be0f78e ("PCI: Add pcie_get_speed_cap() to find max supported link speed") > > > Cc: stable@vger.kernel.org # v4.17+ > > > > > > --- > > > drivers/pci/pci.c | 8 ++++---- > > > 1 file changed, 4 insertions(+), 4 deletions(-) > > > > > > Index: linux-4.19/drivers/pci/pci.c > > > =================================================================== > > > --- linux-4.19.orig/drivers/pci/pci.c 2018-10-30 16:58:58.000000000 +0100 > > > +++ linux-4.19/drivers/pci/pci.c 2018-10-30 16:58:58.000000000 +0100 > > > @@ -5492,13 +5492,13 @@ enum pci_bus_speed pcie_get_speed_cap(st > > > > > > pcie_capability_read_dword(dev, PCI_EXP_LNKCAP, &lnkcap); > > > if (lnkcap) { > > > - if (lnkcap & PCI_EXP_LNKCAP_SLS_16_0GB) > > > + if ((lnkcap & PCI_EXP_LNKCAP_SLS) == PCI_EXP_LNKCAP_SLS_16_0GB) > > > return PCIE_SPEED_16_0GT; > > > - else if (lnkcap & PCI_EXP_LNKCAP_SLS_8_0GB) > > > + else if ((lnkcap & PCI_EXP_LNKCAP_SLS) == PCI_EXP_LNKCAP_SLS_8_0GB) > > > return PCIE_SPEED_8_0GT; > > > - else if (lnkcap & PCI_EXP_LNKCAP_SLS_5_0GB) > > > + else if ((lnkcap & PCI_EXP_LNKCAP_SLS) ==PCI_EXP_LNKCAP_SLS_5_0GB) > > > return PCIE_SPEED_5_0GT; > > > - else if (lnkcap & PCI_EXP_LNKCAP_SLS_2_5GB) > > > + else if ((lnkcap & PCI_EXP_LNKCAP_SLS) == PCI_EXP_LNKCAP_SLS_2_5GB) > > > return PCIE_SPEED_2_5GT; > > > } > > > > > > > I'd like to apply this as below, where I removed the 8_0GB and 16_0GB > > cases as recommended by the spec. I can't test it myself, and the > > bugzillas don't contain enough information for me to confirm that the > > patch below is enough (the "lspci -vv" output of the root port and GPU > > is what I would need). > > > > I'm confused about the fact that 6cf57be0f78e appeared in v4.17, but > > v4.18 works fine according to both bugzillas. > > This issue affects AMD GPUs because we switched from using an open > coded check for pcie link speeds in the driver to using the common > pcie variants in > https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?h=v4.19&id=5d9a6330403271fbb1244f14380a7cc44662796f OK, thanks. I added that SHA1 and a note to explain the connection. > The patch below would regress performance, at least on AMD GPUs, since > we'd end up reporting a max speed of gen 2 (5 GT/s) which would cause > the driver to limit the speed to gen2 even if gen3 or 4 are available. I guess this means these parts are broken with respect to the spec, since they support gen3 speeds but don't implement LnkCap2? Gen2, i.e., PCIe r2.1, only defined 2.5 GT/s and 5 GT/s. Devices capable of the higher speeds added by PCIe r3.0 are supposed to implement LnkCap2, but if we're even getting to this code, it means LnkCap2 was zero. If we confirm that this is a device defect, the question is what the best way to work around it is. Probably the original patch is easier than some sort of quirk, but we'd need to expand the comment a little bit to explain why we're not following the spec recommendation. It looks like lspci probably also needs some updating here -- it currently doesn't do anything at all with LnkCap2. > > I also don't have a good feel for whether this is urgent enough to be > > a v4.20 fix or whether it can wait for v4.21. Evidence either way > > would help. > > I'd like it to land for 4.19 and 4.20 at least. Alternatively, we > could revert all of the drm patches to and bring back all the open > coded implementations, but it's a fairly large number of patches to > revert. OK, sounds like it makes sense to do this for v4.20 and backport it at least to v4.19 stable. I do want to get the places below fixed also. They may not be as urgent, but we might as well try and make everything consistent while we're looking at it. > > We also need similar fixes in pci_set_bus_speed(), pcie_speeds() > > (hfi1), cobalt_pcie_status_show(), hba_ioctl_callback(), > > qla24xx_pci_info_str(), and maybe a couple other places. > > > > Bjorn > > > > > > commit 871f73abf4b8e6aee8a206775f944ede7c7d7250 > > Author: Mikulas Patocka > > Date: Tue Oct 30 12:36:08 2018 -0400 > > > > PCI: Fix incorrect value returned from pcie_get_speed_cap() > > > > The macros PCI_EXP_LNKCAP_SLS_*GB are values, not bit masks. We must mask > > the register and compare it against them. > > > > This patch fixes errors "amdgpu: [powerplay] failed to send message 261 ret > > is 0" errors when PCIe-v3 card is plugged into PCIe-v1 slot, because the > > slot is being incorrectly reported as PCIe-v3 capable. > > > > Fixes: 6cf57be0f78e ("PCI: Add pcie_get_speed_cap() to find max supported link speed") > > Link: https://bugs.freedesktop.org/show_bug.cgi?id=108704 > > Link: https://bugs.freedesktop.org/show_bug.cgi?id=108778 > > Signed-off-by: Mikulas Patocka > > [bhelgaas: update comment, remove use of PCI_EXP_LNKCAP_SLS_8_0GB and > > PCI_EXP_LNKCAP_SLS_16_0GB since those should be covered by PCI_EXP_LNKCAP2] > > Signed-off-by: Bjorn Helgaas > > Acked-by: Alex Deucher > > Cc: stable@vger.kernel.org # v4.17+ > > > > diff --git a/drivers/pci/pci.c b/drivers/pci/pci.c > > index d068f11d08a7..8563d1d9b102 100644 > > --- a/drivers/pci/pci.c > > +++ b/drivers/pci/pci.c > > @@ -5556,9 +5556,13 @@ enum pci_bus_speed pcie_get_speed_cap(struct pci_dev *dev) > > u32 lnkcap2, lnkcap; > > > > /* > > - * PCIe r4.0 sec 7.5.3.18 recommends using the Supported Link > > - * Speeds Vector in Link Capabilities 2 when supported, falling > > - * back to Max Link Speed in Link Capabilities otherwise. > > + * Link Capabilities 2 was added in PCIe r3.0, sec 7.8.18. The > > + * implementation note there recommends using the Supported Link > > + * Speeds Vector in Link Capabilities 2 when supported. > > + * > > + * Without Link Capabilities 2, i.e., prior to PCIe r3.0, software > > + * should use the Supported Link Speeds field in Link Capabilities, > > + * where only 2.5 GT/s and 5.0 GT/s speeds were defined. > > */ > > pcie_capability_read_dword(dev, PCI_EXP_LNKCAP2, &lnkcap2); > > if (lnkcap2) { /* PCIe r3.0-compliant */ > > @@ -5575,13 +5579,9 @@ enum pci_bus_speed pcie_get_speed_cap(struct pci_dev *dev) > > > > pcie_capability_read_dword(dev, PCI_EXP_LNKCAP, &lnkcap); > > if (lnkcap) { > > - if (lnkcap & PCI_EXP_LNKCAP_SLS_16_0GB) > > - return PCIE_SPEED_16_0GT; > > - else if (lnkcap & PCI_EXP_LNKCAP_SLS_8_0GB) > > - return PCIE_SPEED_8_0GT; > > - else if (lnkcap & PCI_EXP_LNKCAP_SLS_5_0GB) > > + if ((lnkcap & PCI_EXP_LNKCAP_SLS) == PCI_EXP_LNKCAP_SLS_5_0GB) > > return PCIE_SPEED_5_0GT; > > - else if (lnkcap & PCI_EXP_LNKCAP_SLS_2_5GB) > > + else if ((lnkcap & PCI_EXP_LNKCAP_SLS) == PCI_EXP_LNKCAP_SLS_2_5GB) > > return PCIE_SPEED_2_5GT; > > } > >