GPL question: using large contiguous memory in proprietary driver.

From: Kaz Kylheku
Date: Tue Oct 14 2008 - 17:56:51 EST


Hi all,

I have the following question. Suppose that some proprietary driver
(otherwise completely clean, based only on non-GPL symbols)
requires a large buffer of physically contiguous memory.

A GPL-ed driver could get this memory by having some boot-time
code compiled into the kernel which calls bootmem_alloc during
kernel initialization. This function would stash the address of the
memory into some global variable which is exported for the
module to use.

How do you solve this problem in a proprietary driver? It seems
like the above solution taints the kernel, because the kernel
provides a symbol which exists only for the sake of supporting
a proprietary driver.

Would it be okay to have a mechanism like this:
Suppose that on the kernel command line, you could
request a boot-time memory allocation and give it a name.
For instance, the parameter:

boot_alloc=foo,8192K

would create an 8192 kilobyte allocation, and associate it
with the string "foo". A non-GPL function would be provided to
find the address of this memory, using the string "foo"
as the key. The proprietary driver would document the
requirement that it needs a memory region of at least
8192K, under the name "foo".

Help! :)
--
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/