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 for Android: free password hash cracker in your pocket
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:   Wed, 31 May 2017 10:31:32 +0200
From:   Daniel Vetter <daniel@...ll.ch>
To:     Joe Perches <joe@...ches.com>
Cc:     Daniel Vetter <daniel.vetter@...el.com>,
        Jani Nikula <jani.nikula@...ux.intel.com>,
        Sean Paul <seanpaul@...omium.org>,
        David Airlie <airlied@...ux.ie>, linux-kernel@...r.kernel.org,
        dri-devel@...ts.freedesktop.org
Subject: Re: [PATCH] drm: Use vsnprintf extension %ph

On Tue, May 30, 2017 at 04:35:37PM -0700, Joe Perches wrote:
> Using the extension saves a bit of code.
> 
> Miscellanea:
> 
> o Neaten and simplify dump_dp_payload_table
> o Removed trailing blank space from output

Not a huge fan of smashing random trivia into the same patch, but merged
anyway. %ph is rather neat, TIL.

Thanks, Daniel

> 
> $ size drivers/gpu/drm/drm_dp_mst_topology.o.* drivers/gpu/drm/tinydrm/*.o*
>    text	   data	    bss	    dec	    hex	filename
>   25848	      0	     16	  25864	   6508	drivers/gpu/drm/drm_dp_mst_topology.o.new
>   26091	      0	     16	  26107	   65fb	drivers/gpu/drm/drm_dp_mst_topology.o.old
>    3362	      2	      0	   3364	    d24	drivers/gpu/drm/tinydrm/mipi-dbi.o.new
>    3376	      2	      0	   3378	    d32	drivers/gpu/drm/tinydrm/mipi-dbi.o.old
> 
> Signed-off-by: Joe Perches <joe@...ches.com>
> ---
>  drivers/gpu/drm/drm_dp_mst_topology.c | 51 +++++++++++------------------------
>  drivers/gpu/drm/tinydrm/mipi-dbi.c    |  7 ++---
>  2 files changed, 18 insertions(+), 40 deletions(-)
> 
> diff --git a/drivers/gpu/drm/drm_dp_mst_topology.c b/drivers/gpu/drm/drm_dp_mst_topology.c
> index 222eb1a8549b..bfd237c15e76 100644
> --- a/drivers/gpu/drm/drm_dp_mst_topology.c
> +++ b/drivers/gpu/drm/drm_dp_mst_topology.c
> @@ -2836,16 +2836,15 @@ static void drm_dp_mst_dump_mstb(struct seq_file *m,
>  static bool dump_dp_payload_table(struct drm_dp_mst_topology_mgr *mgr,
>  				  char *buf)
>  {
> -	int ret;
>  	int i;
> -	for (i = 0; i < 4; i++) {
> -		ret = drm_dp_dpcd_read(mgr->aux, DP_PAYLOAD_TABLE_UPDATE_STATUS + (i * 16), &buf[i * 16], 16);
> -		if (ret != 16)
> -			break;
> +
> +	for (i = 0; i < 64; i += 16) {
> +		if (drm_dp_dpcd_read(mgr->aux,
> +				     DP_PAYLOAD_TABLE_UPDATE_STATUS + i,
> +				     &buf[i], 16) != 16)
> +			return false;
>  	}
> -	if (i == 4)
> -		return true;
> -	return false;
> +	return true;
>  }
>  
>  static void fetch_monitor_name(struct drm_dp_mst_topology_mgr *mgr,
> @@ -2909,42 +2908,24 @@ void drm_dp_mst_dump_topology(struct seq_file *m,
>  	mutex_lock(&mgr->lock);
>  	if (mgr->mst_primary) {
>  		u8 buf[64];
> -		bool bret;
>  		int ret;
> +
>  		ret = drm_dp_dpcd_read(mgr->aux, DP_DPCD_REV, buf, DP_RECEIVER_CAP_SIZE);
> -		seq_printf(m, "dpcd: ");
> -		for (i = 0; i < DP_RECEIVER_CAP_SIZE; i++)
> -			seq_printf(m, "%02x ", buf[i]);
> -		seq_printf(m, "\n");
> +		seq_printf(m, "dpcd: %*ph\n", DP_RECEIVER_CAP_SIZE, buf);
>  		ret = drm_dp_dpcd_read(mgr->aux, DP_FAUX_CAP, buf, 2);
> -		seq_printf(m, "faux/mst: ");
> -		for (i = 0; i < 2; i++)
> -			seq_printf(m, "%02x ", buf[i]);
> -		seq_printf(m, "\n");
> +		seq_printf(m, "faux/mst: %*ph\n", 2, buf);
>  		ret = drm_dp_dpcd_read(mgr->aux, DP_MSTM_CTRL, buf, 1);
> -		seq_printf(m, "mst ctrl: ");
> -		for (i = 0; i < 1; i++)
> -			seq_printf(m, "%02x ", buf[i]);
> -		seq_printf(m, "\n");
> +		seq_printf(m, "mst ctrl: %*ph\n", 1, buf);
>  
>  		/* dump the standard OUI branch header */
>  		ret = drm_dp_dpcd_read(mgr->aux, DP_BRANCH_OUI, buf, DP_BRANCH_OUI_HEADER_SIZE);
> -		seq_printf(m, "branch oui: ");
> -		for (i = 0; i < 0x3; i++)
> -			seq_printf(m, "%02x", buf[i]);
> -		seq_printf(m, " devid: ");
> +		seq_printf(m, "branch oui: %*phN devid: ", 3, buf);
>  		for (i = 0x3; i < 0x8 && buf[i]; i++)
>  			seq_printf(m, "%c", buf[i]);
> -
> -		seq_printf(m, " revision: hw: %x.%x sw: %x.%x", buf[0x9] >> 4, buf[0x9] & 0xf, buf[0xa], buf[0xb]);
> -		seq_printf(m, "\n");
> -		bret = dump_dp_payload_table(mgr, buf);
> -		if (bret == true) {
> -			seq_printf(m, "payload table: ");
> -			for (i = 0; i < 63; i++)
> -				seq_printf(m, "%02x ", buf[i]);
> -			seq_printf(m, "\n");
> -		}
> +		seq_printf(m, " revision: hw: %x.%x sw: %x.%x\n",
> +			   buf[0x9] >> 4, buf[0x9] & 0xf, buf[0xa], buf[0xb]);
> +		if (dump_dp_payload_table(mgr, buf))
> +			seq_printf(m, "payload table: %*ph\n", 63, buf);
>  
>  	}
>  
> diff --git a/drivers/gpu/drm/tinydrm/mipi-dbi.c b/drivers/gpu/drm/tinydrm/mipi-dbi.c
> index f4eb412f3604..c83eeb7a34b0 100644
> --- a/drivers/gpu/drm/tinydrm/mipi-dbi.c
> +++ b/drivers/gpu/drm/tinydrm/mipi-dbi.c
> @@ -914,7 +914,7 @@ static int mipi_dbi_debugfs_command_show(struct seq_file *m, void *unused)
>  {
>  	struct mipi_dbi *mipi = m->private;
>  	u8 cmd, val[4];
> -	size_t len, i;
> +	size_t len;
>  	int ret;
>  
>  	for (cmd = 0; cmd < 255; cmd++) {
> @@ -943,10 +943,7 @@ static int mipi_dbi_debugfs_command_show(struct seq_file *m, void *unused)
>  			seq_puts(m, "XX\n");
>  			continue;
>  		}
> -
> -		for (i = 0; i < len; i++)
> -			seq_printf(m, "%02x", val[i]);
> -		seq_puts(m, "\n");
> +		seq_printf(m, "%*phN\n", (int)len, val);
>  	}
>  
>  	return 0;
> -- 
> 2.10.0.rc2.1.g053435c
> 
> _______________________________________________
> dri-devel mailing list
> dri-devel@...ts.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/dri-devel

-- 
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