All of lore.kernel.org
 help / color / mirror / Atom feed
From: kernel test robot <lkp@intel.com>
To: kbuild@lists.01.org
Subject: arch/arm64/kernel/mte.c:274 __access_remote_tags() error: uninitialized symbol 'ret'.
Date: Sat, 12 Dec 2020 05:06:31 +0800	[thread overview]
Message-ID: <202012120527.D4cFSiTh-lkp@intel.com> (raw)

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

CC: kbuild-all(a)lists.01.org
CC: linux-kernel(a)vger.kernel.org
TO: Vincenzo Frascino <vincenzo.frascino@arm.com>
CC: Catalin Marinas <catalin.marinas@arm.com>

Hi Vincenzo,

First bad commit (maybe != root cause):

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head:   94801e5c6d461045726e1563ba2369ef7ce21dbf
commit: 89b94df9dfb16fe29f9d2085b0a98116dc34d814 arm64: mte: Kconfig entry
date:   3 months ago
:::::: branch date: 3 hours ago
:::::: commit date: 3 months ago
config: arm64-randconfig-m031-20201210 (attached as .config)
compiler: aarch64-linux-gcc (GCC) 9.3.0

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

smatch warnings:
arch/arm64/kernel/mte.c:274 __access_remote_tags() error: uninitialized symbol 'ret'.

vim +/ret +274 arch/arm64/kernel/mte.c

