CC: kbuild-...@lists.01.org
CC: Linux Memory Management List <linux...@kvack.org>
TO: Yanfei Xu <yanfei...@windriver.com>
CC: Andrew Morton <a...@linux-foundation.org>
CC: Linux Memory Management List <linux...@kvack.org>

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git 
master
head:   d61c8b66c84080ecf8f9f4d9272ab4ec78029a59
commit: 1961331845977b33110793160d40e1698810cc59 [9831/12612] mm/kmemleak: fix 
possible wrong memory scanning period
:::::: branch date: 13 hours ago
:::::: commit date: 7 days ago
config: microblaze-randconfig-m031-20210622 (attached as .config)
compiler: microblaze-linux-gcc (GCC) 9.3.0

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

New smatch warnings:
mm/kmemleak.c:1818 kmemleak_write() warn: impossible condition '(msecs > (~0)) 
=> (0-u32max > u32max)'

Old smatch warnings:
arch/microblaze/include/asm/thread_info.h:91 current_thread_info() error: 
uninitialized symbol 'sp'.

vim +1818 mm/kmemleak.c

c89da70c736029 Li Zefan          2014-04-03  1753  
3c7b4e6b8be4c1 Catalin Marinas   2009-06-11  1754  /*
3c7b4e6b8be4c1 Catalin Marinas   2009-06-11  1755   * File write operation to 
configure kmemleak at run-time. The following
3c7b4e6b8be4c1 Catalin Marinas   2009-06-11  1756   * commands can be written 
to the /sys/kernel/debug/kmemleak file:
3c7b4e6b8be4c1 Catalin Marinas   2009-06-11  1757   *   off     - disable 
kmemleak (irreversible)
3c7b4e6b8be4c1 Catalin Marinas   2009-06-11  1758   *   stack=on        - 
enable the task stacks scanning
3c7b4e6b8be4c1 Catalin Marinas   2009-06-11  1759   *   stack=off       - 
disable the tasks stacks scanning
3c7b4e6b8be4c1 Catalin Marinas   2009-06-11  1760   *   scan=on - start the 
automatic memory scanning thread
3c7b4e6b8be4c1 Catalin Marinas   2009-06-11  1761   *   scan=off        - stop 
the automatic memory scanning thread
3c7b4e6b8be4c1 Catalin Marinas   2009-06-11  1762   *   scan=...        - set 
the automatic memory scanning period in seconds (0 to
3c7b4e6b8be4c1 Catalin Marinas   2009-06-11  1763   *             disable it)
4698c1f2bbe44c Catalin Marinas   2009-06-26  1764   *   scan    - trigger a 
memory scan
30b3710105be0b Luis R. Rodriguez 2009-09-04  1765   *   clear   - mark all 
current reported unreferenced kmemleak objects as
c89da70c736029 Li Zefan          2014-04-03  1766   *             grey to 
ignore printing them, or free all kmemleak objects
c89da70c736029 Li Zefan          2014-04-03  1767   *             if kmemleak 
has been disabled.
189d84ed54bbb0 Catalin Marinas   2009-08-27  1768   *   dump=...        - dump 
information about the object found at the given address
3c7b4e6b8be4c1 Catalin Marinas   2009-06-11  1769   */
3c7b4e6b8be4c1 Catalin Marinas   2009-06-11  1770  static ssize_t 
kmemleak_write(struct file *file, const char __user *user_buf,
3c7b4e6b8be4c1 Catalin Marinas   2009-06-11  1771                             
size_t size, loff_t *ppos)
3c7b4e6b8be4c1 Catalin Marinas   2009-06-11  1772  {
3c7b4e6b8be4c1 Catalin Marinas   2009-06-11  1773       char buf[64];
3c7b4e6b8be4c1 Catalin Marinas   2009-06-11  1774       int buf_size;
b87324d082d9d8 Catalin Marinas   2009-07-07  1775       int ret;
3c7b4e6b8be4c1 Catalin Marinas   2009-06-11  1776  
3c7b4e6b8be4c1 Catalin Marinas   2009-06-11  1777       buf_size = min(size, 
(sizeof(buf) - 1));
3c7b4e6b8be4c1 Catalin Marinas   2009-06-11  1778       if 
(strncpy_from_user(buf, user_buf, buf_size) < 0)
3c7b4e6b8be4c1 Catalin Marinas   2009-06-11  1779               return -EFAULT;
3c7b4e6b8be4c1 Catalin Marinas   2009-06-11  1780       buf[buf_size] = 0;
3c7b4e6b8be4c1 Catalin Marinas   2009-06-11  1781  
b87324d082d9d8 Catalin Marinas   2009-07-07  1782       ret = 
mutex_lock_interruptible(&scan_mutex);
b87324d082d9d8 Catalin Marinas   2009-07-07  1783       if (ret < 0)
b87324d082d9d8 Catalin Marinas   2009-07-07  1784               return ret;
b87324d082d9d8 Catalin Marinas   2009-07-07  1785  
c89da70c736029 Li Zefan          2014-04-03  1786       if (strncmp(buf, 
"clear", 5) == 0) {
8910ae896c8c96 Li Zefan          2014-04-03  1787               if 
(kmemleak_enabled)
c89da70c736029 Li Zefan          2014-04-03  1788                       
kmemleak_clear();
c89da70c736029 Li Zefan          2014-04-03  1789               else
c89da70c736029 Li Zefan          2014-04-03  1790                       
__kmemleak_do_cleanup();
c89da70c736029 Li Zefan          2014-04-03  1791               goto out;
c89da70c736029 Li Zefan          2014-04-03  1792       }
c89da70c736029 Li Zefan          2014-04-03  1793  
8910ae896c8c96 Li Zefan          2014-04-03  1794       if (!kmemleak_enabled) {
4e4dfce2278929 André Almeida     2019-07-11  1795               ret = -EPERM;
c89da70c736029 Li Zefan          2014-04-03  1796               goto out;
c89da70c736029 Li Zefan          2014-04-03  1797       }
c89da70c736029 Li Zefan          2014-04-03  1798  
3c7b4e6b8be4c1 Catalin Marinas   2009-06-11  1799       if (strncmp(buf, "off", 
3) == 0)
3c7b4e6b8be4c1 Catalin Marinas   2009-06-11  1800               
kmemleak_disable();
3c7b4e6b8be4c1 Catalin Marinas   2009-06-11  1801       else if (strncmp(buf, 
"stack=on", 8) == 0)
3c7b4e6b8be4c1 Catalin Marinas   2009-06-11  1802               
kmemleak_stack_scan = 1;
3c7b4e6b8be4c1 Catalin Marinas   2009-06-11  1803       else if (strncmp(buf, 
"stack=off", 9) == 0)
3c7b4e6b8be4c1 Catalin Marinas   2009-06-11  1804               
kmemleak_stack_scan = 0;
3c7b4e6b8be4c1 Catalin Marinas   2009-06-11  1805       else if (strncmp(buf, 
"scan=on", 7) == 0)
3c7b4e6b8be4c1 Catalin Marinas   2009-06-11  1806               
start_scan_thread();
3c7b4e6b8be4c1 Catalin Marinas   2009-06-11  1807       else if (strncmp(buf, 
"scan=off", 8) == 0)
3c7b4e6b8be4c1 Catalin Marinas   2009-06-11  1808               
stop_scan_thread();
3c7b4e6b8be4c1 Catalin Marinas   2009-06-11  1809       else if (strncmp(buf, 
"scan=", 5) == 0) {
1961331845977b Yanfei Xu         2021-06-17  1810               unsigned secs;
1961331845977b Yanfei Xu         2021-06-17  1811               unsigned long 
msecs;
3c7b4e6b8be4c1 Catalin Marinas   2009-06-11  1812  
1961331845977b Yanfei Xu         2021-06-17  1813               ret = 
kstrtouint(buf + 5, 0, &secs);
b87324d082d9d8 Catalin Marinas   2009-07-07  1814               if (ret < 0)
b87324d082d9d8 Catalin Marinas   2009-07-07  1815                       goto 
out;
1961331845977b Yanfei Xu         2021-06-17  1816  
1961331845977b Yanfei Xu         2021-06-17  1817               msecs = secs * 
MSEC_PER_SEC;
1961331845977b Yanfei Xu         2021-06-17 @1818               if (msecs > 
UINT_MAX)
1961331845977b Yanfei Xu         2021-06-17  1819                       msecs = 
UINT_MAX;
1961331845977b Yanfei Xu         2021-06-17  1820  
3c7b4e6b8be4c1 Catalin Marinas   2009-06-11  1821               
stop_scan_thread();
1961331845977b Yanfei Xu         2021-06-17  1822               if (msecs) {
1961331845977b Yanfei Xu         2021-06-17  1823                       
WRITE_ONCE(jiffies_scan_wait, msecs_to_jiffies(msecs));
3c7b4e6b8be4c1 Catalin Marinas   2009-06-11  1824                       
start_scan_thread();
3c7b4e6b8be4c1 Catalin Marinas   2009-06-11  1825               }
4698c1f2bbe44c Catalin Marinas   2009-06-26  1826       } else if (strncmp(buf, 
"scan", 4) == 0)
4698c1f2bbe44c Catalin Marinas   2009-06-26  1827               kmemleak_scan();
189d84ed54bbb0 Catalin Marinas   2009-08-27  1828       else if (strncmp(buf, 
"dump=", 5) == 0)
189d84ed54bbb0 Catalin Marinas   2009-08-27  1829               ret = 
dump_str_object_info(buf + 5);
4698c1f2bbe44c Catalin Marinas   2009-06-26  1830       else
b87324d082d9d8 Catalin Marinas   2009-07-07  1831               ret = -EINVAL;
b87324d082d9d8 Catalin Marinas   2009-07-07  1832  
b87324d082d9d8 Catalin Marinas   2009-07-07  1833  out:
b87324d082d9d8 Catalin Marinas   2009-07-07  1834       
mutex_unlock(&scan_mutex);
b87324d082d9d8 Catalin Marinas   2009-07-07  1835       if (ret < 0)
b87324d082d9d8 Catalin Marinas   2009-07-07  1836               return ret;
3c7b4e6b8be4c1 Catalin Marinas   2009-06-11  1837  
3c7b4e6b8be4c1 Catalin Marinas   2009-06-11  1838       /* ignore the rest of 
the buffer, only one command at a time */
3c7b4e6b8be4c1 Catalin Marinas   2009-06-11  1839       *ppos += size;
3c7b4e6b8be4c1 Catalin Marinas   2009-06-11  1840       return size;
3c7b4e6b8be4c1 Catalin Marinas   2009-06-11  1841  }
3c7b4e6b8be4c1 Catalin Marinas   2009-06-11  1842  

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

Attachment: .config.gz
Description: application/gzip

_______________________________________________
kbuild mailing list -- kbuild@lists.01.org
To unsubscribe send an email to kbuild-le...@lists.01.org

Reply via email to