CC: [email protected]
BCC: [email protected]
TO: [email protected]

tree:   https://github.com/zen-kernel/zen-kernel 5.19/ksm
head:   60031e6bc73f810a6a291c7c0bffd68630249d8e
commit: 2fc88334edcae00c712c95f7092d44e695d4f1de [3/5] mm: introduce pmadv_ksm 
system call
:::::: branch date: 15 hours ago
:::::: commit date: 15 hours ago
config: x86_64-randconfig-m001 
(https://download.01.org/0day-ci/archive/20220801/[email protected]/config)
compiler: gcc-11 (Debian 11.3.0-3) 11.3.0

If you fix the issue, kindly add following tag where applicable
Reported-by: kernel test robot <[email protected]>
Reported-by: Dan Carpenter <[email protected]>

smatch warnings:
mm/madvise.c:1577 __do_sys_pmadv_ksm() error: uninitialized symbol 'ret'.
mm/madvise.c:1577 __do_sys_pmadv_ksm() error: uninitialized symbol 'ret'.

vim +/ret +1577 mm/madvise.c

2fc88334edcae00 Oleksandr Natalenko 2021-10-04  1496  
2fc88334edcae00 Oleksandr Natalenko 2021-10-04  1497  
SYSCALL_DEFINE3(pmadv_ksm, int, pidfd, int, behaviour, unsigned int, flags)
2fc88334edcae00 Oleksandr Natalenko 2021-10-04  1498  {
2fc88334edcae00 Oleksandr Natalenko 2021-10-04  1499  #ifdef CONFIG_KSM
2fc88334edcae00 Oleksandr Natalenko 2021-10-04  1500    ssize_t ret;
2fc88334edcae00 Oleksandr Natalenko 2021-10-04  1501    struct pid *pid;
2fc88334edcae00 Oleksandr Natalenko 2021-10-04  1502    struct task_struct 
*task;
2fc88334edcae00 Oleksandr Natalenko 2021-10-04  1503    struct mm_struct *mm;
2fc88334edcae00 Oleksandr Natalenko 2021-10-04  1504    unsigned int f_flags;
2fc88334edcae00 Oleksandr Natalenko 2021-10-04  1505    struct vm_area_struct 
*vma;
2fc88334edcae00 Oleksandr Natalenko 2021-10-04  1506  
2fc88334edcae00 Oleksandr Natalenko 2021-10-04  1507    if (flags != 0) {
2fc88334edcae00 Oleksandr Natalenko 2021-10-04  1508            ret = -EINVAL;
2fc88334edcae00 Oleksandr Natalenko 2021-10-04  1509            goto out;
2fc88334edcae00 Oleksandr Natalenko 2021-10-04  1510    }
2fc88334edcae00 Oleksandr Natalenko 2021-10-04  1511  
2fc88334edcae00 Oleksandr Natalenko 2021-10-04  1512    switch (behaviour) {
2fc88334edcae00 Oleksandr Natalenko 2021-10-04  1513            case 
MADV_MERGEABLE:
2fc88334edcae00 Oleksandr Natalenko 2021-10-04  1514            case 
MADV_UNMERGEABLE:
2fc88334edcae00 Oleksandr Natalenko 2021-10-04  1515                    break;
2fc88334edcae00 Oleksandr Natalenko 2021-10-04  1516            default:
2fc88334edcae00 Oleksandr Natalenko 2021-10-04  1517                    ret = 
-EINVAL;
2fc88334edcae00 Oleksandr Natalenko 2021-10-04  1518                    goto 
out;
2fc88334edcae00 Oleksandr Natalenko 2021-10-04  1519                    break;
2fc88334edcae00 Oleksandr Natalenko 2021-10-04  1520    }
2fc88334edcae00 Oleksandr Natalenko 2021-10-04  1521  
2fc88334edcae00 Oleksandr Natalenko 2021-10-04  1522    pid = 
pidfd_get_pid(pidfd, &f_flags);
2fc88334edcae00 Oleksandr Natalenko 2021-10-04  1523    if (IS_ERR(pid)) {
2fc88334edcae00 Oleksandr Natalenko 2021-10-04  1524            ret = 
PTR_ERR(pid);
2fc88334edcae00 Oleksandr Natalenko 2021-10-04  1525            goto out;
2fc88334edcae00 Oleksandr Natalenko 2021-10-04  1526    }
2fc88334edcae00 Oleksandr Natalenko 2021-10-04  1527  
2fc88334edcae00 Oleksandr Natalenko 2021-10-04  1528    task = 
get_pid_task(pid, PIDTYPE_PID);
2fc88334edcae00 Oleksandr Natalenko 2021-10-04  1529    if (!task) {
2fc88334edcae00 Oleksandr Natalenko 2021-10-04  1530            ret = -ESRCH;
2fc88334edcae00 Oleksandr Natalenko 2021-10-04  1531            goto put_pid;
2fc88334edcae00 Oleksandr Natalenko 2021-10-04  1532    }
2fc88334edcae00 Oleksandr Natalenko 2021-10-04  1533  
2fc88334edcae00 Oleksandr Natalenko 2021-10-04  1534    /* Require 
PTRACE_MODE_READ to avoid leaking ASLR metadata. */
2fc88334edcae00 Oleksandr Natalenko 2021-10-04  1535    mm = mm_access(task, 
PTRACE_MODE_READ_FSCREDS);
2fc88334edcae00 Oleksandr Natalenko 2021-10-04  1536    if (IS_ERR_OR_NULL(mm)) 
{
2fc88334edcae00 Oleksandr Natalenko 2021-10-04  1537            ret = 
IS_ERR(mm) ? PTR_ERR(mm) : -ESRCH;
2fc88334edcae00 Oleksandr Natalenko 2021-10-04  1538            goto 
release_task;
2fc88334edcae00 Oleksandr Natalenko 2021-10-04  1539    }
2fc88334edcae00 Oleksandr Natalenko 2021-10-04  1540  
2fc88334edcae00 Oleksandr Natalenko 2021-10-04  1541    /* Require CAP_SYS_NICE 
for influencing process performance. */
2fc88334edcae00 Oleksandr Natalenko 2021-10-04  1542    if 
(!capable(CAP_SYS_NICE)) {
2fc88334edcae00 Oleksandr Natalenko 2021-10-04  1543            ret = -EPERM;
2fc88334edcae00 Oleksandr Natalenko 2021-10-04  1544            goto release_mm;
2fc88334edcae00 Oleksandr Natalenko 2021-10-04  1545    }
2fc88334edcae00 Oleksandr Natalenko 2021-10-04  1546  
2fc88334edcae00 Oleksandr Natalenko 2021-10-04  1547    if 
(mmap_write_lock_killable(mm)) {
2fc88334edcae00 Oleksandr Natalenko 2021-10-04  1548            ret = -EINTR;
2fc88334edcae00 Oleksandr Natalenko 2021-10-04  1549            goto release_mm;
2fc88334edcae00 Oleksandr Natalenko 2021-10-04  1550    }
2fc88334edcae00 Oleksandr Natalenko 2021-10-04  1551  
2fc88334edcae00 Oleksandr Natalenko 2021-10-04  1552    for (vma = mm->mmap; 
vma; vma = vma->vm_next) {
2fc88334edcae00 Oleksandr Natalenko 2021-10-04  1553            switch 
(behaviour) {
2fc88334edcae00 Oleksandr Natalenko 2021-10-04  1554                    case 
MADV_MERGEABLE:
2fc88334edcae00 Oleksandr Natalenko 2021-10-04  1555                            
ret = ksm_madvise_merge(vma->vm_mm, vma, &vma->vm_flags);
2fc88334edcae00 Oleksandr Natalenko 2021-10-04  1556                            
break;
2fc88334edcae00 Oleksandr Natalenko 2021-10-04  1557                    case 
MADV_UNMERGEABLE:
2fc88334edcae00 Oleksandr Natalenko 2021-10-04  1558                            
ret = ksm_madvise_unmerge(vma, vma->vm_start, vma->vm_end, &vma->vm_flags);
2fc88334edcae00 Oleksandr Natalenko 2021-10-04  1559                            
break;
2fc88334edcae00 Oleksandr Natalenko 2021-10-04  1560                    default:
2fc88334edcae00 Oleksandr Natalenko 2021-10-04  1561                            
/* look, ma, no brain */
2fc88334edcae00 Oleksandr Natalenko 2021-10-04  1562                            
break;
2fc88334edcae00 Oleksandr Natalenko 2021-10-04  1563            }
2fc88334edcae00 Oleksandr Natalenko 2021-10-04  1564            if (ret)
2fc88334edcae00 Oleksandr Natalenko 2021-10-04  1565                    break;
2fc88334edcae00 Oleksandr Natalenko 2021-10-04  1566    }
2fc88334edcae00 Oleksandr Natalenko 2021-10-04  1567  
2fc88334edcae00 Oleksandr Natalenko 2021-10-04  1568    mmap_write_unlock(mm);
2fc88334edcae00 Oleksandr Natalenko 2021-10-04  1569  
2fc88334edcae00 Oleksandr Natalenko 2021-10-04  1570  release_mm:
2fc88334edcae00 Oleksandr Natalenko 2021-10-04  1571    mmput(mm);
2fc88334edcae00 Oleksandr Natalenko 2021-10-04  1572  release_task:
2fc88334edcae00 Oleksandr Natalenko 2021-10-04  1573    put_task_struct(task);
2fc88334edcae00 Oleksandr Natalenko 2021-10-04  1574  put_pid:
2fc88334edcae00 Oleksandr Natalenko 2021-10-04  1575    put_pid(pid);
2fc88334edcae00 Oleksandr Natalenko 2021-10-04  1576  out:
2fc88334edcae00 Oleksandr Natalenko 2021-10-04 @1577    return ret;

-- 
0-DAY CI Kernel Test Service
https://01.org/lkp
_______________________________________________
kbuild mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to