18ddbaa02b7a64f Catalin Marinas 2020-03-30  203  
18ddbaa02b7a64f Catalin Marinas 2020-03-30  204  /*
18ddbaa02b7a64f Catalin Marinas 2020-03-30  205   * Access MTE tags in another process' address space as given in mm. Update
18ddbaa02b7a64f Catalin Marinas 2020-03-30  206   * the number of tags copied. Return 0 if any tags copied, error otherwise.
18ddbaa02b7a64f Catalin Marinas 2020-03-30  207   * Inspired by __access_remote_vm().
18ddbaa02b7a64f Catalin Marinas 2020-03-30  208   */
18ddbaa02b7a64f Catalin Marinas 2020-03-30  209  static int __access_remote_tags(struct mm_struct *mm, unsigned long addr,
18ddbaa02b7a64f Catalin Marinas 2020-03-30  210  				struct iovec *kiov, unsigned int gup_flags)
18ddbaa02b7a64f Catalin Marinas 2020-03-30  211  {
18ddbaa02b7a64f Catalin Marinas 2020-03-30  212  	struct vm_area_struct *vma;
18ddbaa02b7a64f Catalin Marinas 2020-03-30  213  	void __user *buf = kiov->iov_base;
18ddbaa02b7a64f Catalin Marinas 2020-03-30  214  	size_t len = kiov->iov_len;
18ddbaa02b7a64f Catalin Marinas 2020-03-30  215  	int ret;
18ddbaa02b7a64f Catalin Marinas 2020-03-30  216  	int write = gup_flags & FOLL_WRITE;
18ddbaa02b7a64f Catalin Marinas 2020-03-30  217  
18ddbaa02b7a64f Catalin Marinas 2020-03-30  218  	if (!access_ok(buf, len))
18ddbaa02b7a64f Catalin Marinas 2020-03-30  219  		return -EFAULT;
18ddbaa02b7a64f Catalin Marinas 2020-03-30  220  
18ddbaa02b7a64f Catalin Marinas 2020-03-30  221  	if (mmap_read_lock_killable(mm))
18ddbaa02b7a64f Catalin Marinas 2020-03-30  222  		return -EIO;
18ddbaa02b7a64f Catalin Marinas 2020-03-30  223  
18ddbaa02b7a64f Catalin Marinas 2020-03-30  224  	while (len) {
18ddbaa02b7a64f Catalin Marinas 2020-03-30  225  		unsigned long tags, offset;
18ddbaa02b7a64f Catalin Marinas 2020-03-30  226  		void *maddr;
18ddbaa02b7a64f Catalin Marinas 2020-03-30  227  		struct page *page = NULL;
18ddbaa02b7a64f Catalin Marinas 2020-03-30  228  
18ddbaa02b7a64f Catalin Marinas 2020-03-30  229  		ret = get_user_pages_remote(mm, addr, 1, gup_flags, &page,
18ddbaa02b7a64f Catalin Marinas 2020-03-30  230  					    &vma, NULL);
18ddbaa02b7a64f Catalin Marinas 2020-03-30  231  		if (ret <= 0)
18ddbaa02b7a64f Catalin Marinas 2020-03-30  232  			break;
18ddbaa02b7a64f Catalin Marinas 2020-03-30  233  
18ddbaa02b7a64f Catalin Marinas 2020-03-30  234  		/*
18ddbaa02b7a64f Catalin Marinas 2020-03-30  235  		 * Only copy tags if the page has been mapped as PROT_MTE
18ddbaa02b7a64f Catalin Marinas 2020-03-30  236  		 * (PG_mte_tagged set). Otherwise the tags are not valid and
18ddbaa02b7a64f Catalin Marinas 2020-03-30  237  		 * not accessible to user. Moreover, an mprotect(PROT_MTE)
18ddbaa02b7a64f Catalin Marinas 2020-03-30  238  		 * would cause the existing tags to be cleared if the page
18ddbaa02b7a64f Catalin Marinas 2020-03-30  239  		 * was never mapped with PROT_MTE.
18ddbaa02b7a64f Catalin Marinas 2020-03-30  240  		 */
18ddbaa02b7a64f Catalin Marinas 2020-03-30  241  		if (!test_bit(PG_mte_tagged, &page->flags)) {
18ddbaa02b7a64f Catalin Marinas 2020-03-30  242  			ret = -EOPNOTSUPP;
18ddbaa02b7a64f Catalin Marinas 2020-03-30  243  			put_page(page);
18ddbaa02b7a64f Catalin Marinas 2020-03-30  244  			break;
18ddbaa02b7a64f Catalin Marinas 2020-03-30  245  		}
18ddbaa02b7a64f Catalin Marinas 2020-03-30  246  
18ddbaa02b7a64f Catalin Marinas 2020-03-30  247  		/* limit access to the end of the page */
18ddbaa02b7a64f Catalin Marinas 2020-03-30  248  		offset = offset_in_page(addr);
18ddbaa02b7a64f Catalin Marinas 2020-03-30  249  		tags = min(len, (PAGE_SIZE - offset) / MTE_GRANULE_SIZE);
18ddbaa02b7a64f Catalin Marinas 2020-03-30  250  
18ddbaa02b7a64f Catalin Marinas 2020-03-30  251  		maddr = page_address(page);
18ddbaa02b7a64f Catalin Marinas 2020-03-30  252  		if (write) {
18ddbaa02b7a64f Catalin Marinas 2020-03-30  253  			tags = mte_copy_tags_from_user(maddr + offset, buf, tags);
18ddbaa02b7a64f Catalin Marinas 2020-03-30  254  			set_page_dirty_lock(page);
18ddbaa02b7a64f Catalin Marinas 2020-03-30  255  		} else {
18ddbaa02b7a64f Catalin Marinas 2020-03-30  256  			tags = mte_copy_tags_to_user(buf, maddr + offset, tags);
18ddbaa02b7a64f Catalin Marinas 2020-03-30  257  		}
18ddbaa02b7a64f Catalin Marinas 2020-03-30  258  		put_page(page);
18ddbaa02b7a64f Catalin Marinas 2020-03-30  259  
18ddbaa02b7a64f Catalin Marinas 2020-03-30  260  		/* error accessing the tracer's buffer */
18ddbaa02b7a64f Catalin Marinas 2020-03-30  261  		if (!tags)
18ddbaa02b7a64f Catalin Marinas 2020-03-30  262  			break;
18ddbaa02b7a64f Catalin Marinas 2020-03-30  263  
18ddbaa02b7a64f Catalin Marinas 2020-03-30  264  		len -= tags;
18ddbaa02b7a64f Catalin Marinas 2020-03-30  265  		buf += tags;
18ddbaa02b7a64f Catalin Marinas 2020-03-30  266  		addr += tags * MTE_GRANULE_SIZE;
18ddbaa02b7a64f Catalin Marinas 2020-03-30  267  	}
18ddbaa02b7a64f Catalin Marinas 2020-03-30  268  	mmap_read_unlock(mm);
18ddbaa02b7a64f Catalin Marinas 2020-03-30  269  
18ddbaa02b7a64f Catalin Marinas 2020-03-30  270  	/* return an error if no tags copied */
18ddbaa02b7a64f Catalin Marinas 2020-03-30  271  	kiov->iov_len = buf - kiov->iov_base;
18ddbaa02b7a64f Catalin Marinas 2020-03-30  272  	if (!kiov->iov_len) {
18ddbaa02b7a64f Catalin Marinas 2020-03-30  273  		/* check for error accessing the tracee's address space */
18ddbaa02b7a64f Catalin Marinas 2020-03-30 @274  		if (ret <= 0)
18ddbaa02b7a64f Catalin Marinas 2020-03-30  275  			return -EIO;
18ddbaa02b7a64f Catalin Marinas 2020-03-30  276  		else
18ddbaa02b7a64f Catalin Marinas 2020-03-30  277  			return -EFAULT;
18ddbaa02b7a64f Catalin Marinas 2020-03-30  278  	}
18ddbaa02b7a64f Catalin Marinas 2020-03-30  279  
18ddbaa02b7a64f Catalin Marinas 2020-03-30  280  	return 0;
18ddbaa02b7a64f Catalin Marinas 2020-03-30  281  }
18ddbaa02b7a64f Catalin Marinas 2020-03-30  282  

:::::: The code@line 274 was first introduced by commit
:::::: 18ddbaa02b7a64f4cf3e7e3d4b78b8b70481a17b arm64: mte: ptrace: Add PTRACE_{PEEK,POKE}MTETAGS support

:::::: TO: Catalin Marinas <catalin.marinas@arm.com>
:::::: CC: Catalin Marinas <catalin.marinas@arm.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: 38734 bytes --]

             reply	other threads:[~2020-12-11 21:06 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-12-11 21:06 kernel test robot [this message]
  -- strict thread matches above, loose matches on Subject: below --
2021-07-05 17:40 arch/arm64/kernel/mte.c:274 __access_remote_tags() error: uninitialized symbol 'ret' 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=202012120527.D4cFSiTh-lkp@intel.com \
    --to=lkp@intel.com \
    --cc=kbuild@lists.01.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.