Re: [PATCH 1/2] firmware: bcm47xx_nvram: allow to read from buffered nvram data

From: kernel test robot
Date: Tue Feb 07 2023 - 01:21:50 EST


Hi Willem-Jan,

Thank you for the patch! Yet something to improve:

[auto build test ERROR on linus/master]
[also build test ERROR on v6.2-rc7 next-20230206]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]

url: https://github.com/intel-lab-lkp/linux/commits/Willem-Jan-de-Hoog/firmware-bcm47xx_nvram-allow-to-read-from-buffered-nvram-data/20230206-180737
patch link: https://lore.kernel.org/r/20230206100502.20243-2-wdehoog%40exalondelft.nl
patch subject: [PATCH 1/2] firmware: bcm47xx_nvram: allow to read from buffered nvram data
config: sparc-randconfig-r035-20230205 (https://download.01.org/0day-ci/archive/20230207/202302071414.czB7JMnU-lkp@xxxxxxxxx/config)
compiler: sparc-linux-gcc (GCC) 12.1.0
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# https://github.com/intel-lab-lkp/linux/commit/763f6661565b50b967e4f22e41cf46d27e14e58f
git remote add linux-review https://github.com/intel-lab-lkp/linux
git fetch --no-tags linux-review Willem-Jan-de-Hoog/firmware-bcm47xx_nvram-allow-to-read-from-buffered-nvram-data/20230206-180737
git checkout 763f6661565b50b967e4f22e41cf46d27e14e58f
# save the config file
mkdir build_dir && cp config build_dir/.config
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-12.1.0 make.cross W=1 O=build_dir ARCH=sparc olddefconfig
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-12.1.0 make.cross W=1 O=build_dir ARCH=sparc SHELL=/bin/bash drivers/mtd/parsers/

If you fix the issue, kindly add following tag where applicable
| Reported-by: kernel test robot <lkp@xxxxxxxxx>

All errors (new ones prefixed by >>):

In file included from drivers/mtd/parsers/ofpart_linksys_ns.c:6:
include/linux/bcm47xx_nvram.h:56:2: error: expected identifier or '(' before ':' token
56 | }:
| ^
In file included from include/linux/uio.h:10,
from include/linux/mtd/mtd.h:10,
from drivers/mtd/parsers/ofpart_linksys_ns.c:7:
>> include/linux/mm_types.h:704:48: error: 'NR_MM_COUNTERS' undeclared here (not in a function)
704 | struct percpu_counter rss_stat[NR_MM_COUNTERS];
| ^~~~~~~~~~~~~~


vim +/NR_MM_COUNTERS +704 include/linux/mm_types.h

