lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <35202f2acb9367b926b2066af3f7f4731a9c5f47.camel@linux.intel.com>
Date:   Tue, 07 Jun 2022 10:44:22 -0700
From:   Tim Chen <tim.c.chen@...ux.intel.com>
To:     Li kunyu <kunyu@...china.com>, tglx@...utronix.de,
        mingo@...hat.com, bp@...en8.de, dave.hansen@...ux.intel.com,
        hpa@...or.com, rafael.j.wysocki@...el.com, tony.luck@...el.com,
        tim.gardner@...onical.com, boris.ostrovsky@...cle.com
Cc:     peterz@...radead.org, ray.huang@....com, paulmck@...nel.org,
        ionela.voinescu@....com, linux-kernel@...r.kernel.org
Subject: Re: [PATCH] x86: topology_update_package_map function doesn't use
 the return value

On Mon, 2022-06-06 at 20:23 +0800, Li kunyu wrote:
> topology_update_package_map function could remove the return value, and
> it could remove the BUG_ON check.
> 
> Signed-off-by: Li kunyu <kunyu@...china.com>

As far as I can tell, topology_update_package_map() should always succeed and return 0.
Either there is an existing mapping of the physical package to a logical
package id and we don't have to do anything, or we assign a new logical package id to this
physical package id that doesn't have a mapping.

So I agree that checking for the failure and non-zero return of topology_update_package_map()
is useless.

Likewise, I think topology_update_die_map() should always succeed and we can remove
checking of its return value.  

Reviewed-by: Tim Chen <tim.c.chen@...ux.intel.com>


> ---
>  arch/x86/include/asm/topology.h | 6 +++---
>  arch/x86/kernel/cpu/common.c    | 2 +-
>  arch/x86/kernel/smpboot.c       | 3 +--
>  3 files changed, 5 insertions(+), 6 deletions(-)
> 
> diff --git a/arch/x86/include/asm/topology.h b/arch/x86/include/asm/topology.h
> index 458c891a8273..eabfb44b63ed 100644
> --- a/arch/x86/include/asm/topology.h
> +++ b/arch/x86/include/asm/topology.h
> @@ -136,7 +136,7 @@ static inline int topology_max_smt_threads(void)
>  	return __max_smt_threads;
>  }
>  
> -int topology_update_package_map(unsigned int apicid, unsigned int cpu);
> +void topology_update_package_map(unsigned int apicid, unsigned int cpu);
>  int topology_update_die_map(unsigned int dieid, unsigned int cpu);
>  int topology_phys_to_logical_pkg(unsigned int pkg);
>  int topology_phys_to_logical_die(unsigned int die, unsigned int cpu);
> @@ -144,8 +144,8 @@ bool topology_is_primary_thread(unsigned int cpu);
>  bool topology_smt_supported(void);
>  #else
>  #define topology_max_packages()			(1)
> -static inline int
> -topology_update_package_map(unsigned int apicid, unsigned int cpu) { return 0; }
> +static inline void
> +topology_update_package_map(unsigned int apicid, unsigned int cpu) { }
>  static inline int
>  topology_update_die_map(unsigned int dieid, unsigned int cpu) { return 0; }
>  static inline int topology_phys_to_logical_pkg(unsigned int pkg) { return 0; }
> diff --git a/arch/x86/kernel/cpu/common.c b/arch/x86/kernel/cpu/common.c
> index c296cb1c0113..22d19a1feafd 100644
> --- a/arch/x86/kernel/cpu/common.c
> +++ b/arch/x86/kernel/cpu/common.c
> @@ -1673,7 +1673,7 @@ static void validate_apic_and_package_id(struct cpuinfo_x86 *c)
>  		pr_err(FW_BUG "CPU%u: APIC id mismatch. Firmware: %x APIC: %x\n",
>  		       cpu, apicid, c->initial_apicid);
>  	}
> -	BUG_ON(topology_update_package_map(c->phys_proc_id, cpu));
> +	topology_update_package_map(c->phys_proc_id, cpu);
>  	BUG_ON(topology_update_die_map(c->cpu_die_id, cpu));
>  #else
>  	c->logical_proc_id = 0;
> diff --git a/arch/x86/kernel/smpboot.c b/arch/x86/kernel/smpboot.c
> index 5e7f9532a10d..20c67cca245b 100644
> --- a/arch/x86/kernel/smpboot.c
> +++ b/arch/x86/kernel/smpboot.c
> @@ -327,7 +327,7 @@ EXPORT_SYMBOL(topology_phys_to_logical_die);
>   * @pkg:	The physical package id as retrieved via CPUID
>   * @cpu:	The cpu for which this is updated
>   */
> -int topology_update_package_map(unsigned int pkg, unsigned int cpu)
> +void topology_update_package_map(unsigned int pkg, unsigned int cpu)
>  {
>  	int new;
>  
> @@ -343,7 +343,6 @@ int topology_update_package_map(unsigned int pkg, unsigned int cpu)
>  	}
>  found:
>  	cpu_data(cpu).logical_proc_id = new;
> -	return 0;
>  }
>  /**
>   * topology_update_die_map - Update the physical to logical die map

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