Re: symbol_get()/symbol_put() ?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Dominick - wrote:
I have run into problem with symbol_get().
This function is GPL-exported and not available to
non-GPL modules. My module is non-GPL. But the weird
part is that symbol_put() is generic (or non-GPL)

So is there anything I can do to work around this?

I haven't tried this myself, but I think it should work.

Create another module, call it M2. M1 is your non-GPL module. M2 has an exported function called my_symbol_get() that is just a front-end for symbol_get().

In M1, define my_symbol_get() as an external function. M1 then calls my_symbol_get() as if it were calling symbol_get().

The only drawback is that M2 must be loaded in memory before M1 is loaded, otherwise M1 will fail to load.

You might want to take this opportunity to tell your manager that the kernel developers do not want non-GPL modules, and that sooner or later it will be impossible to create a non-GPL module. As you've just discovered, this is already happening. The kernel developers will not care one iota about your company or its products, and your pleas for help will be summarily ignored. Your company will then be forced to either GPL the driver or stop supporting Linux.

--
Timur Tabi
Staff Software Engineer
timur.tabi@xxxxxxxxxxx

--
Kernelnewbies: Help each other learn about the Linux kernel.
Archive:       http://mail.nl.linux.org/kernelnewbies/
FAQ:           http://kernelnewbies.org/faq/


[Index of Archives]     [Newbies FAQ]     [Linux Kernel Mentors]     [Linux Kernel Development]     [IETF Annouce]     [Git]     [Networking]     [Security]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux SCSI]     [Linux ACPI]
  Powered by Linux