From d1b6f8c7af0eb9a0a44b2d4723e58dde5eafa236 Mon Sep 17 00:00:00 2001 From: Jeremy Cline Date: Thu, 23 Apr 2020 16:47:21 -0400 Subject: kernel-5.7.0-0.rc2.20200423git7adc4b399952.1 * Thu Apr 23 2020 CKI@GitLab [5.7.0-0.rc2.20200423git7adc4b399952.1] - 7adc4b399952 rebase - Match template format in kernel.spec.template ("Justin M. Forbes") - Break out the Patches into individual files for dist-git ("Justin M. Forbes") - Break the Red Hat patch into individual commits (Jeremy Cline) - Adjust module filtering so CONFIG_DRM_DP_CEC can be set (Jeremy Cline) - Add a script to generate release tags and branches (Jeremy Cline) - Set CONFIG_VDPA for fedora ("Justin M. Forbes") - Provide defaults in ark-rebase-patches.sh (Jeremy Cline) - Default ark-rebase-patches.sh to not report issues (Jeremy Cline) Resolves: rhbz# Signed-off-by: Jeremy Cline --- 0001-add-pci_hw_vendor_status.patch | 96 +++++++++++++++++++++++++++++++++++++ 1 file changed, 96 insertions(+) create mode 100644 0001-add-pci_hw_vendor_status.patch (limited to '0001-add-pci_hw_vendor_status.patch') diff --git a/0001-add-pci_hw_vendor_status.patch b/0001-add-pci_hw_vendor_status.patch new file mode 100644 index 000000000..5d28a72c5 --- /dev/null +++ b/0001-add-pci_hw_vendor_status.patch @@ -0,0 +1,96 @@ +From 85b488a5a3ae9caa080e92d147b18125c1838d6e Mon Sep 17 00:00:00 2001 +From: Maurizio Lombardi +Date: Mon, 18 Jun 2018 12:51:25 -0400 +Subject: [PATCH] add pci_hw_vendor_status() + +Message-id: <1529326285-28560-1-git-send-email-mlombard@redhat.com> +Patchwork-id: 222337 +O-Subject: [RHEL8 PATCH] pci: add pci_hw_vendor_status() +Bugzilla: 1590829 +RH-Acked-by: Tomas Henzl +RH-Acked-by: Prarit Bhargava + +This patch adds pci_hw_vendor_status() like in RHEL7 which should be called +during the driver's probe to identify deprecated devices. + +BZ: https://bugzilla.redhat.com/show_bug.cgi?id=1590829 +Brew: https://brewweb.devel.redhat.com/taskinfo?taskID=16761315 + +See RHEL7 commits e0dddd9a63403ec82077ed410074fc6485873d4b and +3fcddde5ddf4b190c84ce9d83d56a75137513bd7 + +RHEL_only. + +Upstream Status: RHEL only +Signed-off-by: Maurizio Lombardi +Signed-off-by: Herton R. Krzesinski +--- + drivers/pci/pci-driver.c | 29 +++++++++++++++++++++++++++++ + include/linux/pci.h | 4 ++++ + 2 files changed, 33 insertions(+) + +diff --git a/drivers/pci/pci-driver.c b/drivers/pci/pci-driver.c +index 0454ca0e4e3f..5cc490b821be 100644 +--- a/drivers/pci/pci-driver.c ++++ b/drivers/pci/pci-driver.c +@@ -18,6 +18,7 @@ + #include + #include + #include ++#include + #include "pci.h" + #include "pcie/portdrv.h" + +@@ -278,6 +279,34 @@ static const struct pci_device_id *pci_match_device(struct pci_driver *drv, + return found_id; + } + ++/** ++ * pci_hw_vendor_status - Tell if a PCI device is supported by the HW vendor ++ * @ids: array of PCI device id structures to search in ++ * @dev: the PCI device structure to match against ++ * ++ * Used by a driver to check whether this device is in its list of unsupported ++ * devices. Returns the matching pci_device_id structure or %NULL if there is ++ * no match. ++ * ++ * Reserved for Internal Red Hat use only. ++ */ ++const struct pci_device_id *pci_hw_vendor_status( ++ const struct pci_device_id *ids, ++ struct pci_dev *dev) ++{ ++ char devinfo[64]; ++ const struct pci_device_id *ret = pci_match_id(ids, dev); ++ ++ if (ret) { ++ snprintf(devinfo, sizeof(devinfo), "%s %s", ++ dev_driver_string(&dev->dev), dev_name(&dev->dev)); ++ mark_hardware_deprecated(devinfo); ++ } ++ ++ return ret; ++} ++EXPORT_SYMBOL(pci_hw_vendor_status); ++ + struct drv_dev_and_id { + struct pci_driver *drv; + struct pci_dev *dev; +diff --git a/include/linux/pci.h b/include/linux/pci.h +index 83ce1cdf5676..88397dd562d9 100644 +--- a/include/linux/pci.h ++++ b/include/linux/pci.h +@@ -1397,6 +1397,10 @@ int pci_add_dynid(struct pci_driver *drv, + unsigned long driver_data); + const struct pci_device_id *pci_match_id(const struct pci_device_id *ids, + struct pci_dev *dev); ++/* Reserved for Internal Red Hat use only */ ++const struct pci_device_id *pci_hw_vendor_status( ++ const struct pci_device_id *ids, ++ struct pci_dev *dev); + int pci_scan_bridge(struct pci_bus *bus, struct pci_dev *dev, int max, + int pass); + +-- +2.26.0 + -- cgit