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-s021-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/net/ppp/ drivers/rtc/ drivers/spi/ drivers/staging/greybus/ drivers/usb/class/ drivers/usb/core/ drivers/usb/image/ drivers/watchdog/ mm/ net/rfkill/ sound/core/ If you fix the issue, kindly add following tag where applicable | Reported-by: kernel test robot sparse warnings: (new ones prefixed by >>) >> mm/mempolicy.c:1702:23: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected int [noderef] __user *__ptr_clean @@ got int * @@ mm/mempolicy.c:1702:23: sparse: expected int [noderef] __user *__ptr_clean mm/mempolicy.c:1702:23: sparse: got int * -- >> mm/migrate.c:1645:21: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected int [noderef] __user *__ptr_clean @@ got int * @@ mm/migrate.c:1645:21: sparse: expected int [noderef] __user *__ptr_clean mm/migrate.c:1645:21: sparse: got int * >> mm/migrate.c:1794:21: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void const [noderef] __user *[noderef] __user *__ptr_clean @@ got void const [noderef] __user ** @@ mm/migrate.c:1794:21: sparse: expected void const [noderef] __user *[noderef] __user *__ptr_clean mm/migrate.c:1794:21: sparse: got void const [noderef] __user ** >> mm/migrate.c:1796:21: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected int const [noderef] __user *__ptr_clean @@ got int const * @@ mm/migrate.c:1796:21: sparse: expected int const [noderef] __user *__ptr_clean mm/migrate.c:1796:21: sparse: got int const * >> mm/migrate.c:1930:21: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected unsigned int [noderef] __user *__ptr_clean @@ got unsigned int * @@ mm/migrate.c:1930:21: sparse: expected unsigned int [noderef] __user *__ptr_clean mm/migrate.c:1930:21: sparse: got unsigned int * mm/migrate.c:293:6: sparse: sparse: context imbalance in '__migration_entry_wait' - different lock contexts for basic block mm/migrate.c:773:9: sparse: sparse: context imbalance in '__buffer_migrate_folio' - different lock contexts for basic block -- >> net/rfkill/core.c:1354:21: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected unsigned int [noderef] __user *__ptr_clean @@ got unsigned int * @@ net/rfkill/core.c:1354:21: sparse: expected unsigned int [noderef] __user *__ptr_clean net/rfkill/core.c:1354:21: sparse: got unsigned int * -- >> drivers/rtc/rtc-abx80x.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-abx80x.c:527:24: sparse: expected unsigned int [noderef] __user *__ptr_clean drivers/rtc/rtc-abx80x.c:527:24: sparse: got unsigned int * -- >> sound/core/rawmidi.c:705:13: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected unsigned int [noderef] __user *__ptr_clean @@ got unsigned int * @@ sound/core/rawmidi.c:705:13: sparse: expected unsigned int [noderef] __user *__ptr_clean sound/core/rawmidi.c:705:13: sparse: got unsigned int * >> sound/core/rawmidi.c:707:13: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected int [noderef] __user *__ptr_clean @@ got int * @@ sound/core/rawmidi.c:707:13: sparse: expected int [noderef] __user *__ptr_clean sound/core/rawmidi.c:707:13: sparse: got int * sound/core/rawmidi.c:709:13: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected unsigned int [noderef] __user *__ptr_clean @@ got unsigned int * @@ sound/core/rawmidi.c:709:13: sparse: expected unsigned int [noderef] __user *__ptr_clean sound/core/rawmidi.c:709:13: sparse: got unsigned int * sound/core/rawmidi.c:912:24: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected int [noderef] __user *__ptr_clean @@ got int * @@ sound/core/rawmidi.c:912:24: sparse: expected int [noderef] __user *__ptr_clean sound/core/rawmidi.c:912:24: sparse: got int * sound/core/rawmidi.c:918:21: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected int [noderef] __user *__ptr_clean @@ got int * @@ sound/core/rawmidi.c:918:21: sparse: expected int [noderef] __user *__ptr_clean sound/core/rawmidi.c:918:21: sparse: got int * sound/core/rawmidi.c:930:21: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected unsigned int [noderef] __user *__ptr_clean @@ got unsigned int * @@ sound/core/rawmidi.c:930:21: sparse: expected unsigned int [noderef] __user *__ptr_clean sound/core/rawmidi.c:930:21: sparse: got unsigned int * sound/core/rawmidi.c:965:21: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected int [noderef] __user *__ptr_clean @@ got int * @@ sound/core/rawmidi.c:965:21: sparse: expected int [noderef] __user *__ptr_clean sound/core/rawmidi.c:965:21: sparse: got int * sound/core/rawmidi.c:980:21: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected int [noderef] __user *__ptr_clean @@ got int * @@ sound/core/rawmidi.c:980:21: sparse: expected int [noderef] __user *__ptr_clean sound/core/rawmidi.c:980:21: sparse: got int * sound/core/rawmidi.c:1014:21: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected int [noderef] __user *__ptr_clean @@ got int * @@ sound/core/rawmidi.c:1014:21: sparse: expected int [noderef] __user *__ptr_clean sound/core/rawmidi.c:1014:21: sparse: got int * sound/core/rawmidi.c:1028:21: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected int [noderef] __user *__ptr_clean @@ got int * @@ sound/core/rawmidi.c:1028:21: sparse: expected int [noderef] __user *__ptr_clean sound/core/rawmidi.c:1028:21: sparse: got int * sound/core/rawmidi.c:1036:21: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected int [noderef] __user *__ptr_clean @@ got int * @@ sound/core/rawmidi.c:1036:21: sparse: expected int [noderef] __user *__ptr_clean sound/core/rawmidi.c:1036:21: sparse: got int * sound/core/rawmidi.c: note: in included file: >> sound/core/rawmidi_compat.c:26:13: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected signed int [noderef] __user *__ptr_clean @@ got signed int * @@ sound/core/rawmidi_compat.c:26:13: sparse: expected signed int [noderef] __user *__ptr_clean sound/core/rawmidi_compat.c:26:13: sparse: got signed int * >> sound/core/rawmidi_compat.c:27:13: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected unsigned int [noderef] __user *__ptr_clean @@ got unsigned int * @@ sound/core/rawmidi_compat.c:27:13: sparse: expected unsigned int [noderef] __user *__ptr_clean sound/core/rawmidi_compat.c:27:13: sparse: got unsigned int * sound/core/rawmidi_compat.c:28:13: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected unsigned int [noderef] __user *__ptr_clean @@ got unsigned int * @@ sound/core/rawmidi_compat.c:28:13: sparse: expected unsigned int [noderef] __user *__ptr_clean sound/core/rawmidi_compat.c:28:13: sparse: got unsigned int * sound/core/rawmidi_compat.c:29:13: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected unsigned int [noderef] __user *__ptr_clean @@ got unsigned int * @@ sound/core/rawmidi_compat.c:29:13: sparse: expected unsigned int [noderef] __user *__ptr_clean sound/core/rawmidi_compat.c:29:13: sparse: got unsigned int * sound/core/rawmidi_compat.c:30:13: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected unsigned int [noderef] __user *__ptr_clean @@ got unsigned int * @@ sound/core/rawmidi_compat.c:30:13: sparse: expected unsigned int [noderef] __user *__ptr_clean sound/core/rawmidi_compat.c:30:13: sparse: got unsigned int * sound/core/rawmidi_compat.c:63:13: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected signed int [noderef] __user *__ptr_clean @@ got signed int * @@ sound/core/rawmidi_compat.c:63:13: sparse: expected signed int [noderef] __user *__ptr_clean sound/core/rawmidi_compat.c:63:13: sparse: got signed int * -- >> drivers/spi/spidev.c:380:26: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected unsigned char [noderef] __user *__ptr_clean @@ got unsigned char * @@ drivers/spi/spidev.c:380:26: sparse: expected unsigned char [noderef] __user *__ptr_clean drivers/spi/spidev.c:380:26: sparse: got unsigned char * >> drivers/spi/spidev.c:384:26: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected unsigned int [noderef] __user *__ptr_clean @@ got unsigned int * @@ drivers/spi/spidev.c:384:26: sparse: expected unsigned int [noderef] __user *__ptr_clean drivers/spi/spidev.c:384:26: sparse: got unsigned int * drivers/spi/spidev.c:388:26: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected unsigned char [noderef] __user *__ptr_clean @@ got unsigned char * @@ drivers/spi/spidev.c:388:26: sparse: expected unsigned char [noderef] __user *__ptr_clean drivers/spi/spidev.c:388:26: sparse: got unsigned char * drivers/spi/spidev.c:392:26: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected unsigned char [noderef] __user *__ptr_clean @@ got unsigned char * @@ drivers/spi/spidev.c:392:26: sparse: expected unsigned char [noderef] __user *__ptr_clean drivers/spi/spidev.c:392:26: sparse: got unsigned char * drivers/spi/spidev.c:395:26: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected unsigned int [noderef] __user *__ptr_clean @@ got unsigned int * @@ drivers/spi/spidev.c:395:26: sparse: expected unsigned int [noderef] __user *__ptr_clean drivers/spi/spidev.c:395:26: sparse: got unsigned int * drivers/spi/spidev.c:402:34: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected unsigned char [noderef] __user *__ptr_clean @@ got unsigned char * @@ drivers/spi/spidev.c:402:34: sparse: expected unsigned char [noderef] __user *__ptr_clean drivers/spi/spidev.c:402:34: sparse: got unsigned char * drivers/spi/spidev.c:404:34: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected unsigned int [noderef] __user *__ptr_clean @@ got unsigned int * @@ drivers/spi/spidev.c:404:34: sparse: expected unsigned int [noderef] __user *__ptr_clean drivers/spi/spidev.c:404:34: sparse: got unsigned int * drivers/spi/spidev.c:428:26: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected unsigned char [noderef] __user *__ptr_clean @@ got unsigned char * @@ drivers/spi/spidev.c:428:26: sparse: expected unsigned char [noderef] __user *__ptr_clean drivers/spi/spidev.c:428:26: sparse: got unsigned char * drivers/spi/spidev.c:445:26: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected unsigned char [noderef] __user *__ptr_clean @@ got unsigned char * @@ drivers/spi/spidev.c:445:26: sparse: expected unsigned char [noderef] __user *__ptr_clean drivers/spi/spidev.c:445:26: sparse: got unsigned char * drivers/spi/spidev.c:460:26: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected unsigned int [noderef] __user *__ptr_clean @@ got unsigned int * @@ drivers/spi/spidev.c:460:26: sparse: expected unsigned int [noderef] __user *__ptr_clean drivers/spi/spidev.c:460:26: sparse: got unsigned int * -- >> drivers/net/ppp/pppox.c:84:21: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected int [noderef] __user *__ptr_clean @@ got int * @@ drivers/net/ppp/pppox.c:84:21: sparse: expected int [noderef] __user *__ptr_clean drivers/net/ppp/pppox.c:84:21: sparse: got int * -- drivers/net/ppp/pppoe.c: note: in included file (through include/linux/if_pppox.h): include/uapi/linux/if_pppox.h:153:29: sparse: sparse: array of flexible structures >> drivers/net/ppp/pppoe.c:751:21: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected int [noderef] __user *__ptr_clean @@ got int * @@ drivers/net/ppp/pppoe.c:751:21: sparse: expected int [noderef] __user *__ptr_clean drivers/net/ppp/pppoe.c:751:21: sparse: got int * drivers/net/ppp/pppoe.c:765:21: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected int [noderef] __user *__ptr_clean @@ got int * @@ drivers/net/ppp/pppoe.c:765:21: sparse: expected int [noderef] __user *__ptr_clean drivers/net/ppp/pppoe.c:765:21: sparse: got int * drivers/net/ppp/pppoe.c:778:21: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected int [noderef] __user *__ptr_clean @@ got int * @@ drivers/net/ppp/pppoe.c:778:21: sparse: expected int [noderef] __user *__ptr_clean drivers/net/ppp/pppoe.c:778:21: sparse: got int * -- >> drivers/net/ppp/ppp_generic.c:1041:21: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected int [noderef] __user *__ptr_clean @@ got int * @@ drivers/net/ppp/ppp_generic.c:1041:21: sparse: expected int [noderef] __user *__ptr_clean drivers/net/ppp/ppp_generic.c:1041:21: sparse: got int * drivers/net/ppp/ppp_generic.c:1048:21: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected int [noderef] __user *__ptr_clean @@ got int * @@ drivers/net/ppp/ppp_generic.c:1048:21: sparse: expected int [noderef] __user *__ptr_clean drivers/net/ppp/ppp_generic.c:1048:21: sparse: got int * drivers/net/ppp/ppp_generic.c:1055:21: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected int [noderef] __user *__ptr_clean @@ got int * @@ drivers/net/ppp/ppp_generic.c:1055:21: sparse: expected int [noderef] __user *__ptr_clean drivers/net/ppp/ppp_generic.c:1055:21: sparse: got int * drivers/net/ppp/ppp_generic.c:1070:21: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected int [noderef] __user *__ptr_clean @@ got int * @@ drivers/net/ppp/ppp_generic.c:1070:21: sparse: expected int [noderef] __user *__ptr_clean drivers/net/ppp/ppp_generic.c:1070:21: sparse: got int * drivers/net/ppp/ppp_generic.c:742:29: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected int [noderef] __user *__ptr_clean @@ got int * @@ drivers/net/ppp/ppp_generic.c:742:29: sparse: expected int [noderef] __user *__ptr_clean drivers/net/ppp/ppp_generic.c:742:29: sparse: got int * drivers/net/ppp/ppp_generic.c:752:29: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected int [noderef] __user *__ptr_clean @@ got int * @@ drivers/net/ppp/ppp_generic.c:752:29: sparse: expected int [noderef] __user *__ptr_clean drivers/net/ppp/ppp_generic.c:752:29: sparse: got int * drivers/net/ppp/ppp_generic.c:797:21: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected int [noderef] __user *__ptr_clean @@ got int * @@ drivers/net/ppp/ppp_generic.c:797:21: sparse: expected int [noderef] __user *__ptr_clean drivers/net/ppp/ppp_generic.c:797:21: sparse: got int * drivers/net/ppp/ppp_generic.c:804:21: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected int [noderef] __user *__ptr_clean @@ got int * @@ drivers/net/ppp/ppp_generic.c:804:21: sparse: expected int [noderef] __user *__ptr_clean drivers/net/ppp/ppp_generic.c:804:21: sparse: got int * drivers/net/ppp/ppp_generic.c:821:21: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected int [noderef] __user *__ptr_clean @@ got int * @@ drivers/net/ppp/ppp_generic.c:821:21: sparse: expected int [noderef] __user *__ptr_clean drivers/net/ppp/ppp_generic.c:821:21: sparse: got int * drivers/net/ppp/ppp_generic.c:836:21: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected int [noderef] __user *__ptr_clean @@ got int * @@ drivers/net/ppp/ppp_generic.c:836:21: sparse: expected int [noderef] __user *__ptr_clean drivers/net/ppp/ppp_generic.c:836:21: sparse: got int * drivers/net/ppp/ppp_generic.c:842:21: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected int [noderef] __user *__ptr_clean @@ got int * @@ drivers/net/ppp/ppp_generic.c:842:21: sparse: expected int [noderef] __user *__ptr_clean drivers/net/ppp/ppp_generic.c:842:21: sparse: got int * drivers/net/ppp/ppp_generic.c:849:21: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected int [noderef] __user *__ptr_clean @@ got int * @@ drivers/net/ppp/ppp_generic.c:849:21: sparse: expected int [noderef] __user *__ptr_clean drivers/net/ppp/ppp_generic.c:849:21: sparse: got int * drivers/net/ppp/ppp_generic.c:871:21: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected int [noderef] __user *__ptr_clean @@ got int * @@ drivers/net/ppp/ppp_generic.c:871:21: sparse: expected int [noderef] __user *__ptr_clean drivers/net/ppp/ppp_generic.c:871:21: sparse: got int * drivers/net/ppp/ppp_generic.c:939:21: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected int [noderef] __user *__ptr_clean @@ got int * @@ drivers/net/ppp/ppp_generic.c:939:21: sparse: expected int [noderef] __user *__ptr_clean drivers/net/ppp/ppp_generic.c:939:21: sparse: got int * -- >> drivers/watchdog/pcwd_usb.c:375:37: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected char const [noderef] __user *__ptr_clean @@ got char const * @@ drivers/watchdog/pcwd_usb.c:375:37: sparse: expected char const [noderef] __user *__ptr_clean drivers/watchdog/pcwd_usb.c:375:37: sparse: got char const * >> drivers/watchdog/pcwd_usb.c:407:24: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected int [noderef] __user *__ptr_clean @@ got int * @@ drivers/watchdog/pcwd_usb.c:407:24: sparse: expected int [noderef] __user *__ptr_clean drivers/watchdog/pcwd_usb.c:407:24: sparse: got int * drivers/watchdog/pcwd_usb.c:416:24: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected int [noderef] __user *__ptr_clean @@ got int * @@ drivers/watchdog/pcwd_usb.c:416:24: sparse: expected int [noderef] __user *__ptr_clean drivers/watchdog/pcwd_usb.c:416:24: sparse: got int * drivers/watchdog/pcwd_usb.c:423:21: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected int [noderef] __user *__ptr_clean @@ got int * @@ drivers/watchdog/pcwd_usb.c:423:21: sparse: expected int [noderef] __user *__ptr_clean drivers/watchdog/pcwd_usb.c:423:21: sparse: got int * drivers/watchdog/pcwd_usb.c:447:21: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected int [noderef] __user *__ptr_clean @@ got int * @@ drivers/watchdog/pcwd_usb.c:447:21: sparse: expected int [noderef] __user *__ptr_clean drivers/watchdog/pcwd_usb.c:447:21: sparse: got int * drivers/watchdog/pcwd_usb.c:458:24: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected int [noderef] __user *__ptr_clean @@ got int * @@ drivers/watchdog/pcwd_usb.c:458:24: sparse: expected int [noderef] __user *__ptr_clean drivers/watchdog/pcwd_usb.c:458:24: sparse: got int * drivers/watchdog/pcwd_usb.c:467:24: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected int [noderef] __user *__ptr_clean @@ got int * @@ drivers/watchdog/pcwd_usb.c:467:24: sparse: expected int [noderef] __user *__ptr_clean drivers/watchdog/pcwd_usb.c:467:24: sparse: got int * -- >> drivers/staging/greybus/fw-management.c:493:21: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected unsigned int [noderef] __user *__ptr_clean @@ got unsigned int * @@ drivers/staging/greybus/fw-management.c:493:21: sparse: expected unsigned int [noderef] __user *__ptr_clean drivers/staging/greybus/fw-management.c:493:21: sparse: got unsigned int * -- >> drivers/usb/class/usbtmc.c:568:22: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected unsigned char [noderef] __user *__ptr_clean @@ got unsigned char * @@ drivers/usb/class/usbtmc.c:568:22: sparse: expected unsigned char [noderef] __user *__ptr_clean drivers/usb/class/usbtmc.c:568:22: sparse: got unsigned char * drivers/usb/class/usbtmc.c:589:22: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected unsigned char [noderef] __user *__ptr_clean @@ got unsigned char * @@ drivers/usb/class/usbtmc.c:589:22: sparse: expected unsigned char [noderef] __user *__ptr_clean drivers/usb/class/usbtmc.c:589:22: sparse: got unsigned char * >> drivers/usb/class/usbtmc.c:614:13: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected unsigned int [noderef] __user *__ptr_clean @@ got unsigned int * @@ drivers/usb/class/usbtmc.c:614:13: sparse: expected unsigned int [noderef] __user *__ptr_clean drivers/usb/class/usbtmc.c:614:13: sparse: got unsigned int * drivers/usb/class/usbtmc.c:1063:13: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected unsigned int [noderef] __user *__ptr_clean @@ got unsigned int * @@ drivers/usb/class/usbtmc.c:1063:13: sparse: expected unsigned int [noderef] __user *__ptr_clean drivers/usb/class/usbtmc.c:1063:13: sparse: got unsigned int * drivers/usb/class/usbtmc.c:1274:13: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected unsigned int [noderef] __user *__ptr_clean @@ got unsigned int * @@ drivers/usb/class/usbtmc.c:1274:13: sparse: expected unsigned int [noderef] __user *__ptr_clean drivers/usb/class/usbtmc.c:1274:13: sparse: got unsigned int * drivers/usb/class/usbtmc.c:1295:13: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected unsigned int [noderef] __user *__ptr_clean @@ got unsigned int * @@ drivers/usb/class/usbtmc.c:1295:13: sparse: expected unsigned int [noderef] __user *__ptr_clean drivers/usb/class/usbtmc.c:1295:13: sparse: got unsigned int * drivers/usb/class/usbtmc.c:1989:16: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected unsigned int [noderef] __user *__ptr_clean @@ got unsigned int * @@ drivers/usb/class/usbtmc.c:1989:16: sparse: expected unsigned int [noderef] __user *__ptr_clean drivers/usb/class/usbtmc.c:1989:16: sparse: got unsigned int * drivers/usb/class/usbtmc.c:2000:13: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected unsigned int [noderef] __user *__ptr_clean @@ got unsigned int * @@ drivers/usb/class/usbtmc.c:2000:13: sparse: expected unsigned int [noderef] __user *__ptr_clean drivers/usb/class/usbtmc.c:2000:13: sparse: got unsigned int * drivers/usb/class/usbtmc.c:2136:26: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected unsigned int [noderef] __user *__ptr_clean @@ got unsigned int * @@ drivers/usb/class/usbtmc.c:2136:26: sparse: expected unsigned int [noderef] __user *__ptr_clean drivers/usb/class/usbtmc.c:2136:26: sparse: got unsigned int * drivers/usb/class/usbtmc.c:2141:26: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected unsigned char [noderef] __user *__ptr_clean @@ got unsigned char * @@ drivers/usb/class/usbtmc.c:2141:26: sparse: expected unsigned char [noderef] __user *__ptr_clean drivers/usb/class/usbtmc.c:2141:26: sparse: got unsigned char * drivers/usb/class/usbtmc.c:2175:26: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected unsigned char [noderef] __user *__ptr_clean @@ got unsigned char * @@ drivers/usb/class/usbtmc.c:2175:26: sparse: expected unsigned char [noderef] __user *__ptr_clean drivers/usb/class/usbtmc.c:2175:26: sparse: got unsigned char * drivers/usb/class/usbtmc.c:2180:26: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected unsigned char [noderef] __user *__ptr_clean @@ got unsigned char * @@ drivers/usb/class/usbtmc.c:2180:26: sparse: expected unsigned char [noderef] __user *__ptr_clean drivers/usb/class/usbtmc.c:2180:26: sparse: got unsigned char * drivers/usb/class/usbtmc.c:2188:34: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected unsigned char [noderef] __user *__ptr_clean @@ got unsigned char * @@ drivers/usb/class/usbtmc.c:2188:34: sparse: expected unsigned char [noderef] __user *__ptr_clean drivers/usb/class/usbtmc.c:2188:34: sparse: got unsigned char * -- >> drivers/usb/core/devio.c:950:13: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected unsigned int [noderef] __user *__ptr_clean @@ got unsigned int * @@ drivers/usb/core/devio.c:950:13: sparse: expected unsigned int [noderef] __user *__ptr_clean drivers/usb/core/devio.c:950:13: sparse: got unsigned int * drivers/usb/core/devio.c:951:13: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected unsigned int [noderef] __user *__ptr_clean @@ got unsigned int * @@ drivers/usb/core/devio.c:951:13: sparse: expected unsigned int [noderef] __user *__ptr_clean drivers/usb/core/devio.c:951:13: sparse: got unsigned int * >> drivers/usb/core/devio.c:966:21: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected unsigned char [noderef] __user *__ptr_clean @@ got unsigned char * @@ drivers/usb/core/devio.c:966:21: sparse: expected unsigned char [noderef] __user *__ptr_clean drivers/usb/core/devio.c:966:21: sparse: got unsigned char * drivers/usb/core/devio.c:1389:13: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected unsigned int [noderef] __user *__ptr_clean @@ got unsigned int * @@ drivers/usb/core/devio.c:1389:13: sparse: expected unsigned int [noderef] __user *__ptr_clean drivers/usb/core/devio.c:1389:13: sparse: got unsigned int * drivers/usb/core/devio.c:1408:13: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected unsigned int [noderef] __user *__ptr_clean @@ got unsigned int * @@ drivers/usb/core/devio.c:1408:13: sparse: expected unsigned int [noderef] __user *__ptr_clean drivers/usb/core/devio.c:1408:13: sparse: got unsigned int * >> drivers/usb/core/devio.c:1540:13: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected int [noderef] __user *__ptr_clean @@ got int * @@ drivers/usb/core/devio.c:1540:13: sparse: expected int [noderef] __user *__ptr_clean drivers/usb/core/devio.c:1540:13: sparse: got int * drivers/usb/core/devio.c:2043:13: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected int [noderef] __user *__ptr_clean @@ got int * @@ drivers/usb/core/devio.c:2043:13: sparse: expected int [noderef] __user *__ptr_clean drivers/usb/core/devio.c:2043:13: sparse: got int * drivers/usb/core/devio.c:2045:13: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected int [noderef] __user *__ptr_clean @@ got int * @@ drivers/usb/core/devio.c:2045:13: sparse: expected int [noderef] __user *__ptr_clean drivers/usb/core/devio.c:2045:13: sparse: got int * drivers/usb/core/devio.c:2047:13: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected int [noderef] __user *__ptr_clean @@ got int * @@ drivers/usb/core/devio.c:2047:13: sparse: expected int [noderef] __user *__ptr_clean drivers/usb/core/devio.c:2047:13: sparse: got int * drivers/usb/core/devio.c:2052:29: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected unsigned int [noderef] __user *__ptr_clean @@ got unsigned int * @@ drivers/usb/core/devio.c:2052:29: sparse: expected unsigned int [noderef] __user *__ptr_clean drivers/usb/core/devio.c:2052:29: sparse: got unsigned int * drivers/usb/core/devio.c:2055:29: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected unsigned int [noderef] __user *__ptr_clean @@ got unsigned int * @@ drivers/usb/core/devio.c:2055:29: sparse: expected unsigned int [noderef] __user *__ptr_clean drivers/usb/core/devio.c:2055:29: sparse: got unsigned int * >> drivers/usb/core/devio.c:2061:13: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void [noderef] __user *[noderef] __user *__ptr_clean @@ got void [noderef] __user ** @@ drivers/usb/core/devio.c:2061:13: sparse: expected void [noderef] __user *[noderef] __user *__ptr_clean drivers/usb/core/devio.c:2061:13: sparse: got void [noderef] __user ** drivers/usb/core/devio.c:2133:13: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected unsigned int [noderef] __user *__ptr_clean @@ got unsigned int * @@ drivers/usb/core/devio.c:2133:13: sparse: expected unsigned int [noderef] __user *__ptr_clean drivers/usb/core/devio.c:2133:13: sparse: got unsigned int * drivers/usb/core/devio.c:2145:13: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected unsigned int [noderef] __user *__ptr_clean @@ got unsigned int * @@ drivers/usb/core/devio.c:2145:13: sparse: expected unsigned int [noderef] __user *__ptr_clean drivers/usb/core/devio.c:2145:13: sparse: got unsigned int * drivers/usb/core/devio.c:2146:13: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected unsigned int [noderef] __user *__ptr_clean @@ got unsigned int * @@ drivers/usb/core/devio.c:2146:13: sparse: expected unsigned int [noderef] __user *__ptr_clean drivers/usb/core/devio.c:2146:13: sparse: got unsigned int * drivers/usb/core/devio.c:2147:13: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected unsigned int [noderef] __user *__ptr_clean @@ got unsigned int * @@ drivers/usb/core/devio.c:2147:13: sparse: expected unsigned int [noderef] __user *__ptr_clean drivers/usb/core/devio.c:2147:13: sparse: got unsigned int * drivers/usb/core/devio.c:2148:13: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected unsigned int [noderef] __user *__ptr_clean @@ got unsigned int * @@ drivers/usb/core/devio.c:2148:13: sparse: expected unsigned int [noderef] __user *__ptr_clean drivers/usb/core/devio.c:2148:13: sparse: got unsigned int * >> drivers/usb/core/devio.c:2214:13: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected signed int [noderef] __user *__ptr_clean @@ got signed int * @@ drivers/usb/core/devio.c:2214:13: sparse: expected signed int [noderef] __user *__ptr_clean drivers/usb/core/devio.c:2214:13: sparse: got signed int * drivers/usb/core/devio.c:2216:13: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected signed int [noderef] __user *__ptr_clean @@ got signed int * @@ drivers/usb/core/devio.c:2216:13: sparse: expected signed int [noderef] __user *__ptr_clean drivers/usb/core/devio.c:2216:13: sparse: got signed int * drivers/usb/core/devio.c:2218:13: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected signed int [noderef] __user *__ptr_clean @@ got signed int * @@ drivers/usb/core/devio.c:2218:13: sparse: expected signed int [noderef] __user *__ptr_clean drivers/usb/core/devio.c:2218:13: sparse: got signed int * drivers/usb/core/devio.c:2223:29: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected unsigned int [noderef] __user *__ptr_clean @@ got unsigned int * @@ drivers/usb/core/devio.c:2223:29: sparse: expected unsigned int [noderef] __user *__ptr_clean drivers/usb/core/devio.c:2223:29: sparse: got unsigned int * drivers/usb/core/devio.c:2226:29: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected unsigned int [noderef] __user *__ptr_clean @@ got unsigned int * @@ drivers/usb/core/devio.c:2226:29: sparse: expected unsigned int [noderef] __user *__ptr_clean drivers/usb/core/devio.c:2226:29: sparse: got unsigned int * drivers/usb/core/devio.c:2232:13: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected unsigned int [noderef] __user *__ptr_clean @@ got unsigned int * @@ drivers/usb/core/devio.c:2232:13: sparse: expected unsigned int [noderef] __user *__ptr_clean drivers/usb/core/devio.c:2232:13: sparse: got unsigned int * drivers/usb/core/devio.c:2288:13: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected unsigned int [noderef] __user *__ptr_clean @@ got unsigned int * @@ drivers/usb/core/devio.c:2288:13: sparse: expected unsigned int [noderef] __user *__ptr_clean drivers/usb/core/devio.c:2288:13: sparse: got unsigned int * drivers/usb/core/devio.c:2298:13: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected unsigned int [noderef] __user *__ptr_clean @@ got unsigned int * @@ drivers/usb/core/devio.c:2298:13: sparse: expected unsigned int [noderef] __user *__ptr_clean drivers/usb/core/devio.c:2298:13: sparse: got unsigned int * drivers/usb/core/devio.c:2414:13: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected unsigned int [noderef] __user *__ptr_clean @@ got unsigned int * @@ drivers/usb/core/devio.c:2414:13: sparse: expected unsigned int [noderef] __user *__ptr_clean drivers/usb/core/devio.c:2414:13: sparse: got unsigned int * drivers/usb/core/devio.c:2427:13: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected unsigned int [noderef] __user *__ptr_clean @@ got unsigned int * @@ drivers/usb/core/devio.c:2427:13: sparse: expected unsigned int [noderef] __user *__ptr_clean drivers/usb/core/devio.c:2427:13: sparse: got unsigned int * drivers/usb/core/devio.c:2445:13: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected unsigned int [noderef] __user *__ptr_clean @@ got unsigned int * @@ drivers/usb/core/devio.c:2445:13: sparse: expected unsigned int [noderef] __user *__ptr_clean drivers/usb/core/devio.c:2445:13: sparse: got unsigned int * -- >> drivers/usb/image/mdc800.c:806:20: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected char const [noderef] __user *__ptr_clean @@ got char const * @@ drivers/usb/image/mdc800.c:806:20: sparse: expected char const [noderef] __user *__ptr_clean drivers/usb/image/mdc800.c:806:20: sparse: got char const * vim +1702 mm/mempolicy.c b6e9b0babb7a02 Dominik Brodowski 2018-03-17 1679 39743889aaf767 Christoph Lameter 2006-01-08 1680 8bccd85ffbaf8f Christoph Lameter 2005-10-29 1681 /* Retrieve NUMA policy */ af03c4acb728dd Dominik Brodowski 2018-03-17 1682 static int kernel_get_mempolicy(int __user *policy, af03c4acb728dd Dominik Brodowski 2018-03-17 1683 unsigned long __user *nmask, af03c4acb728dd Dominik Brodowski 2018-03-17 1684 unsigned long maxnode, af03c4acb728dd Dominik Brodowski 2018-03-17 1685 unsigned long addr, af03c4acb728dd Dominik Brodowski 2018-03-17 1686 unsigned long flags) 8bccd85ffbaf8f Christoph Lameter 2005-10-29 1687 { dbcb0f19c877df Adrian Bunk 2007-10-16 1688 int err; 3f649ab728cda8 Kees Cook 2020-06-03 1689 int pval; 8bccd85ffbaf8f Christoph Lameter 2005-10-29 1690 nodemask_t nodes; 8bccd85ffbaf8f Christoph Lameter 2005-10-29 1691 050c17f239fd53 Ralph Campbell 2019-02-20 1692 if (nmask != NULL && maxnode < nr_node_ids) 8bccd85ffbaf8f Christoph Lameter 2005-10-29 1693 return -EINVAL; 8bccd85ffbaf8f Christoph Lameter 2005-10-29 1694 526a694aa8764d Kirill A. Shutemov 2022-06-08 1695 addr = untagged_addr(current->mm, addr); 4605f057aace92 Wenchao Hao 2020-08-11 1696 8bccd85ffbaf8f Christoph Lameter 2005-10-29 1697 err = do_get_mempolicy(&pval, &nodes, addr, flags); 8bccd85ffbaf8f Christoph Lameter 2005-10-29 1698 8bccd85ffbaf8f Christoph Lameter 2005-10-29 1699 if (err) 8bccd85ffbaf8f Christoph Lameter 2005-10-29 1700 return err; 8bccd85ffbaf8f Christoph Lameter 2005-10-29 1701 8bccd85ffbaf8f Christoph Lameter 2005-10-29 @1702 if (policy && put_user(pval, policy)) 8bccd85ffbaf8f Christoph Lameter 2005-10-29 1703 return -EFAULT; 8bccd85ffbaf8f Christoph Lameter 2005-10-29 1704 8bccd85ffbaf8f Christoph Lameter 2005-10-29 1705 if (nmask) 8bccd85ffbaf8f Christoph Lameter 2005-10-29 1706 err = copy_nodes_to_user(nmask, maxnode, &nodes); 8bccd85ffbaf8f Christoph Lameter 2005-10-29 1707 8bccd85ffbaf8f Christoph Lameter 2005-10-29 1708 return err; 8bccd85ffbaf8f Christoph Lameter 2005-10-29 1709 } 8bccd85ffbaf8f Christoph Lameter 2005-10-29 1710 :::::: The code at line 1702 was first introduced by commit :::::: 8bccd85ffbaf8ff1448d1235fa6594e207695531 [PATCH] Implement sys_* do_* layering in the memory policy layer. :::::: TO: Christoph Lameter :::::: CC: Linus Torvalds -- 0-DAY CI Kernel Test Service https://01.org/lkp