LWN.net Logo

dma-buf and binary-only modules

By Jonathan Corbet
February 22, 2012
The DMA buffer sharing mechanism has been merged for the 3.3 kernel; it is a way for DMA buffers to be shared between otherwise independent device drivers under user-space control. The dma-buf patches, as merged for 3.3, include a number of functions used by drivers to access buffers; those functions are all exported in the GPL-only mode. That drew a complaint from Robert Morell of NVIDIA, who, unsurprisingly, didn't like the fact that this interface would be unavailable to his company's proprietary driver.

It will be unsurprising to most readers that the response to Robert's complaint was not 100% sympathetic. After a while, the discussion died down without any real resolution. Recently, though, Rob Clark has reported on a discussion held at the Embedded Linux Conference:

Following the discussion, I agree that dma-buf infrastructure is intended as an interface between driver subsystems. And because (for now) all the other arm SoC gl(es) stacks unfortunately involve a closed src userspace, and since I consider userspace and kernel as tightly coupled in the realm of graphics stacks, I don't think we can really claim the moral high-ground here. So I can't object to use of EXPORT_SYMBOL() instead of EXPORT_SYMBOL_GPL().

Since then, there has been no discussion at all; there has also been no move to change the symbol exports in the mainline kernel. But the shift in tone suggests that positions may be softening, and that the buffer-sharing API may eventually be made available to proprietary modules.


(Log in to post comments)

Copyright © 2012, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds