[dpdk-dev] igb_uio: fix missing include of slab.h

Message ID 20150724191144.7a11eac0@pcviktorin.fit.vutbr.cz (mailing list archive)
State Accepted, archived
Headers

Commit Message

Jan Viktorin July 24, 2015, 5:11 p.m. UTC
  The missing header prevents to build with linux v3.18.

Signed-off-by: Jan Viktorin <viktorin@rehivetech.com>
---
 lib/librte_eal/linuxapp/igb_uio/igb_uio.c | 1 +
 1 file changed, 1 insertion(+)
  

Comments

Thomas Monjalon July 26, 2015, 10:31 p.m. UTC | #1
2015-07-24 19:11, Jan Viktorin:
> The missing header prevents to build with linux v3.18.

Please could you give more details of why build is broken?
What is the error message?
I don't remember having seen such issue.

Thanks
  
Jan Viktorin July 27, 2015, 11:16 a.m. UTC | #2
Hello Thomas,

I am building in a slightly non-standard way, because I tried to integrate DPDK into Buildroot system.
The problem is with kzalloc and kfree which are undefined in the igb_uio driver. I do not use that
driver, however, it has failed to build. See below:

/usr/bin/make -j5 -C /home/jviki/Projects/buildroot-dpdk-zedboard/build/build/linux-xilinx-v2015.1 HOSTCC="/usr/bin/gcc" HOSTCFLAGS="" ARCH=arm INSTALL_MOD_PATH=/home/jviki/Projects/buildroot-dpdk-zedboard/build/target CROSS_COMPILE=" /home/jviki/Projects/buildroot-dpdk-zedboard/build/host/usr/bin/arm-none-linux-gnueabi-" DEPMOD=/home/jviki/Projects/buildroot-dpdk-zedboard/build/host/sbin/depmod LOADADDR="0x8000" RTE_SDK=/home/jviki/Projects/buildroot-dpdk-zedboard/build/build/dpdk-2.1.0-rc1 RTE_TARGET=arm-armv7-a-linuxapp-gcc RTE_SRCDIR=/home/jviki/Projects/buildroot-dpdk-zedboard/build/build/dpdk-2.1.0-rc1 CROSS=/home/jviki/Projects/buildroot-dpdk-zedboard/build/host/usr/bin/arm-none-linux-gnueabi- M=/home/jviki/Projects/buildroot-dpdk-zedboard/build/build/dpdk-2.1.0-rc1/lib/librte_eal/linuxapp/igb_uio
  LD      /home/jviki/Projects/buildroot-dpdk-zedboard/build/build/dpdk-2.1.0-rc1/lib/librte_eal/linuxapp/igb_uio/built-in.o
  CC [M]  /home/jviki/Projects/buildroot-dpdk-zedboard/build/build/dpdk-2.1.0-rc1/lib/librte_eal/linuxapp/igb_uio/igb_uio.o
/home/jviki/Projects/buildroot-dpdk-zedboard/build/build/dpdk-2.1.0-rc1/lib/librte_eal/linuxapp/igb_uio/igb_uio.c: In function 'igbuio_pci_probe':
/home/jviki/Projects/buildroot-dpdk-zedboard/build/build/dpdk-2.1.0-rc1/lib/librte_eal/linuxapp/igb_uio/igb_uio.c:440:2: error: implicit declaration of function 'kzalloc' [-Werror=implicit-function-declaration]
  udev = kzalloc(sizeof(struct rte_uio_pci_dev), GFP_KERNEL);
  ^
/home/jviki/Projects/buildroot-dpdk-zedboard/build/build/dpdk-2.1.0-rc1/lib/librte_eal/linuxapp/igb_uio/igb_uio.c:440:7: error: assignment makes pointer from integer without a cast [-Werror]
  udev = kzalloc(sizeof(struct rte_uio_pci_dev), GFP_KERNEL);
       ^
/home/jviki/Projects/buildroot-dpdk-zedboard/build/build/dpdk-2.1.0-rc1/lib/librte_eal/linuxapp/igb_uio/igb_uio.c:557:2: error: implicit declaration of function 'kfree' [-Werror=implicit-function-declaration]
  kfree(udev);
  ^
