提交 c30f540b 编写于 作者: A Alexey Dobriyan 提交者: Patrick McHardy

netfilter: xtables: CONFIG_COMPAT redux

Ifdef out
	struct nf_sockopt_ops::compat_set
	struct nf_sockopt_ops::compat_get
	struct xt_match::compat_from_user
	struct xt_match::compat_to_user
	struct xt_match::compatsize
to make structures smaller on COMPAT=n kernels.
Signed-off-by: NAlexey Dobriyan <adobriyan@gmail.com>
Signed-off-by: NPatrick McHardy <kaber@trash.net>
上级 47778147
...@@ -114,15 +114,17 @@ struct nf_sockopt_ops { ...@@ -114,15 +114,17 @@ struct nf_sockopt_ops {
int set_optmin; int set_optmin;
int set_optmax; int set_optmax;
int (*set)(struct sock *sk, int optval, void __user *user, unsigned int len); int (*set)(struct sock *sk, int optval, void __user *user, unsigned int len);
#ifdef CONFIG_COMPAT
int (*compat_set)(struct sock *sk, int optval, int (*compat_set)(struct sock *sk, int optval,
void __user *user, unsigned int len); void __user *user, unsigned int len);
#endif
int get_optmin; int get_optmin;
int get_optmax; int get_optmax;
int (*get)(struct sock *sk, int optval, void __user *user, int *len); int (*get)(struct sock *sk, int optval, void __user *user, int *len);
#ifdef CONFIG_COMPAT
int (*compat_get)(struct sock *sk, int optval, int (*compat_get)(struct sock *sk, int optval,
void __user *user, int *len); void __user *user, int *len);
#endif
/* Use the module struct to lock set/get code in place */ /* Use the module struct to lock set/get code in place */
struct module *owner; struct module *owner;
}; };
...@@ -222,11 +224,12 @@ int nf_setsockopt(struct sock *sk, u_int8_t pf, int optval, char __user *opt, ...@@ -222,11 +224,12 @@ int nf_setsockopt(struct sock *sk, u_int8_t pf, int optval, char __user *opt,
unsigned int len); unsigned int len);
int nf_getsockopt(struct sock *sk, u_int8_t pf, int optval, char __user *opt, int nf_getsockopt(struct sock *sk, u_int8_t pf, int optval, char __user *opt,
int *len); int *len);
#ifdef CONFIG_COMPAT
int compat_nf_setsockopt(struct sock *sk, u_int8_t pf, int optval, int compat_nf_setsockopt(struct sock *sk, u_int8_t pf, int optval,
char __user *opt, unsigned int len); char __user *opt, unsigned int len);
int compat_nf_getsockopt(struct sock *sk, u_int8_t pf, int optval, int compat_nf_getsockopt(struct sock *sk, u_int8_t pf, int optval,
char __user *opt, int *len); char __user *opt, int *len);
#endif
/* Call this before modifying an existing packet: ensures it is /* Call this before modifying an existing packet: ensures it is
modifiable and linear to the point you care about (writable_len). modifiable and linear to the point you care about (writable_len).
......
...@@ -283,11 +283,11 @@ struct xt_match { ...@@ -283,11 +283,11 @@ struct xt_match {
/* Called when entry of this type deleted. */ /* Called when entry of this type deleted. */
void (*destroy)(const struct xt_mtdtor_param *); void (*destroy)(const struct xt_mtdtor_param *);
#ifdef CONFIG_COMPAT
/* Called when userspace align differs from kernel space one */ /* Called when userspace align differs from kernel space one */
void (*compat_from_user)(void *dst, void *src); void (*compat_from_user)(void *dst, void *src);
int (*compat_to_user)(void __user *dst, void *src); int (*compat_to_user)(void __user *dst, void *src);
#endif
/* Set this to THIS_MODULE if you are a module, otherwise NULL */ /* Set this to THIS_MODULE if you are a module, otherwise NULL */
struct module *me; struct module *me;
...@@ -296,7 +296,9 @@ struct xt_match { ...@@ -296,7 +296,9 @@ struct xt_match {
const char *table; const char *table;
unsigned int matchsize; unsigned int matchsize;
#ifdef CONFIG_COMPAT
unsigned int compatsize; unsigned int compatsize;
#endif
unsigned int hooks; unsigned int hooks;
unsigned short proto; unsigned short proto;
...@@ -323,17 +325,19 @@ struct xt_target { ...@@ -323,17 +325,19 @@ struct xt_target {
/* Called when entry of this type deleted. */ /* Called when entry of this type deleted. */
void (*destroy)(const struct xt_tgdtor_param *); void (*destroy)(const struct xt_tgdtor_param *);
#ifdef CONFIG_COMPAT
/* Called when userspace align differs from kernel space one */ /* Called when userspace align differs from kernel space one */
void (*compat_from_user)(void *dst, void *src); void (*compat_from_user)(void *dst, void *src);
int (*compat_to_user)(void __user *dst, void *src); int (*compat_to_user)(void __user *dst, void *src);
#endif
/* Set this to THIS_MODULE if you are a module, otherwise NULL */ /* Set this to THIS_MODULE if you are a module, otherwise NULL */
struct module *me; struct module *me;
const char *table; const char *table;
unsigned int targetsize; unsigned int targetsize;
#ifdef CONFIG_COMPAT
unsigned int compatsize; unsigned int compatsize;
#endif
unsigned int hooks; unsigned int hooks;
unsigned short proto; unsigned short proto;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册