Message ID | 1507761269-7017-5-git-send-email-jim2101024@gmail.com (mailing list archive) |
---|---|
State | New, archived |
Delegated to: | Bjorn Helgaas |
Headers | show |
On 11/10/17 23:34, Jim Quinlan wrote: > The BrcmSTB driver needs to get ahold of a pointer to swiotlb_dma_ops. > However, that variable is defined as static. Instead, we use > arch_setup_dma_ops() to get the pointer to swiotlb_dma_ops. Since > we also want our driver to be a separate module, we need to > export this function. NAK. Retrieve the platform-assigned ops from the device via get_dma_ops() and stash them in your drvdata or wherever before you replace them. Don't go poking around arch code internals directly from a driver. Robin. > Signed-off-by: Jim Quinlan <jim2101024@gmail.com> > --- > arch/arm64/mm/dma-mapping.c | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/arch/arm64/mm/dma-mapping.c b/arch/arm64/mm/dma-mapping.c > index 614af88..dae572f 100644 > --- a/arch/arm64/mm/dma-mapping.c > +++ b/arch/arm64/mm/dma-mapping.c > @@ -936,3 +936,4 @@ void arch_setup_dma_ops(struct device *dev, u64 dma_base, u64 size, > } > #endif > } > +EXPORT_SYMBOL(arch_setup_dma_ops); >
On Thu, Oct 12, 2017 at 1:06 PM, Robin Murphy <robin.murphy@arm.com> wrote: > On 11/10/17 23:34, Jim Quinlan wrote: >> The BrcmSTB driver needs to get ahold of a pointer to swiotlb_dma_ops. >> However, that variable is defined as static. Instead, we use >> arch_setup_dma_ops() to get the pointer to swiotlb_dma_ops. Since >> we also want our driver to be a separate module, we need to >> export this function. > > NAK. Retrieve the platform-assigned ops from the device via > get_dma_ops() and stash them in your drvdata or wherever before you > replace them. Don't go poking around arch code internals directly from a > driver. Will fix (and drop the commit). > > Robin. > >> Signed-off-by: Jim Quinlan <jim2101024@gmail.com> >> --- >> arch/arm64/mm/dma-mapping.c | 1 + >> 1 file changed, 1 insertion(+) >> >> diff --git a/arch/arm64/mm/dma-mapping.c b/arch/arm64/mm/dma-mapping.c >> index 614af88..dae572f 100644 >> --- a/arch/arm64/mm/dma-mapping.c >> +++ b/arch/arm64/mm/dma-mapping.c >> @@ -936,3 +936,4 @@ void arch_setup_dma_ops(struct device *dev, u64 dma_base, u64 size, >> } >> #endif >> } >> +EXPORT_SYMBOL(arch_setup_dma_ops); >> >
diff --git a/arch/arm64/mm/dma-mapping.c b/arch/arm64/mm/dma-mapping.c index 614af88..dae572f 100644 --- a/arch/arm64/mm/dma-mapping.c +++ b/arch/arm64/mm/dma-mapping.c @@ -936,3 +936,4 @@ void arch_setup_dma_ops(struct device *dev, u64 dma_base, u64 size, } #endif } +EXPORT_SYMBOL(arch_setup_dma_ops);
The BrcmSTB driver needs to get ahold of a pointer to swiotlb_dma_ops. However, that variable is defined as static. Instead, we use arch_setup_dma_ops() to get the pointer to swiotlb_dma_ops. Since we also want our driver to be a separate module, we need to export this function. Signed-off-by: Jim Quinlan <jim2101024@gmail.com> --- arch/arm64/mm/dma-mapping.c | 1 + 1 file changed, 1 insertion(+)