net: dccp: fix kernel crash on module load
authorPeter Oskolkov <posk@google.com>
Mon, 24 Dec 2018 20:57:17 +0000 (12:57 -0800)
committerDavid S. Miller <davem@davemloft.net>
Mon, 24 Dec 2018 23:27:56 +0000 (15:27 -0800)
commitc92c81df93df95dafbf6926613ce0b436227b007
treece78a0a0ef1f8601e4c819a77c214cc9bea381c7
parentbd437c99cf63b8adaea51156db383f9dfdd57503
net: dccp: fix kernel crash on module load

Patch eedbbb0d98b2 "net: dccp: initialize (addr,port) ..."
added calling to inet_hashinfo2_init() from dccp_init().

However, inet_hashinfo2_init() is marked as __init(), and
thus the kernel panics when dccp is loaded as module. Removing
__init() tag from inet_hashinfo2_init() is not feasible because
it calls into __init functions in mm.

This patch adds inet_hashinfo2_init_mod() function that can
be called after the init phase is done; changes dccp_init() to
call the new function; un-marks inet_hashinfo2_init() as
exported.

Fixes: eedbbb0d98b2 ("net: dccp: initialize (addr,port) ...")
Reported-by: kernel test robot <lkp@intel.com>
Signed-off-by: Peter Oskolkov <posk@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
include/net/inet_hashtables.h
net/dccp/proto.c
net/ipv4/inet_hashtables.c