You are not permitted to link to GPL only symbols if your module is not GPL, the error there is telling you you are trying to do exactly that:
FATAL: modpost: GPL-incompatible module test.ko uses GPL-only symbol 'xen_dma_ops'
Either one has to work with the upstream contributor to relax that symbol to EXPORT_SYMBOL, or you need to find an alternative.
If you do not expect your device to encounter systems running on XEN you could likely short circut this by defining xen_dma_ops as NULL. before you include that header:
#define xen_dma_ops NULL
Though if you do that you should also check for xen_initial_domain() in your init (if you can call that) and abort if true.
That said, it seems rather unfortuanate that those ops being _GPL renders he whole DMA infratructure useless. It is worth approaching whoever committed that and asking for that symbol to be relaxed.
You are not permitted to link to GPL only symbols if your module is not GPL, the error there is telling you you are trying to do exactly that:
FATAL: modpost: GPL-incompatible module test.ko uses GPL-only symbol 'xen_dma_ops'
Either one has to work with the upstream contributor to relax that symbol to EXPORT_SYMBOL, or you need to find an alternative.
If you do not expect your device to encounter systems running on XEN you could likely short circut this by defining xen_dma_ops as NULL. before you include that header:
#define xen_dma_ops NULL
Though if you do that you should also check for xen_initial_ domain( ) in your init (if you can call that) and abort if true.
That said, it seems rather unfortuanate that those ops being _GPL renders he whole DMA infratructure useless. It is worth approaching whoever committed that and asking for that symbol to be relaxed.