dccp_probe: Fix module load dependencies between dccp and dccp_probe
authorNeil Horman <nhorman@tuxdriver.com>
Fri, 15 Jan 2010 09:40:55 +0000 (01:40 -0800)
committerDavid S. Miller <davem@davemloft.net>
Fri, 15 Jan 2010 09:40:55 +0000 (01:40 -0800)
commit38ff3e6bb987ec583268da8eb22628293095d43b
treee19ee438e49717cb412686a1828f32e6b786ceab
parentcd65c3c7d1081290b7365897c2290a84aa967d4d
dccp_probe: Fix module load dependencies between dccp and dccp_probe

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.

Signed-off-by: Neil Horman <nhorman@tuxdriver.com>
Acked-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/dccp/probe.c