net caif: Register properly as a pernet subsystem.
authorEric W. Biederman <ebiederm@xmission.com>
Thu, 26 Jan 2012 14:04:53 +0000 (14:04 +0000)
committerSimone Willett <swillett@nvidia.com>
Wed, 8 Feb 2012 22:31:02 +0000 (14:31 -0800)
commitef14c366c8b137b63a045f49448422296d0f15f9
tree22573f472e96e391b629e6ab495d84d09813092e
parent7613ba3c7a3232dac09e8ee9092ced867922ad83
net caif: Register properly as a pernet subsystem.

[ Upstream commit 8a8ee9aff6c3077dd9c2c7a77478e8ed362b96c6 ]

caif is a subsystem and as such it needs to register with
register_pernet_subsys instead of register_pernet_device.

Among other problems using register_pernet_device was resulting in
net_generic being called before the caif_net structure was allocated.
Which has been causing net_generic to fail with either BUG_ON's or by
return NULL pointers.

A more ugly problem that could be caused is packets in flight why the
subsystem is shutting down.

To remove confusion also remove the cruft cause by inappropriately
trying to fix this bug.

With the aid of the previous patch I have tested this patch and
confirmed that using register_pernet_subsys makes the failure go away as
it should.

Signed-off-by: Eric W. Biederman <ebiederm@xmission.com>
Acked-by: Sjur Brændeland <sjur.brandeland@stericsson.com>
Tested-by: Sasha Levin <levinsasha928@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Varun Wadekar <vwadekar@nvidia.com>
Change-Id: I25251a26707c9f6668d3a099c2bfe662f6eddf17
Reviewed-on: http://git-master/r/79691
Reviewed-by: Automatic_Commit_Validation_User
net/caif/caif_dev.c
net/caif/cfcnfg.c