2021-01-26 18:37:45

by Ray Chi

[permalink] [raw]
Subject: [PATCH] usb: dwc3: add EXPORT_SYMBOL_GPL for role init functions

Currently, role init functions are used in dwc3 driver but
can't be called from kernel modules.
dwc3_host_init
dwc3_host_exit
dwc3_gadget_init
dwc3_gadget_exit
dwc3_event_buffers_setup
dwc3_event_buffers_cleanup

If other kernel modules want to use these functions, it needs
EXPORT_SYMBOL_GPL() to get compile pass.

Signed-off-by: Ray Chi <[email protected]>
---
drivers/usb/dwc3/core.c | 2 ++
drivers/usb/dwc3/gadget.c | 2 ++
drivers/usb/dwc3/host.c | 2 ++
3 files changed, 6 insertions(+)

diff --git a/drivers/usb/dwc3/core.c b/drivers/usb/dwc3/core.c
index 25c686a752b0..f34a7dd5323e 100644
--- a/drivers/usb/dwc3/core.c
+++ b/drivers/usb/dwc3/core.c
@@ -418,6 +418,7 @@ int dwc3_event_buffers_setup(struct dwc3 *dwc)

return 0;
}
+EXPORT_SYMBOL_GPL(dwc3_event_buffers_setup);

void dwc3_event_buffers_cleanup(struct dwc3 *dwc)
{
@@ -433,6 +434,7 @@ void dwc3_event_buffers_cleanup(struct dwc3 *dwc)
| DWC3_GEVNTSIZ_SIZE(0));
dwc3_writel(dwc->regs, DWC3_GEVNTCOUNT(0), 0);
}
+EXPORT_SYMBOL_GPL(dwc3_event_buffers_cleanup);

static int dwc3_alloc_scratch_buffers(struct dwc3 *dwc)
{
diff --git a/drivers/usb/dwc3/gadget.c b/drivers/usb/dwc3/gadget.c
index 80c3ef134e41..43110bfdc440 100644
--- a/drivers/usb/dwc3/gadget.c
+++ b/drivers/usb/dwc3/gadget.c
@@ -3699,6 +3699,7 @@ int dwc3_gadget_init(struct dwc3 *dwc)
err0:
return ret;
}
+EXPORT_SYMBOL_GPL(dwc3_gadget_init);

/* -------------------------------------------------------------------------- */

@@ -3712,6 +3713,7 @@ void dwc3_gadget_exit(struct dwc3 *dwc)
dma_free_coherent(dwc->sysdev, sizeof(*dwc->ep0_trb) * 2,
dwc->ep0_trb, dwc->ep0_trb_addr);
}
+EXPORT_SYMBOL_GPL(dwc3_gadget_exit);

int dwc3_gadget_suspend(struct dwc3 *dwc)
{
diff --git a/drivers/usb/dwc3/host.c b/drivers/usb/dwc3/host.c
index bef1c1ac2067..30589e313a67 100644
--- a/drivers/usb/dwc3/host.c
+++ b/drivers/usb/dwc3/host.c
@@ -126,8 +126,10 @@ int dwc3_host_init(struct dwc3 *dwc)
platform_device_put(xhci);
return ret;
}
+EXPORT_SYMBOL_GPL(dwc3_host_init);

void dwc3_host_exit(struct dwc3 *dwc)
{
platform_device_unregister(dwc->xhci);
}
+EXPORT_SYMBOL_GPL(dwc3_host_exit);
--
2.30.0.280.ga3ce27912f-goog


2021-01-28 00:12:31

by Christoph Hellwig

[permalink] [raw]
Subject: Re: [PATCH] usb: dwc3: add EXPORT_SYMBOL_GPL for role init functions

On Tue, Jan 26, 2021 at 05:49:13PM +0800, Ray Chi wrote:
> Currently, role init functions are used in dwc3 driver but
> can't be called from kernel modules.
> dwc3_host_init
> dwc3_host_exit
> dwc3_gadget_init
> dwc3_gadget_exit
> dwc3_event_buffers_setup
> dwc3_event_buffers_cleanup
>
> If other kernel modules want to use these functions, it needs
> EXPORT_SYMBOL_GPL() to get compile pass.

What "other kernel modules" would want to use it an why?

Please specify that in your patch, and only resend it togethe with the
patches actually adding/modifying those modules.