cc1: all warnings being treated as errors
scripts/Makefile.build:263: recipe for target '/home/jviki/Projects/buildroot-dpdk-zedboard/build/build/dpdk-2.1.0-rc1/lib/librte_eal/linuxapp/igb_uio/igb_uio.o' failed
make[3]: *** [/home/jviki/Projects/buildroot-dpdk-zedboard/build/build/dpdk-2.1.0-rc1/lib/librte_eal/linuxapp/igb_uio/igb_uio.o] Error 1
Makefile:1381: recipe for target '_module_/home/jviki/Projects/buildroot-dpdk-zedboard/build/build/dpdk-2.1.0-rc1/lib/librte_eal/linuxapp/igb_uio' failed
make[2]: *** [_module_/home/jviki/Projects/buildroot-dpdk-zedboard/build/build/dpdk-2.1.0-rc1/lib/librte_eal/linuxapp/igb_uio] Error 2
package/pkg-generic.mk:156: recipe for target '/home/jviki/Projects/buildroot-dpdk-zedboard/build/build/dpdk-2.1.0-rc1/.stamp_built' failed
make[1]: *** [/home/jviki/Projects/buildroot-dpdk-zedboard/build/build/dpdk-2.1.0-rc1/.stamp_built] Error 2
Makefile:16: recipe for target '_all' failed
make: *** [_all] Error 2

Regards
Jan

On Mon, 27 Jul 2015 00:31:41 +0200
Thomas Monjalon <thomas.monjalon@6wind.com> wrote:

> 2015-07-24 19:11, Jan Viktorin:
> > The missing header prevents to build with linux v3.18.
> 
> Please could you give more details of why build is broken?
> What is the error message?
> I don't remember having seen such issue.
> 
> Thanks
  
Thomas Monjalon July 27, 2015, 1:02 p.m. UTC | #3
2015-07-27 13:16, Jan Viktorin:
> I am building in a slightly non-standard way, because I tried to integrate DPDK into Buildroot system.
> The problem is with kzalloc and kfree which are undefined in the igb_uio driver. I do not use that
> driver, however, it has failed to build. See below:
> 
> /usr/bin/make -j5 -C /home/jviki/Projects/buildroot-dpdk-zedboard/build/build/linux-xilinx-v2015.1 HOSTCC="/usr/bin/gcc" HOSTCFLAGS="" ARCH=arm INSTALL_MOD_PATH=/home/jviki/Projects/buildroot-dpdk-zedboard/build/target CROSS_COMPILE=" /home/jviki/Projects/buildroot-dpdk-zedboard/build/host/usr/bin/arm-none-linux-gnueabi-" DEPMOD=/home/jviki/Projects/buildroot-dpdk-zedboard/build/host/sbin/depmod LOADADDR="0x8000" RTE_SDK=/home/jviki/Projects/buildroot-dpdk-zedboard/build/build/dpdk-2.1.0-rc1 RTE_TARGET=arm-armv7-a-linuxapp-gcc RTE_SRCDIR=/home/jviki/Projects/buildroot-dpdk-zedboard/build/build/dpdk-2.1.0-rc1 CROSS=/home/jviki/Projects/buildroot-dpdk-zedboard/build/host/usr/bin/arm-none-linux-gnueabi- M=/home/jviki/Projects/buildroot-dpdk-zedboard/build/build/dpdk-2.1.0-rc1/lib/librte_eal/linuxapp/igb_uio

It's not clear which condition makes the build failing
(buildroot, arm, kernel version). But if it fixes it for you,
there is no reason not to apply this simple fix.

Applied, thanks.
  

Patch

diff --git a/lib/librte_eal/linuxapp/igb_uio/igb_uio.c b/lib/librte_eal/linuxapp/igb_uio/igb_uio.c
index ba1364b..865a276 100644
--- a/lib/librte_eal/linuxapp/igb_uio/igb_uio.c
+++ b/lib/librte_eal/linuxapp/igb_uio/igb_uio.c
@@ -31,6 +31,7 @@ 
 #include <linux/io.h>
 #include <linux/msi.h>
 #include <linux/version.h>
+#include <linux/slab.h>
 
 #ifdef CONFIG_XEN_DOM0
 #include <xen/xen.h>