From: David S. Miller Date: Thu, 2 Aug 2018 17:55:32 +0000 (-0700) Subject: Merge ra.kernel.org:/pub/scm/linux/kernel/git/davem/net X-Git-Tag: v4.19-rc1~140^2~157 X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=89b1698c93a9dee043154f33d96bca9964e705f1;p=users%2Fjedix%2Flinux-maple.git Merge ra.kernel.org:/pub/scm/linux/kernel/git/davem/net The BTF conflicts were simple overlapping changes. The virtio_net conflict was an overlap of a fix of statistics counter, happening alongisde a move over to a bonafide statistics structure rather than counting value on the stack. Signed-off-by: David S. Miller --- 89b1698c93a9dee043154f33d96bca9964e705f1 diff --cc drivers/net/dsa/mv88e6xxx/chip.c index a80767d3c405,bb28c701381a..0b5a2c31f395 --- a/drivers/net/dsa/mv88e6xxx/chip.c +++ b/drivers/net/dsa/mv88e6xxx/chip.c @@@ -3346,9 -3335,9 +3345,10 @@@ static const struct mv88e6xxx_ops mv88e .reset = mv88e6352_g1_reset, .vtu_getnext = mv88e6352_g1_vtu_getnext, .vtu_loadpurge = mv88e6352_g1_vtu_loadpurge, + .serdes_power = mv88e6341_serdes_power, .gpio_ops = &mv88e6352_gpio_ops, .avb_ops = &mv88e6390_avb_ops, + .ptp_ops = &mv88e6352_ptp_ops, }; static const struct mv88e6xxx_ops mv88e6350_ops = { diff --cc net/rds/ib_mr.h index f440ace584c8,655f01d427fe..5da12c248431 --- a/net/rds/ib_mr.h +++ b/net/rds/ib_mr.h @@@ -113,11 -113,10 +113,12 @@@ struct rds_ib_mr_pool *rds_ib_create_mr int npages); void rds_ib_get_mr_info(struct rds_ib_device *rds_ibdev, struct rds_info_rdma_connection *iinfo); +void rds6_ib_get_mr_info(struct rds_ib_device *rds_ibdev, + struct rds6_info_rdma_connection *iinfo6); void rds_ib_destroy_mr_pool(struct rds_ib_mr_pool *); void *rds_ib_get_mr(struct scatterlist *sg, unsigned long nents, - struct rds_sock *rs, u32 *key_ret); + struct rds_sock *rs, u32 *key_ret, + struct rds_connection *conn); void rds_ib_sync_mr(void *trans_private, int dir); void rds_ib_free_mr(void *trans_private, int invalidate); void rds_ib_flush_mrs(void); diff --cc net/rds/ib_rdma.c index 99ccafb90410,2e49a40a5e11..63c8d107adcf --- a/net/rds/ib_rdma.c +++ b/net/rds/ib_rdma.c @@@ -553,10 -542,10 +554,10 @@@ void *rds_ib_get_mr(struct scatterlist { struct rds_ib_device *rds_ibdev; struct rds_ib_mr *ibmr = NULL; - struct rds_ib_connection *ic = rs->rs_conn->c_transport_data; + struct rds_ib_connection *ic = NULL; int ret; - rds_ibdev = rds_ib_get_device(rs->rs_bound_addr); + rds_ibdev = rds_ib_get_device(rs->rs_bound_addr.s6_addr32[3]); if (!rds_ibdev) { ret = -ENODEV; goto out; diff --cc tools/lib/bpf/btf.c index 03161be094b4,2d270c560df3..1622a309f169 --- a/tools/lib/bpf/btf.c +++ b/tools/lib/bpf/btf.c @@@ -259,29 -269,9 +274,29 @@@ __s64 btf__resolve_size(const struct bt return nelems * size; } +int btf__resolve_type(const struct btf *btf, __u32 type_id) +{ + const struct btf_type *t; + int depth = 0; + + t = btf__type_by_id(btf, type_id); + while (depth < MAX_RESOLVE_DEPTH && + !btf_type_is_void_or_null(t) && + IS_MODIFIER(BTF_INFO_KIND(t->info))) { + type_id = t->type; + t = btf__type_by_id(btf, type_id); + depth++; + } + + if (depth == MAX_RESOLVE_DEPTH || btf_type_is_void_or_null(t)) + return -EINVAL; + + return type_id; +} + - int32_t btf__find_by_name(const struct btf *btf, const char *type_name) + __s32 btf__find_by_name(const struct btf *btf, const char *type_name) { - uint32_t i; + __u32 i; if (!strcmp(type_name, "void")) return 0; diff --cc tools/lib/bpf/btf.h index 24f361d99a5e,e2a09a155f84..dd8a86eab8ca --- a/tools/lib/bpf/btf.h +++ b/tools/lib/bpf/btf.h @@@ -14,12 -15,10 +15,13 @@@ typedef int (*btf_print_fn_t)(const cha __attribute__((format(printf, 1, 2))); void btf__free(struct btf *btf); - struct btf *btf__new(uint8_t *data, uint32_t size, btf_print_fn_t err_log); - int32_t btf__find_by_name(const struct btf *btf, const char *type_name); - int64_t btf__resolve_size(const struct btf *btf, uint32_t type_id); + struct btf *btf__new(__u8 *data, __u32 size, btf_print_fn_t err_log); + __s32 btf__find_by_name(const struct btf *btf, const char *type_name); + const struct btf_type *btf__type_by_id(const struct btf *btf, __u32 id); + __s64 btf__resolve_size(const struct btf *btf, __u32 type_id); +int btf__resolve_type(const struct btf *btf, __u32 type_id); int btf__fd(const struct btf *btf); +const char *btf__name_by_offset(const struct btf *btf, __u32 offset); +const struct btf_type *btf__type_by_id(const struct btf *btf, __u32 type_id); #endif