diff mbox

[RFC] x86: remove vmalloc.h from asm/io.h

Message ID 20150529191847.2d4cb3a7@canb.auug.org.au (mailing list archive)
State New, archived
Headers show

Commit Message

Stephen Rothwell May 29, 2015, 9:18 a.m. UTC
Nothing in asm/io.h uses anything from vmalloc.h, so remove the include
and fix up the build problems in an allmodconfig (64 bit and 32 bit)
build.

This may be the place where x86 builds get vmalloc.h implicitly included
and that tends to hide places where vmalloc() et al are added to files
but the include of vmalloc.h is forgotten.

Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: "H. Peter Anvin" <hpa@zytor.com>
Cc: <x86@kernel.org>
Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Cc: Boris Ostrovsky <boris.ostrovsky@oracle.com>
Cc: David Vrabel <david.vrabel@citrix.com>
Cc: Anton Vorontsov <anton@enomsg.org>
Cc: Colin Cross <ccross@android.com>
Cc: Kees Cook <keescook@chromium.org>
Cc: Tony Luck <tony.luck@intel.com>
Cc: "Rafael J. Wysocki" <rjw@rjwysocki.net>
Cc: Len Brown <lenb@kernel.org>
Cc: Kristen Carlson Accardi <kristen@linux.intel.com>
Cc: Viresh Kumar <viresh.kumar@linaro.org>
Cc: Vinod Koul <vinod.koul@intel.com>
Cc: "K. Y. Srinivasan" <kys@microsoft.com>
Cc: Haiyang Zhang <haiyangz@microsoft.com>
Cc: Hiral Patel <hiralpat@cisco.com>
Cc: Suma Ramars <sramars@cisco.com>
Cc: Brian Uchino <buchino@cisco.com>
Cc: "James E.J. Bottomley" <JBottomley@odin.com>
Cc: Jaroslav Kysela <perex@perex.cz>
Cc: Takashi Iwai <tiwai@suse.de>
Cc: Andrew Morton <akpm@linux-foundation.org>
Suggested-by: David Miller <davem@davemloft.net>
Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>

---

Based in Linus' tree of today.

There are probably more places that need vmalloc.h included, but this
passes 64 bit and 32 bit allmodconfig builds, so is a place to start.

Dave Miller suggested that I start this journey.

 arch/x86/include/asm/io.h          | 2 --
 arch/x86/kernel/crash.c            | 1 +
 arch/x86/kernel/machine_kexec_64.c | 1 +
 arch/x86/mm/pageattr-test.c        | 1 +
 arch/x86/mm/pageattr.c             | 1 +
 arch/x86/xen/p2m.c                 | 1 +
 drivers/acpi/apei/erst.c           | 1 +
 drivers/cpufreq/intel_pstate.c     | 1 +
 drivers/dma/mic_x100_dma.c         | 1 +
 drivers/net/hyperv/netvsc.c        | 1 +
 drivers/net/hyperv/rndis_filter.c  | 1 +
 drivers/scsi/fnic/fnic_debugfs.c   | 1 +
 drivers/scsi/fnic/fnic_trace.c     | 1 +
 sound/pci/asihpi/hpioctl.c         | 1 +
 14 files changed, 13 insertions(+), 2 deletions(-)

Comments

Ingo Molnar May 29, 2015, 9:21 a.m. UTC | #1
* Stephen Rothwell <sfr@canb.auug.org.au> wrote:

> Nothing in asm/io.h uses anything from vmalloc.h, so remove the include
> and fix up the build problems in an allmodconfig (64 bit and 32 bit)
> build.
> 
> This may be the place where x86 builds get vmalloc.h implicitly included
> and that tends to hide places where vmalloc() et al are added to files
> but the include of vmalloc.h is forgotten.

Good idea.

Acked-by: Ingo Molnar <mingo@kernel.org>

> Based in Linus' tree of today.
> 
> There are probably more places that need vmalloc.h included, but this passes 64 
> bit and 32 bit allmodconfig builds, so is a place to start.

Please also test x86 allnoconfig and defconfig 32/64, that tends to unearth the 
remaining places. People doing randconfig testing will find the rest.

Thanks,

	Ingo
