xfrm: Provide API to register translator module
authorDmitry Safonov <dima@arista.com>
Mon, 21 Sep 2020 14:36:51 +0000 (15:36 +0100)
committerSteffen Klassert <steffen.klassert@secunet.com>
Thu, 24 Sep 2020 06:53:03 +0000 (08:53 +0200)
commitc9e7c76d70fa50582ca96759829c93d0dd024662
tree449b6f268623b85daf205b2ba6e57a89981cdb2c
parent02a20d4fef3da0278bd2d95c86f48318a9902b76
xfrm: Provide API to register translator module

Add a skeleton for xfrm_compat module and provide API to register it in
xfrm_state.ko. struct xfrm_translator will have function pointers to
translate messages received from 32-bit userspace or to be sent to it
from 64-bit kernel.
module_get()/module_put() are used instead of rcu_read_lock() as the
module will vmalloc() memory for translation.
The new API is registered with xfrm_state module, not with xfrm_user as
the former needs translator for user_policy set by setsockopt() and
xfrm_user already uses functions from xfrm_state.

Signed-off-by: Dmitry Safonov <dima@arista.com>
Signed-off-by: Steffen Klassert <steffen.klassert@secunet.com>
include/net/xfrm.h
net/xfrm/Kconfig
net/xfrm/Makefile
net/xfrm/xfrm_compat.c [new file with mode: 0644]
net/xfrm/xfrm_state.c