Re: [PATCH 25/28] staging: wilc1000: change cast type from pointer to uintptr_t

2015-08-03 Thread tony . cho

Hi Greg,

I'm scheduled to send new patch not using casting between a pointer and integer 
type.

Rewriting the driver to change how to communicate with the firmware has been 
already started for the second patch but it takes more days.

Thanks for your advice,

Tony.


On 2015년 08월 01일 05:50, Greg KH wrote:

On Fri, Jul 31, 2015 at 04:38:33PM +0900, Tony Cho wrote:

From: glen lee glen@atmel.com

To use drvHandler as integer operation, cast type to uintptr_t.

Here is the build warning.
drivers/staging/wilc1000/wilc_wlan.c:1871:23: warning: cast from pointer to
integer of different size [-Wpointer-to-int-cast]
   int driver_handler = (u32)drvHandler;

Signed-off-by: glen lee glen@atmel.com
Signed-off-by: Tony Cho tony@atmel.com
---
  drivers/staging/wilc1000/linux_wlan.c | 2 +-
  drivers/staging/wilc1000/wilc_wlan.c  | 2 +-
  2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/staging/wilc1000/linux_wlan.c 
b/drivers/staging/wilc1000/linux_wlan.c
index ec80849..14c2071 100644
--- a/drivers/staging/wilc1000/linux_wlan.c
+++ b/drivers/staging/wilc1000/linux_wlan.c
@@ -1056,7 +1056,7 @@ static int linux_wlan_init_test_config(struct net_device 
*dev, linux_wlan_t *p_n
goto _fail_;
}
  
-	*(int *)c_val = (u32)pstrWFIDrv;

+   *(int *)c_val = (uintptr_t)pstrWFIDrv;

Why is the cast needed at all?

  
  	if (!g_linux_wlan-oup.wlan_cfg_set(1, WID_SET_DRV_HANDLER, c_val, 4, 0, 0))

goto _fail_;
diff --git a/drivers/staging/wilc1000/wilc_wlan.c 
b/drivers/staging/wilc1000/wilc_wlan.c
index f5075b26..2cc23d5 100644
--- a/drivers/staging/wilc1000/wilc_wlan.c
+++ b/drivers/staging/wilc1000/wilc_wlan.c
@@ -1868,7 +1868,7 @@ static int wilc_wlan_cfg_commit(int type, 
WILC_WFIDrvHandle drvHandler)
wilc_cfg_frame_t *cfg = p-cfg_frame;
int total_len = p-cfg_frame_offset + 4 + DRIVER_HANDLER_SIZE;
int seq_no = p-cfg_seq_no % 256;
-   int driver_handler = (u32)drvHandler;
+   int driver_handler = (uintptr_t)drvHandler;

You can't cast a pointer to an integer, it does not work on all systems,
which is what the compiler warnings is telling you.

If this really is a pointer, use a pointer, otherwise, use an integer,
but don't cast between the two.

thanks,

greg k-h


--
Cho, Tony
Manager, Staff Engineer | Connectivity System Software Team | Atmel Korea 
(Wireless solutions BU)
#409, Kins Tower, Jeongja-Dong, Bundang-Gu, Seongnam-Si, Gyeonggi-Do, 463-782, 
Korea
Phone:82 31 784 8400(Ext. 317); Mobile: 82 10 7232 1523
email: tony@atmel.com

___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


Re: [PATCH 25/28] staging: wilc1000: change cast type from pointer to uintptr_t

2015-07-31 Thread Greg KH
On Fri, Jul 31, 2015 at 04:38:33PM +0900, Tony Cho wrote:
 From: glen lee glen@atmel.com
 
 To use drvHandler as integer operation, cast type to uintptr_t.
 
 Here is the build warning.
 drivers/staging/wilc1000/wilc_wlan.c:1871:23: warning: cast from pointer to
 integer of different size [-Wpointer-to-int-cast]
   int driver_handler = (u32)drvHandler;
 
 Signed-off-by: glen lee glen@atmel.com
 Signed-off-by: Tony Cho tony@atmel.com
 ---
  drivers/staging/wilc1000/linux_wlan.c | 2 +-
  drivers/staging/wilc1000/wilc_wlan.c  | 2 +-
  2 files changed, 2 insertions(+), 2 deletions(-)
 
 diff --git a/drivers/staging/wilc1000/linux_wlan.c 
 b/drivers/staging/wilc1000/linux_wlan.c
 index ec80849..14c2071 100644
 --- a/drivers/staging/wilc1000/linux_wlan.c
 +++ b/drivers/staging/wilc1000/linux_wlan.c
 @@ -1056,7 +1056,7 @@ static int linux_wlan_init_test_config(struct 
 net_device *dev, linux_wlan_t *p_n
   goto _fail_;
   }
  
 - *(int *)c_val = (u32)pstrWFIDrv;
 + *(int *)c_val = (uintptr_t)pstrWFIDrv;

