54 lines
2.1 KiB
Diff
54 lines
2.1 KiB
Diff
From fb51f72f3fe911103abe565ebe88b7545a18d963 Mon Sep 17 00:00:00 2001
|
|
From: Sven Eckelmann <sven@narfation.org>
|
|
Date: Fri, 17 Apr 2015 19:40:28 +0200
|
|
Subject: [PATCH] batctl: Add required includes to all files
|
|
|
|
The header files could not be build indepdent from each other. This is happened
|
|
because headers didn't include the files for things they've used. This was
|
|
problematic because the success of a build depended on the knowledge about the
|
|
right order of local includes.
|
|
|
|
Also source files were not including everything they've used explicitly.
|
|
Instead they required that transitive includes are always stable. This is
|
|
problematic because some transitive includes are not obvious, depend on config
|
|
settings and may not be stable in the future.
|
|
|
|
The order for include blocks are:
|
|
|
|
* primary headers (main.h and the *.h file of a *.c file)
|
|
* global linux headers
|
|
* required local headers
|
|
* extra forward declarations for pointers in function/struct declarations
|
|
|
|
The only exceptions are linux/bitops.h and linux/if_ether.h in packet.h. This
|
|
header file is shared with userspace applications like batctl and must
|
|
therefore build together with userspace applications. The header linux/bitops.h
|
|
is not part of the uapi headers and linux/if_ether.h conflicts with the musl
|
|
implementation of netinet/if_ether.h. The maintainers rejected the use of
|
|
__KERNEL__ preprocessor checks and thus these two headers are only in main.h.
|
|
All files using packet.h first have to include main.h to work correctly.
|
|
|
|
Reported-by: Markus Pargmann <mpa@pengutronix.de>
|
|
Signed-off-by: Sven Eckelmann <sven@narfation.org>
|
|
Signed-off-by: Marek Lindner <mareklindner@neomailbox.ch>
|
|
---
|
|
packet.h | 3 +++
|
|
1 file changed, 3 insertions(+)
|
|
|
|
diff --git a/packet.h b/packet.h
|
|
index b81fbbf..7a9cb7a 100644
|
|
--- a/packet.h
|
|
+++ b/packet.h
|
|
@@ -18,6 +18,9 @@
|
|
#ifndef _NET_BATMAN_ADV_PACKET_H_
|
|
#define _NET_BATMAN_ADV_PACKET_H_
|
|
|
|
+#include <asm/byteorder.h>
|
|
+#include <linux/types.h>
|
|
+
|
|
/**
|
|
* enum batadv_packettype - types for batman-adv encapsulated packets
|
|
* @BATADV_IV_OGM: originator messages for B.A.T.M.A.N. IV
|
|
--
|
|
2.1.4
|
|
|