1. 07 May, 2022 17 commits
    • Vincent Mailhol's avatar
      checksyscalls: ignore -Wunused-macros · f4d40868
      Vincent Mailhol authored
      The macros defined in this file are for testing only and are purposely
      not used. When compiled with W=2, both gcc and clang yield some
      -Wunused-macros warnings. Ignore them.
      Signed-off-by: default avatarVincent Mailhol <mailhol.vincent@wanadoo.fr>
      Signed-off-by: default avatarMasahiro Yamada <masahiroy@kernel.org>
      f4d40868
    • Jiri Slaby's avatar
      scripts: dummy-tools, add pahole · a90bb65a
      Jiri Slaby authored
      CONFIG_PAHOLE_VERSION is a part of a config since the commit below. And
      when multiple people update the config, this value constantly changes.
      Even if they use dummy scripts.
      
      To fix this, add a pahole dummy script returning v99.99. (This is
      translated into 9999 later in the process.)
      
      Thereafter, this script can be invoked easily for example as:
      make PAHOLE=scripts/dummy-tools/pahole oldconfig
      
      Fixes: 613fe169 (kbuild: Add CONFIG_PAHOLE_VERSION)
      Signed-off-by: default avatarJiri Slaby <jslaby@suse.cz>
      Signed-off-by: default avatarMasahiro Yamada <masahiroy@kernel.org>
      a90bb65a
    • Daniel Mentz's avatar
      kheaders: Have cpio unconditionally replace files · 1e8ca62b
      Daniel Mentz authored
      For out-of-tree builds, this script invokes cpio twice to copy header
      files from the srctree and subsequently from the objtree. According to a
      comment in the script, there might be situations in which certain files
      already exist in the destination directory when header files are copied
      from the objtree:
      
      "The second CPIO can complain if files already exist which can happen
      with out of tree builds having stale headers in srctree. Just silence
      CPIO for now."
      
      GNU cpio might simply print a warning like "newer or same age version
      exists", but toybox cpio exits with a non-zero exit code unless the
      command line option "-u" is specified.
      
      To improve compatibility with toybox cpio, add the command line option
      "-u" to unconditionally replace existing files in the destination
      directory.
      Signed-off-by: default avatarDaniel Mentz <danielmentz@google.com>
      Signed-off-by: default avatarMasahiro Yamada <masahiroy@kernel.org>
      1e8ca62b
    • Yann Droneaud's avatar
      kbuild: support W=e to make build abort in case of warning · c77d06e7
      Yann Droneaud authored
      When developing new code/feature, CONFIG_WERROR is most
      often turned off, especially for people using make W=12 to
      get more warnings.
      
      In such case, turning on -Werror temporarily would require
      switching on CONFIG_WERROR in the configuration, building,
      then switching off CONFIG_WERROR.
      
      For this use case, this patch introduces a new 'e' modifier
      to W= as a short hand for KCFLAGS+=-Werror" so that -Werror
      got added to the kernel (built-in) and modules' CFLAGS.
      Signed-off-by: default avatarYann Droneaud <ydroneaud@opteya.com>
      Signed-off-by: default avatarMasahiro Yamada <masahiroy@kernel.org>
      c77d06e7
    • Masahiro Yamada's avatar
      kbuild: read *.mod to get objects passed to $(LD) or $(AR) · feb7d79f
      Masahiro Yamada authored
      ld and ar support @file, which command-line options are read from.
      
      Now that *.mod lists the member objects in the correct order, without
      duplication, it is ready to be passed to ld and ar.
      
      By using the @file syntax, people will not be worried about the pitfall
      described in the NOTE.
      Signed-off-by: default avatarMasahiro Yamada <masahiroy@kernel.org>
      Reviewed-by: default avatarNick Desaulniers <ndesaulniers@google.com>
      feb7d79f
    • Masahiro Yamada's avatar
      kbuild: make *.mod not depend on *.o · fc93a4cd
      Masahiro Yamada authored
      The dependency
      
          $(obj)/%.mod: $(obj)/%$(mod-prelink-ext).o
      
      ... exists because *.mod files previously contained undefined symbols,
      which are computed from *.o files when CONFIG_TRIM_UNUSED_KSYMS=y.
      
      Now that the undefined symbols are put into separate *.usyms files,
      there is no reason to make *.mod depend on *.o files.
      Signed-off-by: default avatarMasahiro Yamada <masahiroy@kernel.org>
      fc93a4cd
    • Masahiro Yamada's avatar
      kbuild: get rid of duplication in *.mod files · 22f26f21
      Masahiro Yamada authored
      It is allowed to add the same objects multiple times to obj-y / obj-m:
      
        obj-y += foo.o foo.o foo.o
        obj-m += bar.o bar.o bar.o
      
      It is also allowed to add the same objects multiple times to a composite
      module:
      
        obj-m += foo.o
        foo-y := foo1.o foo2.o foo2.o foo1.o
      
      This flexibility is useful because the same object might be selected by
      different CONFIG options, like this:
      
        obj-m               += foo.o
        foo-y               := foo1.o
        foo-$(CONFIG_FOO_X) += foo2.o
        foo-$(CONFIG_FOO_Y) += foo2.o
      
      The duplicated objects are omitted at link time. It works naturally in
      Makefiles because GNU Make removes duplication in $^ without changing
      the order.
      
      It is working well, almost...
      
      A small flaw I notice is, *.mod contains duplication in such a case.
      
      This is probably not a big deal. As far as I know, the only small
      problem is scripts/mod/sumversion.c parses the same file multiple
      times.
      
      I am fixing this because I plan to reuse *.mod for other purposes,
      where the duplication can be problematic.
      
      The code change is quite simple. We already use awk to drop duplicated
      lines in modules.order (see cmd_modules_order in the same file).
      I copied the code, but changed RS to use spaces as record separators.
      
      I also changed the file format to list one object per line.
      Signed-off-by: default avatarMasahiro Yamada <masahiroy@kernel.org>
      22f26f21
    • Masahiro Yamada's avatar
      kbuild: split the second line of *.mod into *.usyms · 9413e764
      Masahiro Yamada authored
      The *.mod files have two lines; the first line lists the member objects
      of the module, and the second line, if CONFIG_TRIM_UNUSED_KSYMS=y, lists
      the undefined symbols.
      
      Currently, we generate *.mod after constructing composite modules,
      otherwise, we cannot compute the second line. No prerequisite is
      required to print the first line.
      
      They are orthogonal. Splitting them into separate commands will ease
      further cleanups.
      
      This commit splits the list of undefined symbols out to *.usyms files.
      
      Previously, the list of undefined symbols ended up with a very long
      line, but now it has one symbol per line.
      
      Use sed like we did before commit 7d32358b ("kbuild: avoid split
      lines in .mod files").
      Signed-off-by: default avatarMasahiro Yamada <masahiroy@kernel.org>
      Reviewed-by: default avatarNicolas Schier <nicolas@fjasle.eu>
      9413e764
    • Masahiro Yamada's avatar
      kbuild: reuse real-search to simplify cmd_mod · b3591e06
      Masahiro Yamada authored
      The first command in cmd_mod is similar to the real-search macro.
      Reuse it.
      Signed-off-by: default avatarMasahiro Yamada <masahiroy@kernel.org>
      Reviewed-by: default avatarNick Desaulniers <ndesaulniers@google.com>
      b3591e06
    • Masahiro Yamada's avatar
      kbuild: make multi_depend work with targets in subdirectory · f97cf399
      Masahiro Yamada authored
      Precisely speaking, when you get the stem of the path, you should use
      $(patsubst $(obj)/%,%,...) instead of $(notdir ...).
      
      I do not see this usecase, but if you create a composite object in a
      subdirectory, the Makefile should look like this:
      
         obj-$(CONFIG_FOO) += dir/foo.o
         dir/foo-objs      := dir/foo1.o dir/foo2.o
      
      The member objects should be assigned to dir/foo-objs instead of
      foo-objs.
      
      This syntax is more consistent with commit 54b8ae66 ("kbuild:
      change *FLAGS_<basetarget>.o to take the path relative to $(obj)").
      Signed-off-by: default avatarMasahiro Yamada <masahiroy@kernel.org>
      Reviewed-by: default avatarNick Desaulniers <ndesaulniers@google.com>
      f97cf399
    • Masahiro Yamada's avatar
      kbuild: reuse suffix-search to refactor multi_depend · 9eef99f7
      Masahiro Yamada authored
      The complicated part of multi_depend is the same as suffix-search.
      
      Reuse it.
      Signed-off-by: default avatarMasahiro Yamada <masahiroy@kernel.org>
      Reviewed-by: default avatarNick Desaulniers <ndesaulniers@google.com>
      9eef99f7
    • Masahiro Yamada's avatar
      kbuild: refactor cmd_modversions_S · 7cfa2fcb
      Masahiro Yamada authored
      Split the code into two macros, cmd_gen_symversions_S for running
      genksyms, and cmd_modversions for running $(LD) to update the object
      with CRCs.
      Signed-off-by: default avatarMasahiro Yamada <masahiroy@kernel.org>
      Reviewed-by: default avatarNick Desaulniers <ndesaulniers@google.com>
      7cfa2fcb
    • Masahiro Yamada's avatar
      kbuild: refactor cmd_modversions_c · 8017ce50
      Masahiro Yamada authored
      cmd_modversions_c implements two parts; run genksyms to calculate CRCs
      of exported symbols, run $(LD) to update the object with the CRCs. The
      latter is not executed for CONFIG_LTO_CLANG=y since the object is not
      ELF but LLVM bit code at this point.
      
      The first part can be unified because we can always use $(NM) instead
      of "$(OBJDUMP) -h" to dump the symbols.
      
      Split the code into the two macros, cmd_gen_symversions_c and
      cmd_modversions.
      Signed-off-by: default avatarMasahiro Yamada <masahiroy@kernel.org>
      Reviewed-by: default avatarNick Desaulniers <ndesaulniers@google.com>
      8017ce50
    • Masahiro Yamada's avatar
      modpost: remove annoying namespace_from_kstrtabns() · 79f646e8
      Masahiro Yamada authored
      There are two call sites for sym_update_namespace().
      
      When the symbol has no namespace, s->namespace is set to NULL,
      but the conversion from "" to NULL is done in two different places.
      
      [1] read_symbols()
      
        This gets the namespace from __kstrtabns_<symbol>. If the symbol has
        no namespace, sym_get_data(info, sym) returns the empty string "".
        namespace_from_kstrtabns() converts it to NULL before it is passed to
        sym_update_namespace().
      
      [2] read_dump()
      
        This gets the namespace from the dump file, *.symvers. If the symbol
        has no namespace, the 'namespace' is the empty string "", which is
        directly passed into sym_update_namespace(). The conversion from
        "" to NULL is done in sym_update_namespace().
      
      namespace_from_kstrtabns() exists only for creating this inconsistency.
      
      Remove namespace_from_kstrtabns() so that sym_update_namespace() is
      consistently passed with "" instead of NULL.
      Signed-off-by: default avatarMasahiro Yamada <masahiroy@kernel.org>
      Reviewed-by: default avatarNick Desaulniers <ndesaulniers@google.com>
      79f646e8
    • Masahiro Yamada's avatar
      modpost: remove redundant initializes for static variables · b5f1a52a
      Masahiro Yamada authored
      These are initialized with zeros without explicit initializers.
      Signed-off-by: default avatarMasahiro Yamada <masahiroy@kernel.org>
      Reviewed-by: default avatarNick Desaulniers <ndesaulniers@google.com>
      b5f1a52a
    • Masahiro Yamada's avatar
      modpost: move export_from_secname() call to more relevant place · 535b3e05
      Masahiro Yamada authored
      The assigned 'export' is only used when
      
          if (strstarts(symname, "__ksymtab_"))
      
      is met. The else-part of the assignment is the dead code.
      
      Move the export_from_secname() call to where it is used.
      Signed-off-by: default avatarMasahiro Yamada <masahiroy@kernel.org>
      Reviewed-by: default avatarNick Desaulniers <ndesaulniers@google.com>
      535b3e05
    • Masahiro Yamada's avatar
      modpost: remove useless export_from_sec() · 7ce3e410
      Masahiro Yamada authored
      With commit 1743694e ("modpost: stop symbol preloading for
      modversion CRC") applied, now export_from_sec() is useless.
      
      handle_symbol() is called for every symbol in the ELF.
      
      When 'symname' does not start with "__ksymtab", export_from_sec() is
      called, and the returned value is stored in 'export'.
      
      It is used in the last part of handle_symbol():
      
          if (strstarts(symname, "__ksymtab_")) {
                  name = symname + strlen("__ksymtab_");
                  sym_add_exported(name, mod, export);
          }
      
      'export' is used only when 'symname' starts with "__ksymtab_".
      
      So, the value returned by export_from_sec() is never used.
      
      Remove useless export_from_sec(). This makes further cleanups possible.
      
      I put the temporary code:
      
          export = export_unknown;
      
      Otherwise, I would get the compiler warning:
      
          warning: 'export' may be used uninitialized in this function [-Wmaybe-uninitialized]
      
      This is apparently false positive because
      
          if (strstarts(symname, "__ksymtab_")
      
      ... is a stronger condition than:
      
          if (strstarts(symname, "__ksymtab")
      
      Anyway, this part will be cleaned up by the next commit.
      Signed-off-by: default avatarMasahiro Yamada <masahiroy@kernel.org>
      Reviewed-by: default avatarNick Desaulniers <ndesaulniers@google.com>
      7ce3e410
  2. 06 Apr, 2022 3 commits
  3. 05 Apr, 2022 2 commits
  4. 03 Apr, 2022 8 commits
  5. 02 Apr, 2022 10 commits
    • Linus Torvalds's avatar
      Merge tag 'perf-tools-for-v5.18-2022-04-02' of... · be2d3ece
      Linus Torvalds authored
      Merge tag 'perf-tools-for-v5.18-2022-04-02' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux
      
      Pull more perf tools updates from Arnaldo Carvalho de Melo:
      
       - Avoid SEGV if core.cpus isn't set in 'perf stat'.
      
       - Stop depending on .git files for building PERF-VERSION-FILE, used in
         'perf --version', fixing some perf tools build scenarios.
      
       - Convert tracepoint.py example to python3.
      
       - Update UAPI header copies from the kernel sources: socket,
         mman-common, msr-index, KVM, i915 and cpufeatures.
      
       - Update copy of libbpf's hashmap.c.
      
       - Directly return instead of using local ret variable in
         evlist__create_syswide_maps(), found by coccinelle.
      
      * tag 'perf-tools-for-v5.18-2022-04-02' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux:
        perf python: Convert tracepoint.py example to python3
        perf evlist: Directly return instead of using local ret variable
        perf cpumap: More cpu map reuse by merge.
        perf cpumap: Add is_subset function
        perf evlist: Rename cpus to user_requested_cpus
        perf tools: Stop depending on .git files for building PERF-VERSION-FILE
        tools headers cpufeatures: Sync with the kernel sources
        tools headers UAPI: Sync drm/i915_drm.h with the kernel sources
        tools headers UAPI: Sync linux/kvm.h with the kernel sources
        tools kvm headers arm64: Update KVM headers from the kernel sources
        tools arch x86: Sync the msr-index.h copy with the kernel sources
        tools headers UAPI: Sync asm-generic/mman-common.h with the kernel
        perf beauty: Update copy of linux/socket.h with the kernel sources
        perf tools: Update copy of libbpf's hashmap.c
        perf stat: Avoid SEGV if core.cpus isn't set
      be2d3ece
    • Linus Torvalds's avatar
      Merge tag 'kbuild-fixes-v5.18' of... · d897b680
      Linus Torvalds authored
      Merge tag 'kbuild-fixes-v5.18' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild
      
      Pull Kbuild fixes from Masahiro Yamada:
      
       - Fix empty $(PYTHON) expansion.
      
       - Fix UML, which got broken by the attempt to suppress Clang warnings.
      
       - Fix warning message in modpost.
      
      * tag 'kbuild-fixes-v5.18' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild:
        modpost: restore the warning message for missing symbol versions
        Revert "um: clang: Strip out -mno-global-merge from USER_CFLAGS"
        kbuild: Remove '-mno-global-merge'
        kbuild: fix empty ${PYTHON} in scripts/link-vmlinux.sh
        kconfig: remove stale comment about removed kconfig_print_symbol()
      d897b680
    • Linus Torvalds's avatar
      Merge tag 'mips_5.18_1' of git://git.kernel.org/pub/scm/linux/kernel/git/mips/linux · 0b0fa57a
      Linus Torvalds authored
      Pull MIPS fixes from Thomas Bogendoerfer:
      
       - build fix for gpio
      
       - fix crc32 build problems
      
       - check for failed memory allocations
      
      * tag 'mips_5.18_1' of git://git.kernel.org/pub/scm/linux/kernel/git/mips/linux:
        MIPS: crypto: Fix CRC32 code
        MIPS: rb532: move GPIOD definition into C-files
        MIPS: lantiq: check the return value of kzalloc()
        mips: sgi-ip22: add a check for the return of kzalloc()
      0b0fa57a
    • Linus Torvalds's avatar
      Merge tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm · 38904911
      Linus Torvalds authored
      Pull kvm fixes from Paolo Bonzini:
      
       - Only do MSR filtering for MSRs accessed by rdmsr/wrmsr
      
       - Documentation improvements
      
       - Prevent module exit until all VMs are freed
      
       - PMU Virtualization fixes
      
       - Fix for kvm_irq_delivery_to_apic_fast() NULL-pointer dereferences
      
       - Other miscellaneous bugfixes
      
      * tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm: (42 commits)
        KVM: x86: fix sending PV IPI
        KVM: x86/mmu: do compare-and-exchange of gPTE via the user address
        KVM: x86: Remove redundant vm_entry_controls_clearbit() call
        KVM: x86: cleanup enter_rmode()
        KVM: x86: SVM: fix tsc scaling when the host doesn't support it
        kvm: x86: SVM: remove unused defines
        KVM: x86: SVM: move tsc ratio definitions to svm.h
        KVM: x86: SVM: fix avic spec based definitions again
        KVM: MIPS: remove reference to trap&emulate virtualization
        KVM: x86: document limitations of MSR filtering
        KVM: x86: Only do MSR filtering when access MSR by rdmsr/wrmsr
        KVM: x86/emulator: Emulate RDPID only if it is enabled in guest
        KVM: x86/pmu: Fix and isolate TSX-specific performance event logic
        KVM: x86: mmu: trace kvm_mmu_set_spte after the new SPTE was set
        KVM: x86/svm: Clear reserved bits written to PerfEvtSeln MSRs
        KVM: x86: Trace all APICv inhibit changes and capture overall status
        KVM: x86: Add wrappers for setting/clearing APICv inhibits
        KVM: x86: Make APICv inhibit reasons an enum and cleanup naming
        KVM: X86: Handle implicit supervisor access with SMAP
        KVM: X86: Rename variable smap to not_smap in permission_fault()
        ...
      38904911
    • Masahiro Yamada's avatar
      modpost: restore the warning message for missing symbol versions · bf5c0c22
      Masahiro Yamada authored
      This log message was accidentally chopped off.
      
      I was wondering why this happened, but checking the ML log, Mark
      precisely followed my suggestion [1].
      
      I just used "..." because I was too lazy to type the sentence fully.
      Sorry for the confusion.
      
      [1]: https://lore.kernel.org/all/CAK7LNAR6bXXk9-ZzZYpTqzFqdYbQsZHmiWspu27rtsFxvfRuVA@mail.gmail.com/
      
      Fixes: 4a679593 ("kbuild: modpost: Explicitly warn about unprototyped symbols")
      Signed-off-by: default avatarMasahiro Yamada <masahiroy@kernel.org>
      Acked-by: default avatarMark Brown <broonie@kernel.org>
      Reviewed-by: default avatarNick Desaulniers <ndesaulniers@google.com>
      bf5c0c22
    • Linus Torvalds's avatar
      Merge tag 'for-5.18/drivers-2022-04-02' of git://git.kernel.dk/linux-block · 6f34f8c3
      Linus Torvalds authored
      Pull block driver fix from Jens Axboe:
       "Got two reports on nbd spewing warnings on load now, which is a
        regression from a commit that went into your tree yesterday.
      
        Revert the problematic change for now"
      
      * tag 'for-5.18/drivers-2022-04-02' of git://git.kernel.dk/linux-block:
        Revert "nbd: fix possible overflow on 'first_minor' in nbd_dev_add()"
      6f34f8c3
    • Linus Torvalds's avatar
      Merge tag 'pci-v5.18-changes-2' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci · 9a212aaf
      Linus Torvalds authored
      Pull pci fix from Bjorn Helgaas:
      
       - Fix Hyper-V "defined but not used" build issue added during merge
         window (YueHaibing)
      
      * tag 'pci-v5.18-changes-2' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci:
        PCI: hv: Remove unused hv_set_msi_entry_from_desc()
      9a212aaf
    • Linus Torvalds's avatar
      Merge tag 'tag-chrome-platform-for-v5.18' of... · 02d4f8a3
      Linus Torvalds authored
      Merge tag 'tag-chrome-platform-for-v5.18' of git://git.kernel.org/pub/scm/linux/kernel/git/chrome-platform/linux
      
      Pull chrome platform updates from Benson Leung:
       "cros_ec_typec:
      
         - Check for EC device - Fix a crash when using the cros_ec_typec
           driver on older hardware not capable of typec commands
      
         - Make try power role optional
      
         - Mux configuration reorganization series from Prashant
      
        cros_ec_debugfs:
      
         - Fix use after free. Thanks Tzung-bi
      
        sensorhub:
      
         - cros_ec_sensorhub fixup - Split trace include file
      
        misc:
      
         - Add new mailing list for chrome-platform development:
      
      	chrome-platform@lists.linux.dev
      
           Now with patchwork!"
      
      * tag 'tag-chrome-platform-for-v5.18' of git://git.kernel.org/pub/scm/linux/kernel/git/chrome-platform/linux:
        platform/chrome: cros_ec_debugfs: detach log reader wq from devm
        platform: chrome: Split trace include file
        platform/chrome: cros_ec_typec: Update mux flags during partner removal
        platform/chrome: cros_ec_typec: Configure muxes at start of port update
        platform/chrome: cros_ec_typec: Get mux state inside configure_mux
        platform/chrome: cros_ec_typec: Move mux flag checks
        platform/chrome: cros_ec_typec: Check for EC device
        platform/chrome: cros_ec_typec: Make try power role optional
        MAINTAINERS: platform-chrome: Add new chrome-platform@lists.linux.dev list
      02d4f8a3
    • Jens Axboe's avatar
      Revert "nbd: fix possible overflow on 'first_minor' in nbd_dev_add()" · 7198bfc2
      Jens Axboe authored
      This reverts commit 6d35d04a.
      
      Both Gabriel and Borislav report that this commit casues a regression
      with nbd:
      
      sysfs: cannot create duplicate filename '/dev/block/43:0'
      
      Revert it before 5.18-rc1 and we'll investigage this separately in
      due time.
      
      Link: https://lore.kernel.org/all/YkiJTnFOt9bTv6A2@zn.tnic/Reported-by: default avatarGabriel L. Somlo <somlo@cmu.edu>
      Reported-by: default avatarBorislav Petkov <bp@alien8.de>
      Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
      7198bfc2
    • Eric Dumazet's avatar
      watch_queue: Free the page array when watch_queue is dismantled · b4902070
      Eric Dumazet authored
      Commit 7ea1a012 ("watch_queue: Free the alloc bitmap when the
      watch_queue is torn down") took care of the bitmap, but not the page
      array.
      
        BUG: memory leak
        unreferenced object 0xffff88810d9bc140 (size 32):
        comm "syz-executor335", pid 3603, jiffies 4294946994 (age 12.840s)
        hex dump (first 32 bytes):
          40 a7 40 04 00 ea ff ff 00 00 00 00 00 00 00 00  @.@.............
          00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
        backtrace:
           kmalloc_array include/linux/slab.h:621 [inline]
           kcalloc include/linux/slab.h:652 [inline]
           watch_queue_set_size+0x12f/0x2e0 kernel/watch_queue.c:251
           pipe_ioctl+0x82/0x140 fs/pipe.c:632
           vfs_ioctl fs/ioctl.c:51 [inline]
           __do_sys_ioctl fs/ioctl.c:874 [inline]
           __se_sys_ioctl fs/ioctl.c:860 [inline]
           __x64_sys_ioctl+0xfc/0x140 fs/ioctl.c:860
           do_syscall_x64 arch/x86/entry/common.c:50 [inline]
      
      Reported-by: syzbot+25ea042ae28f3888727a@syzkaller.appspotmail.com
      Fixes: c73be61c ("pipe: Add general notification queue support")
      Signed-off-by: default avatarEric Dumazet <edumazet@google.com>
      Signed-off-by: default avatarDavid Howells <dhowells@redhat.com>
      Cc: Jann Horn <jannh@google.com>
      Link: https://lore.kernel.org/r/20220322004654.618274-1-eric.dumazet@gmail.com/Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      b4902070