[dpdk-dev] i40e: remove warning

Message ID 20171214182245.31991-1-mcroce@redhat.com (mailing list archive)
State Superseded, archived
Headers

Checks

Context Check Description
ci/checkpatch warning coding style issues
ci/Intel-compilation success Compilation OK

Commit Message

Matteo Croce Dec. 14, 2017, 6:22 p.m. UTC
  Fix a printf warning which made the compilation fail when compiling
with GCC 7.2 and -Werror:

  error: format ‘%llu’ expects argument of type ‘long long unsigned int’,
  but argument 8 has type ‘u64 {aka long unsigned int}’ [-Werror=format=]

Signed-off-by: Matteo Croce <mcroce@redhat.com>
---
 drivers/net/i40e/base/i40e_common.c | 2 +-
 drivers/net/i40e/base/i40e_nvm.c    | 6 +++---
 2 files changed, 4 insertions(+), 4 deletions(-)
  

Comments

Kyle Larose Dec. 14, 2017, 8:15 p.m. UTC | #1
> -----Original Message-----

> From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Matteo Croce

> Sent: Thursday, December 14, 2017 1:23 PM

> To: dev@dpdk.org

> Subject: [dpdk-dev] [PATCH] i40e: remove warning

> 

> Fix a printf warning which made the compilation fail when compiling with GCC

> 7.2 and -Werror:

> 

>   error: format ‘%llu’ expects argument of type ‘long long unsigned int’,

>   but argument 8 has type ‘u64 {aka long unsigned int}’ [-Werror=format=]

> 

> Signed-off-by: Matteo Croce <mcroce@redhat.com>

> ---

>  drivers/net/i40e/base/i40e_common.c | 2 +-

>  drivers/net/i40e/base/i40e_nvm.c    | 6 +++---

>  2 files changed, 4 insertions(+), 4 deletions(-)

> 

> diff --git a/drivers/net/i40e/base/i40e_common.c

> b/drivers/net/i40e/base/i40e_common.c

> index 900d379ca..14834e8f2 100644

> --- a/drivers/net/i40e/base/i40e_common.c

> +++ b/drivers/net/i40e/base/i40e_common.c

