PCI: endpoint: Move pci_epf_type_add_cfs() code
authorDamien Le Moal <dlemoal@kernel.org>
Sat, 15 Apr 2023 02:35:27 +0000 (11:35 +0900)
committerBjorn Helgaas <bhelgaas@google.com>
Fri, 23 Jun 2023 19:59:38 +0000 (14:59 -0500)
pci_epf_type_add_cfs() is called only from pci_ep_cfs_add_type_group() in
drivers/pci/endpoint/pci-ep-cfs.c, so there is no need to export this
function.  Move its code from pci-epf-core.c to pci-ep-cfs.c as a static
function.

Link: https://lore.kernel.org/r/20230415023542.77601-3-dlemoal@kernel.org
Signed-off-by: Damien Le Moal <dlemoal@kernel.org>
Signed-off-by: Lorenzo Pieralisi <lpieralisi@kernel.org>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Reviewed-by: Manivannan Sadhasivam <mani@kernel.org>
drivers/pci/endpoint/pci-ep-cfs.c
drivers/pci/endpoint/pci-epf-core.c
include/linux/pci-epf.h

index e255a8415bd5def88ddb6eaaf7b684a09328f4f6..cd99ac8c3794ba00feb86f78f89fd2206438ff08 100644 (file)
@@ -509,6 +509,42 @@ static const struct config_item_type pci_epf_type = {
        .ct_owner       = THIS_MODULE,
 };
 
+/**
+ * pci_epf_type_add_cfs() - Help function drivers to expose function specific
+ *                          attributes in configfs
+ * @epf: the EPF device that has to be configured using configfs
+ * @group: the parent configfs group (corresponding to entries in
+ *         pci_epf_device_id)
+ *
+ * Invoke to expose function specific attributes in configfs.
+ *
+ * Return: A pointer to a config_group structure or NULL if the function driver
+ * does not have anything to expose (attributes configured by user) or if
+ * the function driver does not implement the add_cfs() method.
+ *
+ * Returns an error pointer if this function is called for an unbound EPF device
+ * or if the EPF driver add_cfs() method fails.
+ */
+static struct config_group *pci_epf_type_add_cfs(struct pci_epf *epf,
+                                                struct config_group *group)
+{
+       struct config_group *epf_type_group;
+
+       if (!epf->driver) {
+               dev_err(&epf->dev, "epf device not bound to driver\n");
+               return NULL;
+       }
+
+       if (!epf->driver->ops->add_cfs)
+               return NULL;
+
+       mutex_lock(&epf->lock);
+       epf_type_group = epf->driver->ops->add_cfs(epf, group);
+       mutex_unlock(&epf->lock);
+
+       return epf_type_group;
+}
+
 static void pci_ep_cfs_add_type_group(struct pci_epf_group *epf_group)
 {
        struct config_group *group;
index 2036e38be093a175ab8496b6fb53b25846d7303a..355a6f56fcead7decfef2a1503ee4b495831c690 100644 (file)
@@ -20,38 +20,6 @@ static DEFINE_MUTEX(pci_epf_mutex);
 static struct bus_type pci_epf_bus_type;
 static const struct device_type pci_epf_type;
 
-/**
- * pci_epf_type_add_cfs() - Help function drivers to expose function specific
- *                          attributes in configfs
- * @epf: the EPF device that has to be configured using configfs
- * @group: the parent configfs group (corresponding to entries in
- *         pci_epf_device_id)
- *
- * Invoke to expose function specific attributes in configfs. If the function
- * driver does not have anything to expose (attributes configured by user),
- * return NULL.
- */
-struct config_group *pci_epf_type_add_cfs(struct pci_epf *epf,
-                                         struct config_group *group)
-{
-       struct config_group *epf_type_group;
-
-       if (!epf->driver) {
-               dev_err(&epf->dev, "epf device not bound to driver\n");
-               return NULL;
-       }
-
-       if (!epf->driver->ops->add_cfs)
-               return NULL;
-
-       mutex_lock(&epf->lock);
-       epf_type_group = epf->driver->ops->add_cfs(epf, group);
-       mutex_unlock(&epf->lock);
-
-       return epf_type_group;
-}
-EXPORT_SYMBOL_GPL(pci_epf_type_add_cfs);
-
 /**
  * pci_epf_unbind() - Notify the function driver that the binding between the
  *                   EPF device and EPC device has been lost
index a215dc8ce6936c9958706b58d51338872364ff2a..b8441db2fa524e09e2b452e2913c1306e2a1979b 100644 (file)
@@ -214,8 +214,6 @@ void pci_epf_free_space(struct pci_epf *epf, void *addr, enum pci_barno bar,
                        enum pci_epc_interface_type type);
 int pci_epf_bind(struct pci_epf *epf);
 void pci_epf_unbind(struct pci_epf *epf);
-struct config_group *pci_epf_type_add_cfs(struct pci_epf *epf,
-                                         struct config_group *group);
 int pci_epf_add_vepf(struct pci_epf *epf_pf, struct pci_epf *epf_vf);
 void pci_epf_remove_vepf(struct pci_epf *epf_pf, struct pci_epf *epf_vf);
 #endif /* __LINUX_PCI_EPF_H */