diff mbox series

uio_hv_generic: fix type mismatch warnings

Message ID 20180110164250.1103858-1-arnd@arndb.de
State Accepted
Commit 72d1465789506cdc441cb85271d993aee4ae79fe
Headers show
Series uio_hv_generic: fix type mismatch warnings | expand

Commit Message

Arnd Bergmann Jan. 10, 2018, 4:42 p.m. UTC
I moved the virt_to_phys() conversion into hv_uio_probe() as part of
a warning fix. Stephen's cleanup to remove the private mmap() function
seems reasonable, but part of it reverted the change that I did to
hide the warnings, so they are back now:

drivers/uio/uio_hv_generic.c: In function 'hv_uio_probe':
drivers/uio/uio_hv_generic.c:123:5: error: cast from pointer to integer of different size [-Werror=pointer-to-int-cast]
drivers/uio/uio_hv_generic.c:130:5: error: cast from pointer to integer of different size [-Werror=pointer-to-int-cast]
drivers/uio/uio_hv_generic.c:136:5: error: cast from pointer to integer of different size [-Werror=pointer-to-int-cast]

The type mismatch is now the result of the uio_mmap() definition, and
the best way I see from here is to shut them up with a uintptr_t cast.

Fixes: 9c40546c012c ("uio_hv_generic: use standard mmap for resources")
Signed-off-by: Arnd Bergmann <arnd@arndb.de>

---
 drivers/uio/uio_hv_generic.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

-- 
2.9.0

Comments

Stephen Hemminger Jan. 10, 2018, 4:57 p.m. UTC | #1
On Wed, 10 Jan 2018 17:42:38 +0100
Arnd Bergmann <arnd@arndb.de> wrote:

> I moved the virt_to_phys() conversion into hv_uio_probe() as part of

> a warning fix. Stephen's cleanup to remove the private mmap() function

> seems reasonable, but part of it reverted the change that I did to

> hide the warnings, so they are back now:

> 

> drivers/uio/uio_hv_generic.c: In function 'hv_uio_probe':

> drivers/uio/uio_hv_generic.c:123:5: error: cast from pointer to integer of different size [-Werror=pointer-to-int-cast]

> drivers/uio/uio_hv_generic.c:130:5: error: cast from pointer to integer of different size [-Werror=pointer-to-int-cast]

> drivers/uio/uio_hv_generic.c:136:5: error: cast from pointer to integer of different size [-Werror=pointer-to-int-cast]

> 

> The type mismatch is now the result of the uio_mmap() definition, and

> the best way I see from here is to shut them up with a uintptr_t cast.

> 

> Fixes: 9c40546c012c ("uio_hv_generic: use standard mmap for resources")

> Signed-off-by: Arnd Bergmann <arnd@arndb.de>


Thanks. Not sure why I don't see these.

Signed-off-by: Stephen Hemminger <sthemmin@microsoft.com>
Arnd Bergmann Jan. 10, 2018, 5:14 p.m. UTC | #2
On Wed, Jan 10, 2018 at 5:57 PM, Stephen Hemminger
<stephen@networkplumber.org> wrote:
> On Wed, 10 Jan 2018 17:42:38 +0100

> Arnd Bergmann <arnd@arndb.de> wrote:

>

>> I moved the virt_to_phys() conversion into hv_uio_probe() as part of

>> a warning fix. Stephen's cleanup to remove the private mmap() function

>> seems reasonable, but part of it reverted the change that I did to

>> hide the warnings, so they are back now:

>>

>> drivers/uio/uio_hv_generic.c: In function 'hv_uio_probe':

>> drivers/uio/uio_hv_generic.c:123:5: error: cast from pointer to integer of different size [-Werror=pointer-to-int-cast]

>> drivers/uio/uio_hv_generic.c:130:5: error: cast from pointer to integer of different size [-Werror=pointer-to-int-cast]

>> drivers/uio/uio_hv_generic.c:136:5: error: cast from pointer to integer of different size [-Werror=pointer-to-int-cast]

>>

>> The type mismatch is now the result of the uio_mmap() definition, and

>> the best way I see from here is to shut them up with a uintptr_t cast.

>>

>> Fixes: 9c40546c012c ("uio_hv_generic: use standard mmap for resources")

>> Signed-off-by: Arnd Bergmann <arnd@arndb.de>

>

> Thanks. Not sure why I don't see these.

>

> Signed-off-by: Stephen Hemminger <sthemmin@microsoft.com>


This is only on 32-bit targets with 64-bit phys_addr_t, which you don't normally
have on x86 in regular configurations, but it can happen in randconfig builds.

        Arnd
diff mbox series

Patch

diff --git a/drivers/uio/uio_hv_generic.c b/drivers/uio/uio_hv_generic.c
index a0c4c07a907f..c740984506f7 100644
--- a/drivers/uio/uio_hv_generic.c
+++ b/drivers/uio/uio_hv_generic.c
@@ -120,20 +120,20 @@  hv_uio_probe(struct hv_device *dev,
 	/* mem resources */
 	pdata->info.mem[TXRX_RING_MAP].name = "txrx_rings";
 	pdata->info.mem[TXRX_RING_MAP].addr
-		= (phys_addr_t)dev->channel->ringbuffer_pages;
+		= (uintptr_t)dev->channel->ringbuffer_pages;
 	pdata->info.mem[TXRX_RING_MAP].size
 		= dev->channel->ringbuffer_pagecount << PAGE_SHIFT;
 	pdata->info.mem[TXRX_RING_MAP].memtype = UIO_MEM_LOGICAL;
 
 	pdata->info.mem[INT_PAGE_MAP].name = "int_page";
 	pdata->info.mem[INT_PAGE_MAP].addr
-		= (phys_addr_t)vmbus_connection.int_page;
+		= (uintptr_t)vmbus_connection.int_page;
 	pdata->info.mem[INT_PAGE_MAP].size = PAGE_SIZE;
 	pdata->info.mem[INT_PAGE_MAP].memtype = UIO_MEM_LOGICAL;
 
 	pdata->info.mem[MON_PAGE_MAP].name = "monitor_page";
 	pdata->info.mem[MON_PAGE_MAP].addr
-		= (phys_addr_t)vmbus_connection.monitor_pages[1];
+		= (uintptr_t)vmbus_connection.monitor_pages[1];
 	pdata->info.mem[MON_PAGE_MAP].size = PAGE_SIZE;
 	pdata->info.mem[MON_PAGE_MAP].memtype = UIO_MEM_LOGICAL;