Commit 514c6032 authored by Randy Dunlap's avatar Randy Dunlap Committed by Linus Torvalds

headers: untangle kmemleak.h from mm.h

Currently <linux/slab.h> #includes <linux/kmemleak.h> for no obvious
reason.  It looks like it's only a convenience, so remove kmemleak.h
from slab.h and add <linux/kmemleak.h> to any users of kmemleak_* that
don't already #include it.  Also remove <linux/kmemleak.h> from source
files that do not use it.

This is tested on i386 allmodconfig and x86_64 allmodconfig.  It would
be good to run it through the 0day bot for other $ARCHes.  I have
neither the horsepower nor the storage space for the other $ARCHes.

Update: This patch has been extensively build-tested by both the 0day
bot & kisskb/ozlabs build farms.  Both of them reported 2 build failures
for which patches are included here (in v2).

[ slab.h is the second most used header file after module.h; kernel.h is
  right there with slab.h. There could be some minor error in the
  counting due to some #includes having comments after them and I didn't
  combine all of those. ]

[akpm@linux-foundation.org: security/keys/big_key.c needs vmalloc.h, per sfr]
Link: http://lkml.kernel.org/r/e4309f98-3749-93e1-4bb7-d9501a39d015@infradead.org
Link: http://kisskb.ellerman.id.au/kisskb/head/13396/Signed-off-by: default avatarRandy Dunlap <rdunlap@infradead.org>
Reviewed-by: default avatarIngo Molnar <mingo@kernel.org>
Reported-by: Michael Ellerman <mpe@ellerman.id.au>	[2 build failures]
Reported-by: Fengguang Wu <fengguang.wu@intel.com>	[2 build failures]
Reviewed-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Cc: Wei Yongjun <weiyongjun1@huawei.com>
Cc: Luis R. Rodriguez <mcgrof@kernel.org>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: Mimi Zohar <zohar@linux.vnet.ibm.com>
Cc: John Johansen <john.johansen@canonical.com>
Cc: Stephen Rothwell <sfr@canb.auug.org.au>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent 91241681
...@@ -38,6 +38,7 @@ ...@@ -38,6 +38,7 @@
#include <linux/suspend.h> #include <linux/suspend.h>
#include <linux/memblock.h> #include <linux/memblock.h>
#include <linux/gfp.h> #include <linux/gfp.h>
#include <linux/kmemleak.h>
#include <asm/io.h> #include <asm/io.h>
#include <asm/prom.h> #include <asm/prom.h>
#include <asm/iommu.h> #include <asm/iommu.h>
......
...@@ -10,6 +10,7 @@ ...@@ -10,6 +10,7 @@
#include <linux/slab.h> #include <linux/slab.h>
#include <linux/kernel.h> #include <linux/kernel.h>
#include <linux/kmemleak.h>
#include <linux/bitmap.h> #include <linux/bitmap.h>
#include <linux/bootmem.h> #include <linux/bootmem.h>
#include <asm/msi_bitmap.h> #include <asm/msi_bitmap.h>
......
...@@ -15,7 +15,7 @@ ...@@ -15,7 +15,7 @@
#include <linux/hardirq.h> #include <linux/hardirq.h>
#include <linux/log2.h> #include <linux/log2.h>
#include <linux/kprobes.h> #include <linux/kprobes.h>
#include <linux/slab.h> #include <linux/kmemleak.h>
#include <linux/time.h> #include <linux/time.h>
#include <linux/module.h> #include <linux/module.h>
#include <linux/sched/signal.h> #include <linux/sched/signal.h>
......
...@@ -27,7 +27,6 @@ ...@@ -27,7 +27,6 @@
#include <linux/err.h> #include <linux/err.h>
#include <linux/spinlock.h> #include <linux/spinlock.h>
#include <linux/kernel_stat.h> #include <linux/kernel_stat.h>
#include <linux/kmemleak.h>
#include <linux/delay.h> #include <linux/delay.h>
#include <linux/interrupt.h> #include <linux/interrupt.h>
#include <linux/irqflags.h> #include <linux/irqflags.h>
......
...@@ -22,7 +22,6 @@ ...@@ -22,7 +22,6 @@
#include <linux/seq_file.h> #include <linux/seq_file.h>
#include <linux/ftrace.h> #include <linux/ftrace.h>
#include <linux/irq.h> #include <linux/irq.h>
#include <linux/kmemleak.h>
#include <asm/ptrace.h> #include <asm/ptrace.h>
#include <asm/processor.h> #include <asm/processor.h>
......
...@@ -6,7 +6,6 @@ ...@@ -6,7 +6,6 @@
#include <linux/bootmem.h> #include <linux/bootmem.h>
#include <linux/gfp.h> #include <linux/gfp.h>
#include <linux/pci.h> #include <linux/pci.h>
#include <linux/kmemleak.h>
#include <asm/proto.h> #include <asm/proto.h>
#include <asm/dma.h> #include <asm/dma.h>
......
...@@ -17,6 +17,7 @@ ...@@ -17,6 +17,7 @@
#include <linux/io.h> #include <linux/io.h>
#include <linux/iommu.h> #include <linux/iommu.h>
#include <linux/interrupt.h> #include <linux/interrupt.h>
#include <linux/kmemleak.h>
#include <linux/list.h> #include <linux/list.h>
#include <linux/of.h> #include <linux/of.h>
#include <linux/of_iommu.h> #include <linux/of_iommu.h>
......
...@@ -25,7 +25,6 @@ ...@@ -25,7 +25,6 @@
#include <linux/io.h> #include <linux/io.h>
#include <linux/iommu.h> #include <linux/iommu.h>
#include <linux/iopoll.h> #include <linux/iopoll.h>
#include <linux/kmemleak.h>
#include <linux/list.h> #include <linux/list.h>
#include <linux/of_address.h> #include <linux/of_address.h>
#include <linux/of_iommu.h> #include <linux/of_iommu.h>
......
...@@ -35,6 +35,7 @@ ...@@ -35,6 +35,7 @@
#include <linux/of_net.h> #include <linux/of_net.h>
#include <linux/of_device.h> #include <linux/of_device.h>
#include <linux/if_vlan.h> #include <linux/if_vlan.h>
#include <linux/kmemleak.h>
#include <linux/pinctrl/consumer.h> #include <linux/pinctrl/consumer.h>
......
...@@ -31,7 +31,6 @@ ...@@ -31,7 +31,6 @@
#include "efuse.h" #include "efuse.h"
#include <linux/interrupt.h> #include <linux/interrupt.h>
#include <linux/export.h> #include <linux/export.h>
#include <linux/kmemleak.h>
#include <linux/module.h> #include <linux/module.h>
MODULE_AUTHOR("lizhaoming <chaoming_li@realsil.com.cn>"); MODULE_AUTHOR("lizhaoming <chaoming_li@realsil.com.cn>");
......
...@@ -32,7 +32,6 @@ ...@@ -32,7 +32,6 @@
#include "../rtl8192ce/def.h" #include "../rtl8192ce/def.h"
#include "fw_common.h" #include "fw_common.h"
#include <linux/export.h> #include <linux/export.h>
#include <linux/kmemleak.h>
static void _rtl92c_enable_fw_download(struct ieee80211_hw *hw, bool enable) static void _rtl92c_enable_fw_download(struct ieee80211_hw *hw, bool enable)
{ {
......
...@@ -30,7 +30,7 @@ ...@@ -30,7 +30,7 @@
#include "rtl8188e_hal.h" #include "rtl8188e_hal.h"
#include <linux/firmware.h> #include <linux/firmware.h>
#include <linux/kmemleak.h> #include <linux/slab.h>
static void _rtl88e_enable_fw_download(struct adapter *adapt, bool enable) static void _rtl88e_enable_fw_download(struct adapter *adapt, bool enable)
{ {
......
...@@ -31,7 +31,6 @@ ...@@ -31,7 +31,6 @@
#include "efuse.h" #include "efuse.h"
#include <linux/interrupt.h> #include <linux/interrupt.h>
#include <linux/export.h> #include <linux/export.h>
#include <linux/kmemleak.h>
#include <linux/module.h> #include <linux/module.h>
MODULE_AUTHOR("lizhaoming <chaoming_li@realsil.com.cn>"); MODULE_AUTHOR("lizhaoming <chaoming_li@realsil.com.cn>");
......
...@@ -23,7 +23,6 @@ ...@@ -23,7 +23,6 @@
#include <linux/slab.h> #include <linux/slab.h>
#include <linux/module.h> #include <linux/module.h>
#include <linux/hrtimer.h> #include <linux/hrtimer.h>
#include <linux/kmemleak.h>
#include <linux/dma-mapping.h> #include <linux/dma-mapping.h>
#include <xen/xen.h> #include <xen/xen.h>
......
...@@ -125,7 +125,6 @@ ...@@ -125,7 +125,6 @@
#define ZERO_OR_NULL_PTR(x) ((unsigned long)(x) <= \ #define ZERO_OR_NULL_PTR(x) ((unsigned long)(x) <= \
(unsigned long)ZERO_SIZE_PTR) (unsigned long)ZERO_SIZE_PTR)
#include <linux/kmemleak.h>
#include <linux/kasan.h> #include <linux/kasan.h>
struct mem_cgroup; struct mem_cgroup;
......
...@@ -10,6 +10,7 @@ ...@@ -10,6 +10,7 @@
#include <linux/slab.h> #include <linux/slab.h>
#include <linux/cred.h> #include <linux/cred.h>
#include <linux/hash.h> #include <linux/hash.h>
#include <linux/kmemleak.h>
#include <linux/user_namespace.h> #include <linux/user_namespace.h>
#define UCOUNTS_HASHTABLE_BITS 10 #define UCOUNTS_HASHTABLE_BITS 10
......
...@@ -21,6 +21,7 @@ ...@@ -21,6 +21,7 @@
#include <linux/uaccess.h> #include <linux/uaccess.h>
#include <linux/delay.h> #include <linux/delay.h>
#include <linux/kthread.h> #include <linux/kthread.h>
#include <linux/vmalloc.h>
#define TEST_FIRMWARE_NAME "test-firmware.bin" #define TEST_FIRMWARE_NAME "test-firmware.bin"
#define TEST_FIRMWARE_NUM_REQS 4 #define TEST_FIRMWARE_NUM_REQS 4
......
...@@ -35,6 +35,7 @@ ...@@ -35,6 +35,7 @@
#include <linux/cma.h> #include <linux/cma.h>
#include <linux/highmem.h> #include <linux/highmem.h>
#include <linux/io.h> #include <linux/io.h>
#include <linux/kmemleak.h>
#include <trace/events/cma.h> #include <trace/events/cma.h>
#include "cma.h" #include "cma.h"
......
...@@ -17,6 +17,7 @@ ...@@ -17,6 +17,7 @@
#include <linux/poison.h> #include <linux/poison.h>
#include <linux/pfn.h> #include <linux/pfn.h>
#include <linux/debugfs.h> #include <linux/debugfs.h>
#include <linux/kmemleak.h>
#include <linux/seq_file.h> #include <linux/seq_file.h>
#include <linux/memblock.h> #include <linux/memblock.h>
......
...@@ -15,7 +15,6 @@ ...@@ -15,7 +15,6 @@
#include <linux/vmalloc.h> #include <linux/vmalloc.h>
#include <linux/init.h> #include <linux/init.h>
#include <linux/slab.h> #include <linux/slab.h>
#include <linux/kmemleak.h>
#include <net/ip.h> #include <net/ip.h>
#include <net/sock.h> #include <net/sock.h>
......
...@@ -108,7 +108,6 @@ ...@@ -108,7 +108,6 @@
#include <net/rtnetlink.h> #include <net/rtnetlink.h>
#ifdef CONFIG_SYSCTL #ifdef CONFIG_SYSCTL
#include <linux/sysctl.h> #include <linux/sysctl.h>
#include <linux/kmemleak.h>
#endif #endif
#include <net/secure_seq.h> #include <net/secure_seq.h>
#include <net/ip_tunnels.h> #include <net/ip_tunnels.h>
......
...@@ -23,7 +23,6 @@ ...@@ -23,7 +23,6 @@
#include <linux/sysctl.h> #include <linux/sysctl.h>
#include <linux/audit.h> #include <linux/audit.h>
#include <linux/user_namespace.h> #include <linux/user_namespace.h>
#include <linux/kmemleak.h>
#include <net/sock.h> #include <net/sock.h>
#include "include/apparmor.h" #include "include/apparmor.h"
......
...@@ -18,6 +18,7 @@ ...@@ -18,6 +18,7 @@
#include <linux/err.h> #include <linux/err.h>
#include <linux/scatterlist.h> #include <linux/scatterlist.h>
#include <linux/random.h> #include <linux/random.h>
#include <linux/vmalloc.h>
#include <keys/user-type.h> #include <keys/user-type.h>
#include <keys/big_key-type.h> #include <keys/big_key-type.h>
#include <crypto/aead.h> #include <crypto/aead.h>
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment