[infiniband:for-next 37/52] drivers/net/ethernet/mellanox/mlx4/mlx4.h:695:1: error: expected identifier or '(' before '<<' token
Hi Roland, FYI, kernel build failed on tree: git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband.git for-next head: c99517cda3548a0e270d374fe97d589d38022b80 commit: 431ee27496b84effaaff9d21f0aae7c68015deeb [37/52] mlx4_core: Stash PCI ID driver_data in mlx4_priv structure config: x86_64-allmodconfig All error/warnings: In file included from drivers/net/ethernet/mellanox/mlx4/alloc.c:42:0: drivers/net/ethernet/mellanox/mlx4/mlx4.h:695:1: error: expected identifier or '(' before '<<' token -- In file included from drivers/net/ethernet/mellanox/mlx4/mcg.c:40:0: drivers/net/ethernet/mellanox/mlx4/mlx4.h:695:1: error: expected identifier or '(' before '<<' token drivers/net/ethernet/mellanox/mlx4/mcg.c:654:14: warning: 'struct mlx4_net_trans_rule_hw_ctrl' declared inside parameter list [enabled by default] drivers/net/ethernet/mellanox/mlx4/mcg.c:654:14: warning: its scope is only this definition or declaration, which is probably not what you want [enabled by default] drivers/net/ethernet/mellanox/mlx4/mcg.c: In function 'trans_rule_ctrl_to_hw': drivers/net/ethernet/mellanox/mlx4/mcg.c:671:4: error: dereferencing pointer to incomplete type drivers/net/ethernet/mellanox/mlx4/mcg.c:672:4: error: dereferencing pointer to incomplete type drivers/net/ethernet/mellanox/mlx4/mcg.c:673:4: error: dereferencing pointer to incomplete type drivers/net/ethernet/mellanox/mlx4/mcg.c: In function 'mlx4_flow_attach': drivers/net/ethernet/mellanox/mlx4/mcg.c:842:33: error: invalid application of 'sizeof' to incomplete type 'struct mlx4_net_trans_rule_hw_ctrl' drivers/net/ethernet/mellanox/mlx4/mcg.c:845:17: error: invalid application of 'sizeof' to incomplete type 'struct mlx4_net_trans_rule_hw_ctrl' -- In file included from drivers/net/ethernet/mellanox/mlx4/resource_tracker.c:47:0: drivers/net/ethernet/mellanox/mlx4/mlx4.h:695:1: error: expected identifier or '(' before '<<' token drivers/net/ethernet/mellanox/mlx4/resource_tracker.c: In function 'add_eth_header': drivers/net/ethernet/mellanox/mlx4/resource_tracker.c:3029:9: error: dereferencing pointer to incomplete type drivers/net/ethernet/mellanox/mlx4/resource_tracker.c:3029:9: error: dereferencing pointer to incomplete type drivers/net/ethernet/mellanox/mlx4/resource_tracker.c:3029:9: error: dereferencing pointer to incomplete type drivers/net/ethernet/mellanox/mlx4/resource_tracker.c:3029:9: error: dereferencing pointer to incomplete type drivers/net/ethernet/mellanox/mlx4/resource_tracker.c:3029:9: error: dereferencing pointer to incomplete type drivers/net/ethernet/mellanox/mlx4/resource_tracker.c:3029:9: error: dereferencing pointer to incomplete type drivers/net/ethernet/mellanox/mlx4/resource_tracker.c:3030:23: error: invalid use of undefined type 'struct mlx4_net_trans_rule_hw_ctrl' drivers/net/ethernet/mellanox/mlx4/resource_tracker.c: In function 'mlx4_QP_FLOW_STEERING_ATTACH_wrapper': drivers/net/ethernet/mellanox/mlx4/resource_tracker.c:3091:24: error: invalid use of undefined type 'struct mlx4_net_trans_rule_hw_ctrl' vim +695 drivers/net/ethernet/mellanox/mlx4/mlx4.h 0b7ca5a9 drivers/net/mlx4/mlx4.h (Yevgeny Petrilin 2011-03-22 689) b12d93d6 drivers/net/mlx4/mlx4.h (Yevgeny Petrilin 2011-03-22 690) struct mlx4_steer { b12d93d6 drivers/net/mlx4/mlx4.h (Yevgeny Petrilin 2011-03-22 691) struct list_head promisc_qps[MLX4_NUM_STEERS]; b12d93d6 drivers/net/mlx4/mlx4.h (Yevgeny Petrilin 2011-03-22 692) struct list_head steer_entries[MLX4_NUM_STEERS]; b12d93d6 drivers/net/mlx4/mlx4.h (Yevgeny Petrilin 2011-03-22 693) }; b12d93d6 drivers/net/mlx4/mlx4.h (Yevgeny Petrilin 2011-03-22 694) 431ee274 drivers/net/ethernet/mellanox/mlx4/mlx4.h (Roland Dreier2012-09-27 @695) <<< HEAD a8edc3bf drivers/net/ethernet/mellanox/mlx4/mlx4.h (Hadar Hen Zion 2012-09-05 696) struct mlx4_net_trans_rule_hw_ctrl { a8edc3bf drivers/net/ethernet/mellanox/mlx4/mlx4.h (Hadar Hen Zion 2012-09-05 697) __be32 ctrl; a8edc3bf drivers/net/ethernet/mellanox/mlx4/mlx4.h (Hadar Hen Zion 2012-09-05 698) __be32 vf_vep_port; --- 0-DAY kernel build testing backend Open Source Technology Centre Fengguang Wu, Yuanhan Liu Intel Corporation -- To unsubscribe from this list: send the line "unsubscribe linux-rdma" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH v3 1/7] libibverbs: Infrastructure to support verbs extensions
On Fri, Sep 28, 2012 at 10:53:49PM +, Hefty, Sean wrote: > change from v2: > Added a has_comp_mask field to verbs_context Did I miss something? It never gets used, and never gets set in the mlx4 patches? Jason -- To unsubscribe from this list: send the line "unsubscribe linux-rdma" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH v3 1/2] libmlx4: Infra-structure changes to support verbs extensions
> -static struct ibv_device *mlx4_driver_init(const char *uverbs_sys_path, > - int abi_version) > +static struct verbs_device *mlx4_driver_init(const char *uverbs_sys_path, > + int abi_version) > { > charvalue[8]; > - struct mlx4_device*dev; > + struct mlx4_device_ex *dev; > unsignedvendor, device; > int i; [..] The allocation of 'dev' needs to be via zero'ing calloc so new unsupported members of verbs_device are zero'd. > +++ b/src/mlx4.h > @@ -135,6 +135,11 @@ struct mlx4_device { > int page_size; > }; > > +struct mlx4_device_ex { > + struct verbs_device verbs_dev; > + int page_size; > +}; > + This looks wrong to me. offsetof(page_size) will be different on mlx4_device_ex vs mlx4_device, and mlx4_alloc_cq_buf has no test to correct for that. mlx4_device_ex should be removed, and mlx4_device changed to always use verbs_device, as a provider-allocated structure the provider assumes the ibv_device * pointers it gets were created by driver_init. > +#define to_mxxx_ex(xxx, type) > \ > + ((struct mlx4_##type##_ex *)\ > + ((void *) verbs##xxx - offsetof(struct mlx4_##type##_ex, verbs_##xxx))) > + > + > +static inline struct mlx4_device_ex *to_mdev_ex(const struct verbs_device > + *verbsdev) > +{ > + return to_mxxx_ex(dev, device); > +} Dump too.. Maybe make your containerof available to the providers and ditch all these converters? Jason -- To unsubscribe from this list: send the line "unsubscribe linux-rdma" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html