1. 03 Apr, 2023 2 commits
    • Mark Brown's avatar
      regmap: Add maple tree based register cache · f033c26d
      Mark Brown authored
      The current state of the art for sparse register maps is the
      rbtree cache.  This works well for most applications but isn't
      always ideal for sparser register maps since the rbtree can get
      deep, requiring a lot of walking.  Fortunately the kernel has a
      data structure intended to address this very problem, the maple
      tree.  Provide an initial implementation of a register cache
      based on the maple tree to start taking advantage of it.
      
      The entries stored in the maple tree are arrays of register
      values, with the maple tree keys holding the register addresses.
      We store data in host native format rather than device native
      format as we do for rbtree, this will be a benefit for devices
      where we don't marshal data within regmap and simplifies the code
      but will result in additional CPU overhead when syncing the cache
      on devices where we do marshal data in regmap.
      
      This should work well for a lot of devices, though there's some
      additional areas that could be looked at such as caching the
      last accessed entry like we do for rbtree and trying to minimise
      the maple tree level locking. We should also use bulk writes
      rather than single register writes when resyncing the cache where
      possible, even if we don't store in device native format.
      
      Very small register maps may continue to to better with rbtree
      longer term.
      Signed-off-by: default avatarMark Brown <broonie@kernel.org>
      Link: https://lore.kernel.org/r/20230325-regcache-maple-v3-2-23e271f93dc7@kernel.orgSigned-off-by: default avatarMark Brown <broonie@kernel.org>
      f033c26d
    • Mark Brown's avatar
      regmap: Factor out single value register syncing · 05933e2d
      Mark Brown authored
      In order to support sparse caches that don't store data in raw format
      factor out the parts of the raw block sync implementation that deal with
      writing a single register via _regmap_write().
      Signed-off-by: default avatarMark Brown <broonie@kernel.org>
      Link: https://lore.kernel.org/r/20230325-regcache-maple-v3-1-23e271f93dc7@kernel.orgSigned-off-by: default avatarMark Brown <broonie@kernel.org>
      05933e2d
  2. 30 Mar, 2023 2 commits
  3. 29 Mar, 2023 1 commit
  4. 27 Mar, 2023 3 commits
  5. 24 Mar, 2023 2 commits
  6. 19 Mar, 2023 16 commits
  7. 18 Mar, 2023 6 commits
    • Linus Torvalds's avatar
      Merge tag 'fbdev-for-6.3-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/linux-fbdev · a3671bd8
      Linus Torvalds authored
      Pull fbdev fixes from Helge Deller:
       "The majority of lines changed is due to a code style cleanup in the
        pnmtologo helper program.
      
        Arnd removed the omap1 osk driver and the SIS fb driver is now
        orphaned.
      
        Other than that it's the usual bunch of small fixes and cleanups, e.g.
        prevent possible divide-by-zero in various fb drivers if the pixclock
        is zero and various conversions to devm_platform*() and of_property*()
        functions:
      
         - Drop omap1 osk driver
      
         - Various potential divide by zero pixclock fixes
      
         - Add pixelclock and fb_check_var() to stifb
      
         - Code style cleanups and indenting fixes"
      
      * tag 'fbdev-for-6.3-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/linux-fbdev:
        fbdev: Use of_property_present() for testing DT property presence
        fbdev: au1200fb: Fix potential divide by zero
        fbdev: lxfb: Fix potential divide by zero
        fbdev: intelfb: Fix potential divide by zero
        fbdev: nvidia: Fix potential divide by zero
        fbdev: stifb: Provide valid pixelclock and add fb_check_var() checks
        fbdev: omapfb: remove omap1 osk driver
        fbdev: xilinxfb: Use devm_platform_get_and_ioremap_resource()
        fbdev: wm8505fb: Use devm_platform_ioremap_resource()
        fbdev: pxa3xx-gcu: Use devm_platform_get_and_ioremap_resource()
        fbdev: Use of_property_read_bool() for boolean properties
        fbdev: clps711x-fb: Use devm_platform_get_and_ioremap_resource()
        fbdev: tgafb: Fix potential divide by zero
        MAINTAINERS: orphan SIS FRAMEBUFFER DRIVER
        fbdev: omapfb: cleanup inconsistent indentation
        drivers: video: logo: add SPDX comment, remove GPL notice in pnmtologo.c
        drivers: video: logo: fix code style issues in pnmtologo.c
      a3671bd8
    • Linus Torvalds's avatar
      Merge tag 'kbuild-fixes-v6.3' of... · 53429336
      Linus Torvalds authored
      Merge tag 'kbuild-fixes-v6.3' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild
      
      Pull Kbuild fixes from Masahiro Yamada:
      
       - Exclude kallsyms_seqs_of_names from kallsyms to fix build error
      
       - Fix 'make kernelrelease' for external module builds
      
       - Get the Debian source package compilable again
      
       - Fix the wrong uname when Debian packages are built with the
         KDEB_PKGVERSION option
      
       - Fix superfluous CROSS_COMPILE when building Debian packages
      
       - Fix RPM package build error when KCONFIG_CONFIG is set
      
       - Use 'git archive' for creating source tarballs
      
       - Remove the scripts/list-gitignored tool
      
      * tag 'kbuild-fixes-v6.3' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild:
        kbuild: use git-archive for source package creation
        kbuild: rpm-pkg: move source components to rpmbuild/SOURCES
        kbuild: deb-pkg: use dh_listpackages to know enabled packages
        kbuild: deb-pkg: split image and debug objects staging out into functions
        kbuild: deb-pkg: set CROSS_COMPILE only when undefined
        kbuild: deb-pkg: do not take KERNELRELEASE from the source version
        kbuild: deb-pkg: make debian source package working again
        Makefile: Make kernelrelease target work with M=
        kconfig: Update config changed flag before calling callback
        kallsyms: add kallsyms_seqs_of_names to list of special symbols
      53429336
    • Linus Torvalds's avatar
      Merge tag 'hwmon-for-v6.3-rc3' of... · 2a3e75a7
      Linus Torvalds authored
      Merge tag 'hwmon-for-v6.3-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging
      
      Pull hwmon fixes from Guenter Roeck:
      
       - ltc2992, adm1266: Set missing can_sleep flag
      
       - tmp512/tmp513: Drop of_match_ptr for ID table to fix build with
         !CONFIG_OF
      
       - ucd90320: Fix back-to-back access problem
      
       - ina3221: Fix bad error return from probe function
      
       - xgene: Fix use-after-free bug in remove function
      
       - adt7475: Fix hysteresis register bit masks, and fix association of
         'smoothing' attributes
      
      * tag 'hwmon-for-v6.3-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging:
        hwmon: (ltc2992) Set `can_sleep` flag for GPIO chip
        hwmon: (adm1266) Set `can_sleep` flag for GPIO chip
        hwmon: tmp512: drop of_match_ptr for ID table
        hwmon: (ucd90320) Add minimum delay between bus accesses
        hwmon: (ina3221) return prober error code
        hwmon: (xgene) Fix use after free bug in xgene_hwmon_remove due to race condition
        hwmon: (adt7475) Fix masking of hysteresis registers
        hwmon: (adt7475) Display smoothing attributes in correct order
      2a3e75a7
    • Linus Torvalds's avatar
      Merge tag 'ata-6.3-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/dlemoal/libata · f900bffe
      Linus Torvalds authored
      Pull ata fixes from Damien Le Moal:
      
       - Two fixes from Ondrej for the pata_parport driver to address an issue
         with error handling during drive connection and to fix memory leaks
         in case of errors during initialization and when disconnecting a
         device.
      
      * tag 'ata-6.3-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/dlemoal/libata:
        ata: pata_parport: fix memory leaks
        ata: pata_parport: fix parport release without claim
      f900bffe
    • Linus Torvalds's avatar
      media: m5mols: fix off-by-one loop termination error · efbcbb12
      Linus Torvalds authored
      The __find_restype() function loops over the m5mols_default_ffmt[]
      array, and the termination condition ends up being wrong: instead of
      stopping when the iterator becomes the size of the array it traverses,
      it stops after it has already overshot the array.
      
      Now, in practice this doesn't likely matter, because the code will
      always find the entry it looks for, and will thus return early and never
      hit that last extra iteration.
      
      But it turns out that clang will unroll the loop fully, because it has
      only two iterations (well, three due to the off-by-one bug), and then
      clang will end up just giving up in the middle of the loop unrolling
      when it notices that the code walks past the end of the array.
      
      And that made 'objtool' very unhappy indeed, because the generated code
      just falls off the edge of the universe, and ends up falling through to
      the next function, causing this warning:
      
         drivers/media/i2c/m5mols/m5mols.o: warning: objtool: m5mols_set_fmt() falls through to next function m5mols_get_frame_desc()
      
      Fix the loop ending condition.
      Reported-by: default avatarJens Axboe <axboe@kernel.dk>
      Analyzed-by: default avatarMiguel Ojeda <miguel.ojeda.sandonis@gmail.com>
      Analyzed-by: default avatarNick Desaulniers <ndesaulniers@google.com>
      Link: https://lore.kernel.org/linux-block/CAHk-=wgTSdKYbmB1JYM5vmHMcD9J9UZr0mn7BOYM_LudrP+Xvw@mail.gmail.com/
      Fixes: bc125106 ("[media] Add support for M-5MOLS 8 Mega Pixel camera ISP")
      Cc: HeungJun, Kim <riverful.kim@samsung.com>
      Cc: Sylwester Nawrocki <s.nawrocki@samsung.com>
      Cc: Kyungmin Park <kyungmin.park@samsung.com>
      Cc: Mauro Carvalho Chehab <mchehab@redhat.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      efbcbb12
    • Theodore Ts'o's avatar
      ext4: fix possible double unlock when moving a directory · 70e42fea
      Theodore Ts'o authored
      Fixes: 0813299c ("ext4: Fix possible corruption when moving a directory")
      Link: https://lore.kernel.org/r/5efbe1b9-ad8b-4a4f-b422-24824d2b775c@kili.mountainReported-by: default avatarDan Carpenter <error27@gmail.com>
      Reported-by: syzbot+0c73d1d8b952c5f3d714@syzkaller.appspotmail.com
      Signed-off-by: default avatarTheodore Ts'o <tytso@mit.edu>
      70e42fea
  8. 17 Mar, 2023 8 commits
    • Linus Torvalds's avatar
      Merge tag 'net-6.3-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net · 478a351c
      Linus Torvalds authored
      Pull networking fixes from Jakub Kicinski:
       "Including fixes from netfilter, wifi and ipsec.
      
        A little more changes than usual, but it's pretty normal for us that
        the rc3/rc4 PRs are oversized as people start testing in earnest.
      
        Possibly an extra boost from people deploying the 6.1 LTS but that's
        more of an unscientific hunch.
      
        Current release - regressions:
      
         - phy: mscc: fix deadlock in phy_ethtool_{get,set}_wol()
      
         - virtio: vsock: don't use skbuff state to account credit
      
         - virtio: vsock: don't drop skbuff on copy failure
      
         - virtio_net: fix page_to_skb() miscalculating the memory size
      
        Current release - new code bugs:
      
         - eth: correct xdp_features after device reconfig
      
         - wifi: nl80211: fix the puncturing bitmap policy
      
         - net/mlx5e: flower:
            - fix raw counter initialization
            - fix missing error code
            - fix cloned flow attribute
      
         - ipa:
            - fix some register validity checks
            - fix a surprising number of bad offsets
            - kill FILT_ROUT_CACHE_CFG IPA register
      
        Previous releases - regressions:
      
         - tcp: fix bind() conflict check for dual-stack wildcard address
      
         - veth: fix use after free in XDP_REDIRECT when skb headroom is small
      
         - ipv4: fix incorrect table ID in IOCTL path
      
         - ipvlan: make skb->skb_iif track skb->dev for l3s mode
      
         - mptcp:
            - fix possible deadlock in subflow_error_report
            - fix UaFs when destroying unaccepted and listening sockets
      
         - dsa: mv88e6xxx: fix max_mtu of 1492 on 6165, 6191, 6220, 6250, 6290
      
        Previous releases - always broken:
      
         - tcp: tcp_make_synack() can be called from process context, don't
           assume preemption is disabled when updating stats
      
         - netfilter: correct length for loading protocol registers
      
         - virtio_net: add checking sq is full inside xdp xmit
      
         - bonding: restore IFF_MASTER/SLAVE flags on bond enslave Ethertype
           change
      
         - phy: nxp-c45-tja11xx: fix MII_BASIC_CONFIG_REV bit number
      
         - eth: i40e: fix crash during reboot when adapter is in recovery mode
      
         - eth: ice: avoid deadlock on rtnl lock when auxiliary device
           plug/unplug meets bonding
      
         - dsa: mt7530:
            - remove now incorrect comment regarding port 5
            - set PLL frequency and trgmii only when trgmii is used
      
         - eth: mtk_eth_soc: reset PCS state when changing interface types
      
        Misc:
      
         - ynl: another license adjustment
      
         - move the TCA_EXT_WARN_MSG attribute for tc action"
      
      * tag 'net-6.3-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net: (108 commits)
        selftests: bonding: add tests for ether type changes
        bonding: restore bond's IFF_SLAVE flag if a non-eth dev enslave fails
        bonding: restore IFF_MASTER/SLAVE flags on bond enslave ether type change
        net: renesas: rswitch: Fix GWTSDIE register handling
        net: renesas: rswitch: Fix the output value of quote from rswitch_rx()
        ethernet: sun: add check for the mdesc_grab()
        net: ipa: fix some register validity checks
        net: ipa: kill FILT_ROUT_CACHE_CFG IPA register
        net: ipa: add two missing declarations
        net: ipa: reg: include <linux/bug.h>
        net: xdp: don't call notifiers during driver init
        net/sched: act_api: add specific EXT_WARN_MSG for tc action
        Revert "net/sched: act_api: move TCA_EXT_WARN_MSG to the correct hierarchy"
        net: dsa: microchip: fix RGMII delay configuration on KSZ8765/KSZ8794/KSZ8795
        ynl: make the tooling check the license
        ynl: broaden the license even more
        tools: ynl: make definitions optional again
        hsr: ratelimit only when errors are printed
        qed/qed_mng_tlv: correctly zero out ->min instead of ->hour
        selftests: net: devlink_port_split.py: skip test if no suitable device available
        ...
      478a351c
    • Linus Torvalds's avatar
      Merge tag 'block-6.3-2023-03-16' of git://git.kernel.dk/linux · 8d3c682a
      Linus Torvalds authored
      Pull block fixes from Jens Axboe:
       "A bit bigger than usual, as the NVMe pull request missed last weeks
        submission. In detail:
      
         - NVMe pull request via Christoph:
              - Avoid potential UAF in nvmet_req_complete (Damien Le Moal)
              - More quirks (Elmer Miroslav Mosher Golovin, Philipp Geulen)
              - Fix a memory leak in the nvme-pci probe teardown path
                (Irvin Cote)
              - Repair the MAINTAINERS entry (Lukas Bulwahn)
              - Fix handling single range discard request (Ming Lei)
              - Show more opcode names in trace events (Minwoo Im)
              - Fix nvme-tcp timeout reporting (Sagi Grimberg)
      
         - MD pull request via Song:
              - Two fixes for old issues (Neil)
              - Resource leak in device stopping (Xiao)
      
         - Bio based device stats fix (Yu)
      
         - Kill unused CONFIG_BLOCK_COMPAT (Lukas)
      
         - sunvdc missing mdesc_grab() failure check (Liang)
      
         - Fix for reversal of request ordering upon issue for certain cases
           (Jan)
      
         - null_blk timeout fixes (Damien)
      
         - Loop use-after-free fix (Bart)
      
         - blk-mq SRCU fix for BLK_MQ_F_BLOCKING devices (Chris)"
      
      * tag 'block-6.3-2023-03-16' of git://git.kernel.dk/linux:
        block: remove obsolete config BLOCK_COMPAT
        md: select BLOCK_LEGACY_AUTOLOAD
        block: count 'ios' and 'sectors' when io is done for bio-based device
        block: sunvdc: add check for mdesc_grab() returning NULL
        nvmet: avoid potential UAF in nvmet_req_complete()
        nvme-trace: show more opcode names
        nvme-tcp: add nvme-tcp pdu size build protection
        nvme-tcp: fix opcode reporting in the timeout handler
        nvme-pci: add NVME_QUIRK_BOGUS_NID for Lexar NM620
        nvme-pci: add NVME_QUIRK_BOGUS_NID for Netac NV3000
        nvme-pci: fixing memory leak in probe teardown path
        nvme: fix handling single range discard request
        MAINTAINERS: repair malformed T: entries in NVM EXPRESS DRIVERS
        block: null_blk: cleanup null_queue_rq()
        block: null_blk: Fix handling of fake timeout request
        blk-mq: fix "bad unlock balance detected" on q->srcu in __blk_mq_run_dispatch_ops
        loop: Fix use-after-free issues
        block: do not reverse request order when flushing plug list
        md: avoid signed overflow in slot_store()
        md: Free resources in __md_stop
      8d3c682a
    • Linus Torvalds's avatar
      Merge tag 'io_uring-6.3-2023-03-16' of git://git.kernel.dk/linux · b7966a5a
      Linus Torvalds authored
      Pull io_uring fixes from Jens Axboe:
      
       - When PF_NO_SETAFFINITY was removed for io-wq threads, we kind of
         forgot about the SQPOLL thread. Remove it there as well, there's even
         less of a reason to set it there (Michal)
      
       - Fixup a confusing 'ret' setting (Li)
      
       - When MSG_RING is used to send a direct descriptor to another ring,
         it's possible to have it allocate it on the target ring rather than
         provide a specific index for it. If this is done, return the chosen
         value in the CQE, like we would've done locally (Pavel)
      
       - Fix a regression in this series on huge page bvec collapsing (Pavel)
      
      * tag 'io_uring-6.3-2023-03-16' of git://git.kernel.dk/linux:
        io_uring/rsrc: fix folio accounting
        io_uring/msg_ring: let target know allocated index
        io_uring: rsrc: Optimize return value variable 'ret'
        io_uring/sqpoll: Do not set PF_NO_SETAFFINITY on sqpoll threads
      b7966a5a
    • Linus Torvalds's avatar
      Merge tag 'pm-6.3-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · 02ef7d39
      Linus Torvalds authored
      Pull power management fixes from Rafael Wysocki:
       "These fix an error code path issue in a cpuidle driver and make the
        sleepgraph utility more robust against unexpected input.
      
        Specifics:
      
         - Fix the psci_pd_init_topology() failure path in the PSCI cpuidle
           driver (Shawn Guo)
      
         - Modify the sleepgraph utility so it does not crash on binary data
           in device names (Todd Brandt)"
      
      * tag 'pm-6.3-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
        pm-graph: sleepgraph: Avoid crashing on binary data in device names
        cpuidle: psci: Iterate backwards over list in psci_pd_remove()
      02ef7d39
    • Linus Torvalds's avatar
      Merge tag 'acpi-6.3-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · abb02a82
      Linus Torvalds authored
      Pull ACPI fixes from Rafael Wysocki:
       "These add some new quirks, fix PPTT handling, fix an ACPI utility and
        correct a mistake in the ACPI documentation.
      
        Specifics:
      
         - Fix ACPI PPTT handling to avoid sleep in the atomic context when it
           is not present (Sudeep Holla)
      
         - Add 'backlight=native' DMI quirk for Dell Vostro 15 3535 to the
           ACPI video driver (Chia-Lin Kao)
      
         - Add ACPI quirks for I2C device enumeration on Lenovo Yoga Book X90
           and Acer Iconia One 7 B1-750 (Hans de Goede)
      
         - Fix handling of invalid command line option values in the ACPI
           pfrut utility (Chen Yu)
      
         - Fix references to I2C device data type in the ACPI documentation
           for device enumeration (Andy Shevchenko)"
      
      * tag 'acpi-6.3-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
        ACPI: tools: pfrut: Check if the input of level and type is in the right numeric range
        ACPI: PPTT: Fix to avoid sleep in the atomic context when PPTT is absent
        ACPI: x86: Add skip i2c clients quirk for Lenovo Yoga Book X90
        ACPI: x86: Add skip i2c clients quirk for Acer Iconia One 7 B1-750
        ACPI: x86: Introduce an acpi_quirk_skip_gpio_event_handlers() helper
        ACPI: video: Add backlight=native DMI quirk for Dell Vostro 15 3535
        ACPI: docs: enumeration: Correct reference to the I²C device data type
      abb02a82
    • Linus Torvalds's avatar
      Merge branch 'turbostat' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux · ba9c7791
      Linus Torvalds authored
      Pull turbostat fweaks and fixes from Len Brown:
       "Leprechaun sized fixes and tweaks touching only turbostat.
      
        'Keeping happy users happy since 2010'"
      
      * 'turbostat' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux:
        tools/power turbostat: version 2023.03.17
        tools/power turbostat: fix decoding of HWP_STATUS
        tools/power turbostat: Introduce support for EMR
        tools/power turbostat: remove stray newlines from warn/warnx strings
        tools/power turbostat: Fix /dev/cpu_dma_latency warnings
        tools/power turbostat: Provide better debug messages for failed capabilities accesses
        tools/power turbostat: update dump of SECONDARY_TURBO_RATIO_LIMIT
      ba9c7791
    • Linus Torvalds's avatar
      Merge tag 'for-linus-6.3-rc3-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip · 0eb392ec
      Linus Torvalds authored
      Pull xen fixes from Juergen Gross:
      
       - cleanup for xen time handling
      
       - enable the VGA console in a Xen PVH dom0
      
       - cleanup in the xenfs driver
      
      * tag 'for-linus-6.3-rc3-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip:
        xen: remove unnecessary (void*) conversions
        x86/PVH: obtain VGA console info in Dom0
        x86/xen/time: cleanup xen_tsc_safe_clocksource
        xen: update arch/x86/include/asm/xen/cpuid.h
      0eb392ec
    • Linus Torvalds's avatar
      Merge tag 'riscv-for-linus-6.3-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/riscv/linux · cb80b960
      Linus Torvalds authored
      Pull RISC-V fixes from Palmer Dabbelt:
      
       - fixes to the ASID allocator to avoid leaking stale mappings between
         tasks
      
       - fix the vmalloc fault handler to tolerate huge pages
      
      * tag 'riscv-for-linus-6.3-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/riscv/linux:
        RISC-V: mm: Support huge page in vmalloc_fault()
        riscv: asid: Fixup stale TLB entry cause application crash
        Revert "riscv: mm: notify remote harts about mmu cache updates"
      cb80b960