Takashi Iwai May 29, 2015, 12:43 p.m. UTC | #2
At Fri, 29 May 2015 19:18:47 +1000,
Stephen Rothwell wrote:
> 
> Nothing in asm/io.h uses anything from vmalloc.h, so remove the include
> and fix up the build problems in an allmodconfig (64 bit and 32 bit)
> build.
> 
> This may be the place where x86 builds get vmalloc.h implicitly included
> and that tends to hide places where vmalloc() et al are added to files
> but the include of vmalloc.h is forgotten.
> 
> Cc: Thomas Gleixner <tglx@linutronix.de>
> Cc: Ingo Molnar <mingo@redhat.com>
> Cc: "H. Peter Anvin" <hpa@zytor.com>
> Cc: <x86@kernel.org>
> Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
> Cc: Boris Ostrovsky <boris.ostrovsky@oracle.com>
> Cc: David Vrabel <david.vrabel@citrix.com>
> Cc: Anton Vorontsov <anton@enomsg.org>
> Cc: Colin Cross <ccross@android.com>
> Cc: Kees Cook <keescook@chromium.org>
> Cc: Tony Luck <tony.luck@intel.com>
> Cc: "Rafael J. Wysocki" <rjw@rjwysocki.net>
> Cc: Len Brown <lenb@kernel.org>
> Cc: Kristen Carlson Accardi <kristen@linux.intel.com>
> Cc: Viresh Kumar <viresh.kumar@linaro.org>
> Cc: Vinod Koul <vinod.koul@intel.com>
> Cc: "K. Y. Srinivasan" <kys@microsoft.com>
> Cc: Haiyang Zhang <haiyangz@microsoft.com>
> Cc: Hiral Patel <hiralpat@cisco.com>
> Cc: Suma Ramars <sramars@cisco.com>
> Cc: Brian Uchino <buchino@cisco.com>
> Cc: "James E.J. Bottomley" <JBottomley@odin.com>
> Cc: Jaroslav Kysela <perex@perex.cz>
> Cc: Takashi Iwai <tiwai@suse.de>

For the sound bits,
  Acked-by: Takashi Iwai <tiwai@suse.de>


thanks,

Takashi

