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: <2b345a08daceebb324e730e5f187acba3d388aff.camel@linux.ibm.com>
Date: Tue, 13 Aug 2024 20:14:15 +1000
From: Andrew Donnellan <ajd@...ux.ibm.com>
To: "Rob Herring (Arm)" <robh@...nel.org>,
        Frederic Barrat
	 <fbarrat@...ux.ibm.com>,
        Arnd Bergmann <arnd@...db.de>,
        Greg Kroah-Hartman
	 <gregkh@...uxfoundation.org>
Cc: linuxppc-dev@...ts.ozlabs.org, linux-kernel@...r.kernel.org
Subject: Re: [PATCH 1/2] cxl: Drop printing of DT properties

On Mon, 2024-07-29 at 16:36 -0600, Rob Herring (Arm) wrote:
> There's little reason to dump DT property values when they can be
> read
> at any time from the DT in /proc/device-tree. If such a feature is
> needed, then it really should be implemented in the DT core such that
> any module/driver can use it.
> 
> Signed-off-by: Rob Herring (Arm) <robh@...nel.org>

I'm okay with this, I think this level of dmesg verbosity was more
useful in the early days of implementing guest support than it is now,
and I'm hoping to rip the cxl driver out completely at some point
anyway.

Acked-by: Andrew Donnellan <ajd@...ux.ibm.com>

