netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] vmxnet3: prevent building with 64K pages
@ 2017-02-17 15:08 Arnd Bergmann
  2017-02-17 20:27 ` David Miller
  0 siblings, 1 reply; 2+ messages in thread
From: Arnd Bergmann @ 2017-02-17 15:08 UTC (permalink / raw)
  To: David S. Miller
  Cc: Shrikrishna Khare, VMware Inc ., Arnd Bergmann, netdev, linux-kernel

I got a warning about broken code on ARM64 with 64K pages:

drivers/net/vmxnet3/vmxnet3_drv.c: In function 'vmxnet3_rq_init':
drivers/net/vmxnet3/vmxnet3_drv.c:1679:29: error: large integer implicitly truncated to unsigned type [-Werror=overflow]
    rq->buf_info[0][i].len = PAGE_SIZE;

'len' here is a 16-bit integer, so this clearly won't work. I don't think
this driver is used much on anything other than x86, so there is no need
to fix this properly and we can work around it with a Kconfig dependency
to forbid known-broken configurations. qemu in theory supports it on
other architectures too, but presumably only for compatibility with x86
guests that also run on vmware.

CONFIG_PAGE_SIZE_64KB is used on hexagon, mips, sh and tile, the other
symbols are architecture-specific names for the same thing.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
---
 drivers/net/Kconfig | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/drivers/net/Kconfig b/drivers/net/Kconfig
index 4c07a067df1d..8a49fedb80ef 100644
--- a/drivers/net/Kconfig
+++ b/drivers/net/Kconfig
@@ -458,6 +458,9 @@ config XEN_NETDEV_BACKEND
 config VMXNET3
 	tristate "VMware VMXNET3 ethernet driver"
 	depends on PCI && INET
+	depends on !(PAGE_SIZE_64KB || ARM64_64K_PAGES || \
+		     IA64_PAGE_SIZE_64KB || MICROBLAZE_64K_PAGES || \
+		     PARISC_PAGE_SIZE_64KB || PPC_64K_PAGES)
 	help
 	  This driver supports VMware's vmxnet3 virtual ethernet NIC.
 	  To compile this driver as a module, choose M here: the
-- 
2.9.0

^ permalink raw reply related	[flat|nested] 2+ messages in thread

* Re: [PATCH] vmxnet3: prevent building with 64K pages
  2017-02-17 15:08 [PATCH] vmxnet3: prevent building with 64K pages Arnd Bergmann
@ 2017-02-17 20:27 ` David Miller
  0 siblings, 0 replies; 2+ messages in thread
From: David Miller @ 2017-02-17 20:27 UTC (permalink / raw)
  To: arnd; +Cc: skhare, pv-drivers, netdev, linux-kernel

From: Arnd Bergmann <arnd@arndb.de>
Date: Fri, 17 Feb 2017 16:08:30 +0100

> I got a warning about broken code on ARM64 with 64K pages:
> 
> drivers/net/vmxnet3/vmxnet3_drv.c: In function 'vmxnet3_rq_init':
> drivers/net/vmxnet3/vmxnet3_drv.c:1679:29: error: large integer implicitly truncated to unsigned type [-Werror=overflow]
>     rq->buf_info[0][i].len = PAGE_SIZE;
> 
> 'len' here is a 16-bit integer, so this clearly won't work. I don't think
> this driver is used much on anything other than x86, so there is no need
> to fix this properly and we can work around it with a Kconfig dependency
> to forbid known-broken configurations. qemu in theory supports it on
> other architectures too, but presumably only for compatibility with x86
> guests that also run on vmware.
> 
> CONFIG_PAGE_SIZE_64KB is used on hexagon, mips, sh and tile, the other
> symbols are architecture-specific names for the same thing.
> 
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>

I've applied this to net-next, but...

That is a real messy plethora of Kconfig symbol variants, it would be nice
to consolidate those somehow.

The driver could also chop 64K pages into 32K or smaller pieces and
maintain an appropriate refcnt.  Yes, I realize this is probably not
very valuable work for a situation that might never ever occur.

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2017-02-17 20:27 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-02-17 15:08 [PATCH] vmxnet3: prevent building with 64K pages Arnd Bergmann
2017-02-17 20:27 ` David Miller

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).