netdevsim: don't compile BPF code if syscall not enabled
We should not compile netdevsim/bpf.c if BPF syscall is not enabled. Otherwise bpf core would have to provide wrappers for all functions offload drivers may call, even though system will never see a BPF object. Signed-off-by: Jakub Kicinski <jakub.kicinski@netronome.com> Reviewed-by: Quentin Monnet <quentin.monnet@netronome.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
Родитель
caf952288d
Коммит
7c5db7e729
|
@ -4,4 +4,8 @@ obj-$(CONFIG_NETDEVSIM) += netdevsim.o
|
||||||
|
|
||||||
netdevsim-objs := \
|
netdevsim-objs := \
|
||||||
netdev.o \
|
netdev.o \
|
||||||
bpf.o \
|
|
||||||
|
ifeq ($(CONFIG_BPF_SYSCALL),y)
|
||||||
|
netdevsim-objs += \
|
||||||
|
bpf.o
|
||||||
|
endif
|
||||||
|
|
|
@ -68,12 +68,40 @@ struct netdevsim {
|
||||||
|
|
||||||
extern struct dentry *nsim_ddir;
|
extern struct dentry *nsim_ddir;
|
||||||
|
|
||||||
|
#ifdef CONFIG_BPF_SYSCALL
|
||||||
int nsim_bpf_init(struct netdevsim *ns);
|
int nsim_bpf_init(struct netdevsim *ns);
|
||||||
void nsim_bpf_uninit(struct netdevsim *ns);
|
void nsim_bpf_uninit(struct netdevsim *ns);
|
||||||
int nsim_bpf(struct net_device *dev, struct netdev_bpf *bpf);
|
int nsim_bpf(struct net_device *dev, struct netdev_bpf *bpf);
|
||||||
int nsim_bpf_disable_tc(struct netdevsim *ns);
|
int nsim_bpf_disable_tc(struct netdevsim *ns);
|
||||||
int nsim_bpf_setup_tc_block_cb(enum tc_setup_type type,
|
int nsim_bpf_setup_tc_block_cb(enum tc_setup_type type,
|
||||||
void *type_data, void *cb_priv);
|
void *type_data, void *cb_priv);
|
||||||
|
#else
|
||||||
|
static inline int nsim_bpf_init(struct netdevsim *ns)
|
||||||
|
{
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline void nsim_bpf_uninit(struct netdevsim *ns)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline int nsim_bpf(struct net_device *dev, struct netdev_bpf *bpf)
|
||||||
|
{
|
||||||
|
return bpf->command == XDP_QUERY_PROG ? 0 : -EOPNOTSUPP;
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline int nsim_bpf_disable_tc(struct netdevsim *ns)
|
||||||
|
{
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline int
|
||||||
|
nsim_bpf_setup_tc_block_cb(enum tc_setup_type type, void *type_data,
|
||||||
|
void *cb_priv)
|
||||||
|
{
|
||||||
|
return -EOPNOTSUPP;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
static inline struct netdevsim *to_nsim(struct device *ptr)
|
static inline struct netdevsim *to_nsim(struct device *ptr)
|
||||||
{
|
{
|
||||||
|
|
Загрузка…
Ссылка в новой задаче