FAILED: patch "[PATCH] platform/x86: ISST: Remove 8 socket limit" failed to apply to 5.15-stable tree
Subsystems (3)
[email protected]
maintainerThe patch below does not apply to the 5.15-stable tree.
If someone wants it applied there, or to any other stable or longterm tree, then please email the backport, including the original git commit id to <[email protected]>.
To reproduce the conflict and resubmit, you may use the following commands:
git fetch https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/ linux-5.15.y
git checkout FETCH_HEAD
git cherry-pick -x bbb320bfe2c3e9740fe89cfa0a7089b4e8bfc4ff
# <resolve conflicts, build, test, etc.>
git commit -s
git send-email --to '<[email protected]>' --in-reply-to '2023052848-preset-slapping-3df7@gregkh' --subject-prefix 'PATCH 5.15.y' HEAD^..
Possible dependencies:
bbb320bfe2c3 ("platform/x86: ISST: Remove 8 socket limit") 9a1aac8a96dc ("platform/x86: ISST: PUNIT device mapping with Sub-NUMA clustering")
thanks,
greg k-h
------------------ original commit in Linus's tree ------------------
From bbb320bfe2c3e9740fe89cfa0a7089b4e8bfc4ff Mon Sep 17 00:00:00 2001
From: Steve Wahl <[email protected]>
Date: Fri, 19 May 2023 11:04:20 -0500
Subject: [PATCH] platform/x86: ISST: Remove 8 socket limit
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Stop restricting the PCI search to a range of PCI domains fed to pci_get_domain_bus_and_slot(). Instead, use for_each_pci_dev() and look at all PCI domains in one pass.
On systems with more than 8 sockets, this avoids error messages like "Information: Invalid level, Can't get TDP control information at specified levels on cpu 480" from the intel speed select utility.
drivers/platform/x86/intel/speed_select_if/isst_if_common.c +5 -7
@@ -304,14 +304,13 @@ struct isst_if_pkg_info {static struct isst_if_cpu_info *isst_cpu_info;static struct isst_if_pkg_info *isst_pkg_info; -#define ISST_MAX_PCI_DOMAINS 8 -static struct pci_dev *_isst_if_get_pci_dev (int cpu,int bus_no,int dev,int fn) {struct pci_dev *matched_pci_dev =NULL ;struct pci_dev *pci_dev =NULL ; +struct pci_dev *_pci_dev =NULL ;int no_matches =0 , pkg_id; -int i, bus_number; +int bus_number;if (bus_no <0 || bus_no >=ISST_MAX_BUS_NUMBER || cpu <0 || cpu >= nr_cpu_ids || cpu >=num_possible_cpus ())
@@ -323,12 +322,11 @@ static struct pci_dev *_isst_if_get_pci_dev(int cpu, int bus_no, int dev, int fnif (bus_number <0 )return NULL ; -for (i =0 ; i <ISST_MAX_PCI_DOMAINS ; ++i) { -struct pci_dev *_pci_dev; +for_each_pci_dev (_pci_dev) {int node; - _pci_dev =pci_get_domain_bus_and_slot (i, bus_number,PCI_DEVFN (dev, fn)); -if (!_pci_dev) +if (_pci_dev->bus->number != bus_number || + _pci_dev->devfn !=PCI_DEVFN (dev, fn))continue ; ++no_matches;