All of lore.kernel.org
 help / color / mirror / Atom feed
From: kernel test robot <lkp@intel.com>
To: Faycal Benmlih <faycal.benmlih@intel.com>
Cc: kbuild-all@lists.01.org, linux-kernel@vger.kernel.org
Subject: [mchinth: sep_socwatch_linux_5_9 19/41] drivers/platform/x86/sepdk/sep/linuxos.c:244:26: sparse: sparse: incorrect type in argument 1 (different address spaces)
Date: Sat, 31 Jul 2021 14:05:01 +0800	[thread overview]
Message-ID: <202107311455.guGmXIq7-lkp@intel.com> (raw)

[-- Attachment #1: Type: text/plain, Size: 22315 bytes --]

Hi Faycal,

First bad commit (maybe != root cause):

tree:   https://github.com/mchinth/linux  sep_socwatch_linux_5_9
head:   7296486889985b9d9895a39f551764a4b0425bea
commit: e65547c5a9bb37e907edecece4da7cb12dadea96 [19/41] platform/x86: Use $(srctree) instead of $(src) to adapt to kbuild regression
config: i386-randconfig-s032-20210730 (attached as .config)
compiler: gcc-10 (Ubuntu 10.3.0-1ubuntu1~20.04) 10.3.0
reproduce:
        # apt-get install sparse
        # sparse version: v0.6.3-341-g8af24329-dirty
        # https://github.com/mchinth/linux/commit/e65547c5a9bb37e907edecece4da7cb12dadea96
        git remote add mchinth https://github.com/mchinth/linux
        git fetch --no-tags mchinth  sep_socwatch_linux_5_9
        git checkout e65547c5a9bb37e907edecece4da7cb12dadea96
        # save the attached .config to linux build tree
        make W=1 C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' ARCH=i386 

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>


sparse warnings: (new ones prefixed by >>)
   drivers/platform/x86/sepdk/sep/linuxos.c: note: in included file (through drivers/platform/x86/sepdk/inc/apic.h):
   /usr/lib/gcc/x86_64-linux-gnu/10/include/stddef.h:406:9: sparse: sparse: preprocessor token offsetof redefined
   drivers/platform/x86/sepdk/sep/linuxos.c: note: in included file (through include/uapi/linux/posix_types.h, include/uapi/linux/types.h, include/linux/types.h, ...):
   include/linux/stddef.h:17:9: sparse: this was the original definition
>> drivers/platform/x86/sepdk/sep/linuxos.c:244:26: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected struct path const * @@     got struct path [noderef] __rcu * @@
   drivers/platform/x86/sepdk/sep/linuxos.c:244:26: sparse:     expected struct path const *
   drivers/platform/x86/sepdk/sep/linuxos.c:244:26: sparse:     got struct path [noderef] __rcu *
>> drivers/platform/x86/sepdk/sep/linuxos.c:430:36: sparse: sparse: cast removes address space '__user' of expression
   drivers/platform/x86/sepdk/sep/linuxos.c:503:44: sparse: sparse: cast removes address space '__user' of expression
   drivers/platform/x86/sepdk/sep/linuxos.c:447:33: sparse: sparse: dereference of noderef expression
   drivers/platform/x86/sepdk/sep/linuxos.c:889:48: sparse: sparse: dereference of noderef expression

vim +244 drivers/platform/x86/sepdk/sep/linuxos.c

d605aabab41663 Jon Moeller          2018-11-13  215  
d605aabab41663 Jon Moeller          2018-11-13  216  #ifdef DRV_MM_EXE_FILE_PRESENT
d605aabab41663 Jon Moeller          2018-11-13  217  static DRV_BOOL linuxos_Equal_VM_Exe_File(struct vm_area_struct *vma)
d605aabab41663 Jon Moeller          2018-11-13  218  {
d605aabab41663 Jon Moeller          2018-11-13  219  	S8 name_vm_file[MAXNAMELEN];
d605aabab41663 Jon Moeller          2018-11-13  220  	S8 name_exe_file[MAXNAMELEN];
d605aabab41663 Jon Moeller          2018-11-13  221  	S8 *pname_vm_file = NULL;
d605aabab41663 Jon Moeller          2018-11-13  222  	S8 *pname_exe_file = NULL;
d605aabab41663 Jon Moeller          2018-11-13  223  	DRV_BOOL res;
d605aabab41663 Jon Moeller          2018-11-13  224  
d605aabab41663 Jon Moeller          2018-11-13  225  	SEP_DRV_LOG_TRACE_IN("FMA: %p.", vma);
d605aabab41663 Jon Moeller          2018-11-13  226  
d605aabab41663 Jon Moeller          2018-11-13  227  	if (vma == NULL) {
d605aabab41663 Jon Moeller          2018-11-13  228  		SEP_DRV_LOG_TRACE_OUT("FALSE (!vma).");
d605aabab41663 Jon Moeller          2018-11-13  229  		return FALSE;
d605aabab41663 Jon Moeller          2018-11-13  230  	}
d605aabab41663 Jon Moeller          2018-11-13  231  
d605aabab41663 Jon Moeller          2018-11-13  232  	if (vma->vm_file == NULL) {
d605aabab41663 Jon Moeller          2018-11-13  233  		SEP_DRV_LOG_TRACE_OUT("FALSE (!vma->vm_file).");
d605aabab41663 Jon Moeller          2018-11-13  234  		return FALSE;
d605aabab41663 Jon Moeller          2018-11-13  235  	}
d605aabab41663 Jon Moeller          2018-11-13  236  
d605aabab41663 Jon Moeller          2018-11-13  237  	if (vma->vm_mm->exe_file == NULL) {
d605aabab41663 Jon Moeller          2018-11-13  238  		SEP_DRV_LOG_TRACE_OUT("FALSE (!vma->vm_mm->exe_file).");
d605aabab41663 Jon Moeller          2018-11-13  239  		return FALSE;
d605aabab41663 Jon Moeller          2018-11-13  240  	}
d605aabab41663 Jon Moeller          2018-11-13  241  
d605aabab41663 Jon Moeller          2018-11-13  242  	pname_vm_file = D_PATH(vma->vm_file,
d605aabab41663 Jon Moeller          2018-11-13  243  			name_vm_file, MAXNAMELEN);
d605aabab41663 Jon Moeller          2018-11-13 @244  	pname_exe_file = D_PATH(vma->vm_mm->exe_file,
d605aabab41663 Jon Moeller          2018-11-13  245  			name_exe_file, MAXNAMELEN);
d605aabab41663 Jon Moeller          2018-11-13  246  	res = strcmp(pname_vm_file, pname_exe_file) == 0;
d605aabab41663 Jon Moeller          2018-11-13  247  
d605aabab41663 Jon Moeller          2018-11-13  248  	SEP_DRV_LOG_TRACE_OUT("Res: %u.", res);
d605aabab41663 Jon Moeller          2018-11-13  249  	return res;
d605aabab41663 Jon Moeller          2018-11-13  250  }
d605aabab41663 Jon Moeller          2018-11-13  251  #endif
d605aabab41663 Jon Moeller          2018-11-13  252  
d605aabab41663 Jon Moeller          2018-11-13  253  /* ------------------------------------------------------------------------- */
d605aabab41663 Jon Moeller          2018-11-13  254  /*!
d605aabab41663 Jon Moeller          2018-11-13  255   * @fn          linuxos_Map_Kernel_Modules (void)
d605aabab41663 Jon Moeller          2018-11-13  256   *
d605aabab41663 Jon Moeller          2018-11-13  257   * @brief       Obtain kernel module details from modules list
d605aabab41663 Jon Moeller          2018-11-13  258   *              and map the details to the module record.
d605aabab41663 Jon Moeller          2018-11-13  259   *
d605aabab41663 Jon Moeller          2018-11-13  260   * @return      S32       VT_SUCCESS on success
d605aabab41663 Jon Moeller          2018-11-13  261   */
d605aabab41663 Jon Moeller          2018-11-13  262  static S32 linuxos_Map_Kernel_Modules(void)
d605aabab41663 Jon Moeller          2018-11-13  263  {
1f57010172d61a Manisha Chinthapally 2018-11-13  264  #if defined(CONFIG_MODULES)
d605aabab41663 Jon Moeller          2018-11-13  265  	struct module *current_module;
d605aabab41663 Jon Moeller          2018-11-13  266  	struct list_head *modules;
d605aabab41663 Jon Moeller          2018-11-13  267  	U16 exec_mode;
d605aabab41663 Jon Moeller          2018-11-13  268  	unsigned long long addr;
d605aabab41663 Jon Moeller          2018-11-13  269  	unsigned long long size;
d605aabab41663 Jon Moeller          2018-11-13  270  #if defined(CONFIG_RANDOMIZE_BASE)
d605aabab41663 Jon Moeller          2018-11-13  271  	unsigned long dyn_addr = 0;
d605aabab41663 Jon Moeller          2018-11-13  272  #endif
d605aabab41663 Jon Moeller          2018-11-13  273  
d605aabab41663 Jon Moeller          2018-11-13  274  	SEP_DRV_LOG_TRACE_IN("");
d605aabab41663 Jon Moeller          2018-11-13  275  
1f57010172d61a Manisha Chinthapally 2018-11-13  276  
d605aabab41663 Jon Moeller          2018-11-13  277  	mutex_lock(&module_mutex);
d605aabab41663 Jon Moeller          2018-11-13  278  
d605aabab41663 Jon Moeller          2018-11-13  279  #if defined(DRV_EM64T)
d605aabab41663 Jon Moeller          2018-11-13  280  	addr = (unsigned long)__START_KERNEL_map;
d605aabab41663 Jon Moeller          2018-11-13  281  	exec_mode = MODE_64BIT;
d605aabab41663 Jon Moeller          2018-11-13  282  #elif defined(DRV_IA32)
d605aabab41663 Jon Moeller          2018-11-13  283  	addr = (unsigned long)PAGE_OFFSET;
d605aabab41663 Jon Moeller          2018-11-13  284  	exec_mode = MODE_32BIT;
d605aabab41663 Jon Moeller          2018-11-13  285  #else
d605aabab41663 Jon Moeller          2018-11-13  286  	exec_mode = MODE_UNKNOWN;
d605aabab41663 Jon Moeller          2018-11-13  287  #endif
d605aabab41663 Jon Moeller          2018-11-13  288  
d605aabab41663 Jon Moeller          2018-11-13  289  	SEP_DRV_LOG_TRACE(
d605aabab41663 Jon Moeller          2018-11-13  290  		"     kernel module            address           size");
d605aabab41663 Jon Moeller          2018-11-13  291  	SEP_DRV_LOG_TRACE(
d605aabab41663 Jon Moeller          2018-11-13  292  		"  -------------------    ------------------    -------");
d605aabab41663 Jon Moeller          2018-11-13  293  
d605aabab41663 Jon Moeller          2018-11-13  294  	addr += (CONFIG_PHYSICAL_START + (CONFIG_PHYSICAL_ALIGN - 1)) &
d605aabab41663 Jon Moeller          2018-11-13  295  		~(CONFIG_PHYSICAL_ALIGN - 1);
d605aabab41663 Jon Moeller          2018-11-13  296  	size = (unsigned long)KERNEL_IMAGE_SIZE -
d605aabab41663 Jon Moeller          2018-11-13  297  	       ((CONFIG_PHYSICAL_START + (CONFIG_PHYSICAL_ALIGN - 1)) &
d605aabab41663 Jon Moeller          2018-11-13  298  		~(CONFIG_PHYSICAL_ALIGN - 1)) -
d605aabab41663 Jon Moeller          2018-11-13  299  	       1;
d605aabab41663 Jon Moeller          2018-11-13  300  
d605aabab41663 Jon Moeller          2018-11-13  301  #if defined(CONFIG_RANDOMIZE_BASE)
d605aabab41663 Jon Moeller          2018-11-13  302  	if (!dyn_addr) {
d605aabab41663 Jon Moeller          2018-11-13  303  		dyn_addr = (unsigned long)UTILITY_Find_Symbol("_text");
d605aabab41663 Jon Moeller          2018-11-13  304  		if (!dyn_addr) {
d605aabab41663 Jon Moeller          2018-11-13  305  			dyn_addr = (unsigned long)UTILITY_Find_Symbol("_stext");
d605aabab41663 Jon Moeller          2018-11-13  306  		}
d605aabab41663 Jon Moeller          2018-11-13  307  
d605aabab41663 Jon Moeller          2018-11-13  308  		if (dyn_addr && dyn_addr > addr) {
d605aabab41663 Jon Moeller          2018-11-13  309  			dyn_addr &= ~(PAGE_SIZE - 1);
d605aabab41663 Jon Moeller          2018-11-13  310  			size -= (dyn_addr - addr);
d605aabab41663 Jon Moeller          2018-11-13  311  			addr = dyn_addr;
d605aabab41663 Jon Moeller          2018-11-13  312  		} else {
d605aabab41663 Jon Moeller          2018-11-13  313  			SEP_DRV_LOG_WARNING_TRACE_OUT(
d605aabab41663 Jon Moeller          2018-11-13  314  				"Could not find the kernel start address!");
d605aabab41663 Jon Moeller          2018-11-13  315  		}
d605aabab41663 Jon Moeller          2018-11-13  316  	}
d605aabab41663 Jon Moeller          2018-11-13  317  #endif
d605aabab41663 Jon Moeller          2018-11-13  318  
d605aabab41663 Jon Moeller          2018-11-13  319  	linuxos_Load_Image_Notify_Routine(
d605aabab41663 Jon Moeller          2018-11-13  320  		"vmlinux", addr, size, 0, 0, 0,
d605aabab41663 Jon Moeller          2018-11-13  321  		LOPTS_1ST_MODREC | LOPTS_GLOBAL_MODULE | LOPTS_EXE, exec_mode,
d605aabab41663 Jon Moeller          2018-11-13  322  		-1, MR_SEG_NUM, 1, OS_ID_NATIVE);
d605aabab41663 Jon Moeller          2018-11-13  323  
d605aabab41663 Jon Moeller          2018-11-13  324  	SEP_DRV_LOG_TRACE("kmodule: %20s    0x%llx    0x%llx.", "vmlinux", addr,
d605aabab41663 Jon Moeller          2018-11-13  325  			  size);
d605aabab41663 Jon Moeller          2018-11-13  326  
d605aabab41663 Jon Moeller          2018-11-13  327  #if defined(DRV_SEP_ACRN_ON)
d605aabab41663 Jon Moeller          2018-11-13  328  	linuxos_Load_Image_Notify_Routine(
d605aabab41663 Jon Moeller          2018-11-13  329  		"VMM", 0x0, (U32)0xffffffffffffffffLL, 0, 0, 0,
d605aabab41663 Jon Moeller          2018-11-13  330  		LOPTS_1ST_MODREC | LOPTS_GLOBAL_MODULE | LOPTS_EXE, exec_mode,
d605aabab41663 Jon Moeller          2018-11-13  331  		-1, MR_SEG_NUM, 1, OS_ID_ACORN);
d605aabab41663 Jon Moeller          2018-11-13  332  #endif
d605aabab41663 Jon Moeller          2018-11-13  333  
d605aabab41663 Jon Moeller          2018-11-13  334  	for (modules = (struct list_head *)(THIS_MODULE->list.prev);
d605aabab41663 Jon Moeller          2018-11-13  335  	     (unsigned long)modules > MODULES_VADDR; modules = modules->prev)
d605aabab41663 Jon Moeller          2018-11-13  336  		;
d605aabab41663 Jon Moeller          2018-11-13  337  	list_for_each_entry (current_module, modules, list) {
d605aabab41663 Jon Moeller          2018-11-13  338  		char *name = current_module->name;
d605aabab41663 Jon Moeller          2018-11-13  339  #if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 5, 0) ||                           \
d605aabab41663 Jon Moeller          2018-11-13  340  	defined(SEP_CONFIG_MODULE_LAYOUT)
d605aabab41663 Jon Moeller          2018-11-13  341  		addr = (unsigned long)current_module->core_layout.base;
d605aabab41663 Jon Moeller          2018-11-13  342  		size = current_module->core_layout.size;
d605aabab41663 Jon Moeller          2018-11-13  343  #else
d605aabab41663 Jon Moeller          2018-11-13  344  		addr = (unsigned long)current_module->module_core;
d605aabab41663 Jon Moeller          2018-11-13  345  		size = current_module->core_size;
d605aabab41663 Jon Moeller          2018-11-13  346  #endif
d605aabab41663 Jon Moeller          2018-11-13  347  
d605aabab41663 Jon Moeller          2018-11-13  348  		if (module_is_live(current_module)) {
d605aabab41663 Jon Moeller          2018-11-13  349  			SEP_DRV_LOG_TRACE("kmodule: %20s    0x%llx    0x%llx.",
d605aabab41663 Jon Moeller          2018-11-13  350  					  name, addr, size);
d605aabab41663 Jon Moeller          2018-11-13  351  			linuxos_Load_Image_Notify_Routine(
d605aabab41663 Jon Moeller          2018-11-13  352  				name, addr, size, 0, 0, 0, LOPTS_GLOBAL_MODULE,
d605aabab41663 Jon Moeller          2018-11-13  353  				exec_mode, -1, 0, 1, OS_ID_NATIVE);
d605aabab41663 Jon Moeller          2018-11-13  354  		}
d605aabab41663 Jon Moeller          2018-11-13  355  	}
d605aabab41663 Jon Moeller          2018-11-13  356  
d605aabab41663 Jon Moeller          2018-11-13  357  	mutex_unlock(&module_mutex);
d605aabab41663 Jon Moeller          2018-11-13  358  #endif
d605aabab41663 Jon Moeller          2018-11-13  359  	SEP_DRV_LOG_TRACE_OUT("OS_SUCCESS");
d605aabab41663 Jon Moeller          2018-11-13  360  	return OS_SUCCESS;
d605aabab41663 Jon Moeller          2018-11-13  361  }
d605aabab41663 Jon Moeller          2018-11-13  362  
d605aabab41663 Jon Moeller          2018-11-13  363  //
d605aabab41663 Jon Moeller          2018-11-13  364  // Register the module for a process.  The task_struct and mm
d605aabab41663 Jon Moeller          2018-11-13  365  // should be locked if necessary to make sure they don't change while we're
d605aabab41663 Jon Moeller          2018-11-13  366  // iterating...
d605aabab41663 Jon Moeller          2018-11-13  367  // Used as a service routine
d605aabab41663 Jon Moeller          2018-11-13  368  //
d605aabab41663 Jon Moeller          2018-11-13  369  static S32 linuxos_VMA_For_Process(struct task_struct *p,
d605aabab41663 Jon Moeller          2018-11-13  370  				   struct vm_area_struct *vma, S32 load_event,
d605aabab41663 Jon Moeller          2018-11-13  371  				   U32 *first)
d605aabab41663 Jon Moeller          2018-11-13  372  {
d605aabab41663 Jon Moeller          2018-11-13  373  	U32 options = 0;
d605aabab41663 Jon Moeller          2018-11-13  374  	S8 name[MAXNAMELEN];
d605aabab41663 Jon Moeller          2018-11-13  375  	S8 *pname = NULL;
d605aabab41663 Jon Moeller          2018-11-13  376  	U32 ppid = 0;
d605aabab41663 Jon Moeller          2018-11-13  377  	U16 exec_mode;
d605aabab41663 Jon Moeller          2018-11-13  378  	U64 page_offset = 0;
d605aabab41663 Jon Moeller          2018-11-13  379  
d605aabab41663 Jon Moeller          2018-11-13  380  #if defined(DRV_ANDROID)
d605aabab41663 Jon Moeller          2018-11-13  381  	char andr_app[TASK_COMM_LEN];
d605aabab41663 Jon Moeller          2018-11-13  382  #endif
d605aabab41663 Jon Moeller          2018-11-13  383  
d605aabab41663 Jon Moeller          2018-11-13  384  	SEP_DRV_LOG_NOTIFICATION_TRACE_IN(
d605aabab41663 Jon Moeller          2018-11-13  385  		load_event == 1, "P = %p, vma = %p, load_event: %d, first: %p.",
d605aabab41663 Jon Moeller          2018-11-13  386  		p, vma, load_event, first);
d605aabab41663 Jon Moeller          2018-11-13  387  
d605aabab41663 Jon Moeller          2018-11-13  388  	if (p == NULL) {
d605aabab41663 Jon Moeller          2018-11-13  389  		SEP_DRV_LOG_NOTIFICATION_ERROR(load_event == 1,
d605aabab41663 Jon Moeller          2018-11-13  390  					       "Skipped p=NULL.");
d605aabab41663 Jon Moeller          2018-11-13  391  		SEP_DRV_LOG_NOTIFICATION_TRACE_OUT(load_event == 1,
d605aabab41663 Jon Moeller          2018-11-13  392  						   "OS_SUCCESS (!p).");
d605aabab41663 Jon Moeller          2018-11-13  393  		return OS_SUCCESS;
d605aabab41663 Jon Moeller          2018-11-13  394  	}
d605aabab41663 Jon Moeller          2018-11-13  395  
d605aabab41663 Jon Moeller          2018-11-13  396  	if (vma->vm_file)
d605aabab41663 Jon Moeller          2018-11-13  397  		pname = D_PATH(vma->vm_file, name, MAXNAMELEN);
d605aabab41663 Jon Moeller          2018-11-13  398  
d605aabab41663 Jon Moeller          2018-11-13  399  	page_offset = vma->vm_pgoff;
d605aabab41663 Jon Moeller          2018-11-13  400  
d605aabab41663 Jon Moeller          2018-11-13  401  	if (!IS_ERR(pname) && pname != NULL) {
d605aabab41663 Jon Moeller          2018-11-13  402  		SEP_DRV_LOG_NOTIFICATION_TRACE(load_event == 1,
d605aabab41663 Jon Moeller          2018-11-13  403  					       "enum: %s, %d, %lx, %lx %llu.",
d605aabab41663 Jon Moeller          2018-11-13  404  					       pname, p->pid, vma->vm_start,
d605aabab41663 Jon Moeller          2018-11-13  405  					       (vma->vm_end - vma->vm_start),
d605aabab41663 Jon Moeller          2018-11-13  406  					       page_offset);
d605aabab41663 Jon Moeller          2018-11-13  407  
d605aabab41663 Jon Moeller          2018-11-13  408  		// if the VM_EXECUTABLE flag is set then this is the module
d605aabab41663 Jon Moeller          2018-11-13  409  		// that is being used to name the module
d605aabab41663 Jon Moeller          2018-11-13  410  		if (DRV_VM_MOD_EXECUTABLE(vma)) {
d605aabab41663 Jon Moeller          2018-11-13  411  			options |= LOPTS_EXE;
d605aabab41663 Jon Moeller          2018-11-13  412  #if defined(DRV_ANDROID)
d605aabab41663 Jon Moeller          2018-11-13  413  			if (!strcmp(pname, "/system/bin/app_process") ||
d605aabab41663 Jon Moeller          2018-11-13  414  			    !strcmp(pname, "/system/bin/app_process32") ||
d605aabab41663 Jon Moeller          2018-11-13  415  			    !strcmp(pname, "/system/bin/app_process64")) {
d605aabab41663 Jon Moeller          2018-11-13  416  				memset(andr_app, '\0', TASK_COMM_LEN);
d605aabab41663 Jon Moeller          2018-11-13  417  				strncpy(andr_app, p->comm, TASK_COMM_LEN);
d605aabab41663 Jon Moeller          2018-11-13  418  				pname = andr_app;
d605aabab41663 Jon Moeller          2018-11-13  419  			}
d605aabab41663 Jon Moeller          2018-11-13  420  #endif
d605aabab41663 Jon Moeller          2018-11-13  421  		}
d605aabab41663 Jon Moeller          2018-11-13  422  		// mark the first of the bunch...
d605aabab41663 Jon Moeller          2018-11-13  423  		if (*first == 1) {
d605aabab41663 Jon Moeller          2018-11-13  424  			options |= LOPTS_1ST_MODREC;
d605aabab41663 Jon Moeller          2018-11-13  425  			*first = 0;
d605aabab41663 Jon Moeller          2018-11-13  426  		}
d605aabab41663 Jon Moeller          2018-11-13  427  	}
d605aabab41663 Jon Moeller          2018-11-13  428  #if defined(DRV_ALLOW_VDSO)
d605aabab41663 Jon Moeller          2018-11-13  429  	else if ((vma->vm_mm  != NULL) &&
d605aabab41663 Jon Moeller          2018-11-13 @430  		 vma->vm_start == (long)vma->vm_mm->context.vdso) {
d605aabab41663 Jon Moeller          2018-11-13  431  		pname = "[vdso]";
d605aabab41663 Jon Moeller          2018-11-13  432  	}
d605aabab41663 Jon Moeller          2018-11-13  433  #endif
d605aabab41663 Jon Moeller          2018-11-13  434  #if defined(DRV_ALLOW_SYSCALL)
d605aabab41663 Jon Moeller          2018-11-13  435  	else if (vma->vm_start == VSYSCALL_START) {
d605aabab41663 Jon Moeller          2018-11-13  436  		pname = "[vsyscall]";
d605aabab41663 Jon Moeller          2018-11-13  437  	}
d605aabab41663 Jon Moeller          2018-11-13  438  #endif
d605aabab41663 Jon Moeller          2018-11-13  439  
d605aabab41663 Jon Moeller          2018-11-13  440  	if (pname != NULL) {
d605aabab41663 Jon Moeller          2018-11-13  441  		options = 0;
d605aabab41663 Jon Moeller          2018-11-13  442  		if (DRV_VM_MOD_EXECUTABLE(vma)) {
d605aabab41663 Jon Moeller          2018-11-13  443  			options |= LOPTS_EXE;
d605aabab41663 Jon Moeller          2018-11-13  444  		}
d605aabab41663 Jon Moeller          2018-11-13  445  
d605aabab41663 Jon Moeller          2018-11-13  446  		if (p && p->parent) {
d605aabab41663 Jon Moeller          2018-11-13  447  			ppid = p->parent->tgid;
d605aabab41663 Jon Moeller          2018-11-13  448  		}
d605aabab41663 Jon Moeller          2018-11-13  449  		exec_mode = linuxos_Get_Exec_Mode(p);
d605aabab41663 Jon Moeller          2018-11-13  450  		// record this module
d605aabab41663 Jon Moeller          2018-11-13  451  		linuxos_Load_Image_Notify_Routine(
d605aabab41663 Jon Moeller          2018-11-13  452  			pname, vma->vm_start, (vma->vm_end - vma->vm_start),
d605aabab41663 Jon Moeller          2018-11-13  453  			page_offset, p->pid, ppid, options, exec_mode,
d605aabab41663 Jon Moeller          2018-11-13  454  			load_event, 1, 0, OS_ID_NATIVE);
d605aabab41663 Jon Moeller          2018-11-13  455  	}
d605aabab41663 Jon Moeller          2018-11-13  456  
d605aabab41663 Jon Moeller          2018-11-13  457  	SEP_DRV_LOG_NOTIFICATION_TRACE_OUT(load_event == 1, "OS_SUCCESS.");
d605aabab41663 Jon Moeller          2018-11-13  458  	return OS_SUCCESS;
d605aabab41663 Jon Moeller          2018-11-13  459  }
d605aabab41663 Jon Moeller          2018-11-13  460  

:::::: The code at line 244 was first introduced by commit
:::::: d605aabab41663c9be9e8c549042933189adbf2f platform/x86: add sep and socwatch drivers without socperf.

:::::: TO: Jon Moeller <jon.moeller@intel.com>
:::::: CC: Faycal Benmlih <faycal.benmlih@intel.com>

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org

[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 37755 bytes --]

WARNING: multiple messages have this Message-ID (diff)
From: kernel test robot <lkp@intel.com>
To: kbuild-all@lists.01.org
Subject: [mchinth: sep_socwatch_linux_5_9 19/41] drivers/platform/x86/sepdk/sep/linuxos.c:244:26: sparse: sparse: incorrect type in argument 1 (different address spaces)
Date: Sat, 31 Jul 2021 14:05:01 +0800	[thread overview]
Message-ID: <202107311455.guGmXIq7-lkp@intel.com> (raw)

[-- Attachment #1: Type: text/plain, Size: 22613 bytes --]

Hi Faycal,

First bad commit (maybe != root cause):

tree:   https://github.com/mchinth/linux  sep_socwatch_linux_5_9
head:   7296486889985b9d9895a39f551764a4b0425bea
commit: e65547c5a9bb37e907edecece4da7cb12dadea96 [19/41] platform/x86: Use $(srctree) instead of $(src) to adapt to kbuild regression
config: i386-randconfig-s032-20210730 (attached as .config)
compiler: gcc-10 (Ubuntu 10.3.0-1ubuntu1~20.04) 10.3.0
reproduce:
        # apt-get install sparse
        # sparse version: v0.6.3-341-g8af24329-dirty
        # https://github.com/mchinth/linux/commit/e65547c5a9bb37e907edecece4da7cb12dadea96
        git remote add mchinth https://github.com/mchinth/linux
        git fetch --no-tags mchinth  sep_socwatch_linux_5_9
        git checkout e65547c5a9bb37e907edecece4da7cb12dadea96
        # save the attached .config to linux build tree
        make W=1 C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' ARCH=i386 

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>


sparse warnings: (new ones prefixed by >>)
   drivers/platform/x86/sepdk/sep/linuxos.c: note: in included file (through drivers/platform/x86/sepdk/inc/apic.h):
   /usr/lib/gcc/x86_64-linux-gnu/10/include/stddef.h:406:9: sparse: sparse: preprocessor token offsetof redefined
   drivers/platform/x86/sepdk/sep/linuxos.c: note: in included file (through include/uapi/linux/posix_types.h, include/uapi/linux/types.h, include/linux/types.h, ...):
   include/linux/stddef.h:17:9: sparse: this was the original definition
>> drivers/platform/x86/sepdk/sep/linuxos.c:244:26: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected struct path const * @@     got struct path [noderef] __rcu * @@
   drivers/platform/x86/sepdk/sep/linuxos.c:244:26: sparse:     expected struct path const *
   drivers/platform/x86/sepdk/sep/linuxos.c:244:26: sparse:     got struct path [noderef] __rcu *
>> drivers/platform/x86/sepdk/sep/linuxos.c:430:36: sparse: sparse: cast removes address space '__user' of expression
   drivers/platform/x86/sepdk/sep/linuxos.c:503:44: sparse: sparse: cast removes address space '__user' of expression
   drivers/platform/x86/sepdk/sep/linuxos.c:447:33: sparse: sparse: dereference of noderef expression
   drivers/platform/x86/sepdk/sep/linuxos.c:889:48: sparse: sparse: dereference of noderef expression

vim +244 drivers/platform/x86/sepdk/sep/linuxos.c

d605aabab41663 Jon Moeller          2018-11-13  215  
d605aabab41663 Jon Moeller          2018-11-13  216  #ifdef DRV_MM_EXE_FILE_PRESENT
d605aabab41663 Jon Moeller          2018-11-13  217  static DRV_BOOL linuxos_Equal_VM_Exe_File(struct vm_area_struct *vma)
d605aabab41663 Jon Moeller          2018-11-13  218  {
d605aabab41663 Jon Moeller          2018-11-13  219  	S8 name_vm_file[MAXNAMELEN];
d605aabab41663 Jon Moeller          2018-11-13  220  	S8 name_exe_file[MAXNAMELEN];
d605aabab41663 Jon Moeller          2018-11-13  221  	S8 *pname_vm_file = NULL;
d605aabab41663 Jon Moeller          2018-11-13  222  	S8 *pname_exe_file = NULL;
d605aabab41663 Jon Moeller          2018-11-13  223  	DRV_BOOL res;
d605aabab41663 Jon Moeller          2018-11-13  224  
d605aabab41663 Jon Moeller          2018-11-13  225  	SEP_DRV_LOG_TRACE_IN("FMA: %p.", vma);
d605aabab41663 Jon Moeller          2018-11-13  226  
d605aabab41663 Jon Moeller          2018-11-13  227  	if (vma == NULL) {
d605aabab41663 Jon Moeller          2018-11-13  228  		SEP_DRV_LOG_TRACE_OUT("FALSE (!vma).");
d605aabab41663 Jon Moeller          2018-11-13  229  		return FALSE;
d605aabab41663 Jon Moeller          2018-11-13  230  	}
d605aabab41663 Jon Moeller          2018-11-13  231  
d605aabab41663 Jon Moeller          2018-11-13  232  	if (vma->vm_file == NULL) {
d605aabab41663 Jon Moeller          2018-11-13  233  		SEP_DRV_LOG_TRACE_OUT("FALSE (!vma->vm_file).");
d605aabab41663 Jon Moeller          2018-11-13  234  		return FALSE;
d605aabab41663 Jon Moeller          2018-11-13  235  	}
d605aabab41663 Jon Moeller          2018-11-13  236  
d605aabab41663 Jon Moeller          2018-11-13  237  	if (vma->vm_mm->exe_file == NULL) {
d605aabab41663 Jon Moeller          2018-11-13  238  		SEP_DRV_LOG_TRACE_OUT("FALSE (!vma->vm_mm->exe_file).");
d605aabab41663 Jon Moeller          2018-11-13  239  		return FALSE;
d605aabab41663 Jon Moeller          2018-11-13  240  	}
d605aabab41663 Jon Moeller          2018-11-13  241  
d605aabab41663 Jon Moeller          2018-11-13  242  	pname_vm_file = D_PATH(vma->vm_file,
d605aabab41663 Jon Moeller          2018-11-13  243  			name_vm_file, MAXNAMELEN);
d605aabab41663 Jon Moeller          2018-11-13 @244  	pname_exe_file = D_PATH(vma->vm_mm->exe_file,
d605aabab41663 Jon Moeller          2018-11-13  245  			name_exe_file, MAXNAMELEN);
d605aabab41663 Jon Moeller          2018-11-13  246  	res = strcmp(pname_vm_file, pname_exe_file) == 0;
d605aabab41663 Jon Moeller          2018-11-13  247  
d605aabab41663 Jon Moeller          2018-11-13  248  	SEP_DRV_LOG_TRACE_OUT("Res: %u.", res);
d605aabab41663 Jon Moeller          2018-11-13  249  	return res;
d605aabab41663 Jon Moeller          2018-11-13  250  }
d605aabab41663 Jon Moeller          2018-11-13  251  #endif
d605aabab41663 Jon Moeller          2018-11-13  252  
d605aabab41663 Jon Moeller          2018-11-13  253  /* ------------------------------------------------------------------------- */
d605aabab41663 Jon Moeller          2018-11-13  254  /*!
d605aabab41663 Jon Moeller          2018-11-13  255   * @fn          linuxos_Map_Kernel_Modules (void)
d605aabab41663 Jon Moeller          2018-11-13  256   *
d605aabab41663 Jon Moeller          2018-11-13  257   * @brief       Obtain kernel module details from modules list
d605aabab41663 Jon Moeller          2018-11-13  258   *              and map the details to the module record.
d605aabab41663 Jon Moeller          2018-11-13  259   *
d605aabab41663 Jon Moeller          2018-11-13  260   * @return      S32       VT_SUCCESS on success
d605aabab41663 Jon Moeller          2018-11-13  261   */
d605aabab41663 Jon Moeller          2018-11-13  262  static S32 linuxos_Map_Kernel_Modules(void)
d605aabab41663 Jon Moeller          2018-11-13  263  {
1f57010172d61a Manisha Chinthapally 2018-11-13  264  #if defined(CONFIG_MODULES)
d605aabab41663 Jon Moeller          2018-11-13  265  	struct module *current_module;
d605aabab41663 Jon Moeller          2018-11-13  266  	struct list_head *modules;
d605aabab41663 Jon Moeller          2018-11-13  267  	U16 exec_mode;
d605aabab41663 Jon Moeller          2018-11-13  268  	unsigned long long addr;
d605aabab41663 Jon Moeller          2018-11-13  269  	unsigned long long size;
d605aabab41663 Jon Moeller          2018-11-13  270  #if defined(CONFIG_RANDOMIZE_BASE)
d605aabab41663 Jon Moeller          2018-11-13  271  	unsigned long dyn_addr = 0;
d605aabab41663 Jon Moeller          2018-11-13  272  #endif
d605aabab41663 Jon Moeller          2018-11-13  273  
d605aabab41663 Jon Moeller          2018-11-13  274  	SEP_DRV_LOG_TRACE_IN("");
d605aabab41663 Jon Moeller          2018-11-13  275  
1f57010172d61a Manisha Chinthapally 2018-11-13  276  
d605aabab41663 Jon Moeller          2018-11-13  277  	mutex_lock(&module_mutex);
d605aabab41663 Jon Moeller          2018-11-13  278  
d605aabab41663 Jon Moeller          2018-11-13  279  #if defined(DRV_EM64T)
d605aabab41663 Jon Moeller          2018-11-13  280  	addr = (unsigned long)__START_KERNEL_map;
d605aabab41663 Jon Moeller          2018-11-13  281  	exec_mode = MODE_64BIT;
d605aabab41663 Jon Moeller          2018-11-13  282  #elif defined(DRV_IA32)
d605aabab41663 Jon Moeller          2018-11-13  283  	addr = (unsigned long)PAGE_OFFSET;
d605aabab41663 Jon Moeller          2018-11-13  284  	exec_mode = MODE_32BIT;
d605aabab41663 Jon Moeller          2018-11-13  285  #else
d605aabab41663 Jon Moeller          2018-11-13  286  	exec_mode = MODE_UNKNOWN;
d605aabab41663 Jon Moeller          2018-11-13  287  #endif
d605aabab41663 Jon Moeller          2018-11-13  288  
d605aabab41663 Jon Moeller          2018-11-13  289  	SEP_DRV_LOG_TRACE(
d605aabab41663 Jon Moeller          2018-11-13  290  		"     kernel module            address           size");
d605aabab41663 Jon Moeller          2018-11-13  291  	SEP_DRV_LOG_TRACE(
d605aabab41663 Jon Moeller          2018-11-13  292  		"  -------------------    ------------------    -------");
d605aabab41663 Jon Moeller          2018-11-13  293  
d605aabab41663 Jon Moeller          2018-11-13  294  	addr += (CONFIG_PHYSICAL_START + (CONFIG_PHYSICAL_ALIGN - 1)) &
d605aabab41663 Jon Moeller          2018-11-13  295  		~(CONFIG_PHYSICAL_ALIGN - 1);
d605aabab41663 Jon Moeller          2018-11-13  296  	size = (unsigned long)KERNEL_IMAGE_SIZE -
d605aabab41663 Jon Moeller          2018-11-13  297  	       ((CONFIG_PHYSICAL_START + (CONFIG_PHYSICAL_ALIGN - 1)) &
d605aabab41663 Jon Moeller          2018-11-13  298  		~(CONFIG_PHYSICAL_ALIGN - 1)) -
d605aabab41663 Jon Moeller          2018-11-13  299  	       1;
d605aabab41663 Jon Moeller          2018-11-13  300  
d605aabab41663 Jon Moeller          2018-11-13  301  #if defined(CONFIG_RANDOMIZE_BASE)
d605aabab41663 Jon Moeller          2018-11-13  302  	if (!dyn_addr) {
d605aabab41663 Jon Moeller          2018-11-13  303  		dyn_addr = (unsigned long)UTILITY_Find_Symbol("_text");
d605aabab41663 Jon Moeller          2018-11-13  304  		if (!dyn_addr) {
d605aabab41663 Jon Moeller          2018-11-13  305  			dyn_addr = (unsigned long)UTILITY_Find_Symbol("_stext");
d605aabab41663 Jon Moeller          2018-11-13  306  		}
d605aabab41663 Jon Moeller          2018-11-13  307  
d605aabab41663 Jon Moeller          2018-11-13  308  		if (dyn_addr && dyn_addr > addr) {
d605aabab41663 Jon Moeller          2018-11-13  309  			dyn_addr &= ~(PAGE_SIZE - 1);
d605aabab41663 Jon Moeller          2018-11-13  310  			size -= (dyn_addr - addr);
d605aabab41663 Jon Moeller          2018-11-13  311  			addr = dyn_addr;
d605aabab41663 Jon Moeller          2018-11-13  312  		} else {
d605aabab41663 Jon Moeller          2018-11-13  313  			SEP_DRV_LOG_WARNING_TRACE_OUT(
d605aabab41663 Jon Moeller          2018-11-13  314  				"Could not find the kernel start address!");
d605aabab41663 Jon Moeller          2018-11-13  315  		}
d605aabab41663 Jon Moeller          2018-11-13  316  	}
d605aabab41663 Jon Moeller          2018-11-13  317  #endif
d605aabab41663 Jon Moeller          2018-11-13  318  
d605aabab41663 Jon Moeller          2018-11-13  319  	linuxos_Load_Image_Notify_Routine(
d605aabab41663 Jon Moeller          2018-11-13  320  		"vmlinux", addr, size, 0, 0, 0,
d605aabab41663 Jon Moeller          2018-11-13  321  		LOPTS_1ST_MODREC | LOPTS_GLOBAL_MODULE | LOPTS_EXE, exec_mode,
d605aabab41663 Jon Moeller          2018-11-13  322  		-1, MR_SEG_NUM, 1, OS_ID_NATIVE);
d605aabab41663 Jon Moeller          2018-11-13  323  
d605aabab41663 Jon Moeller          2018-11-13  324  	SEP_DRV_LOG_TRACE("kmodule: %20s    0x%llx    0x%llx.", "vmlinux", addr,
d605aabab41663 Jon Moeller          2018-11-13  325  			  size);
d605aabab41663 Jon Moeller          2018-11-13  326  
d605aabab41663 Jon Moeller          2018-11-13  327  #if defined(DRV_SEP_ACRN_ON)
d605aabab41663 Jon Moeller          2018-11-13  328  	linuxos_Load_Image_Notify_Routine(
d605aabab41663 Jon Moeller          2018-11-13  329  		"VMM", 0x0, (U32)0xffffffffffffffffLL, 0, 0, 0,
d605aabab41663 Jon Moeller          2018-11-13  330  		LOPTS_1ST_MODREC | LOPTS_GLOBAL_MODULE | LOPTS_EXE, exec_mode,
d605aabab41663 Jon Moeller          2018-11-13  331  		-1, MR_SEG_NUM, 1, OS_ID_ACORN);
d605aabab41663 Jon Moeller          2018-11-13  332  #endif
d605aabab41663 Jon Moeller          2018-11-13  333  
d605aabab41663 Jon Moeller          2018-11-13  334  	for (modules = (struct list_head *)(THIS_MODULE->list.prev);
d605aabab41663 Jon Moeller          2018-11-13  335  	     (unsigned long)modules > MODULES_VADDR; modules = modules->prev)
d605aabab41663 Jon Moeller          2018-11-13  336  		;
d605aabab41663 Jon Moeller          2018-11-13  337  	list_for_each_entry (current_module, modules, list) {
d605aabab41663 Jon Moeller          2018-11-13  338  		char *name = current_module->name;
d605aabab41663 Jon Moeller          2018-11-13  339  #if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 5, 0) ||                           \
d605aabab41663 Jon Moeller          2018-11-13  340  	defined(SEP_CONFIG_MODULE_LAYOUT)
d605aabab41663 Jon Moeller          2018-11-13  341  		addr = (unsigned long)current_module->core_layout.base;
d605aabab41663 Jon Moeller          2018-11-13  342  		size = current_module->core_layout.size;
d605aabab41663 Jon Moeller          2018-11-13  343  #else
d605aabab41663 Jon Moeller          2018-11-13  344  		addr = (unsigned long)current_module->module_core;
d605aabab41663 Jon Moeller          2018-11-13  345  		size = current_module->core_size;
d605aabab41663 Jon Moeller          2018-11-13  346  #endif
d605aabab41663 Jon Moeller          2018-11-13  347  
d605aabab41663 Jon Moeller          2018-11-13  348  		if (module_is_live(current_module)) {
d605aabab41663 Jon Moeller          2018-11-13  349  			SEP_DRV_LOG_TRACE("kmodule: %20s    0x%llx    0x%llx.",
d605aabab41663 Jon Moeller          2018-11-13  350  					  name, addr, size);
d605aabab41663 Jon Moeller          2018-11-13  351  			linuxos_Load_Image_Notify_Routine(
d605aabab41663 Jon Moeller          2018-11-13  352  				name, addr, size, 0, 0, 0, LOPTS_GLOBAL_MODULE,
d605aabab41663 Jon Moeller          2018-11-13  353  				exec_mode, -1, 0, 1, OS_ID_NATIVE);
d605aabab41663 Jon Moeller          2018-11-13  354  		}
d605aabab41663 Jon Moeller          2018-11-13  355  	}
d605aabab41663 Jon Moeller          2018-11-13  356  
d605aabab41663 Jon Moeller          2018-11-13  357  	mutex_unlock(&module_mutex);
d605aabab41663 Jon Moeller          2018-11-13  358  #endif
d605aabab41663 Jon Moeller          2018-11-13  359  	SEP_DRV_LOG_TRACE_OUT("OS_SUCCESS");
d605aabab41663 Jon Moeller          2018-11-13  360  	return OS_SUCCESS;
d605aabab41663 Jon Moeller          2018-11-13  361  }
d605aabab41663 Jon Moeller          2018-11-13  362  
d605aabab41663 Jon Moeller          2018-11-13  363  //
d605aabab41663 Jon Moeller          2018-11-13  364  // Register the module for a process.  The task_struct and mm
d605aabab41663 Jon Moeller          2018-11-13  365  // should be locked if necessary to make sure they don't change while we're
d605aabab41663 Jon Moeller          2018-11-13  366  // iterating...
d605aabab41663 Jon Moeller          2018-11-13  367  // Used as a service routine
d605aabab41663 Jon Moeller          2018-11-13  368  //
d605aabab41663 Jon Moeller          2018-11-13  369  static S32 linuxos_VMA_For_Process(struct task_struct *p,
d605aabab41663 Jon Moeller          2018-11-13  370  				   struct vm_area_struct *vma, S32 load_event,
d605aabab41663 Jon Moeller          2018-11-13  371  				   U32 *first)
d605aabab41663 Jon Moeller          2018-11-13  372  {
d605aabab41663 Jon Moeller          2018-11-13  373  	U32 options = 0;
d605aabab41663 Jon Moeller          2018-11-13  374  	S8 name[MAXNAMELEN];
d605aabab41663 Jon Moeller          2018-11-13  375  	S8 *pname = NULL;
d605aabab41663 Jon Moeller          2018-11-13  376  	U32 ppid = 0;
d605aabab41663 Jon Moeller          2018-11-13  377  	U16 exec_mode;
d605aabab41663 Jon Moeller          2018-11-13  378  	U64 page_offset = 0;
d605aabab41663 Jon Moeller          2018-11-13  379  
d605aabab41663 Jon Moeller          2018-11-13  380  #if defined(DRV_ANDROID)
d605aabab41663 Jon Moeller          2018-11-13  381  	char andr_app[TASK_COMM_LEN];
d605aabab41663 Jon Moeller          2018-11-13  382  #endif
d605aabab41663 Jon Moeller          2018-11-13  383  
d605aabab41663 Jon Moeller          2018-11-13  384  	SEP_DRV_LOG_NOTIFICATION_TRACE_IN(
d605aabab41663 Jon Moeller          2018-11-13  385  		load_event == 1, "P = %p, vma = %p, load_event: %d, first: %p.",
d605aabab41663 Jon Moeller          2018-11-13  386  		p, vma, load_event, first);
d605aabab41663 Jon Moeller          2018-11-13  387  
d605aabab41663 Jon Moeller          2018-11-13  388  	if (p == NULL) {
d605aabab41663 Jon Moeller          2018-11-13  389  		SEP_DRV_LOG_NOTIFICATION_ERROR(load_event == 1,
d605aabab41663 Jon Moeller          2018-11-13  390  					       "Skipped p=NULL.");
d605aabab41663 Jon Moeller          2018-11-13  391  		SEP_DRV_LOG_NOTIFICATION_TRACE_OUT(load_event == 1,
d605aabab41663 Jon Moeller          2018-11-13  392  						   "OS_SUCCESS (!p).");
d605aabab41663 Jon Moeller          2018-11-13  393  		return OS_SUCCESS;
d605aabab41663 Jon Moeller          2018-11-13  394  	}
d605aabab41663 Jon Moeller          2018-11-13  395  
d605aabab41663 Jon Moeller          2018-11-13  396  	if (vma->vm_file)
d605aabab41663 Jon Moeller          2018-11-13  397  		pname = D_PATH(vma->vm_file, name, MAXNAMELEN);
d605aabab41663 Jon Moeller          2018-11-13  398  
d605aabab41663 Jon Moeller          2018-11-13  399  	page_offset = vma->vm_pgoff;
d605aabab41663 Jon Moeller          2018-11-13  400  
d605aabab41663 Jon Moeller          2018-11-13  401  	if (!IS_ERR(pname) && pname != NULL) {
d605aabab41663 Jon Moeller          2018-11-13  402  		SEP_DRV_LOG_NOTIFICATION_TRACE(load_event == 1,
d605aabab41663 Jon Moeller          2018-11-13  403  					       "enum: %s, %d, %lx, %lx %llu.",
d605aabab41663 Jon Moeller          2018-11-13  404  					       pname, p->pid, vma->vm_start,
d605aabab41663 Jon Moeller          2018-11-13  405  					       (vma->vm_end - vma->vm_start),
d605aabab41663 Jon Moeller          2018-11-13  406  					       page_offset);
d605aabab41663 Jon Moeller          2018-11-13  407  
d605aabab41663 Jon Moeller          2018-11-13  408  		// if the VM_EXECUTABLE flag is set then this is the module
d605aabab41663 Jon Moeller          2018-11-13  409  		// that is being used to name the module
d605aabab41663 Jon Moeller          2018-11-13  410  		if (DRV_VM_MOD_EXECUTABLE(vma)) {
d605aabab41663 Jon Moeller          2018-11-13  411  			options |= LOPTS_EXE;
d605aabab41663 Jon Moeller          2018-11-13  412  #if defined(DRV_ANDROID)
d605aabab41663 Jon Moeller          2018-11-13  413  			if (!strcmp(pname, "/system/bin/app_process") ||
d605aabab41663 Jon Moeller          2018-11-13  414  			    !strcmp(pname, "/system/bin/app_process32") ||
d605aabab41663 Jon Moeller          2018-11-13  415  			    !strcmp(pname, "/system/bin/app_process64")) {
d605aabab41663 Jon Moeller          2018-11-13  416  				memset(andr_app, '\0', TASK_COMM_LEN);
d605aabab41663 Jon Moeller          2018-11-13  417  				strncpy(andr_app, p->comm, TASK_COMM_LEN);
d605aabab41663 Jon Moeller          2018-11-13  418  				pname = andr_app;
d605aabab41663 Jon Moeller          2018-11-13  419  			}
d605aabab41663 Jon Moeller          2018-11-13  420  #endif
d605aabab41663 Jon Moeller          2018-11-13  421  		}
d605aabab41663 Jon Moeller          2018-11-13  422  		// mark the first of the bunch...
d605aabab41663 Jon Moeller          2018-11-13  423  		if (*first == 1) {
d605aabab41663 Jon Moeller          2018-11-13  424  			options |= LOPTS_1ST_MODREC;
d605aabab41663 Jon Moeller          2018-11-13  425  			*first = 0;
d605aabab41663 Jon Moeller          2018-11-13  426  		}
d605aabab41663 Jon Moeller          2018-11-13  427  	}
d605aabab41663 Jon Moeller          2018-11-13  428  #if defined(DRV_ALLOW_VDSO)
d605aabab41663 Jon Moeller          2018-11-13  429  	else if ((vma->vm_mm  != NULL) &&
d605aabab41663 Jon Moeller          2018-11-13 @430  		 vma->vm_start == (long)vma->vm_mm->context.vdso) {
d605aabab41663 Jon Moeller          2018-11-13  431  		pname = "[vdso]";
d605aabab41663 Jon Moeller          2018-11-13  432  	}
d605aabab41663 Jon Moeller          2018-11-13  433  #endif
d605aabab41663 Jon Moeller          2018-11-13  434  #if defined(DRV_ALLOW_SYSCALL)
d605aabab41663 Jon Moeller          2018-11-13  435  	else if (vma->vm_start == VSYSCALL_START) {
d605aabab41663 Jon Moeller          2018-11-13  436  		pname = "[vsyscall]";
d605aabab41663 Jon Moeller          2018-11-13  437  	}
d605aabab41663 Jon Moeller          2018-11-13  438  #endif
d605aabab41663 Jon Moeller          2018-11-13  439  
d605aabab41663 Jon Moeller          2018-11-13  440  	if (pname != NULL) {
d605aabab41663 Jon Moeller          2018-11-13  441  		options = 0;
d605aabab41663 Jon Moeller          2018-11-13  442  		if (DRV_VM_MOD_EXECUTABLE(vma)) {
d605aabab41663 Jon Moeller          2018-11-13  443  			options |= LOPTS_EXE;
d605aabab41663 Jon Moeller          2018-11-13  444  		}
d605aabab41663 Jon Moeller          2018-11-13  445  
d605aabab41663 Jon Moeller          2018-11-13  446  		if (p && p->parent) {
d605aabab41663 Jon Moeller          2018-11-13  447  			ppid = p->parent->tgid;
d605aabab41663 Jon Moeller          2018-11-13  448  		}
d605aabab41663 Jon Moeller          2018-11-13  449  		exec_mode = linuxos_Get_Exec_Mode(p);
d605aabab41663 Jon Moeller          2018-11-13  450  		// record this module
d605aabab41663 Jon Moeller          2018-11-13  451  		linuxos_Load_Image_Notify_Routine(
d605aabab41663 Jon Moeller          2018-11-13  452  			pname, vma->vm_start, (vma->vm_end - vma->vm_start),
d605aabab41663 Jon Moeller          2018-11-13  453  			page_offset, p->pid, ppid, options, exec_mode,
d605aabab41663 Jon Moeller          2018-11-13  454  			load_event, 1, 0, OS_ID_NATIVE);
d605aabab41663 Jon Moeller          2018-11-13  455  	}
d605aabab41663 Jon Moeller          2018-11-13  456  
d605aabab41663 Jon Moeller          2018-11-13  457  	SEP_DRV_LOG_NOTIFICATION_TRACE_OUT(load_event == 1, "OS_SUCCESS.");
d605aabab41663 Jon Moeller          2018-11-13  458  	return OS_SUCCESS;
d605aabab41663 Jon Moeller          2018-11-13  459  }
d605aabab41663 Jon Moeller          2018-11-13  460  

:::::: The code at line 244 was first introduced by commit
:::::: d605aabab41663c9be9e8c549042933189adbf2f platform/x86: add sep and socwatch drivers without socperf.

:::::: TO: Jon Moeller <jon.moeller@intel.com>
:::::: CC: Faycal Benmlih <faycal.benmlih@intel.com>

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org

[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 37755 bytes --]

             reply	other threads:[~2021-07-31  6:05 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-07-31  6:05 kernel test robot [this message]
2021-07-31  6:05 ` [mchinth: sep_socwatch_linux_5_9 19/41] drivers/platform/x86/sepdk/sep/linuxos.c:244:26: sparse: sparse: incorrect type in argument 1 (different address spaces) kernel test robot
  -- strict thread matches above, loose matches on Subject: below --
2021-06-03  3:44 kernel test robot

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=202107311455.guGmXIq7-lkp@intel.com \
    --to=lkp@intel.com \
    --cc=faycal.benmlih@intel.com \
    --cc=kbuild-all@lists.01.org \
    --cc=linux-kernel@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.