> Cc: Andrew Morton <akpm@linux-foundation.org>
> Suggested-by: David Miller <davem@davemloft.net>
> Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
> 
> ---
> 
> Based in Linus' tree of today.
> 
> There are probably more places that need vmalloc.h included, but this
> passes 64 bit and 32 bit allmodconfig builds, so is a place to start.
> 
> Dave Miller suggested that I start this journey.
> 
>  arch/x86/include/asm/io.h          | 2 --
>  arch/x86/kernel/crash.c            | 1 +
>  arch/x86/kernel/machine_kexec_64.c | 1 +
>  arch/x86/mm/pageattr-test.c        | 1 +
>  arch/x86/mm/pageattr.c             | 1 +
>  arch/x86/xen/p2m.c                 | 1 +
>  drivers/acpi/apei/erst.c           | 1 +
>  drivers/cpufreq/intel_pstate.c     | 1 +
>  drivers/dma/mic_x100_dma.c         | 1 +
>  drivers/net/hyperv/netvsc.c        | 1 +
>  drivers/net/hyperv/rndis_filter.c  | 1 +
>  drivers/scsi/fnic/fnic_debugfs.c   | 1 +
>  drivers/scsi/fnic/fnic_trace.c     | 1 +
>  sound/pci/asihpi/hpioctl.c         | 1 +
>  14 files changed, 13 insertions(+), 2 deletions(-)
> 
> diff --git a/arch/x86/include/asm/io.h b/arch/x86/include/asm/io.h
> index 34a5b93704d3..5791e7ace9db 100644
> --- a/arch/x86/include/asm/io.h
> +++ b/arch/x86/include/asm/io.h
> @@ -197,8 +197,6 @@ extern void set_iounmap_nonlazy(void);
>  
>  #include <asm-generic/iomap.h>
>  
> -#include <linux/vmalloc.h>
> -
>  /*
>   * Convert a virtual cached pointer to an uncached pointer
>   */
> diff --git a/arch/x86/kernel/crash.c b/arch/x86/kernel/crash.c
> index c76d3e37c6e1..e068d6683dba 100644
> --- a/arch/x86/kernel/crash.c
> +++ b/arch/x86/kernel/crash.c
> @@ -22,6 +22,7 @@
>  #include <linux/elfcore.h>
>  #include <linux/module.h>
>  #include <linux/slab.h>
> +#include <linux/vmalloc.h>
>  
>  #include <asm/processor.h>
>  #include <asm/hardirq.h>
> diff --git a/arch/x86/kernel/machine_kexec_64.c b/arch/x86/kernel/machine_kexec_64.c
> index 415480d3ea84..11546b462fa6 100644
> --- a/arch/x86/kernel/machine_kexec_64.c
> +++ b/arch/x86/kernel/machine_kexec_64.c
> @@ -17,6 +17,7 @@
>  #include <linux/ftrace.h>
>  #include <linux/io.h>
>  #include <linux/suspend.h>
> +#include <linux/vmalloc.h>
>  
>  #include <asm/init.h>
>  #include <asm/pgtable.h>
> diff --git a/arch/x86/mm/pageattr-test.c b/arch/x86/mm/pageattr-test.c
> index 6629f397b467..8ff686aa7e8c 100644
> --- a/arch/x86/mm/pageattr-test.c
> +++ b/arch/x86/mm/pageattr-test.c
> @@ -9,6 +9,7 @@
>  #include <linux/random.h>
>  #include <linux/kernel.h>
>  #include <linux/mm.h>
> +#include <linux/vmalloc.h>
>  
>  #include <asm/cacheflush.h>
>  #include <asm/pgtable.h>
> diff --git a/arch/x86/mm/pageattr.c b/arch/x86/mm/pageattr.c
> index 89af288ec674..bedfc794b4ba 100644
> --- a/arch/x86/mm/pageattr.c
> +++ b/arch/x86/mm/pageattr.c
> @@ -14,6 +14,7 @@
>  #include <linux/percpu.h>
>  #include <linux/gfp.h>
>  #include <linux/pci.h>
> +#include <linux/vmalloc.h>
>  
>  #include <asm/e820.h>
>  #include <asm/processor.h>
> diff --git a/arch/x86/xen/p2m.c b/arch/x86/xen/p2m.c
> index b47124d4cd67..8b7f18e200aa 100644
> --- a/arch/x86/xen/p2m.c
> +++ b/arch/x86/xen/p2m.c
> @@ -67,6 +67,7 @@
>  #include <linux/seq_file.h>
>  #include <linux/bootmem.h>
>  #include <linux/slab.h>
> +#include <linux/vmalloc.h>
>  
>  #include <asm/cache.h>
>  #include <asm/setup.h>
> diff --git a/drivers/acpi/apei/erst.c b/drivers/acpi/apei/erst.c
> index ed65e9c4b5b0..3670bbab57a3 100644
> --- a/drivers/acpi/apei/erst.c
> +++ b/drivers/acpi/apei/erst.c
> @@ -35,6 +35,7 @@
>  #include <linux/nmi.h>
>  #include <linux/hardirq.h>
>  #include <linux/pstore.h>
> +#include <linux/vmalloc.h>
>  #include <acpi/apei.h>
>  
>  #include "apei-internal.h"
> diff --git a/drivers/cpufreq/intel_pstate.c b/drivers/cpufreq/intel_pstate.c
> index 6414661ac1c4..2ba53f4f6af2 100644
> --- a/drivers/cpufreq/intel_pstate.c
> +++ b/drivers/cpufreq/intel_pstate.c
> @@ -26,6 +26,7 @@
>  #include <linux/fs.h>
>  #include <linux/debugfs.h>
>  #include <linux/acpi.h>
> +#include <linux/vmalloc.h>
>  #include <trace/events/power.h>
>  
>  #include <asm/div64.h>
> diff --git a/drivers/dma/mic_x100_dma.c b/drivers/dma/mic_x100_dma.c
> index 6de2e677be04..74d9db05a5ad 100644
> --- a/drivers/dma/mic_x100_dma.c
> +++ b/drivers/dma/mic_x100_dma.c
> @@ -22,6 +22,7 @@
>  #include <linux/module.h>
>  #include <linux/io.h>
>  #include <linux/seq_file.h>
> +#include <linux/vmalloc.h>
>  
>  #include "mic_x100_dma.h"
>  
> diff --git a/drivers/net/hyperv/netvsc.c b/drivers/net/hyperv/netvsc.c
> index ea091bc5ff09..1e09243d5449 100644
> --- a/drivers/net/hyperv/netvsc.c
> +++ b/drivers/net/hyperv/netvsc.c
> @@ -28,6 +28,7 @@
>  #include <linux/slab.h>
>  #include <linux/netdevice.h>
>  #include <linux/if_ether.h>
> +#include <linux/vmalloc.h>
>  #include <asm/sync_bitops.h>
>  
>  #include "hyperv_net.h"
> diff --git a/drivers/net/hyperv/rndis_filter.c b/drivers/net/hyperv/rndis_filter.c
> index 9118cea91882..35a482d526d9 100644
> --- a/drivers/net/hyperv/rndis_filter.c
> +++ b/drivers/net/hyperv/rndis_filter.c
> @@ -27,6 +27,7 @@
>  #include <linux/netdevice.h>
>  #include <linux/if_vlan.h>
>  #include <linux/nls.h>
> +#include <linux/vmalloc.h>
>  
>  #include "hyperv_net.h"
>  
> diff --git a/drivers/scsi/fnic/fnic_debugfs.c b/drivers/scsi/fnic/fnic_debugfs.c
> index 5980c10c734d..d6498fabe628 100644
> --- a/drivers/scsi/fnic/fnic_debugfs.c
> +++ b/drivers/scsi/fnic/fnic_debugfs.c
> @@ -18,6 +18,7 @@
>  #include <linux/module.h>
>  #include <linux/errno.h>
>  #include <linux/debugfs.h>
> +#include <linux/vmalloc.h>
>  #include "fnic.h"
>  
>  static struct dentry *fnic_trace_debugfs_root;
> diff --git a/drivers/scsi/fnic/fnic_trace.c b/drivers/scsi/fnic/fnic_trace.c
> index 65a9bde26974..4e15c4bf0795 100644
> --- a/drivers/scsi/fnic/fnic_trace.c
> +++ b/drivers/scsi/fnic/fnic_trace.c
> @@ -21,6 +21,7 @@
>  #include <linux/spinlock.h>
>  #include <linux/kallsyms.h>
>  #include <linux/time.h>
> +#include <linux/vmalloc.h>
>  #include "fnic_io.h"
>  #include "fnic.h"
>  
> diff --git a/sound/pci/asihpi/hpioctl.c b/sound/pci/asihpi/hpioctl.c
> index 6610bd096fc9..d17937b92331 100644
> --- a/sound/pci/asihpi/hpioctl.c
> +++ b/sound/pci/asihpi/hpioctl.c
> @@ -32,6 +32,7 @@
>  #include <linux/pci.h>
>  #include <linux/stringify.h>
>  #include <linux/module.h>
> +#include <linux/vmalloc.h>
>  
>  #ifdef MODULE_FIRMWARE
>  MODULE_FIRMWARE("asihpi/dsp5000.bin");
> -- 
> 2.1.4
> 
> -- 
> Cheers,
> Stephen Rothwell                    sfr@canb.auug.org.au
> [2 OpenPGP digital signature <application/pgp-signature (7bit)>]
>
Stephen Rothwell May 29, 2015, 3:28 p.m. UTC | #3
Hi Takashi,

On Fri, 29 May 2015 14:43:14 +0200 Takashi Iwai <tiwai@suse.de> wrote:
>
> For the sound bits,
>   Acked-by: Takashi Iwai <tiwai@suse.de>

Thanks, noted.
David Miller June 1, 2015, 10:59 p.m. UTC | #4
From: Stephen Rothwell <sfr@canb.auug.org.au>
Date: Fri, 29 May 2015 19:18:47 +1000

> Nothing in asm/io.h uses anything from vmalloc.h, so remove the include
> and fix up the build problems in an allmodconfig (64 bit and 32 bit)
> build.
> 
> This may be the place where x86 builds get vmalloc.h implicitly included
> and that tends to hide places where vmalloc() et al are added to files
> but the include of vmalloc.h is forgotten.
> 
 ...
> Suggested-by: David Miller <davem@davemloft.net>
> Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>

With the follow-on allnoconfig fixes:

Acked-by: David S. Miller <davem@davemloft.net>

Thanks a lot for doing this!
Stephen Rothwell June 2, 2015, 12:19 a.m. UTC | #5
Hi Dave,

On Mon, 01 Jun 2015 15:59:31 -0700 (PDT) David Miller <davem@davemloft.net> wrote:
>
> From: Stephen Rothwell <sfr@canb.auug.org.au>
> Date: Fri, 29 May 2015 19:18:47 +1000
> 
> > Nothing in asm/io.h uses anything from vmalloc.h, so remove the include
> > and fix up the build problems in an allmodconfig (64 bit and 32 bit)
> > build.
> > 
> > This may be the place where x86 builds get vmalloc.h implicitly included
> > and that tends to hide places where vmalloc() et al are added to files
> > but the include of vmalloc.h is forgotten.
> > 
>  ...
> > Suggested-by: David Miller <davem@davemloft.net>
> > Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
> 
> With the follow-on allnoconfig fixes:
> 
> Acked-by: David S. Miller <davem@davemloft.net>

