All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH net-next] ethtool.h: define DIV_ROUND_UP for userland
@ 2016-03-01 15:20 Nicolas Dichtel
  2016-03-01 15:29 ` Ben Hutchings
  2016-03-01 16:42 ` [PATCH net-next] ethtool.h: define DIV_ROUND_UP for userland David Miller
  0 siblings, 2 replies; 20+ messages in thread
From: Nicolas Dichtel @ 2016-03-01 15:20 UTC (permalink / raw)
  To: davem; +Cc: netdev, Nicolas Dichtel, Nikolay Aleksandrov, Kan Liang

DIV_ROUND_UP and is defined in linux/kernel.h only for the kernel. INT_MAX
needs limits.h in userland.

When ethtool.h is included by a userland app, we got the following errors:

include/linux/ethtool.h:1218:8: error: variably modified 'queue_mask' at file scope
  __u32 queue_mask[DIV_ROUND_UP(MAX_NUM_QUEUE, 32)];
        ^

.../usr/include/linux/ethtool.h: In function 'ethtool_validate_speed':
.../usr/include/linux/ethtool.h:1471:18: error: 'INT_MAX' undeclared (first use in this function)
  return speed <= INT_MAX || speed == SPEED_UNKNOWN
                  ^

Fixes: ac2c7ad0e5d6 ("net/ethtool: introduce a new ioctl for per queue setting")
Fixes: e02564ee334a ("ethtool: make validate_speed accept all speeds between 0 and INT_MAX")
CC: Nikolay Aleksandrov <nikolay@cumulusnetworks.com>
CC: Kan Liang <kan.liang@intel.com>
Signed-off-by: Nicolas Dichtel <nicolas.dichtel@6wind.com>
---
 include/uapi/linux/ethtool.h | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/include/uapi/linux/ethtool.h b/include/uapi/linux/ethtool.h
index 37fd6dc33de4..d4e1351fe9b5 100644
--- a/include/uapi/linux/ethtool.h
+++ b/include/uapi/linux/ethtool.h
@@ -16,6 +16,11 @@
 #include <linux/types.h>
 #include <linux/if_ether.h>
 
+#ifndef __KERNEL__
+#include <limits.h> /* for INT_MAX */
+#define DIV_ROUND_UP(n, d) (((n) + (d) - 1) / (d))
+#endif
+
 /* All structures exposed to userland should be defined such that they
  * have the same layout for 32-bit and 64-bit userland.
  */
-- 
2.4.2

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

* Re: [PATCH net-next] ethtool.h: define DIV_ROUND_UP for userland
  2016-03-01 15:20 [PATCH net-next] ethtool.h: define DIV_ROUND_UP for userland Nicolas Dichtel
@ 2016-03-01 15:29 ` Ben Hutchings
  2016-03-01 16:41   ` [PATCH net-next v2 1/2] uapi: " Nicolas Dichtel
  2016-03-01 16:42 ` [PATCH net-next] ethtool.h: define DIV_ROUND_UP for userland David Miller
  1 sibling, 1 reply; 20+ messages in thread
From: Ben Hutchings @ 2016-03-01 15:29 UTC (permalink / raw)
  To: Nicolas Dichtel, davem; +Cc: netdev, Nikolay Aleksandrov, Kan Liang

[-- Attachment #1: Type: text/plain, Size: 810 bytes --]

On Tue, 2016-03-01 at 16:20 +0100, Nicolas Dichtel wrote:
> DIV_ROUND_UP and is defined in linux/kernel.h only for the kernel.
[...]

But what happens when another UAPI header wants to use DIV_ROUND_UP()?
 Do we duplicate the definition there as well?

It seems cleaner to do something like:

--- a/include/uapi/linux/kernel.h
+++ b/include/uapi/linux/kernel.h
+#define __KERNEL_DIV_ROUND_UP(n, d) (((n) + (d) - 1) / (d))

--- a/include/linux/kernel.h
+++ b/include/linux/kernel.h
-#define DIV_ROUND_UP(n, d) (((n) + (d) - 1) / (d))
+#define DIV_ROUND_UP __KERNEL_DIV_ROUND_UP

and then in include/uapi/linux/ethtool.h, replace DIV_ROUND_UP with
__KERNEL_DIV_ROUND_UP throughout.

Ben.

-- 
Ben Hutchings
If God had intended Man to program,
we'd have been born with serial I/O ports.

[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 811 bytes --]

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

* [PATCH net-next v2 1/2] uapi: define DIV_ROUND_UP for userland
  2016-03-01 15:29 ` Ben Hutchings
