pstore: Headers should include all stuff they use
authorAnton Vorontsov <anton.vorontsov@linaro.org>
Tue, 17 Jul 2012 18:37:07 +0000 (11:37 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 17 Jul 2012 19:15:30 +0000 (12:15 -0700)
Headers should really include all the needed prototypes, types, defines
etc. to be self-contained. This is a long-standing issue, but apparently
the new tracing code unearthed it (SMP=n is also a prerequisite):

In file included from fs/pstore/internal.h:4:0,
                 from fs/pstore/ftrace.c:21:
include/linux/pstore.h:43:15: error: field ‘read_mutex’ has incomplete type

While at it, I also added the following:

linux/types.h -> size_t, phys_addr_t, uXX and friends
linux/spinlock.h -> spinlock_t
linux/errno.h -> Exxxx
linux/time.h -> struct timespec (struct passed by value)
struct module and rs_control forward declaration (passed via pointers).

Signed-off-by: Anton Vorontsov <anton.vorontsov@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
fs/pstore/internal.h
include/linux/pstore.h
include/linux/pstore_ram.h

index 958c48d8905c4f4c6ce7cc7c45545b53eff13e2e..0d0d3b7d5f12096f556e8ba104eac520de810e5c 100644 (file)
@@ -1,6 +1,8 @@
 #ifndef __PSTORE_INTERNAL_H__
 #define __PSTORE_INTERNAL_H__
 
+#include <linux/types.h>
+#include <linux/time.h>
 #include <linux/pstore.h>
 
 #if NR_CPUS <= 2 && defined(CONFIG_ARM_THUMB)
index 120443b0fda51dc10444fe90ef59457952d2b403..c892587d9b81f87dbdacefee4c6acd485debae32 100644 (file)
 
 #include <linux/time.h>
 #include <linux/kmsg_dump.h>
+#include <linux/mutex.h>
+#include <linux/types.h>
+#include <linux/spinlock.h>
+#include <linux/errno.h>
 
 /* types */
 enum pstore_type_id {
@@ -34,6 +38,8 @@ enum pstore_type_id {
        PSTORE_TYPE_UNKNOWN     = 255
 };
 
+struct module;
+
 struct pstore_info {
        struct module   *owner;
        char            *name;
index af848e1593b92b4564f2b31877914cbfa7e83dfd..ba2b211aaa81a30c4e3fe266e537ab92af87eec0 100644 (file)
@@ -24,6 +24,7 @@
 #include <linux/init.h>
 
 struct persistent_ram_buffer;
+struct rs_control;
 
 struct persistent_ram_zone {
        phys_addr_t paddr;