On Thu, May 18, 2023 at 01:32:47PM -0700, Andrew Morton wrote: > On Thu, 18 May 2023 23:44:10 +0800 kernel test robot <lkp@xxxxxxxxx> wrote: > > > tree: https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master > > head: 798d276b39e984345d52b933a900a71fa0815928 > > commit: e435b85a4aea7a82259105d5d8025655460052e1 [2908/3314] mm, page_owner: add page_owner_stacks file to print out only stacks and their counte > > config: x86_64-randconfig-m001 > > compiler: gcc-11 (Debian 11.3.0-12) 11.3.0 > > > > If you fix the issue, kindly add following tag where applicable > > | Reported-by: kernel test robot <lkp@xxxxxxxxx> > > | Closes: https://lore.kernel.org/oe-kbuild-all/202305182345.LTMlWG84-lkp@xxxxxxxxx/ > > > > smatch warnings: > > lib/stackdepot.c:544 stack_print() warn: unsigned 'stack->size' is never less than zero. > > > > Linus would complain about that warning. > Yeah. I hadn't intended that warning to be printed. It's supposed to check for if the check for negatives is paired with an upper bound check. That Smatch check is original vintage from 2009 so it's due for a re-write. > > > > 537 > > 538 int stack_print(struct seq_file *m, void *v) > > 539 { > > 540 char *buf; > > 541 int ret = 0; > > 542 struct stack_record *stack = v; > > 543 > > > 544 if (!stack->size || stack->size < 0 || > > 545 stack->size > PAGE_SIZE || stack->handle.valid != 1 || > > 546 refcount_read(&stack->count) < 1) > > How about <=? It doesn't really solve the problem. Smatch complains about that too. I'll fix the Smatch check. regards, dan carpenter