Skip to contentSkip to conversation

powerpc: non-GPL export for eeh_dev_check_failure

PATCH In review Vishal Mansur 3 participants 4 messages Aug 5, 2014 – Aug 13, 2014

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

PATCH 1/1 powerpc: non-GPL export for eeh_dev_check_failure

EEH kernel services are inconsistently exported by the kernel. eeh_check_failure is exported for any use, but eeh_dev_check_failure is exported only for GPL use. While eeh_check_failure is implemented for a specific purpose to be used by services such as readl, it is not suited for a purpose where caller needs eeh status. This functionality is provided by eeh_dev_check_failure.

This patch relaxes the export for eeh_dev_check_failure to make it consistent with eeh_check_failure() and usable by non-GPL modules.

---
 arch/powerpc/kernel/eeh.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)
arch/powerpc/kernel/eeh.c +1 -2
index 86e2570..8689c30 100644
@@ -496,8 +496,7 @@ dn_unlock:
        eeh_serialize_unlock(flags);
        return rc;
 }
-
-EXPORT_SYMBOL_GPL(eeh_dev_check_failure);
+EXPORT_SYMBOL(eeh_dev_check_failure);
 
 /**
  * eeh_check_failure - Check if all 1's data is due to EEH slot freeze

--
2.0.1

#1 lore raw
Quoted 11 lines · On Tue, 05 Aug 2014 20:12:09 +0530 Vishal Mansur <[email protected]>…

EEH kernel services are inconsistently exported by the kernel. eeh_check_failure is exported for any use, but eeh_dev_check_failure is exported only for GPL use. While eeh_check_failure is implemented for a specific purpose to be used by services such as readl, it is not suited for a purpose where caller needs eeh status. This functionality is provided by eeh_dev_check_failure.

This patch relaxes the export for eeh_dev_check_failure to make it consistent with eeh_check_failure() and usable by non-GPL modules.

The GPL covers all derivative works. Tweaking this doesn't magically allow you to use the feature in non GPL code. Your legal department can I am sure explain in detail further.

Alan

#2 lore raw
Quoted 11 lines · One Thousand Gnomes
Quoted 8 lines · On Tue, 05 Aug 2014 20:12:09 +0530 Vishal Mansur <[email protected]>…

EEH kernel services are inconsistently exported by the kernel. eeh_check_failure is exported for any use, but eeh_dev_check_failure is exported only for GPL use. While eeh_check_failure is implemented for a specific purpose to be used by services such as readl, it is not suited for a purpose where caller needs eeh status. This functionality is provided by eeh_dev_check_failure.

Quoted 7 lines
Quoted 3 lines

This patch relaxes the export for eeh_dev_check_failure to make it consistent with eeh_check_failure() and usable by non-GPL modules.

The GPL covers all derivative works. Tweaking this doesn't magically allow you to use the feature in non GPL code. Your legal department can I am sure explain in detail further.

This is an interesting case... I assume this has to do with a well known GPU manufacturer...

The PCI APIs are generally exported in such a way that a non-GPL driver can use them (regardless of whether one considers a non-GPL driver to be legal here or not, this is besides the point).

eeh_dev_check_failure() can be considered as powerpc specific extension of the PCI API for use by PCI drivers and as such, it *could* be construed that we should be consistent (and consistent with eeh_check_failure()) and expose it as an EXPORT_SYMBOL without the GPL suffix.

So I'm somewhat tempted to take this patch, but Vishal, the driver in question could, I suppose, as a workaround, use a readl to some scratch register of some description, no ?

Cheers,
Ben.

Quoted 6 lines

Alan
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/

#3 lore raw
Quoted 33 lines · Benjamin Herrenschmidt
Quoted 11 lines · One Thousand Gnomes
Quoted 8 lines · On Tue, 05 Aug 2014 20:12:09 +0530 Vishal Mansur <[email protected]>…

EEH kernel services are inconsistently exported by the kernel. eeh_check_failure is exported for any use, but eeh_dev_check_failure is exported only for GPL use. While eeh_check_failure is implemented for a specific purpose to be used by services such as readl, it is not suited for a purpose where caller needs eeh status. This functionality is provided by eeh_dev_check_failure.

Quoted 7 lines
Quoted 3 lines

This patch relaxes the export for eeh_dev_check_failure to make it consistent with eeh_check_failure() and usable by non-GPL modules.

The GPL covers all derivative works. Tweaking this doesn't magically allow you to use the feature in non GPL code. Your legal department can I am sure explain in detail further.

This is an interesting case... I assume this has to do with a well known GPU manufacturer...

The PCI APIs are generally exported in such a way that a non-GPL driver can use them (regardless of whether one considers a non-GPL driver to be legal here or not, this is besides the point).

eeh_dev_check_failure() can be considered as powerpc specific extension of the PCI API for use by PCI drivers and as such, it *could* be construed that we should be consistent (and consistent with eeh_check_failure()) and expose it as an EXPORT_SYMBOL without the GPL suffix.

Quoted 3 lines

So I'm somewhat tempted to take this patch, but Vishal, the driver in question could, I suppose, as a workaround, use a readl to some scratch register of some description, no ?

Ben, calling readl to some scratch register will be same as calling eeh_check_failure, caller will not be able to get eeh status.

Hence for the purpose where caller wants to know eeh status during a bad register read, it can not be worked around using readl.

Thanks,
Vishal

Quoted 12 lines

Cheers,
Ben.

Quoted 6 lines

Alan
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/