@ 2016-03-01 16:41   ` Nicolas Dichtel
  2016-03-01 16:41     ` [PATCH net-next v2 2/2] ethtool.h: define INT_MAX " Nicolas Dichtel
  2016-03-03 21:43     ` [PATCH net-next v2 1/2] uapi: define DIV_ROUND_UP " David Miller
  0 siblings, 2 replies; 20+ messages in thread
From: Nicolas Dichtel @ 2016-03-01 16:41 UTC (permalink / raw)
  To: davem; +Cc: netdev, ben, Nicolas Dichtel, Kan Liang

DIV_ROUND_UP is defined in linux/kernel.h only for the kernel.
When ethtool.h is included by a userland app, we got the following error:

include/linux/ethtool.h:1218:8: error: variably modified 'queue_mask' at file scope
  __u32 queue_mask[DIV_ROUND_UP(MAX_NUM_QUEUE, 32)];
        ^

Let's add a common definition in uapi and use it everywhere.

Fixes: ac2c7ad0e5d6 ("net/ethtool: introduce a new ioctl for per queue setting")
CC: Kan Liang <kan.liang@intel.com>
Suggested-by: Ben Hutchings <ben@decadent.org.uk>
Signed-off-by: Nicolas Dichtel <nicolas.dichtel@6wind.com>
---

v2: split the patch
    define DIV_ROUND_UP in uapi

 include/linux/kernel.h       | 2 +-
 include/uapi/linux/ethtool.h | 3 ++-
 include/uapi/linux/kernel.h  | 1 +
 include/uapi/linux/mroute6.h | 9 ++-------
 4 files changed, 6 insertions(+), 9 deletions(-)

diff --git a/include/linux/kernel.h b/include/linux/kernel.h
index f31638c6e873..ac1923957236 100644
--- a/include/linux/kernel.h
+++ b/include/linux/kernel.h
@@ -64,7 +64,7 @@
 #define round_down(x, y) ((x) & ~__round_mask(x, y))
 
 #define FIELD_SIZEOF(t, f) (sizeof(((t*)0)->f))
-#define DIV_ROUND_UP(n,d) (((n) + (d) - 1) / (d))
+#define DIV_ROUND_UP __KERNEL_DIV_ROUND_UP
 #define DIV_ROUND_UP_ULL(ll,d) \
 	({ unsigned long long _tmp = (ll)+(d)-1; do_div(_tmp, d); _tmp; })
 
diff --git a/include/uapi/linux/ethtool.h b/include/uapi/linux/ethtool.h
index 37fd6dc33de4..9c22249ebf35 100644
--- a/include/uapi/linux/ethtool.h
+++ b/include/uapi/linux/ethtool.h
@@ -13,6 +13,7 @@
 #ifndef _UAPI_LINUX_ETHTOOL_H
 #define _UAPI_LINUX_ETHTOOL_H
 
+#include <linux/kernel.h>
 #include <linux/types.h>
 #include <linux/if_ether.h>
 
@@ -1215,7 +1216,7 @@ enum ethtool_sfeatures_retval_bits {
 struct ethtool_per_queue_op {
 	__u32	cmd;
 	__u32	sub_command;
-	__u32	queue_mask[DIV_ROUND_UP(MAX_NUM_QUEUE, 32)];
+	__u32	queue_mask[__KERNEL_DIV_ROUND_UP(MAX_NUM_QUEUE, 32)];
 	char	data[];
 };
 
diff --git a/include/uapi/linux/kernel.h b/include/uapi/linux/kernel.h
index 321e399457f5..466073f0ce46 100644
--- a/include/uapi/linux/kernel.h
+++ b/include/uapi/linux/kernel.h
@@ -9,5 +9,6 @@
 #define __ALIGN_KERNEL(x, a)		__ALIGN_KERNEL_MASK(x, (typeof(x))(a) - 1)
 #define __ALIGN_KERNEL_MASK(x, mask)	(((x) + (mask)) & ~(mask))
 
+#define __KERNEL_DIV_ROUND_UP(n, d) (((n) + (d) - 1) / (d))
 
 #endif /* _UAPI_LINUX_KERNEL_H */
diff --git a/include/uapi/linux/mroute6.h b/include/uapi/linux/mroute6.h
index ce91215cf7e6..5062fb5751e1 100644
--- a/include/uapi/linux/mroute6.h
+++ b/include/uapi/linux/mroute6.h
@@ -1,6 +1,7 @@
 #ifndef _UAPI__LINUX_MROUTE6_H
 #define _UAPI__LINUX_MROUTE6_H
 
+#include <linux/kernel.h>
 #include <linux/types.h>
 #include <linux/sockios.h>
 
@@ -46,14 +47,8 @@ typedef unsigned short mifi_t;
 typedef	__u32		if_mask;
 #define NIFBITS (sizeof(if_mask) * 8)        /* bits per mask */
 
-#if !defined(__KERNEL__)
-#if !defined(DIV_ROUND_UP)
-#define	DIV_ROUND_UP(x,y)	(((x) + ((y) - 1)) / (y))
-#endif
-#endif
-
 typedef struct if_set {
-	if_mask ifs_bits[DIV_ROUND_UP(IF_SETSIZE, NIFBITS)];
+	if_mask ifs_bits[__KERNEL_DIV_ROUND_UP(IF_SETSIZE, NIFBITS)];
 } if_set;
 
 #define IF_SET(n, p)    ((p)->ifs_bits[(n)/NIFBITS] |= (1 << ((n) % NIFBITS)))
-- 
2.4.2

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

* [PATCH net-next v2 2/2] ethtool.h: define INT_MAX for userland
  2016-03-01 16:41   ` [PATCH net-next v2 1/2] uapi: " Nicolas Dichtel
@ 2016-03-01 16:41     ` Nicolas Dichtel
  2016-03-03 21:43       ` David Miller
  2016-03-03 21:43     ` [PATCH net-next v2 1/2] uapi: define DIV_ROUND_UP " David Miller
  1 sibling, 1 reply; 20+ messages in thread
From: Nicolas Dichtel @ 2016-03-01 16:41 UTC (permalink / raw)
  To: davem; +Cc: netdev, ben, Nicolas Dichtel, Nikolay Aleksandrov

INT_MAX needs limits.h in userland.
When ethtool.h is included by a userland app, we got the following error:

.../usr/include/linux/ethtool.h: In function 'ethtool_validate_speed':
.../usr/include/linux/ethtool.h:1471:18: error: 'INT_MAX' undeclared (first use in this function)
  return speed <= INT_MAX || speed == SPEED_UNKNOWN
                  ^

Fixes: e02564ee334a ("ethtool: make validate_speed accept all speeds between 0 and INT_MAX")
CC: Nikolay Aleksandrov <nikolay@cumulusnetworks.com>
Signed-off-by: Nicolas Dichtel <nicolas.dichtel@6wind.com>
---

v2: split the patch
    define DIV_ROUND_UP in uapi

 include/uapi/linux/ethtool.h | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/include/uapi/linux/ethtool.h b/include/uapi/linux/ethtool.h
index 9c22249ebf35..2835b07416b7 100644
--- a/include/uapi/linux/ethtool.h
+++ b/include/uapi/linux/ethtool.h
@@ -17,6 +17,10 @@
 #include <linux/types.h>
 #include <linux/if_ether.h>
 
+#ifndef __KERNEL__
+#include <limits.h> /* for INT_MAX */
+#endif
+
 /* All structures exposed to userland should be defined such that they
  * have the same layout for 32-bit and 64-bit userland.
  */
-- 
2.4.2

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

* Re: [PATCH net-next] ethtool.h: define DIV_ROUND_UP for userland
  2016-03-01 15:20 [PATCH net-next] ethtool.h: define DIV_ROUND_UP for userland Nicolas Dichtel
  2016-03-01 15:29 ` Ben Hutchings
