13 Aug, 2020

2 commits

  • Percpu memory is becoming more and more widely used by various subsystems,
    and the total amount of memory controlled by the percpu allocator can make
    a good part of the total memory.

    As an example, bpf maps can consume a lot of percpu memory, and they are
    created by a user. Also, some cgroup internals (e.g. memory controller
    statistics) can be quite large. On a machine with many CPUs and big
    number of cgroups they can consume hundreds of megabytes.

    So the lack of memcg accounting is creating a breach in the memory
    isolation. Similar to the slab memory, percpu memory should be accounted
    by default.

    To implement the perpcu accounting it's possible to take the slab memory
    accounting as a model to follow. Let's introduce two types of percpu
    chunks: root and memcg. What makes memcg chunks different is an
    additional space allocated to store memcg membership information. If
    __GFP_ACCOUNT is passed on allocation, a memcg chunk should be be used.
    If it's possible to charge the corresponding size to the target memory
    cgroup, allocation is performed, and the memcg ownership data is recorded.
    System-wide allocations are performed using root chunks, so there is no
    additional memory overhead.

    To implement a fast reparenting of percpu memory on memcg removal, we
    don't store mem_cgroup pointers directly: instead we use obj_cgroup API,
    introduced for slab accounting.

    [akpm@linux-foundation.org: fix CONFIG_MEMCG_KMEM=n build errors and warning]
    [akpm@linux-foundation.org: move unreachable code, per Roman]
    [cuibixuan@huawei.com: mm/percpu: fix 'defined but not used' warning]
    Link: http://lkml.kernel.org/r/6d41b939-a741-b521-a7a2-e7296ec16219@huawei.com

    Signed-off-by: Roman Gushchin
    Signed-off-by: Bixuan Cui
    Signed-off-by: Andrew Morton
    Reviewed-by: Shakeel Butt
    Acked-by: Dennis Zhou
    Cc: Christoph Lameter
    Cc: David Rientjes
    Cc: Johannes Weiner
    Cc: Joonsoo Kim
    Cc: Mel Gorman
    Cc: Michal Hocko
    Cc: Pekka Enberg
    Cc: Tejun Heo
    Cc: Tobin C. Harding
    Cc: Vlastimil Babka
    Cc: Waiman Long
    Cc: Bixuan Cui
    Cc: Michal Koutný
    Cc: Stephen Rothwell
    Link: http://lkml.kernel.org/r/20200623184515.4132564-3-guro@fb.com
    Signed-off-by: Linus Torvalds

    Roman Gushchin
     
  • Patch series "mm: memcg accounting of percpu memory", v3.

    This patchset adds percpu memory accounting to memory cgroups. It's based
    on the rework of the slab controller and reuses concepts and features
    introduced for the per-object slab accounting.

    Percpu memory is becoming more and more widely used by various subsystems,
    and the total amount of memory controlled by the percpu allocator can make
    a good part of the total memory.

    As an example, bpf maps can consume a lot of percpu memory, and they are
    created by a user. Also, some cgroup internals (e.g. memory controller
    statistics) can be quite large. On a machine with many CPUs and big
    number of cgroups they can consume hundreds of megabytes.

    So the lack of memcg accounting is creating a breach in the memory
    isolation. Similar to the slab memory, percpu memory should be accounted
    by default.

    Percpu allocations by their nature are scattered over multiple pages, so
    they can't be tracked on the per-page basis. So the per-object tracking
    introduced by the new slab controller is reused.

    The patchset implements charging of percpu allocations, adds memcg-level
    statistics, enables accounting for percpu allocations made by memory
    cgroup internals and provides some basic tests.

    To implement the accounting of percpu memory without a significant memory
    and performance overhead the following approach is used: all accounted
    allocations are placed into a separate percpu chunk (or chunks). These
    chunks are similar to default chunks, except that they do have an attached
    vector of pointers to obj_cgroup objects, which is big enough to save a
    pointer for each allocated object. On the allocation, if the allocation
    has to be accounted (__GFP_ACCOUNT is passed, the allocating process
    belongs to a non-root memory cgroup, etc), the memory cgroup is getting
    charged and if the maximum limit is not exceeded the allocation is
    performed using a memcg-aware chunk. Otherwise -ENOMEM is returned or the
    allocation is forced over the limit, depending on gfp (as any other kernel
    memory allocation). The memory cgroup information is saved in the
    obj_cgroup vector at the corresponding offset. On the release time the
    memcg information is restored from the vector and the cgroup is getting
    uncharged. Unaccounted allocations (at this point the absolute majority
    of all percpu allocations) are performed in the old way, so no additional
    overhead is expected.

    To avoid pinning dying memory cgroups by outstanding allocations,
    obj_cgroup API is used instead of directly saving memory cgroup pointers.
    obj_cgroup is basically a pointer to a memory cgroup with a standalone
    reference counter. The trick is that it can be atomically swapped to
    point at the parent cgroup, so that the original memory cgroup can be
    released prior to all objects, which has been charged to it. Because all
    charges and statistics are fully recursive, it's perfectly correct to
    uncharge the parent cgroup instead. This scheme is used in the slab
    memory accounting, and percpu memory can just follow the scheme.

    This patch (of 5):

    To implement accounting of percpu memory we need the information about the
    size of freed object. Return it from pcpu_free_area().

    Signed-off-by: Roman Gushchin
    Signed-off-by: Andrew Morton
    Reviewed-by: Shakeel Butt
    Acked-by: Dennis Zhou
    Cc: Tejun Heo
    Cc: Christoph Lameter
    Cc: Johannes Weiner
    Cc: Michal Hocko
    Cc: David Rientjes
    Cc: Joonsoo Kim
    Cc: Mel Gorman
    Cc: Pekka Enberg
    Cc: Tobin C. Harding
    Cc: Vlastimil Babka
    Cc: Waiman Long
    cC: Michal Koutnýutny@suse.com>
    Cc: Bixuan Cui
    Cc: Michal Koutný
    Cc: Stephen Rothwell
    Link: http://lkml.kernel.org/r/20200623184515.4132564-1-guro@fb.com
    Link: http://lkml.kernel.org/r/20200608230819.832349-1-guro@fb.com
    Link: http://lkml.kernel.org/r/20200608230819.832349-2-guro@fb.com
    Signed-off-by: Linus Torvalds

    Roman Gushchin
     

11 Aug, 2020

