1. 10 Nov, 2023 5 commits
  2. 09 Nov, 2023 10 commits
  3. 08 Nov, 2023 1 commit
    • David Howells's avatar
      cifs: Fix encryption of cleared, but unset rq_iter data buffers · 37de5a80
      David Howells authored
      Each smb_rqst struct contains two things: an array of kvecs (rq_iov) that
      contains the protocol data for an RPC op and an iterator (rq_iter) that
      contains the data payload of an RPC op.  When an smb_rqst is allocated
      rq_iter is it always cleared, but we don't set it up unless we're going to
      use it.
      
      The functions that determines the size of the ciphertext buffer that will
      be needed to encrypt a request, cifs_get_num_sgs(), assumes that rq_iter is
      always initialised - and employs user_backed_iter() to check that the
      iterator isn't user-backed.  This used to incidentally work, because
      ->user_backed was set to false because the iterator has never been
      initialised, but with commit f1b4cb65[1]
      which changes user_backed_iter() to determine this based on the iterator
      type insted, a warning is now emitted:
      
              WARNING: CPU: 7 PID: 4584 at fs/smb/client/cifsglob.h:2165 smb2_get_aead_req+0x3fc/0x420 [cifs]
              ...
              RIP: 0010:smb2_get_aead_req+0x3fc/0x420 [cifs]
              ...
               crypt_message+0x33e/0x550 [cifs]
               smb3_init_transform_rq+0x27d/0x3f0 [cifs]
               smb_send_rqst+0xc7/0x160 [cifs]
               compound_send_recv+0x3ca/0x9f0 [cifs]
               cifs_send_recv+0x25/0x30 [cifs]
               SMB2_tcon+0x38a/0x820 [cifs]
               cifs_get_smb_ses+0x69c/0xee0 [cifs]
               cifs_mount_get_session+0x76/0x1d0 [cifs]
               dfs_mount_share+0x74/0x9d0 [cifs]
               cifs_mount+0x6e/0x2e0 [cifs]
               cifs_smb3_do_mount+0x143/0x300 [cifs]
               smb3_get_tree+0x15e/0x290 [cifs]
               vfs_get_tree+0x2d/0xe0
               do_new_mount+0x124/0x340
               __se_sys_mount+0x143/0x1a0
      
      The problem is that rq_iter was never set, so the type is 0 (ie. ITER_UBUF)
      which causes user_backed_iter() to return true.  The code doesn't
      malfunction because it checks the size of the iterator - which is 0.
      
      Fix cifs_get_num_sgs() to ignore rq_iter if its count is 0, thereby
      bypassing the warnings.
      
      It might be better to explicitly initialise rq_iter to a zero-length
      ITER_BVEC, say, as it can always be reinitialised later.
      
      Fixes: d08089f6 ("cifs: Change the I/O paths to use an iterator rather than a page list")
      Reported-by: default avatarDamian Tometzki <damian@riscv-rocks.de>
      Closes: https://lore.kernel.org/r/ZUfQo47uo0p2ZsYg@fedora.fritz.box/Tested-by: default avatarDamian Tometzki <damian@riscv-rocks.de>
      Cc: stable@vger.kernel.org
      cc: Eric Biggers <ebiggers@kernel.org>
      cc: linux-cifs@vger.kernel.org
      cc: linux-fsdevel@vger.kernel.org
      Link: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=f1b4cb650b9a0eeba206d8f069fcdc532bfbcd74 [1]
      Reviewed-by: default avatarPaulo Alcantara (SUSE) <pc@manguebit.com>
      Signed-off-by: default avatarDavid Howells <dhowells@redhat.com>
      Signed-off-by: default avatarSteve French <stfrench@microsoft.com>
      37de5a80
  4. 04 Nov, 2023 14 commits
    • Linus Torvalds's avatar
      Merge tag '6.7-rc-smb3-client-fixes-part1' of git://git.samba.org/sfrench/cifs-2.6 · 766e9cf3
      Linus Torvalds authored
      Pull smb client updates from Steve French:
      
       - use after free fixes and deadlock fix
      
       - symlink timestamp fix
      
       - hashing perf improvement
      
       - multichannel fixes
      
       - minor debugging improvements
      
       - fix creating fifos when using "sfu" mounts
      
       - NTLMSSP authentication improvement
      
       - minor fixes to include some missing create flags and structures from
         recently updated protocol documentation
      
      * tag '6.7-rc-smb3-client-fixes-part1' of git://git.samba.org/sfrench/cifs-2.6:
        cifs: force interface update before a fresh session setup
        cifs: do not reset chan_max if multichannel is not supported at mount
        cifs: reconnect helper should set reconnect for the right channel
        smb: client: fix use-after-free in smb2_query_info_compound()
        smb: client: remove extra @chan_count check in __cifs_put_smb_ses()
        cifs: add xid to query server interface call
        cifs: print server capabilities in DebugData
        smb: use crypto_shash_digest() in symlink_hash()
        smb: client: fix use-after-free bug in cifs_debug_data_proc_show()
        smb: client: fix potential deadlock when releasing mids
        smb3: fix creating FIFOs when mounting with "sfu" mount option
        Add definition for new smb3.1.1 command type
        SMB3: clarify some of the unused CreateOption flags
        cifs: Add client version details to NTLM authenticate message
        smb3: fix touch -h of symlink
      766e9cf3
    • Linus Torvalds's avatar
      Merge tag 'efi-next-for-v6.7' of git://git.kernel.org/pub/scm/linux/kernel/git/efi/efi · 4c975a43
      Linus Torvalds authored
      Pull EFI update from Ard Biesheuvel:
       "This is the only remaining EFI change, as everything else was taken
        via -tip this cycle:
      
         - implement uid/gid mount options for efivarfs"
      
      * tag 'efi-next-for-v6.7' of git://git.kernel.org/pub/scm/linux/kernel/git/efi/efi:
        efivarfs: Add uid/gid mount options
      4c975a43
    • Linus Torvalds's avatar
      Merge tag 'x86_microcode_for_v6.7_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 0a23fb26
      Linus Torvalds authored
      Pull x86 microcode loading updates from Borislac Petkov:
       "Major microcode loader restructuring, cleanup and improvements by
        Thomas Gleixner:
      
         - Restructure the code needed for it and add a temporary initrd
           mapping on 32-bit so that the loader can access the microcode
           blobs. This in itself is a preparation for the next major
           improvement:
      
         - Do not load microcode on 32-bit before paging has been enabled.
      
           Handling this has caused an endless stream of headaches, issues,
           ugly code and unnecessary hacks in the past. And there really
           wasn't any sensible reason to do that in the first place. So switch
           the 32-bit loading to happen after paging has been enabled and turn
           the loader code "real purrty" again
      
         - Drop mixed microcode steppings loading on Intel - there, a single
           patch loaded on the whole system is sufficient
      
         - Rework late loading to track which CPUs have updated microcode
           successfully and which haven't, act accordingly
      
         - Move late microcode loading on Intel in NMI context in order to
           guarantee concurrent loading on all threads
      
         - Make the late loading CPU-hotplug-safe and have the offlined
           threads be woken up for the purpose of the update
      
         - Add support for a minimum revision which determines whether late
           microcode loading is safe on a machine and the microcode does not
           change software visible features which the machine cannot use
           anyway since feature detection has happened already. Roughly, the
           minimum revision is the smallest revision number which must be
           loaded currently on the system so that late updates can be allowed
      
         - Other nice leanups, fixess, etc all over the place"
      
      * tag 'x86_microcode_for_v6.7_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (40 commits)
        x86/microcode/intel: Add a minimum required revision for late loading
        x86/microcode: Prepare for minimal revision check
        x86/microcode: Handle "offline" CPUs correctly
        x86/apic: Provide apic_force_nmi_on_cpu()
        x86/microcode: Protect against instrumentation
        x86/microcode: Rendezvous and load in NMI
        x86/microcode: Replace the all-in-one rendevous handler
        x86/microcode: Provide new control functions
        x86/microcode: Add per CPU control field
        x86/microcode: Add per CPU result state
        x86/microcode: Sanitize __wait_for_cpus()
        x86/microcode: Clarify the late load logic
        x86/microcode: Handle "nosmt" correctly
        x86/microcode: Clean up mc_cpu_down_prep()
        x86/microcode: Get rid of the schedule work indirection
        x86/microcode: Mop up early loading leftovers
        x86/microcode/amd: Use cached microcode for AP load
        x86/microcode/amd: Cache builtin/initrd microcode early
        x86/microcode/amd: Cache builtin microcode too
        x86/microcode/amd: Use correct per CPU ucode_cpu_info
        ...
      0a23fb26
    • Linus Torvalds's avatar
      Merge tag 'kbuild-v6.7' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild · 5c5e048b
      Linus Torvalds authored
      Pull Kbuild updates from Masahiro Yamada:
      
       - Implement the binary search in modpost for faster symbol lookup
      
       - Respect HOSTCC when linking host programs written in Rust
      
       - Change the binrpm-pkg target to generate kernel-devel RPM package
      
       - Fix endianness issues for tee and ishtp MODULE_DEVICE_TABLE
      
       - Unify vdso_install rules
      
       - Remove unused __memexit* annotations
      
       - Eliminate stale whitelisting for __devinit/__devexit from modpost
      
       - Enable dummy-tools to handle the -fpatchable-function-entry flag
      
       - Add 'userldlibs' syntax
      
      * tag 'kbuild-v6.7' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild: (30 commits)
        kbuild: support 'userldlibs' syntax
        kbuild: dummy-tools: pretend we understand -fpatchable-function-entry
        kbuild: Correct missing architecture-specific hyphens
        modpost: squash ALL_{INIT,EXIT}_TEXT_SECTIONS to ALL_TEXT_SECTIONS
        modpost: merge sectioncheck table entries regarding init/exit sections
        modpost: use ALL_INIT_SECTIONS for the section check from DATA_SECTIONS
        modpost: disallow the combination of EXPORT_SYMBOL and __meminit*
        modpost: remove EXIT_SECTIONS macro
        modpost: remove MEM_INIT_SECTIONS macro
        modpost: remove more symbol patterns from the section check whitelist
        modpost: disallow *driver to reference .meminit* sections
        linux/init: remove __memexit* annotations
        modpost: remove ALL_EXIT_DATA_SECTIONS macro
        kbuild: simplify cmd_ld_multi_m
        kbuild: avoid too many execution of scripts/pahole-flags.sh
        kbuild: remove ARCH_POSTLINK from module builds
        kbuild: unify no-compiler-targets and no-sync-config-targets
        kbuild: unify vdso_install rules
        docs: kbuild: add INSTALL_DTBS_PATH
        UML: remove unused cmd_vdso_install
        ...
      5c5e048b
    • Linus Torvalds's avatar
      Merge tag 'acpi-6.7-rc1-2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · 3062a987
      Linus Torvalds authored
      Pull ACPI fix from Rafael Wysocki:
       "Fix the acpi_thermal_add() error path that may do a double-free in
        some cases after recent changes (Dan Carpenter)"
      
      * tag 'acpi-6.7-rc1-2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
        ACPI: thermal: Fix acpi_thermal_unregister_thermal_zone() cleanup
      3062a987
    • Linus Torvalds's avatar
      Merge tag 'pinctrl-v6.7-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl · 90b0c2b2
      Linus Torvalds authored
      Pull pin control updates from Linus Walleij:
       "No pin control core changes this time.
      
        New drivers:
      
         - Realtek RTD family pin control driver and RTD1619B, RTD1319D and
           RTD1315E subdrivers
      
         - Nuvoton NPCM8xx combined pin control and GPIO driver
      
         - Amlogic T7 pin control driver
      
         - Renesas RZ/G3S pin control driver
      
        Improvements:
      
         - A number of additional UART groups added to the Mediatek MT7981
           driver
      
         - MPM pin maps added for Qualcomm MSM8996, SM6115, SM6125 and SDM660
      
         - Extra GPIO banks for the Sunxi H616
      
         - MLSP I2C6 function support in Qualcomm MSM8226
      
         - Some __counted_by() annotations for dynamic arrays
      
         - Ongoing work to make remove() return void
      
         - LSBC groups and functions in the Renesas R8A7778"
      
      * tag 'pinctrl-v6.7-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl: (110 commits)
        pinctrl: Use device_get_match_data()
        dt-bindings: pinctrl: qcom,sa8775p-tlmm: add missing wakeup-parent
        dt-bindings: pinctrl: nuvoton,npcm845: Add missing additionalProperties on gpio child nodes
        dt-bindings: pinctrl: brcm: Ensure all child node properties are documented
        pinctrl: renesas: rzn1: Convert to platform remove callback returning void
        pinctrl: renesas: rzg2l: Add RZ/G3S support
        dt-bindings: pinctrl: renesas: Document RZ/G3S SoC
        pinctrl: renesas: rzg2l: Add support for different DS values on different groups
        pinctrl: renesas: rzg2l: Move DS and OI to SoC-specific configuration
        pinctrl: renesas: rzg2l: Adapt function number for RZ/G3S
        pinctrl: renesas: rzg2l: Adapt for different SD/PWPR register offsets
        pinctrl: renesas: rzg2l: Index all registers based on port offset
        pinctrl: renesas: rzg2l: Add validation of GPIO pin in rzg2l_gpio_request()
        pinctrl: renesas: r8a7778: Add LBSC pins, groups, and functions
        pinctrl: intel: fetch community only when we need it
        pinctrl: cherryview: reduce scope of PIN_CONFIG_BIAS_HIGH_IMPEDANCE case
        pinctrl: cherryview: Convert to platform remove callback returning void
        pinctrl: sprd-sc9860: Convert to platform remove callback returning void
        pinctrl: qcom/msm: Convert to platform remove callback returning void
        pinctrl: qcom/lpi: Convert to platform remove callback returning void
        ...
      90b0c2b2
    • Linus Torvalds's avatar
      Merge tag 'soundwire-6.7-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/vkoul/soundwire · be47c8e3
      Linus Torvalds authored
      Pull soundwire updates from Vinod Koul:
      
       - Core now has improved handling of errors for clock stop
      
       - Support for qcom v2.0.0 status registers and command ignored
         interrupt and more logging for failures
      
       - DMI quirk for HP Omen machine
      
      * tag 'soundwire-6.7-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/vkoul/soundwire:
        soundwire: dmi-quirks: update HP Omen match
        soundwire: bus: improve error handling for clock stop prepare/deprepare
        soundwire: qcom: Log clk_get("iface") failures
        soundwire: qcom: handle command ignored interrupt
        soundwire: qcom: use newer link status tregister on v2.0.0
      be47c8e3
    • Linus Torvalds's avatar
      Merge tag 'phy-for-6.7' of git://git.kernel.org/pub/scm/linux/kernel/git/phy/linux-phy · bfafa2c1
      Linus Torvalds authored
      Pull generic phy updates from Vinod Koul:
       "New Support:
         - Qualcomm sa8775p qmp-pcie, IPQ5018, and SC7280 qmp-ufs support
         - Mediatek MT8188 support
      
        Updates:
         - Device tree device_get_match_data() usage and dropping
           of_match_device() calls
         - Qualcomm qmp usb and combo phy updates for v6 register layout
         - Qualcomm eusb2-repeater updates for tuning overrides, regmap fields
         - STih407 usb binding and ralink usb-phy yaml conversion
         - renesas r8a779f0 serdes init sequencing updates"
      
      * tag 'phy-for-6.7' of git://git.kernel.org/pub/scm/linux/kernel/git/phy/linux-phy: (32 commits)
        phy: Remove duplicated include in phy-ralink-usb.c
        phy: Kconfig: Select GENERIC_PHY for GENERIC_PHY_MIPI_DPHY
        phy: qcom-qmp-pcie: add endpoint support for sa8775p
        dt-bindings: phy: ralink-usb-phy: convert to dtschema
        dt-bindings: phy: Convert PXA1928 USB/HSIC PHY to DT schema
        phy: Drop unnecessary of_match_device() calls
        phy: rockchip-inno-usb2: Drop unnecessary DT includes
        phy: Use device_get_match_data()
        phy: realtek: Replace of_device.h with explicit includes
        phy: renesas: r8a779f0-ether-serdes: Add .exit() ops
        phy: renesas: r8a779f0-ether-serdes: Reset in .init()
        phy: qcom-qmp-combo: use v6 registers in v6 regs layout
        phy: qcom-qmp-usb: move PCS v6 register to the proper header
        phy: qcom-qmp-combo: fix the prefix for the PCS_USB v6 registers
        phy: sun4i-usb: update array size
        phy: qualcomm: phy-qcom-eusb2-repeater: Add tuning overrides
        phy: qualcomm: phy-qcom-eusb2-repeater: Zero out untouched tuning regs
        phy: qualcomm: phy-qcom-eusb2-repeater: Use regmap_fields
        dt-bindings: phy: qcom,snps-eusb2-repeater: Add magic tuning overrides
        dt-bindings: phy: Add compatible for Mediatek MT8188
        ...
      bfafa2c1
    • Linus Torvalds's avatar
      Merge tag 'dmaengine-6.7-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/vkoul/dmaengine · d934aef6
      Linus Torvalds authored
      Pull dmaengine updates from Vinod Koul:
      
       - Big pile of __counted_by attribute annotations to several structures
         for bounds checking of flexible arrays at run-time
      
       - Another big pile platform remove callback returning void changes
      
       - Device tree device_get_match_data() usage and dropping
         of_match_device() calls
      
       - Minor driver updates to pxa, idxd fsl, hisi etc drivers
      
      * tag 'dmaengine-6.7-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/vkoul/dmaengine: (106 commits)
        dmaengine: stm32-mdma: correct desc prep when channel running
        dmaengine: dw-axi-dmac: Add support DMAX_NUM_CHANNELS > 16
        dmaengine: xilinx: xilinx_dma: Fix kernel doc about xilinx_dma_remove()
        dmaengine: mmp_tdma: drop unused variable 'of_id'
        MAINTAINERS: Add entries for NXP(Freescale) eDMA drivers
        dmaengine: xilinx: xdma: Support cyclic transfers
        dmaengine: xilinx: xdma: Prepare the introduction of cyclic transfers
        dmaengine: Drop unnecessary of_match_device() calls
        dmaengine: Use device_get_match_data()
        dmaengine: pxa_dma: Annotate struct pxad_desc_sw with __counted_by
        dmaengine: pxa_dma: Remove an erroneous BUG_ON() in pxad_free_desc()
        dmaengine: xilinx: xdma: Use resource_size() in xdma_probe()
        dmaengine: fsl-dpaa2-qdma: Remove redundant initialization owner in dpaa2_qdma_driver
        dmaengine: Remove unused declaration dma_chan_cleanup()
        dmaengine: mmp: fix Wvoid-pointer-to-enum-cast warning
        dmaengine: qcom: fix Wvoid-pointer-to-enum-cast warning
        dmaengine: fsl-edma: Remove redundant dev_err() for platform_get_irq()
        dmaengine: ep93xx_dma: Annotate struct ep93xx_dma_engine with __counted_by
        dmaengine: idxd: add wq driver name support for accel-config user tool
        dmaengine: fsl-edma: Annotate struct struct fsl_edma_engine with __counted_by
        ...
      d934aef6
    • Linus Torvalds's avatar
      Merge tag 'usb-6.7-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb · 2c40c1c6
      Linus Torvalds authored
      Pull USB/Thunderbolt updates from Greg KH:
       "Here is the "big" set of USB and Thunderbolt changes for 6.7-rc1.
        Nothing really major in here, just lots of constant development for
        new hardware. Included in here are:
      
         - Thunderbolt (i.e. USB4) fixes for reported issues and support for
           new hardware types and devices
      
         - USB typec additions of new drivers and cleanups for some existing
           ones
      
         - xhci cleanups and expanded tracing support and some platform
           specific updates
      
         - USB "La Jolla Cove Adapter (LJCA)" support added, and the gpio,
           spi, and i2c drivers for that type of device (all acked by the
           respective subsystem maintainers.)
      
         - lots of USB gadget driver updates and cleanups
      
         - new USB dwc3 platforms supported, as well as other dwc3 fixes and
           cleanups
      
         - USB chipidea driver updates
      
         - other smaller driver cleanups and additions, full details in the
           shortlog
      
        All of these have been in the linux-next tree for a while with no
        reported problems"
      
      * tag 'usb-6.7-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb: (167 commits)
        usb: gadget: uvc: Add missing initialization of ssp config descriptor
        usb: storage: set 1.50 as the lower bcdDevice for older "Super Top" compatibility
        usb: raw-gadget: report suspend, resume, reset, and disconnect events
        usb: raw-gadget: don't disable device if usb_ep_queue fails
        usb: raw-gadget: properly handle interrupted requests
        usb:cdnsp: remove TRB_FLUSH_ENDPOINT command
        usb: gadget: aspeed_udc: Convert to platform remove callback returning void
        dt-bindings: usb: fsa4480: Add compatible for OCP96011
        usb: typec: fsa4480: Add support to swap SBU orientation
        dt-bindings: usb: fsa4480: Add data-lanes property to endpoint
        usb: typec: tcpm: Fix NULL pointer dereference in tcpm_pd_svdm()
        Revert "dt-bindings: usb: Add bindings for multiport properties on DWC3 controller"
        Revert "dt-bindings: usb: qcom,dwc3: Add bindings for SC8280 Multiport"
        thunderbolt: Fix one kernel-doc comment
        usb: gadget: f_ncm: Always set current gadget in ncm_bind()
        usb: core: Remove duplicated check in usb_hub_create_port_device
        usb: typec: tcpm: Add additional checks for contaminant
        arm64: dts: rockchip: rk3588s: Add USB3 host controller
        usb: dwc3: add optional PHY interface clocks
        dt-bindings: usb: add rk3588 compatible to rockchip,dwc3
        ...
      2c40c1c6
    • Linus Torvalds's avatar
      Merge tag 'tty-6.7-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty · 1f24458a
      Linus Torvalds authored
      Pull tty and serial updates from Greg KH:
       "Here is the big set of tty/serial driver changes for 6.7-rc1. Included
        in here are:
      
         - console/vgacon cleanups and removals from Arnd
      
         - tty core and n_tty cleanups from Jiri
      
         - lots of 8250 driver updates and cleanups
      
         - sc16is7xx serial driver updates
      
         - dt binding updates
      
         - first set of port lock wrapers from Thomas for the printk fixes
           coming in future releases
      
         - other small serial and tty core cleanups and updates
      
        All of these have been in linux-next for a while with no reported
        issues"
      
      * tag 'tty-6.7-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty: (193 commits)
        serdev: Replace custom code with device_match_acpi_handle()
        serdev: Simplify devm_serdev_device_open() function
        serdev: Make use of device_set_node()
        tty: n_gsm: add copyright Siemens Mobility GmbH
        tty: n_gsm: fix race condition in status line change on dead connections
        serial: core: Fix runtime PM handling for pending tx
        vgacon: fix mips/sibyte build regression
        dt-bindings: serial: drop unsupported samsung bindings
        tty: serial: samsung: drop earlycon support for unsupported platforms
        tty: 8250: Add note for PX-835
        tty: 8250: Fix IS-200 PCI ID comment
        tty: 8250: Add Brainboxes Oxford Semiconductor-based quirks
        tty: 8250: Add support for Intashield IX cards
        tty: 8250: Add support for additional Brainboxes PX cards
        tty: 8250: Fix up PX-803/PX-857
        tty: 8250: Fix port count of PX-257
        tty: 8250: Add support for Intashield IS-100
        tty: 8250: Add support for Brainboxes UP cards
        tty: 8250: Add support for additional Brainboxes UC cards
        tty: 8250: Remove UC-257 and UC-431
        ...
      1f24458a
    • Linus Torvalds's avatar
      Merge tag 'staging-6.7-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging · 4c7a0c95
      Linus Torvalds authored
      Pull staging driver updates from Greg KH:
       "Here is the big set of staging driver updates for 6.7-rc1. A bit
        bigger than 6.6 this time around, as it coincided with the Outreachy
        and mentorship application process, so we got a bunch of new
        developers sending in their first changes, which is nice to see.
      
        Also in here is a removal of the qlge ethernet driver, and the
        rtl8192u wireless driver. Both of these were very old and no one was
        maintaining them, the wireless driver removal was due to no one using
        it anymore, and no hardware to be found, and is part of a larger
        effort to remove unused and old wifi drivers from the system.
      
        The qlge ethernet driver did have one user pop up after it was
        dropped, and we are working with the network mainainers to figure out
        what tree it will come back in from and who will be responsible for
        it, and if it really is being used or not. Odds are it will show up in
        a network subsystem pull request after -rc1 is out, but we aren't sure
        yet.
      
        Other smaller changes in here are:
      
         - Lots of vc04_services work by Umang to clean up the mess created by
           the rpi developers long ago, bringing it almost into good enough
           shape to get out of staging, hopefully next major release, it's
           getting close.
      
         - rtl8192e variable cleanups and removal of unused code and
           structures
      
         - vme_user coding style cleanups
      
         - other small coding style cleanups to lots of the staging drivers
      
         - octeon typedef removals, and then last-minute revert when it was
           found to break the build in some configurations (it's a hard driver
           to build properly, none of the normal automated testing catches
           it.)
      
        All of these have been in linux-next for a while with no reported
        issues"
      
      * tag 'staging-6.7-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging: (256 commits)
        Revert "staging: octeon: remove typedef in enum cvmx_spi_mode_t"
        Revert "staging: octeon: remove typedef in enum cvmx_helper_interface_mode_t"
        Revert "staging: octeon: remove typedef in enum cvmx_pow_wait_t"
        Revert "staging: octeon: remove typedef in struct cvmx_pko_lock_t"
        Revert "staging: octeon: remove typedef in enum cvmx_pko_status_t"
        Revert "staging: octeon: remove typedef in structs cvmx_pip_port_status_t and cvmx_pko_port_status_t"
        staging: vt6655: Type encoding info dropped from variable name "byRxRate"
        staging: vt6655: Type encoding info dropped from function name "CARDbUpdateTSF"
        staging: vt6655: Type encoding info dropped from function name "CARDvSetRSPINF"
        staging: vt6655: Type encoding info dropped from function name "CARDbyGetPktType"
        staging: vt6655: Type encoding info dropped from variable name "byPacketType"
        staging: vt6655: Type encoding info dropped from function name "CARDbSetPhyParameter"
        staging: vt6655: Type encoding info dropped from variable name "pbyRsvTime"
        staging: vt6655: Type encoding info dropped from variable name "pbyTxRate"
        staging: vt6655: Type encoding info dropped from function name "s_vCalculateOFDMRParameter"
        staging: vt6655: Type encoding info dropped from array name "cwRXBCNTSFOff"
        staging: fbtft: Convert to platform remove callback returning void
        staging: olpc_dcon: Remove I2C_CLASS_DDC support
        staging: vc04_services: use snprintf instead of sprintf
        staging: rtl8192e: Fix line break issue at priv->rx_buf[priv->rx_idx]
        ...
      4c7a0c95
    • Linus Torvalds's avatar
      Merge tag 'driver-core-6.7-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core · b06f58ad
      Linus Torvalds authored
      Pull driver core updates from Greg KH:
       "Here is the set of driver core updates for 6.7-rc1. Nothing major in
        here at all, just a small number of changes including:
      
         - minor cleanups and updates from Andy Shevchenko
      
         - __counted_by addition
      
         - firmware_loader update for aborting loads cleaner
      
         - other minor changes, details in the shortlog
      
         - documentation update
      
        All of these have been in linux-next for a while with no reported
        issues"
      
      * tag 'driver-core-6.7-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core: (21 commits)
        firmware_loader: Abort all upcoming firmware load request once reboot triggered
        firmware_loader: Refactor kill_pending_fw_fallback_reqs()
        Documentation: security-bugs.rst: linux-distros relaxed their rules
        driver core: Release all resources during unbind before updating device links
        driver core: class: remove boilerplate code
        driver core: platform: Annotate struct irq_affinity_devres with __counted_by
        resource: Constify resource crosscheck APIs
        resource: Unify next_resource() and next_resource_skip_children()
        resource: Reuse for_each_resource() macro
        PCI: Implement custom llseek for sysfs resource entries
        kernfs: sysfs: support custom llseek method for sysfs entries
        debugfs: Fix __rcu type comparison warning
        device property: Replace custom implementation of COUNT_ARGS()
        drivers: base: test: Make property entry API test modular
        driver core: Add missing parameter description to __fwnode_link_add()
        device property: Clarify usage scope of some struct fwnode_handle members
        devres: rename the first parameter of devm_add_action(_or_reset)
        driver core: platform: Unify the firmware node type check
        driver core: platform: Use temporary variable in platform_device_add()
        driver core: platform: Refactor error path in a couple places
        ...
      b06f58ad
    • Linus Torvalds's avatar
      Merge tag 'char-misc-6.7-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc · d99b91a9
      Linus Torvalds authored
      Pull char/misc updates from Greg KH:
       "Here is the big set of char/misc and other small driver subsystem
        changes for 6.7-rc1. Included in here are:
      
         - IIO subsystem driver updates and additions (largest part of this
           pull request)
      
         - FPGA subsystem driver updates
      
         - Counter subsystem driver updates
      
         - ICC subsystem driver updates
      
         - extcon subsystem driver updates
      
         - mei driver updates and additions
      
         - nvmem subsystem driver updates and additions
      
         - comedi subsystem dependency fixes
      
         - parport driver fixups
      
         - cdx subsystem driver and core updates
      
         - splice support for /dev/zero and /dev/full
      
         - other smaller driver cleanups
      
        All of these have been in linux-next for a while with no reported
        issues"
      
      * tag 'char-misc-6.7-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc: (326 commits)
        cdx: add sysfs for subsystem, class and revision
        cdx: add sysfs for bus reset
        cdx: add support for bus enable and disable
        cdx: Register cdx bus as a device on cdx subsystem
        cdx: Create symbol namespaces for cdx subsystem
        cdx: Introduce lock to protect controller ops
        cdx: Remove cdx controller list from cdx bus system
        dts: ti: k3-am625-beagleplay: Add beaglecc1352
        greybus: Add BeaglePlay Linux Driver
        dt-bindings: net: Add ti,cc1352p7
        dt-bindings: eeprom: at24: allow NVMEM cells based on old syntax
        dt-bindings: nvmem: SID: allow NVMEM cells based on old syntax
        Revert "nvmem: add new config option"
        MAINTAINERS: coresight: Add missing Coresight files
        misc: pci_endpoint_test: Add deviceID for J721S2 PCIe EP device support
        firmware: xilinx: Move EXPORT_SYMBOL_GPL next to zynqmp_pm_feature definition
        uacce: make uacce_class constant
        ocxl: make ocxl_class constant
        cxl: make cxl_class constant
        misc: phantom: make phantom_class constant
        ...
      d99b91a9
  5. 03 Nov, 2023 10 commits
    • Linus Torvalds's avatar
      Merge tag 's390-6.7-1' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux · e392ea4d
      Linus Torvalds authored
      Pull s390 updates from Vasily Gorbik:
      
       - Get rid of private VM_FAULT flags
      
       - Add word-at-a-time implementation
      
       - Add DCACHE_WORD_ACCESS support
      
       - Cleanup control register handling
      
       - Disallow CPU hotplug of CPU 0 to simplify its handling complexity,
         following a similar restriction in x86
      
       - Optimize pai crypto map allocation
      
       - Update the list of crypto express EP11 coprocessor operation modes
      
       - Fixes and improvements for secure guests AP pass-through
      
       - Several fixes to address incorrect page marking for address
         translation with the "cmma no-dat" feature, preventing potential
         incorrect guest TLB flushes
      
       - Fix early IPI handling
      
       - Several virtual vs physical address confusion fixes
      
       - Various small fixes and improvements all over the code
      
      * tag 's390-6.7-1' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux: (74 commits)
        s390/cio: replace deprecated strncpy with strscpy
        s390/sclp: replace deprecated strncpy with strtomem
        s390/cio: fix virtual vs physical address confusion
        s390/cio: export CMG value as decimal
        s390: delete the unused store_prefix() function
        s390/cmma: fix handling of swapper_pg_dir and invalid_pg_dir
        s390/cmma: fix detection of DAT pages
        s390/sclp: handle default case in sclp memory notifier
        s390/pai_crypto: remove per-cpu variable assignement in event initialization
        s390/pai: initialize event count once at initialization
        s390/pai_crypto: use PERF_ATTACH_TASK define for per task detection
        s390/mm: add missing arch_set_page_dat() call to gmap allocations
        s390/mm: add missing arch_set_page_dat() call to vmem_crst_alloc()
        s390/cmma: fix initial kernel address space page table walk
        s390/diag: add missing virt_to_phys() translation to diag224()
        s390/mm,fault: move VM_FAULT_ERROR handling to do_exception()
        s390/mm,fault: remove VM_FAULT_BADMAP and VM_FAULT_BADACCESS
        s390/mm,fault: remove VM_FAULT_SIGNAL
        s390/mm,fault: remove VM_FAULT_BADCONTEXT
        s390/mm,fault: simplify kfence fault handling
        ...
      e392ea4d
    • Linus Torvalds's avatar
      Merge tag 'powerpc-6.7-1' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux · 707df298
      Linus Torvalds authored
      Pull powerpc updates from Michael Ellerman:
      
       - Add support for KVM running as a nested hypervisor under development
         versions of PowerVM, using the new PAPR nested virtualisation API
      
       - Add support for the BPF prog pack allocator
      
       - A rework of the non-server MMU handling to support execute-only on
         all platforms
      
       - Some optimisations & cleanups for the powerpc qspinlock code
      
       - Various other small features and fixes
      
      Thanks to Aboorva Devarajan, Aditya Gupta, Amit Machhiwal, Benjamin
      Gray, Christophe Leroy, Dr. David Alan Gilbert, Gaurav Batra, Gautam
      Menghani, Geert Uytterhoeven, Haren Myneni, Hari Bathini, Joel Stanley,
      Jordan Niethe, Julia Lawall, Kautuk Consul, Kuan-Wei Chiu, Michael
      Neuling, Minjie Du, Muhammad Muzammil, Naveen N Rao, Nicholas Piggin,
      Nick Child, Nysal Jan K.A, Peter Lafreniere, Rob Herring, Sachin Sant,
      Sebastian Andrzej Siewior, Shrikanth Hegde, Srikar Dronamraju, Stanislav
      Kinsburskii, Vaibhav Jain, Wang Yufen, Yang Yingliang, and Yuan Tan.
      
      * tag 'powerpc-6.7-1' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux: (100 commits)
        powerpc/vmcore: Add MMU information to vmcoreinfo
        Revert "powerpc: add `cur_cpu_spec` symbol to vmcoreinfo"
        powerpc/bpf: use bpf_jit_binary_pack_[alloc|finalize|free]
        powerpc/bpf: rename powerpc64_jit_data to powerpc_jit_data
        powerpc/bpf: implement bpf_arch_text_invalidate for bpf_prog_pack
        powerpc/bpf: implement bpf_arch_text_copy
        powerpc/code-patching: introduce patch_instructions()
        powerpc/32s: Implement local_flush_tlb_page_psize()
        powerpc/pseries: use kfree_sensitive() in plpks_gen_password()
        powerpc/code-patching: Perform hwsync in __patch_instruction() in case of failure
        powerpc/fsl_msi: Use device_get_match_data()
        powerpc: Remove cpm_dp...() macros
        powerpc/qspinlock: Rename yield_propagate_owner tunable
        powerpc/qspinlock: Propagate sleepy if previous waiter is preempted
        powerpc/qspinlock: don't propagate the not-sleepy state
        powerpc/qspinlock: propagate owner preemptedness rather than CPU number
        powerpc/qspinlock: stop queued waiters trying to set lock sleepy
        powerpc/perf: Fix disabling BHRB and instruction sampling
        powerpc/trace: Add support for HAVE_FUNCTION_ARG_ACCESS_API
        powerpc/tools: Pass -mabi=elfv2 to gcc-check-mprofile-kernel.sh
        ...
      707df298
    • Linus Torvalds's avatar
      Merge tag 'apparmor-pr-2023-11-03' of... · 6bdfe2d8
      Linus Torvalds authored
      Merge tag 'apparmor-pr-2023-11-03' of git://git.kernel.org/pub/scm/linux/kernel/git/jj/linux-apparmor
      
      Pull apparmor updates from John Johansen:
       "This adds initial support for mediating io_uring and userns creation.
        Adds a new restriction that tightens the use of change_profile, and a
        couple of optimizations to reduce performance bottle necks that have
        been found when retrieving the current task's secid and allocating
        work buffers.
      
        The majority of the patch set continues cleaning up and simplifying
        the code (fixing comments, removing now dead functions, and macros
        etc). Finally there are 4 bug fixes, with the regression fix having
        had a couple months of testing.
      
        Features:
         - optimize retrieving current task secid
         - add base io_uring mediation
         - add base userns mediation
         - improve buffer allocation
         - allow restricting unprivilege change_profile
      
        Cleanups:
         - Fix kernel doc comments
         - remove unused declarations
         - remove unused functions
         - remove unneeded #ifdef
         - remove unused macros
         - mark fns static
         - cleanup fn with unused return values
         - cleanup audit data
         - pass cred through to audit data
         - refcount the pdb instead of using duplicates
         - make SK_CTX macro an inline fn
         - some comment cleanups
      
        Bug fixes:
         - fix regression in mount mediation
         - fix invalid refenece
         - use passed in gfp flags
         - advertise avaiability of extended perms and disconnected.path"
      
      * tag 'apparmor-pr-2023-11-03' of git://git.kernel.org/pub/scm/linux/kernel/git/jj/linux-apparmor: (39 commits)
        apparmor: Fix some kernel-doc comments
        apparmor: Fix one kernel-doc comment
        apparmor: Fix some kernel-doc comments
        apparmor: mark new functions static
        apparmor: Fix regression in mount mediation
        apparmor: cache buffers on percpu list if there is lock contention
        apparmor: add io_uring mediation
        apparmor: add user namespace creation mediation
        apparmor: allow restricting unprivileged change_profile
        apparmor: advertise disconnected.path is available
        apparmor: refcount the pdb
        apparmor: provide separate audit messages for file and policy checks
        apparmor: pass cred through to audit info.
        apparmor: rename audit_data->label to audit_data->subj_label
        apparmor: combine common_audit_data and apparmor_audit_data
        apparmor: rename SK_CTX() to aa_sock and make it an inline fn
        apparmor: Optimize retrieving current task secid
        apparmor: remove unused functions in policy_ns.c/.h
        apparmor: remove unneeded #ifdef in decompress_zstd()
        apparmor: fix invalid reference on profile->disconnected
        ...
      6bdfe2d8
    • Linus Torvalds's avatar
      Merge tag 'landlock-6.7-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/mic/linux · 136cc1e1
      Linus Torvalds authored
      Pull landlock updates from Mickaël Salaün:
       "A Landlock ruleset can now handle two new access rights:
        LANDLOCK_ACCESS_NET_BIND_TCP and LANDLOCK_ACCESS_NET_CONNECT_TCP. When
        handled, the related actions are denied unless explicitly allowed by a
        Landlock network rule for a specific port.
      
        The related patch series has been reviewed for almost two years, it
        has evolved a lot and we now have reached a decent design, code and
        testing. The refactored kernel code and the new test helpers also
        bring the foundation to support more network protocols.
      
        Test coverage for security/landlock is 92.4% of 710 lines according to
        gcc/gcov-13, and it was 93.1% of 597 lines before this series. The
        decrease in coverage is due to code refactoring to make the ruleset
        management more generic (i.e. dealing with inodes and ports) that also
        added new WARN_ON_ONCE() checks not possible to test from user space.
      
        syzkaller has been updated accordingly [4], and such patched instance
        (tailored to Landlock) has been running for a month, covering all the
        new network-related code [5]"
      
      Link: https://lore.kernel.org/r/20231026014751.414649-1-konstantin.meskhidze@huawei.com [1]
      Link: https://lore.kernel.org/r/CAHC9VhS1wwgH6NNd+cJz4MYogPiRV8NyPDd1yj5SpaxeUB4UVg@mail.gmail.com [2]
      Link: https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next-history.git/commit/?id=c8dc5ee69d3a [3]
      Link: https://github.com/google/syzkaller/pull/4266 [4]
      Link: https://storage.googleapis.com/syzbot-assets/82e8608dec36/ci-upstream-linux-next-kasan-gce-root-ab577164.html#security%2flandlock%2fnet.c [5]
      
      * tag 'landlock-6.7-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/mic/linux:
        selftests/landlock: Add tests for FS topology changes with network rules
        landlock: Document network support
        samples/landlock: Support TCP restrictions
        selftests/landlock: Add network tests
        selftests/landlock: Share enforce_ruleset() helper
        landlock: Support network rules with TCP bind and connect
        landlock: Refactor landlock_add_rule() syscall
        landlock: Refactor layer helpers
        landlock: Move and rename layer helpers
        landlock: Refactor merge/inherit_ruleset helpers
        landlock: Refactor landlock_find_rule/insert_rule helpers
        landlock: Allow FS topology changes for domains without such rule type
        landlock: Make ruleset's access masks more generic
      136cc1e1
    • Linus Torvalds's avatar
      Merge tag 'perf-tools-for-v6.7-1-2023-11-01' of... · 7ab89417
      Linus Torvalds authored
      Merge tag 'perf-tools-for-v6.7-1-2023-11-01' of git://git.kernel.org/pub/scm/linux/kernel/git/perf/perf-tools
      
      Pull perf tools updates from Namhyung Kim:
       "Build:
      
         - Compile BPF programs by default if clang (>= 12.0.1) is available
           to enable more features like kernel lock contention, off-cpu
           profiling, kwork, sample filtering and so on.
      
           This can be disabled by passing BUILD_BPF_SKEL=0 to make.
      
         - Produce better error messages for bison on debug build (make
           DEBUG=1) by defining YYDEBUG symbol internally.
      
        perf record:
      
         - Track sideband events (like FORK/MMAP) from all CPUs even if perf
           record targets a subset of CPUs only (using -C option). Otherwise
           it may lose some information happened on a CPU out of the target
           list.
      
         - Fix checking raw sched_switch tracepoint argument using system BTF.
           This affects off-cpu profiling which attaches a BPF program to the
           raw tracepoint.
      
        perf lock contention:
      
         - Add --lock-cgroup option to see contention by cgroups. This should
           be used with BPF only (using -b option).
      
             $ sudo perf lock con -ab --lock-cgroup -- sleep 1
              contended   total wait     max wait     avg wait   cgroup
      
                    835     14.06 ms     41.19 us     16.83 us   /system.slice/led.service
                     25    122.38 us     13.77 us      4.89 us   /
                     44     23.73 us      3.87 us       539 ns   /user.slice/user-657345.slice/session-c4.scope
                      1       491 ns       491 ns       491 ns   /system.slice/connectd.service
      
         - Add -G/--cgroup-filter option to see contention only for given
           cgroups.
      
           This can be useful when you identified a cgroup in the above
           command and want to investigate more on it. It also works with
           other output options like -t/--threads and -l/--lock-addr.
      
             $ sudo perf lock con -ab -G /user.slice/user-657345.slice/session-c4.scope -- sleep 1
              contended   total wait     max wait     avg wait         type   caller
      
                      8     77.11 us     17.98 us      9.64 us     spinlock   futex_wake+0xc8
                      2     24.56 us     14.66 us     12.28 us     spinlock   tick_do_update_jiffies64+0x25
                      1      4.97 us      4.97 us      4.97 us     spinlock   futex_q_lock+0x2a
      
         - Use per-cpu array for better spinlock tracking. This is to improve
           performance of the BPF program and to avoid nested contention on a
           lock in the BPF hash map.
      
         - Update callstack check for PowerPC. To find a representative caller
           of a lock, it needs to look up the call stacks. It ends the lookup
           when it sees 0 in the call stack buffer. However, PowerPC call
           stacks can have 0 values in the beginning so skip them when it
           expects valid call stacks after.
      
        perf kwork:
      
         - Support 'sched' class (for -k option) so that it can see task
           scheduling event (using sched_switch tracepoint) as well as irq and
           workqueue items.
      
         - Add perf kwork top subcommand to show more accurate cpu utilization
           with sched class above. It works both with a recorded data (using
           perf kwork record command) and BPF (using -b option). Unlike perf
           top command, it does not support interactive mode (yet).
      
             $ sudo perf kwork top -b -k sched
             Starting trace, Hit <Ctrl+C> to stop and report
             ^C
             Total  : 160702.425 ms, 8 cpus
             %Cpu(s):  36.00% id,   0.00% hi,   0.00% si
             %Cpu0   [||||||||||||||||||              61.66%]
             %Cpu1   [||||||||||||||||||              61.27%]
             %Cpu2   [|||||||||||||||||||             66.40%]
             %Cpu3   [||||||||||||||||||              61.28%]
             %Cpu4   [||||||||||||||||||              61.82%]
             %Cpu5   [|||||||||||||||||||||||         77.41%]
             %Cpu6   [||||||||||||||||||              61.73%]
             %Cpu7   [||||||||||||||||||              63.25%]
      
                   PID     SPID    %CPU           RUNTIME  COMMMAND
               -------------------------------------------------------------
                     0        0   38.72       8089.463 ms  [swapper/1]
                     0        0   38.71       8084.547 ms  [swapper/3]
                     0        0   38.33       8007.532 ms  [swapper/0]
                     0        0   38.26       7992.985 ms  [swapper/6]
                     0        0   38.17       7971.865 ms  [swapper/4]
                     0        0   36.74       7447.765 ms  [swapper/7]
                     0        0   33.59       6486.942 ms  [swapper/2]
                     0        0   22.58       3771.268 ms  [swapper/5]
                  9545     9351    2.48        447.136 ms  sched-messaging
                  9574     9351    2.09        418.583 ms  sched-messaging
                  9724     9351    2.05        372.407 ms  sched-messaging
                  9531     9351    2.01        368.804 ms  sched-messaging
                  9512     9351    2.00        362.250 ms  sched-messaging
                  9514     9351    1.95        357.767 ms  sched-messaging
                  9538     9351    1.86        384.476 ms  sched-messaging
                  9712     9351    1.84        386.490 ms  sched-messaging
                  9723     9351    1.83        380.021 ms  sched-messaging
                  9722     9351    1.82        382.738 ms  sched-messaging
                  9517     9351    1.81        354.794 ms  sched-messaging
                  9559     9351    1.79        344.305 ms  sched-messaging
                  9725     9351    1.77        365.315 ms  sched-messaging
             <SNIP>
      
         - Add hard/soft-irq statistics to perf kwork top. This will show the
           total CPU utilization with IRQ stats like below:
      
             $ sudo perf kwork top -b -k sched,irq,softirq
             Starting trace, Hit <Ctrl+C> to stop and report
             ^C
             Total  :  12554.889 ms, 8 cpus
             %Cpu(s):  96.23% id,   0.10% hi,   0.19% si      <---- here
             %Cpu0   [|                                4.60%]
             %Cpu1   [|                                4.59%]
             %Cpu2   [                                 2.73%]
             %Cpu3   [|                                3.81%]
             <SNIP>
      
        perf bench:
      
         - Add -G/--cgroups option to perf bench sched pipe. The pipe bench is
           good to measure context switch overhead. With this option, it puts
           the reader and writer tasks in separate cgroups to enforce context
           switch between two different cgroups.
      
           Also it needs to set CPU affinity of the tasks in a CPU to
           accurately measure the impact of cgroup context switches.
      
             $ sudo perf stat -e context-switches,cgroup-switches -- \
             > taskset -c 0 perf bench sched pipe -l 100000
             # Running 'sched/pipe' benchmark:
             # Executed 100000 pipe operations between two processes
      
                  Total time: 0.307 [sec]
      
                    3.078180 usecs/op
                      324867 ops/sec
      
              Performance counter stats for 'taskset -c 0 perf bench sched pipe -l 100000':
      
                        200,026      context-switches
                             63      cgroup-switches
      
                    0.321637922 seconds time elapsed
      
           You can see small number of cgroup-switches because both write and
           read tasks are in the same cgroup.
      
             $ sudo mkdir /sys/fs/cgroup/{AAA,BBB}
      
             $ sudo perf stat -e context-switches,cgroup-switches -- \
             > taskset -c 0 perf bench sched pipe -l 100000 -G AAA,BBB
             # Running 'sched/pipe' benchmark:
             # Executed 100000 pipe operations between two processes
      
                  Total time: 0.351 [sec]
      
                    3.512990 usecs/op
                      284657 ops/sec
      
              Performance counter stats for 'taskset -c 0 perf bench sched pipe -l 100000 -G AAA,BBB':
      
                        200,020      context-switches
                        200,019      cgroup-switches
      
                    0.365034567 seconds time elapsed
      
           Now context-switches and cgroup-switches are almost same. And you
           can see the pipe operation took little more.
      
         - Kill child processes when perf bench sched messaging exited
           abnormally. Otherwise it'd leave the child doing unnecessary work.
      
        perf test:
      
         - Fix various shellcheck issues on the tests written in shell script.
      
         - Skip tests when condition is not satisfied:
            - object code reading test for non-text section addresses.
            - CoreSight test if cs_etm// event is not available.
            - lock contention test if not enough CPUs.
      
        Event parsing:
      
         - Make PMU alias name loading lazy to reduce the startup time in the
           event parsing code for perf record, stat and others in the general
           case.
      
         - Lazily compute PMU default config. In the same sense, delay PMU
           initialization until it's really needed to reduce the startup cost.
      
         - Fix event term values that are raw events. The event specification
           can have several terms including event name. But sometimes it
           clashes with raw event encoding which starts with 'r' and has
           hex-digits.
      
           For example, an event named 'read' should be processed as a normal
           event but it was mis-treated as a raw encoding and caused a
           failure.
      
             $ perf stat -e 'uncore_imc_free_running/event=read/' -a sleep 1
             event syntax error: '..nning/event=read/'
                                               \___ parser error
             Run 'perf list' for a list of valid events
      
              Usage: perf stat [<options>] [<command>]
      
                 -e, --event <event> event selector. use 'perf list' to list available events
      
        Event metrics:
      
         - Add "Compat" regex to match event with multiple identifiers.
      
         - Usual updates for Intel, Power10, Arm telemetry/CMN and AmpereOne.
      
        Misc:
      
         - Assorted memory leak fixes and footprint reduction.
      
         - Add "bpf_skeletons" to perf version --build-options so that users
           can check whether their perf tools have BPF support easily.
      
         - Fix unaligned access in Intel-PT packet decoder found by
           undefined-behavior sanitizer.
      
         - Avoid frequency mode for the dummy event. Surprisingly it'd impact
           kernel timer tick handler performance by force iterating all PMU
           events.
      
         - Update bash shell completion for events and metrics"
      
      * tag 'perf-tools-for-v6.7-1-2023-11-01' of git://git.kernel.org/pub/scm/linux/kernel/git/perf/perf-tools: (187 commits)
        perf vendor events intel: Update tsx_cycles_per_elision metrics
        perf vendor events intel: Update bonnell version number to v5
        perf vendor events intel: Update westmereex events to v4
        perf vendor events intel: Update meteorlake events to v1.06
        perf vendor events intel: Update knightslanding events to v16
        perf vendor events intel: Add typo fix for ivybridge FP
        perf vendor events intel: Update a spelling in haswell/haswellx
        perf vendor events intel: Update emeraldrapids to v1.01
        perf vendor events intel: Update alderlake/alderlake events to v1.23
        perf build: Disable BPF skeletons if clang version is < 12.0.1
        perf callchain: Fix spelling mistake "statisitcs" -> "statistics"
        perf report: Fix spelling mistake "heirachy" -> "hierarchy"
        perf python: Fix binding linkage due to rename and move of evsel__increase_rlimit()
        perf tests: test_arm_coresight: Simplify source iteration
        perf vendor events intel: Add tigerlake two metrics
        perf vendor events intel: Add broadwellde two metrics
        perf vendor events intel: Fix broadwellde tma_info_system_dram_bw_use metric
        perf mem_info: Add and use map_symbol__exit and addr_map_symbol__exit
        perf callchain: Minor layout changes to callchain_list
        perf callchain: Make brtype_stat in callchain_list optional
        ...
      7ab89417
    • Linus Torvalds's avatar
      Merge tag 'trace-v6.7' of git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace · 31e5f934
      Linus Torvalds authored
      Pull tracing updates from Steven Rostedt:
      
       - Remove eventfs_file descriptor
      
         This is the biggest change, and the second part of making eventfs
         create its files dynamically.
      
         In 6.6 the first part was added, and that maintained a one to one
         mapping between eventfs meta descriptors and the directories and file
         inodes and dentries that were dynamically created. The directories
         were represented by a eventfs_inode and the files were represented by
         a eventfs_file.
      
         In v6.7 the eventfs_file is removed. As all events have the same
         directory make up (sched_switch has an "enable", "id", "format", etc
         files), the handing of what files are underneath each leaf eventfs
         directory is moved back to the tracing subsystem via a callback.
      
         When an event is added to the eventfs, it registers an array of
         evenfs_entry's. These hold the names of the files and the callbacks
         to call when the file is referenced. The callback gets the name so
         that the same callback may be used by multiple files. The callback
         then supplies the filesystem_operations structure needed to create
         this file.
      
         This has brought the memory footprint of creating multiple eventfs
         instances down by 2 megs each!
      
       - User events now has persistent events that are not associated to a
         single processes. These are privileged events that hang around even
         if no process is attached to them
      
       - Clean up of seq_buf
      
         There's talk about using seq_buf more to replace strscpy() and
         friends. But this also requires some minor modifications of seq_buf
         to be able to do this
      
       - Expand instance ring buffers individually
      
         Currently if boot up creates an instance, and a trace event is
         enabled on that instance, the ring buffer for that instance and the
         top level ring buffer are expanded (1.4 MB per CPU). This wastes
         memory as this happens when nothing is using the top level instance
      
       - Other minor clean ups and fixes
      
      * tag 'trace-v6.7' of git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace: (34 commits)
        seq_buf: Export seq_buf_puts()
        seq_buf: Export seq_buf_putc()
        eventfs: Use simple_recursive_removal() to clean up dentries
        eventfs: Remove special processing of dput() of events directory
        eventfs: Delete eventfs_inode when the last dentry is freed
        eventfs: Hold eventfs_mutex when calling callback functions
        eventfs: Save ownership and mode
        eventfs: Test for ei->is_freed when accessing ei->dentry
        eventfs: Have a free_ei() that just frees the eventfs_inode
        eventfs: Remove "is_freed" union with rcu head
        eventfs: Fix kerneldoc of eventfs_remove_rec()
        tracing: Have the user copy of synthetic event address use correct context
        eventfs: Remove extra dget() in eventfs_create_events_dir()
        tracing: Have trace_event_file have ref counters
        seq_buf: Introduce DECLARE_SEQ_BUF and seq_buf_str()
        eventfs: Fix typo in eventfs_inode union comment
        eventfs: Fix WARN_ON() in create_file_dentry()
        powerpc: Remove initialisation of readpos
        tracing/histograms: Simplify last_cmd_set()
        seq_buf: fix a misleading comment
        ...
      31e5f934
    • Linus Torvalds's avatar
      Merge tag 'trace-tools-v6.7' of git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace · fd912e49
      Linus Torvalds authored
      Pull tracing tools updates from Steven Rostedt:
       "RTLA:
      
         - In rtla/utils.c, initialize the 'found' variable to avoid garbage
           when a mount point is not found.
      
       Verification:
      
         - Remove duplicated imports on dot2k python script"
      
      * tag 'trace-tools-v6.7' of git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace:
        rtla: Fix uninitialized variable found
        verification/dot2k: Delete duplicate imports
      fd912e49
    • Linus Torvalds's avatar
      Merge tag 'printk-for-6.7' of git://git.kernel.org/pub/scm/linux/kernel/git/printk/linux · 2a80532c
      Linus Torvalds authored
      Pull printk updates from Petr Mladek:
      
       - Another preparation step for introducing printk kthreads. The main
         piece is a per-console lock with several features:
      
          - Support three priorities: normal, emergency, and panic. They will
            be defined by a context where the lock is taken. A context with a
            higher priority is allowed to take over the lock from a context
            with a lower one.
      
            The plan is to use the emergency context for Oops and WARN()
            messages, and also by watchdogs.
      
            The panic() context will be used on panic CPU.
      
          - The owner might enter/exit regions where it is not safe to take
            over the lock. It allows the take over the lock a safe way in the
            middle of a message.
      
            For example, serial drivers emit characters one by one. And the
            serial port is in a safe state in between.
      
            Only the final console_flush_in_panic() will be allowed to take
            over the lock even in the unsafe state (last chance, pray, and
            hope).
      
          - A higher priority context might busy wait with a timeout. The
            current owner is informed about the waiter and releases the lock
            on exit from the unsafe state.
      
          - The new lock is safe even in atomic contexts, including NMI.
      
         Another change is a safe manipulation of per-console sequence number
         counter under the new lock.
      
       - simple_strntoull() micro-optimization
      
       - Reduce pr_flush() pooling time.
      
       - Calm down false warning about possible buffer invalid access to
         console buffers when CONFIG_PRINTK is disabled.
      
      [ .. and Thomas Gleixner wants to point out that while several of the
        commits are attributed to him, he only authored the early versions of
        said commits, and that John Ogness and Petr Mladek have been the ones
        who sorted out the details and really should be those who get the
        credit   - Linus ]
      
      * tag 'printk-for-6.7' of git://git.kernel.org/pub/scm/linux/kernel/git/printk/linux:
        vsprintf: uninline simple_strntoull(), reorder arguments
        printk: printk: Remove unnecessary statements'len = 0;'
        printk: Reduce pr_flush() pooling time
        printk: fix illegal pbufs access for !CONFIG_PRINTK
        printk: nbcon: Allow drivers to mark unsafe regions and check state
        printk: nbcon: Add emit function and callback function for atomic printing
        printk: nbcon: Add sequence handling
        printk: nbcon: Add ownership state functions
        printk: nbcon: Add buffer management
        printk: Make static printk buffers available to nbcon
        printk: nbcon: Add acquire/release logic
        printk: Add non-BKL (nbcon) console basic infrastructure
      2a80532c
    • Linus Torvalds's avatar
      Merge tag 'livepatching-for-6.7' of... · 00657bb3
      Linus Torvalds authored
      Merge tag 'livepatching-for-6.7' of git://git.kernel.org/pub/scm/linux/kernel/git/livepatching/livepatching
      
      Pull livepatching update from Petr Mladek:
      
       - Add missing newline character to avoid waiting for a continuous
         message
      
      * tag 'livepatching-for-6.7' of git://git.kernel.org/pub/scm/linux/kernel/git/livepatching/livepatching:
        livepatch: Fix missing newline character in klp_resolve_symbols()
      00657bb3
    • Linus Torvalds's avatar
      Merge tag 'bitmap-for-6.7' of https://github.com/norov/linux · 9a719c21
      Linus Torvalds authored
      Pull bitmap updates from Yury Norov:
       "This includes the 'bitmap: cleanup bitmap_*_region() implementation'
        series, and scattered cleanup patches"
      
      * tag 'bitmap-for-6.7' of https://github.com/norov/linux:
        buildid: reduce header file dependencies for module
        bitmap: move bitmap_*_region() functions to bitmap.h
        bitmap: drop _reg_op() function
        bitmap: replace _reg_op(REG_OP_ISFREE) with find_next_bit()
        bitmap: replace _reg_op(REG_OP_RELEASE) with bitmap_clear()
        bitmap: replace _reg_op(REG_OP_ALLOC) with bitmap_set()
        bitmap: fix opencoded bitmap_allocate_region()
        bitmap: add test for bitmap_*_region() functions
        bitmap: align __reg_op() wrappers with modern coding style
        lib/bitmap: split-out string-related operations to a separate files
        bitmap: Remove dead code, i.e. bitmap_copy_le()
        bitmap: Fix a typo ("identify map")
        cpumask: kernel-doc cleanups and additions
      9a719c21