[RFC PATCH] uapi: fix linux/packet_diag.h userspace compilation error

Subsystems: the rest

STALE3501d

6 messages, 2 authors, 2017-03-09 · open the first message on its own page

[RFC PATCH] uapi: fix linux/packet_diag.h userspace compilation error

From: Dmitry V. Levin <hidden>
Date: 2017-02-28 01:48:02

Replace MAX_ADDR_LEN with its numeric value to fix the following
linux/packet_diag.h userspace compilation error:

/usr/include/linux/packet_diag.h:67:17: error: 'MAX_ADDR_LEN' undeclared here (not in a function)
  __u8 pdmc_addr[MAX_ADDR_LEN];

This is not the first case in the UAPI where the numeric value
of MAX_ADDR_LEN is used, uapi/linux/if_link.h already does the same,
and there are no UAPI headers besides these two that use MAX_ADDR_LEN.

The alternative fix would be to include <linux/netdevice.h> which
pulls in other headers and a lot of definitions with them.

Signed-off-by: Dmitry V. Levin <redacted>
---
I'm not quite comfortable with this approach but the alternative
has its own drawbacks.

 include/uapi/linux/packet_diag.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/include/uapi/linux/packet_diag.h b/include/uapi/linux/packet_diag.h
index d08c63f..0c5d5dd 100644
--- a/include/uapi/linux/packet_diag.h
+++ b/include/uapi/linux/packet_diag.h
@@ -64,7 +64,7 @@ struct packet_diag_mclist {
 	__u32	pdmc_count;
 	__u16	pdmc_type;
 	__u16	pdmc_alen;
-	__u8	pdmc_addr[MAX_ADDR_LEN];
+	__u8	pdmc_addr[32]; /* MAX_ADDR_LEN */
 };
 
 struct packet_diag_ring {
-- 
ldv

Re: [RFC PATCH] uapi: fix linux/packet_diag.h userspace compilation error

From: David Miller <davem@davemloft.net>
Date: 2017-03-07 20:17:04

From: "Dmitry V. Levin" <redacted>
Date: Tue, 28 Feb 2017 04:39:30 +0300
Replace MAX_ADDR_LEN with its numeric value to fix the following
linux/packet_diag.h userspace compilation error:

/usr/include/linux/packet_diag.h:67:17: error: 'MAX_ADDR_LEN' undeclared here (not in a function)
  __u8 pdmc_addr[MAX_ADDR_LEN];

This is not the first case in the UAPI where the numeric value
of MAX_ADDR_LEN is used, uapi/linux/if_link.h already does the same,
and there are no UAPI headers besides these two that use MAX_ADDR_LEN.

The alternative fix would be to include <linux/netdevice.h> which
pulls in other headers and a lot of definitions with them.

Signed-off-by: Dmitry V. Levin <redacted>
If if_link.h includes netdevice.h properly, let's try to do the same here as well.

Thanks.

Re: [RFC PATCH] uapi: fix linux/packet_diag.h userspace compilation error

From: Dmitry V. Levin <hidden>
Date: 2017-03-07 20:34:13

On Tue, Mar 07, 2017 at 12:16:49PM -0800, David Miller wrote:
From: "Dmitry V. Levin" <redacted>
Date: Tue, 28 Feb 2017 04:39:30 +0300
quoted
Replace MAX_ADDR_LEN with its numeric value to fix the following
linux/packet_diag.h userspace compilation error:

/usr/include/linux/packet_diag.h:67:17: error: 'MAX_ADDR_LEN' undeclared here (not in a function)
  __u8 pdmc_addr[MAX_ADDR_LEN];

This is not the first case in the UAPI where the numeric value
of MAX_ADDR_LEN is used, uapi/linux/if_link.h already does the same,
and there are no UAPI headers besides these two that use MAX_ADDR_LEN.

The alternative fix would be to include <linux/netdevice.h> which
pulls in other headers and a lot of definitions with them.

Signed-off-by: Dmitry V. Levin <redacted>
If if_link.h includes netdevice.h properly, let's try to do the same here as well.
Sorry if my words weren't clear enough: no, if_link.h doesn't include
netdevice.h, it uses the _numeric_ value instead:

$ grep MAX_ADDR_LEN include/uapi/linux/if_link.h 
	__u8 mac[32]; /* MAX_ADDR_LEN */


-- 
ldv

[PATCH] uapi: fix linux/packet_diag.h userspace compilation error

From: Dmitry V. Levin <hidden>
Date: 2017-03-07 20:50:56

Replace MAX_ADDR_LEN with its numeric value to fix the following
linux/packet_diag.h userspace compilation error:

/usr/include/linux/packet_diag.h:67:17: error: 'MAX_ADDR_LEN' undeclared here (not in a function)
  __u8 pdmc_addr[MAX_ADDR_LEN];

This is not the first case in the UAPI where the numeric value
of MAX_ADDR_LEN is used instead of symbolic one, uapi/linux/if_link.h
already does the same:

$ grep MAX_ADDR_LEN include/uapi/linux/if_link.h 
	__u8 mac[32]; /* MAX_ADDR_LEN */

There are no UAPI headers besides these two that use MAX_ADDR_LEN.

Signed-off-by: Dmitry V. Levin <redacted>
Acked-by: Pavel Emelyanov <redacted>
---
 include/uapi/linux/packet_diag.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/include/uapi/linux/packet_diag.h b/include/uapi/linux/packet_diag.h
index d08c63f..0c5d5dd 100644
--- a/include/uapi/linux/packet_diag.h
+++ b/include/uapi/linux/packet_diag.h
@@ -64,7 +64,7 @@ struct packet_diag_mclist {
 	__u32	pdmc_count;
 	__u16	pdmc_type;
 	__u16	pdmc_alen;
-	__u8	pdmc_addr[MAX_ADDR_LEN];
+	__u8	pdmc_addr[32]; /* MAX_ADDR_LEN */
 };
 
 struct packet_diag_ring {
-- 
ldv

Re: [RFC PATCH] uapi: fix linux/packet_diag.h userspace compilation error

From: David Miller <davem@davemloft.net>
Date: 2017-03-07 23:41:59

From: "Dmitry V. Levin" <redacted>
Date: Tue, 7 Mar 2017 23:28:02 +0300
On Tue, Mar 07, 2017 at 12:16:49PM -0800, David Miller wrote:
quoted
From: "Dmitry V. Levin" <redacted>
Date: Tue, 28 Feb 2017 04:39:30 +0300
quoted
Replace MAX_ADDR_LEN with its numeric value to fix the following
linux/packet_diag.h userspace compilation error:

/usr/include/linux/packet_diag.h:67:17: error: 'MAX_ADDR_LEN' undeclared here (not in a function)
  __u8 pdmc_addr[MAX_ADDR_LEN];

This is not the first case in the UAPI where the numeric value
of MAX_ADDR_LEN is used, uapi/linux/if_link.h already does the same,
and there are no UAPI headers besides these two that use MAX_ADDR_LEN.

The alternative fix would be to include <linux/netdevice.h> which
pulls in other headers and a lot of definitions with them.

Signed-off-by: Dmitry V. Levin <redacted>
If if_link.h includes netdevice.h properly, let's try to do the same here as well.
Sorry if my words weren't clear enough: no, if_link.h doesn't include
netdevice.h, it uses the _numeric_ value instead:

$ grep MAX_ADDR_LEN include/uapi/linux/if_link.h 
	__u8 mac[32]; /* MAX_ADDR_LEN */
Ok then we might as well do the same thing here, please resubmit this
patch formally.

Thanks.

Re: [PATCH] uapi: fix linux/packet_diag.h userspace compilation error

From: David Miller <davem@davemloft.net>
Date: 2017-03-09 21:23:27

From: "Dmitry V. Levin" <redacted>
Date: Tue, 7 Mar 2017 23:50:50 +0300
Replace MAX_ADDR_LEN with its numeric value to fix the following
linux/packet_diag.h userspace compilation error:

/usr/include/linux/packet_diag.h:67:17: error: 'MAX_ADDR_LEN' undeclared here (not in a function)
  __u8 pdmc_addr[MAX_ADDR_LEN];

This is not the first case in the UAPI where the numeric value
of MAX_ADDR_LEN is used instead of symbolic one, uapi/linux/if_link.h
already does the same:

$ grep MAX_ADDR_LEN include/uapi/linux/if_link.h 
	__u8 mac[32]; /* MAX_ADDR_LEN */

There are no UAPI headers besides these two that use MAX_ADDR_LEN.

Signed-off-by: Dmitry V. Levin <redacted>
Acked-by: Pavel Emelyanov <redacted>
Applied and queued up for -stable.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help