10 commits

  • Pull perf tools updates from Arnaldo Carvalho de Melo:
    "New features:

    - Introduce controlling how 'perf stat' and 'perf record' works via a
    control file descriptor, allowing starting with events configured
    but disabled until commands are received via the control file
    descriptor. This allows, for instance for tools such as Intel VTune
    to make further use of perf as its Linux platform driver.

    - Improve 'perf record' to to register in a perf.data file header the
    clockid used to help later correlate things like syslog files and
    perf events recorded.

    - Add basic syscall and find_next_bit benchmarks to 'perf bench'.

    - Allow using computed metrics in calculating other metrics. For
    instance:

    {
    .metric_expr = "l2_rqsts.demand_data_rd_hit + l2_rqsts.pf_hit + l2_rqsts.rfo_hit",
    .metric_name = "DCache_L2_All_Hits",
    },
    {
    .metric_expr = "max(l2_rqsts.all_demand_data_rd - l2_rqsts.demand_data_rd_hit, 0) + l2_rqsts.pf_miss + l2_rqsts.rfo_miss",
    .metric_name = "DCache_L2_All_Miss",
    },
    {
    .metric_expr = "dcache_l2_all_hits + dcache_l2_all_miss",
    .metric_name = "DCache_L2_All",
    }

    - Add suport for 'd_ratio', '>' and ' enumerators to be 64 bits
    perf data: Add support to store time of day in CTF data conversion
    perf tools: Move clockid_res_ns under clock struct
    perf header: Store clock references for -k/--clockid option
    perf tools: Add clockid_name function
    perf clockid: Move parse_clockid() to new clockid object
    tools lib traceevent: Handle possible strdup() error in tep_add_plugin_path() API
    libtraceevent: Fixed description of tep_add_plugin_path() API
    libtraceevent: Fixed type in PRINT_FMT_STING
    libtraceevent: Fixed broken indentation in parse_ip4_print_args()
    libtraceevent: Improve error handling of tep_plugin_add_option() API
    ...

    Linus Torvalds
     
  • Pull ktest updates from Steven Rostedt:

    - Have config-bisect save the good/bad configs at each step.

    - Show log file location even on success

    - Add PRE_TEST_DIE to kill test if the PRE_TEST fails

    - Add a NOT operator for conditionals in config file

    - Add the log output of the last test when emailing on failure.

    - Other minor clean ups and small fixes.

    * tag 'ktest-v5.9' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-ktest:
    ktest.pl: Fix spelling mistake "Cant" -> "Can't"
    ktest.pl: Change the logic to control the size of the log file emailed
    ktest.pl: Add MAIL_MAX_SIZE to limit the amount of log emailed
    ktest.pl: Add the log of last test in email on failure
    ktest.pl: Turn off buffering to the log file
    ktest.pl: Just open up the log file once
    ktest.pl: Add a NOT operator
    ktest.pl: Define PRE_TEST_DIE to kill the test if the PRE_TEST fails
    ktest.pl: Always show log file location if defined even on success
    ktest.pl: Have config-bisect save each config used in the bisect

    Linus Torvalds
     
  • Pull locking updates from Thomas Gleixner:
    "A set of locking fixes and updates:

    - Untangle the header spaghetti which causes build failures in
    various situations caused by the lockdep additions to seqcount to
    validate that the write side critical sections are non-preemptible.

    - The seqcount associated lock debug addons which were blocked by the
    above fallout.

    seqcount writers contrary to seqlock writers must be externally
    serialized, which usually happens via locking - except for strict
    per CPU seqcounts. As the lock is not part of the seqcount, lockdep
    cannot validate that the lock is held.

    This new debug mechanism adds the concept of associated locks.
    sequence count has now lock type variants and corresponding
    initializers which take a pointer to the associated lock used for
    writer serialization. If lockdep is enabled the pointer is stored
    and write_seqcount_begin() has a lockdep assertion to validate that
    the lock is held.

    Aside of the type and the initializer no other code changes are
    required at the seqcount usage sites. The rest of the seqcount API
    is unchanged and determines the type at compile time with the help
    of _Generic which is possible now that the minimal GCC version has
    been moved up.

    Adding this lockdep coverage unearthed a handful of seqcount bugs
    which have been addressed already independent of this.

    While generally useful this comes with a Trojan Horse twist: On RT
    kernels the write side critical section can become preemtible if
    the writers are serialized by an associated lock, which leads to
    the well known reader preempts writer livelock. RT prevents this by
    storing the associated lock pointer independent of lockdep in the
    seqcount and changing the reader side to block on the lock when a
    reader detects that a writer is in the write side critical section.

    - Conversion of seqcount usage sites to associated types and
    initializers"

    * tag 'locking-urgent-2020-08-10' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (25 commits)
    locking/seqlock, headers: Untangle the spaghetti monster
    locking, arch/ia64: Reduce header dependencies by moving XTP bits into the new header
    x86/headers: Remove APIC headers from
    seqcount: More consistent seqprop names
    seqcount: Compress SEQCNT_LOCKNAME_ZERO()
    seqlock: Fold seqcount_LOCKNAME_init() definition
    seqlock: Fold seqcount_LOCKNAME_t definition
    seqlock: s/__SEQ_LOCKDEP/__SEQ_LOCK/g
    hrtimer: Use sequence counter with associated raw spinlock
    kvm/eventfd: Use sequence counter with associated spinlock
    userfaultfd: Use sequence counter with associated spinlock
    NFSv4: Use sequence counter with associated spinlock
    iocost: Use sequence counter with associated spinlock
    raid5: Use sequence counter with associated spinlock
    vfs: Use sequence counter with associated spinlock
    timekeeping: Use sequence counter with associated raw spinlock
    xfrm: policy: Use sequence counters with associated lock
    netfilter: nft_set_rbtree: Use sequence counter with associated rwlock
    netfilter: conntrack: Use sequence counter with associated spinlock
    sched: tasks: Use sequence counter with associated spinlock
    ...

    Linus Torvalds
     
  • Pull f2fs updates from Jaegeuk Kim:
    "In this round, we've added two small interfaces: (a) GC_URGENT_LOW
    mode for performance and (b) F2FS_IOC_SEC_TRIM_FILE ioctl for
    security.

    The new GC mode allows Android to run some lower priority GCs in
    background, while new ioctl discards user information without race
    condition when the account is removed.

    In addition, some patches were merged to address latency-related
    issues. We've fixed some compression-related bug fixes as well as edge
    race conditions.

    Enhancements:
    - add GC_URGENT_LOW mode in gc_urgent
    - introduce F2FS_IOC_SEC_TRIM_FILE ioctl
    - bypass racy readahead to improve read latencies
    - shrink node_write lock coverage to avoid long latency

    Bug fixes:
    - fix missing compression flag control, i_size, and mount option
    - fix deadlock between quota writes and checkpoint
    - remove inode eviction path in synchronous path to avoid deadlock
    - fix to wait GCed compressed page writeback
    - fix a kernel panic in f2fs_is_compressed_page
    - check page dirty status before writeback
    - wait page writeback before update in node page write flow
    - fix a race condition between f2fs_write_end_io and f2fs_del_fsync_node_entry

    We've added some minor sanity checks and refactored trivial code
    blocks for better readability and debugging information"

    * tag 'f2fs-for-5.9-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs: (52 commits)
    f2fs: prepare a waiter before entering io_schedule
    f2fs: update_sit_entry: Make the judgment condition of f2fs_bug_on more intuitive
    f2fs: replace test_and_set/clear_bit() with set/clear_bit()
    f2fs: make file immutable even if releasing zero compression block
    f2fs: compress: disable compression mount option if compression is off
    f2fs: compress: add sanity check during compressed cluster read
    f2fs: use macro instead of f2fs verity version
    f2fs: fix deadlock between quota writes and checkpoint
    f2fs: correct comment of f2fs_exist_written_data
    f2fs: compress: delay temp page allocation
    f2fs: compress: fix to update isize when overwriting compressed file
    f2fs: space related cleanup
    f2fs: fix use-after-free issue
    f2fs: Change the type of f2fs_flush_inline_data() to void
    f2fs: add F2FS_IOC_SEC_TRIM_FILE ioctl
    f2fs: should avoid inode eviction in synchronous path
    f2fs: segment.h: delete a duplicated word
    f2fs: compress: fix to avoid memory leak on cc->cpages
    f2fs: use generic names for generic ioctls
    f2fs: don't keep meta inode pages used for compressed block migration
    ...

    Linus Torvalds
     
  • Pull gfs2 updates from Andreas Gruenbacher:

    - Make sure transactions won't be started recursively in
    gfs2_block_zero_range (bug introduced in 5.4 when switching to
    iomap_zero_range)

    - Fix a glock holder refcount leak introduced in the iopen glock
    locking scheme rework merged in 5.8.

    - A few other small improvements (debugging, stack usage, comment
    fixes).

    * tag 'gfs2-for-5.9' of git://git.kernel.org/pub/scm/linux/kernel/git/gfs2/linux-gfs2:
    gfs2: When gfs2_dirty_inode gets a glock error, dump the glock
    gfs2: Never call gfs2_block_zero_range with an open transaction
    gfs2: print details on transactions that aren't properly ended
    gfs2: Fix inaccurate comment
    fs: Fix typo in comment
    gfs2: Fix refcount leak in gfs2_glock_poke
    gfs2: Pass glock holder to gfs2_file_direct_{read,write}
    gfs2: Add some flags missing from glock output

    Linus Torvalds
     
  • Pull JFFS2, UBI and UBIFS updates from Richard Weinberger:
    "JFFS2:
    - Fix for a corner case while mounting
    - Fix for an use-after-free issue

    UBI:
    - Fix for a memory load while attaching
    - Don't produce an anchor PEB with fastmap being disabled

    UBIFS:
    - Fix for orphan inode logic
    - Spelling fixes
    - New mount option to specify filesystem version"

    * tag 'for-linus-5.9-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rw/ubifs:
    jffs2: fix UAF problem
    jffs2: fix jffs2 mounting failure
    ubifs: Fix wrong orphan node deletion in ubifs_jnl_update|rename
    ubi: fastmap: Free fastmap next anchor peb during detach
    ubi: fastmap: Don't produce the initial next anchor PEB when fastmap is disabled
    ubifs: misc.h: delete a duplicated word
    ubifs: add option to specify version for new file systems

    Linus Torvalds
     
  • Pull input updates from Dmitry Torokhov:

    - an update to Elan touchpad controller driver supporting newer ICs
    with enhanced precision reports and a new firmware update process

    - an update to EXC3000 touch controller supporting additional parts

    - assorted driver fixups

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input: (27 commits)
    Input: exc3000 - add support to query model and fw_version
    Input: exc3000 - add reset gpio support
    Input: exc3000 - add EXC80H60 and EXC80H84 support
    dt-bindings: touchscreen: Convert EETI EXC3000 touchscreen to json-schema
    Input: sentelic - fix error return when fsp_reg_write fails
    Input: alps - remove redundant assignment to variable ret
    Input: ims-pcu - return error code rather than -ENOMEM
    Input: elan_i2c - add ic type 0x15
    Input: atmel_mxt_ts - only read messages in mxt_acquire_irq() when necessary
    Input: uinput - fix typo in function name documentation
    Input: ati_remote2 - add missing newlines when printing module parameters
    Input: psmouse - add a newline when printing 'proto' by sysfs
    Input: synaptics-rmi4 - drop a duplicated word
    Input: elan_i2c - add support for high resolution reports
    Input: elan_i2c - do not constantly re-query pattern ID
    Input: elan_i2c - add firmware update info for ICs 0x11, 0x13, 0x14
    Input: elan_i2c - handle firmware updated on newer ICs
    Input: elan_i2c - add support for different firmware page sizes
    Input: elan_i2c - fix detecting IAP version on older controllers
    Input: elan_i2c - handle devices with patterns above 1
    ...

    Linus Torvalds
     
  • Pull HID updates from Jiri Kosina:

    - fix for some modern devices that return multi-byte battery report,
    from Grant Likely

    - fix for devices with Resolution Multiplier, from Peter Hutterer

    - device probing speed increase, from Dmitry Torokhov

    - ThinkPad 10 Ultrabook Keyboard support, from Hans de Goede

    - other small assorted fixes and device ID additions

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/hid/hid:
    HID: quirks: add NOGET quirk for Logitech GROUP
    HID: Replace HTTP links with HTTPS ones
    HID: udraw-ps3: Replace HTTP links with HTTPS ones
    HID: mcp2221: Replace HTTP links with HTTPS ones
    HID: input: Fix devices that return multiple bytes in battery report
    HID: lenovo: Fix spurious F23 key press report during resume from suspend
    HID: lenovo: Add ThinkPad 10 Ultrabook Keyboard fn_lock support
    HID: lenovo: Add ThinkPad 10 Ultrabook Keyboard support
    HID: lenovo: Rename fn_lock sysfs attr handlers to make them generic
    HID: lenovo: Factor out generic parts of the LED code
    HID: lenovo: Merge tpkbd and cptkbd data structures
    HID: intel-ish-hid: Replace PCI_DEV_FLAGS_NO_D3 with pci_save_state
    HID: Wiimote: Treat the d-pad as an analogue stick
    HID: input: do not run GET_REPORT unless there's a Resolution Multiplier
    HID: usbhid: remove redundant assignment to variable retval
    HID: usbhid: do not sleep when opening device

    Linus Torvalds
     
  • There is a spelling mistake in an error message. Fix it.

    Link: https://lkml.kernel.org/r/20200810100750.61475-1-colin.king@canonical.com

    Signed-off-by: Colin Ian King
    Signed-off-by: Steven Rostedt (VMware)

    Colin Ian King
     
  • If the log file for a given test is larger than the max size given then use
    set the seek from the end of the log file instead of from the start of the
    test.

    Signed-off-by: Steven Rostedt (VMware)

    Steven Rostedt (VMware)
     

10 Aug, 2020

20 commits

  • Jiri Kosina
     
  • - ThinkPad 10 Ultrabook Keyboard support, from Hans de Goede

    Jiri Kosina
     
  • Jiri Kosina
     
  • - fix for some modern devices that return multi-byte battery report, from
    Grant Likely
    - fix for devices with Resolution Multiplier, from Peter Hutterer
    - device probing speed increase, from Dmitry Torokhov

    Jiri Kosina
     
  • Pull Kbuild updates from Masahiro Yamada:

    - run the checker (e.g. sparse) after the compiler

    - remove unneeded cc-option tests for old compiler flags

    - fix tar-pkg to install dtbs

    - introduce ccflags-remove-y and asflags-remove-y syntax

    - allow to trace functions in sub-directories of lib/

    - introduce hostprogs-always-y and userprogs-always-y syntax

    - various Makefile cleanups

    * tag 'kbuild-v5.9' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild:
    kbuild: stop filtering out $(GCC_PLUGINS_CFLAGS) from cc-option base
    kbuild: include scripts/Makefile.* only when relevant CONFIG is enabled
    kbuild: introduce hostprogs-always-y and userprogs-always-y
    kbuild: sort hostprogs before passing it to ifneq
    kbuild: move host .so build rules to scripts/gcc-plugins/Makefile
    kbuild: Replace HTTP links with HTTPS ones
    kbuild: trace functions in subdirectories of lib/
    kbuild: introduce ccflags-remove-y and asflags-remove-y
    kbuild: do not export LDFLAGS_vmlinux
    kbuild: always create directories of targets
    powerpc/boot: add DTB to 'targets'
    kbuild: buildtar: add dtbs support
    kbuild: remove cc-option test of -ffreestanding
    kbuild: remove cc-option test of -fno-stack-protector
    Revert "kbuild: Create directory for target DTB"
    kbuild: run the checker after the compiler

    Linus Torvalds
     
  • Pull NFS server updates from Chuck Lever:
    "Highlights:
    - Support for user extended attributes on NFS (RFC 8276)
    - Further reduce unnecessary NFSv4 delegation recalls

    Notable fixes:
    - Fix recent krb5p regression
    - Address a few resource leaks and a rare NULL dereference

    Other:
    - De-duplicate RPC/RDMA error handling and other utility functions
    - Replace storage and display of kernel memory addresses by tracepoints"

    * tag 'nfsd-5.9' of git://git.linux-nfs.org/projects/cel/cel-2.6: (38 commits)
    svcrdma: CM event handler clean up
    svcrdma: Remove transport reference counting
    svcrdma: Fix another Receive buffer leak
    SUNRPC: Refresh the show_rqstp_flags() macro
    nfsd: netns.h: delete a duplicated word
    SUNRPC: Fix ("SUNRPC: Add "@len" parameter to gss_unwrap()")
    nfsd: avoid a NULL dereference in __cld_pipe_upcall()
    nfsd4: a client's own opens needn't prevent delegations
    nfsd: Use seq_putc() in two functions
    svcrdma: Display chunk completion ID when posting a rw_ctxt
    svcrdma: Record send_ctxt completion ID in trace_svcrdma_post_send()
    svcrdma: Introduce Send completion IDs
    svcrdma: Record Receive completion ID in svc_rdma_decode_rqst
    svcrdma: Introduce Receive completion IDs
    svcrdma: Introduce infrastructure to support completion IDs
    svcrdma: Add common XDR encoders for RDMA and Read segments
    svcrdma: Add common XDR decoders for RDMA and Read segments
    SUNRPC: Add helpers for decoding list discriminators symbolically
    svcrdma: Remove declarations for functions long removed
    svcrdma: Clean up trace_svcrdma_send_failed() tracepoint
    ...

    Linus Torvalds
     
  • Pull regset conversion fix from Al Viro:
    "Fix a regression from an unnoticed bisect hazard in the regset series.

    A bunch of old (aout, originally) primitives used by coredumps became
    dead code after fdpic conversion to regsets. Removal of that dead code
    had been the first commit in the followups to regset series;
    unfortunately, it happened to hide the bisect hazard on sh (extern for
    fpregs_get() had not been updated in the main series when it should
    have been; followup simply made fpregs_get() static). And without that
    followup commit this bisect hazard became breakage in the mainline"

    Tested-by: John Paul Adrian Glaubitz

    * 'fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
    kill unused dump_fpu() instances

    Linus Torvalds
     
  • Pull pin control updates from Linus Walleij:
    "This is the bulk of the pin control changes for the v5.9 kernel
    series:

    Core changes:

    - The GPIO patch "gpiolib: Introduce for_each_requested_gpio_in_range()
    macro" was put in an immutable branch and merged into the pinctrl
    tree as well. We see these changes also here.

    - Improved debug output for pins used as GPIO.

    New drivers:

    - Ocelot Sparx5 SoC driver.

    - Intel Emmitsburg SoC subdriver.

    - Intel Tiger Lake-H SoC subdriver.

    - Qualcomm PM660 SoC subdriver.

    - Renesas SH-PFC R8A774E1 subdriver.

    Driver improvements:

    - Linear improvement and cleanups of the Intel drivers for
    Cherryview, Lynxpoint, Baytrail etc. Improved locking among other
    things.

    - Renesas SH-PFC has added support for RPC pins, groups, and
    functions to r8a77970 and r8a77980.

    - The newere Freescale (now NXP) i.MX8 pin controllers have been
    modularized. This is driven by the Google Android GKI initiative I
    think.

    - Open drain support for pins on the Qualcomm IPQ4019.

    - The Ingenic driver can handle both edges IRQ detection.

    - A big slew of documentation fixes all over the place.

    - A few irqchip template conversions by yours truly.

    * tag 'pinctrl-v5.9-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl: (107 commits)
    dt-bindings: pinctrl: add bindings for MediaTek MT6779 SoC
    pinctrl: stmfx: Use irqchip template
    pinctrl: amd: Use irqchip template
    pinctrl: mediatek: fix build for tristate changes
    pinctrl: samsung: Use bank name as irqchip name
    pinctrl: core: print gpio in pins debugfs file
    pinctrl: mediatek: add mt6779 eint support
    pinctrl: mediatek: add pinctrl support for MT6779 SoC
    pinctrl: mediatek: avoid virtual gpio trying to set reg
    pinctrl: mediatek: update pinmux definitions for mt6779
    pinctrl: stm32: use the hwspin_lock_timeout_in_atomic() API
    pinctrl: mcp23s08: Use irqchip template
    pinctrl: sx150x: Use irqchip template
    dt-bindings: ingenic,pinctrl: Support pinmux/pinconf nodes
    pinctrl: intel: Add Intel Emmitsburg pin controller support
    pinctl: ti: iodelay: Replace HTTP links with HTTPS ones
    Revert "gpio: omap: handle pin config bias flags"
    pinctrl: single: Use fallthrough pseudo-keyword
    pinctrl: qcom: spmi-gpio: Use fallthrough pseudo-keyword
    pinctrl: baytrail: Use fallthrough pseudo-keyword
    ...

    Linus Torvalds
     
  • Pull mtd updates from Miquel Raynal:
    "MTD core changes:
    - Spelling
    - http to https updates

    NAND core changes:
    - Drop useless 'depends on' in Kconfig
    - Add an extra level in the Kconfig hierarchy
    - Trivial spellings
    - Dynamic allocation of the interface configurations
    - Dropping the default ONFI timing mode
    - Various cleanup (types, structures, naming, comments)
    - Hide the chip->data_interface indirection
    - Add the generic rb-gpios property
    - Add the ->choose_interface_config() hook
    - Introduce nand_choose_best_sdr_timings()
    - Use default values for tPROG_max and tBERS_max
    - Avoid redefining tR_max and tCCS_min
    - Add a helper to find the closest ONFI mode
    - bcm63xx MTD parsers: simplify CFE detection

    Raw NAND controller drivers changes:
    - fsl-upm: Deprecation of specific DT properties
    - fsl_upm: Driver rework and cleanup in favor of ->exec_op()
    - Ingenic: Cleanup ARRAY_SIZE() vs sizeof() use
    - brcmnand: ECC error handling on EDU transfers
    - brcmnand: Don't default to EDU transfers
    - qcom: Set BAM mode only if not set already
    - qcom: Avoid write to unavailable register
    - gpio: Driver rework in favor of ->exec_op()
    - tango: ->exec_op() conversion
    - mtk: ->exec_op() conversion

    Raw NAND chip drivers changes:
    - toshiba: Implement ->choose_interface_config() for TH58NVG2S3HBAI4,
    TC58NVG0S3E, and TC58TEG5DCLTA00
    - hynix: Implement ->choose_interface_config() for H27UCG8T2ATR-BC

    SPI NOR core changes:
    - Disable Quad Mode in spi_nor_restore().
    - Don't abort BFPT parsing when QER reserved value is used.
    - Add support/update capabilities for few flashes.
    - Drop s70fl01gs flash: it does not support RDSR(05h) which is
    critical for erase/write.
    - Merge the SPIMEM DTR bits in spi-nor/next to avoid conflicts during
    the release cycle.

    SPI NOR controller drivers changes:
    - Move the cadence-quadspi driver to spi-mem. The series was taken
    through the SPI tree. Merge it also in spi-nor/next to avoid
    conflicts during the release cycle.
    - intel-spi:
    - Add new PCI IDs.
    - Ignore the Write Disable command, the controller doesn't support
    it.
    - Fix performance regression"

    * tag 'mtd/for-5.9' of git://git.kernel.org/pub/scm/linux/kernel/git/mtd/linux: (79 commits)
    MTD: pfow.h: drop a duplicated word
    MTD: mtd-abi.h: drop a duplicated word
    mtd: rawnand: omap_elm: Replace HTTP links with HTTPS ones
    mtd: Replace HTTP links with HTTPS ones
    mtd: hyperbus: Replace HTTP links with HTTPS ones
    mtd: revert "spi-nor: intel: provide a range for poll_timout"
    mtd: spi-nor: update read capabilities for w25q64 and s25fl064k
    mtd: spi-nor: micron: Add SPI_NOR_DUAL_READ flag on mt25qu02g
    mtd: spi-nor: macronix: Add support for mx66u2g45g
    mtd: spi-nor: intel-spi: Simulate WRDI command
    mtd: spi-nor: Disable the flash quad mode in spi_nor_restore()
    mtd: spi-nor: Add capability to disable flash quad mode
    mtd: spi-nor: spansion: Remove s70fl01gs from flash_info
    mtd: spi-nor: sfdp: do not make invalid quad enable fatal
    dt-bindings: mtd: fsl-upm-nand: Deprecate chip-delay and fsl, upm-wait-flags
    mtd: rawnand: stm32_fmc2: get resources from parent node
    mtd: rawnand: stm32_fmc2: use regmap APIs
    memory: stm32-fmc2-ebi: add STM32 FMC2 EBI controller driver
    dt-bindings: memory-controller: add STM32 FMC2 EBI controller documentation
    dt-bindings: mtd: update STM32 FMC2 NAND controller documentation
    ...

    Linus Torvalds
     
  • Signed-off-by: Stephen Rothwell
    Signed-off-by: Linus Torvalds

    Stephen Rothwell
     
  • Commit d26e94149276 ("kbuild: no gcc-plugins during cc-option tests")
    was neeeded because scripts/Makefile.gcc-plugins was too early.

    This is unneeded by including scripts/Makefile.gcc-plugins last,
    and being careful to not add cc-option tests after it.

    Signed-off-by: Masahiro Yamada

    Masahiro Yamada
     
  • Currently, the top Makefile includes all of scripts/Makefile.
    even if the associated CONFIG option is disabled.

    Do not include unneeded Makefiles in order to slightly optimize the
    parse stage.

    Include $(include-y), and ignore $(include-).

    Signed-off-by: Masahiro Yamada

    Masahiro Yamada
     
  • To build host programs, you need to add the program names to 'hostprogs'
    to use the necessary build rule, but it is not enough to build them
    because there is no dependency.

    There are two types of host programs: built as the prerequisite of
    another (e.g. gen_crc32table in lib/Makefile), or always built when
    Kbuild visits the Makefile (e.g. genksyms in scripts/genksyms/Makefile).

    The latter is typical in Makefiles under scripts/, which contains host
    programs globally used during the kernel build. To build them, you need
    to add them to both 'hostprogs' and 'always-y'.

    This commit adds hostprogs-always-y as a shorthand.

    The same applies to user programs. net/bpfilter/Makefile builds
    bpfilter_umh on demand, hence always-y is unneeded. In contrast,
    programs under samples/ are added to both 'userprogs' and 'always-y'
    so they are always built when Kbuild visits the Makefiles.

    userprogs-always-y works as a shorthand.

    Signed-off-by: Masahiro Yamada
    Acked-by: Miguel Ojeda

    Masahiro Yamada
     
  • The conditional:

    ifneq ($(hostprogs),)

    ... is evaluated to true if $(hostprogs) does not contain any word but
    whitespace characters.

    ifneq ($(strip $(hostprogs)),)

    ... is a safe way to avoid interpreting whitespace as a non-empty value,
    but I'd rather want to use the side-effect of $(sort ...) to do the
    equivalent.

    $(sort ...) is used in scripts/Makefile.host in order to drop duplication
    in $(hostprogs). It is also useful to strip excessive spaces.

    Move $(sort ...) before evaluating the ifneq.

    Signed-off-by: Masahiro Yamada

    Masahiro Yamada
     
  • The host shared library rules are currently implemented in
    scripts/Makefile.host, but actually GCC-plugin is the only user of
    them. (The VDSO .so files are built for the target by different
    build rules) Hence, they do not need to be treewide available.

    Move all the relevant build rules to scripts/gcc-plugins/Makefile.

    I also optimized the build steps so *.so is directly built from .c
    because every upstream plugin is compiled from a single source file.

    I am still keeping the multi-file plugin support, which Kees Cook
    mentioned might be needed by out-of-tree plugins.
    (https://lkml.org/lkml/2019/1/11/1107)

    If the plugin, foo.so, is compiled from two files foo.c and foo2.c,
    then you can do like follows:

    foo-objs := foo.o foo2.o

    Single-file plugins do not need the *-objs notation.

    Signed-off-by: Masahiro Yamada
    Acked-by: Kees Cook

    Masahiro Yamada
     
  • Rationale:
    Reduces attack surface on kernel devs opening the links for MITM
    as HTTPS traffic is much harder to manipulate.

    Deterministic algorithm:
    For each file:
    If not .svg:
    For each line:
    If doesn't contain `\bxmlns\b`:
    For each link, `\bhttp://[^# \t\r\n]*(?:\w|/)`:
    If neither `\bgnu\.org/license`, nor `\bmozilla\.org/MPL\b`:
    If both the HTTP and HTTPS versions
    return 200 OK and serve the same content:
    Replace HTTP with HTTPS.

    Signed-off-by: Alexander A. Klimov
    Signed-off-by: Masahiro Yamada

    Alexander A. Klimov
     
  • ccflags-remove-$(CONFIG_FUNCTION_TRACER) += $(CC_FLAGS_FTRACE)

    exists here in sub-directories of lib/ to keep the behavior of
    commit 2464a609ded0 ("ftrace: do not trace library functions").

    Since that commit, not only the objects in lib/ but also the ones in
    the sub-directories are excluded from ftrace (although the commit
    description did not explicitly mention this).

    However, most of library functions in sub-directories are not so hot.
    Re-add them to ftrace.

    Going forward, only the objects right under lib/ will be excluded.

    Cc: Ingo Molnar
    Signed-off-by: Masahiro Yamada
    Acked-by: Steven Rostedt (VMware)

    Masahiro Yamada
     
  • CFLAGS_REMOVE_.o filters out flags when compiling a particular
    object, but there is no convenient way to do that for every object in
    a directory.

    Add ccflags-remove-y and asflags-remove-y to make it easily.

    Use ccflags-remove-y to clean up some Makefiles.

    The add/remove order works as follows:

    [1] KBUILD_CFLAGS specifies compiler flags used globally

    [2] ccflags-y adds compiler flags for all objects in the
    current Makefile

    [3] ccflags-remove-y removes compiler flags for all objects in the
    current Makefile (New feature)

    [4] CFLAGS_ adds compiler flags per file.

    [5] CFLAGS_REMOVE_ removes compiler flags per file.

    Having [3] before [4] allows us to remove flags from most (but not all)
    objects in the current Makefile.

    For example, kernel/trace/Makefile removes $(CC_FLAGS_FTRACE)
    from all objects in the directory, then adds it back to
    trace_selftest_dynamic.o and CFLAGS_trace_kprobe_selftest.o

    The same applies to lib/livepatch/Makefile.

    Please note ccflags-remove-y has no effect to the sub-directories.
    In contrast, the previous notation got rid of compiler flags also from
    all the sub-directories.

    The following are not affected because they have no sub-directories:

    arch/arm/boot/compressed/
    arch/powerpc/xmon/
    arch/sh/
    kernel/trace/

    However, lib/ has several sub-directories.

    To keep the behavior, I added ccflags-remove-y to all Makefiles
    in subdirectories of lib/, except the following:

    lib/vdso/Makefile - Kbuild does not descend into this Makefile
    lib/raid/test/Makefile - This is not used for the kernel build

    I think commit 2464a609ded0 ("ftrace: do not trace library functions")
    excluded too much. In the next commit, I will remove ccflags-remove-y
    from the sub-directories of lib/.

    Suggested-by: Sami Tolvanen
    Signed-off-by: Masahiro Yamada
    Acked-by: Steven Rostedt (VMware)
    Acked-by: Michael Ellerman (powerpc)
    Acked-by: Brendan Higgins (KUnit)
    Tested-by: Anders Roxell

    Masahiro Yamada
     
  • When you clean the build tree for ARCH=arm, you may see the following
    error message from 'nm' command:

    $ make -j24 ARCH=arm clean
    CLEAN arch/arm/crypto
    CLEAN arch/arm/kernel
    CLEAN arch/arm/mach-at91
    CLEAN arch/arm/mach-omap2
    CLEAN arch/arm/vdso
    CLEAN certs
    CLEAN lib
    CLEAN usr
    CLEAN net/wireless
    CLEAN drivers/firmware/efi/libstub
    nm: 'arch/arm/boot/compressed/../../../../vmlinux': No such file
    /bin/sh: 1: arithmetic expression: expecting primary: " "
    CLEAN arch/arm/boot/compressed
    CLEAN drivers/scsi
    CLEAN drivers/tty/vt
    CLEAN arch/arm/boot
    CLEAN vmlinux.symvers modules.builtin modules.builtin.modinfo

    Even if you rerun the same command, the error message will not be
    shown despite vmlinux is already gone.

    To reproduce it, the parallel option -j is needed. Single thread
    cleaning always executes 'archclean', 'vmlinuxclean' in this order,
    so vmlinux still exists when arch/arm/boot/compressed/ is cleaned.

    Looking at arch/arm/boot/compressed/Makefile does not help understand
    the reason of the error message. Both KBSS_SZ and LDFLAGS_vmlinux are
    assigned with '=' operator, hence, they are not expanded unless used.
    Obviously, 'make clean' does not use them.

    In fact, the root cause exists in the top Makefile:

    export LDFLAGS_vmlinux

    Since LDFLAGS_vmlinux is an exported variable, LDFLAGS_vmlinux in
    arch/arm/boot/compressed/Makefile is expanded when scripts/Makefile.clean
    has a command to execute. This is why the error message shows up only
    when there exist build artifacts in arch/arm/boot/compressed/.

    Adding 'unexport LDFLAGS_vmlinux' to arch/arm/boot/compressed/Makefile
    will fix it as far as ARCH=arm is concerned, but I think the proper fix
    is to get rid of 'export LDFLAGS_vmlinux' from the top Makefile.

    LDFLAGS_vmlinux in the top Makefile contains linker flags for the top
    vmlinux. LDFLAGS_vmlinux in arch/arm/boot/compressed/Makefile is for
    arch/arm/boot/compressed/vmlinux. They just happen to have the same
    variable name, but are used for different purposes. Stop shadowing
    LDFLAGS_vmlinux.

    This commit passes LDFLAGS_vmlinux to scripts/link-vmlinux.sh via a
    command line parameter instead of via an environment variable. LD and
    KBUILD_LDFLAGS are exported, but I did the same for consistency. Anyway,
    they must be included in cmd_link-vmlinux to allow if_changed to detect
    the changes in LD or KBUILD_LDFLAGS.

    The following Makefiles are not affected:

    arch/arm/boot/compressed/Makefile
    arch/h8300/boot/compressed/Makefile
    arch/nios2/boot/compressed/Makefile
    arch/parisc/boot/compressed/Makefile
    arch/s390/boot/compressed/Makefile
    arch/sh/boot/compressed/Makefile
    arch/sh/boot/romimage/Makefile
    arch/x86/boot/compressed/Makefile

    They use ':=' or '=' to clear the LDFLAGS_vmlinux inherited from the
    top Makefile.

    We need to take a closer look at the impact to unicore32 and xtensa.

    arch/unicore32/boot/compressed/Makefile only uses '+=' operator for
    LDFLAGS_vmlinux. So, the decompressor previously inherited the linker
    flags from the top Makefile.

    However, commit 70fac51feaf2 ("unicore32 additional architecture files:
    boot process") was merged before commit 1f2bfbd00e46 ("kbuild: link of
    vmlinux moved to a script"). So, I rather consider this is a bug fix of
    1f2bfbd00e46.

    arch/xtensa/boot/boot-elf/Makefile is also affected, but this is also
    considered a fix for the same reason. It did not inherit LDFLAGS_vmlinux
    when commit 4bedea945451 ("[PATCH] xtensa: Architecture support for
    Tensilica Xtensa Part 2") was merged. I deleted $(LDFLAGS_vmlinux),
    which is now empty.

    Signed-off-by: Masahiro Yamada
    Reviewed-by: Nick Desaulniers
    Tested-by: Nick Desaulniers

    Masahiro Yamada
     
  • Currently, the directories of objects are automatically created
    only for O= builds.

    It should not hurt to cater to this for in-tree builds too.

    Signed-off-by: Masahiro Yamada

    Masahiro Yamada
     

09 Aug, 2020

4 commits

  • Pull arm64 fixes from Catalin Marinas:

    - Fix tegra194-cpufreq module build failure caused by __cpu_logical_map
    not being exported.

    - Improve fixed_addresses comment regarding the fixmap buffer sizes.

    * tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux:
    arm64: Fix __cpu_logical_map undefined issue
    arm64/fixmap: make notes of fixed_addresses more precisely

    Linus Torvalds
     
  • The __cpu_logical_map undefined issue occued when the new
    tegra194-cpufreq drvier building as a module.

    ERROR: modpost: "__cpu_logical_map" [drivers/cpufreq/tegra194-cpufreq.ko] undefined!

    The driver using cpu_logical_map() macro which will expand to
    __cpu_logical_map, we can't access it in a drvier. Let's turn
    cpu_logical_map() into a C wrapper and export it to fix the
    build issue.

    Also create a function set_cpu_logical_map(cpu, hwid) when assign
    a value to cpu_logical_map(cpu).

    Reported-by: Hulk Robot
    Signed-off-by: Kefeng Wang
    Signed-off-by: Catalin Marinas

    Kefeng Wang
     
  • These 'compile-time allocated' memory buffers can occupy more than one
    page and each enum increment is page-sized. So improve the note about it.

    Signed-off-by: Pingfan Liu
    Cc: Will Deacon
    Link: https://lore.kernel.org/r/1596460720-19243-1-git-send-email-kernelfans@gmail.com
    To: linux-arm-kernel@lists.infradead.org
    Signed-off-by: Catalin Marinas

    Pingfan Liu
     
  • Pull IPMI updates from Corey Minyard:
    "Minor cleanups to the IPMI driver for 5.9

    Nothing of any major consequence. Duplicate code, some missing \n's in
    sysfs files, some documentation and comment changes"

    * tag 'for-linus-5.9-1' of git://github.com/cminyard/linux-ipmi:
    ipmi/watchdog: add missing newlines when printing parameters by sysfs
    ipmi: remve duplicate code in __ipmi_bmc_register()
    ipmi: ssif: Remove finished TODO comment about SMBus alert
    Doc: driver-api: ipmi: Add description of alerts_broken module param

    Linus Torvalds
     

08 Aug, 2020

4 commits

  • Pull power supply and reset updates from Sebastian Reichel:
    "Power-supply core:
    - add COOL/WARM/HOT state from JEITA JISC8712:2015 specification
    - convert simple-battery DT binding to YAML
    - add long-life charging mode

    Battery/charger drivers:
    - bq25150: new charger driver
    - bq27xxx: add support for BQ27z561 and BQ28z610
    - max17040: support CAPACITY_ALERT_MIN
    - sbs-battery: add PEC support
    - wilco-ec: support long-life charging mode
    - bq25890: fix DT binding
    - misc. fixes and cleanups

    Reset drivers:
    - linkstation: new reset driver"

    * tag 'for-v5.9' of git://git.kernel.org/pub/scm/linux/kernel/git/sre/linux-power-supply: (32 commits)
    power: supply: wilco_ec: Add long life charging mode
    power: supply: bq27xxx_battery: Add the BQ28z610 Battery monitor
    dt-bindings: power: Add BQ28z610 compatible
    power: supply: bq27xxx_battery: Add the BQ27Z561 Battery monitor
    dt-bindings: power: Add BQ27Z561 compatible
    power: supply: test_power: Fix battery_current initial value
    power: supply: Fix kerneldoc of power_supply_temp2resist_simple()
    power: supply: cpcap-battery: Fix kerneldoc of cpcap_battery_read_accumulated()
    dt-bindings: power: Convert battery.txt to battery.yaml
    power: supply: rt5033_battery: Fix error code in rt5033_battery_probe()
    power: supply: max17040: Add POWER_SUPPLY_PROP_CAPACITY_ALERT_MIN
    power: supply: check if calc_soc succeeded in pm860x_init_battery
    power: supply: bq2xxxx: Replace HTTP links with HTTPS ones
    power: reset: add driver for LinkStation power off
    power: supply: sc27xx: prevent adc * 1000 from overflow
    math64: New DIV_S64_ROUND_CLOSEST helper
    power: fix duplicated words in bq2415x_charger.h
    power: Convert to DEFINE_SHOW_ATTRIBUTE
    power: reset: keystone-reset: Replace HTTP links with HTTPS ones
    power: supply: bq25150 introduce the bq25150
    ...

    Linus Torvalds
     
  • Pull misc vfs updates from Al Viro:
    "No common topic whatsoever in those, sorry"

    * 'work.misc' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
    fs: define inode flags using bit numbers
    iov_iter: Move unnecessary inclusion of crypto/hash.h
    dlmfs: clean up dlmfs_file_{read,write}() a bit

    Linus Torvalds
     
  • Pull mount leak fix from Al Viro:
    "Regression fix for the syscalls-for-init series - fix a leak of a 'struct path'"

    * 'fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
    fs: fix a struct path leak in path_umount

    Linus Torvalds
     
  • Pull PCI updates from Bjorn Helgaas:
    "Enumeration:
    - Fix pci_cfg_wait queue locking problem (Bjorn Helgaas)
    - Convert PCIe capability PCIBIOS errors to errno (Bolarinwa Olayemi
    Saheed)
    - Align PCIe capability and PCI accessor return values (Bolarinwa
    Olayemi Saheed)
    - Fix pci_create_slot() reference count leak (Qiushi Wu)
    - Announce device after early fixups (Tiezhu Yang)

    PCI device hotplug:
    - Make rpadlpar functions static (Wei Yongjun)

    Driver binding:
    - Add device even if driver attach failed (Rajat Jain)

    Virtualization:
    - xen: Remove redundant initialization of irq (Colin Ian King)

    IOMMU:
    - Add pci_pri_supported() to check device or associated PF (Ashok Raj)
    - Release IVRS table in AMD ACS quirk (Hanjun Guo)
    - Mark AMD Navi10 GPU rev 0x00 ATS as broken (Kai-Heng Feng)
    - Treat "external-facing" devices themselves as internal (Rajat Jain)

    MSI:
    - Forward MSI-X error code in pci_alloc_irq_vectors_affinity() (Piotr
    Stankiewicz)

    Error handling:
    - Clear PCIe Device Status errors only if OS owns AER (Jonathan
    Cameron)
    - Log correctable errors as warning, not error (Matt Jolly)
    - Use 'pci_channel_state_t' instead of 'enum pci_channel_state' (Luc
    Van Oostenryck)

    Peer-to-peer DMA:
    - Allow P2PDMA on AMD Zen and newer CPUs (Logan Gunthorpe)

    ASPM:
    - Add missing newline in sysfs 'policy' (Xiongfeng Wang)

    Native PCIe controllers:
    - Convert to devm_platform_ioremap_resource_byname() (Dejin Zheng)
    - Convert to devm_platform_ioremap_resource() (Dejin Zheng)
    - Remove duplicate error message from devm_pci_remap_cfg_resource()
    callers (Dejin Zheng)
    - Fix runtime PM imbalance on error (Dinghao Liu)
    - Remove dev_err() when handing an error from platform_get_irq()
    (Krzysztof Wilczyński)
    - Use pci_host_bridge.windows list directly instead of splicing in a
    temporary list for cadence, mvebu, host-common (Rob Herring)
    - Use pci_host_probe() instead of open-coding all the pieces for
    altera, brcmstb, iproc, mobiveil, rcar, rockchip, tegra, v3,
    versatile, xgene, xilinx, xilinx-nwl (Rob Herring)
    - Default host bridge parent device to the platform device (Rob
    Herring)
    - Use pci_is_root_bus() instead of tracking root bus number
    separately in aardvark, designware (imx6, keystone,
    designware-host), mobiveil, xilinx-nwl, xilinx, rockchip, rcar (Rob
    Herring)
    - Set host bridge bus number in pci_scan_root_bus_bridge() instead of
    each driver for aardvark, designware-host, host-common, mediatek,
    rcar, tegra, v3-semi (Rob Herring)
    - Move DT resource setup into devm_pci_alloc_host_bridge() (Rob
    Herring)
    - Set bridge map_irq and swizzle_irq to default functions; drivers
    that don't support legacy IRQs (iproc) need to undo this (Rob
    Herring)

    ARM Versatile PCIe controller driver:
    - Drop flag PCI_ENABLE_PROC_DOMAINS (Rob Herring)

    Cadence PCIe controller driver:
    - Use "dma-ranges" instead of "cdns,no-bar-match-nbits" property
    (Kishon Vijay Abraham I)
    - Remove "mem" from reg binding (Kishon Vijay Abraham I)
    - Fix cdns_pcie_{host|ep}_setup() error path (Kishon Vijay Abraham I)
    - Convert all r/w accessors to perform only 32-bit accesses (Kishon
    Vijay Abraham I)
    - Add support to start link and verify link status (Kishon Vijay
    Abraham I)
    - Allow pci_host_bridge to have custom pci_ops (Kishon Vijay Abraham I)
    - Add new *ops* for CPU addr fixup (Kishon Vijay Abraham I)
    - Fix updating Vendor ID and Subsystem Vendor ID register (Kishon
    Vijay Abraham I)
    - Use bridge resources for outbound window setup (Rob Herring)
    - Remove private bus number and range storage (Rob Herring)

    Cadence PCIe endpoint driver:
    - Add MSI-X support (Alan Douglas)

    HiSilicon PCIe controller driver:
    - Remove non-ECAM HiSilicon hip05/hip06 driver (Rob Herring)

    Intel VMD host bridge driver:
    - Use Shadow MEMBAR registers for QEMU/KVM guests (Jon Derrick)

    Loongson PCIe controller driver:
    - Use DECLARE_PCI_FIXUP_EARLY for bridge_class_quirk() (Tiezhu Yang)

    Marvell Aardvark PCIe controller driver:
    - Indicate error in 'val' when config read fails (Pali Rohár)
    - Don't touch PCIe registers if no card connected (Pali Rohár)

    Marvell MVEBU PCIe controller driver:
    - Setup BAR0 in order to fix MSI (Shmuel Hazan)

    Microsoft Hyper-V host bridge driver:
    - Fix a timing issue which causes kdump to fail occasionally (Wei Hu)
    - Make some functions static (Wei Yongjun)

    NVIDIA Tegra PCIe controller driver:
    - Revert tegra124 raw_violation_fixup (Nicolas Chauvet)
    - Remove PLL power supplies (Thierry Reding)

    Qualcomm PCIe controller driver:
    - Change duplicate PCI reset to phy reset (Abhishek Sahu)
    - Add missing ipq806x clocks in PCIe driver (Ansuel Smith)
    - Add missing reset for ipq806x (Ansuel Smith)
    - Add ext reset (Ansuel Smith)
    - Use bulk clk API and assert on error (Ansuel Smith)
    - Add support for tx term offset for rev 2.1.0 (Ansuel Smith)
    - Define some PARF params needed for ipq8064 SoC (Ansuel Smith)
    - Add ipq8064 rev2 variant (Ansuel Smith)
    - Support PCI speed set for ipq806x (Sham Muthayyan)

    Renesas R-Car PCIe controller driver:
    - Use devm_pci_alloc_host_bridge() (Rob Herring)
    - Use struct pci_host_bridge.windows list directly (Rob Herring)
    - Convert rcar-gen2 to use modern host bridge probe functions (Rob
    Herring)

    TI J721E PCIe driver:
    - Add TI J721E PCIe host and endpoint driver (Kishon Vijay Abraham I)

    Xilinx Versal CPM PCIe controller driver:
    - Add Versal CPM Root Port driver and YAML schema (Bharat Kumar
    Gogada)

    MicroSemi Switchtec management driver:
    - Add missing __iomem and __user tags to fix sparse warnings (Logan
    Gunthorpe)

    Miscellaneous:
    - Replace http:// links with https:// (Alexander A. Klimov)
    - Replace lkml.org, spinics, gmane with lore.kernel.org (Bjorn
    Helgaas)
    - Remove unused pci_lost_interrupt() (Heiner Kallweit)
    - Move PCI_VENDOR_ID_REDHAT definition to pci_ids.h (Huacai Chen)
    - Fix kerneldoc warnings (Krzysztof Kozlowski)"

    * tag 'pci-v5.9-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci: (113 commits)
    PCI: Fix kerneldoc warnings
    PCI: xilinx-cpm: Add Versal CPM Root Port driver
    PCI: xilinx-cpm: Add YAML schemas for Versal CPM Root Port
    PCI: Set bridge map_irq and swizzle_irq to default functions
    PCI: Move DT resource setup into devm_pci_alloc_host_bridge()
    PCI: rcar-gen2: Convert to use modern host bridge probe functions
    PCI: Remove dev_err() when handing an error from platform_get_irq()
    MAINTAINERS: Add Kishon Vijay Abraham I for TI J721E SoC PCIe
    misc: pci_endpoint_test: Add J721E in pci_device_id table
    PCI: j721e: Add TI J721E PCIe driver
    PCI: switchtec: Add missing __iomem tag to fix sparse warnings
    PCI: switchtec: Add missing __iomem and __user tags to fix sparse warnings
    PCI: rpadlpar: Make functions static
    PCI/P2PDMA: Allow P2PDMA on AMD Zen and newer CPUs
    PCI: Release IVRS table in AMD ACS quirk
    PCI: Announce device after early fixups
    PCI: Mark AMD Navi10 GPU rev 0x00 ATS as broken
    PCI: Remove unused pci_lost_interrupt()
    dt-bindings: PCI: Add EP mode dt-bindings for TI's J721E SoC
    dt-bindings: PCI: Add host mode dt-bindings for TI's J721E SoC
    ...

    Linus Torvalds