1. 09 Nov, 2021 5 commits
    • Nathan Chancellor's avatar
      lib: zstd: Add cast to silence clang's -Wbitwise-instead-of-logical · 0a8ea235
      Nathan Chancellor authored
      A new warning in clang warns that there is an instance where boolean
      expressions are being used with bitwise operators instead of logical
      ones:
      
      lib/zstd/decompress/huf_decompress.c:890:25: warning: use of bitwise '&' with boolean operands [-Wbitwise-instead-of-logical]
                             (BIT_reloadDStreamFast(&bitD1) == BIT_DStream_unfinished)
                             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      
      zstd does this frequently to help with performance, as logical operators
      have branches whereas bitwise ones do not.
      
      To fix this warning in other cases, the expressions were placed on
      separate lines with the '&=' operator; however, this particular instance
      was moved away from that so that it could be surrounded by LIKELY, which
      is a macro for __builtin_expect(), to help with a performance
      regression, according to upstream zstd pull #1973.
      
      Aside from switching to logical operators, which is likely undesirable
      in this instance, or disabling the warning outright, the solution is
      casting one of the expressions to an integer type to make it clear to
      clang that the author knows what they are doing. Add a cast to U32 to
      silence the warning. The first U32 cast is to silence an instance of
      -Wshorten-64-to-32 because __builtin_expect() returns long so it cannot
      be moved.
      
      Link: https://github.com/ClangBuiltLinux/linux/issues/1486
      Link: https://github.com/facebook/zstd/pull/1973Reported-by: default avatarNick Desaulniers <ndesaulniers@google.com>
      Signed-off-by: default avatarNathan Chancellor <nathan@kernel.org>
      Signed-off-by: default avatarNick Terrell <terrelln@fb.com>
      0a8ea235
    • Nick Terrell's avatar
      MAINTAINERS: Add maintainer entry for zstd · a99a65cf
      Nick Terrell authored
      Adds a maintainer entry for zstd listing myself as the maintainer for
      all zstd code, pointing to the upstream issues tracker for bugs, and
      listing my linux repo as the tree.
      Signed-off-by: default avatarNick Terrell <terrelln@fb.com>
      a99a65cf
    • Nick Terrell's avatar
      lib: zstd: Upgrade to latest upstream zstd version 1.4.10 · e0c1b49f
      Nick Terrell authored
      Upgrade to the latest upstream zstd version 1.4.10.
      
      This patch is 100% generated from upstream zstd commit 20821a46f412 [0].
      
      This patch is very large because it is transitioning from the custom
      kernel zstd to using upstream directly. The new zstd follows upstreams
      file structure which is different. Future update patches will be much
      smaller because they will only contain the changes from one upstream
      zstd release.
      
      As an aid for review I've created a commit [1] that shows the diff
      between upstream zstd as-is (which doesn't compile), and the zstd
      code imported in this patch. The verion of zstd in this patch is
      generated from upstream with changes applied by automation to replace
      upstreams libc dependencies, remove unnecessary portability macros,
      replace `/**` comments with `/*` comments, and use the kernel's xxhash
      instead of bundling it.
      
      The benefits of this patch are as follows:
      1. Using upstream directly with automated script to generate kernel
         code. This allows us to update the kernel every upstream release, so
         the kernel gets the latest bug fixes and performance improvements,
         and doesn't get 3 years out of date again. The automation and the
         translated code are tested every upstream commit to ensure it
         continues to work.
      2. Upgrades from a custom zstd based on 1.3.1 to 1.4.10, getting 3 years
         of performance improvements and bug fixes. On x86_64 I've measured
         15% faster BtrFS and SquashFS decompression+read speeds, 35% faster
         kernel decompression, and 30% faster ZRAM decompression+read speeds.
      3. Zstd-1.4.10 supports negative compression levels, which allow zstd to
         match or subsume lzo's performance.
      4. Maintains the same kernel-specific wrapper API, so no callers have to
         be modified with zstd version updates.
      
      One concern that was brought up was stack usage. Upstream zstd had
      already removed most of its heavy stack usage functions, but I just
      removed the last functions that allocate arrays on the stack. I've
      measured the high water mark for both compression and decompression
      before and after this patch. Decompression is approximately neutral,
      using about 1.2KB of stack space. Compression levels up to 3 regressed
      from 1.4KB -> 1.6KB, and higher compression levels regressed from 1.5KB
      -> 2KB. We've added unit tests upstream to prevent further regression.
      I believe that this is a reasonable increase, and if it does end up
      causing problems, this commit can be cleanly reverted, because it only
      touches zstd.
      
      I chose the bulk update instead of replaying upstream commits because
      there have been ~3500 upstream commits since the 1.3.1 release, zstd
      wasn't ready to be used in the kernel as-is before a month ago, and not
      all upstream zstd commits build. The bulk update preserves bisectablity
      because bugs can be bisected to the zstd version update. At that point
      the update can be reverted, and we can work with upstream to find and
      fix the bug.
      
      Note that upstream zstd release 1.4.10 doesn't exist yet. I have cut a
      staging branch at 20821a46f412 [0] and will apply any changes requested
      to the staging branch. Once we're ready to merge this update I will cut
      a zstd release at the commit we merge, so we have a known zstd release
      in the kernel.
      
      The implementation of the kernel API is contained in
      zstd_compress_module.c and zstd_decompress_module.c.
      
      [0] https://github.com/facebook/zstd/commit/20821a46f4122f9abd7c7b245d28162dde8129c9
      [1] https://github.com/terrelln/linux/commit/e0fa481d0e3df26918da0a13749740a1f6777574Signed-off-by: default avatarNick Terrell <terrelln@fb.com>
      Tested By: Paul Jones <paul@pauljones.id.au>
      Tested-by: default avatarOleksandr Natalenko <oleksandr@natalenko.name>
      Tested-by: Sedat Dilek <sedat.dilek@gmail.com> # LLVM/Clang v13.0.0 on x86-64
      Tested-by: default avatarJean-Denis Girard <jd.girard@sysnux.pf>
      e0c1b49f
    • Nick Terrell's avatar
      lib: zstd: Add decompress_sources.h for decompress_unzstd · 2479b523
      Nick Terrell authored
      Adds decompress_sources.h which includes every .c file necessary for
      zstd decompression. This is used in decompress_unzstd.c so the internal
      structure of the library isn't exposed.
      
      This allows us to upgrade the zstd library version without modifying any
      callers. Instead we just need to update decompress_sources.h.
      Signed-off-by: default avatarNick Terrell <terrelln@fb.com>
      Tested By: Paul Jones <paul@pauljones.id.au>
      Tested-by: default avatarOleksandr Natalenko <oleksandr@natalenko.name>
      Tested-by: Sedat Dilek <sedat.dilek@gmail.com> # LLVM/Clang v13.0.0 on x86-64
      Tested-by: default avatarJean-Denis Girard <jd.girard@sysnux.pf>
      2479b523
    • Nick Terrell's avatar
      lib: zstd: Add kernel-specific API · cf30f6a5
      Nick Terrell authored
      This patch:
      - Moves `include/linux/zstd.h` -> `include/linux/zstd_lib.h`
      - Updates modified zstd headers to yearless copyright
      - Adds a new API in `include/linux/zstd.h` that is functionally
        equivalent to the in-use subset of the current API. Functions are
        renamed to avoid symbol collisions with zstd, to make it clear it is
        not the upstream zstd API, and to follow the kernel style guide.
      - Updates all callers to use the new API.
      
      There are no functional changes in this patch. Since there are no
      functional change, I felt it was okay to update all the callers in a
      single patch. Once the API is approved, the callers are mechanically
      changed.
      
      This patch is preparing for the 3rd patch in this series, which updates
      zstd to version 1.4.10. Since the upstream zstd API is no longer exposed
      to callers, the update can happen transparently.
      Signed-off-by: default avatarNick Terrell <terrelln@fb.com>
      Tested By: Paul Jones <paul@pauljones.id.au>
      Tested-by: default avatarOleksandr Natalenko <oleksandr@natalenko.name>
      Tested-by: Sedat Dilek <sedat.dilek@gmail.com> # LLVM/Clang v13.0.0 on x86-64
      Tested-by: default avatarJean-Denis Girard <jd.girard@sysnux.pf>
      cf30f6a5
  2. 08 Nov, 2021 12 commits
    • Linus Torvalds's avatar
      Merge tag 'backlight-next-5.16' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/backlight · d2f38a3c
      Linus Torvalds authored
      Pull backlight updates from Lee Jones:
       "Fix-ups:
         - Standardise *_exit() and *_remove() return values in ili9320 and
           vgg2432a4
      
        Bug Fixes:
         - Do not override maximum brightness
         - Propagate errors from get_brightness()"
      
      * tag 'backlight-next-5.16' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/backlight:
        video: backlight: ili9320: Make ili9320_remove() return void
        backlight: Propagate errors from get_brightness()
        video: backlight: Drop maximum brightness override for brightness zero
      d2f38a3c
    • Linus Torvalds's avatar
      Merge tag 'mfd-next-5.16' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd · 3a9b0a46
      Linus Torvalds authored
      Pull MFD updates from Lee Jones:
       "Removed Drivers:
         - Remove support for TI TPS80031/TPS80032 PMICs
      
        New Device Support:
         - Add support for Magnetic Reader to TI AM335x
         - Add support for DA9063_EA to Dialog DA9063
         - Add support for SC2730 PMIC to Spreadtrum SC27xx
         - Add support for MacBookPro16,2 ICL-N UART Intel LPSS PCI
         - Add support for lots of new PMICS in QCom SPMI PMIC
         - Add support for ADC to Diolan DLN2
      
        New Functionality:
         - Add support for Power Off to Rockchip RK817
      
        Fix-ups:
         - Simplify Regmap passing to child devices in hi6421-spmi-pmic
         - SPDX licensing updates in ti_am335x_tscadc
         - Improve error handling in ti_am335x_tscadc
         - Expedite clock search in ti_am335x_tscadc
         - Generic simplifications in ti_am335x_tscadc
         - Use generic macros/defines in ti_am335x_tscadc
         - Remove unused code in ti_am335x_tscadc, cros_ec_dev
         - Convert to GPIOD in wcd934x
         - Add namespacing in ti_am335x_tscadc
         - Restrict compilation to relevant arches in intel_pmt
         - Provide better description/documentation in exynos_lpass
         - Add SPI device ID table in altera-a10sr, motorola-cpcap,
           sprd-sc27xx-spi
         - Change IRQ handling in qcom-pm8xxx
         - Split out I2C and SPI code in arizona
         - Explicitly include used headers in altera-a10sr
         - Convert sysfs show() function to in sysfs_emit
         - Standardise *_exit() and *_remove() return values in mc13xxx,
           stmpe, tps65912
         - Trivial (style/spelling/whitespace) fixups in ti_am335x_tscadc,
           qcom-spmi-pmic, max77686-private
         - Device Tree fix-ups in ti,am3359-tscadc, samsung,s2mps11,
           samsung,s2mpa01, samsung,s5m8767, brcm,misc, brcm,cru, syscon,
           qcom,tcsr, xylon,logicvc, max77686, x-powers,ac100,
           x-powers,axp152, x-powers,axp209-gpio, syscon, qcom,spmi-pmic
      
        Bug Fixes:
         - Balance refcounting (get/put) in ti_am335x_tscadc, mfd-core
         - Fix IRQ trigger type in sec-irq, max77693, max14577
         - Repair off-by-one in altera-sysmgr
         - Add explicit 'select MFD_CORE' to MFD_SIMPLE_MFD_I2C"
      
      * tag 'mfd-next-5.16' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd: (95 commits)
        mfd: simple-mfd-i2c: Select MFD_CORE to fix build error
        mfd: tps80031: Remove driver
        mfd: max77686: Correct tab-based alignment of register addresses
        mfd: wcd934x: Replace legacy gpio interface for gpiod
        dt-bindings: mfd: qcom: pm8xxx: Add pm8018 compatible
        mfd: dln2: Add cell for initializing DLN2 ADC
        mfd: qcom-spmi-pmic: Add missing PMICs supported by socinfo
        mfd: qcom-spmi-pmic: Document ten more PMICs in the binding
        mfd: qcom-spmi-pmic: Sort compatibles in the driver
        mfd: qcom-spmi-pmic: Sort the compatibles in the binding
        mfd: janz-cmoio: Replace snprintf in show functions with sysfs_emit
        mfd: altera-a10sr: Include linux/module.h
        mfd: tps65912: Make tps65912_device_exit() return void
        mfd: stmpe: Make stmpe_remove() return void
        mfd: mc13xxx: Make mc13xxx_common_exit() return void
        dt-bindings: mfd: syscon: Add samsung,exynosautov9-sysreg compatible
        mfd: altera-sysmgr: Fix a mistake caused by resource_size conversion
        dt-bindings: gpio: Convert X-Powers AXP209 GPIO binding to a schema
        dt-bindings: mfd: syscon: Add rk3368 QoS register compatible
        mfd: arizona: Split of_match table into I2C and SPI versions
        ...
      3a9b0a46
    • Linus Torvalds's avatar
      Merge tag 'gpio-updates-for-v5.16' of git://git.kernel.org/pub/scm/linux/kernel/git/brgl/linux · d20f7a09
      Linus Torvalds authored
      Pull gpio updates from Bartosz Golaszewski:
       "We have a single new driver, new features in others and some cleanups
        all over the place.
      
        Nothing really stands out and it is all relatively small.
      
         - new driver: gpio-modepin (plus relevant change in zynqmp firmware)
      
         - add interrupt support to gpio-virtio
      
         - enable the 'gpio-line-names' property in the DT bindings for
           gpio-rockchip
      
         - use the subsystem helpers where applicable in gpio-uniphier instead
           of accessing IRQ structures directly
      
         - code shrink in gpio-xilinx
      
         - add interrupt to gpio-mlxbf2 (and include the removal of custom
           interrupt code from the mellanox ethernet driver)
      
         - support multiple interrupts per bank in gpio-tegra186 (and force
           one interrupt per bank in older models)
      
         - fix GPIO line IRQ offset calculation in gpio-realtek-otto
      
         - drop unneeded MODULE_ALIAS expansions in multiple drivers
      
         - code cleanup in gpio-aggregator
      
         - minor improvements in gpio-max730x and gpio-mc33880
      
         - Kconfig cleanups"
      
      * tag 'gpio-updates-for-v5.16' of git://git.kernel.org/pub/scm/linux/kernel/git/brgl/linux:
        virtio_gpio: drop packed attribute
        gpio: virtio: Add IRQ support
        gpio: realtek-otto: fix GPIO line IRQ offset
        gpio: clean up Kconfig file
        net: mellanox: mlxbf_gige: Replace non-standard interrupt handling
        gpio: mlxbf2: Introduce IRQ support
        gpio: mc33880: Drop if with an always false condition
        gpio: max730x: Make __max730x_remove() return void
        gpio: aggregator: Wrap access to gpiochip_fwd.tmp[]
        gpio: modepin: Add driver support for modepin GPIO controller
        dt-bindings: gpio: zynqmp: Add binding documentation for modepin
        firmware: zynqmp: Add MMIO read and write support for PS_MODE pin
        gpio: tps65218: drop unneeded MODULE_ALIAS
        gpio: max77620: drop unneeded MODULE_ALIAS
        gpio: xilinx: simplify getting .driver_data
        gpio: tegra186: Support multiple interrupts per bank
        gpio: tegra186: Force one interrupt per bank
        gpio: uniphier: Use helper functions to get private data from IRQ data
        gpio: uniphier: Use helper function to get IRQ hardware number
        dt-bindings: gpio: add gpio-line-names to rockchip,gpio-bank.yaml
      d20f7a09
    • Linus Torvalds's avatar
      Merge tag 'cxl-for-5.16' of git://git.kernel.org/pub/scm/linux/kernel/git/cxl/cxl · dd72945c
      Linus Torvalds authored
      Pull cxl updates from Dan Williams:
       "More preparation and plumbing work in the CXL subsystem.
      
        From an end user perspective the highlight here is lighting up the CXL
        Persistent Memory related commands (label read / write) with the
        generic ioctl() front-end in LIBNVDIMM.
      
        Otherwise, the ability to instantiate new persistent and volatile
        memory regions is still on track for v5.17.
      
        Summary:
      
         - Fix support for platforms that do not enumerate every ACPI0016 (CXL
           Host Bridge) in the CHBS (ACPI Host Bridge Structure).
      
         - Introduce a common pci_find_dvsec_capability() helper, clean up
           open coded implementations in various drivers.
      
         - Add 'cxl_test' for regression testing CXL subsystem ABIs.
           'cxl_test' is a module built from tools/testing/cxl/ that mocks up
           a CXL topology to augment the nascent support for emulation of CXL
           devices in QEMU.
      
         - Convert libnvdimm to use the uuid API.
      
         - Complete the definition of CXL namespace labels in libnvdimm.
      
         - Tunnel libnvdimm label operations from nd_ioctl() back to the CXL
           mailbox driver. Enable 'ndctl {read,write}-labels' for CXL.
      
         - Continue to sort and refactor functionality into distinct driver
           and core-infrastructure buckets. For example, mailbox handling is
           now a generic core capability consumed by the PCI and cxl_test
           drivers"
      
      * tag 'cxl-for-5.16' of git://git.kernel.org/pub/scm/linux/kernel/git/cxl/cxl: (34 commits)
        ocxl: Use pci core's DVSEC functionality
        cxl/pci: Use pci core's DVSEC functionality
        PCI: Add pci_find_dvsec_capability to find designated VSEC
        cxl/pci: Split cxl_pci_setup_regs()
        cxl/pci: Add @base to cxl_register_map
        cxl/pci: Make more use of cxl_register_map
        cxl/pci: Remove pci request/release regions
        cxl/pci: Fix NULL vs ERR_PTR confusion
        cxl/pci: Remove dev_dbg for unknown register blocks
        cxl/pci: Convert register block identifiers to an enum
        cxl/acpi: Do not fail cxl_acpi_probe() based on a missing CHBS
        cxl/pci: Disambiguate cxl_pci further from cxl_mem
        Documentation/cxl: Add bus internal docs
        cxl/core: Split decoder setup into alloc + add
        tools/testing/cxl: Introduce a mock memory device + driver
        cxl/mbox: Move command definitions to common location
        cxl/bus: Populate the target list at decoder create
        tools/testing/cxl: Introduce a mocked-up CXL port hierarchy
        cxl/pmem: Add support for multiple nvdimm-bridge objects
        cxl/pmem: Translate NVDIMM label commands to CXL label commands
        ...
      dd72945c
    • Linus Torvalds's avatar
      Merge branch 'i2c/for-mergewindow' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux · dab334c9
      Linus Torvalds authored
      Pull i2c updates from Wolfram Sang:
      
       - big refactoring of the PASEMI driver to support the Apple M1
      
       - huge improvements to the XIIC in terms of locking and SMP safety
      
       - refactoring and clean ups for the i801 driver
      
      ... and the usual bunch of small driver updates
      
      * 'i2c/for-mergewindow' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux: (43 commits)
        i2c: amd-mp2-plat: ACPI: Use ACPI_COMPANION() directly
        i2c: i801: Add support for Intel Ice Lake PCH-N
        i2c: virtio: update the maintainer to Conghui
        i2c: xlr: Fix a resource leak in the error handling path of 'xlr_i2c_probe()'
        i2c: qup: move to use request_irq by IRQF_NO_AUTOEN flag
        i2c: qup: fix a trivial typo
        i2c: tegra: Ensure that device is suspended before driver is removed
        i2c: i801: Fix incorrect and needless software PEC disabling
        i2c: mediatek: Dump i2c/dma register when a timeout occurs
        i2c: mediatek: Reset the handshake signal between i2c and dma
        i2c: mlxcpld: Allow flexible polling time setting for I2C transactions
        i2c: pasemi: Set enable bit for Apple variant
        i2c: pasemi: Add Apple platform driver
        i2c: pasemi: Refactor _probe to use devm_*
        i2c: pasemi: Allow to configure bus frequency
        i2c: pasemi: Move common reset code to own function
        i2c: pasemi: Split pci driver to its own file
        i2c: pasemi: Split off common probing code
        i2c: pasemi: Remove usage of pci_dev
        i2c: pasemi: Use dev_name instead of port number
        ...
      dab334c9
    • Linus Torvalds's avatar
      Merge tag 'mtd/for-5.16' of git://git.kernel.org/pub/scm/linux/kernel/git/mtd/linux · 206825f5
      Linus Torvalds authored
      Pull mtd updates from Miquel Raynal:
       "Core:
         - Remove obsolete macros only used by the old nand_ecclayout struct
         - Don't remove debugfs directory if device is in use
         - MAINTAINERS:
            - Add entry for Qualcomm NAND controller driver
            - Update the devicetree documentation path of hyperbus
      
        MTD devices:
         - block2mtd:
            - Add support for an optional custom MTD label
            - Minor refactor to avoid hard coded constant
         - mtdswap: Remove redundant assignment of pointer eb
      
        CFI:
         - Fixup CFI on ixp4xx
      
        Raw NAND controller drivers:
         - Arasan:
            - Prevent an unsupported configuration
         - Xway, Socrates: plat_nand, Pasemi, Orion, mpc5121, GPIO, Au1550nd,
           AMS-Delta:
            - Keep the driver compatible with on-die ECC engines
         - cs553x, lpc32xx_slc, ndfc, sharpsl, tmio, txx9ndfmc:
            - Revert the commits: "Fix external use of SW Hamming ECC helper"
            - And let callers use the bare Hamming helpers
         - Fsmc: Fix use of SM ORDER
         - Intel:
            - Fix potential buffer overflow in probe
         - xway, vf610, txx9ndfm, tegra, stm32, plat_nand, oxnas, omap, mtk,
           hisi504, gpmi, gpio, denali, bcm6368, atmel:
            - Make use of the helper function devm_platform_ioremap_resource{,byname}()
      
        Onenand drivers:
         - Samsung: Drop Exynos4 and describe driver in KConfig
      
        Raw NAND chip drivers:
         - Hynix: Add support for H27UCG8T2ETR-BC MLC NAND
      
        SPI NOR core:
         - Add spi-nor device tree binding under SPI NOR maintainers
      
        SPI NOR manufacturer drivers:
         - Enable locking for n25q128a13
      
        SPI NOR controller drivers:
         - Use devm_platform_ioremap_resource_byname()"
      
      * tag 'mtd/for-5.16' of git://git.kernel.org/pub/scm/linux/kernel/git/mtd/linux: (50 commits)
        mtd: core: don't remove debugfs directory if device is in use
        MAINTAINERS: Update the devicetree documentation path of hyperbus
        mtd: block2mtd: add support for an optional custom MTD label
        mtd: block2mtd: minor refactor to avoid hard coded constant
        mtd: fixup CFI on ixp4xx
        mtd: rawnand: arasan: Prevent an unsupported configuration
        MAINTAINERS: Add entry for Qualcomm NAND controller driver
        mtd: rawnand: hynix: Add support for H27UCG8T2ETR-BC MLC NAND
        mtd: rawnand: xway: Keep the driver compatible with on-die ECC engines
        mtd: rawnand: socrates: Keep the driver compatible with on-die ECC engines
        mtd: rawnand: plat_nand: Keep the driver compatible with on-die ECC engines
        mtd: rawnand: pasemi: Keep the driver compatible with on-die ECC engines
        mtd: rawnand: orion: Keep the driver compatible with on-die ECC engines
        mtd: rawnand: mpc5121: Keep the driver compatible with on-die ECC engines
        mtd: rawnand: gpio: Keep the driver compatible with on-die ECC engines
        mtd: rawnand: au1550nd: Keep the driver compatible with on-die ECC engines
        mtd: rawnand: ams-delta: Keep the driver compatible with on-die ECC engines
        Revert "mtd: rawnand: cs553x: Fix external use of SW Hamming ECC helper"
        Revert "mtd: rawnand: lpc32xx_slc: Fix external use of SW Hamming ECC helper"
        Revert "mtd: rawnand: ndfc: Fix external use of SW Hamming ECC helper"
        ...
      206825f5
    • Linus Torvalds's avatar
      Add 'tools/perf/libbpf/' to ignored files · 05b8cd3d
      Linus Torvalds authored
      Commit 6b491a86 ("perf build: Install libbpf headers locally when
      building") installed copies of the libbpf headers into the build tree,
      causing unnecessary noise from 'git status' after a perf tools build.
      
      Add the 'libbpf/' subdirectory to the .gitignore file to silence it all
      again.
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      05b8cd3d
    • Linus Torvalds's avatar
      Merge tag 'kgdb-5.16-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/danielt/linux · e851dfae
      Linus Torvalds authored
      Pull kgdb update from Daniel Thompson:
       "A single patch this cycle.
      
        We replace some open-coded routines to classify task states with the
        scheduler's own function to do this. Alongside the obvious benefits of
        removing funky code and aligning more exactly with the scheduler's
        task classification, this also fixes a long standing compiler warning
        by removing the open-coded routines that generated the warning"
      
      * tag 'kgdb-5.16-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/danielt/linux:
        kdb: Adopt scheduler's task classification
      e851dfae
    • Linus Torvalds's avatar
      Merge tag 'for-linus' of git://github.com/openrisc/linux · a2b03e48
      Linus Torvalds authored
      Pull OpenRISC updates from Stafford Horne:
       "This includes two minor cleanups, plus a bug fix for OpenRISC TLB
        flush code that allows the the SMP kernel to boot again"
      
      * tag 'for-linus' of git://github.com/openrisc/linux:
        openrisc: fix SMP tlb flush NULL pointer dereference
        openrisc: signal: remove unused DEBUG_SIG macro
        openrisc: time: don't mark comment as kernel-doc
      a2b03e48
    • Linus Torvalds's avatar
      Merge tag 'perf-tools-for-v5.16-2021-11-07-without-bpftool-fix' of... · bbdbeb00
      Linus Torvalds authored
      Merge tag 'perf-tools-for-v5.16-2021-11-07-without-bpftool-fix' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux
      
      Pull perf tools updates from Arnaldo Carvalho de Melo:
       "perf annotate:
         - Add riscv64 support.
         - Add fusion logic for AMD microarchs.
      
        perf record:
         - Add an option to control the synthesizing behavior:
             --synth <no|all|task|mmap|cgroup>
      
        core:
         - Allow controlling synthesizing PERF_RECORD_ metadata events during
           record.
         - perf.data reader prep work for multithreaded processing.
         - Fix missing exclude_{host,guest} setting in PMUs that don't support
           it and that were causing the feature detection code to disable it
           for all events, even the ones in PMUs that support it.
         - Fix the default use of precise events on AMD, that were always
           falling back to non-precise because perf_event_attr.exclude_guest=1
           was set and IBS does not have filtering capability, refusing
           precise + exclude_guest.
         - Add bitfield_swap() to handle branch_stack endian issue.
      
        perf script:
         - Show binary offsets for userspace addresses in callchains.
         - Support instruction latency via new "ins_lat" selectable field.
         - Add dlfilter-show-cycles
      
        perf inject:
         - Add vmlinux and ignore-vmlinux arguments, similar to other tools.
      
        perf list:
         - Display PMU prefix for partially supported hybrid cache events.
         - Display hybrid PMU events with cpu type.
      
        perf stat:
         - Improve metrics documentation of data structures.
         - Fix memory leaks in the metric code.
         - Use NAN for missing event IDs.
         - Don't compute unused events.
         - Fix memory leak on error path.
         - Encode and use metric-id as a metric qualifier.
         - Allow metrics with no events.
         - Avoid events for an 'if' constant result.
         - Only add a referenced metric once.
         - Simplify metric_refs calculation.
         - Allow modifiers on metrics.
      
        perf test:
         - Add workload test of metric and metric groups.
         - Workload test of all PMUs.
         - vmlinux-kallsyms: Ignore hidden symbols.
         - Add pmu-event test for event described as "config=".
         - Verify more event members in pmu-events test.
         - Add endian test for struct branch_flags on the sample-parsing test.
         - Improve temp file cleanup in several tests.
      
        perf daemon:
         - Address MSAN warnings on send_cmd().
      
        perf kmem:
         - Improve man page for record options
      
        perf srcline:
         - Use long-running addr2line per DSO, greatly speeding up the
           'srcline' sort order.
      
        perf symbols:
         - Ignore $a/$d symbols for ARM modules.
         - Fix /proc/kcore access on 32 bit systems.
      
        Kernel UAPI copies:
         - Update copy of linux/socket.h with the kernel sources, no change in
           tooling output.
      
        libbpf:
         - Pull in bpf_program__get_prog_info_linear() from libbpf, too much
           specific to perf.
         - Deprecate bpf_map__resize() in favor of bpf_map_set_max_entries()
         - Install libbpf headers locally when building.
         - Bump minimum LLVM C++ std to GNU++14.
      
        libperf:
         - Use binary search in perf_cpu_map__idx() as array are sorted.
      
        libtracefs:
         - Enable libtracefs dynamic linking.
      
        libtraceevent:
         - Increase logging when verbose.
      
        Arch specific:
      
         * PowerPC:
            - Add support to expose instruction and data address registers as
              part of extended regs.
      
        Vendor events:
      
         * JSON parser:
            - Support ConfigCode to set the config= in PMUs
            - Make the JSON parser more conformant when in strict mode.
      
         * All JSON files:
            - Fix all remaining invalid JSON files.
      
         * ARM:
            - Syntax corrections in Neoverse N1 json.
            - Categorise the Neoverse V1 counters.
            - Add new armv8 PMU events.
            - Revise hip08 uncore events.
      
        Hardware tracing:
      
         * auxtrace:
            - Add missing Z option to ITRACE_HELP.
            - Add itrace A option to approximate IPC.
            - Add itrace d+o option to direct debug log to stdout.
      
         * Intel PT:
            - Add support for PERF_RECORD_AUX_OUTPUT_HW_ID
            - Support itrace A option to approximate IPC
            - Support itrace d+o option to direct debug log to stdout"
      
      * tag 'perf-tools-for-v5.16-2021-11-07-without-bpftool-fix' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux: (120 commits)
        perf build: Install libbpf headers locally when building
        perf MANIFEST: Add bpftool files to allow building with BUILD_BPF_SKEL=1
        perf metric: Fix memory leaks
        perf parse-event: Add init and exit to parse_event_error
        perf parse-events: Rename parse_events_error functions
        perf stat: Fix memory leak on error path
        perf tools: Use __BYTE_ORDER__
        perf inject: Add vmlinux and ignore-vmlinux arguments
        perf tools: Check vmlinux/kallsyms arguments in all tools
        perf tools: Refactor out kernel symbol argument sanity checking
        perf symbols: Ignore $a/$d symbols for ARM modules
        perf evsel: Don't set exclude_guest by default
        perf evsel: Fix missing exclude_{host,guest} setting
        perf bpf: Add missing free to bpf_event__print_bpf_prog_info()
        perf beauty: Update copy of linux/socket.h with the kernel sources
        perf clang: Fixes for more recent LLVM/clang
        tools: Bump minimum LLVM C++ std to GNU++14
        perf bpf: Pull in bpf_program__get_prog_info_linear()
        Revert "perf bench futex: Add support for 32-bit systems with 64-bit time_t"
        perf test sample-parsing: Add endian test for struct branch_flags
        ...
      bbdbeb00
    • Linus Torvalds's avatar
      Merge tag 'kbuild-v5.16' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild · 1e9ed936
      Linus Torvalds authored
      Pull Kbuild updates from Masahiro Yamada:
      
       - Remove the global -isystem compiler flag, which was made possible by
         the introduction of <linux/stdarg.h>
      
       - Improve the Kconfig help to print the location in the top menu level
      
       - Fix "FORCE prerequisite is missing" build warning for sparc
      
       - Add new build targets, tarzst-pkg and perf-tarzst-src-pkg, which
         generate a zstd-compressed tarball
      
       - Prevent gen_init_cpio tool from generating a corrupted cpio when
         KBUILD_BUILD_TIMESTAMP is set to 2106-02-07 or later
      
       - Misc cleanups
      
      * tag 'kbuild-v5.16' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild: (28 commits)
        kbuild: use more subdir- for visiting subdirectories while cleaning
        sh: remove meaningless archclean line
        initramfs: Check timestamp to prevent broken cpio archive
        kbuild: split DEBUG_CFLAGS out to scripts/Makefile.debug
        gen_init_cpio: add static const qualifiers
        kbuild: Add make tarzst-pkg build option
        scripts: update the comments of kallsyms support
        sparc: Add missing "FORCE" target when using if_changed
        kconfig: refactor conf_touch_dep()
        kconfig: refactor conf_write_dep()
        kconfig: refactor conf_write_autoconf()
        kconfig: add conf_get_autoheader_name()
        kconfig: move sym_escape_string_value() to confdata.c
        kconfig: refactor listnewconfig code
        kconfig: refactor conf_write_symbol()
        kconfig: refactor conf_write_heading()
        kconfig: remove 'const' from the return type of sym_escape_string_value()
        kconfig: rename a variable in the lexer to a clearer name
        kconfig: narrow the scope of variables in the lexer
        kconfig: Create links to main menu items in search
        ...
      1e9ed936
    • Linus Torvalds's avatar
      Merge tag 'modules-5.16-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/mcgrof/linux · 67b7e1f2
      Linus Torvalds authored
      Pull module updates from Luis Chamberlain:
       "As requested by Jessica I'm stepping in to help with modules
        maintenance. This is my first pull request to you.
      
        I've collected only two patches for modules for the 5.16-rc1 merge
        window. These patches are from Shuah Khan as she debugged some corner
        case error with modules. The error messages are improved for
        elf_validity_check(). While doing this work a corner case fix was
        spotted on validate_section_offset() due to a possible overflow bug on
        64-bit. The impact of this fix is low given this just limits module
        section headers placed within the 32-bit boundary, and we obviously
        don't have insane module sizes. Even if a specially crafted module is
        constructed later checks would invalidate the module right away.
      
        I've let this sit through 0-day testing since October 15th with no
        issues found"
      
      * tag 'modules-5.16-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/mcgrof/linux:
        module: change to print useful messages from elf_validity_check()
        module: fix validate_section_offset() overflow bug on 64-bit
      67b7e1f2
  3. 07 Nov, 2021 20 commits
  4. 06 Nov, 2021 3 commits
    • Linus Torvalds's avatar
      Merge tag '5.16-rc-part1-smb3-client-fixes' of git://git.samba.org/sfrench/cifs-2.6 · b5013d08
      Linus Torvalds authored
      Pull cifs updates from Steve French:
      
       - reconnect fix for stable
      
       - minor mount option fix
      
       - debugging improvement for (TCP) connection issues
      
       - refactoring of common code to help ksmbd
      
      * tag '5.16-rc-part1-smb3-client-fixes' of git://git.samba.org/sfrench/cifs-2.6:
        smb3: add dynamic trace points for socket connection
        cifs: Move SMB2_Create definitions to the shared area
        cifs: Move more definitions into the shared area
        cifs: move NEGOTIATE_PROTOCOL definitions out into the common area
        cifs: Create a new shared file holding smb2 pdu definitions
        cifs: add mount parameter tcpnodelay
        cifs: To match file servers, make sure the server hostname matches
      b5013d08
    • Linus Torvalds's avatar
      Merge tag 'fsnotify_for_v5.16-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs · 2acda754
      Linus Torvalds authored
      Pull fsnotify updates from Jan Kara:
       "Support for reporting filesystem errors through fanotify so that
        system health monitoring daemons can watch for these and act instead
        of scraping system logs"
      
      * tag 'fsnotify_for_v5.16-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs: (34 commits)
        samples: remove duplicate include in fs-monitor.c
        samples: Fix warning in fsnotify sample
        docs: Fix formatting of literal sections in fanotify docs
        samples: Make fs-monitor depend on libc and headers
        docs: Document the FAN_FS_ERROR event
        samples: Add fs error monitoring example
        ext4: Send notifications on error
        fanotify: Allow users to request FAN_FS_ERROR events
        fanotify: Emit generic error info for error event
        fanotify: Report fid info for file related file system errors
        fanotify: WARN_ON against too large file handles
        fanotify: Add helpers to decide whether to report FID/DFID
        fanotify: Wrap object_fh inline space in a creator macro
        fanotify: Support merging of error events
        fanotify: Support enqueueing of error events
        fanotify: Pre-allocate pool of error events
        fanotify: Reserve UAPI bits for FAN_FS_ERROR
        fsnotify: Support FS_ERROR event type
        fanotify: Require fid_mode for any non-fd event
        fanotify: Encode empty file handle when no inode is provided
        ...
      2acda754
    • Linus Torvalds's avatar
      Merge tag 'fs_for_v5.16-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs · d8b4e5bd
      Linus Torvalds authored
      Pull quota, isofs, and reiserfs updates from Jan Kara:
       "Fixes for handling of corrupted quota files, fix for handling of
        corrupted isofs filesystem, and a small cleanup for reiserfs"
      
      * tag 'fs_for_v5.16-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs:
        fs: reiserfs: remove useless new_opts in reiserfs_remount
        isofs: Fix out of bound access for corrupted isofs image
        quota: correct error number in free_dqentry()
        quota: check block number when reading the block in quota file
      d8b4e5bd