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 --]
next 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.