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)
committerIlpo Järvinen <ilpo.jarvinen@linux.intel.com>
Tue, 10 Dec 2024 14:24:45 +0000 (16:24 +0200)
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>
drivers/platform/x86/p2sb.c

index d51eb0db06264d089d6da090a75c468dce39e191..a685781d1272c0befb41a2d396ba7bd675f00435 100644 (file)
@@ -172,6 +172,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
@@ -188,8 +204,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;
@@ -197,15 +211,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);