@ 2016-03-01 16:42 ` David Miller
  2016-03-01 17:14   ` Ben Hutchings
  1 sibling, 1 reply; 20+ messages in thread
From: David Miller @ 2016-03-01 16:42 UTC (permalink / raw)
  To: nicolas.dichtel; +Cc: netdev, nikolay, kan.liang

From: Nicolas Dichtel <nicolas.dichtel@6wind.com>
Date: Tue,  1 Mar 2016 16:20:41 +0100

> DIV_ROUND_UP and is defined in linux/kernel.h only for the kernel. INT_MAX
> needs limits.h in userland.

It is wrong to provide a definition of this in the user visible global
namespace.

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

* Re: [PATCH net-next] ethtool.h: define DIV_ROUND_UP for userland
  2016-03-01 16:42 ` [PATCH net-next] ethtool.h: define DIV_ROUND_UP for userland David Miller
@ 2016-03-01 17:14   ` Ben Hutchings
  2016-03-01 19:48     ` David Miller
  0 siblings, 1 reply; 20+ messages in thread
From: Ben Hutchings @ 2016-03-01 17:14 UTC (permalink / raw)
  To: David Miller, nicolas.dichtel; +Cc: netdev, nikolay, kan.liang

[-- Attachment #1: Type: text/plain, Size: 508 bytes --]

On Tue, 2016-03-01 at 11:42 -0500, David Miller wrote:
> From: Nicolas Dichtel <nicolas.dichtel@6wind.com>
> Date: Tue,  1 Mar 2016 16:20:41 +0100
> 
> > DIV_ROUND_UP and is defined in linux/kernel.h only for the kernel. INT_MAX
> > needs limits.h in userland.
> 
> It is wrong to provide a definition of this in the user visible global
> namespace.

Which is why he's not doing that...

Ben.

-- 
Ben Hutchings
If God had intended Man to program,
we'd have been born with serial I/O ports.

[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 811 bytes --]

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

* Re: [PATCH net-next] ethtool.h: define DIV_ROUND_UP for userland
  2016-03-01 17:14   ` Ben Hutchings
@ 2016-03-01 19:48     ` David Miller
  2016-03-01 20:06       ` Ben Hutchings
  0 siblings, 1 reply; 20+ messages in thread
From: David Miller @ 2016-03-01 19:48 UTC (permalink / raw)
  To: ben; +Cc: nicolas.dichtel, netdev, nikolay, kan.liang

From: Ben Hutchings <ben@decadent.org.uk>
Date: Tue, 01 Mar 2016 17:14:06 +0000

> On Tue, 2016-03-01 at 11:42 -0500, David Miller wrote:
>> From: Nicolas Dichtel <nicolas.dichtel@6wind.com>
>> Date: Tue,  1 Mar 2016 16:20:41 +0100
>> 
>> > DIV_ROUND_UP and is defined in linux/kernel.h only for the kernel. INT_MAX
>> > needs limits.h in userland.
>> 
>> It is wrong to provide a definition of this in the user visible global
>> namespace.
> 
> Which is why he's not doing that...

No, that's exactly what he's doing:

+#ifndef __KERNEL__
+#include <limits.h> /* for INT_MAX */
+#define DIV_ROUND_UP(n, d) (((n) + (d) - 1) / (d))
+#endif

in a uapi header file.

"If not kernel, define DEV_ROUND_UP"

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

* Re: [PATCH net-next] ethtool.h: define DIV_ROUND_UP for userland
  2016-03-01 19:48     ` David Miller
@ 2016-03-01 20:06       ` Ben Hutchings
  0 siblings, 0 replies; 20+ messages in thread
From: Ben Hutchings @ 2016-03-01 20:06 UTC (permalink / raw)
  To: David Miller; +Cc: nicolas.dichtel, netdev, nikolay, kan.liang

