Chris Wright wrote: > * Zachary Amsden (zach at vmware.com) wrote: > >> EXPORT_SYMBOL_GPL is still possible - if you patch over every op in >> paravirt_ops. Then only the paravirt modules need to be GPL, not all >> modules. >> > > Problem is the pervasive nature. So any old module that was doing > local_irq_disable() will need access to the paravirt_ops structure via > > local_irq_disable() -> raw_local_irq_disable -> paravirt_ops.irq_disable() > > IOW, all modules need paravirt_ops access, otherwise non-GPL modules > will fail to load with "Unknown symbol paravirt_ops." We can't make an > interface change like that. > But my point is that if you patch everything in the paravirt_ops struct, no module other than the paravirt_ops backend code needs paravirt_ops access, so paravirt_ops can still be GPL only. The problem is you would need to patch everything. Zach