Noted, thanks.
diff mbox

Patch

diff --git a/arch/x86/include/asm/io.h b/arch/x86/include/asm/io.h
index 34a5b93704d3..5791e7ace9db 100644
--- a/arch/x86/include/asm/io.h
+++ b/arch/x86/include/asm/io.h
@@ -197,8 +197,6 @@  extern void set_iounmap_nonlazy(void);
 
 #include <asm-generic/iomap.h>
 
-#include <linux/vmalloc.h>
-
 /*
  * Convert a virtual cached pointer to an uncached pointer
  */
diff --git a/arch/x86/kernel/crash.c b/arch/x86/kernel/crash.c
index c76d3e37c6e1..e068d6683dba 100644
--- a/arch/x86/kernel/crash.c
+++ b/arch/x86/kernel/crash.c
@@ -22,6 +22,7 @@ 
 #include <linux/elfcore.h>
 #include <linux/module.h>
 #include <linux/slab.h>
+#include <linux/vmalloc.h>
 
 #include <asm/processor.h>
 #include <asm/hardirq.h>
diff --git a/arch/x86/kernel/machine_kexec_64.c b/arch/x86/kernel/machine_kexec_64.c
index 415480d3ea84..11546b462fa6 100644
--- a/arch/x86/kernel/machine_kexec_64.c
+++ b/arch/x86/kernel/machine_kexec_64.c
@@ -17,6 +17,7 @@ 
 #include <linux/ftrace.h>
 #include <linux/io.h>
 #include <linux/suspend.h>
+#include <linux/vmalloc.h>
 
 #include <asm/init.h>
 #include <asm/pgtable.h>
diff --git a/arch/x86/mm/pageattr-test.c b/arch/x86/mm/pageattr-test.c
index 6629f397b467..8ff686aa7e8c 100644
--- a/arch/x86/mm/pageattr-test.c
+++ b/arch/x86/mm/pageattr-test.c
@@ -9,6 +9,7 @@ 
 #include <linux/random.h>
 #include <linux/kernel.h>
 #include <linux/mm.h>
+#include <linux/vmalloc.h>
 
 #include <asm/cacheflush.h>
 #include <asm/pgtable.h>
diff --git a/arch/x86/mm/pageattr.c b/arch/x86/mm/pageattr.c
index 89af288ec674..bedfc794b4ba 100644
--- a/arch/x86/mm/pageattr.c
+++ b/arch/x86/mm/pageattr.c
@@ -14,6 +14,7 @@ 
 #include <linux/percpu.h>
 #include <linux/gfp.h>
 #include <linux/pci.h>
+#include <linux/vmalloc.h>
 
 #include <asm/e820.h>
 #include <asm/processor.h>
diff --git a/arch/x86/xen/p2m.c b/arch/x86/xen/p2m.c
index b47124d4cd67..8b7f18e200aa 100644
--- a/arch/x86/xen/p2m.c
+++ b/arch/x86/xen/p2m.c
@@ -67,6 +67,7 @@ 
 #include <linux/seq_file.h>
 #include <linux/bootmem.h>
 #include <linux/slab.h>
+#include <linux/vmalloc.h>
 
 #include <asm/cache.h>
 #include <asm/setup.h>
