lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:   Mon, 7 Dec 2020 09:44:20 -0800
From:   "Kuppuswamy, Sathyanarayanan" 
        <sathyanarayanan.kuppuswamy@...ux.intel.com>
To:     Paul Menzel <pmenzel@...gen.mpg.de>
Cc:     Bjorn Helgaas <bhelgaas@...gle.com>, linux-pci@...r.kernel.org,
        LKML <linux-kernel@...r.kernel.org>,
        Mario Limonciello <mario.limonciello@...l.com>,
        Mika Westerberg <mika.westerberg@...ux.intel.com>
Subject: Re: pci 0000:00:07.0: DPC: RP PIO log size 0 is invalid

Hi,

On 12/7/20 5:08 AM, Paul Menzel wrote:
> [Bringing the issue up on the list in case the Linux Bugzilla is not monitored/used.]
> 
> 
> Dear Linux folks,
> 
> 
> On Intel Tiger Lake Dell laptop, Linux logs the error below [1].
> 
>      [    0.507307] pci 0000:00:07.0: DPC: RP PIO log size 0 is invalid
>      [    0.508835] pci 0000:00:07.2: DPC: RP PIO log size 0 is invalid
> 
>      $ lspci -nn -s 00:07
>      00:07.0 PCI bridge [0604]: Intel Corporation Tiger Lake-LP Thunderbolt PCI Express Root Port #0 
> [8086:9a23] (rev 01)
>      00:07.2 PCI bridge [0604]: Intel Corporation Tiger Lake-LP Thunderbolt PCI Express Root Port #2 
> [8086:9a27] (rev 01)
> 
> Commit 2700561817 (PCI/DPC: Cache DPC capabilities in pci_init_capabilities()) [1] probably 
> introduced it in Linux 5.7.
> 
> What does this error actually mean?
> 
>      pdev->dpc_rp_log_size = (cap & PCI_EXP_DPC_RP_PIO_LOG_SIZE) >> 8;
>      if (pdev->dpc_rp_log_size < 4 || pdev->dpc_rp_log_size > 9) {
>          pci_err(pdev, "RP PIO log size %u is invalid\n",
>              pdev->dpc_rp_log_size);
>          pdev->dpc_rp_log_size = 0;
As per PCIe spec r5.0, sec 7.9.15.2, valid RP log size is 4 or greater. Please see
the text copied from spec

- - - -
RP PIO Log Size - This field indicates how many DWORDs are allocated for the RP
PIO log registers, comprised by the RP PIO Header Log, the RP PIO ImpSpec Log,
and RP PIO TLP Prefix Log. If the Root Port supports RP Extensions for DPC, the
value of this field must be 4 or greater; otherwise, the value of
this field must be 0. See Section 7.9.15.11 , Section 7.9.15.12 , and Section 7.9.15.13 .
- - - -

In this case, since "(!(cap & PCI_EXP_DPC_CAP_RP_EXT))" condition is false, RP
EXT is supported. If RP EXT is supported, valid log size should be at-least 4.


>      }
> 
> (I guess `cap & PCI_EXP_DPC_RP_PIO_LOG_SIZE` is zero too?)
> 
> Is it a firmware issue or a hardware issue?
I think this could be hardware issue.
> 
> 
> Kind regards,
> 
> Paul
> 
> 
> [1]: https://bugzilla.kernel.org/show_bug.cgi?id=209943
>       "pci 0000:00:07.0: DPC: RP PIO log size 0 is invalid"
> [2]: 
> https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=27005618178ef9e9bf9c42fd91101771c92e9308 
> 

-- 
Sathyanarayanan Kuppuswamy
Linux Kernel Developer

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