tree: https://git.kernel.org/pub/scm/linux/kernel/git/kas/linux.git lam head: 01819ca3dcb30fc9114025c8c5da8bcee0cabcee commit: bb9d0488e7c6bfff85581168d4f49f48cd11ac36 [5/18] x86/uaccess: Provide untagged_addr() and remove tags before address check config: x86_64-randconfig-s022-20221024 compiler: gcc-11 (Debian 11.3.0-8) 11.3.0 reproduce: # apt-get install sparse # sparse version: v0.6.4-39-gce1a6720-dirty # https://git.kernel.org/pub/scm/linux/kernel/git/kas/linux.git/commit/?id=bb9d0488e7c6bfff85581168d4f49f48cd11ac36 git remote add kas https://git.kernel.org/pub/scm/linux/kernel/git/kas/linux.git git fetch --no-tags kas lam git checkout bb9d0488e7c6bfff85581168d4f49f48cd11ac36 # save the config file mkdir build_dir && cp config build_dir/.config make W=1 C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' O=build_dir ARCH=x86_64 SHELL=/bin/bash drivers/cxl/core/ drivers/hid/ drivers/media/rc/ drivers/misc/vmw_vmci/ drivers/net/slip/ drivers/net/wwan/ drivers/rtc/ drivers/tty/ drivers/video/fbdev/core/ drivers/video/fbdev/matrox/ drivers/video/fbdev/sis/ drivers/video/fbdev/via/ drivers/watchdog/ net/appletalk/ net/can/ net/ipv4/ net/ipv6/ net/netfilter/ net/phonet/ net/qrtr/ net/x25/ If you fix the issue, kindly add following tag where applicable | Reported-by: kernel test robot sparse warnings: (new ones prefixed by >>) >> drivers/video/fbdev/sis/sis_main.c:1718:20: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected unsigned int [noderef] __user *__ptr_clean @@ got unsigned int * @@ drivers/video/fbdev/sis/sis_main.c:1718:20: sparse: expected unsigned int [noderef] __user *__ptr_clean drivers/video/fbdev/sis/sis_main.c:1718:20: sparse: got unsigned int * drivers/video/fbdev/sis/sis_main.c:1737:24: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected unsigned int [noderef] __user *__ptr_clean @@ got unsigned int * @@ drivers/video/fbdev/sis/sis_main.c:1737:24: sparse: expected unsigned int [noderef] __user *__ptr_clean drivers/video/fbdev/sis/sis_main.c:1737:24: sparse: got unsigned int * drivers/video/fbdev/sis/sis_main.c:1800:32: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected unsigned int [noderef] __user *__ptr_clean @@ got unsigned int * @@ drivers/video/fbdev/sis/sis_main.c:1800:32: sparse: expected unsigned int [noderef] __user *__ptr_clean drivers/video/fbdev/sis/sis_main.c:1800:32: sparse: got unsigned int * drivers/video/fbdev/sis/sis_main.c:1802:32: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected unsigned int [noderef] __user *__ptr_clean @@ got unsigned int * @@ drivers/video/fbdev/sis/sis_main.c:1802:32: sparse: expected unsigned int [noderef] __user *__ptr_clean drivers/video/fbdev/sis/sis_main.c:1802:32: sparse: got unsigned int * drivers/video/fbdev/sis/sis_main.c:1811:32: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected unsigned int [noderef] __user *__ptr_clean @@ got unsigned int * @@ drivers/video/fbdev/sis/sis_main.c:1811:32: sparse: expected unsigned int [noderef] __user *__ptr_clean drivers/video/fbdev/sis/sis_main.c:1811:32: sparse: got unsigned int * drivers/video/fbdev/sis/sis_main.c:1813:32: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected unsigned int [noderef] __user *__ptr_clean @@ got unsigned int * @@ drivers/video/fbdev/sis/sis_main.c:1813:32: sparse: expected unsigned int [noderef] __user *__ptr_clean drivers/video/fbdev/sis/sis_main.c:1813:32: sparse: got unsigned int * drivers/video/fbdev/sis/sis_main.c:1821:20: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected unsigned int [noderef] __user *__ptr_clean @@ got unsigned int * @@ drivers/video/fbdev/sis/sis_main.c:1821:20: sparse: expected unsigned int [noderef] __user *__ptr_clean drivers/video/fbdev/sis/sis_main.c:1821:20: sparse: got unsigned int * drivers/video/fbdev/sis/sis_main.c:1828:20: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected unsigned int [noderef] __user *__ptr_clean @@ got unsigned int * @@ drivers/video/fbdev/sis/sis_main.c:1828:20: sparse: expected unsigned int [noderef] __user *__ptr_clean drivers/video/fbdev/sis/sis_main.c:1828:20: sparse: got unsigned int * drivers/video/fbdev/sis/sis_main.c:1836:24: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected unsigned int [noderef] __user *__ptr_clean @@ got unsigned int * @@ drivers/video/fbdev/sis/sis_main.c:1836:24: sparse: expected unsigned int [noderef] __user *__ptr_clean drivers/video/fbdev/sis/sis_main.c:1836:24: sparse: got unsigned int * drivers/video/fbdev/sis/sis_main.c:1853:20: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected unsigned int [noderef] __user *__ptr_clean @@ got unsigned int * @@ drivers/video/fbdev/sis/sis_main.c:1853:20: sparse: expected unsigned int [noderef] __user *__ptr_clean drivers/video/fbdev/sis/sis_main.c:1853:20: sparse: got unsigned int * drivers/video/fbdev/sis/sis_main.c:5438:32: sparse: sparse: cast to restricted __le32 drivers/video/fbdev/sis/sis_main.c:5441:32: sparse: sparse: cast to restricted __le32 drivers/video/fbdev/sis/sis_main.c:5470:40: sparse: sparse: cast to restricted __le32 drivers/video/fbdev/sis/sis_main.c:5502:16: sparse: sparse: cast to restricted __le16 -- >> drivers/video/fbdev/via/viafbdev.c:409:24: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected unsigned int [noderef] __user *__ptr_clean @@ got unsigned int * @@ drivers/video/fbdev/via/viafbdev.c:409:24: sparse: expected unsigned int [noderef] __user *__ptr_clean drivers/video/fbdev/via/viafbdev.c:409:24: sparse: got unsigned int * drivers/video/fbdev/via/viafbdev.c:413:24: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected unsigned int [noderef] __user *__ptr_clean @@ got unsigned int * @@ drivers/video/fbdev/via/viafbdev.c:413:24: sparse: expected unsigned int [noderef] __user *__ptr_clean drivers/video/fbdev/via/viafbdev.c:413:24: sparse: got unsigned int * drivers/video/fbdev/via/viafbdev.c:553:21: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected unsigned int [noderef] __user *__ptr_clean @@ got unsigned int * @@ drivers/video/fbdev/via/viafbdev.c:553:21: sparse: expected unsigned int [noderef] __user *__ptr_clean drivers/video/fbdev/via/viafbdev.c:553:21: sparse: got unsigned int * drivers/video/fbdev/via/viafbdev.c:559:21: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected unsigned int [noderef] __user *__ptr_clean @@ got unsigned int * @@ drivers/video/fbdev/via/viafbdev.c:559:21: sparse: expected unsigned int [noderef] __user *__ptr_clean drivers/video/fbdev/via/viafbdev.c:559:21: sparse: got unsigned int * drivers/video/fbdev/via/viafbdev.c:567:21: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected unsigned int [noderef] __user *__ptr_clean @@ got unsigned int * @@ drivers/video/fbdev/via/viafbdev.c:567:21: sparse: expected unsigned int [noderef] __user *__ptr_clean drivers/video/fbdev/via/viafbdev.c:567:21: sparse: got unsigned int * drivers/video/fbdev/via/viafbdev.c:600:21: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected unsigned int [noderef] __user *__ptr_clean @@ got unsigned int * @@ drivers/video/fbdev/via/viafbdev.c:600:21: sparse: expected unsigned int [noderef] __user *__ptr_clean drivers/video/fbdev/via/viafbdev.c:600:21: sparse: got unsigned int * -- >> drivers/hid/uhid.c:425:21: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected char const [noderef] __user *__ptr_clean @@ got char const * @@ drivers/hid/uhid.c:425:21: sparse: expected char const [noderef] __user *__ptr_clean drivers/hid/uhid.c:425:21: sparse: got char const * -- net/appletalk/ddp.c:100:33: sparse: sparse: restricted __be16 degrades to integer net/appletalk/ddp.c:113:33: sparse: sparse: restricted __be16 degrades to integer net/appletalk/ddp.c:409:47: sparse: sparse: restricted __be16 degrades to integer >> net/appletalk/ddp.c:1810:22: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected int [noderef] __user *__ptr_clean @@ got int * @@ net/appletalk/ddp.c:1810:22: sparse: expected int [noderef] __user *__ptr_clean net/appletalk/ddp.c:1810:22: sparse: got int * net/appletalk/ddp.c:1823:22: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected int [noderef] __user *__ptr_clean @@ got int * @@ net/appletalk/ddp.c:1823:22: sparse: expected int [noderef] __user *__ptr_clean net/appletalk/ddp.c:1823:22: sparse: got int * >> net/appletalk/ddp.c:1860:13: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected unsigned short [noderef] __user *__ptr_clean @@ got unsigned short * @@ net/appletalk/ddp.c:1860:13: sparse: expected unsigned short [noderef] __user *__ptr_clean net/appletalk/ddp.c:1860:13: sparse: got unsigned short * >> net/appletalk/ddp.c:1861:13: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected short [noderef] __user *__ptr_clean @@ got short * @@ net/appletalk/ddp.c:1861:13: sparse: expected short [noderef] __user *__ptr_clean net/appletalk/ddp.c:1861:13: sparse: got short * >> net/appletalk/ddp.c:1862:13: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected unsigned int [noderef] __user *__ptr_clean @@ got unsigned int * @@ net/appletalk/ddp.c:1862:13: sparse: expected unsigned int [noderef] __user *__ptr_clean net/appletalk/ddp.c:1862:13: sparse: got unsigned int * net/appletalk/ddp.c:1863:13: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected unsigned int [noderef] __user *__ptr_clean @@ got unsigned int * @@ net/appletalk/ddp.c:1863:13: sparse: expected unsigned int [noderef] __user *__ptr_clean net/appletalk/ddp.c:1863:13: sparse: got unsigned int * net/appletalk/ddp.c:1864:13: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected unsigned short [noderef] __user *__ptr_clean @@ got unsigned short * @@ net/appletalk/ddp.c:1864:13: sparse: expected unsigned short [noderef] __user *__ptr_clean net/appletalk/ddp.c:1864:13: sparse: got unsigned short * net/appletalk/ddp.c:1865:13: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected unsigned int [noderef] __user *__ptr_clean @@ got unsigned int * @@ net/appletalk/ddp.c:1865:13: sparse: expected unsigned int [noderef] __user *__ptr_clean net/appletalk/ddp.c:1865:13: sparse: got unsigned int * -- >> net/can/isotp.c:1456:13: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected int [noderef] __user *__ptr_clean @@ got int * @@ net/can/isotp.c:1456:13: sparse: expected int [noderef] __user *__ptr_clean net/can/isotp.c:1456:13: sparse: got int * net/can/isotp.c:1491:13: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected int [noderef] __user *__ptr_clean @@ got int * @@ net/can/isotp.c:1491:13: sparse: expected int [noderef] __user *__ptr_clean net/can/isotp.c:1491:13: sparse: got int * -- >> drivers/rtc/rtc-pcf8563.c:288:24: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected unsigned int [noderef] __user *__ptr_clean @@ got unsigned int * @@ drivers/rtc/rtc-pcf8563.c:288:24: sparse: expected unsigned int [noderef] __user *__ptr_clean drivers/rtc/rtc-pcf8563.c:288:24: sparse: got unsigned int * -- >> drivers/rtc/rtc-rs5c372.c:527:24: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected unsigned int [noderef] __user *__ptr_clean @@ got unsigned int * @@ drivers/rtc/rtc-rs5c372.c:527:24: sparse: expected unsigned int [noderef] __user *__ptr_clean drivers/rtc/rtc-rs5c372.c:527:24: sparse: got unsigned int * -- >> drivers/rtc/rtc-rv3028.c:596:24: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected unsigned int [noderef] __user *__ptr_clean @@ got unsigned int * @@ drivers/rtc/rtc-rv3028.c:596:24: sparse: expected unsigned int [noderef] __user *__ptr_clean drivers/rtc/rtc-rv3028.c:596:24: sparse: got unsigned int * -- >> drivers/rtc/dev.c:182:31: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected unsigned int [noderef] __user *__ptr_clean @@ got unsigned int * @@ drivers/rtc/dev.c:182:31: sparse: expected unsigned int [noderef] __user *__ptr_clean drivers/rtc/dev.c:182:31: sparse: got unsigned int * >> drivers/rtc/dev.c:185:31: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected unsigned long [noderef] __user *__ptr_clean @@ got unsigned long * @@ drivers/rtc/dev.c:185:31: sparse: expected unsigned long [noderef] __user *__ptr_clean drivers/rtc/dev.c:185:31: sparse: got unsigned long * drivers/rtc/dev.c:367:23: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected unsigned long [noderef] __user *__ptr_clean @@ got unsigned long * @@ drivers/rtc/dev.c:367:23: sparse: expected unsigned long [noderef] __user *__ptr_clean drivers/rtc/dev.c:367:23: sparse: got unsigned long * drivers/rtc/dev.c:480:24: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected unsigned int [noderef] __user *__ptr_clean @@ got unsigned int * @@ drivers/rtc/dev.c:480:24: sparse: expected unsigned int [noderef] __user *__ptr_clean drivers/rtc/dev.c:480:24: sparse: got unsigned int * -- >> net/ipv4/ip_sockglue.c:1793:21: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected int [noderef] __user *__ptr_clean @@ got int * @@ net/ipv4/ip_sockglue.c:1793:21: sparse: expected int [noderef] __user *__ptr_clean net/ipv4/ip_sockglue.c:1793:21: sparse: got int * net/ipv4/ip_sockglue.c:1798:31: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected int [noderef] __user *__ptr_clean @@ got int * @@ net/ipv4/ip_sockglue.c:1798:31: sparse: expected int [noderef] __user *__ptr_clean net/ipv4/ip_sockglue.c:1798:31: sparse: got int * -- >> drivers/tty/n_gsm.c:3116:24: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected unsigned int [noderef] __user *__ptr_clean @@ got unsigned int * @@ drivers/tty/n_gsm.c:3116:24: sparse: expected unsigned int [noderef] __user *__ptr_clean drivers/tty/n_gsm.c:3116:24: sparse: got unsigned int * drivers/tty/n_gsm.c:3281:29: sparse: sparse: restricted __be16 degrades to integer -- >> drivers/cxl/core/mbox.c:440:13: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected unsigned int [noderef] __user *__ptr_clean @@ got unsigned int * @@ drivers/cxl/core/mbox.c:440:13: sparse: expected unsigned int [noderef] __user *__ptr_clean drivers/cxl/core/mbox.c:440:13: sparse: got unsigned int * drivers/cxl/core/mbox.c:445:24: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected unsigned int [noderef] __user *__ptr_clean @@ got unsigned int * @@ drivers/cxl/core/mbox.c:445:24: sparse: expected unsigned int [noderef] __user *__ptr_clean drivers/cxl/core/mbox.c:445:24: sparse: got unsigned int * -- >> drivers/watchdog/nv_tco.c:197:37: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected char const [noderef] __user *__ptr_clean @@ got char const * @@ drivers/watchdog/nv_tco.c:197:37: sparse: expected char const [noderef] __user *__ptr_clean drivers/watchdog/nv_tco.c:197:37: sparse: got char const * >> drivers/watchdog/nv_tco.c:230:24: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected int [noderef] __user *__ptr_clean @@ got int * @@ drivers/watchdog/nv_tco.c:230:24: sparse: expected int [noderef] __user *__ptr_clean drivers/watchdog/nv_tco.c:230:24: sparse: got int * drivers/watchdog/nv_tco.c:232:21: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected int [noderef] __user *__ptr_clean @@ got int * @@ drivers/watchdog/nv_tco.c:232:21: sparse: expected int [noderef] __user *__ptr_clean drivers/watchdog/nv_tco.c:232:21: sparse: got int * drivers/watchdog/nv_tco.c:248:21: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected int [noderef] __user *__ptr_clean @@ got int * @@ drivers/watchdog/nv_tco.c:248:21: sparse: expected int [noderef] __user *__ptr_clean drivers/watchdog/nv_tco.c:248:21: sparse: got int * drivers/watchdog/nv_tco.c:255:24: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected int [noderef] __user *__ptr_clean @@ got int * @@ drivers/watchdog/nv_tco.c:255:24: sparse: expected int [noderef] __user *__ptr_clean drivers/watchdog/nv_tco.c:255:24: sparse: got int * -- >> drivers/watchdog/pcwd_pci.c:450:37: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected char const [noderef] __user *__ptr_clean @@ got char const * @@ drivers/watchdog/pcwd_pci.c:450:37: sparse: expected char const [noderef] __user *__ptr_clean drivers/watchdog/pcwd_pci.c:450:37: sparse: got char const * >> drivers/watchdog/pcwd_pci.c:486:24: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected int [noderef] __user *__ptr_clean @@ got int * @@ drivers/watchdog/pcwd_pci.c:486:24: sparse: expected int [noderef] __user *__ptr_clean drivers/watchdog/pcwd_pci.c:486:24: sparse: got int * drivers/watchdog/pcwd_pci.c:490:24: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected int [noderef] __user *__ptr_clean @@ got int * @@ drivers/watchdog/pcwd_pci.c:490:24: sparse: expected int [noderef] __user *__ptr_clean drivers/watchdog/pcwd_pci.c:490:24: sparse: got int * drivers/watchdog/pcwd_pci.c:499:24: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected int [noderef] __user *__ptr_clean @@ got int * @@ drivers/watchdog/pcwd_pci.c:499:24: sparse: expected int [noderef] __user *__ptr_clean drivers/watchdog/pcwd_pci.c:499:24: sparse: got int * drivers/watchdog/pcwd_pci.c:506:21: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected int [noderef] __user *__ptr_clean @@ got int * @@ drivers/watchdog/pcwd_pci.c:506:21: sparse: expected int [noderef] __user *__ptr_clean drivers/watchdog/pcwd_pci.c:506:21: sparse: got int * drivers/watchdog/pcwd_pci.c:537:21: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected int [noderef] __user *__ptr_clean @@ got int * @@ drivers/watchdog/pcwd_pci.c:537:21: sparse: expected int [noderef] __user *__ptr_clean drivers/watchdog/pcwd_pci.c:537:21: sparse: got int * drivers/watchdog/pcwd_pci.c:548:24: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected int [noderef] __user *__ptr_clean @@ got int * @@ drivers/watchdog/pcwd_pci.c:548:24: sparse: expected int [noderef] __user *__ptr_clean drivers/watchdog/pcwd_pci.c:548:24: sparse: got int * drivers/watchdog/pcwd_pci.c:557:24: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected int [noderef] __user *__ptr_clean @@ got int * @@ drivers/watchdog/pcwd_pci.c:557:24: sparse: expected int [noderef] __user *__ptr_clean drivers/watchdog/pcwd_pci.c:557:24: sparse: got int * -- >> drivers/watchdog/alim7101_wdt.c:199:37: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected char const [noderef] __user *__ptr_clean @@ got char const * @@ drivers/watchdog/alim7101_wdt.c:199:37: sparse: expected char const [noderef] __user *__ptr_clean drivers/watchdog/alim7101_wdt.c:199:37: sparse: got char const * >> drivers/watchdog/alim7101_wdt.c:250:24: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected int [noderef] __user *__ptr_clean @@ got int * @@ drivers/watchdog/alim7101_wdt.c:250:24: sparse: expected int [noderef] __user *__ptr_clean drivers/watchdog/alim7101_wdt.c:250:24: sparse: got int * drivers/watchdog/alim7101_wdt.c:255:21: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected int [noderef] __user *__ptr_clean @@ got int * @@ drivers/watchdog/alim7101_wdt.c:255:21: sparse: expected int [noderef] __user *__ptr_clean drivers/watchdog/alim7101_wdt.c:255:21: sparse: got int * drivers/watchdog/alim7101_wdt.c:274:21: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected int [noderef] __user *__ptr_clean @@ got int * @@ drivers/watchdog/alim7101_wdt.c:274:21: sparse: expected int [noderef] __user *__ptr_clean drivers/watchdog/alim7101_wdt.c:274:21: sparse: got int * drivers/watchdog/alim7101_wdt.c:284:24: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected int [noderef] __user *__ptr_clean @@ got int * @@ drivers/watchdog/alim7101_wdt.c:284:24: sparse: expected int [noderef] __user *__ptr_clean drivers/watchdog/alim7101_wdt.c:284:24: sparse: got int * -- >> net/ipv6/ipv6_sockglue.c:1510:21: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected int [noderef] __user *__ptr_clean @@ got int * @@ net/ipv6/ipv6_sockglue.c:1510:21: sparse: expected int [noderef] __user *__ptr_clean net/ipv6/ipv6_sockglue.c:1510:21: sparse: got int * net/ipv6/ipv6_sockglue.c:1515:31: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected int [noderef] __user *__ptr_clean @@ got int * @@ net/ipv6/ipv6_sockglue.c:1515:31: sparse: expected int [noderef] __user *__ptr_clean net/ipv6/ipv6_sockglue.c:1515:31: sparse: got int * -- >> net/netfilter/x_tables.c:297:13: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected unsigned short [noderef] __user *__ptr_clean @@ got unsigned short * @@ net/netfilter/x_tables.c:297:13: sparse: expected unsigned short [noderef] __user *__ptr_clean net/netfilter/x_tables.c:297:13: sparse: got unsigned short * >> net/netfilter/x_tables.c:301:13: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected unsigned char [noderef] __user *__ptr_clean @@ got unsigned char * @@ net/netfilter/x_tables.c:301:13: sparse: expected unsigned char [noderef] __user *__ptr_clean net/netfilter/x_tables.c:301:13: sparse: got unsigned char * -- >> net/phonet/socket.c:367:21: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected unsigned short [noderef] __user *__ptr_clean @@ got unsigned short * @@ net/phonet/socket.c:367:21: sparse: expected unsigned short [noderef] __user *__ptr_clean net/phonet/socket.c:367:21: sparse: got unsigned short * net/phonet/socket.c:387:24: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected unsigned short [noderef] __user *__ptr_clean @@ got unsigned short * @@ net/phonet/socket.c:387:24: sparse: expected unsigned short [noderef] __user *__ptr_clean net/phonet/socket.c:387:24: sparse: got unsigned short * net/phonet/socket.c:622:14: sparse: sparse: incompatible types in comparison expression (different address spaces): net/phonet/socket.c:622:14: sparse: struct sock [noderef] __rcu * net/phonet/socket.c:622:14: sparse: struct sock * net/phonet/socket.c:645:17: sparse: sparse: incompatible types in comparison expression (different address spaces): net/phonet/socket.c:645:17: sparse: struct sock [noderef] __rcu * net/phonet/socket.c:645:17: sparse: struct sock * net/phonet/socket.c:661:17: sparse: sparse: incompatible types in comparison expression (different address spaces): net/phonet/socket.c:661:17: sparse: struct sock [noderef] __rcu * net/phonet/socket.c:661:17: sparse: struct sock * net/phonet/socket.c:680:25: sparse: sparse: incompatible types in comparison expression (different address spaces): net/phonet/socket.c:680:25: sparse: struct sock [noderef] __rcu * net/phonet/socket.c:680:25: sparse: struct sock * net/phonet/socket.c:729:21: sparse: sparse: context imbalance in 'pn_res_seq_start' - wrong count at exit net/phonet/socket.c:744:13: sparse: sparse: context imbalance in 'pn_res_seq_stop' - wrong count at exit -- >> net/phonet/datagram.c:42:24: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected int [noderef] __user *__ptr_clean @@ got int * @@ net/phonet/datagram.c:42:24: sparse: expected int [noderef] __user *__ptr_clean net/phonet/datagram.c:42:24: sparse: got int * >> net/phonet/datagram.c:47:29: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected unsigned int [noderef] __user *__ptr_clean @@ got unsigned int * @@ net/phonet/datagram.c:47:29: sparse: expected unsigned int [noderef] __user *__ptr_clean net/phonet/datagram.c:47:29: sparse: got unsigned int * -- >> net/phonet/pep.c:942:23: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected int [noderef] __user *__ptr_clean @@ got int * @@ net/phonet/pep.c:942:23: sparse: expected int [noderef] __user *__ptr_clean net/phonet/pep.c:942:23: sparse: got int * net/phonet/pep.c:1051:13: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected int [noderef] __user *__ptr_clean @@ got int * @@ net/phonet/pep.c:1051:13: sparse: expected int [noderef] __user *__ptr_clean net/phonet/pep.c:1051:13: sparse: got int * net/phonet/pep.c:1078:13: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected int [noderef] __user *__ptr_clean @@ got int * @@ net/phonet/pep.c:1078:13: sparse: expected int [noderef] __user *__ptr_clean net/phonet/pep.c:1078:13: sparse: got int * net/phonet/pep.c:1080:13: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected int [noderef] __user *__ptr_clean @@ got int * @@ net/phonet/pep.c:1080:13: sparse: expected int [noderef] __user *__ptr_clean net/phonet/pep.c:1080:13: sparse: got int * -- net/qrtr/af_qrtr.c:179:27: sparse: sparse: incompatible types in comparison expression (different base types): net/qrtr/af_qrtr.c:179:27: sparse: void [noderef] __rcu * net/qrtr/af_qrtr.c:179:27: sparse: struct qrtr_node * net/qrtr/af_qrtr.c:366:25: sparse: sparse: incorrect type in assignment (different base types) @@ expected restricted __le32 [usertype] confirm_rx @@ got int @@ net/qrtr/af_qrtr.c:630:27: sparse: sparse: incompatible types in comparison expression (different base types): net/qrtr/af_qrtr.c:630:27: sparse: void [noderef] __rcu * net/qrtr/af_qrtr.c:630:27: sparse: struct qrtr_node * >> net/qrtr/af_qrtr.c:1154:22: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected int [noderef] __user *__ptr_clean @@ got int * @@ net/qrtr/af_qrtr.c:1160:22: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected int [noderef] __user *__ptr_clean @@ got int * @@ -- >> drivers/misc/vmw_vmci/vmci_host.c:260:21: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected int [noderef] __user *__ptr_clean @@ got int * @@ drivers/misc/vmw_vmci/vmci_host.c:260:21: sparse: expected int [noderef] __user *__ptr_clean drivers/misc/vmw_vmci/vmci_host.c:260:21: sparse: got int * drivers/misc/vmw_vmci/vmci_host.c:498:13: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected int [noderef] __user *__ptr_clean @@ got int * @@ drivers/misc/vmw_vmci/vmci_host.c:498:13: sparse: expected int [noderef] __user *__ptr_clean drivers/misc/vmw_vmci/vmci_host.c:498:13: sparse: got int * >> drivers/misc/vmw_vmci/vmci_host.c:547:16: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected signed int [noderef] __user *__ptr_clean @@ got signed int * @@ drivers/misc/vmw_vmci/vmci_host.c:547:16: sparse: expected signed int [noderef] __user *__ptr_clean drivers/misc/vmw_vmci/vmci_host.c:547:16: sparse: got signed int * drivers/misc/vmw_vmci/vmci_host.c:589:13: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected signed int [noderef] __user *__ptr_clean @@ got signed int * @@ drivers/misc/vmw_vmci/vmci_host.c:589:13: sparse: expected signed int [noderef] __user *__ptr_clean drivers/misc/vmw_vmci/vmci_host.c:589:13: sparse: got signed int * drivers/misc/vmw_vmci/vmci_host.c:603:21: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected signed int [noderef] __user *__ptr_clean @@ got signed int * @@ drivers/misc/vmw_vmci/vmci_host.c:603:21: sparse: expected signed int [noderef] __user *__ptr_clean drivers/misc/vmw_vmci/vmci_host.c:603:21: sparse: got signed int * drivers/misc/vmw_vmci/vmci_host.c:651:16: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected signed int [noderef] __user *__ptr_clean @@ got signed int * @@ drivers/misc/vmw_vmci/vmci_host.c:651:16: sparse: expected signed int [noderef] __user *__ptr_clean drivers/misc/vmw_vmci/vmci_host.c:651:16: sparse: got signed int * drivers/misc/vmw_vmci/vmci_host.c:674:16: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected int [noderef] __user *__ptr_clean @@ got int * @@ drivers/misc/vmw_vmci/vmci_host.c:674:16: sparse: expected int [noderef] __user *__ptr_clean drivers/misc/vmw_vmci/vmci_host.c:674:16: sparse: got int * drivers/misc/vmw_vmci/vmci_host.c:698:16: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected int [noderef] __user *__ptr_clean @@ got int * @@ drivers/misc/vmw_vmci/vmci_host.c:698:16: sparse: expected int [noderef] __user *__ptr_clean drivers/misc/vmw_vmci/vmci_host.c:698:16: sparse: got int * >> drivers/misc/vmw_vmci/vmci_host.c:771:16: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected unsigned int [noderef] __user *__ptr_clean @@ got unsigned int * @@ drivers/misc/vmw_vmci/vmci_host.c:771:16: sparse: expected unsigned int [noderef] __user *__ptr_clean drivers/misc/vmw_vmci/vmci_host.c:771:16: sparse: got unsigned int * -- drivers/net/slip/slip.c:459:14: sparse: sparse: incompatible types in comparison expression (different address spaces): drivers/net/slip/slip.c:459:14: sparse: void [noderef] __rcu * drivers/net/slip/slip.c:459:14: sparse: void * drivers/net/slip/slip.c:893:9: sparse: sparse: incompatible types in comparison expression (different address spaces): drivers/net/slip/slip.c:893:9: sparse: void [noderef] __rcu * drivers/net/slip/slip.c:893:9: sparse: void * >> drivers/net/slip/slip.c:1094:21: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected int [noderef] __user *__ptr_clean @@ got int * @@ drivers/net/slip/slip.c:1099:21: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected int [noderef] __user *__ptr_clean @@ got int * @@ -- >> net/can/j1939/socket.c:755:13: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected int [noderef] __user *__ptr_clean @@ got int * @@ net/can/j1939/socket.c:755:13: sparse: expected int [noderef] __user *__ptr_clean net/can/j1939/socket.c:755:13: sparse: got int * net/can/j1939/socket.c:782:18: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected int [noderef] __user *__ptr_clean @@ got int * @@ net/can/j1939/socket.c:782:18: sparse: expected int [noderef] __user *__ptr_clean net/can/j1939/socket.c:782:18: sparse: got int * -- >> net/x25/af_x25.c:460:13: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected int [noderef] __user *__ptr_clean @@ got int * @@ net/x25/af_x25.c:460:13: sparse: expected int [noderef] __user *__ptr_clean net/x25/af_x25.c:460:13: sparse: got int * net/x25/af_x25.c:470:13: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected int [noderef] __user *__ptr_clean @@ got int * @@ net/x25/af_x25.c:470:13: sparse: expected int [noderef] __user *__ptr_clean net/x25/af_x25.c:470:13: sparse: got int * >> net/x25/af_x25.c:1386:22: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected unsigned int [noderef] __user *__ptr_clean @@ got unsigned int * @@ net/x25/af_x25.c:1386:22: sparse: expected unsigned int [noderef] __user *__ptr_clean net/x25/af_x25.c:1386:22: sparse: got unsigned int * net/x25/af_x25.c:1401:22: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected unsigned int [noderef] __user *__ptr_clean @@ got unsigned int * @@ net/x25/af_x25.c:1401:22: sparse: expected unsigned int [noderef] __user *__ptr_clean net/x25/af_x25.c:1401:22: sparse: got unsigned int * -- >> drivers/net/wwan/wwan_core.c:791:23: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected int [noderef] __user *__ptr_clean @@ got int * @@ drivers/net/wwan/wwan_core.c:791:23: sparse: expected int [noderef] __user *__ptr_clean drivers/net/wwan/wwan_core.c:791:23: sparse: got int * drivers/net/wwan/wwan_core.c:844:24: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected int [noderef] __user *__ptr_clean @@ got int * @@ drivers/net/wwan/wwan_core.c:844:24: sparse: expected int [noderef] __user *__ptr_clean drivers/net/wwan/wwan_core.c:844:24: sparse: got int * -- >> drivers/media/rc/lirc_dev.c:365:23: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected unsigned int [noderef] __user *__ptr_clean @@ got unsigned int * @@ drivers/media/rc/lirc_dev.c:365:23: sparse: expected unsigned int [noderef] __user *__ptr_clean drivers/media/rc/lirc_dev.c:365:23: sparse: got unsigned int * drivers/media/rc/lirc_dev.c:569:23: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected unsigned int [noderef] __user *__ptr_clean @@ got unsigned int * @@ drivers/media/rc/lirc_dev.c:569:23: sparse: expected unsigned int [noderef] __user *__ptr_clean drivers/media/rc/lirc_dev.c:569:23: sparse: got unsigned int * -- net/ipv4/netfilter/ip_tables.c: note: in included file (through include/linux/netfilter_ipv4/ip_tables.h): include/uapi/linux/netfilter_ipv4/ip_tables.h:206:33: sparse: sparse: array of flexible structures net/ipv4/netfilter/ip_tables.c:38:16: sparse: sparse: array of flexible structures include/uapi/linux/netfilter_ipv4/ip_tables.h:218:36: sparse: sparse: array of flexible structures >> net/ipv4/netfilter/ip_tables.c:1249:13: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected unsigned short [noderef] __user *__ptr_clean @@ got unsigned short * @@ net/ipv4/netfilter/ip_tables.c:1249:13: sparse: expected unsigned short [noderef] __user *__ptr_clean net/ipv4/netfilter/ip_tables.c:1249:13: sparse: got unsigned short * net/ipv4/netfilter/ip_tables.c:1250:13: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected unsigned short [noderef] __user *__ptr_clean @@ got unsigned short * @@ net/ipv4/netfilter/ip_tables.c:1250:13: sparse: expected unsigned short [noderef] __user *__ptr_clean net/ipv4/netfilter/ip_tables.c:1250:13: sparse: got unsigned short * net/ipv4/netfilter/ip_tables.c:1213:40: sparse: sparse: array of flexible structures net/ipv4/netfilter/ip_tables.c:1541:43: sparse: sparse: array of flexible structures net/ipv4/netfilter/ip_tables.c:38:16: sparse: sparse: Initializer entry defined twice net/ipv4/netfilter/ip_tables.c:38:16: sparse: also defined here net/ipv4/netfilter/ip_tables.c:38:16: sparse: sparse: Initializer entry defined twice net/ipv4/netfilter/ip_tables.c:38:16: sparse: also defined here -- >> net/ipv6/netfilter/ip6_tables.c:1265:13: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected unsigned short [noderef] __user *__ptr_clean @@ got unsigned short * @@ net/ipv6/netfilter/ip6_tables.c:1265:13: sparse: expected unsigned short [noderef] __user *__ptr_clean net/ipv6/netfilter/ip6_tables.c:1265:13: sparse: got unsigned short * net/ipv6/netfilter/ip6_tables.c:1266:13: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected unsigned short [noderef] __user *__ptr_clean @@ got unsigned short * @@ net/ipv6/netfilter/ip6_tables.c:1266:13: sparse: expected unsigned short [noderef] __user *__ptr_clean net/ipv6/netfilter/ip6_tables.c:1266:13: sparse: got unsigned short * net/ipv6/netfilter/ip6_tables.c:1229:41: sparse: sparse: array of flexible structures net/ipv6/netfilter/ip6_tables.c:1550:44: sparse: sparse: array of flexible structures net/ipv6/netfilter/ip6_tables.c:42:16: sparse: sparse: Initializer entry defined twice net/ipv6/netfilter/ip6_tables.c:42:16: sparse: also defined here net/ipv6/netfilter/ip6_tables.c:42:16: sparse: sparse: Initializer entry defined twice net/ipv6/netfilter/ip6_tables.c:42:16: sparse: also defined here -- >> drivers/video/fbdev/core/fbmem.c:1270:16: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected unsigned int [noderef] __user *__ptr_clean @@ got unsigned int * @@ drivers/video/fbdev/core/fbmem.c:1270:16: sparse: expected unsigned int [noderef] __user *__ptr_clean drivers/video/fbdev/core/fbmem.c:1270:16: sparse: got unsigned int * drivers/video/fbdev/core/fbmem.c:1272:16: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected unsigned int [noderef] __user *__ptr_clean @@ got unsigned int * @@ drivers/video/fbdev/core/fbmem.c:1272:16: sparse: expected unsigned int [noderef] __user *__ptr_clean drivers/video/fbdev/core/fbmem.c:1272:16: sparse: got unsigned int * drivers/video/fbdev/core/fbmem.c:1273:16: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected unsigned int [noderef] __user *__ptr_clean @@ got unsigned int * @@ drivers/video/fbdev/core/fbmem.c:1273:16: sparse: expected unsigned int [noderef] __user *__ptr_clean drivers/video/fbdev/core/fbmem.c:1273:16: sparse: got unsigned int * drivers/video/fbdev/core/fbmem.c:1274:16: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected unsigned int [noderef] __user *__ptr_clean @@ got unsigned int * @@ drivers/video/fbdev/core/fbmem.c:1274:16: sparse: expected unsigned int [noderef] __user *__ptr_clean drivers/video/fbdev/core/fbmem.c:1274:16: sparse: got unsigned int * drivers/video/fbdev/core/fbmem.c:1275:16: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected unsigned int [noderef] __user *__ptr_clean @@ got unsigned int * @@ drivers/video/fbdev/core/fbmem.c:1275:16: sparse: expected unsigned int [noderef] __user *__ptr_clean drivers/video/fbdev/core/fbmem.c:1275:16: sparse: got unsigned int * >> drivers/video/fbdev/core/fbmem.c:1276:16: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected unsigned short [noderef] __user *__ptr_clean @@ got unsigned short * @@ drivers/video/fbdev/core/fbmem.c:1276:16: sparse: expected unsigned short [noderef] __user *__ptr_clean drivers/video/fbdev/core/fbmem.c:1276:16: sparse: got unsigned short * drivers/video/fbdev/core/fbmem.c:1277:16: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected unsigned short [noderef] __user *__ptr_clean @@ got unsigned short * @@ drivers/video/fbdev/core/fbmem.c:1277:16: sparse: expected unsigned short [noderef] __user *__ptr_clean drivers/video/fbdev/core/fbmem.c:1277:16: sparse: got unsigned short * drivers/video/fbdev/core/fbmem.c:1278:16: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected unsigned short [noderef] __user *__ptr_clean @@ got unsigned short * @@ drivers/video/fbdev/core/fbmem.c:1278:16: sparse: expected unsigned short [noderef] __user *__ptr_clean drivers/video/fbdev/core/fbmem.c:1278:16: sparse: got unsigned short * drivers/video/fbdev/core/fbmem.c:1279:16: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected unsigned int [noderef] __user *__ptr_clean @@ got unsigned int * @@ drivers/video/fbdev/core/fbmem.c:1279:16: sparse: expected unsigned int [noderef] __user *__ptr_clean drivers/video/fbdev/core/fbmem.c:1279:16: sparse: got unsigned int * drivers/video/fbdev/core/fbmem.c:1282:16: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected unsigned int [noderef] __user *__ptr_clean @@ got unsigned int * @@ drivers/video/fbdev/core/fbmem.c:1282:16: sparse: expected unsigned int [noderef] __user *__ptr_clean drivers/video/fbdev/core/fbmem.c:1282:16: sparse: got unsigned int * drivers/video/fbdev/core/fbmem.c:1284:16: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected unsigned int [noderef] __user *__ptr_clean @@ got unsigned int * @@ drivers/video/fbdev/core/fbmem.c:1284:16: sparse: expected unsigned int [noderef] __user *__ptr_clean drivers/video/fbdev/core/fbmem.c:1284:16: sparse: got unsigned int * drivers/video/fbdev/core/fbmem.c:1285:16: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected unsigned int [noderef] __user *__ptr_clean @@ got unsigned int * @@ drivers/video/fbdev/core/fbmem.c:1285:16: sparse: expected unsigned int [noderef] __user *__ptr_clean drivers/video/fbdev/core/fbmem.c:1285:16: sparse: got unsigned int * -- >> drivers/video/fbdev/matrox/matroxfb_base.c:904:37: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected unsigned int [noderef] __user *__ptr_clean @@ got unsigned int * @@ drivers/video/fbdev/matrox/matroxfb_base.c:904:37: sparse: expected unsigned int [noderef] __user *__ptr_clean drivers/video/fbdev/matrox/matroxfb_base.c:904:37: sparse: got unsigned int * drivers/video/fbdev/matrox/matroxfb_base.c:1045:37: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected unsigned int [noderef] __user *__ptr_clean @@ got unsigned int * @@ drivers/video/fbdev/matrox/matroxfb_base.c:1045:37: sparse: expected unsigned int [noderef] __user *__ptr_clean drivers/video/fbdev/matrox/matroxfb_base.c:1045:37: sparse: got unsigned int * drivers/video/fbdev/matrox/matroxfb_base.c:1070:37: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected unsigned int [noderef] __user *__ptr_clean @@ got unsigned int * @@ drivers/video/fbdev/matrox/matroxfb_base.c:1070:37: sparse: expected unsigned int [noderef] __user *__ptr_clean drivers/video/fbdev/matrox/matroxfb_base.c:1070:37: sparse: got unsigned int * drivers/video/fbdev/matrox/matroxfb_base.c:1084:37: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected unsigned int [noderef] __user *__ptr_clean @@ got unsigned int * @@ drivers/video/fbdev/matrox/matroxfb_base.c:1084:37: sparse: expected unsigned int [noderef] __user *__ptr_clean drivers/video/fbdev/matrox/matroxfb_base.c:1084:37: sparse: got unsigned int * vim +1718 drivers/video/fbdev/sis/sis_main.c ^1da177e4c3f41 drivers/video/sis/sis_main.c Linus Torvalds 2005-04-16 1685 67a6680d64e18c drivers/video/sis/sis_main.c Christoph Hellwig 2006-01-14 1686 static int sisfb_ioctl(struct fb_info *info, unsigned int cmd, 67a6680d64e18c drivers/video/sis/sis_main.c Christoph Hellwig 2006-01-14 1687 unsigned long arg) ^1da177e4c3f41 drivers/video/sis/sis_main.c Linus Torvalds 2005-04-16 1688 { ^1da177e4c3f41 drivers/video/sis/sis_main.c Linus Torvalds 2005-04-16 1689 struct sis_video_info *ivideo = (struct sis_video_info *)info->par; 544393fe584d33 drivers/video/sis/sis_main.c Thomas Winischhofer 2005-09-09 1690 struct sis_memreq sismemreq; 544393fe584d33 drivers/video/sis/sis_main.c Thomas Winischhofer 2005-09-09 1691 struct fb_vblank sisvbblank; 544393fe584d33 drivers/video/sis/sis_main.c Thomas Winischhofer 2005-09-09 1692 u32 gpu32 = 0; 544393fe584d33 drivers/video/sis/sis_main.c Thomas Winischhofer 2005-09-09 1693 #ifndef __user 544393fe584d33 drivers/video/sis/sis_main.c Thomas Winischhofer 2005-09-09 1694 #define __user 544393fe584d33 drivers/video/sis/sis_main.c Thomas Winischhofer 2005-09-09 1695 #endif 544393fe584d33 drivers/video/sis/sis_main.c Thomas Winischhofer 2005-09-09 1696 u32 __user *argp = (u32 __user *)arg; ^1da177e4c3f41 drivers/video/sis/sis_main.c Linus Torvalds 2005-04-16 1697 544393fe584d33 drivers/video/sis/sis_main.c Thomas Winischhofer 2005-09-09 1698 switch(cmd) { 544393fe584d33 drivers/video/sis/sis_main.c Thomas Winischhofer 2005-09-09 1699 case FBIO_ALLOC: 544393fe584d33 drivers/video/sis/sis_main.c Thomas Winischhofer 2005-09-09 1700 if(!capable(CAP_SYS_RAWIO)) 544393fe584d33 drivers/video/sis/sis_main.c Thomas Winischhofer 2005-09-09 1701 return -EPERM; ^1da177e4c3f41 drivers/video/sis/sis_main.c Linus Torvalds 2005-04-16 1702 544393fe584d33 drivers/video/sis/sis_main.c Thomas Winischhofer 2005-09-09 1703 if(copy_from_user(&sismemreq, (void __user *)arg, sizeof(sismemreq))) 544393fe584d33 drivers/video/sis/sis_main.c Thomas Winischhofer 2005-09-09 1704 return -EFAULT; ^1da177e4c3f41 drivers/video/sis/sis_main.c Linus Torvalds 2005-04-16 1705 544393fe584d33 drivers/video/sis/sis_main.c Thomas Winischhofer 2005-09-09 1706 sis_malloc(&sismemreq); ^1da177e4c3f41 drivers/video/sis/sis_main.c Linus Torvalds 2005-04-16 1707 544393fe584d33 drivers/video/sis/sis_main.c Thomas Winischhofer 2005-09-09 1708 if(copy_to_user((void __user *)arg, &sismemreq, sizeof(sismemreq))) { 544393fe584d33 drivers/video/sis/sis_main.c Thomas Winischhofer 2005-09-09 1709 sis_free((u32)sismemreq.offset); 544393fe584d33 drivers/video/sis/sis_main.c Thomas Winischhofer 2005-09-09 1710 return -EFAULT; ^1da177e4c3f41 drivers/video/sis/sis_main.c Linus Torvalds 2005-04-16 1711 } 544393fe584d33 drivers/video/sis/sis_main.c Thomas Winischhofer 2005-09-09 1712 break; ^1da177e4c3f41 drivers/video/sis/sis_main.c Linus Torvalds 2005-04-16 1713 544393fe584d33 drivers/video/sis/sis_main.c Thomas Winischhofer 2005-09-09 1714 case FBIO_FREE: 544393fe584d33 drivers/video/sis/sis_main.c Thomas Winischhofer 2005-09-09 1715 if(!capable(CAP_SYS_RAWIO)) 544393fe584d33 drivers/video/sis/sis_main.c Thomas Winischhofer 2005-09-09 1716 return -EPERM; ^1da177e4c3f41 drivers/video/sis/sis_main.c Linus Torvalds 2005-04-16 1717 544393fe584d33 drivers/video/sis/sis_main.c Thomas Winischhofer 2005-09-09 @1718 if(get_user(gpu32, argp)) 544393fe584d33 drivers/video/sis/sis_main.c Thomas Winischhofer 2005-09-09 1719 return -EFAULT; ^1da177e4c3f41 drivers/video/sis/sis_main.c Linus Torvalds 2005-04-16 1720 544393fe584d33 drivers/video/sis/sis_main.c Thomas Winischhofer 2005-09-09 1721 sis_free(gpu32); 544393fe584d33 drivers/video/sis/sis_main.c Thomas Winischhofer 2005-09-09 1722 break; ^1da177e4c3f41 drivers/video/sis/sis_main.c Linus Torvalds 2005-04-16 1723 544393fe584d33 drivers/video/sis/sis_main.c Thomas Winischhofer 2005-09-09 1724 case FBIOGET_VBLANK: fd02db9de73fae drivers/video/sis/sis_main.c Dan Rosenberg 2010-09-22 1725 fd02db9de73fae drivers/video/sis/sis_main.c Dan Rosenberg 2010-09-22 1726 memset(&sisvbblank, 0, sizeof(struct fb_vblank)); fd02db9de73fae drivers/video/sis/sis_main.c Dan Rosenberg 2010-09-22 1727 544393fe584d33 drivers/video/sis/sis_main.c Thomas Winischhofer 2005-09-09 1728 sisvbblank.count = 0; 544393fe584d33 drivers/video/sis/sis_main.c Thomas Winischhofer 2005-09-09 1729 sisvbblank.flags = sisfb_setupvbblankflags(ivideo, &sisvbblank.vcount, &sisvbblank.hcount); ^1da177e4c3f41 drivers/video/sis/sis_main.c Linus Torvalds 2005-04-16 1730 544393fe584d33 drivers/video/sis/sis_main.c Thomas Winischhofer 2005-09-09 1731 if(copy_to_user((void __user *)arg, &sisvbblank, sizeof(sisvbblank))) 544393fe584d33 drivers/video/sis/sis_main.c Thomas Winischhofer 2005-09-09 1732 return -EFAULT; ^1da177e4c3f41 drivers/video/sis/sis_main.c Linus Torvalds 2005-04-16 1733 544393fe584d33 drivers/video/sis/sis_main.c Thomas Winischhofer 2005-09-09 1734 break; ^1da177e4c3f41 drivers/video/sis/sis_main.c Linus Torvalds 2005-04-16 1735 544393fe584d33 drivers/video/sis/sis_main.c Thomas Winischhofer 2005-09-09 1736 case SISFB_GET_INFO_SIZE: 544393fe584d33 drivers/video/sis/sis_main.c Thomas Winischhofer 2005-09-09 1737 return put_user(sizeof(struct sisfb_info), argp); ^1da177e4c3f41 drivers/video/sis/sis_main.c Linus Torvalds 2005-04-16 1738 544393fe584d33 drivers/video/sis/sis_main.c Thomas Winischhofer 2005-09-09 1739 case SISFB_GET_INFO_OLD: 544393fe584d33 drivers/video/sis/sis_main.c Thomas Winischhofer 2005-09-09 1740 if(ivideo->warncount++ < 10) 544393fe584d33 drivers/video/sis/sis_main.c Thomas Winischhofer 2005-09-09 1741 printk(KERN_INFO 544393fe584d33 drivers/video/sis/sis_main.c Thomas Winischhofer 2005-09-09 1742 "sisfb: Deprecated ioctl call received - update your application!\n"); df561f6688fef7 drivers/video/fbdev/sis/sis_main.c Gustavo A. R. Silva 2020-08-23 1743 fallthrough; 544393fe584d33 drivers/video/sis/sis_main.c Thomas Winischhofer 2005-09-09 1744 case SISFB_GET_INFO: /* For communication with X driver */ 544393fe584d33 drivers/video/sis/sis_main.c Thomas Winischhofer 2005-09-09 1745 ivideo->sisfb_infoblock.sisfb_id = SISFB_ID; 544393fe584d33 drivers/video/sis/sis_main.c Thomas Winischhofer 2005-09-09 1746 ivideo->sisfb_infoblock.sisfb_version = VER_MAJOR; 544393fe584d33 drivers/video/sis/sis_main.c Thomas Winischhofer 2005-09-09 1747 ivideo->sisfb_infoblock.sisfb_revision = VER_MINOR; 544393fe584d33 drivers/video/sis/sis_main.c Thomas Winischhofer 2005-09-09 1748 ivideo->sisfb_infoblock.sisfb_patchlevel = VER_LEVEL; 544393fe584d33 drivers/video/sis/sis_main.c Thomas Winischhofer 2005-09-09 1749 ivideo->sisfb_infoblock.chip_id = ivideo->chip_id; 544393fe584d33 drivers/video/sis/sis_main.c Thomas Winischhofer 2005-09-09 1750 ivideo->sisfb_infoblock.sisfb_pci_vendor = ivideo->chip_vendor; 544393fe584d33 drivers/video/sis/sis_main.c Thomas Winischhofer 2005-09-09 1751 ivideo->sisfb_infoblock.memory = ivideo->video_size / 1024; 544393fe584d33 drivers/video/sis/sis_main.c Thomas Winischhofer 2005-09-09 1752 ivideo->sisfb_infoblock.heapstart = ivideo->heapstart / 1024; 544393fe584d33 drivers/video/sis/sis_main.c Thomas Winischhofer 2005-09-09 1753 if(ivideo->modechanged) { 544393fe584d33 drivers/video/sis/sis_main.c Thomas Winischhofer 2005-09-09 1754 ivideo->sisfb_infoblock.fbvidmode = ivideo->mode_no; 544393fe584d33 drivers/video/sis/sis_main.c Thomas Winischhofer 2005-09-09 1755 } else { 544393fe584d33 drivers/video/sis/sis_main.c Thomas Winischhofer 2005-09-09 1756 ivideo->sisfb_infoblock.fbvidmode = ivideo->modeprechange; 544393fe584d33 drivers/video/sis/sis_main.c Thomas Winischhofer 2005-09-09 1757 } 544393fe584d33 drivers/video/sis/sis_main.c Thomas Winischhofer 2005-09-09 1758 ivideo->sisfb_infoblock.sisfb_caps = ivideo->caps; 544393fe584d33 drivers/video/sis/sis_main.c Thomas Winischhofer 2005-09-09 1759 ivideo->sisfb_infoblock.sisfb_tqlen = ivideo->cmdQueueSize / 1024; 544393fe584d33 drivers/video/sis/sis_main.c Thomas Winischhofer 2005-09-09 1760 ivideo->sisfb_infoblock.sisfb_pcibus = ivideo->pcibus; 544393fe584d33 drivers/video/sis/sis_main.c Thomas Winischhofer 2005-09-09 1761 ivideo->sisfb_infoblock.sisfb_pcislot = ivideo->pcislot; 544393fe584d33 drivers/video/sis/sis_main.c Thomas Winischhofer 2005-09-09 1762 ivideo->sisfb_infoblock.sisfb_pcifunc = ivideo->pcifunc; 544393fe584d33 drivers/video/sis/sis_main.c Thomas Winischhofer 2005-09-09 1763 ivideo->sisfb_infoblock.sisfb_lcdpdc = ivideo->detectedpdc; 544393fe584d33 drivers/video/sis/sis_main.c Thomas Winischhofer 2005-09-09 1764 ivideo->sisfb_infoblock.sisfb_lcdpdca = ivideo->detectedpdca; 544393fe584d33 drivers/video/sis/sis_main.c Thomas Winischhofer 2005-09-09 1765 ivideo->sisfb_infoblock.sisfb_lcda = ivideo->detectedlcda; 544393fe584d33 drivers/video/sis/sis_main.c Thomas Winischhofer 2005-09-09 1766 ivideo->sisfb_infoblock.sisfb_vbflags = ivideo->vbflags; 544393fe584d33 drivers/video/sis/sis_main.c Thomas Winischhofer 2005-09-09 1767 ivideo->sisfb_infoblock.sisfb_currentvbflags = ivideo->currentvbflags; 544393fe584d33 drivers/video/sis/sis_main.c Thomas Winischhofer 2005-09-09 1768 ivideo->sisfb_infoblock.sisfb_scalelcd = ivideo->SiS_Pr.UsePanelScaler; 544393fe584d33 drivers/video/sis/sis_main.c Thomas Winischhofer 2005-09-09 1769 ivideo->sisfb_infoblock.sisfb_specialtiming = ivideo->SiS_Pr.SiS_CustomT; 544393fe584d33 drivers/video/sis/sis_main.c Thomas Winischhofer 2005-09-09 1770 ivideo->sisfb_infoblock.sisfb_haveemi = ivideo->SiS_Pr.HaveEMI ? 1 : 0; 544393fe584d33 drivers/video/sis/sis_main.c Thomas Winischhofer 2005-09-09 1771 ivideo->sisfb_infoblock.sisfb_haveemilcd = ivideo->SiS_Pr.HaveEMILCD ? 1 : 0; 544393fe584d33 drivers/video/sis/sis_main.c Thomas Winischhofer 2005-09-09 1772 ivideo->sisfb_infoblock.sisfb_emi30 = ivideo->SiS_Pr.EMI_30; 544393fe584d33 drivers/video/sis/sis_main.c Thomas Winischhofer 2005-09-09 1773 ivideo->sisfb_infoblock.sisfb_emi31 = ivideo->SiS_Pr.EMI_31; 544393fe584d33 drivers/video/sis/sis_main.c Thomas Winischhofer 2005-09-09 1774 ivideo->sisfb_infoblock.sisfb_emi32 = ivideo->SiS_Pr.EMI_32; 544393fe584d33 drivers/video/sis/sis_main.c Thomas Winischhofer 2005-09-09 1775 ivideo->sisfb_infoblock.sisfb_emi33 = ivideo->SiS_Pr.EMI_33; 544393fe584d33 drivers/video/sis/sis_main.c Thomas Winischhofer 2005-09-09 1776 ivideo->sisfb_infoblock.sisfb_tvxpos = (u16)(ivideo->tvxpos + 32); 544393fe584d33 drivers/video/sis/sis_main.c Thomas Winischhofer 2005-09-09 1777 ivideo->sisfb_infoblock.sisfb_tvypos = (u16)(ivideo->tvypos + 32); 544393fe584d33 drivers/video/sis/sis_main.c Thomas Winischhofer 2005-09-09 1778 ivideo->sisfb_infoblock.sisfb_heapsize = ivideo->sisfb_heap_size / 1024; 544393fe584d33 drivers/video/sis/sis_main.c Thomas Winischhofer 2005-09-09 1779 ivideo->sisfb_infoblock.sisfb_videooffset = ivideo->video_offset; 544393fe584d33 drivers/video/sis/sis_main.c Thomas Winischhofer 2005-09-09 1780 ivideo->sisfb_infoblock.sisfb_curfstn = ivideo->curFSTN; 544393fe584d33 drivers/video/sis/sis_main.c Thomas Winischhofer 2005-09-09 1781 ivideo->sisfb_infoblock.sisfb_curdstn = ivideo->curDSTN; 544393fe584d33 drivers/video/sis/sis_main.c Thomas Winischhofer 2005-09-09 1782 ivideo->sisfb_infoblock.sisfb_vbflags2 = ivideo->vbflags2; 544393fe584d33 drivers/video/sis/sis_main.c Thomas Winischhofer 2005-09-09 1783 ivideo->sisfb_infoblock.sisfb_can_post = ivideo->sisfb_can_post ? 1 : 0; 544393fe584d33 drivers/video/sis/sis_main.c Thomas Winischhofer 2005-09-09 1784 ivideo->sisfb_infoblock.sisfb_card_posted = ivideo->sisfb_card_posted ? 1 : 0; 544393fe584d33 drivers/video/sis/sis_main.c Thomas Winischhofer 2005-09-09 1785 ivideo->sisfb_infoblock.sisfb_was_boot_device = ivideo->sisfb_was_boot_device ? 1 : 0; 544393fe584d33 drivers/video/sis/sis_main.c Thomas Winischhofer 2005-09-09 1786 544393fe584d33 drivers/video/sis/sis_main.c Thomas Winischhofer 2005-09-09 1787 if(copy_to_user((void __user *)arg, &ivideo->sisfb_infoblock, 544393fe584d33 drivers/video/sis/sis_main.c Thomas Winischhofer 2005-09-09 1788 sizeof(ivideo->sisfb_infoblock))) 544393fe584d33 drivers/video/sis/sis_main.c Thomas Winischhofer 2005-09-09 1789 return -EFAULT; ^1da177e4c3f41 drivers/video/sis/sis_main.c Linus Torvalds 2005-04-16 1790 544393fe584d33 drivers/video/sis/sis_main.c Thomas Winischhofer 2005-09-09 1791 break; ^1da177e4c3f41 drivers/video/sis/sis_main.c Linus Torvalds 2005-04-16 1792 544393fe584d33 drivers/video/sis/sis_main.c Thomas Winischhofer 2005-09-09 1793 case SISFB_GET_VBRSTATUS_OLD: 544393fe584d33 drivers/video/sis/sis_main.c Thomas Winischhofer 2005-09-09 1794 if(ivideo->warncount++ < 10) 544393fe584d33 drivers/video/sis/sis_main.c Thomas Winischhofer 2005-09-09 1795 printk(KERN_INFO 544393fe584d33 drivers/video/sis/sis_main.c Thomas Winischhofer 2005-09-09 1796 "sisfb: Deprecated ioctl call received - update your application!\n"); df561f6688fef7 drivers/video/fbdev/sis/sis_main.c Gustavo A. R. Silva 2020-08-23 1797 fallthrough; 544393fe584d33 drivers/video/sis/sis_main.c Thomas Winischhofer 2005-09-09 1798 case SISFB_GET_VBRSTATUS: 544393fe584d33 drivers/video/sis/sis_main.c Thomas Winischhofer 2005-09-09 1799 if(sisfb_CheckVBRetrace(ivideo)) 544393fe584d33 drivers/video/sis/sis_main.c Thomas Winischhofer 2005-09-09 1800 return put_user((u32)1, argp); 544393fe584d33 drivers/video/sis/sis_main.c Thomas Winischhofer 2005-09-09 1801 else 544393fe584d33 drivers/video/sis/sis_main.c Thomas Winischhofer 2005-09-09 1802 return put_user((u32)0, argp); ^1da177e4c3f41 drivers/video/sis/sis_main.c Linus Torvalds 2005-04-16 1803 544393fe584d33 drivers/video/sis/sis_main.c Thomas Winischhofer 2005-09-09 1804 case SISFB_GET_AUTOMAXIMIZE_OLD: 544393fe584d33 drivers/video/sis/sis_main.c Thomas Winischhofer 2005-09-09 1805 if(ivideo->warncount++ < 10) 544393fe584d33 drivers/video/sis/sis_main.c Thomas Winischhofer 2005-09-09 1806 printk(KERN_INFO 544393fe584d33 drivers/video/sis/sis_main.c Thomas Winischhofer 2005-09-09 1807 "sisfb: Deprecated ioctl call received - update your application!\n"); df561f6688fef7 drivers/video/fbdev/sis/sis_main.c Gustavo A. R. Silva 2020-08-23 1808 fallthrough; 544393fe584d33 drivers/video/sis/sis_main.c Thomas Winischhofer 2005-09-09 1809 case SISFB_GET_AUTOMAXIMIZE: 544393fe584d33 drivers/video/sis/sis_main.c Thomas Winischhofer 2005-09-09 1810 if(ivideo->sisfb_max) 544393fe584d33 drivers/video/sis/sis_main.c Thomas Winischhofer 2005-09-09 1811 return put_user((u32)1, argp); 544393fe584d33 drivers/video/sis/sis_main.c Thomas Winischhofer 2005-09-09 1812 else 544393fe584d33 drivers/video/sis/sis_main.c Thomas Winischhofer 2005-09-09 1813 return put_user((u32)0, argp); ^1da177e4c3f41 drivers/video/sis/sis_main.c Linus Torvalds 2005-04-16 1814 544393fe584d33 drivers/video/sis/sis_main.c Thomas Winischhofer 2005-09-09 1815 case SISFB_SET_AUTOMAXIMIZE_OLD: 544393fe584d33 drivers/video/sis/sis_main.c Thomas Winischhofer 2005-09-09 1816 if(ivideo->warncount++ < 10) 544393fe584d33 drivers/video/sis/sis_main.c Thomas Winischhofer 2005-09-09 1817 printk(KERN_INFO 544393fe584d33 drivers/video/sis/sis_main.c Thomas Winischhofer 2005-09-09 1818 "sisfb: Deprecated ioctl call received - update your application!\n"); df561f6688fef7 drivers/video/fbdev/sis/sis_main.c Gustavo A. R. Silva 2020-08-23 1819 fallthrough; 544393fe584d33 drivers/video/sis/sis_main.c Thomas Winischhofer 2005-09-09 1820 case SISFB_SET_AUTOMAXIMIZE: 544393fe584d33 drivers/video/sis/sis_main.c Thomas Winischhofer 2005-09-09 1821 if(get_user(gpu32, argp)) 544393fe584d33 drivers/video/sis/sis_main.c Thomas Winischhofer 2005-09-09 1822 return -EFAULT; ^1da177e4c3f41 drivers/video/sis/sis_main.c Linus Torvalds 2005-04-16 1823 544393fe584d33 drivers/video/sis/sis_main.c Thomas Winischhofer 2005-09-09 1824 ivideo->sisfb_max = (gpu32) ? 1 : 0; 544393fe584d33 drivers/video/sis/sis_main.c Thomas Winischhofer 2005-09-09 1825 break; ^1da177e4c3f41 drivers/video/sis/sis_main.c Linus Torvalds 2005-04-16 1826 544393fe584d33 drivers/video/sis/sis_main.c Thomas Winischhofer 2005-09-09 1827 case SISFB_SET_TVPOSOFFSET: 544393fe584d33 drivers/video/sis/sis_main.c Thomas Winischhofer 2005-09-09 1828 if(get_user(gpu32, argp)) 544393fe584d33 drivers/video/sis/sis_main.c Thomas Winischhofer 2005-09-09 1829 return -EFAULT; ^1da177e4c3f41 drivers/video/sis/sis_main.c Linus Torvalds 2005-04-16 1830 544393fe584d33 drivers/video/sis/sis_main.c Thomas Winischhofer 2005-09-09 1831 sisfb_set_TVxposoffset(ivideo, ((int)(gpu32 >> 16)) - 32); 544393fe584d33 drivers/video/sis/sis_main.c Thomas Winischhofer 2005-09-09 1832 sisfb_set_TVyposoffset(ivideo, ((int)(gpu32 & 0xffff)) - 32); 544393fe584d33 drivers/video/sis/sis_main.c Thomas Winischhofer 2005-09-09 1833 break; ^1da177e4c3f41 drivers/video/sis/sis_main.c Linus Torvalds 2005-04-16 1834 544393fe584d33 drivers/video/sis/sis_main.c Thomas Winischhofer 2005-09-09 1835 case SISFB_GET_TVPOSOFFSET: 544393fe584d33 drivers/video/sis/sis_main.c Thomas Winischhofer 2005-09-09 1836 return put_user((u32)(((ivideo->tvxpos+32)<<16)|((ivideo->tvypos+32)&0xffff)), 544393fe584d33 drivers/video/sis/sis_main.c Thomas Winischhofer 2005-09-09 1837 argp); ^1da177e4c3f41 drivers/video/sis/sis_main.c Linus Torvalds 2005-04-16 1838 544393fe584d33 drivers/video/sis/sis_main.c Thomas Winischhofer 2005-09-09 1839 case SISFB_COMMAND: 544393fe584d33 drivers/video/sis/sis_main.c Thomas Winischhofer 2005-09-09 1840 if(copy_from_user(&ivideo->sisfb_command, (void __user *)arg, 544393fe584d33 drivers/video/sis/sis_main.c Thomas Winischhofer 2005-09-09 1841 sizeof(struct sisfb_cmd))) 544393fe584d33 drivers/video/sis/sis_main.c Thomas Winischhofer 2005-09-09 1842 return -EFAULT; ^1da177e4c3f41 drivers/video/sis/sis_main.c Linus Torvalds 2005-04-16 1843 544393fe584d33 drivers/video/sis/sis_main.c Thomas Winischhofer 2005-09-09 1844 sisfb_handle_command(ivideo, &ivideo->sisfb_command); ^1da177e4c3f41 drivers/video/sis/sis_main.c Linus Torvalds 2005-04-16 1845 544393fe584d33 drivers/video/sis/sis_main.c Thomas Winischhofer 2005-09-09 1846 if(copy_to_user((void __user *)arg, &ivideo->sisfb_command, 544393fe584d33 drivers/video/sis/sis_main.c Thomas Winischhofer 2005-09-09 1847 sizeof(struct sisfb_cmd))) 544393fe584d33 drivers/video/sis/sis_main.c Thomas Winischhofer 2005-09-09 1848 return -EFAULT; ^1da177e4c3f41 drivers/video/sis/sis_main.c Linus Torvalds 2005-04-16 1849 544393fe584d33 drivers/video/sis/sis_main.c Thomas Winischhofer 2005-09-09 1850 break; ^1da177e4c3f41 drivers/video/sis/sis_main.c Linus Torvalds 2005-04-16 1851 544393fe584d33 drivers/video/sis/sis_main.c Thomas Winischhofer 2005-09-09 1852 case SISFB_SET_LOCK: 544393fe584d33 drivers/video/sis/sis_main.c Thomas Winischhofer 2005-09-09 1853 if(get_user(gpu32, argp)) 544393fe584d33 drivers/video/sis/sis_main.c Thomas Winischhofer 2005-09-09 1854 return -EFAULT; ^1da177e4c3f41 drivers/video/sis/sis_main.c Linus Torvalds 2005-04-16 1855 544393fe584d33 drivers/video/sis/sis_main.c Thomas Winischhofer 2005-09-09 1856 ivideo->sisfblocked = (gpu32) ? 1 : 0; ^1da177e4c3f41 drivers/video/sis/sis_main.c Linus Torvalds 2005-04-16 1857 break; 544393fe584d33 drivers/video/sis/sis_main.c Thomas Winischhofer 2005-09-09 1858 544393fe584d33 drivers/video/sis/sis_main.c Thomas Winischhofer 2005-09-09 1859 default: 544393fe584d33 drivers/video/sis/sis_main.c Thomas Winischhofer 2005-09-09 1860 #ifdef SIS_NEW_CONFIG_COMPAT 544393fe584d33 drivers/video/sis/sis_main.c Thomas Winischhofer 2005-09-09 1861 return -ENOIOCTLCMD; 544393fe584d33 drivers/video/sis/sis_main.c Thomas Winischhofer 2005-09-09 1862 #else 544393fe584d33 drivers/video/sis/sis_main.c Thomas Winischhofer 2005-09-09 1863 return -EINVAL; 544393fe584d33 drivers/video/sis/sis_main.c Thomas Winischhofer 2005-09-09 1864 #endif ^1da177e4c3f41 drivers/video/sis/sis_main.c Linus Torvalds 2005-04-16 1865 } ^1da177e4c3f41 drivers/video/sis/sis_main.c Linus Torvalds 2005-04-16 1866 return 0; ^1da177e4c3f41 drivers/video/sis/sis_main.c Linus Torvalds 2005-04-16 1867 } ^1da177e4c3f41 drivers/video/sis/sis_main.c Linus Torvalds 2005-04-16 1868 :::::: The code at line 1718 was first introduced by commit :::::: 544393fe584d333480659a4bed30f5295355df11 [PATCH] sisfb update :::::: TO: Thomas Winischhofer :::::: CC: Linus Torvalds -- 0-DAY CI Kernel Test Service https://01.org/lkp