Re: [PATCH RFT RESEND linux-next] c6x: dma-mapping: supportdebug_dma_mapping_error

From: Shuah Khan
Date: Fri Nov 02 2012 - 15:53:14 EST


On Fri, 2012-11-02 at 15:10 -0400, Mark Salter wrote:
> On Fri, 2012-11-02 at 10:44 -0600, Shuah Khan wrote:
> > On Fri, 2012-10-26 at 09:40 -0600, Shuah Khan wrote:
> > > Add support for debug_dma_mapping_error() call to avoid warning from
> > > debug_dma_unmap() interface when it checks for mapping error checked
> > > status. Without this patch, device driver failed to check map error
> > > warning is generated.
> > >
> > > Signed-off-by: Shuah Khan <shuah.khan@xxxxxx>
> > > ---
> > > arch/c6x/include/asm/dma-mapping.h | 1 +
> > > 1 file changed, 1 insertion(+)
>
> > Would you like to this patch go through c6x arch tree or linux-next?
> > Please let me know your preference.
>
> I tried to test this but I get a build error with CONFIG_DMA_API_DEBUG:
>
> /linux-next/lib/dma-debug.c: In function 'has_mapping_error':
> /linux-next/lib/dma-debug.c:863:15: error: implicit declaration of function 'get_dma_ops' [-Werror=implicit-function-declaration]
> /linux-next/lib/dma-debug.c:863:34: warning: initialization makes pointer from integer without a cast [enabled by default]
>
> C6X (along with some other architectures) doesn't have a get_dma_ops()
> function defined.

That is a problem I didn't think about. I did a check and looks like c6x
and frv are the only ones that don't have get_dma_ops() defined. frv is
in a different category as it doesn't use dma_debug interfaces. IN the
case c6x, now with my change to add debug_dma_mapping_error(), we will
start seeing warnings since dma_map_page() and dma_map_single() are
debugged with a call to debug_dma_map_page() and the corresponding
dma_mapping_error() interface doesn't call debug_dma_mapping_error()
interface

- Does adding get_dma_ops() make sense? Doesn't look like c6x exports
dma_ops?

Any other ideas?

-- Shuah


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/