Thread (9 messages) read the whole thread 9 messages, 4 authors, 2016-09-19

Re: [PATCH 1/2] ptp_clock: allow for it to be optional

From: Nicolas Pitre <hidden>
Date: 2016-09-19 14:10:31
Also in: lkml
Subsystem: ptp hardware clock support, the rest · Maintainers: Richard Cochran, Linus Torvalds

On Mon, 19 Sep 2016, Jiri Benc wrote:
On Sun, 18 Sep 2016 23:51:09 -0400, Nicolas Pitre wrote:
quoted
And to make it possible for PTP to be configured out, the select statement
in the Kconfig entry for those ethernet drivers is changed from selecting
PTP_1588_CLOCK to PTP_1588_CLOCK_SELECTED whose purpose is to indicate the
default Kconfig value for the PTP subsystem.
With this patch applied, the user is free to set a NIC driver as built
in and PTP_1588_CLOCK as a module, right? If so, that would lead to
non-functional PTP without any warning due to the use of IS_REACHABLE.
That doesn't sound right. Could easily cause hours of headache to
someone.

Or is this handled somehow?
I don't see how to remove the ability to select m for PTP_1588_CLOCK 
based on (PTP_1588_CLOCK_SELECTED = y).

What about this on top then:
diff --git a/include/linux/ptp_clock_kernel.h b/include/linux/ptp_clock_kernel.h
index 4c29eb8e53..74079b2fcf 100644
--- a/include/linux/ptp_clock_kernel.h
+++ b/include/linux/ptp_clock_kernel.h
@@ -207,7 +207,16 @@ int ptp_find_pin(struct ptp_clock *ptp,
 #else
 static inline struct ptp_clock *ptp_clock_register(struct ptp_clock_info *info,
 						   struct device *parent)
-{ return NULL; }
+{
+	if (IS_MODULE(CONFIG_PTP_1588_CLOCK)) {
+		pr_warn("%s is built-in while PTP clock subsystem is modular, "
+			"PTP clock ignored\n", KBUILD_MODNAME);
+	} else {
+		pr_warn("ignoring PTP clock from %s as PTP clock subsystem "
+			"is configured out\n", KBUILD_MODNAME);
+	}
+	return NULL;
+}
 static inline int ptp_clock_unregister(struct ptp_clock *ptp)
 { return 0; }
 static inline void ptp_clock_event(struct ptp_clock *ptp,
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help