From 4eb745c8cb5c82a2e01e407648c708de5c5a7d3e Mon Sep 17 00:00:00 2001 From: "Srivatsa S. Bhat" <srivatsa@csail.mit.edu> Date: Tue, 2 Oct 2018 17:17:36 -0700 Subject: [PATCH] bpf, ext4, bonding: Fix compilation errors MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit In file included from kernel/bpf/core.c:24:0: kernel/bpf/core.c: In function ‘___bpf_prog_run’: ./include/linux/filter.h:750:50: error: cast from function type ‘u64 (*)(u64, u64, u64, u64, u64) {aka long long unsigned int (*)(long long unsigned int, long long unsigned int, long long unsigned int, long long unsigned int, long long unsigned int)}’ to non-matching type ‘u64 (*)(u64, u64, u64, u64, u64, const struct bpf_insn *) {aka long long unsigned int (*)(long long unsigned int, long long unsigned int, long long unsigned int, long long unsigned int, long long unsigned int, const struct bpf_insn *)}’ ((u64 (*)(u64, u64, u64, u64, u64, const struct bpf_insn *)) \ ^ kernel/bpf/core.c:1132:13: note: in expansion of macro ‘__bpf_call_base_args’ BPF_R0 = (__bpf_call_base_args + insn->imm)(BPF_R1, BPF_R2, ^~~~~~~~~~~~~~~~~~~~ kernel/bpf/core.c: In function ‘bpf_patch_call_args’: ./include/linux/filter.h:750:50: error: cast from function type ‘u64 (*)(u64, u64, u64, u64, u64) {aka long long unsigned int (*)(long long unsigned int, long long unsigned int, long long unsigned int, long long unsigned int, long long unsigned int)}’ to non-matching type ‘u64 (*)(u64, u64, u64, u64, u64, const struct bpf_insn *) {aka long long unsigned int (*)(long long unsigned int, long long unsigned int, long long unsigned int, long long unsigned int, long long unsigned int, const struct bpf_insn *)}’ ((u64 (*)(u64, u64, u64, u64, u64, const struct bpf_insn *)) \ ^ kernel/bpf/core.c:1410:3: note: in expansion of macro ‘__bpf_call_base_args’ __bpf_call_base_args; ^~~~~~~~~~~~~~~~~~~~ fs/ext4/sysfs.c:349:30: error: cast from function type ‘void (*)(const void *)’ to non-matching type ‘void (*)(struct kobject *)’ .release = (void (*)(struct kobject *))kfree, ^~~~~~~ Signed-off-by: Srivatsa S. Bhat <srivatsa@csail.mit.edu> --- drivers/gpu/drm/nouveau/Kbuild | 2 ++ drivers/gpu/drm/nouveau/dispnv50/wndw.h | 4 ++-- fs/ext4/sysfs.c | 2 +- include/linux/filter.h | 2 +- include/net/bond_alb.h | 4 ++-- 5 files changed, 8 insertions(+), 6 deletions(-) diff --git a/drivers/gpu/drm/nouveau/Kbuild b/drivers/gpu/drm/nouveau/Kbuild index b17843d..d9a83ac 100644 --- a/drivers/gpu/drm/nouveau/Kbuild +++ b/drivers/gpu/drm/nouveau/Kbuild @@ -62,3 +62,5 @@ nouveau-y += nv84_fence.o nouveau-y += nvc0_fence.o obj-$(CONFIG_DRM_NOUVEAU) += nouveau.o + +OBJECT_FILES_NON_STANDARD := y diff --git a/drivers/gpu/drm/nouveau/dispnv50/wndw.h b/drivers/gpu/drm/nouveau/dispnv50/wndw.h index b0b6428..0770683 100644 --- a/drivers/gpu/drm/nouveau/dispnv50/wndw.h +++ b/drivers/gpu/drm/nouveau/dispnv50/wndw.h @@ -38,8 +38,8 @@ struct nv50_wndw { int nv50_wndw_new_(const struct nv50_wndw_func *, struct drm_device *, enum drm_plane_type, const char *name, int index, - const u32 *format, enum nv50_disp_interlock_type, - u32 interlock_data, u32 heads, struct nv50_wndw **); + const u32 *format, u32 heads, enum nv50_disp_interlock_type, + u32 interlock_data, struct nv50_wndw **); void nv50_wndw_init(struct nv50_wndw *); void nv50_wndw_fini(struct nv50_wndw *); void nv50_wndw_flush_set(struct nv50_wndw *, u32 *interlock, diff --git a/fs/ext4/sysfs.c b/fs/ext4/sysfs.c index b970a20..6255fe4 100644 --- a/fs/ext4/sysfs.c +++ b/fs/ext4/sysfs.c @@ -346,7 +346,7 @@ static struct kobj_type ext4_sb_ktype = { static struct kobj_type ext4_feat_ktype = { .default_attrs = ext4_feat_attrs, .sysfs_ops = &ext4_attr_ops, - .release = (void (*)(struct kobject *))kfree, + .release = (void (*)(struct kobject *))((void *)kfree), }; static struct kobject *ext4_root; diff --git a/include/linux/filter.h b/include/linux/filter.h index c73dd73..4a4a7ff 100644 --- a/include/linux/filter.h +++ b/include/linux/filter.h @@ -748,7 +748,7 @@ void sk_filter_uncharge(struct sock *sk, struct sk_filter *fp); u64 __bpf_call_base(u64 r1, u64 r2, u64 r3, u64 r4, u64 r5); #define __bpf_call_base_args \ ((u64 (*)(u64, u64, u64, u64, u64, const struct bpf_insn *)) \ - __bpf_call_base) + ((void *) __bpf_call_base)) struct bpf_prog *bpf_int_jit_compile(struct bpf_prog *prog); void bpf_jit_compile(struct bpf_prog *prog); diff --git a/include/net/bond_alb.h b/include/net/bond_alb.h index 313a8d3..092e434 100644 --- a/include/net/bond_alb.h +++ b/include/net/bond_alb.h @@ -172,8 +172,8 @@ int bond_alb_init_slave(struct bonding *bond, struct slave *slave); void bond_alb_deinit_slave(struct bonding *bond, struct slave *slave); void bond_alb_handle_link_change(struct bonding *bond, struct slave *slave, char link); void bond_alb_handle_active_change(struct bonding *bond, struct slave *new_slave); -int bond_alb_xmit(struct sk_buff *skb, struct net_device *bond_dev); -int bond_tlb_xmit(struct sk_buff *skb, struct net_device *bond_dev); +netdev_tx_t bond_alb_xmit(struct sk_buff *skb, struct net_device *bond_dev); +netdev_tx_t bond_tlb_xmit(struct sk_buff *skb, struct net_device *bond_dev); void bond_alb_monitor(struct work_struct *); int bond_alb_set_mac_address(struct net_device *bond_dev, void *addr); void bond_alb_clear_vlan(struct bonding *bond, unsigned short vlan_id); -- 2.7.4