Messages in this thread | | | Subject | Re: GPL question: using large contiguous memory in proprietary driver. | From | Peter Zijlstra <> | Date | Wed, 15 Oct 2008 00:05:42 +0200 |
| |
On Tue, 2008-10-14 at 14:56 -0700, Kaz Kylheku wrote: > 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".
Any GPL driver doing that deserves to be taken out and shot just as bad as anyone else ;-)
That said, I don't think you'll find much sympathy here for non-GPL kernel modules.
| |