Message ID | 20170228013930.GA28056@altlinux.org |
---|---|
State | RFC, archived |
Delegated to: | David Miller |
Headers | show |
From: "Dmitry V. Levin" <ldv@altlinux.org> 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 <ldv@altlinux.org> If if_link.h includes netdevice.h properly, let's try to do the same here as well. Thanks.
On Tue, Mar 07, 2017 at 12:16:49PM -0800, David Miller wrote: > From: "Dmitry V. Levin" <ldv@altlinux.org> > 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 <ldv@altlinux.org> > > 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 */
From: "Dmitry V. Levin" <ldv@altlinux.org> Date: Tue, 7 Mar 2017 23:28:02 +0300 > On Tue, Mar 07, 2017 at 12:16:49PM -0800, David Miller wrote: >> From: "Dmitry V. Levin" <ldv@altlinux.org> >> 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 <ldv@altlinux.org> >> >> 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.
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 {
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 <ldv@altlinux.org> --- 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(-)