diff --git a/drivers/acpi/apei/erst.c b/drivers/acpi/apei/erst.c
index ed65e9c4b5b0..3670bbab57a3 100644
--- a/drivers/acpi/apei/erst.c
+++ b/drivers/acpi/apei/erst.c
@@ -35,6 +35,7 @@ 
 #include <linux/nmi.h>
 #include <linux/hardirq.h>
 #include <linux/pstore.h>
+#include <linux/vmalloc.h>
 #include <acpi/apei.h>
 
 #include "apei-internal.h"
diff --git a/drivers/cpufreq/intel_pstate.c b/drivers/cpufreq/intel_pstate.c
index 6414661ac1c4..2ba53f4f6af2 100644
--- a/drivers/cpufreq/intel_pstate.c
+++ b/drivers/cpufreq/intel_pstate.c
@@ -26,6 +26,7 @@ 
 #include <linux/fs.h>
 #include <linux/debugfs.h>
 #include <linux/acpi.h>
+#include <linux/vmalloc.h>
 #include <trace/events/power.h>
 
 #include <asm/div64.h>
diff --git a/drivers/dma/mic_x100_dma.c b/drivers/dma/mic_x100_dma.c
index 6de2e677be04..74d9db05a5ad 100644
--- a/drivers/dma/mic_x100_dma.c
+++ b/drivers/dma/mic_x100_dma.c
@@ -22,6 +22,7 @@ 
 #include <linux/module.h>
 #include <linux/io.h>
 #include <linux/seq_file.h>
+#include <linux/vmalloc.h>
 
 #include "mic_x100_dma.h"
 
diff --git a/drivers/net/hyperv/netvsc.c b/drivers/net/hyperv/netvsc.c
index ea091bc5ff09..1e09243d5449 100644
--- a/drivers/net/hyperv/netvsc.c
+++ b/drivers/net/hyperv/netvsc.c
@@ -28,6 +28,7 @@ 
 #include <linux/slab.h>
 #include <linux/netdevice.h>
 #include <linux/if_ether.h>
+#include <linux/vmalloc.h>
 #include <asm/sync_bitops.h>
 
 #include "hyperv_net.h"
diff --git a/drivers/net/hyperv/rndis_filter.c b/drivers/net/hyperv/rndis_filter.c
index 9118cea91882..35a482d526d9 100644
--- a/drivers/net/hyperv/rndis_filter.c
+++ b/drivers/net/hyperv/rndis_filter.c
@@ -27,6 +27,7 @@ 
 #include <linux/netdevice.h>
 #include <linux/if_vlan.h>
 #include <linux/nls.h>
+#include <linux/vmalloc.h>
 
 #include "hyperv_net.h"
 
diff --git a/drivers/scsi/fnic/fnic_debugfs.c b/drivers/scsi/fnic/fnic_debugfs.c
index 5980c10c734d..d6498fabe628 100644
--- a/drivers/scsi/fnic/fnic_debugfs.c
+++ b/drivers/scsi/fnic/fnic_debugfs.c
@@ -18,6 +18,7 @@ 
 #include <linux/module.h>
 #include <linux/errno.h>
 #include <linux/debugfs.h>
+#include <linux/vmalloc.h>
 #include "fnic.h"
 
 static struct dentry *fnic_trace_debugfs_root;
diff --git a/drivers/scsi/fnic/fnic_trace.c b/drivers/scsi/fnic/fnic_trace.c
index 65a9bde26974..4e15c4bf0795 100644
--- a/drivers/scsi/fnic/fnic_trace.c
+++ b/drivers/scsi/fnic/fnic_trace.c
@@ -21,6 +21,7 @@ 
 #include <linux/spinlock.h>
 #include <linux/kallsyms.h>
 #include <linux/time.h>
+#include <linux/vmalloc.h>
 #include "fnic_io.h"
 #include "fnic.h"
 
diff --git a/sound/pci/asihpi/hpioctl.c b/sound/pci/asihpi/hpioctl.c
index 6610bd096fc9..d17937b92331 100644
--- a/sound/pci/asihpi/hpioctl.c
+++ b/sound/pci/asihpi/hpioctl.c
@@ -32,6 +32,7 @@ 
 #include <linux/pci.h>
 #include <linux/stringify.h>
 #include <linux/module.h>
+#include <linux/vmalloc.h>
 
 #ifdef MODULE_FIRMWARE
 MODULE_FIRMWARE("asihpi/dsp5000.bin");