Why is the cast needed at all?

  
   if (!g_linux_wlan-oup.wlan_cfg_set(1, WID_SET_DRV_HANDLER, c_val, 4, 
 0, 0))
   goto _fail_;
 diff --git a/drivers/staging/wilc1000/wilc_wlan.c 
 b/drivers/staging/wilc1000/wilc_wlan.c
 index f5075b26..2cc23d5 100644
 --- a/drivers/staging/wilc1000/wilc_wlan.c
 +++ b/drivers/staging/wilc1000/wilc_wlan.c
 @@ -1868,7 +1868,7 @@ static int wilc_wlan_cfg_commit(int type, 
 WILC_WFIDrvHandle drvHandler)
   wilc_cfg_frame_t *cfg = p-cfg_frame;
   int total_len = p-cfg_frame_offset + 4 + DRIVER_HANDLER_SIZE;
   int seq_no = p-cfg_seq_no % 256;
 - int driver_handler = (u32)drvHandler;
 + int driver_handler = (uintptr_t)drvHandler;

You can't cast a pointer to an integer, it does not work on all systems,
which is what the compiler warnings is telling you.

If this really is a pointer, use a pointer, otherwise, use an integer,
but don't cast between the two.

thanks,

greg k-h
___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


[PATCH 25/28] staging: wilc1000: change cast type from pointer to uintptr_t

2015-07-31 Thread Tony Cho
From: glen lee glen@atmel.com

To use drvHandler as integer operation, cast type to uintptr_t.

Here is the build warning.
drivers/staging/wilc1000/wilc_wlan.c:1871:23: warning: cast from pointer to
integer of different size [-Wpointer-to-int-cast]
  int driver_handler = (u32)drvHandler;

Signed-off-by: glen lee glen@atmel.com
Signed-off-by: Tony Cho tony@atmel.com
---
 drivers/staging/wilc1000/linux_wlan.c | 2 +-
 drivers/staging/wilc1000/wilc_wlan.c  | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/staging/wilc1000/linux_wlan.c 
b/drivers/staging/wilc1000/linux_wlan.c
index ec80849..14c2071 100644
--- a/drivers/staging/wilc1000/linux_wlan.c
+++ b/drivers/staging/wilc1000/linux_wlan.c
@@ -1056,7 +1056,7 @@ static int linux_wlan_init_test_config(struct net_device 
*dev, linux_wlan_t *p_n
goto _fail_;
}
 
-   *(int *)c_val = (u32)pstrWFIDrv;
+   *(int *)c_val = (uintptr_t)pstrWFIDrv;
 
if (!g_linux_wlan-oup.wlan_cfg_set(1, WID_SET_DRV_HANDLER, c_val, 4, 
0, 0))
goto _fail_;
diff --git a/drivers/staging/wilc1000/wilc_wlan.c 
b/drivers/staging/wilc1000/wilc_wlan.c
index f5075b26..2cc23d5 100644
--- a/drivers/staging/wilc1000/wilc_wlan.c
+++ b/drivers/staging/wilc1000/wilc_wlan.c
@@ -1868,7 +1868,7 @@ static int wilc_wlan_cfg_commit(int type, 
WILC_WFIDrvHandle drvHandler)
wilc_cfg_frame_t *cfg = p-cfg_frame;
int total_len = p-cfg_frame_offset + 4 + DRIVER_HANDLER_SIZE;
int seq_no = p-cfg_seq_no % 256;
-   int driver_handler = (u32)drvHandler;
+   int driver_handler = (uintptr_t)drvHandler;
 
 
/**
-- 
1.9.1

___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel