Messages in this thread | | | Date | Tue, 14 Oct 2008 14:56:40 -0700 | From | "Kaz Kylheku" <> | Subject | GPL question: using large contiguous memory in proprietary driver. |
| |
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! :)
| |