227a4aadc75ba2 Mathieu Desnoyers 2019-09-19 628
b279ddc3382426 Vegard Nossum 2017-02-27 629 /**
b279ddc3382426 Vegard Nossum 2017-02-27 630 * @mm_users: The number of users including userspace.
b279ddc3382426 Vegard Nossum 2017-02-27 631 *
c1a2f7f0c06454 Rik van Riel 2018-07-16 632 * Use mmget()/mmget_not_zero()/mmput() to modify. When this
c1a2f7f0c06454 Rik van Riel 2018-07-16 633 * drops to 0 (i.e. when the task exits and there are no other
c1a2f7f0c06454 Rik van Riel 2018-07-16 634 * temporary reference holders), we also release a reference on
c1a2f7f0c06454 Rik van Riel 2018-07-16 635 * @mm_count (which may then free the &struct mm_struct if
c1a2f7f0c06454 Rik van Riel 2018-07-16 636 * @mm_count also drops to 0).
b279ddc3382426 Vegard Nossum 2017-02-27 637 */
b279ddc3382426 Vegard Nossum 2017-02-27 638 atomic_t mm_users;
b279ddc3382426 Vegard Nossum 2017-02-27 639
b279ddc3382426 Vegard Nossum 2017-02-27 640 /**
b279ddc3382426 Vegard Nossum 2017-02-27 641 * @mm_count: The number of references to &struct mm_struct
b279ddc3382426 Vegard Nossum 2017-02-27 642 * (@mm_users count as 1).
b279ddc3382426 Vegard Nossum 2017-02-27 643 *
b279ddc3382426 Vegard Nossum 2017-02-27 644 * Use mmgrab()/mmdrop() to modify. When this drops to 0, the
b279ddc3382426 Vegard Nossum 2017-02-27 645 * &struct mm_struct is freed.
b279ddc3382426 Vegard Nossum 2017-02-27 646 */
b279ddc3382426 Vegard Nossum 2017-02-27 647 atomic_t mm_count;
b279ddc3382426 Vegard Nossum 2017-02-27 648
c4812909f5d5a9 Kirill A. Shutemov 2017-11-15 649 #ifdef CONFIG_MMU
af5b0f6a09e42c Kirill A. Shutemov 2017-11-15 650 atomic_long_t pgtables_bytes; /* PTE page table pages */
5a3fbef325e872 Kirill A. Shutemov 2015-04-14 651 #endif
c92ff1bde06f69 Martin Schwidefsky 2007-10-16 652 int map_count; /* number of VMAs */
481b4bb5e370aa Richard Kennedy 2011-03-22 653
c1a2f7f0c06454 Rik van Riel 2018-07-16 654 spinlock_t page_table_lock; /* Protects page tables and some
c1a2f7f0c06454 Rik van Riel 2018-07-16 655 * counters
c1a2f7f0c06454 Rik van Riel 2018-07-16 656 */
2e3025434a6ba0 Feng Tang 2021-06-11 657 /*
2e3025434a6ba0 Feng Tang 2021-06-11 658 * With some kernel config, the current mmap_lock's offset
2e3025434a6ba0 Feng Tang 2021-06-11 659 * inside 'mm_struct' is at 0x120, which is very optimal, as
2e3025434a6ba0 Feng Tang 2021-06-11 660 * its two hot fields 'count' and 'owner' sit in 2 different
2e3025434a6ba0 Feng Tang 2021-06-11 661 * cachelines, and when mmap_lock is highly contended, both
2e3025434a6ba0 Feng Tang 2021-06-11 662 * of the 2 fields will be accessed frequently, current layout
2e3025434a6ba0 Feng Tang 2021-06-11 663 * will help to reduce cache bouncing.
2e3025434a6ba0 Feng Tang 2021-06-11 664 *
2e3025434a6ba0 Feng Tang 2021-06-11 665 * So please be careful with adding new fields before
2e3025434a6ba0 Feng Tang 2021-06-11 666 * mmap_lock, which can easily push the 2 fields into one
2e3025434a6ba0 Feng Tang 2021-06-11 667 * cacheline.
2e3025434a6ba0 Feng Tang 2021-06-11 668 */
da1c55f1b272f4 Michel Lespinasse 2020-06-08 669 struct rw_semaphore mmap_lock;
c92ff1bde06f69 Martin Schwidefsky 2007-10-16 670
c1a2f7f0c06454 Rik van Riel 2018-07-16 671 struct list_head mmlist; /* List of maybe swapped mm's. These
c1a2f7f0c06454 Rik van Riel 2018-07-16 672 * are globally strung together off
c1a2f7f0c06454 Rik van Riel 2018-07-16 673 * init_mm.mmlist, and are protected
c92ff1bde06f69 Martin Schwidefsky 2007-10-16 674 * by mmlist_lock
c92ff1bde06f69 Martin Schwidefsky 2007-10-16 675 */
c92ff1bde06f69 Martin Schwidefsky 2007-10-16 676
c92ff1bde06f69 Martin Schwidefsky 2007-10-16 677
c92ff1bde06f69 Martin Schwidefsky 2007-10-16 678 unsigned long hiwater_rss; /* High-watermark of RSS usage */
c92ff1bde06f69 Martin Schwidefsky 2007-10-16 679 unsigned long hiwater_vm; /* High-water virtual memory usage */
c92ff1bde06f69 Martin Schwidefsky 2007-10-16 680
e10d59f2c3deca Christoph Lameter 2011-10-31 681 unsigned long total_vm; /* Total pages mapped */
e10d59f2c3deca Christoph Lameter 2011-10-31 682 unsigned long locked_vm; /* Pages that have PG_mlocked set */
70f8a3ca68d3e1 Davidlohr Bueso 2019-02-06 683 atomic64_t pinned_vm; /* Refcount permanently increased */
30bdbb78009e67 Konstantin Khlebnikov 2016-02-02 684 unsigned long data_vm; /* VM_WRITE & ~VM_SHARED & ~VM_STACK */
30bdbb78009e67 Konstantin Khlebnikov 2016-02-02 685 unsigned long exec_vm; /* VM_EXEC & ~VM_WRITE & ~VM_STACK */
30bdbb78009e67 Konstantin Khlebnikov 2016-02-02 686 unsigned long stack_vm; /* VM_STACK */
e10d59f2c3deca Christoph Lameter 2011-10-31 687 unsigned long def_flags;
88aa7cc688d48d Yang Shi 2018-06-07 688
2e3025434a6ba0 Feng Tang 2021-06-11 689 /**
2e3025434a6ba0 Feng Tang 2021-06-11 690 * @write_protect_seq: Locked when any thread is write
2e3025434a6ba0 Feng Tang 2021-06-11 691 * protecting pages mapped by this mm to enforce a later COW,
2e3025434a6ba0 Feng Tang 2021-06-11 692 * for instance during page table copying for fork().
2e3025434a6ba0 Feng Tang 2021-06-11 693 */
2e3025434a6ba0 Feng Tang 2021-06-11 694 seqcount_t write_protect_seq;
2e3025434a6ba0 Feng Tang 2021-06-11 695
88aa7cc688d48d Yang Shi 2018-06-07 696 spinlock_t arg_lock; /* protect the below fields */
2e3025434a6ba0 Feng Tang 2021-06-11 697
c92ff1bde06f69 Martin Schwidefsky 2007-10-16 698 unsigned long start_code, end_code, start_data, end_data;
c92ff1bde06f69 Martin Schwidefsky 2007-10-16 699 unsigned long start_brk, brk, start_stack;
c92ff1bde06f69 Martin Schwidefsky 2007-10-16 700 unsigned long arg_start, arg_end, env_start, env_end;
c92ff1bde06f69 Martin Schwidefsky 2007-10-16 701
c92ff1bde06f69 Martin Schwidefsky 2007-10-16 702 unsigned long saved_auxv[AT_VECTOR_SIZE]; /* for /proc/PID/auxv */
c92ff1bde06f69 Martin Schwidefsky 2007-10-16 703
f1a7941243c102 Shakeel Butt 2022-10-24 @704 struct percpu_counter rss_stat[NR_MM_COUNTERS];
d559db086ff5be KAMEZAWA Hiroyuki 2010-03-05 705
801460d0cf5c52 Hiroshi Shimamoto 2009-09-23 706 struct linux_binfmt *binfmt;
801460d0cf5c52 Hiroshi Shimamoto 2009-09-23 707
c92ff1bde06f69 Martin Schwidefsky 2007-10-16 708 /* Architecture-specific MM context */
c92ff1bde06f69 Martin Schwidefsky 2007-10-16 709 mm_context_t context;
c92ff1bde06f69 Martin Schwidefsky 2007-10-16 710
c1a2f7f0c06454 Rik van Riel 2018-07-16 711 unsigned long flags; /* Must use atomic bitops to access */
c92ff1bde06f69 Martin Schwidefsky 2007-10-16 712

--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests