Public bug reported:

The Netronome NFP 4000/6000 intelligent NICs have an erratum erratum where
reading/writing to PCI config space addresses above 0x600 can cause the NFP
to generate PCIe completion timeouts. This can result in a system hanging.

This may be avoided by setting the PCI config size correctly and
updating the PCI subsystem to honour config sizes between
PCI_CFG_SPACE_EXP_SIZE (4096) and PCI_CFG_SPACE_SIZE (256).

This problem is resolves in upstream linux since v4.5.

Backports have also been requested to upstream linux stable back to v3.10
and have so far been included in v4.4.10, v4.1.32, v4.18.41 and queued
up for v3.10 stable.

I would like to request that the same backports be made to the Ubuntu 13.0
kernel for Trusty 14.04 LTS. They are as follows:


commit c2e771b02792d222cbcd9617fe71482a64f52647
Author: Simon Horman <simon.hor...@netronome.com>
Date:   Fri Dec 11 11:30:12 2015 +0900

    PCI: Limit config space size for Netronome NFP4000
    
    Like the NFP6000, the NFP4000 as an erratum where reading/writing to PCI
    config space addresses above 0x600 can cause the NFP to generate PCIe
    completion timeouts.
    
    Limit the NFP4000's PF's config space size to 0x600 bytes as is already
    done for the NFP6000.
    
    The NFP4000's VF is 0x6004 (PCI_DEVICE_ID_NETRONOME_NFP6000_VF), the same
    device ID as the NFP6000's VF.  Thus, its config space is already limited
    by the existing use of quirk_nfp6000().
    
    Signed-off-by: Simon Horman <simon.hor...@netronome.com>
    Signed-off-by: Bjorn Helgaas <bhelg...@google.com>

commit 69874ec233871a62e1bc8c89e643993af93a8630
Author: Simon Horman <simon.hor...@netronome.com>
Date:   Fri Dec 11 11:30:11 2015 +0900

    PCI: Add Netronome NFP4000 PF device ID
    
    Add the device ID for the PF of the NFP4000.  The device ID for the VF,
    0x6003, is already present as PCI_DEVICE_ID_NETRONOME_NFP6000_VF.
    
    Signed-off-by: Simon Horman <simon.hor...@netronome.com>
    Signed-off-by: Bjorn Helgaas <bhelg...@google.com>

commit 9f33a2ae59f24452c1076749deb615bccd435ca9
Author: Jason S. McMullan <jason.mcmul...@netronome.com>
Date:   Wed Sep 30 15:35:07 2015 +0900

    PCI: Limit config space size for Netronome NFP6000 family
    
    The NFP6000 has an erratum where reading/writing to PCI config space
    addresses above 0x600 can cause the NFP to generate PCIe completion
    timeouts.
    
    Limit the NFP6000's config space size to 0x600 bytes.
    
    Signed-off-by: Jason S. McMullan <jason.mcmul...@netronome.com>
    [simon: edited changelog]
    Signed-off-by: Simon Horman <simon.hor...@netronome.com>
    Signed-off-by: Bjorn Helgaas <bhelg...@google.com>

commit a755e169031dac9ebaed03302c4921687c271d62
Author: Jason S. McMullan <jason.mcmul...@netronome.com>
Date:   Wed Sep 30 15:35:06 2015 +0900

    PCI: Add Netronome vendor and device IDs
    
    Device IDs for the Netronome NFP3200, NFP3240, NFP6000, and NFP6000 SR-IOV
    devices.
    
    Signed-off-by: Jason S. McMullan <jason.mcmul...@netronome.com>
    [simon: edited changelog]
    Signed-off-by: Simon Horman <simon.hor...@netronome.com>
    Signed-off-by: Bjorn Helgaas <bhelg...@google.com>

commit c20aecf6963d1273d8f6d61c042b4845441ca592
Author: Jason S. McMullan <jason.mcmul...@netronome.com>
Date:   Wed Sep 30 15:35:05 2015 +0900

    PCI: Support PCIe devices with short cfg_size
    
    If a device quirk modifies the pci_dev->cfg_size to be less than
    PCI_CFG_SPACE_EXP_SIZE (4096), but greater than PCI_CFG_SPACE_SIZE (256),
    the PCI sysfs interface truncates the readable size to PCI_CFG_SPACE_SIZE.
    
    Allow sysfs access to config space up to cfg_size, even if the device
    doesn't support the entire 4096-byte PCIe config space.
    
    Note that pci_read_config() and pci_write_config() limit access to
    dev->cfg_size even though pcie_config_attr contains 4096 (the maximum
    size).
    
    Signed-off-by: Jason S. McMullan <jason.mcmul...@netronome.com>
    [simon: edited changelog]
    Signed-off-by: Simon Horman <simon.hor...@netronome.com>
    [bhelgaas: more changelog edits]
    Signed-off-by: Bjorn Helgaas <bhelg...@google.com>

** Affects: linux (Ubuntu)
     Importance: Undecided
         Status: New

-- 
You received this bug notification because you are a member of Kernel
Packages, which is subscribed to linux in Ubuntu.
https://bugs.launchpad.net/bugs/1624267

Title:
  PCI quirk required for correct access to configuration space of NFP
  4000/6000

Status in linux package in Ubuntu:
  New

Bug description:
  The Netronome NFP 4000/6000 intelligent NICs have an erratum erratum where
  reading/writing to PCI config space addresses above 0x600 can cause the NFP
  to generate PCIe completion timeouts. This can result in a system hanging.

  This may be avoided by setting the PCI config size correctly and
  updating the PCI subsystem to honour config sizes between
  PCI_CFG_SPACE_EXP_SIZE (4096) and PCI_CFG_SPACE_SIZE (256).

  This problem is resolves in upstream linux since v4.5.

  Backports have also been requested to upstream linux stable back to v3.10
  and have so far been included in v4.4.10, v4.1.32, v4.18.41 and queued
  up for v3.10 stable.

  I would like to request that the same backports be made to the Ubuntu 13.0
  kernel for Trusty 14.04 LTS. They are as follows:

  
  commit c2e771b02792d222cbcd9617fe71482a64f52647
  Author: Simon Horman <simon.hor...@netronome.com>
  Date:   Fri Dec 11 11:30:12 2015 +0900

      PCI: Limit config space size for Netronome NFP4000
      
      Like the NFP6000, the NFP4000 as an erratum where reading/writing to PCI
      config space addresses above 0x600 can cause the NFP to generate PCIe
      completion timeouts.
      
      Limit the NFP4000's PF's config space size to 0x600 bytes as is already
      done for the NFP6000.
      
      The NFP4000's VF is 0x6004 (PCI_DEVICE_ID_NETRONOME_NFP6000_VF), the same
      device ID as the NFP6000's VF.  Thus, its config space is already limited
      by the existing use of quirk_nfp6000().
      
      Signed-off-by: Simon Horman <simon.hor...@netronome.com>
      Signed-off-by: Bjorn Helgaas <bhelg...@google.com>

  commit 69874ec233871a62e1bc8c89e643993af93a8630
  Author: Simon Horman <simon.hor...@netronome.com>
  Date:   Fri Dec 11 11:30:11 2015 +0900

      PCI: Add Netronome NFP4000 PF device ID
      
      Add the device ID for the PF of the NFP4000.  The device ID for the VF,
      0x6003, is already present as PCI_DEVICE_ID_NETRONOME_NFP6000_VF.
      
      Signed-off-by: Simon Horman <simon.hor...@netronome.com>
      Signed-off-by: Bjorn Helgaas <bhelg...@google.com>

  commit 9f33a2ae59f24452c1076749deb615bccd435ca9
  Author: Jason S. McMullan <jason.mcmul...@netronome.com>
  Date:   Wed Sep 30 15:35:07 2015 +0900

      PCI: Limit config space size for Netronome NFP6000 family
      
      The NFP6000 has an erratum where reading/writing to PCI config space
      addresses above 0x600 can cause the NFP to generate PCIe completion
      timeouts.
      
      Limit the NFP6000's config space size to 0x600 bytes.
      
      Signed-off-by: Jason S. McMullan <jason.mcmul...@netronome.com>
      [simon: edited changelog]
      Signed-off-by: Simon Horman <simon.hor...@netronome.com>
      Signed-off-by: Bjorn Helgaas <bhelg...@google.com>

  commit a755e169031dac9ebaed03302c4921687c271d62
  Author: Jason S. McMullan <jason.mcmul...@netronome.com>
  Date:   Wed Sep 30 15:35:06 2015 +0900

      PCI: Add Netronome vendor and device IDs
      
      Device IDs for the Netronome NFP3200, NFP3240, NFP6000, and NFP6000 SR-IOV
      devices.
      
      Signed-off-by: Jason S. McMullan <jason.mcmul...@netronome.com>
      [simon: edited changelog]
      Signed-off-by: Simon Horman <simon.hor...@netronome.com>
      Signed-off-by: Bjorn Helgaas <bhelg...@google.com>

  commit c20aecf6963d1273d8f6d61c042b4845441ca592
  Author: Jason S. McMullan <jason.mcmul...@netronome.com>
  Date:   Wed Sep 30 15:35:05 2015 +0900

      PCI: Support PCIe devices with short cfg_size
      
      If a device quirk modifies the pci_dev->cfg_size to be less than
      PCI_CFG_SPACE_EXP_SIZE (4096), but greater than PCI_CFG_SPACE_SIZE (256),
      the PCI sysfs interface truncates the readable size to PCI_CFG_SPACE_SIZE.
      
      Allow sysfs access to config space up to cfg_size, even if the device
      doesn't support the entire 4096-byte PCIe config space.
      
      Note that pci_read_config() and pci_write_config() limit access to
      dev->cfg_size even though pcie_config_attr contains 4096 (the maximum
      size).
      
      Signed-off-by: Jason S. McMullan <jason.mcmul...@netronome.com>
      [simon: edited changelog]
      Signed-off-by: Simon Horman <simon.hor...@netronome.com>
      [bhelgaas: more changelog edits]
      Signed-off-by: Bjorn Helgaas <bhelg...@google.com>

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1624267/+subscriptions

-- 
Mailing list: https://launchpad.net/~kernel-packages
Post to     : kernel-packages@lists.launchpad.net
Unsubscribe : https://launchpad.net/~kernel-packages
More help   : https://help.launchpad.net/ListHelp

Reply via email to