All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] dccp_probe: Fix module load dependencies between dccp and
@ 2010-01-14 20:15 Neil Horman
  2010-01-14 20:17 ` [PATCH] dccp_probe: Fix module load dependencies between dccp Arnaldo Carvalho de Melo
                   ` (3 more replies)
  0 siblings, 4 replies; 5+ messages in thread
From: Neil Horman @ 2010-01-14 20:15 UTC (permalink / raw)
  To: dccp

Hey-
	This was just recently reported to me.  When built as modules,
the dccp_probe module has a silent dependency on the dccp module.  This stems
from the fact that the module_init routine of dccp_probe registers a jprobe on
the dccp_sendmsg symbol.  Since the symbol is only referenced as a text string
(the .symbol_name field in the jprobe struct) rather than the address of the
symbol itself, depmod never picks this dependency up, and so if you load the
dccp_probe module without the dccp module loaded, the register_jprobe call fails
with an -EINVAL, and the whole module load fails.

	The fix is pretty easy, we can just wrap the register_jprobe call in a
try_then_request_module call, which forces the dependency to get satisfied prior
to the probe registration.

	I've verified that this fixes the problem myself.

Regards
Neil

Signed-off-by: Neil Horman <nhorman@tuxdriver.com>


 probe.c |    3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)


diff --git a/net/dccp/probe.c b/net/dccp/probe.c
index a1362dc..bace1d8 100644
--- a/net/dccp/probe.c
+++ b/net/dccp/probe.c
@@ -161,7 +161,8 @@ static __init int dccpprobe_init(void)
 	if (!proc_net_fops_create(&init_net, procname, S_IRUSR, &dccpprobe_fops))
 		goto err0;
 
-	ret = register_jprobe(&dccp_send_probe);
+	ret = try_then_request_module((register_jprobe(&dccp_send_probe) = 0),
+					"dccp");
 	if (ret)
 		goto err1;
 

^ permalink raw reply related	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2010-01-20  7:07 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-01-14 20:15 [PATCH] dccp_probe: Fix module load dependencies between dccp and Neil Horman
2010-01-14 20:17 ` [PATCH] dccp_probe: Fix module load dependencies between dccp Arnaldo Carvalho de Melo
2010-01-15  9:41 ` David Miller
2010-01-15 11:43 ` Neil Horman
2010-01-20  7:07 ` gerrit

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.