2015-07-16 12:42:45

by Andy Shevchenko

[permalink] [raw]
Subject: [PATCH 1/2] iwlwifi: convert hex_dump_to_buffer() to %*ph

There is no need to use hex_dump_to_buffer() in the cases like this:

hexdump_to_buffer(buf, len, 16, 1, outbuf, outlen, false); /* len <= 16 */
sprintf("%s\n", outbuf);

since it maybe easily converted to simple:

sprintf("%*ph\n", len, buf);

Note: it seems in one case the output is groupped by 2 bytes and looks like a
typo. Thus, patch changes that to plain byte stream.

Signed-off-by: Andy Shevchenko <[email protected]>
---
drivers/net/wireless/iwlwifi/dvm/debugfs.c | 8 ++------
drivers/net/wireless/iwlwifi/mvm/debugfs.c | 7 +------
2 files changed, 3 insertions(+), 12 deletions(-)

diff --git a/drivers/net/wireless/iwlwifi/dvm/debugfs.c b/drivers/net/wireless/iwlwifi/dvm/debugfs.c
index 0ffb6ff..b15e44f 100644
--- a/drivers/net/wireless/iwlwifi/dvm/debugfs.c
+++ b/drivers/net/wireless/iwlwifi/dvm/debugfs.c
@@ -310,12 +310,8 @@ static ssize_t iwl_dbgfs_nvm_read(struct file *file,
pos += scnprintf(buf + pos, buf_size - pos,
"NVM version: 0x%x\n", nvm_ver);
for (ofs = 0 ; ofs < eeprom_len ; ofs += 16) {
- pos += scnprintf(buf + pos, buf_size - pos, "0x%.4x ", ofs);
- hex_dump_to_buffer(ptr + ofs, 16 , 16, 2, buf + pos,
- buf_size - pos, 0);
- pos += strlen(buf + pos);
- if (buf_size - pos > 0)
- buf[pos++] = '\n';
+ pos += scnprintf(buf + pos, buf_size - pos, "0x%.4x %16ph\n",
+ ofs, ptr + ofs);
}

ret = simple_read_from_buffer(user_buf, count, ppos, buf, pos);
diff --git a/drivers/net/wireless/iwlwifi/mvm/debugfs.c b/drivers/net/wireless/iwlwifi/mvm/debugfs.c
index ffb4b5c..98abd31 100644
--- a/drivers/net/wireless/iwlwifi/mvm/debugfs.c
+++ b/drivers/net/wireless/iwlwifi/mvm/debugfs.c
@@ -1200,12 +1200,7 @@ static ssize_t iwl_dbgfs_d3_sram_read(struct file *file, char __user *user_buf,
if (ptr) {
for (ofs = 0; ofs < len; ofs += 16) {
pos += scnprintf(buf + pos, bufsz - pos,
- "0x%.4x ", ofs);
- hex_dump_to_buffer(ptr + ofs, 16, 16, 1, buf + pos,
- bufsz - pos, false);
- pos += strlen(buf + pos);
- if (bufsz - pos > 0)
- buf[pos++] = '\n';
+ "0x%.4x %16ph\n", ofs, ptr + ofs);
}
} else {
pos += scnprintf(buf + pos, bufsz - pos,
--
2.1.4



2015-07-16 12:42:19

by Andy Shevchenko

[permalink] [raw]
Subject: [PATCH 2/2] iwlegacy: convert hex_dump_to_buffer() to %*ph

There is no need to use hex_dump_to_buffer() in the cases like this:

hexdump_to_buffer(buf, len, 16, 1, outbuf, outlen, false); /* len <= 16 */
sprintf("%s\n", outbuf);

since it maybe easily converted to simple:

sprintf("%*ph\n", len, buf);

Note: it seems in the case the output is groupped by 2 bytes and looks like a
typo. Thus, patch changes that to plain byte stream.

Signed-off-by: Andy Shevchenko <[email protected]>
---
drivers/net/wireless/iwlegacy/3945-mac.c | 2 +-
drivers/net/wireless/iwlegacy/debug.c | 8 ++------
2 files changed, 3 insertions(+), 7 deletions(-)

diff --git a/drivers/net/wireless/iwlegacy/3945-mac.c b/drivers/net/wireless/iwlegacy/3945-mac.c
index 7f4cb69..af1b3e6 100644
--- a/drivers/net/wireless/iwlegacy/3945-mac.c
+++ b/drivers/net/wireless/iwlegacy/3945-mac.c
@@ -3259,7 +3259,7 @@ il3945_show_measurement(struct device *d, struct device_attribute *attr,

while (size && PAGE_SIZE - len) {
hex_dump_to_buffer(data + ofs, size, 16, 1, buf + len,
- PAGE_SIZE - len, 1);
+ PAGE_SIZE - len, true);
len = strlen(buf);
if (PAGE_SIZE - len)
buf[len++] = '\n';
diff --git a/drivers/net/wireless/iwlegacy/debug.c b/drivers/net/wireless/iwlegacy/debug.c
index 3440101..908b9f4 100644
--- a/drivers/net/wireless/iwlegacy/debug.c
+++ b/drivers/net/wireless/iwlegacy/debug.c
@@ -515,12 +515,8 @@ il_dbgfs_nvm_read(struct file *file, char __user *user_buf, size_t count,
scnprintf(buf + pos, buf_size - pos, "EEPROM " "version: 0x%x\n",
eeprom_ver);
for (ofs = 0; ofs < eeprom_len; ofs += 16) {
- pos += scnprintf(buf + pos, buf_size - pos, "0x%.4x ", ofs);
- hex_dump_to_buffer(ptr + ofs, 16, 16, 2, buf + pos,
- buf_size - pos, 0);
- pos += strlen(buf + pos);
- if (buf_size - pos > 0)
- buf[pos++] = '\n';
+ pos += scnprintf(buf + pos, buf_size - pos, "0x%.4x %16ph\n",
+ ofs, ptr + ofs);
}

ret = simple_read_from_buffer(user_buf, count, ppos, buf, pos);
--
2.1.4


2015-07-21 15:08:53

by Kalle Valo

[permalink] [raw]
Subject: Re: [2/2] iwlegacy: convert hex_dump_to_buffer() to %*ph


> There is no need to use hex_dump_to_buffer() in the cases like this:
>
> hexdump_to_buffer(buf, len, 16, 1, outbuf, outlen, false); /* len <= 16 */
> sprintf("%s\n", outbuf);
>
> since it maybe easily converted to simple:
>
> sprintf("%*ph\n", len, buf);
>
> Note: it seems in the case the output is groupped by 2 bytes and looks like a
> typo. Thus, patch changes that to plain byte stream.
>
> Signed-off-by: Andy Shevchenko <[email protected]>

Thanks, applied to wireless-drivers-next.git.

Kalle Valo

2015-08-04 11:52:29

by Emmanuel Grumbach

[permalink] [raw]
Subject: Re: [PATCH 1/2] iwlwifi: convert hex_dump_to_buffer() to %*ph

On Tue, Aug 4, 2015 at 2:48 PM, Emmanuel Grumbach <[email protected]> wrote:
> On Tue, Aug 4, 2015 at 1:47 PM, Andy Shevchenko
> <[email protected]> wrote:
>> On Thu, 2015-07-16 at 15:42 +0300, Andy Shevchenko wrote:
>>> There is no need to use hex_dump_to_buffer() in the cases like this:
>>>
>>> hexdump_to_buffer(buf, len, 16, 1, outbuf, outlen, false); > /* len <= 16
>>> */
>>> sprintf("%s\n", outbuf);
>>>
>>> since it maybe easily converted to simple:
>>>
>>> sprintf("%*ph\n", len, buf);
>>>
>>> Note: it seems in one case the output is groupped by 2 bytes and
>>> looks like a
>>> typo. Thus, patch changes that to plain byte stream.
>>
>>
>> Any comments on this, anyone?
>>
>> The idea is to minimize usage of hexdump_to_buffer(), i.e. not using it
>> when it's an obvious overkill.
>>
>
> Sorry for the delay, since the buffer is small (less than 16 bytes, it
> should be fine).

I applied it on our internal tree. Thank you.

2015-08-04 10:49:24

by Andy Shevchenko

[permalink] [raw]
Subject: Re: [PATCH 1/2] iwlwifi: convert hex_dump_to_buffer() to %*ph

On Thu, 2015-07-16 at 15:42 +0300, Andy Shevchenko wrote:
> There is no need to use hex_dump_to_buffer() in the cases like this:
>
> hexdump_to_buffer(buf, len, 16, 1, outbuf, outlen, false); > /* len <= 16
> */
> sprintf("%s\n", outbuf);
>
> since it maybe easily converted to simple:
>
> sprintf("%*ph\n", len, buf);
>
> Note: it seems in one case the output is groupped by 2 bytes and
> looks like a
> typo. Thus, patch changes that to plain byte stream.


Any comments on this, anyone?

The idea is to minimize usage of hexdump_to_buffer(), i.e. not using it
when it's an obvious overkill.

>
> Signed-off-by: Andy Shevchenko <[email protected]>
> ---
> drivers/net/wireless/iwlwifi/dvm/debugfs.c | 8 ++------
> drivers/net/wireless/iwlwifi/mvm/debugfs.c | 7 +------
> 2 files changed, 3 insertions(+), 12 deletions(-)
>
> diff --git a/drivers/net/wireless/iwlwifi/dvm/debugfs.c
> b/drivers/net/wireless/iwlwifi/dvm/debugfs.c
> index 0ffb6ff..b15e44f 100644
> --- a/drivers/net/wireless/iwlwifi/dvm/debugfs.c
> +++ b/drivers/net/wireless/iwlwifi/dvm/debugfs.c
> @@ -310,12 +310,8 @@ static ssize_t iwl_dbgfs_nvm_read(struct file
> *file,
> pos += scnprintf(buf + pos, buf_size - pos,
> "NVM version: 0x%x\n", nvm_ver);
> for (ofs = 0 ; ofs < eeprom_len ; ofs += 16) {
> - pos += scnprintf(buf + pos, buf_size - pos, "0x%.4x
> ", ofs);
> - hex_dump_to_buffer(ptr + ofs, 16 , 16, 2, buf + pos,
> - buf_size - pos, 0);
> - pos += strlen(buf + pos);
> - if (buf_size - pos > 0)
> - buf[pos++] = '\n';
> + pos += scnprintf(buf + pos, buf_size - pos, "0x%.4x
> %16ph\n",
> + ofs, ptr + ofs);
> }
>
> ret = simple_read_from_buffer(user_buf, count, ppos, buf,
> pos);
> diff --git a/drivers/net/wireless/iwlwifi/mvm/debugfs.c
> b/drivers/net/wireless/iwlwifi/mvm/debugfs.c
> index ffb4b5c..98abd31 100644
> --- a/drivers/net/wireless/iwlwifi/mvm/debugfs.c
> +++ b/drivers/net/wireless/iwlwifi/mvm/debugfs.c
> @@ -1200,12 +1200,7 @@ static ssize_t iwl_dbgfs_d3_sram_read(struct
> file *file, char __user *user_buf,
> if (ptr) {
> for (ofs = 0; ofs < len; ofs += 16) {
> pos += scnprintf(buf + pos, bufsz - pos,
> - "0x%.4x ", ofs);
> - hex_dump_to_buffer(ptr + ofs, 16, 16, 1, buf
> + pos,
> - bufsz - pos, false);
> - pos += strlen(buf + pos);
> - if (bufsz - pos > 0)
> - buf[pos++] = '\n';
> + "0x%.4x %16ph\n", ofs, ptr
> + ofs);
> }
> } else {
> pos += scnprintf(buf + pos, bufsz - pos,

--
Andy Shevchenko <[email protected]>
Intel Finland Oy

2015-08-04 11:48:14

by Emmanuel Grumbach

[permalink] [raw]
Subject: Re: [PATCH 1/2] iwlwifi: convert hex_dump_to_buffer() to %*ph

On Tue, Aug 4, 2015 at 1:47 PM, Andy Shevchenko
<[email protected]> wrote:
> On Thu, 2015-07-16 at 15:42 +0300, Andy Shevchenko wrote:
>> There is no need to use hex_dump_to_buffer() in the cases like this:
>>
>> hexdump_to_buffer(buf, len, 16, 1, outbuf, outlen, false); > /* len <= 16
>> */
>> sprintf("%s\n", outbuf);
>>
>> since it maybe easily converted to simple:
>>
>> sprintf("%*ph\n", len, buf);
>>
>> Note: it seems in one case the output is groupped by 2 bytes and
>> looks like a
>> typo. Thus, patch changes that to plain byte stream.
>
>
> Any comments on this, anyone?
>
> The idea is to minimize usage of hexdump_to_buffer(), i.e. not using it
> when it's an obvious overkill.
>

Sorry for the delay, since the buffer is small (less than 16 bytes, it
should be fine).