]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
p2sb: Factor out p2sb_read_from_cache()
authorShin'ichiro Kawasaki <shinichiro.kawasaki@wdc.com>
Thu, 28 Nov 2024 00:28:33 +0000 (09:28 +0900)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 27 Dec 2024 12:52:52 +0000 (13:52 +0100)
[ Upstream commit 9244524d60ddea55f4df54c51200e8fef2032447 ]

To prepare for the following fix, factor out the code to read the P2SB
resource from the cache to the new function p2sb_read_from_cache().

Signed-off-by: Shin'ichiro Kawasaki <shinichiro.kawasaki@wdc.com>
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
Link: https://lore.kernel.org/r/20241128002836.373745-2-shinichiro.kawasaki@wdc.com
Reviewed-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
Stable-dep-of: 360c400d0f56 ("p2sb: Do not scan and remove the P2SB device when it is unhidden")
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/platform/x86/p2sb.c

index 687e341e3206bc7bfb9ba5cf961a8ce9adcbf756..d6ee4b34f911dbd355e3d87a053dcb2c453bf238 100644 (file)
@@ -171,6 +171,22 @@ static int p2sb_cache_resources(void)
        return ret;
 }
 
+static int p2sb_read_from_cache(struct pci_bus *bus, unsigned int devfn,
+                               struct resource *mem)
+{
+       struct p2sb_res_cache *cache = &p2sb_resources[PCI_FUNC(devfn)];
+
+       if (cache->bus_dev_id != bus->dev.id)
+               return -ENODEV;
+
+       if (!p2sb_valid_resource(&cache->res))
+               return -ENOENT;
+
+       memcpy(mem, &cache->res, sizeof(*mem));
+
+       return 0;
+}
+
 /**
  * p2sb_bar - Get Primary to Sideband (P2SB) bridge device BAR
  * @bus: PCI bus to communicate with
@@ -187,8 +203,6 @@ static int p2sb_cache_resources(void)
  */
 int p2sb_bar(struct pci_bus *bus, unsigned int devfn, struct resource *mem)
 {
-       struct p2sb_res_cache *cache;
-
        bus = p2sb_get_bus(bus);
        if (!bus)
                return -ENODEV;
@@ -196,15 +210,7 @@ int p2sb_bar(struct pci_bus *bus, unsigned int devfn, struct resource *mem)
        if (!devfn)
                p2sb_get_devfn(&devfn);
 
-       cache = &p2sb_resources[PCI_FUNC(devfn)];
-       if (cache->bus_dev_id != bus->dev.id)
-               return -ENODEV;
-
-       if (!p2sb_valid_resource(&cache->res))
-               return -ENOENT;
-
-       memcpy(mem, &cache->res, sizeof(*mem));
-       return 0;
+       return p2sb_read_from_cache(bus, devfn, mem);
 }
 EXPORT_SYMBOL_GPL(p2sb_bar);