* [freescale-fslc:pr/383 15408/19551] drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_drm.c:79:17: error: no previous prototype for function 'viv_gem_prime_export'
@ 2021-07-02 5:37 kernel test robot
0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2021-07-02 5:37 UTC (permalink / raw)
To: kbuild-all
[-- Attachment #1: Type: text/plain, Size: 18814 bytes --]
Hi Xianzhong,
FYI, the error/warning still remains.
tree: https://github.com/Freescale/linux-fslc pr/383
head: db8ff65069a384326486a94ec13716a833fbe6fd
commit: 0cbc4419bd2f810d1689d81f24884bb527bbe5fd [15408/19551] MGS-4929 [#imx-2382] enable vivante drm for linux build
config: arm64-randconfig-r011-20210630 (attached as .config)
compiler: clang version 13.0.0 (https://github.com/llvm/llvm-project 8d21d5472501460933e78aead04cf59579025ba4)
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# install arm64 cross compiling tool for clang build
# apt-get install binutils-aarch64-linux-gnu
# https://github.com/Freescale/linux-fslc/commit/0cbc4419bd2f810d1689d81f24884bb527bbe5fd
git remote add freescale-fslc https://github.com/Freescale/linux-fslc
git fetch --no-tags freescale-fslc pr/383
git checkout 0cbc4419bd2f810d1689d81f24884bb527bbe5fd
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=arm64
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
All errors (new ones prefixed by >>):
In file included from drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_drm.c:58:
In file included from include/drm/drmP.h:37:
In file included from include/linux/dma-mapping.h:11:
In file included from include/linux/scatterlist.h:8:
In file included from include/linux/mm.h:99:
In file included from arch/arm64/include/asm/pgtable.h:14:
arch/arm64/include/asm/tlbflush.h:200:16: error: variable 'mask' set but not used [-Werror,-Wunused-but-set-variable]
unsigned long mask = (1 << 20) - 1;
^
>> drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_drm.c:79:17: error: no previous prototype for function 'viv_gem_prime_export' [-Werror,-Wmissing-prototypes]
struct dma_buf *viv_gem_prime_export(struct drm_gem_object *gem_obj,
^
drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_drm.c:79:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
struct dma_buf *viv_gem_prime_export(struct drm_gem_object *gem_obj,
^
static
>> drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_drm.c:103:24: error: no previous prototype for function 'viv_gem_prime_import' [-Werror,-Wmissing-prototypes]
struct drm_gem_object *viv_gem_prime_import(struct drm_device *drm,
^
drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_drm.c:103:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
struct drm_gem_object *viv_gem_prime_import(struct drm_device *drm,
^
static
>> drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_drm.c:145:6: error: no previous prototype for function 'viv_gem_free_object' [-Werror,-Wmissing-prototypes]
void viv_gem_free_object(struct drm_gem_object *gem_obj)
^
drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_drm.c:145:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
void viv_gem_free_object(struct drm_gem_object *gem_obj)
^
static
>> drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_drm.c:166:9: error: variable 'ret' set but not used [-Werror,-Wunused-but-set-variable]
int ret = 0;
^
>> drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_drm.c:739:5: error: no previous prototype for function 'viv_drm_open' [-Werror,-Wmissing-prototypes]
int viv_drm_open(struct drm_device *drm, struct drm_file *file)
^
drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_drm.c:739:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
int viv_drm_open(struct drm_device *drm, struct drm_file *file)
^
static
>> drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_drm.c:759:6: error: no previous prototype for function 'viv_drm_postclose' [-Werror,-Wmissing-prototypes]
void viv_drm_postclose(struct drm_device *drm, struct drm_file *file)
^
drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_drm.c:759:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
void viv_drm_postclose(struct drm_device *drm, struct drm_file *file)
^
static
>> drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_drm.c:814:5: error: no previous prototype for function 'viv_drm_probe' [-Werror,-Wmissing-prototypes]
int viv_drm_probe(struct device *dev)
^
drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_drm.c:814:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
int viv_drm_probe(struct device *dev)
^
static
>> drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_drm.c:856:5: error: no previous prototype for function 'viv_drm_remove' [-Werror,-Wmissing-prototypes]
int viv_drm_remove(struct device *dev)
^
drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_drm.c:856:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
int viv_drm_remove(struct device *dev)
^
static
9 errors generated.
vim +/viv_gem_prime_export +79 drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_drm.c
30638182fdab7c Xianzhong 2019-01-29 77
9821cda5105e7d Richard Liu 2019-12-25 78 #if LINUX_VERSION_CODE >= KERNEL_VERSION(5,4,0)
9821cda5105e7d Richard Liu 2019-12-25 @79 struct dma_buf *viv_gem_prime_export(struct drm_gem_object *gem_obj,
9821cda5105e7d Richard Liu 2019-12-25 80 int flags)
9821cda5105e7d Richard Liu 2019-12-25 81 {
9821cda5105e7d Richard Liu 2019-12-25 82 struct drm_device *drm = gem_obj->dev;
9821cda5105e7d Richard Liu 2019-12-25 83 #else
30638182fdab7c Xianzhong 2019-01-29 84 struct dma_buf *viv_gem_prime_export(struct drm_device *drm,
30638182fdab7c Xianzhong 2019-01-29 85 struct drm_gem_object *gem_obj,
30638182fdab7c Xianzhong 2019-01-29 86 int flags)
30638182fdab7c Xianzhong 2019-01-29 87 {
9821cda5105e7d Richard Liu 2019-12-25 88 #endif
30638182fdab7c Xianzhong 2019-01-29 89 struct viv_gem_object *viv_obj = container_of(gem_obj, struct viv_gem_object, base);
30638182fdab7c Xianzhong 2019-01-29 90 struct dma_buf *dmabuf = gcvNULL;
30638182fdab7c Xianzhong 2019-01-29 91 gckGALDEVICE gal_dev = (gckGALDEVICE)drm->dev_private;
30638182fdab7c Xianzhong 2019-01-29 92
30638182fdab7c Xianzhong 2019-01-29 93 if (gal_dev)
30638182fdab7c Xianzhong 2019-01-29 94 {
30638182fdab7c Xianzhong 2019-01-29 95 gckKERNEL kernel = gal_dev->device->map[gal_dev->device->defaultHwType].kernels[0];
e9371a70921300 Minjie Zhuang 2019-09-23 96 gcmkVERIFY_OK(gckVIDMEM_NODE_Export(kernel, viv_obj->node_object, flags,
30638182fdab7c Xianzhong 2019-01-29 97 (gctPOINTER*)&dmabuf, gcvNULL));
30638182fdab7c Xianzhong 2019-01-29 98 }
30638182fdab7c Xianzhong 2019-01-29 99
30638182fdab7c Xianzhong 2019-01-29 100 return dmabuf;
30638182fdab7c Xianzhong 2019-01-29 101 }
30638182fdab7c Xianzhong 2019-01-29 102
30638182fdab7c Xianzhong 2019-01-29 @103 struct drm_gem_object *viv_gem_prime_import(struct drm_device *drm,
30638182fdab7c Xianzhong 2019-01-29 104 struct dma_buf *dmabuf)
30638182fdab7c Xianzhong 2019-01-29 105 {
30638182fdab7c Xianzhong 2019-01-29 106 struct drm_gem_object *gem_obj = gcvNULL;
30638182fdab7c Xianzhong 2019-01-29 107 struct viv_gem_object *viv_obj;
30638182fdab7c Xianzhong 2019-01-29 108
30638182fdab7c Xianzhong 2019-01-29 109 gcsHAL_INTERFACE iface;
30638182fdab7c Xianzhong 2019-01-29 110 gckGALDEVICE gal_dev;
30638182fdab7c Xianzhong 2019-01-29 111 gckKERNEL kernel;
30638182fdab7c Xianzhong 2019-01-29 112 gctUINT32 processID;
30638182fdab7c Xianzhong 2019-01-29 113 gckVIDMEM_NODE nodeObject;
30638182fdab7c Xianzhong 2019-01-29 114 gceSTATUS status = gcvSTATUS_OK;
30638182fdab7c Xianzhong 2019-01-29 115
30638182fdab7c Xianzhong 2019-01-29 116 gal_dev = (gckGALDEVICE)drm->dev_private;
30638182fdab7c Xianzhong 2019-01-29 117 if (!gal_dev)
30638182fdab7c Xianzhong 2019-01-29 118 {
30638182fdab7c Xianzhong 2019-01-29 119 gcmkONERROR(gcvSTATUS_INVALID_ARGUMENT);
30638182fdab7c Xianzhong 2019-01-29 120 }
30638182fdab7c Xianzhong 2019-01-29 121
30638182fdab7c Xianzhong 2019-01-29 122 gckOS_ZeroMemory(&iface, sizeof(iface));
30638182fdab7c Xianzhong 2019-01-29 123 iface.command = gcvHAL_WRAP_USER_MEMORY;
30638182fdab7c Xianzhong 2019-01-29 124 iface.hardwareType = gal_dev->device->defaultHwType;
30638182fdab7c Xianzhong 2019-01-29 125 iface.u.WrapUserMemory.desc.flag = gcvALLOC_FLAG_DMABUF;
30638182fdab7c Xianzhong 2019-01-29 126 iface.u.WrapUserMemory.desc.handle = -1;
30638182fdab7c Xianzhong 2019-01-29 127 iface.u.WrapUserMemory.desc.dmabuf = gcmPTR_TO_UINT64(dmabuf);
30638182fdab7c Xianzhong 2019-01-29 128 gcmkONERROR(gckDEVICE_Dispatch(gal_dev->device, &iface));
30638182fdab7c Xianzhong 2019-01-29 129
30638182fdab7c Xianzhong 2019-01-29 130 kernel = gal_dev->device->map[gal_dev->device->defaultHwType].kernels[0];
30638182fdab7c Xianzhong 2019-01-29 131 gcmkONERROR(gckOS_GetProcessID(&processID));
30638182fdab7c Xianzhong 2019-01-29 132 gcmkONERROR(gckVIDMEM_HANDLE_Lookup(kernel, processID, iface.u.WrapUserMemory.node, &nodeObject));
30638182fdab7c Xianzhong 2019-01-29 133
30638182fdab7c Xianzhong 2019-01-29 134 /* ioctl output */
30638182fdab7c Xianzhong 2019-01-29 135 gem_obj = kzalloc(sizeof(struct viv_gem_object), GFP_KERNEL);
30638182fdab7c Xianzhong 2019-01-29 136 drm_gem_private_object_init(drm, gem_obj, dmabuf->size);
30638182fdab7c Xianzhong 2019-01-29 137 viv_obj = container_of(gem_obj, struct viv_gem_object, base);
30638182fdab7c Xianzhong 2019-01-29 138 viv_obj->node_handle = iface.u.WrapUserMemory.node;
30638182fdab7c Xianzhong 2019-01-29 139 viv_obj->node_object = nodeObject;
30638182fdab7c Xianzhong 2019-01-29 140
30638182fdab7c Xianzhong 2019-01-29 141 OnError:
30638182fdab7c Xianzhong 2019-01-29 142 return gem_obj;
30638182fdab7c Xianzhong 2019-01-29 143 }
30638182fdab7c Xianzhong 2019-01-29 144
30638182fdab7c Xianzhong 2019-01-29 @145 void viv_gem_free_object(struct drm_gem_object *gem_obj)
30638182fdab7c Xianzhong 2019-01-29 146 {
30638182fdab7c Xianzhong 2019-01-29 147 struct viv_gem_object *viv_obj = container_of(gem_obj, struct viv_gem_object, base);
30638182fdab7c Xianzhong 2019-01-29 148 struct drm_device *drm = gem_obj->dev;
30638182fdab7c Xianzhong 2019-01-29 149
30638182fdab7c Xianzhong 2019-01-29 150 gcsHAL_INTERFACE iface;
30638182fdab7c Xianzhong 2019-01-29 151 gckGALDEVICE gal_dev = (gckGALDEVICE)drm->dev_private;
30638182fdab7c Xianzhong 2019-01-29 152
30638182fdab7c Xianzhong 2019-01-29 153 gckOS_ZeroMemory(&iface, sizeof(iface));
30638182fdab7c Xianzhong 2019-01-29 154 iface.command = gcvHAL_RELEASE_VIDEO_MEMORY;
30638182fdab7c Xianzhong 2019-01-29 155 iface.hardwareType = gal_dev->device->defaultHwType;
30638182fdab7c Xianzhong 2019-01-29 156 iface.u.ReleaseVideoMemory.node = viv_obj->node_handle;
30638182fdab7c Xianzhong 2019-01-29 157 gcmkVERIFY_OK(gckDEVICE_Dispatch(gal_dev->device, &iface));
30638182fdab7c Xianzhong 2019-01-29 158
30638182fdab7c Xianzhong 2019-01-29 159 drm_gem_object_release(gem_obj);
30638182fdab7c Xianzhong 2019-01-29 160 kfree(gem_obj);
30638182fdab7c Xianzhong 2019-01-29 161 }
30638182fdab7c Xianzhong 2019-01-29 162
30638182fdab7c Xianzhong 2019-01-29 163 static int viv_ioctl_gem_create(struct drm_device *drm, void *data,
30638182fdab7c Xianzhong 2019-01-29 164 struct drm_file *file)
30638182fdab7c Xianzhong 2019-01-29 165 {
30638182fdab7c Xianzhong 2019-01-29 @166 int ret = 0;
30638182fdab7c Xianzhong 2019-01-29 167 struct drm_viv_gem_create *args = (struct drm_viv_gem_create*)data;
30638182fdab7c Xianzhong 2019-01-29 168 struct drm_gem_object *gem_obj = gcvNULL;
30638182fdab7c Xianzhong 2019-01-29 169 struct viv_gem_object *viv_obj = gcvNULL;
30638182fdab7c Xianzhong 2019-01-29 170
30638182fdab7c Xianzhong 2019-01-29 171 gcsHAL_INTERFACE iface;
30638182fdab7c Xianzhong 2019-01-29 172 gckGALDEVICE gal_dev;
30638182fdab7c Xianzhong 2019-01-29 173 gckKERNEL kernel;
30638182fdab7c Xianzhong 2019-01-29 174 gctUINT32 processID;
30638182fdab7c Xianzhong 2019-01-29 175 gckVIDMEM_NODE nodeObject;
30638182fdab7c Xianzhong 2019-01-29 176 gctUINT32 flags = gcvALLOC_FLAG_DMABUF_EXPORTABLE;
30638182fdab7c Xianzhong 2019-01-29 177 gceSTATUS status = gcvSTATUS_OK;
e9371a70921300 Minjie Zhuang 2019-09-23 178 gctUINT64 alignSize = PAGE_ALIGN(args->size);
30638182fdab7c Xianzhong 2019-01-29 179
30638182fdab7c Xianzhong 2019-01-29 180 gal_dev = (gckGALDEVICE)drm->dev_private;
30638182fdab7c Xianzhong 2019-01-29 181 if (!gal_dev)
30638182fdab7c Xianzhong 2019-01-29 182 {
30638182fdab7c Xianzhong 2019-01-29 183 gcmkONERROR(gcvSTATUS_INVALID_ARGUMENT);
30638182fdab7c Xianzhong 2019-01-29 184 }
30638182fdab7c Xianzhong 2019-01-29 185
30638182fdab7c Xianzhong 2019-01-29 186 if (args->flags & DRM_VIV_GEM_CONTIGUOUS)
30638182fdab7c Xianzhong 2019-01-29 187 {
30638182fdab7c Xianzhong 2019-01-29 188 flags |= gcvALLOC_FLAG_CONTIGUOUS;
30638182fdab7c Xianzhong 2019-01-29 189 }
30638182fdab7c Xianzhong 2019-01-29 190 if (args->flags & DRM_VIV_GEM_CACHED)
30638182fdab7c Xianzhong 2019-01-29 191 {
30638182fdab7c Xianzhong 2019-01-29 192 flags |= gcvALLOC_FLAG_CACHEABLE;
30638182fdab7c Xianzhong 2019-01-29 193 }
30638182fdab7c Xianzhong 2019-01-29 194 if (args->flags & DRM_VIV_GEM_SECURE)
30638182fdab7c Xianzhong 2019-01-29 195 {
30638182fdab7c Xianzhong 2019-01-29 196 flags |= gcvALLOC_FLAG_SECURITY;
30638182fdab7c Xianzhong 2019-01-29 197 }
30638182fdab7c Xianzhong 2019-01-29 198 if (args->flags & DRM_VIV_GEM_CMA_LIMIT)
30638182fdab7c Xianzhong 2019-01-29 199 {
30638182fdab7c Xianzhong 2019-01-29 200 flags |= gcvALLOC_FLAG_CMA_LIMIT;
30638182fdab7c Xianzhong 2019-01-29 201 }
30638182fdab7c Xianzhong 2019-01-29 202
30638182fdab7c Xianzhong 2019-01-29 203 gckOS_ZeroMemory(&iface, sizeof(iface));
30638182fdab7c Xianzhong 2019-01-29 204 iface.command = gcvHAL_ALLOCATE_LINEAR_VIDEO_MEMORY;
30638182fdab7c Xianzhong 2019-01-29 205 iface.hardwareType = gal_dev->device->defaultHwType;
e9371a70921300 Minjie Zhuang 2019-09-23 206 iface.u.AllocateLinearVideoMemory.bytes = alignSize;
30638182fdab7c Xianzhong 2019-01-29 207 iface.u.AllocateLinearVideoMemory.alignment = 256;
e9371a70921300 Minjie Zhuang 2019-09-23 208 iface.u.AllocateLinearVideoMemory.type = gcvVIDMEM_TYPE_GENERIC;
30638182fdab7c Xianzhong 2019-01-29 209 iface.u.AllocateLinearVideoMemory.flag = flags;
e9371a70921300 Minjie Zhuang 2019-09-23 210 iface.u.AllocateLinearVideoMemory.pool = gcvPOOL_DEFAULT;
30638182fdab7c Xianzhong 2019-01-29 211 gcmkONERROR(gckDEVICE_Dispatch(gal_dev->device, &iface));
30638182fdab7c Xianzhong 2019-01-29 212
30638182fdab7c Xianzhong 2019-01-29 213 kernel = gal_dev->device->map[gal_dev->device->defaultHwType].kernels[0];
30638182fdab7c Xianzhong 2019-01-29 214 gcmkONERROR(gckOS_GetProcessID(&processID));
30638182fdab7c Xianzhong 2019-01-29 215 gcmkONERROR(gckVIDMEM_HANDLE_Lookup(kernel, processID, iface.u.AllocateLinearVideoMemory.node, &nodeObject));
30638182fdab7c Xianzhong 2019-01-29 216
30638182fdab7c Xianzhong 2019-01-29 217 /* ioctl output */
30638182fdab7c Xianzhong 2019-01-29 218 gem_obj = kzalloc(sizeof(struct viv_gem_object), GFP_KERNEL);
e9371a70921300 Minjie Zhuang 2019-09-23 219 drm_gem_private_object_init(drm, gem_obj, (size_t)alignSize);
30638182fdab7c Xianzhong 2019-01-29 220 ret = drm_gem_handle_create(file, gem_obj, &args->handle);
30638182fdab7c Xianzhong 2019-01-29 221
30638182fdab7c Xianzhong 2019-01-29 222 viv_obj = container_of(gem_obj, struct viv_gem_object, base);
30638182fdab7c Xianzhong 2019-01-29 223 viv_obj->node_handle = iface.u.AllocateLinearVideoMemory.node;
30638182fdab7c Xianzhong 2019-01-29 224 viv_obj->node_object = nodeObject;
30638182fdab7c Xianzhong 2019-01-29 225 viv_obj->cacheable = flags & gcvALLOC_FLAG_CACHEABLE;
30638182fdab7c Xianzhong 2019-01-29 226
30638182fdab7c Xianzhong 2019-01-29 227 /* drop reference from allocate - handle holds it now */
30638182fdab7c Xianzhong 2019-01-29 228 drm_gem_object_unreference_unlocked(gem_obj);
30638182fdab7c Xianzhong 2019-01-29 229
30638182fdab7c Xianzhong 2019-01-29 230 OnError:
30638182fdab7c Xianzhong 2019-01-29 231 return gcmIS_ERROR(status) ? -ENOTTY : 0;
30638182fdab7c Xianzhong 2019-01-29 232 }
30638182fdab7c Xianzhong 2019-01-29 233
:::::: The code at line 79 was first introduced by commit
:::::: 9821cda5105e7d6bf026a4f21f927745a3f6b931 MA-16168 [#imx-1903] Fix GPU driver build error and not work issue on 5.4 kernel
:::::: TO: Richard Liu <xuegang.liu@nxp.com>
:::::: CC: Xianzhong <xianzhong.li@nxp.com>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org
[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 34116 bytes --]
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2021-07-02 5:37 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-07-02 5:37 [freescale-fslc:pr/383 15408/19551] drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_drm.c:79:17: error: no previous prototype for function 'viv_gem_prime_export' kernel test robot
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.