tree:
https://github.com/ribalda/linux uvc-noncontiguous
head: 08aff4b45dd51b3dfba18af4aa40b0fa5e2b5529
commit: 08aff4b45dd51b3dfba18af4aa40b0fa5e2b5529 [5/5] WIP media: uvc: Use
dma_alloc_noncontiguos API
config: powerpc64-randconfig-r011-20201118 (attached as .config)
compiler: clang version 12.0.0 (
https://github.com/llvm/llvm-project
b2613fb2f0f53691dd0211895afbb9413457fca7)
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 powerpc64 cross compiling tool for clang build
# apt-get install binutils-powerpc64-linux-gnu
#
https://github.com/ribalda/linux/commit/08aff4b45dd51b3dfba18af4aa40b0fa5...
git remote add ribalda
https://github.com/ribalda/linux
git fetch --no-tags ribalda uvc-noncontiguous
git checkout 08aff4b45dd51b3dfba18af4aa40b0fa5e2b5529
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=powerpc64
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All warnings (new ones prefixed by >>):
drivers/media/usb/uvc/uvc_video.c:910:8: warning: no previous prototype for function
'uvc_video_dump_time_stats' [-Wmissing-prototypes]
size_t uvc_video_dump_time_stats(char *buf, size_t size,
^
drivers/media/usb/uvc/uvc_video.c:910:1: note: declare 'static' if the function
is not intended to be used outside of this translation unit
size_t uvc_video_dump_time_stats(char *buf, size_t size,
^
static
drivers/media/usb/uvc/uvc_video.c:931:8: warning: no previous prototype for function
'uvc_video_dump_speed' [-Wmissing-prototypes]
size_t uvc_video_dump_speed(char *buf, size_t size, const char *pfx, u64 bytes,
^
drivers/media/usb/uvc/uvc_video.c:931:1: note: declare 'static' if the function
is not intended to be used outside of this translation unit
size_t uvc_video_dump_speed(char *buf, size_t size, const char *pfx, u64 bytes,
^
static
drivers/media/usb/uvc/uvc_video.c:1738:4: error: implicit declaration of function
'dma_free_noncontiguous' [-Werror,-Wimplicit-function-declaration]
dma_free_noncontiguous(stream_to_dmadev(stream),
^
drivers/media/usb/uvc/uvc_video.c:1757:7: error: implicit declaration of function
'dma_can_alloc_noncontiguous' [-Werror,-Wimplicit-function-declaration]
if (!dma_can_alloc_noncontiguous(dma_dev)) {
^
drivers/media/usb/uvc/uvc_video.c:1763:19: error: implicit declaration of function
'dma_alloc_noncontiguous' [-Werror,-Wimplicit-function-declaration]
uvc_urb->pages = dma_alloc_noncontiguous(dma_dev, stream->urb_size,
^
drivers/media/usb/uvc/uvc_video.c:1763:19: note: did you mean
'dma_can_alloc_noncontiguous'?
drivers/media/usb/uvc/uvc_video.c:1757:7: note: 'dma_can_alloc_noncontiguous'
declared here
if (!dma_can_alloc_noncontiguous(dma_dev)) {
^
> drivers/media/usb/uvc/uvc_video.c:1763:17: warning: incompatible
integer to pointer conversion assigning to 'struct page **' from 'int'
[-Wint-conversion]
uvc_urb->pages = dma_alloc_noncontiguous(dma_dev,
stream->urb_size,
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/media/usb/uvc/uvc_video.c:1771:3: error: implicit declaration of function
'dma_free_noncontiguous' [-Werror,-Wimplicit-function-declaration]
dma_free_noncontiguous(dma_dev, stream->urb_size, uvc_urb->pages,
uvc_urb->dma);
^
3 warnings and 4 errors generated.
vim +1763 drivers/media/usb/uvc/uvc_video.c
1751
1752 static bool uvc_alloc_urb_buffer(struct uvc_streaming *stream, struct uvc_urb
*uvc_urb,
1753 gfp_t gfp_flags)
1754 {
1755 struct device *dma_dev = stream_to_dmadev(stream);
1756
1757 if (!dma_can_alloc_noncontiguous(dma_dev)) {
1758 uvc_urb->buffer = usb_alloc_coherent(stream->dev->udev,
stream->urb_size,
1759 gfp_flags | __GFP_NOWARN, &uvc_urb->dma);
1760 return uvc_urb->buffer != NULL;
1761 }
1762
1763 uvc_urb->pages = dma_alloc_noncontiguous(dma_dev,
stream->urb_size,
1764 &uvc_urb->dma, gfp_flags | __GFP_NOWARN,
0);
1765 if (!uvc_urb->pages)
1766 return false;
1767
1768 uvc_urb->buffer = vmap(uvc_urb->pages, PAGE_ALIGN(stream->urb_size)
>> PAGE_SHIFT,
1769 VM_DMA_COHERENT, PAGE_KERNEL);
1770 if (!uvc_urb->buffer) {
1771 dma_free_noncontiguous(dma_dev, stream->urb_size, uvc_urb->pages,
uvc_urb->dma);
1772 return false;
1773 }
1774
1775 return true;
1776 }
1777
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org