diff mbox series

[rdma-core] configure: Check the existence of all needed DRM headers

Message ID 1616444421-148423-1-git-send-email-jianxin.xiong@intel.com (mailing list archive)
State Changes Requested
Headers show
Series [rdma-core] configure: Check the existence of all needed DRM headers | expand

Commit Message

Xiong, Jianxin March 22, 2021, 8:20 p.m. UTC
Some vendor specific DRM headers may be missing on systems with old
kernels. Make sure that all headers needed by pyverbs/dmabuf_alloc.c
are present before enabling that module.

Remove unused reference of "radeon_drm.h" from pyverbs/dmabuf_alloc.c.

Signed-off-by: Jianxin Xiong <jianxin.xiong@intel.com>
---
 CMakeLists.txt         | 6 +++++-
 pyverbs/dmabuf_alloc.c | 1 -
 2 files changed, 5 insertions(+), 2 deletions(-)

Comments

Weihang Li March 23, 2021, 2:09 a.m. UTC | #1
On 2021/3/23 4:05, Jianxin Xiong wrote:
> Some vendor specific DRM headers may be missing on systems with old
> kernels. Make sure that all headers needed by pyverbs/dmabuf_alloc.c
> are present before enabling that module.
> 
> Remove unused reference of "radeon_drm.h" from pyverbs/dmabuf_alloc.c.
> 
> Signed-off-by: Jianxin Xiong <jianxin.xiong@intel.com>
> ---
>  CMakeLists.txt         | 6 +++++-
>  pyverbs/dmabuf_alloc.c | 1 -
>  2 files changed, 5 insertions(+), 2 deletions(-)
> 
> diff --git a/CMakeLists.txt b/CMakeLists.txt
> index e9a2f49..1208ab6 100644
> --- a/CMakeLists.txt
> +++ b/CMakeLists.txt
> @@ -526,7 +526,11 @@ if (NOT DRM_INCLUDE_DIRS)
>  endif()
>  
>  if (DRM_INCLUDE_DIRS)
> -  include_directories(${DRM_INCLUDE_DIRS})
> +  if (EXISTS ${DRM_INCLUDE_DIRS}/i915_drm.h AND EXISTS ${DRM_INCLUDE_DIRS}/amdgpu_drm.h)
> +    include_directories(${DRM_INCLUDE_DIRS})
> +  else()
> +    unset(DRM_INCLUDE_DIRS CACHE)
> +  endif()
>  endif()
>  
>  #-------------------------
> diff --git a/pyverbs/dmabuf_alloc.c b/pyverbs/dmabuf_alloc.c
> index 9978a5b..e3ea0a4 100644
> --- a/pyverbs/dmabuf_alloc.c
> +++ b/pyverbs/dmabuf_alloc.c
> @@ -14,7 +14,6 @@
>  #include <drm.h>
>  #include <i915_drm.h>
>  #include <amdgpu_drm.h>
> -#include <radeon_drm.h>
>  #include "dmabuf_alloc.h"
>  
>  /*
> 

Tested-by: Weihang Li <liweihang@huawei.com>

It solves the issue I met on my server with ubuntu 14.04 ,thank you.

Weihang
Jason Gunthorpe March 25, 2021, 1:20 p.m. UTC | #2
On Mon, Mar 22, 2021 at 01:20:21PM -0700, Jianxin Xiong wrote:
> Some vendor specific DRM headers may be missing on systems with old
> kernels. Make sure that all headers needed by pyverbs/dmabuf_alloc.c
> are present before enabling that module.
> 
> Remove unused reference of "radeon_drm.h" from pyverbs/dmabuf_alloc.c.
> 
> Signed-off-by: Jianxin Xiong <jianxin.xiong@intel.com>
>  CMakeLists.txt         | 6 +++++-
>  pyverbs/dmabuf_alloc.c | 1 -
>  2 files changed, 5 insertions(+), 2 deletions(-)
> 
> diff --git a/CMakeLists.txt b/CMakeLists.txt
> index e9a2f49..1208ab6 100644
> +++ b/CMakeLists.txt
> @@ -526,7 +526,11 @@ if (NOT DRM_INCLUDE_DIRS)
>  endif()
>  
>  if (DRM_INCLUDE_DIRS)
> -  include_directories(${DRM_INCLUDE_DIRS})
> +  if (EXISTS ${DRM_INCLUDE_DIRS}/i915_drm.h AND EXISTS ${DRM_INCLUDE_DIRS}/amdgpu_drm.h)
> +    include_directories(${DRM_INCLUDE_DIRS})

It should be in a compile test not coded like this.

The whole thing is getting complex, it should probably go into a
find_package() subroutine

Jason
diff mbox series

Patch

diff --git a/CMakeLists.txt b/CMakeLists.txt
index e9a2f49..1208ab6 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -526,7 +526,11 @@  if (NOT DRM_INCLUDE_DIRS)
 endif()
 
 if (DRM_INCLUDE_DIRS)
-  include_directories(${DRM_INCLUDE_DIRS})
+  if (EXISTS ${DRM_INCLUDE_DIRS}/i915_drm.h AND EXISTS ${DRM_INCLUDE_DIRS}/amdgpu_drm.h)
+    include_directories(${DRM_INCLUDE_DIRS})
+  else()
+    unset(DRM_INCLUDE_DIRS CACHE)
+  endif()
 endif()
 
 #-------------------------
diff --git a/pyverbs/dmabuf_alloc.c b/pyverbs/dmabuf_alloc.c
index 9978a5b..e3ea0a4 100644
--- a/pyverbs/dmabuf_alloc.c
+++ b/pyverbs/dmabuf_alloc.c
@@ -14,7 +14,6 @@ 
 #include <drm.h>
 #include <i915_drm.h>
 #include <amdgpu_drm.h>
-#include <radeon_drm.h>
 #include "dmabuf_alloc.h"
 
 /*