> ---
>  drivers/misc/cxl/of.c | 101 ++--------------------------------------
> ----------
>  1 file changed, 3 insertions(+), 98 deletions(-)
> 
> diff --git a/drivers/misc/cxl/of.c b/drivers/misc/cxl/of.c
> index bcc005dff1c0..21ecce0f9403 100644
> --- a/drivers/misc/cxl/of.c
> +++ b/drivers/misc/cxl/of.c
> @@ -19,8 +19,6 @@ static const __be32 *read_prop_string(const struct
> device_node *np,
>  	const __be32 *prop;
>  
>  	prop = of_get_property(np, prop_name, NULL);
> -	if (cxl_verbose && prop)
> -		pr_info("%s: %s\n", prop_name, (char *) prop);
>  	return prop;
>  }
>  
> @@ -32,8 +30,6 @@ static const __be32 *read_prop_dword(const struct
> device_node *np,
>  	prop = of_get_property(np, prop_name, NULL);
>  	if (prop)
>  		*val = be32_to_cpu(prop[0]);
> -	if (cxl_verbose && prop)
> -		pr_info("%s: %#x (%u)\n", prop_name, *val, *val);
>  	return prop;
>  }
>  
> @@ -45,8 +41,6 @@ static const __be64 *read_prop64_dword(const struct
> device_node *np,
>  	prop = of_get_property(np, prop_name, NULL);
>  	if (prop)
>  		*val = be64_to_cpu(prop[0]);
> -	if (cxl_verbose && prop)
> -		pr_info("%s: %#llx (%llu)\n", prop_name, *val,
> *val);
>  	return prop;
>  }
>  
> @@ -100,9 +94,6 @@ static int read_phys_addr(struct device_node *np,
> char *prop_name,
>  					type, prop_name);
>  				return -EINVAL;
>  			}
> -			if (cxl_verbose)
> -				pr_info("%s: %#x %#llx (size
> %#llx)\n",
> -					prop_name, type, addr,
> size);
>  		}
>  	}
>  	return 0;
> @@ -139,27 +130,13 @@ int cxl_of_read_afu_handle(struct cxl_afu *afu,
> struct device_node *afu_np)
>  
>  int cxl_of_read_afu_properties(struct cxl_afu *afu, struct
> device_node *np)
>  {
> -	int i, len, rc;
> -	char *p;
> +	int i, rc;
>  	const __be32 *prop;
>  	u16 device_id, vendor_id;
>  	u32 val = 0, class_code;
>  
>  	/* Properties are read in the same order as listed in PAPR
> */
>  
> -	if (cxl_verbose) {
> -		pr_info("Dump of the 'ibm,coherent-platform-
> function' node properties:\n");
> -
> -		prop = of_get_property(np, "compatible", &len);
> -		i = 0;
> -		while (i < len) {
> -			p = (char *) prop + i;
> -			pr_info("compatible: %s\n", p);
> -			i += strlen(p) + 1;
> -		}
> -		read_prop_string(np, "name");
> -	}
> -
>  	rc = read_phys_addr(np, "reg", afu);
>  	if (rc)
>  		return rc;
> @@ -173,19 +150,10 @@ int cxl_of_read_afu_properties(struct cxl_afu
> *afu, struct device_node *np)
>  	else
>  		afu->psa = true;
>  
> -	if (cxl_verbose) {
> -		read_prop_string(np, "ibm,loc-code");
> -		read_prop_string(np, "device_type");
> -	}
> -
>  	read_prop_dword(np, "ibm,#processes", &afu-
> >max_procs_virtualised);
>  
> -	if (cxl_verbose) {
> -		read_prop_dword(np, "ibm,scratchpad-size", &val);
> -		read_prop_dword(np, "ibm,programmable", &val);
> -		read_prop_string(np, "ibm,phandle");
> +	if (cxl_verbose)
>  		read_vpd(NULL, afu);
> -	}
>  
>  	read_prop_dword(np, "ibm,max-ints-per-process", &afu->guest-
> >max_ints);
>  	afu->irqs_max = afu->guest->max_ints;
> @@ -199,17 +167,9 @@ int cxl_of_read_afu_properties(struct cxl_afu
> *afu, struct device_node *np)
>  		afu->pp_irqs--;
>  	}
>  
> -	if (cxl_verbose) {
> -		read_prop_dword(np, "ibm,max-ints", &val);
> -		read_prop_dword(np, "ibm,vpd-size", &val);
> -	}
> -
>  	read_prop64_dword(np, "ibm,error-buffer-size", &afu-
> >eb_len);
>  	afu->eb_offset = 0;
>  
> -	if (cxl_verbose)
> -		read_prop_dword(np, "ibm,config-record-type", &val);
> -
>  	read_prop64_dword(np, "ibm,config-record-size", &afu-
> >crs_len);
>  	afu->crs_offset = 0;
>  
> @@ -235,15 +195,6 @@ int cxl_of_read_afu_properties(struct cxl_afu
> *afu, struct device_node *np)
>  					i, class_code);
>  			}
>  		}
> -
> -		read_prop_dword(np, "ibm,function-number", &val);
> -		read_prop_dword(np, "ibm,privileged-function",
> &val);
> -		read_prop_dword(np, "vendor-id", &val);
> -		read_prop_dword(np, "device-id", &val);
> -		read_prop_dword(np, "revision-id", &val);
> -		read_prop_dword(np, "class-code", &val);
> -		read_prop_dword(np, "subsystem-vendor-id", &val);
> -		read_prop_dword(np, "subsystem-id", &val);
>  	}
>  	/*
>  	 * if "ibm,process-mmio" doesn't exist then per-process mmio
> is
> @@ -256,12 +207,6 @@ int cxl_of_read_afu_properties(struct cxl_afu
> *afu, struct device_node *np)
>  	else
>  		afu->pp_psa = false;
>  
> -	if (cxl_verbose) {
> -		read_prop_dword(np, "ibm,supports-aur", &val);
> -		read_prop_dword(np, "ibm,supports-csrp", &val);
> -		read_prop_dword(np, "ibm,supports-prr", &val);
> -	}
> -
>  	prop = read_prop_dword(np, "ibm,function-error-interrupt",
> &val);
>  	if (prop)
>  		afu->serr_hwirq = val;
> @@ -343,49 +288,15 @@ int cxl_of_read_adapter_handle(struct cxl
> *adapter, struct device_node *np)
>  
>  int cxl_of_read_adapter_properties(struct cxl *adapter, struct
> device_node *np)
>  {
> -	int rc, len, naddr, i;
> -	char *p;
> +	int rc;
>  	const __be32 *prop;
>  	u32 val = 0;
>  
>  	/* Properties are read in the same order as listed in PAPR
> */
>  
> -	naddr = of_n_addr_cells(np);
> -
> -	if (cxl_verbose) {
> -		pr_info("Dump of the 'ibm,coherent-platform-
> facility' node properties:\n");
> -
> -		read_prop_dword(np, "#address-cells", &val);
> -		read_prop_dword(np, "#size-cells", &val);
> -
> -		prop = of_get_property(np, "compatible", &len);
> -		i = 0;
> -		while (i < len) {
> -			p = (char *) prop + i;
> -			pr_info("compatible: %s\n", p);
> -			i += strlen(p) + 1;
> -		}
> -		read_prop_string(np, "name");
> -		read_prop_string(np, "model");
> -
> -		prop = of_get_property(np, "reg", NULL);
> -		if (prop) {
> -			pr_info("reg: addr:%#llx size:%#x\n",
> -				of_read_number(prop, naddr),
> -				be32_to_cpu(prop[naddr]));
> -		}
> -
> -		read_prop_string(np, "ibm,loc-code");
> -	}
> -
>  	if ((rc = read_adapter_irq_config(adapter, np)))
>  		return rc;
>  
> -	if (cxl_verbose) {
> -		read_prop_string(np, "device_type");
> -		read_prop_string(np, "ibm,phandle");
> -	}
> -
>  	prop = read_prop_dword(np, "ibm,caia-version", &val);
>  	if (prop) {
>  		adapter->caia_major = (val & 0xFF00) >> 8;
> @@ -411,12 +322,6 @@ int cxl_of_read_adapter_properties(struct cxl
> *adapter, struct device_node *np)
>  	if (prop)
>  		adapter->guest->device = val;
>  
> -	if (cxl_verbose) {
> -		read_prop_dword(np, "ibm,privileged-facility",
> &val);
> -		read_prop_dword(np, "revision-id", &val);
> -		read_prop_dword(np, "class-code", &val);
> -	}
> -
>  	prop = read_prop_dword(np, "subsystem-vendor-id", &val);
>  	if (prop)
>  		adapter->guest->subsystem_vendor = val;
> 

-- 
Andrew Donnellan    OzLabs, ADL Canberra
ajd@...ux.ibm.com   IBM Australia Limited

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