[-- Attachment #1: Type: text/plain, Size: 1046 bytes --]

On Tue, 2016-03-01 at 14:48 -0500, David Miller wrote:
> From: Ben Hutchings <ben@decadent.org.uk>
> Date: Tue, 01 Mar 2016 17:14:06 +0000
> 
> > On Tue, 2016-03-01 at 11:42 -0500, David Miller wrote:
> >> From: Nicolas Dichtel <nicolas.dichtel@6wind.com>
> >> Date: Tue,  1 Mar 2016 16:20:41 +0100
> >> 
> >> > DIV_ROUND_UP and is defined in linux/kernel.h only for the kernel. INT_MAX
> >> > needs limits.h in userland.
> >> 
> >> It is wrong to provide a definition of this in the user visible global
> >> namespace.
> > 
> > Which is why he's not doing that...
> 
> No, that's exactly what he's doing:
> 
> +#ifndef __KERNEL__
> +#include <limits.h> /* for INT_MAX */
> +#define DIV_ROUND_UP(n, d) (((n) + (d) - 1) / (d))
> +#endif
> 
> in a uapi header file.
> 
> "If not kernel, define DEV_ROUND_UP"

Sorry, as there was already a v2 which doesn't do this, I thought you
were responding to that.

Ben.

-- 
Ben Hutchings
If God had intended Man to program,
we'd have been born with serial I/O ports.

[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 811 bytes --]

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

* Re: [PATCH net-next v2 1/2] uapi: define DIV_ROUND_UP for userland
  2016-03-01 16:41   ` [PATCH net-next v2 1/2] uapi: " Nicolas Dichtel
  2016-03-01 16:41     ` [PATCH net-next v2 2/2] ethtool.h: define INT_MAX " Nicolas Dichtel
@ 2016-03-03 21:43     ` David Miller
  2016-03-03 22:08       ` David Miller
  1 sibling, 1 reply; 20+ messages in thread
From: David Miller @ 2016-03-03 21:43 UTC (permalink / raw)
  To: nicolas.dichtel; +Cc: netdev, ben, kan.liang

From: Nicolas Dichtel <nicolas.dichtel@6wind.com>
Date: Tue,  1 Mar 2016 17:41:03 +0100

> DIV_ROUND_UP is defined in linux/kernel.h only for the kernel.
> When ethtool.h is included by a userland app, we got the following error:
> 
> include/linux/ethtool.h:1218:8: error: variably modified 'queue_mask' at file scope
>   __u32 queue_mask[DIV_ROUND_UP(MAX_NUM_QUEUE, 32)];
>         ^
> 
> Let's add a common definition in uapi and use it everywhere.
> 
> Fixes: ac2c7ad0e5d6 ("net/ethtool: introduce a new ioctl for per queue setting")
> CC: Kan Liang <kan.liang@intel.com>
> Suggested-by: Ben Hutchings <ben@decadent.org.uk>
> Signed-off-by: Nicolas Dichtel <nicolas.dichtel@6wind.com>

Applied.

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

* Re: [PATCH net-next v2 2/2] ethtool.h: define INT_MAX for userland
  2016-03-01 16:41     ` [PATCH net-next v2 2/2] ethtool.h: define INT_MAX " Nicolas Dichtel
@ 2016-03-03 21:43       ` David Miller
  0 siblings, 0 replies; 20+ messages in thread
From: David Miller @ 2016-03-03 21:43 UTC (permalink / raw)
  To: nicolas.dichtel; +Cc: netdev, ben, nikolay

From: Nicolas Dichtel <nicolas.dichtel@6wind.com>
Date: Tue,  1 Mar 2016 17:41:04 +0100

> INT_MAX needs limits.h in userland.
> When ethtool.h is included by a userland app, we got the following error:
> 
> .../usr/include/linux/ethtool.h: In function 'ethtool_validate_speed':
> .../usr/include/linux/ethtool.h:1471:18: error: 'INT_MAX' undeclared (first use in this function)
>   return speed <= INT_MAX || speed == SPEED_UNKNOWN
>                   ^
> 
> Fixes: e02564ee334a ("ethtool: make validate_speed accept all speeds between 0 and INT_MAX")
> CC: Nikolay Aleksandrov <nikolay@cumulusnetworks.com>
> Signed-off-by: Nicolas Dichtel <nicolas.dichtel@6wind.com>

Applied.

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

* Re: [PATCH net-next v2 1/2] uapi: define DIV_ROUND_UP for userland
  2016-03-03 21:43     ` [PATCH net-next v2 1/2] uapi: define DIV_ROUND_UP " David Miller
@ 2016-03-03 22:08       ` David Miller
  2016-03-04 10:52         ` [PATCH net-next v3 0/4] uapi: consolidate DIV_ROUND_UP definition Nicolas Dichtel
  0 siblings, 1 reply; 20+ messages in thread
From: David Miller @ 2016-03-03 22:08 UTC (permalink / raw)
  To: nicolas.dichtel; +Cc: netdev, ben, kan.liang

From: David Miller <davem@davemloft.net>
Date: Thu, 03 Mar 2016 16:43:52 -0500 (EST)

> From: Nicolas Dichtel <nicolas.dichtel@6wind.com>
> Date: Tue,  1 Mar 2016 17:41:03 +0100
> 
>> DIV_ROUND_UP is defined in linux/kernel.h only for the kernel.
>> When ethtool.h is included by a userland app, we got the following error:
>> 
>> include/linux/ethtool.h:1218:8: error: variably modified 'queue_mask' at file scope
>>   __u32 queue_mask[DIV_ROUND_UP(MAX_NUM_QUEUE, 32)];
>>         ^
>> 
>> Let's add a common definition in uapi and use it everywhere.
>> 
>> Fixes: ac2c7ad0e5d6 ("net/ethtool: introduce a new ioctl for per queue setting")
>> CC: Kan Liang <kan.liang@intel.com>
>> Suggested-by: Ben Hutchings <ben@decadent.org.uk>
>> Signed-off-by: Nicolas Dichtel <nicolas.dichtel@6wind.com>
> 
> Applied.

Unfortunately I have to revert these two commits.

It breaks the build, and although it isn't your fault you have to resolve
this before I can apply these two changes:

drivers/scsi/cxgbi/cxgb4i/cxgb4i.c:161:0: warning: "DIV_ROUND_UP" redefined
 #define DIV_ROUND_UP(n, d) (((n) + (d) - 1) / (d))
 ^
In file included from include/linux/list.h:8:0,
                 from include/linux/module.h:9,
                 from drivers/scsi/cxgbi/cxgb4i/cxgb4i.c:16:
include/linux/kernel.h:67:0: note: this is the location of the previous definition
 #define DIV_ROUND_UP __KERNEL_DIV_ROUND_UP
 ^
  C-c C-cscripts/Makefile.build:258: recipe for target 'drivers/net/ethernet/netronome/nfp/nfp_net_ethtool.o' failed

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

* [PATCH net-next v3 0/4] uapi: consolidate DIV_ROUND_UP definition
  2016-03-03 22:08       ` David Miller
@ 2016-03-04 10:52         ` Nicolas Dichtel
  2016-03-04 10:52           ` [PATCH net-next v3 1/4] uapi: define DIV_ROUND_UP for userland Nicolas Dichtel
                             ` (4 more replies)
  0 siblings, 5 replies; 20+ messages in thread
From: Nicolas Dichtel @ 2016-03-04 10:52 UTC (permalink / raw)
  To: davem
  Cc: netdev, ben, Karen Xie, linux-scsi, linux-kernel, David Airlie,
	dri-devel


The inital goal was to consolidate ethtool.h uapi header. But I took the
opportunity to remove all duplicate definitions of DIV_ROUND_UP.

v3: add patch #2 and #3

v2: split the patch
    define DIV_ROUND_UP in uapi

 .../drm/vmwgfx/device_include/svga3d_surfacedefs.h   | 20 +++++++++++---------
 drivers/scsi/cxgbi/cxgb4i/cxgb4i.c                   |  2 +-
 include/linux/kernel.h                               |  2 +-
 include/uapi/linux/ethtool.h                         |  7 ++++++-
 include/uapi/linux/kernel.h                          |  1 +
 include/uapi/linux/mroute6.h                         |  9 ++-------
 6 files changed, 22 insertions(+), 19 deletions(-)

Regards,
Nicolas

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

* [PATCH net-next v3 1/4] uapi: define DIV_ROUND_UP for userland
  2016-03-04 10:52         ` [PATCH net-next v3 0/4] uapi: consolidate DIV_ROUND_UP definition Nicolas Dichtel
@ 2016-03-04 10:52           ` Nicolas Dichtel
  2016-03-04 10:52           ` [PATCH net-next v3 2/4] cxgb4i: don't redefine DIV_ROUND_UP Nicolas Dichtel
                             ` (3 subsequent siblings)
  4 siblings, 0 replies; 20+ messages in thread
From: Nicolas Dichtel @ 2016-03-04 10:52 UTC (permalink / raw)
  To: davem
  Cc: netdev, ben, Karen Xie, linux-scsi, linux-kernel, David Airlie,
	dri-devel, Nicolas Dichtel, Kan Liang

DIV_ROUND_UP is defined in linux/kernel.h only for the kernel.
When ethtool.h is included by a userland app, we got the following error:

include/linux/ethtool.h:1218:8: error: variably modified 'queue_mask' at file scope
  __u32 queue_mask[DIV_ROUND_UP(MAX_NUM_QUEUE, 32)];
        ^

Let's add a common definition in uapi and use it everywhere.

Fixes: ac2c7ad0e5d6 ("net/ethtool: introduce a new ioctl for per queue setting")
CC: Kan Liang <kan.liang@intel.com>
Suggested-by: Ben Hutchings <ben@decadent.org.uk>
Signed-off-by: Nicolas Dichtel <nicolas.dichtel@6wind.com>
---
 include/linux/kernel.h       | 2 +-
 include/uapi/linux/ethtool.h | 3 ++-
 include/uapi/linux/kernel.h  | 1 +
 include/uapi/linux/mroute6.h | 9 ++-------
 4 files changed, 6 insertions(+), 9 deletions(-)

diff --git a/include/linux/kernel.h b/include/linux/kernel.h
index f31638c6e873..ac1923957236 100644
--- a/include/linux/kernel.h
+++ b/include/linux/kernel.h
@@ -64,7 +64,7 @@
 #define round_down(x, y) ((x) & ~__round_mask(x, y))
 
 #define FIELD_SIZEOF(t, f) (sizeof(((t*)0)->f))
-#define DIV_ROUND_UP(n,d) (((n) + (d) - 1) / (d))
+#define DIV_ROUND_UP __KERNEL_DIV_ROUND_UP
 #define DIV_ROUND_UP_ULL(ll,d) \
 	({ unsigned long long _tmp = (ll)+(d)-1; do_div(_tmp, d); _tmp; })
 
diff --git a/include/uapi/linux/ethtool.h b/include/uapi/linux/ethtool.h
index 37fd6dc33de4..9c22249ebf35 100644
--- a/include/uapi/linux/ethtool.h
+++ b/include/uapi/linux/ethtool.h
@@ -13,6 +13,7 @@
 #ifndef _UAPI_LINUX_ETHTOOL_H
 #define _UAPI_LINUX_ETHTOOL_H
 
+#include <linux/kernel.h>
 #include <linux/types.h>
 #include <linux/if_ether.h>
 
@@ -1215,7 +1216,7 @@ enum ethtool_sfeatures_retval_bits {
 struct ethtool_per_queue_op {
 	__u32	cmd;
 	__u32	sub_command;
-	__u32	queue_mask[DIV_ROUND_UP(MAX_NUM_QUEUE, 32)];
+	__u32	queue_mask[__KERNEL_DIV_ROUND_UP(MAX_NUM_QUEUE, 32)];
 	char	data[];
 };
 
diff --git a/include/uapi/linux/kernel.h b/include/uapi/linux/kernel.h
index 321e399457f5..466073f0ce46 100644
--- a/include/uapi/linux/kernel.h
+++ b/include/uapi/linux/kernel.h
@@ -9,5 +9,6 @@
 #define __ALIGN_KERNEL(x, a)		__ALIGN_KERNEL_MASK(x, (typeof(x))(a) - 1)
 #define __ALIGN_KERNEL_MASK(x, mask)	(((x) + (mask)) & ~(mask))
 
+#define __KERNEL_DIV_ROUND_UP(n, d) (((n) + (d) - 1) / (d))
 
 #endif /* _UAPI_LINUX_KERNEL_H */
diff --git a/include/uapi/linux/mroute6.h b/include/uapi/linux/mroute6.h
index ce91215cf7e6..5062fb5751e1 100644
--- a/include/uapi/linux/mroute6.h
+++ b/include/uapi/linux/mroute6.h
@@ -1,6 +1,7 @@
 #ifndef _UAPI__LINUX_MROUTE6_H
 #define _UAPI__LINUX_MROUTE6_H
 
+#include <linux/kernel.h>
 #include <linux/types.h>
 #include <linux/sockios.h>
 
@@ -46,14 +47,8 @@ typedef unsigned short mifi_t;
 typedef	__u32		if_mask;
 #define NIFBITS (sizeof(if_mask) * 8)        /* bits per mask */
 
-#if !defined(__KERNEL__)
-#if !defined(DIV_ROUND_UP)
-#define	DIV_ROUND_UP(x,y)	(((x) + ((y) - 1)) / (y))
-#endif
-#endif
-
 typedef struct if_set {
-	if_mask ifs_bits[DIV_ROUND_UP(IF_SETSIZE, NIFBITS)];
+	if_mask ifs_bits[__KERNEL_DIV_ROUND_UP(IF_SETSIZE, NIFBITS)];
 } if_set;
 
 #define IF_SET(n, p)    ((p)->ifs_bits[(n)/NIFBITS] |= (1 << ((n) % NIFBITS)))
-- 
2.4.2

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

* [PATCH net-next v3 2/4] cxgb4i: don't redefine DIV_ROUND_UP
  2016-03-04 10:52         ` [PATCH net-next v3 0/4] uapi: consolidate DIV_ROUND_UP definition Nicolas Dichtel
  2016-03-04 10:52           ` [PATCH net-next v3 1/4] uapi: define DIV_ROUND_UP for userland Nicolas Dichtel
@ 2016-03-04 10:52           ` Nicolas Dichtel
  2016-03-04 10:52           ` [PATCH net-next v3 3/4] drm/vmwgfx: remove userland definition of DIV_ROUND_UP Nicolas Dichtel
                             ` (2 subsequent siblings)
  4 siblings, 0 replies; 20+ messages in thread
From: Nicolas Dichtel @ 2016-03-04 10:52 UTC (permalink / raw)
  To: davem
  Cc: netdev, ben, Karen Xie, linux-scsi, linux-kernel, David Airlie,
	dri-devel, Nicolas Dichtel

let's use the common definition to avoid the following warning during the
compilation:

drivers/scsi/cxgbi/cxgb4i/cxgb4i.c:161:0: warning: "DIV_ROUND_UP" redefined
 #define DIV_ROUND_UP(n, d) (((n) + (d) - 1) / (d))
 ^
In file included from include/linux/list.h:8:0,
                 from include/linux/module.h:9,
                 from drivers/scsi/cxgbi/cxgb4i/cxgb4i.c:16:
include/linux/kernel.h:67:0: note: this is the location of the previous definition
 #define DIV_ROUND_UP __KERNEL_DIV_ROUND_UP
 ^

Signed-off-by: Nicolas Dichtel <nicolas.dichtel@6wind.com>
---
 drivers/scsi/cxgbi/cxgb4i/cxgb4i.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/scsi/cxgbi/cxgb4i/cxgb4i.c b/drivers/scsi/cxgbi/cxgb4i/cxgb4i.c
index 804806e1cbb4..339f6b7f4803 100644
--- a/drivers/scsi/cxgbi/cxgb4i/cxgb4i.c
+++ b/drivers/scsi/cxgbi/cxgb4i/cxgb4i.c
@@ -13,6 +13,7 @@
 
 #define pr_fmt(fmt) KBUILD_MODNAME ":%s: " fmt, __func__
 
+#include <linux/kernel.h>
 #include <linux/module.h>
 #include <linux/moduleparam.h>
 #include <scsi/scsi_host.h>
@@ -158,7 +159,6 @@ static struct scsi_transport_template *cxgb4i_stt;
  * open/close/abort and data send/receive.
  */
 
-#define DIV_ROUND_UP(n, d)	(((n) + (d) - 1) / (d))
 #define RCV_BUFSIZ_MASK		0x3FFU
 #define MAX_IMM_TX_PKT_LEN	256
 
-- 
2.4.2

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

* [PATCH net-next v3 3/4] drm/vmwgfx: remove userland definition of DIV_ROUND_UP
  2016-03-04 10:52         ` [PATCH net-next v3 0/4] uapi: consolidate DIV_ROUND_UP definition Nicolas Dichtel
  2016-03-04 10:52           ` [PATCH net-next v3 1/4] uapi: define DIV_ROUND_UP for userland Nicolas Dichtel
  2016-03-04 10:52           ` [PATCH net-next v3 2/4] cxgb4i: don't redefine DIV_ROUND_UP Nicolas Dichtel
@ 2016-03-04 10:52           ` Nicolas Dichtel
  2016-03-04 21:36               ` Emil Velikov
  2016-03-04 10:52           ` [PATCH net-next v3 4/4] ethtool.h: define INT_MAX for userland Nicolas Dichtel
  2016-03-04 21:10           ` [PATCH net-next v3 0/4] uapi: consolidate DIV_ROUND_UP definition David Miller
  4 siblings, 1 reply; 20+ messages in thread
From: Nicolas Dichtel @ 2016-03-04 10:52 UTC (permalink / raw)
  To: davem
  Cc: netdev, ben, Karen Xie, linux-scsi, linux-kernel, David Airlie,
	dri-devel, Nicolas Dichtel

Let's use __KERNEL_DIV_ROUND_UP, which is defined in uapi/linux/kernel.h.

Signed-off-by: Nicolas Dichtel <nicolas.dichtel@6wind.com>
---
 .../drm/vmwgfx/device_include/svga3d_surfacedefs.h   | 20 +++++++++++---------
 1 file changed, 11 insertions(+), 9 deletions(-)

diff --git a/drivers/gpu/drm/vmwgfx/device_include/svga3d_surfacedefs.h b/drivers/gpu/drm/vmwgfx/device_include/svga3d_surfacedefs.h
index 58704f0a4607..531d22025fec 100644
--- a/drivers/gpu/drm/vmwgfx/device_include/svga3d_surfacedefs.h
+++ b/drivers/gpu/drm/vmwgfx/device_include/svga3d_surfacedefs.h
@@ -25,6 +25,8 @@
  *
  **************************************************************************/
 
+#include <linux/kernel.h>
+
 #ifdef __KERNEL__
 
 #include <drm/vmwgfx_drm.h>
@@ -36,7 +38,6 @@
 #define ARRAY_SIZE(_A) (sizeof(_A) / sizeof((_A)[0]))
 #endif /* ARRAY_SIZE */
 
-#define DIV_ROUND_UP(x, y)  (((x) + (y) - 1) / (y))
 #define max_t(type, x, y)  ((x) > (y) ? (x) : (y))
 #define surf_size_struct SVGA3dSize
 #define u32 uint32
@@ -987,12 +988,12 @@ svga3dsurface_get_size_in_blocks(const struct svga3d_surface_desc *desc,
 				 const surf_size_struct *pixel_size,
 				 surf_size_struct *block_size)
 {
-	block_size->width = DIV_ROUND_UP(pixel_size->width,
-					 desc->block_size.width);
-	block_size->height = DIV_ROUND_UP(pixel_size->height,
-					  desc->block_size.height);
-	block_size->depth = DIV_ROUND_UP(pixel_size->depth,
-					 desc->block_size.depth);
+	block_size->width = __KERNEL_DIV_ROUND_UP(pixel_size->width,
+						  desc->block_size.width);
+	block_size->height = __KERNEL_DIV_ROUND_UP(pixel_size->height,
+						   desc->block_size.height);
+	block_size->depth = __KERNEL_DIV_ROUND_UP(pixel_size->depth,
+						  desc->block_size.depth);
 }
 
 static inline bool
@@ -1100,8 +1101,9 @@ svga3dsurface_get_pixel_offset(SVGA3dSurfaceFormat format,
 	const struct svga3d_surface_desc *desc = svga3dsurface_get_desc(format);
 	const u32 bw = desc->block_size.width, bh = desc->block_size.height;
 	const u32 bd = desc->block_size.depth;
-	const u32 rowstride = DIV_ROUND_UP(width, bw) * desc->bytes_per_block;
-	const u32 imgstride = DIV_ROUND_UP(height, bh) * rowstride;
+	const u32 rowstride = __KERNEL_DIV_ROUND_UP(width, bw) *
+			      desc->bytes_per_block;
+	const u32 imgstride = __KERNEL_DIV_ROUND_UP(height, bh) * rowstride;
 	const u32 offset = (z / bd * imgstride +
 			    y / bh * rowstride +
 			    x / bw * desc->bytes_per_block);
-- 
2.4.2

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

* [PATCH net-next v3 4/4] ethtool.h: define INT_MAX for userland
  2016-03-04 10:52         ` [PATCH net-next v3 0/4] uapi: consolidate DIV_ROUND_UP definition Nicolas Dichtel
                             ` (2 preceding siblings ...)
  2016-03-04 10:52           ` [PATCH net-next v3 3/4] drm/vmwgfx: remove userland definition of DIV_ROUND_UP Nicolas Dichtel
@ 2016-03-04 10:52           ` Nicolas Dichtel
  2016-03-04 13:10             ` Nikolay Aleksandrov
  2016-03-04 21:10           ` [PATCH net-next v3 0/4] uapi: consolidate DIV_ROUND_UP definition David Miller
  4 siblings, 1 reply; 20+ messages in thread
From: Nicolas Dichtel @ 2016-03-04 10:52 UTC (permalink / raw)
  To: davem
  Cc: netdev, ben, Karen Xie, linux-scsi, linux-kernel, David Airlie,
	dri-devel, Nicolas Dichtel, Nikolay Aleksandrov

INT_MAX needs limits.h in userland.
When ethtool.h is included by a userland app, we got the following error:

.../usr/include/linux/ethtool.h: In function 'ethtool_validate_speed':
.../usr/include/linux/ethtool.h:1471:18: error: 'INT_MAX' undeclared (first use in this function)
  return speed <= INT_MAX || speed == SPEED_UNKNOWN
                  ^

Fixes: e02564ee334a ("ethtool: make validate_speed accept all speeds between 0 and INT_MAX")
CC: Nikolay Aleksandrov <nikolay@cumulusnetworks.com>
Signed-off-by: Nicolas Dichtel <nicolas.dichtel@6wind.com>
---
 include/uapi/linux/ethtool.h | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/include/uapi/linux/ethtool.h b/include/uapi/linux/ethtool.h
index 9c22249ebf35..2835b07416b7 100644
--- a/include/uapi/linux/ethtool.h
+++ b/include/uapi/linux/ethtool.h
@@ -17,6 +17,10 @@
 #include <linux/types.h>
 #include <linux/if_ether.h>
 
+#ifndef __KERNEL__
+#include <limits.h> /* for INT_MAX */
+#endif
+
 /* All structures exposed to userland should be defined such that they
  * have the same layout for 32-bit and 64-bit userland.
  */
-- 
2.4.2

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

* Re: [PATCH net-next v3 4/4] ethtool.h: define INT_MAX for userland
  2016-03-04 10:52           ` [PATCH net-next v3 4/4] ethtool.h: define INT_MAX for userland Nicolas Dichtel
@ 2016-03-04 13:10             ` Nikolay Aleksandrov
  0 siblings, 0 replies; 20+ messages in thread
From: Nikolay Aleksandrov @ 2016-03-04 13:10 UTC (permalink / raw)
  To: Nicolas Dichtel, davem
  Cc: netdev, ben, Karen Xie, linux-scsi, linux-kernel, David Airlie,
	dri-devel

On 03/04/2016 11:52 AM, Nicolas Dichtel wrote:
> INT_MAX needs limits.h in userland.
> When ethtool.h is included by a userland app, we got the following error:
> 
> .../usr/include/linux/ethtool.h: In function 'ethtool_validate_speed':
> .../usr/include/linux/ethtool.h:1471:18: error: 'INT_MAX' undeclared (first use in this function)
>   return speed <= INT_MAX || speed == SPEED_UNKNOWN
>                   ^
> 
> Fixes: e02564ee334a ("ethtool: make validate_speed accept all speeds between 0 and INT_MAX")
> CC: Nikolay Aleksandrov <nikolay@cumulusnetworks.com>
> Signed-off-by: Nicolas Dichtel <nicolas.dichtel@6wind.com>
> ---
>  include/uapi/linux/ethtool.h | 4 ++++
>  1 file changed, 4 insertions(+)
> 

Thanks!

Acked-by: Nikolay Aleksandrov <nikolay@cumulusnetworks.com>

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

* Re: [PATCH net-next v3 0/4] uapi: consolidate DIV_ROUND_UP definition
  2016-03-04 10:52         ` [PATCH net-next v3 0/4] uapi: consolidate DIV_ROUND_UP definition Nicolas Dichtel
                             ` (3 preceding siblings ...)
  2016-03-04 10:52           ` [PATCH net-next v3 4/4] ethtool.h: define INT_MAX for userland Nicolas Dichtel
@ 2016-03-04 21:10           ` David Miller
  4 siblings, 0 replies; 20+ messages in thread
From: David Miller @ 2016-03-04 21:10 UTC (permalink / raw)
  To: nicolas.dichtel
  Cc: netdev, ben, kxie, linux-scsi, linux-kernel, airlied, dri-devel

From: Nicolas Dichtel <nicolas.dichtel@6wind.com>
Date: Fri,  4 Mar 2016 11:52:15 +0100

> The inital goal was to consolidate ethtool.h uapi header. But I took the
> opportunity to remove all duplicate definitions of DIV_ROUND_UP.
> 
> v3: add patch #2 and #3
> 
> v2: split the patch
>     define DIV_ROUND_UP in uapi

Series applied, thanks for so thoroughly taking care of this.

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

* Re: [PATCH net-next v3 3/4] drm/vmwgfx: remove userland definition of DIV_ROUND_UP
  2016-03-04 10:52           ` [PATCH net-next v3 3/4] drm/vmwgfx: remove userland definition of DIV_ROUND_UP Nicolas Dichtel
@ 2016-03-04 21:36               ` Emil Velikov
  0 siblings, 0 replies; 20+ messages in thread
From: Emil Velikov @ 2016-03-04 21:36 UTC (permalink / raw)
  To: Nicolas Dichtel, Thomas Hellstrom
  Cc: David S. Miller, linux-scsi, netdev,
	Linux-Kernel@Vger. Kernel. Org, ML dri-devel, Karen Xie, ben

Hi Nicolas,

On 4 March 2016 at 10:52, Nicolas Dichtel <nicolas.dichtel@6wind.com> wrote:
> Let's use __KERNEL_DIV_ROUND_UP, which is defined in uapi/linux/kernel.h.
>
> Signed-off-by: Nicolas Dichtel <nicolas.dichtel@6wind.com>
> ---
>  .../drm/vmwgfx/device_include/svga3d_surfacedefs.h   | 20 +++++++++++---------
>  1 file changed, 11 insertions(+), 9 deletions(-)
>
> diff --git a/drivers/gpu/drm/vmwgfx/device_include/svga3d_surfacedefs.h b/drivers/gpu/drm/vmwgfx/device_include/svga3d_surfacedefs.h
> index 58704f0a4607..531d22025fec 100644
> --- a/drivers/gpu/drm/vmwgfx/device_include/svga3d_surfacedefs.h
> +++ b/drivers/gpu/drm/vmwgfx/device_include/svga3d_surfacedefs.h
> @@ -25,6 +25,8 @@
>   *
>   **************************************************************************/
>
> +#include <linux/kernel.h>
> +
Files from DRM modules tend to be used in various (crazy) ways. Be
that in linux and/or other user space.

Fairly certain that everything is fine here, just adding one of the
core vmwgfx developers.

Thomas, this won't cause any issues would it ?

Can you guys please add an entry for vmwgfx to MAINTAINERS, so that
people can CC you guys on patches that touch the driver ?

Thanks
Emil

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

* Re: [PATCH net-next v3 3/4] drm/vmwgfx: remove userland definition of DIV_ROUND_UP
@ 2016-03-04 21:36               ` Emil Velikov
  0 siblings, 0 replies; 20+ messages in thread
From: Emil Velikov @ 2016-03-04 21:36 UTC (permalink / raw)
  To: Nicolas Dichtel, Thomas Hellstrom
  Cc: linux-scsi, netdev, Linux-Kernel@Vger. Kernel. Org, ML dri-devel,
	Karen Xie, ben, David S. Miller

Hi Nicolas,

On 4 March 2016 at 10:52, Nicolas Dichtel <nicolas.dichtel@6wind.com> wrote:
> Let's use __KERNEL_DIV_ROUND_UP, which is defined in uapi/linux/kernel.h.
>
> Signed-off-by: Nicolas Dichtel <nicolas.dichtel@6wind.com>
> ---
>  .../drm/vmwgfx/device_include/svga3d_surfacedefs.h   | 20 +++++++++++---------
>  1 file changed, 11 insertions(+), 9 deletions(-)
>
> diff --git a/drivers/gpu/drm/vmwgfx/device_include/svga3d_surfacedefs.h b/drivers/gpu/drm/vmwgfx/device_include/svga3d_surfacedefs.h
> index 58704f0a4607..531d22025fec 100644
> --- a/drivers/gpu/drm/vmwgfx/device_include/svga3d_surfacedefs.h
> +++ b/drivers/gpu/drm/vmwgfx/device_include/svga3d_surfacedefs.h
> @@ -25,6 +25,8 @@
>   *
>   **************************************************************************/
>
> +#include <linux/kernel.h>
> +
Files from DRM modules tend to be used in various (crazy) ways. Be
that in linux and/or other user space.

Fairly certain that everything is fine here, just adding one of the
core vmwgfx developers.

Thomas, this won't cause any issues would it ?

Can you guys please add an entry for vmwgfx to MAINTAINERS, so that
people can CC you guys on patches that touch the driver ?

Thanks
Emil
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

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

end of thread, other threads:[~2016-03-04 21:36 UTC | newest]

Thread overview: 20+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-03-01 15:20 [PATCH net-next] ethtool.h: define DIV_ROUND_UP for userland Nicolas Dichtel
2016-03-01 15:29 ` Ben Hutchings
2016-03-01 16:41   ` [PATCH net-next v2 1/2] uapi: " Nicolas Dichtel
2016-03-01 16:41     ` [PATCH net-next v2 2/2] ethtool.h: define INT_MAX " Nicolas Dichtel
2016-03-03 21:43       ` David Miller
2016-03-03 21:43     ` [PATCH net-next v2 1/2] uapi: define DIV_ROUND_UP " David Miller
2016-03-03 22:08       ` David Miller
2016-03-04 10:52         ` [PATCH net-next v3 0/4] uapi: consolidate DIV_ROUND_UP definition Nicolas Dichtel
2016-03-04 10:52           ` [PATCH net-next v3 1/4] uapi: define DIV_ROUND_UP for userland Nicolas Dichtel
2016-03-04 10:52           ` [PATCH net-next v3 2/4] cxgb4i: don't redefine DIV_ROUND_UP Nicolas Dichtel
2016-03-04 10:52           ` [PATCH net-next v3 3/4] drm/vmwgfx: remove userland definition of DIV_ROUND_UP Nicolas Dichtel
2016-03-04 21:36             ` Emil Velikov
2016-03-04 21:36               ` Emil Velikov
2016-03-04 10:52           ` [PATCH net-next v3 4/4] ethtool.h: define INT_MAX for userland Nicolas Dichtel
2016-03-04 13:10             ` Nikolay Aleksandrov
2016-03-04 21:10           ` [PATCH net-next v3 0/4] uapi: consolidate DIV_ROUND_UP definition David Miller
2016-03-01 16:42 ` [PATCH net-next] ethtool.h: define DIV_ROUND_UP for userland David Miller
2016-03-01 17:14   ` Ben Hutchings
2016-03-01 19:48     ` David Miller
2016-03-01 20:06       ` Ben Hutchings

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.