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: Alexey Dobriyan <adobriyan@gmail.com> Signed-off-by: Patrick McHardy <kaber@trash.net>
This commit is contained in:
parent
477781477a
commit
c30f540b63
@ -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,
|
|||||||
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 {
|
|||||||
|
|
||||||
/* 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 {
|
|||||||
|
|
||||||
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 {
|
|||||||
|
|
||||||
/* 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;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user