linux-uconsole/net/dccp
Neil Horman 3b1aa6380f dccp_probe: Fix module load dependencies between dccp and dccp_probe
commit 38ff3e6bb9 upstream.

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>
Cc: maximilian attems <max@stro.at>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-05-12 14:57:11 -07:00
..
ccids net-next-2.6 [PATCH 1/1] dccp: ccids whitespace-cleanup / CodingStyle 2009-09-14 17:02:54 -07:00
ackvec.c dccp: Set per-connection CCIDs via socket options 2008-11-23 16:02:31 -08:00
ackvec.h dccp: Minimise header option overhead in setting the MPS 2009-03-02 03:07:23 -08:00
ccid.c dccp: Integrate the TFRC library with DCCP 2009-01-04 21:45:33 -08:00
ccid.h dccp: Clean up ccid.c after integration of CCID plugins 2009-01-04 21:43:23 -08:00
dccp.h net: Make setsockopt() optlen be unsigned. 2009-09-30 16:12:20 -07:00
diag.c dccp_diag: LISTEN sockets don't have CCIDs 2008-12-17 16:08:01 -08:00
feat.c net: mark read-only arrays as const 2009-08-05 10:42:58 -07:00
feat.h dccp: Debugging functions for feature negotiation 2009-01-21 14:34:05 -08:00
input.c dccp: Integrate the TFRC library with DCCP 2009-01-04 21:45:33 -08:00
ipv4.c net: constify struct net_protocol 2009-09-14 17:03:01 -07:00
ipv6.c net: constify remaining proto_ops 2009-09-14 17:03:09 -07:00
ipv6.h Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
Kconfig dccp: Lockless integration of CCID congestion-control plugins 2009-01-04 21:42:53 -08:00
Makefile dccp: Integrate the TFRC library with DCCP 2009-01-04 21:45:33 -08:00
minisocks.c dccp: Implement both feature-local and feature-remote Sequence Window feature 2009-01-21 14:34:04 -08:00
options.c dccp: Debugging functions for feature negotiation 2009-01-21 14:34:05 -08:00
output.c net: adding memory barrier to the poll and receive callbacks 2009-07-09 17:06:57 -07:00
probe.c dccp_probe: Fix module load dependencies between dccp and dccp_probe 2010-05-12 14:57:11 -07:00
proto.c net: Make setsockopt() optlen be unsigned. 2009-09-30 16:12:20 -07:00
sysctl.c dccp: Initialisation and type-checking of feature sysctls 2009-01-21 14:34:05 -08:00
timer.c dccp: Limit feature negotiation to connection setup phase 2008-11-12 00:42:58 -08:00