> @@ -3929,7 +3929,7 @@ STATIC void i40e_parse_discover_capabilities(struct

> i40e_hw *hw, void *buff,

>  			p->wr_csr_prot = (u64)number;

>  			p->wr_csr_prot |= (u64)logical_id << 32;

>  			i40e_debug(hw, I40E_DEBUG_INIT,

> -				   "HW Capability: wr_csr_prot = 0x%llX\n\n",

> +				   "HW Capability: wr_csr_prot = 0x%lX\n\n",

>  				   (p->wr_csr_prot & 0xffff));

>  			break;

>  		case I40E_AQ_CAP_ID_NVM_MGMT:



wr_src_prot is a u64, which will translate to long long on 32-bit systems. This will likely trip over a similar warning in that case.
Should we instead use "HW Capability: wr_src_prot = 0x"PRIX64"\n\n"?

See inttypes.h for more info.
  
Matteo Croce Dec. 14, 2017, 8:18 p.m. UTC | #2
On Thu, Dec 14, 2017 at 9:15 PM, Kyle Larose <klarose@sandvine.com> wrote:
>
>
>> -----Original Message-----
>> From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Matteo Croce
>> Sent: Thursday, December 14, 2017 1:23 PM
>> To: dev@dpdk.org
>> Subject: [dpdk-dev] [PATCH] i40e: remove warning
>>
>> Fix a printf warning which made the compilation fail when compiling with GCC
>> 7.2 and -Werror:
>>
>>   error: format ‘%llu’ expects argument of type ‘long long unsigned int’,
>>   but argument 8 has type ‘u64 {aka long unsigned int}’ [-Werror=format=]
>>
>> Signed-off-by: Matteo Croce <mcroce@redhat.com>
>> ---
>>  drivers/net/i40e/base/i40e_common.c | 2 +-
>>  drivers/net/i40e/base/i40e_nvm.c    | 6 +++---
>>  2 files changed, 4 insertions(+), 4 deletions(-)
>>
>> diff --git a/drivers/net/i40e/base/i40e_common.c
>> b/drivers/net/i40e/base/i40e_common.c
>> index 900d379ca..14834e8f2 100644
>> --- a/drivers/net/i40e/base/i40e_common.c
>> +++ b/drivers/net/i40e/base/i40e_common.c
>> @@ -3929,7 +3929,7 @@ STATIC void i40e_parse_discover_capabilities(struct
>> i40e_hw *hw, void *buff,
>>                       p->wr_csr_prot = (u64)number;
>>                       p->wr_csr_prot |= (u64)logical_id << 32;
>>                       i40e_debug(hw, I40E_DEBUG_INIT,
>> -                                "HW Capability: wr_csr_prot = 0x%llX\n\n",
>> +                                "HW Capability: wr_csr_prot = 0x%lX\n\n",
>>                                  (p->wr_csr_prot & 0xffff));
>>                       break;
>>               case I40E_AQ_CAP_ID_NVM_MGMT:
>
>
> wr_src_prot is a u64, which will translate to long long on 32-bit systems. This will likely trip over a similar warning in that case.
> Should we instead use "HW Capability: wr_src_prot = 0x"PRIX64"\n\n"?
>
> See inttypes.h for more info.
>

Indeed. I'm making a v2 anyway because there are non printable color
codes from the GCC output
  

Patch

diff --git a/drivers/net/i40e/base/i40e_common.c b/drivers/net/i40e/base/i40e_common.c
index 900d379ca..14834e8f2 100644
--- a/drivers/net/i40e/base/i40e_common.c
+++ b/drivers/net/i40e/base/i40e_common.c
@@ -3929,7 +3929,7 @@  STATIC void i40e_parse_discover_capabilities(struct i40e_hw *hw, void *buff,
 			p->wr_csr_prot = (u64)number;
 			p->wr_csr_prot |= (u64)logical_id << 32;
 			i40e_debug(hw, I40E_DEBUG_INIT,
-				   "HW Capability: wr_csr_prot = 0x%llX\n\n",
+				   "HW Capability: wr_csr_prot = 0x%lX\n\n",
 				   (p->wr_csr_prot & 0xffff));
 			break;
 		case I40E_AQ_CAP_ID_NVM_MGMT:
diff --git a/drivers/net/i40e/base/i40e_nvm.c b/drivers/net/i40e/base/i40e_nvm.c
index a1e78300d..7b1377657 100644
--- a/drivers/net/i40e/base/i40e_nvm.c
+++ b/drivers/net/i40e/base/i40e_nvm.c
@@ -118,7 +118,7 @@  enum i40e_status_code i40e_acquire_nvm(struct i40e_hw *hw,
 
 	if (ret_code)
 		i40e_debug(hw, I40E_DEBUG_NVM,
-			   "NVM acquire type %d failed time_left=%llu ret=%d aq_err=%d\n",
+			   "NVM acquire type %d failed time_left=%lu ret=%d aq_err=%d\n",
 			   access, time_left, ret_code, hw->aq.asq_last_status);
 
 	if (ret_code && time_left) {
@@ -140,7 +140,7 @@  enum i40e_status_code i40e_acquire_nvm(struct i40e_hw *hw,
 		if (ret_code != I40E_SUCCESS) {
 			hw->nvm.hw_semaphore_timeout = 0;
 			i40e_debug(hw, I40E_DEBUG_NVM,
-				   "NVM acquire timed out, wait %llu ms before trying again. status=%d aq_err=%d\n",
+				   "NVM acquire timed out, wait %lu ms before trying again. status=%d aq_err=%d\n",
 				   time_left, ret_code, hw->aq.asq_last_status);
 		}
 	}
@@ -1232,7 +1232,7 @@  STATIC enum i40e_status_code i40e_nvmupd_state_writing(struct i40e_hw *hw,
 		gtime = rd32(hw, I40E_GLVFGEN_TIMER);
 		if (gtime >= hw->nvm.hw_semaphore_timeout) {
 			i40e_debug(hw, I40E_DEBUG_ALL,
-				   "NVMUPD: write semaphore expired (%d >= %lld), retrying\n",
+				   "NVMUPD: write semaphore expired (%d >= %ld), retrying\n",
 				   gtime, hw->nvm.hw_semaphore_timeout);
 			i40e_release_nvm(hw);
 			status = i40e_acquire_nvm(hw, I40E_RESOURCE_WRITE);