Re: [PATCH pahole 2/2] btf: fix kind_flag usage in btf_loader

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Em Sat, Dec 22, 2018 at 11:16:49PM -0800, Yonghong Song escreveu:
> Commit 2a82d593be81 ("btf: Add kind_flag support for btf_loader")
> added kind_flag supported in btf_loader to get correct
> bitfield_size and bit_offset for struct/union members.
> The commit unnecessarily stored the bit in the
> structure type which is not used later.
> 
> So let us remove the kind_flag from the struct type and any
> other changes whose purpose is to set this bit.

Thanks, applied.
 
> Fixes: 2a82d593be81 ("btf: Add kind_flag support for btf_loader")
> Signed-off-by: Yonghong Song <yhs@xxxxxx>
> ---
>  btf_loader.c | 26 ++++++++++++--------------
>  dwarves.h    |  1 -
>  2 files changed, 12 insertions(+), 15 deletions(-)
> 
> diff --git a/btf_loader.c b/btf_loader.c
> index ad4cd23..d443556 100644
> --- a/btf_loader.c
> +++ b/btf_loader.c
> @@ -101,7 +101,7 @@ static struct base_type *base_type__new(strings_t name, uint32_t attrs,
>  }
>  
>  static void type__init(struct type *type, uint16_t tag,
> -		       strings_t name, size_t size, bool kflag)
> +		       strings_t name, size_t size)
>  {
>  	INIT_LIST_HEAD(&type->node);
>  	INIT_LIST_HEAD(&type->namespace.tags);
> @@ -109,26 +109,24 @@ static void type__init(struct type *type, uint16_t tag,
>  	type->namespace.tag.tag = tag;
>  	type->namespace.name = name;
>  	type->namespace.sname = 0;
> -	type->flag = kflag;
>  }
>  
> -static struct type *type__new(uint16_t tag, strings_t name, size_t size,
> -			      bool kflag)
> +static struct type *type__new(uint16_t tag, strings_t name, size_t size)
>  {
>          struct type *type = tag__alloc(sizeof(*type));
>  
>  	if (type != NULL)
> -		type__init(type, tag, name, size, kflag);
> +		type__init(type, tag, name, size);
>  
>  	return type;
>  }
>  
> -static struct class *class__new(strings_t name, size_t size, bool kflag)
> +static struct class *class__new(strings_t name, size_t size)
>  {
>  	struct class *class = tag__alloc(sizeof(*class));
>  
>  	if (class != NULL) {
> -		type__init(&class->type, DW_TAG_structure_type, name, size, kflag);
> +		type__init(&class->type, DW_TAG_structure_type, name, size);
>  		INIT_LIST_HEAD(&class->vtable);
>  	}
>  
> @@ -215,7 +213,7 @@ static int create_new_class(struct btf *btf, void *ptr, int vlen,
>  			    bool kflag)
>  {
>  	strings_t name = btf__get32(btf, &tp->name_off);
> -	struct class *class = class__new(name, size, kflag);
> +	struct class *class = class__new(name, size);
>  	int member_size = create_members(btf, ptr, vlen, &class->type, kflag);
>  
>  	if (member_size < 0)
> @@ -235,7 +233,7 @@ static int create_new_union(struct btf *btf, void *ptr,
>  			    bool kflag)
>  {
>  	strings_t name = btf__get32(btf, &tp->name_off);
> -	struct type *un = type__new(DW_TAG_union_type, name, size, kflag);
> +	struct type *un = type__new(DW_TAG_union_type, name, size);
>  	int member_size = create_members(btf, ptr, vlen, un, kflag);
>  
>  	if (member_size < 0)
> @@ -270,7 +268,7 @@ static int create_new_enumeration(struct btf *btf, void *ptr,
>  	uint16_t i;
>  	struct type *enumeration = type__new(DW_TAG_enumeration_type,
>  					     btf__get32(btf, &tp->name_off),
> -					     size ?: (sizeof(int) * 8), false);
> +					     size ?: (sizeof(int) * 8));
>  
>  	if (enumeration == NULL)
>  		return -ENOMEM;
> @@ -311,10 +309,10 @@ static int create_new_subroutine_type(struct btf *btf, void *ptr,
>  }
>  
>  static int create_new_forward_decl(struct btf *btf, struct btf_type *tp,
> -				   uint64_t size, long id, bool kflag)
> +				   uint64_t size, long id)
>  {
>  	strings_t name = btf__get32(btf, &tp->name_off);
> -	struct class *fwd = class__new(name, size, kflag);
> +	struct class *fwd = class__new(name, size);
>  
>  	if (fwd == NULL)
>  		return -ENOMEM;
> @@ -327,7 +325,7 @@ static int create_new_typedef(struct btf *btf, struct btf_type *tp, uint64_t siz
>  {
>  	strings_t name = btf__get32(btf, &tp->name_off);
>  	unsigned int type_id = btf__get32(btf, &tp->type);
> -	struct type *type = type__new(DW_TAG_typedef, name, size, false);
> +	struct type *type = type__new(DW_TAG_typedef, name, size);
>  
>  	if (type == NULL)
>  		return -ENOMEM;
> @@ -404,7 +402,7 @@ static int btf__load_types(struct btf *btf)
>  		} else if (type == BTF_KIND_ENUM) {
>  			vlen = create_new_enumeration(btf, ptr, vlen, type_ptr, size, type_index);
>  		} else if (type == BTF_KIND_FWD) {
> -			vlen = create_new_forward_decl(btf, type_ptr, size, type_index, kflag);
> +			vlen = create_new_forward_decl(btf, type_ptr, size, type_index);
>  		} else if (type == BTF_KIND_TYPEDEF) {
>  			vlen = create_new_typedef(btf, type_ptr, size, type_index);
>  		} else if (type == BTF_KIND_VOLATILE ||
> diff --git a/dwarves.h b/dwarves.h
> index 93fc99e..1bff9ad 100644
> --- a/dwarves.h
> +++ b/dwarves.h
> @@ -879,7 +879,6 @@ struct type {
>  	uint8_t		 definition_emitted:1;
>  	uint8_t		 fwd_decl_emitted:1;
>  	uint8_t		 resized:1;
> -	uint8_t		 flag:1;
>  };
>  
>  static inline struct class *type__class(const struct type *type)
> -- 
> 2.17.1

-- 

- Arnaldo



[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux