Re: [PATCH] media: dvb: get rid of VIDEO_SET_SPU_PALETTE

2018-05-29 Thread kbuild test robot
Hi Mauro,

I love your patch! Yet something to improve:

[auto build test ERROR on linus/master]
[also build test ERROR on v4.17-rc7 next-20180529]
[if your patch is applied to the wrong git tree, please drop us a note to help 
improve the system]

url:
https://github.com/0day-ci/linux/commits/Mauro-Carvalho-Chehab/media-dvb-get-rid-of-VIDEO_SET_SPU_PALETTE/20180530-033705
config: x86_64-randconfig-g0-05291849 (attached as .config)
compiler: gcc-4.9 (Debian 4.9.4-2) 4.9.4
reproduce:
# save the attached .config to linux build tree
make ARCH=x86_64 

All error/warnings (new ones prefixed by >>):

   fs/compat_ioctl.c: In function 'do_video_set_spu_palette':
   fs/compat_ioctl.c:220:45: error: invalid application of 'sizeof' to 
incomplete type 'struct video_spu_palette'
 up_native = compat_alloc_user_space(sizeof(struct video_spu_palette));
^
   In file included from include/linux/uaccess.h:14:0,
from include/linux/compat.h:20,
from fs/compat_ioctl.c:17:
>> fs/compat_ioctl.c:221:46: error: dereferencing pointer to incomplete type
 err  = put_user(compat_ptr(palp), _native->palette);
 ^
   arch/x86/include/asm/uaccess.h:257:15: note: in definition of macro 
'put_user'
 __typeof__(*(ptr)) __pu_val;\
  ^
   arch/x86/include/asm/uaccess.h:260:11: warning: assignment makes integer 
from pointer without a cast
 __pu_val = x;  \
  ^
   fs/compat_ioctl.c:221:9: note: in expansion of macro 'put_user'
 err  = put_user(compat_ptr(palp), _native->palette);
^
>> fs/compat_ioctl.c:221:46: error: dereferencing pointer to incomplete type
 err  = put_user(compat_ptr(palp), _native->palette);
 ^
   arch/x86/include/asm/uaccess.h:261:19: note: in definition of macro 
'put_user'
 switch (sizeof(*(ptr))) {\
  ^
>> fs/compat_ioctl.c:221:46: error: dereferencing pointer to incomplete type
 err  = put_user(compat_ptr(palp), _native->palette);
 ^
   arch/x86/include/asm/uaccess.h:187:25: note: in definition of macro 
'__put_user_x'
   : "0" ((typeof(*(ptr)))(x)), "c" (ptr) : "ebx")
^
   fs/compat_ioctl.c:221:9: note: in expansion of macro 'put_user'
 err  = put_user(compat_ptr(palp), _native->palette);
^
>> fs/compat_ioctl.c:221:46: error: dereferencing pointer to incomplete type
 err  = put_user(compat_ptr(palp), _native->palette);
 ^
   arch/x86/include/asm/uaccess.h:187:42: note: in definition of macro 
'__put_user_x'
   : "0" ((typeof(*(ptr)))(x)), "c" (ptr) : "ebx")
 ^
   fs/compat_ioctl.c:221:9: note: in expansion of macro 'put_user'
 err  = put_user(compat_ptr(palp), _native->palette);
^
>> fs/compat_ioctl.c:221:46: error: dereferencing pointer to incomplete type
 err  = put_user(compat_ptr(palp), _native->palette);
 ^
   arch/x86/include/asm/uaccess.h:187:25: note: in definition of macro 
'__put_user_x'
   : "0" ((typeof(*(ptr)))(x)), "c" (ptr) : "ebx")
^
   fs/compat_ioctl.c:221:9: note: in expansion of macro 'put_user'
 err  = put_user(compat_ptr(palp), _native->palette);
^
>> fs/compat_ioctl.c:221:46: error: dereferencing pointer to incomplete type
 err  = put_user(compat_ptr(palp), _native->palette);
 ^
   arch/x86/include/asm/uaccess.h:187:42: note: in definition of macro 
'__put_user_x'
   : "0" ((typeof(*(ptr)))(x)), "c" (ptr) : "ebx")
 ^
   fs/compat_ioctl.c:221:9: note: in expansion of macro 'put_user'
 err  = put_user(compat_ptr(palp), _native->palette);
^
>> fs/compat_ioctl.c:221:46: error: dereferencing pointer to incomplete type
 err  = put_user(compat_ptr(palp), _native->palette);
 ^
   arch/x86/include/asm/uaccess.h:187:25: note: in definition of macro 
'__put_user_x'
   : "0" ((typeof(*(ptr)))(x)), "c" (ptr) : "ebx")
^
   fs/compat_ioctl.c:221:9: note: in expansion of macro 'put_user'
 err  = put_user(compat_ptr(palp), _native->palette);
^
>> fs/compat_ioctl.c:221:46: error: dereferencing pointer to incomplete type
 err  = put_user(compat_ptr(palp), _native->palette);
 ^
   arch/x86/include/asm/uaccess.h:187:42: note: in definition of macro 
'__put_user_x'
   : "0" ((typeof(*(ptr)))(x)), "c" (ptr) : "ebx")
 ^
   fs/compat_ioctl.c:221:9: note: in expansion of macro 

Re: [PATCH] media: dvb: get rid of VIDEO_SET_SPU_PALETTE

2018-05-29 Thread kbuild test robot
Hi Mauro,

I love your patch! Perhaps something to improve:

[auto build test WARNING on linus/master]
[also build test WARNING on v4.17-rc7 next-20180529]
[if your patch is applied to the wrong git tree, please drop us a note to help 
improve the system]

url:
https://github.com/0day-ci/linux/commits/Mauro-Carvalho-Chehab/media-dvb-get-rid-of-VIDEO_SET_SPU_PALETTE/20180530-033705
config: mips-fuloong2e_defconfig (attached as .config)
compiler: mips64el-linux-gnuabi64-gcc (Debian 7.2.0-11) 7.2.0
reproduce:
wget 
https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O 
~/bin/make.cross
chmod +x ~/bin/make.cross
# save the attached .config to linux build tree
make.cross ARCH=mips 

All warnings (new ones prefixed by >>):

   fs/compat_ioctl.c: In function 'do_video_set_spu_palette':
   fs/compat_ioctl.c:220:45: error: invalid application of 'sizeof' to 
incomplete type 'struct video_spu_palette'
 up_native = compat_alloc_user_space(sizeof(struct video_spu_palette));
^~
   In file included from include/linux/uaccess.h:14:0,
from include/linux/compat.h:20,
from fs/compat_ioctl.c:17:
   fs/compat_ioctl.c:221:46: error: dereferencing pointer to incomplete type 
'struct video_spu_palette'
 err  = put_user(compat_ptr(palp), _native->palette);
 ^
   arch/mips/include/asm/uaccess.h:444:15: note: in definition of macro 
'__put_user_check'
 __typeof__(*(ptr)) __user *__pu_addr = (ptr);   \
  ^~~
   fs/compat_ioctl.c:221:9: note: in expansion of macro 'put_user'
 err  = put_user(compat_ptr(palp), _native->palette);
^~~~
>> arch/mips/include/asm/uaccess.h:445:32: warning: initialization makes 
>> integer from pointer without a cast [-Wint-conversion]
 __typeof__(*(ptr)) __pu_val = (x);\
   ^
>> arch/mips/include/asm/uaccess.h:158:2: note: in expansion of macro 
>> '__put_user_check'
 __put_user_check((x), (ptr), sizeof(*(ptr)))
 ^~~~
   fs/compat_ioctl.c:221:9: note: in expansion of macro 'put_user'
 err  = put_user(compat_ptr(palp), _native->palette);
^~~~
   At top level:
   fs/compat_ioctl.c:208:12: warning: 'do_video_set_spu_palette' defined but 
not used [-Wunused-function]
static int do_video_set_spu_palette(struct file *file,
   ^~~~

vim +445 arch/mips/include/asm/uaccess.h

^1da177e include/asm-mips/uaccess.h  Linus Torvalds  2005-04-16  441  
^1da177e include/asm-mips/uaccess.h  Linus Torvalds  2005-04-16  442  
#define __put_user_check(x, ptr, size)\
^1da177e include/asm-mips/uaccess.h  Linus Torvalds  2005-04-16  443  ({
\
fe00f943 include/asm-mips/uaccess.h  Ralf Baechle2005-03-01 @444
__typeof__(*(ptr)) __user *__pu_addr = (ptr);   \
fe00f943 include/asm-mips/uaccess.h  Ralf Baechle2005-03-01 @445
__typeof__(*(ptr)) __pu_val = (x);  \
8d2d91e8 include/asm-mips/uaccess.h  Ralf Baechle2008-10-11  446
int __pu_err = -EFAULT; \
^1da177e include/asm-mips/uaccess.h  Linus Torvalds  2005-04-16  447
\
ef41f460 arch/mips/include/asm/uaccess.h Ralf Baechle2009-04-28  448
might_fault();  \
ac1d8590 arch/mips/include/asm/uaccess.h Markos Chandras 2013-12-11  449
if (likely(access_ok(VERIFY_WRITE,  __pu_addr, size))) {\
12060666 arch/mips/include/asm/uaccess.h Paul Burton 2015-05-24  450
if (eva_kernel_access())\
ac1d8590 arch/mips/include/asm/uaccess.h Markos Chandras 2013-12-11  451
__put_kernel_common(__pu_addr, size);   \
ac1d8590 arch/mips/include/asm/uaccess.h Markos Chandras 2013-12-11  452
else\
ec56b1d4 arch/mips/include/asm/uaccess.h Markos Chandras 2013-12-17  453
__put_user_common(__pu_addr, size); \
ac1d8590 arch/mips/include/asm/uaccess.h Markos Chandras 2013-12-11  454
}   \
ec56b1d4 arch/mips/include/asm/uaccess.h Markos Chandras 2013-12-17  455
\
^1da177e include/asm-mips/uaccess.h  Linus Torvalds  2005-04-16  456
__pu_err;   \
^1da177e include/asm-mips/uaccess.h  Linus Torvalds  2005-04-16  457  })
^1da177e include/asm-mips/uaccess.h  Linus Torvalds  

Re: [PATCH] media: dvb: get rid of VIDEO_SET_SPU_PALETTE

2018-05-29 Thread Christoph Hellwig
On Mon, May 28, 2018 at 11:32:41AM -0300, Mauro Carvalho Chehab wrote:
> No upstream drivers use it. It doesn't make any sense to have
> a compat32 code for something that nobody uses upstream.
> 
> Reported-by: Alexander Viro 
> Signed-off-by: Mauro Carvalho Chehab 

Looks good,

Reviewed-by: Christoph Hellwig 


[PATCH] media: dvb: get rid of VIDEO_SET_SPU_PALETTE

2018-05-28 Thread Mauro Carvalho Chehab
No upstream drivers use it. It doesn't make any sense to have
a compat32 code for something that nobody uses upstream.

Reported-by: Alexander Viro 
Signed-off-by: Mauro Carvalho Chehab 
---
 .../media/uapi/dvb/video-set-spu-palette.rst  | 82 ---
 .../media/uapi/dvb/video_function_calls.rst   |  1 -
 Documentation/media/uapi/dvb/video_types.rst  | 18 
 Documentation/media/video.h.rst.exceptions|  1 -
 fs/compat_ioctl.c |  2 -
 include/uapi/linux/dvb/video.h|  7 --
 6 files changed, 111 deletions(-)
 delete mode 100644 Documentation/media/uapi/dvb/video-set-spu-palette.rst

diff --git a/Documentation/media/uapi/dvb/video-set-spu-palette.rst 
b/Documentation/media/uapi/dvb/video-set-spu-palette.rst
deleted file mode 100644
index 51a1913d21d2..
--- a/Documentation/media/uapi/dvb/video-set-spu-palette.rst
+++ /dev/null
@@ -1,82 +0,0 @@
-.. -*- coding: utf-8; mode: rst -*-
-
-.. _VIDEO_SET_SPU_PALETTE:
-
-=
-VIDEO_SET_SPU_PALETTE
-=
-
-Name
-
-
-VIDEO_SET_SPU_PALETTE
-
-.. attention:: This ioctl is deprecated.
-
-Synopsis
-
-
-.. c:function:: int ioctl(fd, VIDEO_SET_SPU_PALETTE, struct video_spu_palette 
*palette )
-:name: VIDEO_SET_SPU_PALETTE
-
-
-Arguments
--
-
-.. flat-table::
-:header-rows:  0
-:stub-columns: 0
-
-
--  .. row 1
-
-   -  int fd
-
-   -  File descriptor returned by a previous call to open().
-
--  .. row 2
-
-   -  int request
-
-   -  Equals VIDEO_SET_SPU_PALETTE for this command.
-
--  .. row 3
-
-   -  video_spu_palette_t \*palette
-
-   -  SPU palette according to section ??.
-
-
-Description

-
-This ioctl sets the SPU color palette.
-
-.. c:type:: video_spu_palette
-
-.. code-block::c
-
-   typedef struct video_spu_palette {  /* SPU Palette information */
-   int length;
-   __u8 __user *palette;
-   } video_spu_palette_t;
-
-Return Value
-
-
-On success 0 is returned, on error -1 and the ``errno`` variable is set
-appropriately. The generic error codes are described at the
-:ref:`Generic Error Codes ` chapter.
-
-
-
-.. flat-table::
-:header-rows:  0
-:stub-columns: 0
-
-
--  .. row 1
-
-   -  ``EINVAL``
-
-   -  input is not a valid palette or driver doesn’t handle SPU.
diff --git a/Documentation/media/uapi/dvb/video_function_calls.rst 
b/Documentation/media/uapi/dvb/video_function_calls.rst
index 68588ac7fecb..8d8383ffaeba 100644
--- a/Documentation/media/uapi/dvb/video_function_calls.rst
+++ b/Documentation/media/uapi/dvb/video_function_calls.rst
@@ -38,6 +38,5 @@ Video Function Calls
 video-set-system
 video-set-highlight
 video-set-spu
-video-set-spu-palette
 video-get-navi
 video-set-attributes
diff --git a/Documentation/media/uapi/dvb/video_types.rst 
b/Documentation/media/uapi/dvb/video_types.rst
index 640a21de6b8a..4cfa00e5c934 100644
--- a/Documentation/media/uapi/dvb/video_types.rst
+++ b/Documentation/media/uapi/dvb/video_types.rst
@@ -320,24 +320,6 @@ to the following format:
  } video_spu_t;
 
 
-.. c:type:: video_spu_palette
-
-struct video_spu_palette
-
-
-The following structure is used to set the SPU palette by calling
-VIDEO_SPU_PALETTE:
-
-
-.. code-block:: c
-
- typedef
- struct video_spu_palette {
-int length;
-uint8_t *palette;
- } video_spu_palette_t;
-
-
 .. c:type:: video_navi_pack
 
 struct video_navi_pack
diff --git a/Documentation/media/video.h.rst.exceptions 
b/Documentation/media/video.h.rst.exceptions
index a91aa884ce0e..89d7c3ef2da7 100644
--- a/Documentation/media/video.h.rst.exceptions
+++ b/Documentation/media/video.h.rst.exceptions
@@ -36,5 +36,4 @@ replace typedef video_stream_source_t 
:c:type:`video_stream_source`
 replace typedef video_play_state_t :c:type:`video_play_state`
 replace typedef video_highlight_t :c:type:`video_highlight`
 replace typedef video_spu_t :c:type:`video_spu`
-replace typedef video_spu_palette_t :c:type:`video_spu_palette`
 replace typedef video_navi_pack_t :c:type:`video_navi_pack`
diff --git a/fs/compat_ioctl.c b/fs/compat_ioctl.c
index ef80085ed564..e78ecda283d2 100644
--- a/fs/compat_ioctl.c
+++ b/fs/compat_ioctl.c
@@ -1349,8 +1349,6 @@ static long do_ioctl_trans(unsigned int cmd,
return do_video_get_event(file, cmd, argp);
case VIDEO_STILLPICTURE:
return do_video_stillpicture(file, cmd, argp);
-   case VIDEO_SET_SPU_PALETTE:
-   return do_video_set_spu_palette(file, cmd, argp);
}
 
/*
diff --git a/include/uapi/linux/dvb/video.h b/include/uapi/linux/dvb/video.h
index df3d7028c807..6a0c9757b7ba 100644
--- a/include/uapi/linux/dvb/video.h
+++ b/include/uapi/linux/dvb/video.h
@@ -186,12 +186,6 @@ typedef struct video_spu {
 } video_spu_t;
 
 
-typedef