1. 20 Aug, 2021 9 commits
    • Bob Peterson's avatar
      gfs2: Delay withdraw from atomic context · fffe9bee
      Bob Peterson authored
      Before this patch, if function __gfs2_ail_flush detected an error
      syncing the ail list, it call gfs2_ail_error which called gfs2_withdraw.
      Since __gfs2_ail_flush deals with a specific glock, we shouldn't withdraw
      immediately because the withdraw code (signal_our_withdraw) uses glocks
      in its processing.
      
      This patch changes the call from gfs2_withdraw to gfs2_withdraw_delayed
      which defers the withdraw until a more appropriate context, such as the
      logd daemon, discovers the intent to withdraw.
      Reported-by: default avatarDan Carpenter <dan.carpenter@oracle.com>
      Signed-off-by: default avatarBob Peterson <rpeterso@redhat.com>
      fffe9bee
    • Bob Peterson's avatar
      gfs2: Don't call dlm after protocol is unmounted · d1340f80
      Bob Peterson authored
      In the gfs2 withdraw sequence, the dlm protocol is unmounted with a call
      to lm_unmount. After a withdraw, users are allowed to unmount the
      withdrawn file system. But at that point we may still have glocks left
      over that we need to free via unmount's call to gfs2_gl_hash_clear.
      These glocks may have never been completed because of whatever problem
      caused the withdraw (IO errors or whatever).
      
      Before this patch, function gdlm_put_lock would still try to call into
      dlm to unlock these leftover glocks, which resulted in dlm returning
      -EINVAL because the lock space was abandoned. These glocks were never
      freed because there was no mechanism after that to free them.
      
      This patch adds a check to gdlm_put_lock to see if the locking protocol
      was inactive (DFL_UNMOUNT flag) and if so, free the glock and not
      make the invalid call into dlm.
      
      I could have combined this "if" with the one that follows, related to
      leftover glock LVBs, but I felt the code was more readable with its own
      if clause.
      Signed-off-by: default avatarBob Peterson <rpeterso@redhat.com>
      d1340f80
    • Bob Peterson's avatar
      gfs2: don't stop reads while withdraw in progress · 8cc67f70
      Bob Peterson authored
      When gfs2 withdraws a file system, it calls signal_our_withdraw which
      triggers another node to replay the withdrawing node's journal. Then it
      waits until it knows the journal has been replayed. Part of this wait is
      to repeatedly call check_journal_clean which calls gfs2_jdesc_check,
      which checks to see if the journal is sane. As part of its sanity checks
      it needs to re-read its journal's metadata. But with today's code, any
      attempt to re-read the metadata results in -EIO because of a check for
      the file system withdraw in function gfs2_meta_wait.
      
      This patch adds an additional check for SDF_WITHDRAW_IN_PROG, to tell
      if the read is done while the withdraw is in progress. In that case
      we allow the metadata read to not be rejected. Therefore the metadata
      check is done properly, so the withdraw sequence can finish normally.
      Signed-off-by: default avatarBob Peterson <rpeterso@redhat.com>
      8cc67f70
    • Bob Peterson's avatar
      gfs2: Mark journal inodes as "don't cache" · 1b8550b5
      Bob Peterson authored
      Before this patch, journal inodes were considered regular inodes,
      which meant that instead of evicting them, function iput_final would
      just put them on the lru for later processing. If the file system
      withdrew for whatever reason, the withdraw would never be seen until
      the inode was evicted, which could be indefinitely.
      
      This patch marks all journal inodes as "don't cache" which means
      function iput_final will evict them immediately, allowing us to
      properly recover the journal on other cluster nodes.
      Signed-off-by: default avatarBob Peterson <rpeterso@redhat.com>
      1b8550b5
    • Bob Peterson's avatar
      gfs2: nit: gfs2_drop_inode shouldn't return bool · ba3ca2bc
      Bob Peterson authored
      Today, gfs2_drop_inode can return "false" for an int value.
      I'm sure this was just an oversight. Change to int value.
      Signed-off-by: default avatarBob Peterson <rpeterso@redhat.com>
      ba3ca2bc
    • Bob Peterson's avatar
      gfs2: Eliminate vestigial HIF_FIRST · a8f1d32d
      Bob Peterson authored
      Holder flag HIF_FIRST is no longer used or needed, so remove it.
      Signed-off-by: default avatarBob Peterson <rpeterso@redhat.com>
      a8f1d32d
    • Bob Peterson's avatar
      gfs2: Make recovery error more readable · 7392fbb0
      Bob Peterson authored
      Before this patch, withdraws could cause an error that looked like:
      Journal recovery skipped for 0 until next mount.
      This patch changes it to a more readable:
      Journal recovery skipped for jid 0 until next mount.
      Signed-off-by: default avatarBob Peterson <rpeterso@redhat.com>
      7392fbb0
    • Bob Peterson's avatar
      gfs2: Don't release and reacquire local statfs bh · 70c11ba8
      Bob Peterson authored
      Before this patch, several functions in gfs2 related to the updating
      of the statfs file used a newly acquired/read buffer_head for the
      local statfs file. This is completely unnecessary, because other nodes
      should never update it. Recreating the buffer is a waste of time.
      
      This patch allows gfs2 to read in the local statefs buffer_head at
      mount time and keep it around until unmount time.
      Signed-off-by: default avatarBob Peterson <rpeterso@redhat.com>
      70c11ba8
    • Bob Peterson's avatar
      gfs2: init system threads before freeze lock · a28dc123
      Bob Peterson authored
      Patch 96b1454f ("gfs2: move freeze glock outside the make_fs_rw and _ro
      functions") changed the gfs2 mount sequence so that it holds the freeze
      lock before calling gfs2_make_fs_rw. Before this patch, gfs2_make_fs_rw
      called init_threads to initialize the quotad and logd threads. That is a
      problem if the system needs to withdraw due to IO errors early in the
      mount sequence, for example, while initializing the system statfs inode:
      
      1. An IO error causes the statfs glock to not sync properly after
         recovery, and leaves items on the ail list.
      2. The leftover items on the ail list causes its do_xmote call to fail,
         which makes it want to withdraw. But since the glock code cannot
         withdraw (because the withdraw sequence uses glocks) it relies upon
         the logd daemon to initiate the withdraw.
      3. The withdraw can never be performed by the logd daemon because all
         this takes place before the logd daemon is started.
      
      This patch moves function init_threads from super.c to ops_fstype.c
      and it changes gfs2_fill_super to start its threads before holding the
      freeze lock, and if there's an error, stop its threads after releasing
      it. This allows the logd to run unblocked by the freeze lock. Thus,
      the logd daemon can perform its withdraw sequence properly.
      
      Fixes: 96b1454f ("gfs2: move freeze glock outside the make_fs_rw and _ro functions")
      Signed-off-by: default avatarBob Peterson <rpeterso@redhat.com>
      a28dc123
  2. 19 Aug, 2021 3 commits
  3. 04 Aug, 2021 1 commit
    • Bob Peterson's avatar
      gfs2: Fix glock recursion in freeze_go_xmote_bh · 9d9b1605
      Bob Peterson authored
      We must not call gfs2_consist (which does a file system withdraw) from
      the freeze glock's freeze_go_xmote_bh function because the withdraw
      will try to use the freeze glock, thus causing a glock recursion error.
      
      This patch changes freeze_go_xmote_bh to call function
      gfs2_assert_withdraw_delayed instead of gfs2_consist to avoid recursion.
      Signed-off-by: default avatarBob Peterson <rpeterso@redhat.com>
      9d9b1605
  4. 20 Jul, 2021 1 commit
  5. 18 Jul, 2021 13 commits
    • Linus Torvalds's avatar
      Linux 5.14-rc2 · 2734d6c1
      Linus Torvalds authored
      2734d6c1
    • Linus Torvalds's avatar
      Merge tag 'perf-tools-fixes-for-v5.14-2021-07-18' of... · 8c25c447
      Linus Torvalds authored
      Merge tag 'perf-tools-fixes-for-v5.14-2021-07-18' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux
      
      Pull perf tools fixes from Arnaldo Carvalho de Melo:
      
       - Skip invalid hybrid PMU on hybrid systems when the atom (little) CPUs
         are offlined.
      
       - Fix 'perf test' problems related to the recently added hybrid
         (BIG/little) code.
      
       - Split ARM's coresight (hw tracing) decode by aux records to avoid
         fatal decoding errors.
      
       - Fix add event failure in 'perf probe' when running 32-bit perf in a
         64-bit kernel.
      
       - Fix 'perf sched record' failure when CONFIG_SCHEDSTATS is not set.
      
       - Fix memory and refcount leaks detected by ASAn when running 'perf
         test', should be clean of warnings now.
      
       - Remove broken definition of __LITTLE_ENDIAN from tools'
         linux/kconfig.h, which was breaking the build in some systems.
      
       - Cast PTHREAD_STACK_MIN to int as it may turn into 'long
         sysconf(__SC_THREAD_STACK_MIN_VALUE), breaking the build in some
         systems.
      
       - Fix libperf build error with LIBPFM4=1.
      
       - Sync UAPI files changed by the memfd_secret new syscall.
      
      * tag 'perf-tools-fixes-for-v5.14-2021-07-18' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux: (35 commits)
        perf sched: Fix record failure when CONFIG_SCHEDSTATS is not set
        perf probe: Fix add event failure when running 32-bit perf in a 64-bit kernel
        perf data: Close all files in close_dir()
        perf probe-file: Delete namelist in del_events() on the error path
        perf test bpf: Free obj_buf
        perf trace: Free strings in trace__parse_events_option()
        perf trace: Free syscall tp fields in evsel->priv
        perf trace: Free syscall->arg_fmt
        perf trace: Free malloc'd trace fields on exit
        perf lzma: Close lzma stream on exit
        perf script: Fix memory 'threads' and 'cpus' leaks on exit
        perf script: Release zstd data
        perf session: Cleanup trace_event
        perf inject: Close inject.output on exit
        perf report: Free generated help strings for sort option
        perf env: Fix memory leak of cpu_pmu_caps
        perf test maps__merge_in: Fix memory leak of maps
        perf dso: Fix memory leak in dso__new_map()
        perf test event_update: Fix memory leak of unit
        perf test event_update: Fix memory leak of evlist
        ...
      8c25c447
    • Linus Torvalds's avatar
      Merge tag 'xfs-5.14-fixes-1' of git://git.kernel.org/pub/scm/fs/xfs/xfs-linux · f0eb870a
      Linus Torvalds authored
      Pull xfs fixes from Darrick Wong:
       "A few fixes for issues in the new online shrink code, additional
        corrections for my recent bug-hunt w.r.t. extent size hints on
        realtime, and improved input checking of the GROWFSRT ioctl.
      
        IOW, the usual 'I somehow got bored during the merge window and
        resumed auditing the farther reaches of xfs':
      
         - Fix shrink eligibility checking when sparse inode clusters enabled
      
         - Reset '..' directory entries when unlinking directories to prevent
           verifier errors if fs is shrinked later
      
         - Don't report unusable extent size hints to FSGETXATTR
      
         - Don't warn when extent size hints are unusable because the sysadmin
           configured them that way
      
         - Fix insufficient parameter validation in GROWFSRT ioctl
      
         - Fix integer overflow when adding rt volumes to filesystem"
      
      * tag 'xfs-5.14-fixes-1' of git://git.kernel.org/pub/scm/fs/xfs/xfs-linux:
        xfs: detect misaligned rtinherit directory extent size hints
        xfs: fix an integer overflow error in xfs_growfs_rt
        xfs: improve FSGROWFSRT precondition checking
        xfs: don't expose misaligned extszinherit hints to userspace
        xfs: correct the narrative around misaligned rtinherit/extszinherit dirs
        xfs: reset child dir '..' entry when unlinking child
        xfs: check for sparse inode clusters that cross new EOAG when shrinking
      f0eb870a
    • Linus Torvalds's avatar
      Merge tag 'iomap-5.14-fixes-1' of git://git.kernel.org/pub/scm/fs/xfs/xfs-linux · fbf1bddc
      Linus Torvalds authored
      Pull iomap fixes from Darrick Wong:
       "A handful of bugfixes for the iomap code.
      
        There's nothing especially exciting here, just fixes for UBSAN (not
        KASAN as I erroneously wrote in the tag message) warnings about
        undefined behavior in the SEEK_DATA/SEEK_HOLE code, and some
        reshuffling of per-page block state info to fix some problems with
        gfs2.
      
         - Fix KASAN warnings due to integer overflow in SEEK_DATA/SEEK_HOLE
      
         - Fix assertion errors when using inlinedata files on gfs2"
      
      * tag 'iomap-5.14-fixes-1' of git://git.kernel.org/pub/scm/fs/xfs/xfs-linux:
        iomap: Don't create iomap_page objects in iomap_page_mkwrite_actor
        iomap: Don't create iomap_page objects for inline files
        iomap: Permit pages without an iop to enter writeback
        iomap: remove the length variable in iomap_seek_hole
        iomap: remove the length variable in iomap_seek_data
      fbf1bddc
    • Linus Torvalds's avatar
      Merge tag 'kbuild-fixes-v5.14' of... · 6750691a
      Linus Torvalds authored
      Merge tag 'kbuild-fixes-v5.14' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild
      
      Pull Kbuild fixes from Masahiro Yamada:
      
       - Restore the original behavior of scripts/setlocalversion when
         LOCALVERSION is set to empty.
      
       - Show Kconfig prompts even for 'make -s'
      
       - Fix the combination of COFNIG_LTO_CLANG=y and CONFIG_MODVERSIONS=y
         for older GNU Make versions
      
      * tag 'kbuild-fixes-v5.14' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild:
        Documentation: Fix intiramfs script name
        Kbuild: lto: fix module versionings mismatch in GNU make 3.X
        kbuild: do not suppress Kconfig prompts for silent build
        scripts/setlocalversion: fix a bug when LOCALVERSION is empty
      6750691a
    • Robert Richter's avatar
      Documentation: Fix intiramfs script name · 5e60f363
      Robert Richter authored
      Documentation was not changed when renaming the script in commit
      80e715a0 ("initramfs: rename gen_initramfs_list.sh to
      gen_initramfs.sh"). Fixing this.
      
      Basically does:
      
       $ sed -i -e s/gen_initramfs_list.sh/gen_initramfs.sh/g $(git grep -l gen_initramfs_list.sh)
      
      Fixes: 80e715a0 ("initramfs: rename gen_initramfs_list.sh to gen_initramfs.sh")
      Signed-off-by: default avatarRobert Richter <rrichter@amd.com>
      Signed-off-by: default avatarMasahiro Yamada <masahiroy@kernel.org>
      5e60f363
    • Lecopzer Chen's avatar
      Kbuild: lto: fix module versionings mismatch in GNU make 3.X · 1d11053d
      Lecopzer Chen authored
      When building modules(CONFIG_...=m), I found some of module versions
      are incorrect and set to 0.
      This can be found in build log for first clean build which shows
      
      WARNING: EXPORT symbol "XXXX" [drivers/XXX/XXX.ko] version generation failed,
      symbol will not be versioned.
      
      But in second build(incremental build), the WARNING disappeared and the
      module version becomes valid CRC and make someone who want to change
      modules without updating kernel image can't insert their modules.
      
      The problematic code is
      +	$(foreach n, $(filter-out FORCE,$^),				\
      +		$(if $(wildcard $(n).symversions),			\
      +			; cat $(n).symversions >> $@.symversions))
      
      For example:
        rm -f fs/notify/built-in.a.symversions    ; rm -f fs/notify/built-in.a; \
      llvm-ar cDPrST fs/notify/built-in.a fs/notify/fsnotify.o \
      fs/notify/notification.o fs/notify/group.o ...
      
      `foreach n` shows nothing to `cat` into $(n).symversions because
      `if $(wildcard $(n).symversions)` return nothing, but actually
      they do exist during this line was executed.
      
      -rw-r--r-- 1 root root 168580 Jun 13 19:10 fs/notify/fsnotify.o
      -rw-r--r-- 1 root root    111 Jun 13 19:10 fs/notify/fsnotify.o.symversions
      
      The reason is the $(n).symversions are generated at runtime, but
      Makefile wildcard function expends and checks the file exist or not
      during parsing the Makefile.
      
      Thus fix this by use `test` shell command to check the file
      existence in runtime.
      
      Rebase from both:
      1. [https://lore.kernel.org/lkml/20210616080252.32046-1-lecopzer.chen@mediatek.com/]
      2. [https://lore.kernel.org/lkml/20210702032943.7865-1-lecopzer.chen@mediatek.com/]
      
      Fixes: 38e89184 ("kbuild: lto: fix module versioning")
      Co-developed-by: default avatarSami Tolvanen <samitolvanen@google.com>
      Signed-off-by: default avatarLecopzer Chen <lecopzer.chen@mediatek.com>
      Signed-off-by: default avatarMasahiro Yamada <masahiroy@kernel.org>
      1d11053d
    • Masahiro Yamada's avatar
      kbuild: do not suppress Kconfig prompts for silent build · d952cfaf
      Masahiro Yamada authored
      When a new CONFIG option is available, Kbuild shows a prompt to get
      the user input.
      
        $ make
        [ snip ]
        Core Scheduling for SMT (SCHED_CORE) [N/y/?] (NEW)
      
      This is the only interactive place in the build process.
      
      Commit 174a1dcc ("kbuild: sink stdout from cmd for silent build")
      suppressed Kconfig prompts as well because syncconfig is invoked by
      the 'cmd' macro. You cannot notice the fact that Kconfig is waiting
      for the user input.
      
      Use 'kecho' to show the equivalent short log without suppressing stdout
      from sub-make.
      
      Fixes: 174a1dcc ("kbuild: sink stdout from cmd for silent build")
      Reported-by: default avatarTetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
      Signed-off-by: default avatarMasahiro Yamada <masahiroy@kernel.org>
      Tested-by: default avatarTetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
      d952cfaf
    • Mikulas Patocka's avatar
      scripts/setlocalversion: fix a bug when LOCALVERSION is empty · 5df99bec
      Mikulas Patocka authored
      The commit 042da426 ("scripts/setlocalversion: simplify the short
      version part") reduces indentation. Unfortunately, it also changes behavior
      in a subtle way - if the user has empty "LOCALVERSION" variable, the plus
      sign is appended to the kernel version. It wasn't appended before.
      
      This patch reverts to the old behavior - we append the plus sign only if
      the LOCALVERSION variable is not set.
      
      Fixes: 042da426 ("scripts/setlocalversion: simplify the short version part")
      Signed-off-by: default avatarMikulas Patocka <mpatocka@redhat.com>
      Signed-off-by: default avatarMasahiro Yamada <masahiroy@kernel.org>
      5df99bec
    • Yang Jihong's avatar
      perf sched: Fix record failure when CONFIG_SCHEDSTATS is not set · b0f00855
      Yang Jihong authored
      The tracepoints trace_sched_stat_{wait, sleep, iowait} are not exposed to user
      if CONFIG_SCHEDSTATS is not set, "perf sched record" records the three events.
      As a result, the command fails.
      
      Before:
      
        #perf sched record sleep 1
        event syntax error: 'sched:sched_stat_wait'
                             \___ unknown tracepoint
      
        Error:  File /sys/kernel/tracing/events/sched/sched_stat_wait not found.
        Hint:   Perhaps this kernel misses some CONFIG_ setting to enable this feature?.
      
        Run 'perf list' for a list of valid events
      
         Usage: perf record [<options>] [<command>]
            or: perf record [<options>] -- <command> [<options>]
      
            -e, --event <event>   event selector. use 'perf list' to list available events
      
      Solution:
        Check whether schedstat tracepoints are exposed. If no, these events are not recorded.
      
      After:
        # perf sched record sleep 1
        [ perf record: Woken up 1 times to write data ]
        [ perf record: Captured and wrote 0.163 MB perf.data (1091 samples) ]
        # perf sched report
        run measurement overhead: 4736 nsecs
        sleep measurement overhead: 9059979 nsecs
        the run test took 999854 nsecs
        the sleep test took 8945271 nsecs
        nr_run_events:        716
        nr_sleep_events:      785
        nr_wakeup_events:     0
        ...
        ------------------------------------------------------------
      
      Fixes: 2a09b5de ("sched/fair: do not expose some tracepoints to user if CONFIG_SCHEDSTATS is not set")
      Signed-off-by: default avatarYang Jihong <yangjihong1@huawei.com>
      Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
      Cc: Jiri Olsa <jolsa@redhat.com>
      Cc: Mark Rutland <mark.rutland@arm.com>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Steven Rostedt (VMware) <rostedt@goodmis.org>
      Cc: Yafang Shao <laoar.shao@gmail.com>
      Link: http://lore.kernel.org/lkml/20210713112358.194693-1-yangjihong1@huawei.comSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      b0f00855
    • Yang Jihong's avatar
      perf probe: Fix add event failure when running 32-bit perf in a 64-bit kernel · 22a66551
      Yang Jihong authored
      The "address" member of "struct probe_trace_point" uses long data type.
      If kernel is 64-bit and perf program is 32-bit, size of "address"
      variable is 32 bits.
      
      As a result, upper 32 bits of address read from kernel are truncated, an
      error occurs during address comparison in kprobe_warn_out_range().
      
      Before:
      
        # perf probe -a schedule
        schedule is out of .text, skip it.
          Error: Failed to add events.
      
      Solution:
        Change data type of "address" variable to u64 and change corresponding
      address printing and value assignment.
      
      After:
      
        # perf.new.new probe -a schedule
        Added new event:
          probe:schedule       (on schedule)
      
        You can now use it in all perf tools, such as:
      
                perf record -e probe:schedule -aR sleep 1
      
        # perf probe -l
          probe:schedule       (on schedule@kernel/sched/core.c)
        # perf record -e probe:schedule -aR sleep 1
        [ perf record: Woken up 1 times to write data ]
        [ perf record: Captured and wrote 0.156 MB perf.data (1366 samples) ]
        # perf report --stdio
        # To display the perf.data header info, please use --header/--header-only options.
        #
        #
        # Total Lost Samples: 0
        #
        # Samples: 1K of event 'probe:schedule'
        # Event count (approx.): 1366
        #
        # Overhead  Command          Shared Object      Symbol
        # ........  ...............  .................  ............
        #
             6.22%  migration/0      [kernel.kallsyms]  [k] schedule
             6.22%  migration/1      [kernel.kallsyms]  [k] schedule
             6.22%  migration/2      [kernel.kallsyms]  [k] schedule
             6.22%  migration/3      [kernel.kallsyms]  [k] schedule
             6.15%  migration/10     [kernel.kallsyms]  [k] schedule
             6.15%  migration/11     [kernel.kallsyms]  [k] schedule
             6.15%  migration/12     [kernel.kallsyms]  [k] schedule
             6.15%  migration/13     [kernel.kallsyms]  [k] schedule
             6.15%  migration/14     [kernel.kallsyms]  [k] schedule
             6.15%  migration/15     [kernel.kallsyms]  [k] schedule
             6.15%  migration/4      [kernel.kallsyms]  [k] schedule
             6.15%  migration/5      [kernel.kallsyms]  [k] schedule
             6.15%  migration/6      [kernel.kallsyms]  [k] schedule
             6.15%  migration/7      [kernel.kallsyms]  [k] schedule
             6.15%  migration/8      [kernel.kallsyms]  [k] schedule
             6.15%  migration/9      [kernel.kallsyms]  [k] schedule
             0.22%  rcu_sched        [kernel.kallsyms]  [k] schedule
        ...
        #
        # (Cannot load tips.txt file, please install perf!)
        #
      Signed-off-by: default avatarYang Jihong <yangjihong1@huawei.com>
      Acked-by: default avatarMasami Hiramatsu <mhiramat@kernel.org>
      Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
      Cc: Frank Ch. Eigler <fche@redhat.com>
      Cc: Ian Rogers <irogers@google.com>
      Cc: Jianlin Lv <jianlin.lv@arm.com>
      Cc: Jin Yao <yao.jin@linux.intel.com>
      Cc: Jiri Olsa <jolsa@redhat.com>
      Cc: Li Huafei <lihuafei1@huawei.com>
      Cc: Mark Rutland <mark.rutland@arm.com>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Ravi Bangoria <ravi.bangoria@linux.ibm.com>
      Cc: Srikar Dronamraju <srikar@linux.vnet.ibm.com>
      Link: http://lore.kernel.org/lkml/20210715063723.11926-1-yangjihong1@huawei.comSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      22a66551
    • Riccardo Mancini's avatar
      perf data: Close all files in close_dir() · d4b3eedc
      Riccardo Mancini authored
      When using 'perf report' in directory mode, the first file is not closed
      on exit, causing a memory leak.
      
      The problem is caused by the iterating variable never reaching 0.
      
      Fixes: 14552063 ("perf data: Add perf_data__(create_dir|close_dir) functions")
      Signed-off-by: default avatarRiccardo Mancini <rickyman7@gmail.com>
      Acked-by: default avatarNamhyung Kim <namhyung@kernel.org>
      Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
      Cc: Ian Rogers <irogers@google.com>
      Cc: Jiri Olsa <jolsa@redhat.com>
      Cc: Mark Rutland <mark.rutland@arm.com>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Zhen Lei <thunder.leizhen@huawei.com>
      Link: http://lore.kernel.org/lkml/20210716141122.858082-1-rickyman7@gmail.comSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      d4b3eedc
    • Riccardo Mancini's avatar
      perf probe-file: Delete namelist in del_events() on the error path · e0fa7ab4
      Riccardo Mancini authored
      ASan reports some memory leaks when running:
      
        # perf test "42: BPF filter"
      
      This second leak is caused by a strlist not being dellocated on error
      inside probe_file__del_events.
      
      This patch adds a goto label before the deallocation and makes the error
      path jump to it.
      Signed-off-by: default avatarRiccardo Mancini <rickyman7@gmail.com>
      Fixes: e7895e42 ("perf probe: Split del_perf_probe_events()")
      Cc: Ian Rogers <irogers@google.com>
      Cc: Jiri Olsa <jolsa@redhat.com>
      Cc: Mark Rutland <mark.rutland@arm.com>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Link: http://lore.kernel.org/lkml/174963c587ae77fa108af794669998e4ae558338.1626343282.git.rickyman7@gmail.comSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      e0fa7ab4
  6. 17 Jul, 2021 9 commits
    • Linus Torvalds's avatar
      Merge tag 'soc-fixes-5.14-1' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc · 1d67c8d9
      Linus Torvalds authored
      Pull ARM SoC fixes from Arnd Bergmann:
       "Here are the patches for this week that came as the fallout of the
        merge window:
      
         - Two fixes for the NVidia memory controller driver
      
         - multiple defconfig files get patched to turn CONFIG_FB back on
           after that is no longer selected by CONFIG_DRM
      
         - ffa and scmpi firmware drivers fixes, mostly addressing compiler
           and documentation warnings
      
         - Platform specific fixes for device tree files on ASpeed, Renesas
           and NVidia SoC, mostly for recent regressions.
      
         - A workaround for a regression on the USB PHY with devlink when the
           usb-nop-xceiv driver is not available until the rootfs is mounted.
      
         - Device tree compiler warnings in Arm Versatile-AB"
      
      * tag 'soc-fixes-5.14-1' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc: (35 commits)
        ARM: dts: versatile: Fix up interrupt controller node names
        ARM: multi_v7_defconfig: Make NOP_USB_XCEIV driver built-in
        ARM: configs: Update u8500_defconfig
        ARM: configs: Update Vexpress defconfig
        ARM: configs: Update Versatile defconfig
        ARM: configs: Update RealView defconfig
        ARM: configs: Update Integrator defconfig
        arm: Typo s/PCI_IXP4XX_LEGACY/IXP4XX_PCI_LEGACY/
        firmware: arm_scmi: Fix range check for the maximum number of pending messages
        firmware: arm_scmi: Avoid padding in sensor message structure
        firmware: arm_scmi: Fix kernel doc warnings about return values
        firmware: arm_scpi: Fix kernel doc warnings
        firmware: arm_scmi: Fix kernel doc warnings
        ARM: shmobile: defconfig: Restore graphical consoles
        firmware: arm_ffa: Fix a possible ffa_linux_errmap buffer overflow
        firmware: arm_ffa: Fix the comment style
        firmware: arm_ffa: Simplify probe function
        firmware: arm_ffa: Ensure drivers provide a probe function
        firmware: arm_scmi: Fix possible scmi_linux_errmap buffer overflow
        firmware: arm_scmi: Ensure drivers provide a probe function
        ...
      1d67c8d9
    • Linus Torvalds's avatar
      Revert "mm/slub: use stackdepot to save stack trace in objects" · ae14c63a
      Linus Torvalds authored
      This reverts commit 78869146.
      
      It's not clear why, but it causes unexplained problems in entirely
      unrelated xfs code.  The most likely explanation is some slab
      corruption, possibly triggered due to CONFIG_SLUB_DEBUG_ON.  See [1].
      
      It ends up having a few other problems too, like build errors on
      arch/arc, and Geert reporting it using much more memory on m68k [3] (it
      probably does so elsewhere too, but it is probably just more noticeable
      on m68k).
      
      The architecture issues (both build and memory use) are likely just
      because this change effectively force-enabled STACKDEPOT (along with a
      very bad default value for the stackdepot hash size).  But together with
      the xfs issue, this all smells like "this commit was not ready" to me.
      
      Link: https://lore.kernel.org/linux-xfs/YPE3l82acwgI2OiV@infradead.org/ [1]
      Link: https://lore.kernel.org/lkml/202107150600.LkGNb4Vb-lkp@intel.com/ [2]
      Link: https://lore.kernel.org/lkml/CAMuHMdW=eoVzM1Re5FVoEN87nKfiLmM2+Ah7eNu2KXEhCvbZyA@mail.gmail.com/ [3]
      Reported-by: default avatarChristoph Hellwig <hch@infradead.org>
      Reported-by: default avatarkernel test robot <lkp@intel.com>
      Reported-by: default avatarGeert Uytterhoeven <geert@linux-m68k.org>
      Cc: Andrew Morton <akpm@linux-foundation.org>
      Cc: Vlastimil Babka <vbabka@suse.cz>
      Cc: Randy Dunlap <rdunlap@infradead.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      ae14c63a
    • Linus Torvalds's avatar
      Merge tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi · 5d766d55
      Linus Torvalds authored
      Pull SCSI fixes from James Bottomley:
       "One core fix for an oops which can occur if the error handling thread
        fails to start for some reason and the driver is removed.
      
        The other fixes are all minor ones in drivers"
      
      * tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi:
        scsi: ufs: core: Add missing host_lock in ufshcd_vops_setup_xfer_req()
        scsi: mpi3mr: Fix W=1 compilation warnings
        scsi: pm8001: Clean up kernel-doc and comments
        scsi: zfcp: Report port fc_security as unknown early during remote cable pull
        scsi: core: Fix bad pointer dereference when ehandler kthread is invalid
        scsi: fas216: Fix a build error
        scsi: core: Fix the documentation of the scsi_execute() time parameter
      5d766d55
    • Linus Torvalds's avatar
      Merge tag '5.14-rc1-smb3-fixes' of git://git.samba.org/sfrench/cifs-2.6 · 44cb60b4
      Linus Torvalds authored
      Pull cifs fixes from Steve French:
       "Eight cifs/smb3 fixes, including three for stable.
      
        Three are DFS related fixes, and two to fix problems pointed out by
        static checkers"
      
      * tag '5.14-rc1-smb3-fixes' of git://git.samba.org/sfrench/cifs-2.6:
        cifs: do not share tcp sessions of dfs connections
        SMB3.1.1: fix mount failure to some servers when compression enabled
        cifs: added WARN_ON for all the count decrements
        cifs: fix missing null session check in mount
        cifs: handle reconnect of tcon when there is no cached dfs referral
        cifs: fix the out of range assignment to bit fields in parse_server_interfaces
        cifs: Do not use the original cruid when following DFS links for multiuser mounts
        cifs: use the expiry output of dns_query to schedule next resolution
      44cb60b4
    • Linus Torvalds's avatar
      Merge tag 'linux-kselftest-kunit-fixes-5.14-rc2' of... · ccbb22b9
      Linus Torvalds authored
      Merge tag 'linux-kselftest-kunit-fixes-5.14-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest
      
      Pull kunit fixes from Shuah Khan:
       "Fixes to kunit tool and documentation:
      
         - fix asserts on older python versions
      
         - fixes to misleading error messages when TAP header format is
           incorrect or when file is missing
      
         - documentation fix: drop obsolete information about uml_abort
           coverage
      
         - remove unnecessary annotations"
      
      * tag 'linux-kselftest-kunit-fixes-5.14-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest:
        kunit: tool: Assert the version requirement
        kunit: tool: remove unnecessary "annotations" import
        Documentation: kunit: drop obsolete note about uml_abort for coverage
        kunit: tool: Fix error messages for cases of no tests and wrong TAP header
      ccbb22b9
    • Linus Torvalds's avatar
      Merge tag 'linux-kselftest-fixes-5.14-rc2' of... · 00397e74
      Linus Torvalds authored
      Merge tag 'linux-kselftest-fixes-5.14-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest
      
      Pull kselftest fix from Shuah Khan:
       "A fix to memory-hotplug hot-remove test to stop spamming logs with
        dump_page() entries and slowing the system down to a crawl"
      
      * tag 'linux-kselftest-fixes-5.14-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest:
        selftests: memory-hotplug: avoid spamming logs with dump_page(), ratio limit hot-remove error test
      00397e74
    • Linus Torvalds's avatar
      Merge tag 'trace-v5.14-5' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace · 3fdacf40
      Linus Torvalds authored
      Pull tracing fix from Steven Rostedt:
       "Fix the histogram logic from possibly crashing the kernel
      
        Working on the histogram code, I found that if you dereference a char
        pointer in a trace event that happens to point to user space, it can
        crash the kernel, as it does no checks of that pointer. I have code
        coming that will do this better, so just remove this ability to treat
        character pointers in trace events as stings in the histogram"
      
      * tag 'trace-v5.14-5' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace:
        tracing: Do not reference char * as a string in histograms
      3fdacf40
    • Linus Torvalds's avatar
      Merge tag 'devicetree-fixes-for-5.14-1' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux · d980cc06
      Linus Torvalds authored
      Pull devicetree fixes from Rob Herring:
      
       - Drop 'resets' as required on renesas,du
      
       - Moving of fixed string patterns for 'properties' instead of
         'patternProperties'
      
       - Drop more redundant minItems/maxItems that we merged in the merge
         window
      
       - Indentation warning fix for sja1105
      
      * tag 'devicetree-fixes-for-5.14-1' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux:
        dt-bindings: display: renesas,du: Make resets optional on R-Car H1
        dt-bindings: Move fixed string 'patternProperties' to 'properties'
        dt-bindings: More dropping redundant minItems/maxItems
        dt-bindings: net: dsa: sja1105: Fix indentation warnings
      d980cc06
    • Linus Torvalds's avatar
      Merge tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux · 5f06a790
      Linus Torvalds authored
      Pull arm64 fixes from Will Deacon:
       "The bulk of the diffstat consists of changes to our uaccess routines
        so that they fall back to bytewise copying prior to reporting complete
        failure when the initial (multi-byte) access faults.
      
        However, the most disappointing change here is that we've had to bump
        ARCH_DMA_MINALIGN back to 128 bytes thanks to Qualcomm's "Kryo" CPU,
        which ended up in the MSM8996 mobile SoC. Still, at least we're now
        aware of this design and one of the hardware designers confirmed the
        L2 cacheline size for us.
      
        Summary:
      
         - Fix instrumentation annotations for entry code
      
         - Ensure kernel MTE state is restored correctly on resume from suspend
      
         - Fix MTE fault from new strlen() routine
      
         - Fallback to byte-wise accesses on initial uaccess fault
      
         - Bump Clang requirement for BTI
      
         - Revert ARCH_DMA_MINALIGN back to 128 bytes (shakes fist at Qualcomm)"
      
      * tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux:
        arm64: entry: fix KCOV suppression
        arm64: entry: add missing noinstr
        arm64: mte: fix restoration of GCR_EL1 from suspend
        arm64: Avoid premature usercopy failure
        arm64: Restrict ARM64_BTI_KERNEL to clang 12.0.0 and newer
        Revert "arm64: cache: Lower ARCH_DMA_MINALIGN to 64 (L1_CACHE_BYTES)"
        arm64: Add missing header <asm/smp.h> in two files
        arm64: fix strlen() with CONFIG_KASAN_HW_TAGS
      5f06a790
  7. 16 Jul, 2021 4 commits