08 May, 2020

9 commits

  • sounds very generic and important, like it's the
    header to include if you're doing cryptographic hashing in the kernel.
    But actually it only includes the library implementation of the SHA-1
    compression function (not even the full SHA-1). This should basically
    never be used anymore; SHA-1 is no longer considered secure, and there
    are much better ways to do cryptographic hashing in the kernel.

    Remove this header and fold it into which already
    contains constants and functions for SHA-1 (along with SHA-2).

    Signed-off-by: Eric Biggers
    Signed-off-by: Herbert Xu

    Eric Biggers
     
  • sounds very generic and important, like it's the
    header to include if you're doing cryptographic hashing in the kernel.
    But actually it only includes the library implementation of the SHA-1
    compression function (not even the full SHA-1). This should basically
    never be used anymore; SHA-1 is no longer considered secure, and there
    are much better ways to do cryptographic hashing in the kernel.

    Most files that include this header don't actually need it. So in
    preparation for removing it, remove all these unneeded includes of it.

    Signed-off-by: Eric Biggers
    Signed-off-by: Herbert Xu

    Eric Biggers
     
  • The library implementation of the SHA-1 compression function is
    confusingly called just "sha_transform()". Alongside it are some "SHA_"
    constants and "sha_init()". Presumably these are left over from a time
    when SHA just meant SHA-1. But now there are also SHA-2 and SHA-3, and
    moreover SHA-1 is now considered insecure and thus shouldn't be used.

    Therefore, rename these functions and constants to make it very clear
    that they are for SHA-1. Also add a comment to make it clear that these
    shouldn't be used.

    For the extra-misleadingly named "SHA_MESSAGE_BYTES", rename it to
    SHA1_BLOCK_SIZE and define it to just '64' rather than '(512/8)' so that
    it matches the same definition in . This prepares for
    merging into .

    Signed-off-by: Eric Biggers
    Signed-off-by: Herbert Xu

    Eric Biggers
     
  • Currently the simplest use of the shash API is to use
    crypto_shash_digest() to digest a whole buffer. However, this still
    requires allocating a hash descriptor (struct shash_desc). Many users
    don't really want to preallocate one and instead just use a one-off
    descriptor on the stack like the following:

    {
    SHASH_DESC_ON_STACK(desc, tfm);
    int err;

    desc->tfm = tfm;

    err = crypto_shash_digest(desc, data, len, out);

    shash_desc_zero(desc);
    }

    Wrap this in a new helper function crypto_shash_tfm_digest() that can be
    used instead of the above.

    Signed-off-by: Eric Biggers
    Signed-off-by: Herbert Xu

    Eric Biggers
     
  • The SHA-256 / SHA-224 library functions can't fail, so remove the
    useless return value.

    Also long as the declarations are being changed anyway, also fix some
    parameter names in the declarations to match the definitions.

    Signed-off-by: Eric Biggers
    Reviewed-by: Jason A. Donenfeld
    Signed-off-by: Herbert Xu

    Eric Biggers
     
  • users may call crypto_has_acomp to confirm the existence of acomp before using
    crypto_acomp APIs. Right now, many acomp have scomp backend, for example, lz4,
    lzo, deflate etc. crypto_has_acomp will return false for them even though they
    support acomp APIs.

    Signed-off-by: Barry Song
    Signed-off-by: Herbert Xu

    Barry Song
     
  • Added support for batch requests, per crypto engine.
    A new callback is added, do_batch_requests, which executes a
    batch of requests. This has the crypto_engine structure as argument
    (for cases when more than one crypto-engine is used).
    The crypto_engine_alloc_init_and_set function, initializes
    crypto-engine, but also, sets the do_batch_requests callback.
    On crypto_pump_requests, if do_batch_requests callback is
    implemented in a driver, this will be executed. The link between
    the requests will be done in driver, if possible.
    do_batch_requests is available only if the hardware has support
    for multiple request.

    Signed-off-by: Iuliana Prodan
    Signed-off-by: Herbert Xu

    Iuliana Prodan
     
  • Added support for executing multiple requests, in parallel,
    for crypto engine based on a retry mechanism.
    If hardware was unable to execute a backlog request, enqueue it
    back in front of crypto-engine queue, to keep the order
    of requests.

    A new variable is added, retry_support (this is to keep the
    backward compatibility of crypto-engine) , which keeps track
    whether the hardware has support for retry mechanism and,
    also, if can run multiple requests.

    If do_one_request() returns:
    >= 0: hardware executed the request successfully;
    < 0: this is the old error path. If hardware has support for retry
    mechanism, the request is put back in front of crypto-engine queue.
    For backwards compatibility, if the retry support is not available,
    the crypto-engine will work as before.
    If hardware queue is full (-ENOSPC), requeue request regardless
    of MAY_BACKLOG flag.
    If hardware throws any other error code (like -EIO, -EINVAL,
    -ENOMEM, etc.) only MAY_BACKLOG requests are enqueued back into
    crypto-engine's queue, since the others can be dropped.

    The new crypto_engine_alloc_init_and_set function, initializes
    crypto-engine, sets the maximum size for crypto-engine software
    queue (not hardcoded anymore) and the retry_support variable
    is set, by default, to false.
    On crypto_pump_requests(), if do_one_request() returns >= 0,
    a new request is send to hardware, until there is no space in
    hardware and do_one_request() returns < 0.

    By default, retry_support is false and crypto-engine will
    work as before - will send requests to hardware,
    one-by-one, on crypto_pump_requests(), and complete it, on
    crypto_finalize_request(), and so on.

    To support multiple requests, in each driver, retry_support
    must be set on true, and if do_one_request() returns an error
    the request must not be freed, since it will be enqueued back
    into crypto-engine's queue.

    When all drivers, that use crypto-engine now, will be updated for
    retry mechanism, the retry_support variable can be removed.

    Signed-off-by: Iuliana Prodan
    Signed-off-by: Herbert Xu

    Iuliana Prodan
     
  • Add crypto_enqueue_request_head function that enqueues a
    request in front of queue.
    This will be used in crypto-engine, on error path. In case a request
    was not executed by hardware, enqueue it back in front of queue (to
    keep the order of requests).

    Signed-off-by: Iuliana Prodan
    Signed-off-by: Herbert Xu

    Iuliana Prodan
     

30 Apr, 2020

2 commits

  • To provide support for SEV-ES, the hypervisor must provide an area of
    memory to the PSP. Once this Trusted Memory Region (TMR) is provided to
    the PSP, the contents of this area of memory are no longer available to
    the x86.

    Update the PSP driver to allocate a 1MB region for the TMR that is 1MB
    aligned and then provide it to the PSP through the SEV INIT command.

    Signed-off-by: Tom Lendacky
    Reviewed-by: Brijesh Singh
    Reviewed-by: Joerg Roedel
    Signed-off-by: Herbert Xu

    Tom Lendacky
     
  • Removing the pcrypt module triggers this:

    general protection fault, probably for non-canonical
    address 0xdead000000000122
    CPU: 5 PID: 264 Comm: modprobe Not tainted 5.6.0+ #2
    Hardware name: QEMU Standard PC
    RIP: 0010:__cpuhp_state_remove_instance+0xcc/0x120
    Call Trace:
    padata_sysfs_release+0x74/0xce
    kobject_put+0x81/0xd0
    padata_free+0x12/0x20
    pcrypt_exit+0x43/0x8ee [pcrypt]

    padata instances wrongly use the same hlist node for the online and dead
    states, so __padata_free()'s second cpuhp remove call chokes on the node
    that the first poisoned.

    cpuhp multi-instance callbacks only walk forward in cpuhp_step->list and
    the same node is linked in both the online and dead lists, so the list
    corruption that results from padata_alloc() adding the node to a second
    list without removing it from the first doesn't cause problems as long
    as no instances are freed.

    Avoid the issue by giving each state its own node.

    Fixes: 894c9ef9780c ("padata: validate cpumask without removed CPU during offline")
    Signed-off-by: Daniel Jordan
    Cc: Herbert Xu
    Cc: Steffen Klassert
    Cc: linux-crypto@vger.kernel.org
    Cc: linux-kernel@vger.kernel.org
    Cc: stable@vger.kernel.org # v5.4+
    Signed-off-by: Herbert Xu

    Daniel Jordan
     

24 Apr, 2020

1 commit


13 Apr, 2020

1 commit

  • Pull locking fixes from Thomas Gleixner:
    "Three small fixes/updates for the locking core code:

    - Plug a task struct reference leak in the percpu rswem
    implementation.

    - Document the refcount interaction with PID_MAX_LIMIT

    - Improve the 'invalid wait context' data dump in lockdep so it
    contains all information which is required to decode the problem"

    * tag 'locking-urgent-2020-04-12' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    locking/lockdep: Improve 'invalid wait context' splat
    locking/refcount: Document interaction with PID_MAX_LIMIT
    locking/percpu-rwsem: Fix a task_struct refcount

    Linus Torvalds
     

12 Apr, 2020

1 commit


11 Apr, 2020

19 commits

  • Merge yet more updates from Andrew Morton:

    - Almost all of the rest of MM (memcg, slab-generic, slab, pagealloc,
    gup, hugetlb, pagemap, memremap)

    - Various other things (hfs, ocfs2, kmod, misc, seqfile)

    * akpm: (34 commits)
    ipc/util.c: sysvipc_find_ipc() should increase position index
    kernel/gcov/fs.c: gcov_seq_next() should increase position index
    fs/seq_file.c: seq_read(): add info message about buggy .next functions
    drivers/dma/tegra20-apb-dma.c: fix platform_get_irq.cocci warnings
    change email address for Pali Rohár
    selftests: kmod: test disabling module autoloading
    selftests: kmod: fix handling test numbers above 9
    docs: admin-guide: document the kernel.modprobe sysctl
    fs/filesystems.c: downgrade user-reachable WARN_ONCE() to pr_warn_once()
    kmod: make request_module() return an error when autoloading is disabled
    mm/memremap: set caching mode for PCI P2PDMA memory to WC
    mm/memory_hotplug: add pgprot_t to mhp_params
    powerpc/mm: thread pgprot_t through create_section_mapping()
    x86/mm: introduce __set_memory_prot()
    x86/mm: thread pgprot_t through init_memory_mapping()
    mm/memory_hotplug: rename mhp_restrictions to mhp_params
    mm/memory_hotplug: drop the flags field from struct mhp_restrictions
    mm/special: create generic fallbacks for pte_special() and pte_mkspecial()
    mm/vma: introduce VM_ACCESS_FLAGS
    mm/vma: define a default value for VM_DATA_DEFAULT_FLAGS
    ...

    Linus Torvalds
     
  • Pull more xen updates from Juergen Gross:

    - two cleanups

    - fix a boot regression introduced in this merge window

    - fix wrong use of memory allocation flags

    * tag 'for-linus-5.7-rc1b-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip:
    x86/xen: fix booting 32-bit pv guest
    x86/xen: make xen_pvmmu_arch_setup() static
    xen/blkfront: fix memory allocation flags in blkfront_setup_indirect()
    xen: Use evtchn_type_t as a type for event channels

    Linus Torvalds
     
  • For security reasons I stopped using gmail account and kernel address is
    now up-to-date alias to my personal address.

    People periodically send me emails to address which they found in source
    code of drivers, so this change reflects state where people can contact
    me.

    [ Added .mailmap entry as per Joe Perches - Linus ]
    Signed-off-by: Pali Rohár
    Signed-off-by: Andrew Morton
    Cc: Greg Kroah-Hartman
    Cc: Joe Perches
    Link: http://lkml.kernel.org/r/20200307104237.8199-1-pali@kernel.org
    Signed-off-by: Linus Torvalds

    Pali Rohár
     
  • devm_memremap_pages() is currently used by the PCI P2PDMA code to create
    struct page mappings for IO memory. At present, these mappings are
    created with PAGE_KERNEL which implies setting the PAT bits to be WB.
    However, on x86, an mtrr register will typically override this and force
    the cache type to be UC-. In the case firmware doesn't set this
    register it is effectively WB and will typically result in a machine
    check exception when it's accessed.

    Other arches are not currently likely to function correctly seeing they
    don't have any MTRR registers to fall back on.

    To solve this, provide a way to specify the pgprot value explicitly to
    arch_add_memory().

    Of the arches that support MEMORY_HOTPLUG: x86_64, and arm64 need a
    simple change to pass the pgprot_t down to their respective functions
    which set up the page tables. For x86_32, set the page tables
    explicitly using _set_memory_prot() (seeing they are already mapped).

    For ia64, s390 and sh, reject anything but PAGE_KERNEL settings -- this
    should be fine, for now, seeing these architectures don't support
    ZONE_DEVICE.

    A check in __add_pages() is also added to ensure the pgprot parameter
    was set for all arches.

    Signed-off-by: Logan Gunthorpe
    Signed-off-by: Andrew Morton
    Acked-by: David Hildenbrand
    Acked-by: Michal Hocko
    Acked-by: Dan Williams
    Cc: Andy Lutomirski
    Cc: Benjamin Herrenschmidt
    Cc: Borislav Petkov
    Cc: Catalin Marinas
    Cc: Christoph Hellwig
    Cc: Dave Hansen
    Cc: Eric Badger
    Cc: "H. Peter Anvin"
    Cc: Ingo Molnar
    Cc: Jason Gunthorpe
    Cc: Michael Ellerman
    Cc: Paul Mackerras
    Cc: Peter Zijlstra
    Cc: Thomas Gleixner
    Cc: Will Deacon
    Link: http://lkml.kernel.org/r/20200306170846.9333-7-logang@deltatee.com
    Signed-off-by: Linus Torvalds

    Logan Gunthorpe
     
  • The mhp_restrictions struct really doesn't specify anything resembling a
    restriction anymore so rename it to be mhp_params as it is a list of
    extended parameters.

    Signed-off-by: Logan Gunthorpe
    Signed-off-by: Andrew Morton
    Reviewed-by: David Hildenbrand
    Reviewed-by: Dan Williams
    Acked-by: Michal Hocko
    Cc: Andy Lutomirski
    Cc: Benjamin Herrenschmidt
    Cc: Borislav Petkov
    Cc: Catalin Marinas
    Cc: Christoph Hellwig
    Cc: Dave Hansen
    Cc: Eric Badger
    Cc: "H. Peter Anvin"
    Cc: Ingo Molnar
    Cc: Jason Gunthorpe
    Cc: Michael Ellerman
    Cc: Paul Mackerras
    Cc: Peter Zijlstra
    Cc: Thomas Gleixner
    Cc: Will Deacon
    Link: http://lkml.kernel.org/r/20200306170846.9333-3-logang@deltatee.com
    Signed-off-by: Linus Torvalds

    Logan Gunthorpe
     
  • Patch series "Allow setting caching mode in arch_add_memory() for
    P2PDMA", v4.

    Currently, the page tables created using memremap_pages() are always
    created with the PAGE_KERNEL cacheing mode. However, the P2PDMA code is
    creating pages for PCI BAR memory which should never be accessed through
    the cache and instead use either WC or UC. This still works in most
    cases, on x86, because the MTRR registers typically override the caching
    settings in the page tables for all of the IO memory to be UC-.
    However, this tends not to work so well on other arches or some rare x86
    machines that have firmware which does not setup the MTRR registers in
    this way.

    Instead of this, this series proposes a change to arch_add_memory() to
    take the pgprot required by the mapping which allows us to explicitly
    set pagetable entries for P2PDMA memory to UC.

    This changes is pretty routine for most of the arches: x86_64, arm64 and
    powerpc simply need to thread the pgprot through to where the page
    tables are setup. x86_32 unfortunately sets up the page tables at boot
    so must use _set_memory_prot() to change their caching mode. ia64, s390
    and sh don't appear to have an easy way to change the page tables so,
    for now at least, we just return -EINVAL on such mappings and thus they
    will not support P2PDMA memory until the work for this is done. This
    should be fine as they don't yet support ZONE_DEVICE.

    This patch (of 7):

    This variable is not used anywhere and should therefore be removed from
    the structure.

    Signed-off-by: Logan Gunthorpe
    Signed-off-by: Andrew Morton
    Reviewed-by: David Hildenbrand
    Reviewed-by: Dan Williams
    Acked-by: Michal Hocko
    Cc: Christoph Hellwig
    Cc: Catalin Marinas
    Cc: Will Deacon
    Cc: Benjamin Herrenschmidt
    Cc: Thomas Gleixner
    Cc: Ingo Molnar
    Cc: Borislav Petkov
    Cc: Dave Hansen
    Cc: Andy Lutomirski
    Cc: Peter Zijlstra
    Cc: Eric Badger
    Cc: "H. Peter Anvin"
    Cc: Jason Gunthorpe
    Cc: Michael Ellerman
    Cc: Paul Mackerras
    Link: http://lkml.kernel.org/r/20200306170846.9333-2-logang@deltatee.com
    Signed-off-by: Linus Torvalds

    Logan Gunthorpe
     
  • Currently there are many platforms that dont enable ARCH_HAS_PTE_SPECIAL
    but required to define quite similar fallback stubs for special page
    table entry helpers such as pte_special() and pte_mkspecial(), as they
    get build in generic MM without a config check. This creates two
    generic fallback stub definitions for these helpers, eliminating much
    code duplication.

    mips platform has a special case where pte_special() and pte_mkspecial()
    visibility is wider than what ARCH_HAS_PTE_SPECIAL enablement requires.
    This restricts those symbol visibility in order to avoid redefinitions
    which is now exposed through this new generic stubs and subsequent build
    failure. arm platform set_pte_at() definition needs to be moved into a
    C file just to prevent a build failure.

    [anshuman.khandual@arm.com: use defined(CONFIG_ARCH_HAS_PTE_SPECIAL) in mips per Thomas]
    Link: http://lkml.kernel.org/r/1583851924-21603-1-git-send-email-anshuman.khandual@arm.com
    Signed-off-by: Anshuman Khandual
    Signed-off-by: Andrew Morton
    Acked-by: Guo Ren [csky]
    Acked-by: Geert Uytterhoeven [m68k]
    Acked-by: Stafford Horne [openrisc]
    Acked-by: Helge Deller [parisc]
    Cc: Richard Henderson
    Cc: Ivan Kokshaysky
    Cc: Matt Turner
    Cc: Russell King
    Cc: Brian Cain
    Cc: Tony Luck
    Cc: Fenghua Yu
    Cc: Sam Creasey
    Cc: Michal Simek
    Cc: Ralf Baechle
    Cc: Paul Burton
    Cc: Nick Hu
    Cc: Greentime Hu
    Cc: Vincent Chen
    Cc: Ley Foon Tan
    Cc: Jonas Bonn
    Cc: Stefan Kristiansson
    Cc: "James E.J. Bottomley"
    Cc: "David S. Miller"
    Cc: Jeff Dike
    Cc: Richard Weinberger
    Cc: Anton Ivanov
    Cc: Guan Xuetao
    Cc: Chris Zankel
    Cc: Max Filippov
    Cc: Thomas Bogendoerfer
    Link: http://lkml.kernel.org/r/1583802551-15406-1-git-send-email-anshuman.khandual@arm.com
    Signed-off-by: Linus Torvalds

    Anshuman Khandual
     
  • There are many places where all basic VMA access flags (read, write,
    exec) are initialized or checked against as a group. One such example
    is during page fault. Existing vma_is_accessible() wrapper already
    creates the notion of VMA accessibility as a group access permissions.

    Hence lets just create VM_ACCESS_FLAGS (VM_READ|VM_WRITE|VM_EXEC) which
    will not only reduce code duplication but also extend the VMA
    accessibility concept in general.

    Signed-off-by: Anshuman Khandual
    Signed-off-by: Andrew Morton
    Reviewed-by: Vlastimil Babka
    Cc: Russell King
    Cc: Catalin Marinas
    Cc: Mark Salter
    Cc: Nick Hu
    Cc: Ley Foon Tan
    Cc: Michael Ellerman
    Cc: Heiko Carstens
    Cc: Yoshinori Sato
    Cc: Guan Xuetao
    Cc: Dave Hansen
    Cc: Thomas Gleixner
    Cc: Rob Springer
    Cc: Greg Kroah-Hartman
    Cc: Geert Uytterhoeven
    Link: http://lkml.kernel.org/r/1583391014-8170-3-git-send-email-anshuman.khandual@arm.com
    Signed-off-by: Linus Torvalds

    Anshuman Khandual
     
  • There are many platforms with exact same value for VM_DATA_DEFAULT_FLAGS
    This creates a default value for VM_DATA_DEFAULT_FLAGS in line with the
    existing VM_STACK_DEFAULT_FLAGS. While here, also define some more
    macros with standard VMA access flag combinations that are used
    frequently across many platforms. Apart from simplification, this
    reduces code duplication as well.

    Signed-off-by: Anshuman Khandual
    Signed-off-by: Andrew Morton
    Reviewed-by: Vlastimil Babka
    Acked-by: Geert Uytterhoeven
    Cc: Richard Henderson
    Cc: Vineet Gupta
    Cc: Russell King
    Cc: Catalin Marinas
    Cc: Mark Salter
    Cc: Guo Ren
    Cc: Yoshinori Sato
    Cc: Brian Cain
    Cc: Tony Luck
    Cc: Michal Simek
    Cc: Ralf Baechle
    Cc: Paul Burton
    Cc: Nick Hu
    Cc: Ley Foon Tan
    Cc: Jonas Bonn
    Cc: "James E.J. Bottomley"
    Cc: Michael Ellerman
    Cc: Paul Walmsley
    Cc: Heiko Carstens
    Cc: Rich Felker
    Cc: "David S. Miller"
    Cc: Guan Xuetao
    Cc: Thomas Gleixner
    Cc: Jeff Dike
    Cc: Chris Zankel
    Link: http://lkml.kernel.org/r/1583391014-8170-2-git-send-email-anshuman.khandual@arm.com
    Signed-off-by: Linus Torvalds

    Anshuman Khandual
     
  • Add the ability to insert multiple pages at once to a user VM with lower
    PTE spinlock operations.

    The intention of this patch-set is to reduce atomic ops for tcp zerocopy
    receives, which normally hits the same spinlock multiple times
    consecutively.

    [akpm@linux-foundation.org: pte_alloc() no longer takes the `addr' argument]
    [arjunroy@google.com: add missing page_count() check to vm_insert_pages()]
    Link: http://lkml.kernel.org/r/20200214005929.104481-1-arjunroy.kdev@gmail.com
    [arjunroy@google.com: vm_insert_pages() checks if pte_index defined]
    Link: http://lkml.kernel.org/r/20200228054714.204424-2-arjunroy.kdev@gmail.com
    Signed-off-by: Arjun Roy
    Signed-off-by: Eric Dumazet
    Signed-off-by: Soheil Hassas Yeganeh
    Signed-off-by: Andrew Morton
    Cc: David Miller
    Cc: Matthew Wilcox
    Cc: Jason Gunthorpe
    Cc: Stephen Rothwell
    Link: http://lkml.kernel.org/r/20200128025958.43490-2-arjunroy.kdev@gmail.com
    Signed-off-by: Linus Torvalds

    Arjun Roy
     
  • Commit 944d9fec8d7a ("hugetlb: add support for gigantic page allocation
    at runtime") has added the run-time allocation of gigantic pages.

    However it actually works only at early stages of the system loading,
    when the majority of memory is free. After some time the memory gets
    fragmented by non-movable pages, so the chances to find a contiguous 1GB
    block are getting close to zero. Even dropping caches manually doesn't
    help a lot.

    At large scale rebooting servers in order to allocate gigantic hugepages
    is quite expensive and complex. At the same time keeping some constant
    percentage of memory in reserved hugepages even if the workload isn't
    using it is a big waste: not all workloads can benefit from using 1 GB
    pages.

    The following solution can solve the problem:
    1) On boot time a dedicated cma area* is reserved. The size is passed
    as a kernel argument.
    2) Run-time allocations of gigantic hugepages are performed using the
    cma allocator and the dedicated cma area

    In this case gigantic hugepages can be allocated successfully with a
    high probability, however the memory isn't completely wasted if nobody
    is using 1GB hugepages: it can be used for pagecache, anon memory, THPs,
    etc.

    * On a multi-node machine a per-node cma area is allocated on each node.
    Following gigantic hugetlb allocation are using the first available
    numa node if the mask isn't specified by a user.

    Usage:
    1) configure the kernel to allocate a cma area for hugetlb allocations:
    pass hugetlb_cma=10G as a kernel argument

    2) allocate hugetlb pages as usual, e.g.
    echo 10 > /sys/kernel/mm/hugepages/hugepages-1048576kB/nr_hugepages

    If the option isn't enabled or the allocation of the cma area failed,
    the current behavior of the system is preserved.

    x86 and arm-64 are covered by this patch, other architectures can be
    trivially added later.

    The patch contains clean-ups and fixes proposed and implemented by Aslan
    Bakirov and Randy Dunlap. It also contains ideas and suggestions
    proposed by Rik van Riel, Michal Hocko and Mike Kravetz. Thanks!

    Signed-off-by: Roman Gushchin
    Signed-off-by: Andrew Morton
    Tested-by: Andreas Schaufler
    Acked-by: Mike Kravetz
    Acked-by: Michal Hocko
    Cc: Aslan Bakirov
    Cc: Randy Dunlap
    Cc: Rik van Riel
    Cc: Joonsoo Kim
    Link: http://lkml.kernel.org/r/20200407163840.92263-3-guro@fb.com
    Signed-off-by: Linus Torvalds

    Roman Gushchin
     
  • I've noticed that there is no interface exposed by CMA which would let
    me to declare contigous memory on particular NUMA node.

    This patchset adds the ability to try to allocate contiguous memory on a
    specific node. It will fallback to other nodes if the specified one
    doesn't work.

    Implement a new method for declaring contigous memory on particular node
    and keep cma_declare_contiguous() as a wrapper.

    [akpm@linux-foundation.org: build fix]
    Signed-off-by: Aslan Bakirov
    Signed-off-by: Roman Gushchin
    Signed-off-by: Andrew Morton
    Acked-by: Michal Hocko
    Cc: Andreas Schaufler
    Cc: Mike Kravetz
    Cc: Rik van Riel
    Cc: Joonsoo Kim
    Link: http://lkml.kernel.org/r/20200407163840.92263-2-guro@fb.com
    Signed-off-by: Linus Torvalds

    Aslan Bakirov
     
  • There is a typo at the cross-reference link, causing this warning:

    include/linux/slab.h:11: WARNING: undefined label: memory-allocation (if the link has no caption the label must precede a section header)

    Signed-off-by: Mauro Carvalho Chehab
    Signed-off-by: Andrew Morton
    Cc: Jonathan Corbet
    Cc: Christoph Lameter
    Cc: Pekka Enberg
    Cc: David Rientjes
    Cc: Joonsoo Kim
    Link: http://lkml.kernel.org/r/0aeac24235d356ebd935d11e147dcc6edbb6465c.1586359676.git.mchehab+huawei@kernel.org
    Signed-off-by: Linus Torvalds

    Mauro Carvalho Chehab
     
  • printk_deferred(), similarly to printk_safe/printk_nmi, does not
    immediately attempt to print a new message on the consoles, avoiding
    calls into non-reentrant kernel paths, e.g. scheduler or timekeeping,
    which potentially can deadlock the system.

    Those printk() flavors, instead, rely on per-CPU flush irq_work to print
    messages from safer contexts. For same reasons (recursive scheduler or
    timekeeping calls) printk() uses per-CPU irq_work in order to wake up
    user space syslog/kmsg readers.

    However, only printk_safe/printk_nmi do make sure that per-CPU areas
    have been initialised and that it's safe to modify per-CPU irq_work.
    This means that, for instance, should printk_deferred() be invoked "too
    early", that is before per-CPU areas are initialised, printk_deferred()
    will perform illegal per-CPU access.

    Lech Perczak [0] reports that after commit 1b710b1b10ef ("char/random:
    silence a lockdep splat with printk()") user-space syslog/kmsg readers
    are not able to read new kernel messages.

    The reason is printk_deferred() being called too early (as was pointed
    out by Petr and John).

    Fix printk_deferred() and do not queue per-CPU irq_work before per-CPU
    areas are initialized.

    Link: https://lore.kernel.org/lkml/aa0732c6-5c4e-8a8b-a1c1-75ebe3dca05b@camlintechnologies.com/
    Reported-by: Lech Perczak
    Signed-off-by: Sergey Senozhatsky
    Tested-by: Jann Horn
    Reviewed-by: Petr Mladek
    Cc: Greg Kroah-Hartman
    Cc: Theodore Ts'o
    Cc: John Ogness
    Signed-off-by: Linus Torvalds

    Sergey Senozhatsky
     
  • Pull proc fix from Eric Biederman:
    "A brown paper bag slipped through my proc changes, and syzcaller
    caught it when the code ended up in your tree.

    I have opted to fix it the simplest cleanest way I know how, so there
    is no reasonable chance for the bug to repeat"

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace:
    proc: Use a dedicated lock in struct pid

    Linus Torvalds
     
  • …erry.reding/linux-pwm

    Pull pwm updates from Thierry Reding:
    "There's quite a few changes this time around.

    Most of these are fixes and cleanups, but there's also new chip
    support for some drivers and a bit of rework"

    * tag 'pwm/for-5.7-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/thierry.reding/linux-pwm: (33 commits)
    pwm: pca9685: Fix PWM/GPIO inter-operation
    pwm: Make pwm_apply_state_debug() static
    pwm: meson: Remove redundant assignment to variable fin_freq
    pwm: jz4740: Allow selection of PWM channels 0 and 1
    pwm: jz4740: Obtain regmap from parent node
    pwm: jz4740: Improve algorithm of clock calculation
    pwm: jz4740: Use clocks from TCU driver
    pwm: sun4i: Remove redundant needs_delay
    pwm: omap-dmtimer: Implement .apply callback
    pwm: omap-dmtimer: Do not disable PWM before changing period/duty_cycle
    pwm: omap-dmtimer: Fix PWM enabling sequence
    pwm: omap-dmtimer: Update description for PWM OMAP DM timer
    pwm: omap-dmtimer: Drop unused header file
    pwm: renesas-tpu: Drop confusing registered message
    pwm: renesas-tpu: Fix late Runtime PM enablement
    pwm: rcar: Fix late Runtime PM enablement
    dt-bindings: pwm: renesas-tpu: Document more R-Car Gen2 support
    pwm: meson: Fix confusing indentation
    pwm: pca9685: Use gpio core provided macro GPIO_LINE_DIRECTION_OUT
    pwm: pca9685: Replace CONFIG_PM with __maybe_unused
    ...

    Linus Torvalds
     
  • Pull more drm fixes from Dave Airlie:
    "As expected, more fixes did turn up in the latter part of the week.

    The drm_local_map build regression fix is here, along with temporary
    disabling of the hugepage work due to some amdgpu related crashes.

    Otherwise it's just a bunch of i915, and amdgpu fixes.

    legacy:
    - fix drm_local_map.offset type

    ttm:
    - temporarily disable hugepages to debug amdgpu problems.

    prime:
    - fix sg extraction

    amdgpu:
    - Various Renoir fixes
    - Fix gfx clockgating sequence on gfx10
    - RAS fixes
    - Avoid MST property creation after registration
    - Various cursor/viewport fixes
    - Fix a confusing log message about optional firmwares

    i915:
    - Flush all the reloc_gpu batch (Chris)
    - Ignore readonly failures when updating relocs (Chris)
    - Fill all the unused space in the GGTT (Chris)
    - Return the right vswing table (Jose)
    - Don't enable DDI IO power on a TypeC port in TBT mode for ICL+ (Imre)

    analogix_dp:
    - probe fix

    virtio:
    - oob fix in object create"

    * tag 'drm-next-2020-04-10' of git://anongit.freedesktop.org/drm/drm: (34 commits)
    drm/ttm: Temporarily disable the huge_fault() callback
    drm/bridge: analogix_dp: Split bind() into probe() and real bind()
    drm/legacy: Fix type for drm_local_map.offset
    drm/amdgpu/display: fix warning when compiling without debugfs
    drm/amdgpu: unify fw_write_wait for new gfx9 asics
    drm/amd/powerplay: error out on forcing clock setting not supported
    drm/amdgpu: fix gfx hang during suspend with video playback (v2)
    drm/amd/display: Check for null fclk voltage when parsing clock table
    drm/amd/display: Acknowledge wm_optimized_required
    drm/amd/display: Make cursor source translation adjustment optional
    drm/amd/display: Calculate scaling ratios on every medium/full update
    drm/amd/display: Program viewport when source pos changes for DCN20 hw seq
    drm/amd/display: Fix incorrect cursor pos on scaled primary plane
    drm/amd/display: change default pipe_split policy for DCN1
    drm/amd/display: Translate cursor position by source rect
    drm/amd/display: Update stream adjust in dc_stream_adjust_vmin_vmax
    drm/amd/display: Avoid create MST prop after registration
    drm/amdgpu/psp: dont warn on missing optional TA's
    drm/amdgpu: update RAS related dmesg print
    drm/amdgpu: resolve mGPU RAS query instability
    ...

    Linus Torvalds
     
  • Pull sound fixes from Takashi Iwai:
    "A collection of small fixes gathered since the previous update.

    ALSA core:
    - Regression fix for OSS PCM emulation

    ASoC:
    - Trivial fixes in reg bit mask ops, DAPM, DPCM and topology
    - Lots of fixes for Intel-based devices
    - Minor fixes for AMD, STM32, Qualcomm, Realtek

    Others:
    - Fixes for the bugs in mixer handling in HD-audio and ice1724
    drivers that were caught by the recent kctl validator
    - New quirks for HD-audio and USB-audio

    Also this contains a fix for EDD firmware fix, which slipped from
    anyone's hands"

    * tag 'sound-fix-5.7-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: (35 commits)
    ALSA: hda: Add driver blacklist
    ALSA: usb-audio: Add mixer workaround for TRX40 and co
    ALSA: hda/realtek - Add quirk for MSI GL63
    ALSA: ice1724: Fix invalid access for enumerated ctl items
    ALSA: hda: Fix potential access overflow in beep helper
    ASoC: cs4270: pull reset GPIO low then high
    ALSA: hda/realtek - Add HP new mute led supported for ALC236
    ALSA: hda/realtek - Add supported new mute Led for HP
    ASoC: rt5645: Add platform-data for Medion E1239T
    ASoC: Intel: bytcr_rt5640: Add quirk for MPMAN MPWIN895CL tablet
    ASoC: stm32: sai: Add missing cleanup
    ALSA: usb-audio: Add registration quirk for Kingston HyperX Cloud Alpha S
    ASoC: Intel: atom: Fix uninitialized variable compiler warning
    ASoC: Intel: atom: Check drv->lock is locked in sst_fill_and_send_cmd_unlocked
    ASoC: Intel: atom: Take the drv->lock mutex before calling sst_send_slot_map()
    ASoC: SOF: Turn "firmware boot complete" message into a dbg message
    ALSA: usb-audio: Add Pioneer DJ DJM-250MK2 quirk
    ALSA: pcm: oss: Fix regression by buffer overflow fix (again)
    ALSA: pcm: oss: Fix regression by buffer overflow fix
    edd: Use scnprintf() for avoiding potential buffer overflow
    ...

    Linus Torvalds
     
  • Pull block fixes from Jens Axboe:
    "Here's a set of fixes that should go into this merge window. This
    contains:

    - NVMe pull request from Christoph with various fixes

    - Better discard support for loop (Evan)

    - Only call ->commit_rqs() if we have queued IO (Keith)

    - blkcg offlining fixes (Tejun)

    - fix (and fix the fix) for busy partitions"

    * tag 'block-5.7-2020-04-10' of git://git.kernel.dk/linux-block:
    block: fix busy device checking in blk_drop_partitions again
    block: fix busy device checking in blk_drop_partitions
    nvmet-rdma: fix double free of rdma queue
    blk-mq: don't commit_rqs() if none were queued
    nvme-fc: Revert "add module to ops template to allow module references"
    nvme: fix deadlock caused by ANA update wrong locking
    nvmet-rdma: fix bonding failover possible NULL deref
    loop: Better discard support for block devices
    loop: Report EOPNOTSUPP properly
    nvmet: fix NULL dereference when removing a referral
    nvme: inherit stable pages constraint in the mpath stack device
    blkcg: don't offline parent blkcg first
    blkcg: rename blkcg->cgwb_refcnt to ->online_pin and always use it
    nvme-tcp: fix possible crash in recv error flow
    nvme-tcp: don't poll a non-live queue
    nvme-tcp: fix possible crash in write_zeroes processing
    nvmet-fc: fix typo in comment
    nvme-rdma: Replace comma with a semicolon
    nvme-fcloop: fix deallocation of working context
    nvme: fix compat address handling in several ioctls

    Linus Torvalds
     

10 Apr, 2020

2 commits

  • Pull RISC-V updates from Palmer Dabbelt:
    "This contains a handful of new features:

    - Partial support for the Kendryte K210.

    There are still a few outstanding issues that I have patches for,
    but I don't actually have a board to test them so they're not
    included yet.

    - SBI v0.2 support.

    - Fixes to support for building with LLVM-based toolchains. The
    resulting images are known not to boot yet.

    I don't anticipate a part two, but I'll probably have something early
    in the RCs to finish up the K210 support"

    * tag 'riscv-for-linus-5.7' of git://git.kernel.org/pub/scm/linux/kernel/git/riscv/linux: (38 commits)
    riscv: create a loader.bin boot image for Kendryte SoC
    riscv: Kendryte K210 default config
    riscv: Add Kendryte K210 device tree
    riscv: Select required drivers for Kendryte SOC
    riscv: Add Kendryte K210 SoC support
    riscv: Add SOC early init support
    riscv: Unaligned load/store handling for M_MODE
    RISC-V: Support cpu hotplug
    RISC-V: Add supported for ordered booting method using HSM
    RISC-V: Add SBI HSM extension definitions
    RISC-V: Export SBI error to linux error mapping function
    RISC-V: Add cpu_ops and modify default booting method
    RISC-V: Move relocate and few other functions out of __init
    RISC-V: Implement new SBI v0.2 extensions
    RISC-V: Introduce a new config for SBI v0.1
    RISC-V: Add SBI v0.2 extension definitions
    RISC-V: Add basic support for SBI v0.2
    RISC-V: Mark existing SBI as 0.1 SBI.
    riscv: Use macro definition instead of magic number
    riscv: Add support to dump the kernel page tables
    ...

    Linus Torvalds
     
  • syzbot wrote:
    > ========================================================
    > WARNING: possible irq lock inversion dependency detected
    > 5.6.0-syzkaller #0 Not tainted
    > --------------------------------------------------------
    > swapper/1/0 just changed the state of lock:
    > ffffffff898090d8 (tasklist_lock){.+.?}-{2:2}, at: send_sigurg+0x9f/0x320 fs/fcntl.c:840
    > but this lock took another, SOFTIRQ-unsafe lock in the past:
    > (&pid->wait_pidfd){+.+.}-{2:2}
    >
    >
    > and interrupts could create inverse lock ordering between them.
    >
    >
    > other info that might help us debug this:
    > Possible interrupt unsafe locking scenario:
    >
    > CPU0 CPU1
    > ---- ----
    > lock(&pid->wait_pidfd);
    > local_irq_disable();
    > lock(tasklist_lock);
    > lock(&pid->wait_pidfd);
    >
    > lock(tasklist_lock);
    >
    > *** DEADLOCK ***
    >
    > 4 locks held by swapper/1/0:

    The problem is that because wait_pidfd.lock is taken under the tasklist
    lock. It must always be taken with irqs disabled as tasklist_lock can be
    taken from interrupt context and if wait_pidfd.lock was already taken this
    would create a lock order inversion.

    Oleg suggested just disabling irqs where I have added extra calls to
    wait_pidfd.lock. That should be safe and I think the code will eventually
    do that. It was rightly pointed out by Christian that sharing the
    wait_pidfd.lock was a premature optimization.

    It is also true that my pre-merge window testing was insufficient. So
    remove the premature optimization and give struct pid a dedicated lock of
    it's own for struct pid things. I have verified that lockdep sees all 3
    paths where we take the new pid->lock and lockdep does not complain.

    It is my current day dream that one day pid->lock can be used to guard the
    task lists as well and then the tasklist_lock won't need to be held to
    deliver signals. That will require taking pid->lock with irqs disabled.

    Acked-by: Christian Brauner
    Link: https://lore.kernel.org/lkml/00000000000011d66805a25cd73f@google.com/
    Cc: Oleg Nesterov
    Cc: Christian Brauner
    Reported-by: syzbot+343f75cdeea091340956@syzkaller.appspotmail.com
    Reported-by: syzbot+832aabf700bc3ec920b9@syzkaller.appspotmail.com
    Reported-by: syzbot+f675f964019f884dbd0f@syzkaller.appspotmail.com
    Reported-by: syzbot+a9fb1457d720a55d6dc5@syzkaller.appspotmail.com
    Fixes: 7bc3e6e55acf ("proc: Use a list of inodes to flush from proc")
    Signed-off-by: "Eric W. Biederman"

    Eric W. Biederman
     

09 Apr, 2020

5 commits

  • Analogix_dp driver acquires all its resources in the ->bind() callback,
    what is a bit against the component driver based approach, where the
    driver initialization is split into a probe(), where all resources are
    gathered, and a bind(), where all objects are created and a compound
    driver is initialized.

    Extract all the resource related operations to analogix_dp_probe() and
    analogix_dp_remove(), then call them before/after registration of the
    device components from the main Exynos DP and Rockchip DP drivers. Also
    move the plat_data initialization to the probe() to make it available for
    the analogix_dp_probe() function.

    This fixes the multiple calls to the bind() of the DRM compound driver
    when the DP PHY driver is not yet loaded/probed:

    [drm] Exynos DRM: using 14400000.fimd device for DMA mapping operations
    exynos-drm exynos-drm: bound 14400000.fimd (ops fimd_component_ops [exynosdrm])
    exynos-drm exynos-drm: bound 14450000.mixer (ops mixer_component_ops [exynosdrm])
    exynos-dp 145b0000.dp-controller: no DP phy configured
    exynos-drm exynos-drm: failed to bind 145b0000.dp-controller (ops exynos_dp_ops [exynosdrm]): -517
    exynos-drm exynos-drm: master bind failed: -517
    ...
    [drm] Exynos DRM: using 14400000.fimd device for DMA mapping operations
    exynos-drm exynos-drm: bound 14400000.fimd (ops hdmi_enable [exynosdrm])
    exynos-drm exynos-drm: bound 14450000.mixer (ops hdmi_enable [exynosdrm])
    exynos-drm exynos-drm: bound 145b0000.dp-controller (ops hdmi_enable [exynosdrm])
    exynos-drm exynos-drm: bound 14530000.hdmi (ops hdmi_enable [exynosdrm])
    [drm] Supports vblank timestamp caching Rev 2 (21.10.2013).
    Console: switching to colour frame buffer device 170x48
    exynos-drm exynos-drm: fb0: exynosdrmfb frame buffer device
    [drm] Initialized exynos 1.1.0 20180330 for exynos-drm on minor 1
    ...

    Signed-off-by: Marek Szyprowski
    Acked-by: Andy Yan
    Reviewed-by: Andrzej Hajda
    Signed-off-by: Andrzej Hajda
    Link: https://patchwork.freedesktop.org/patch/msgid/20200310103427.26048-1-m.szyprowski@samsung.com
    (cherry picked from commit 83a196773b8bc6702f49df1eddc848180e350340)
    Signed-off-by: Maxime Ripard

    Marek Szyprowski
     
  • drm_local_map.offset is not only used for resource_size_t but also
    dma_addr_t which may be of different sizes.

    Reported-by: Nathan Chancellor
    Fixes: 8e4ff9b56957 ("drm: Remove the dma_alloc_coherent wrapper for internal usage")
    Tested-by: Nathan Chancellor # build
    Signed-off-by: Chris Wilson
    Cc: Dave Airlie
    Cc: Nathan Chancellor
    Cc: Linus Torvalds
    Signed-off-by: Daniel Vetter
    Link: https://patchwork.freedesktop.org/patch/msgid/20200402215926.30714-1-chris@chris-wilson.co.uk

    Chris Wilson
     
  • Pull ceph updates from Ilya Dryomov:
    "The main items are:

    - support for asynchronous create and unlink (Jeff Layton).

    Creates and unlinks are satisfied locally, without waiting for a
    reply from the MDS, provided the client has been granted
    appropriate caps (new in v15.y.z ("Octopus") release). This can be
    a big help for metadata heavy workloads such as tar and rsync.
    Opt-in with the new nowsync mount option.

    - multiple blk-mq queues for rbd (Hannes Reinecke and myself).

    When the driver was converted to blk-mq, we settled on a single
    blk-mq queue because of a global lock in libceph and some other
    technical debt. These have since been addressed, so allocate a
    queue per CPU to enhance parallelism.

    - don't hold onto caps that aren't actually needed (Zheng Yan).

    This has been our long-standing behavior, but it causes issues with
    some active/standby applications (synchronous I/O, stalls if the
    standby goes down, etc).

    - .snap directory timestamps consistent with ceph-fuse (Luis
    Henriques)"

    * tag 'ceph-for-5.7-rc1' of git://github.com/ceph/ceph-client: (49 commits)
    ceph: fix snapshot directory timestamps
    ceph: wait for async creating inode before requesting new max size
    ceph: don't skip updating wanted caps when cap is stale
    ceph: request new max size only when there is auth cap
    ceph: cleanup return error of try_get_cap_refs()
    ceph: return ceph_mdsc_do_request() errors from __get_parent()
    ceph: check all mds' caps after page writeback
    ceph: update i_requested_max_size only when sending cap msg to auth mds
    ceph: simplify calling of ceph_get_fmode()
    ceph: remove delay check logic from ceph_check_caps()
    ceph: consider inode's last read/write when calculating wanted caps
    ceph: always renew caps if mds_wanted is insufficient
    ceph: update dentry lease for async create
    ceph: attempt to do async create when possible
    ceph: cache layout in parent dir on first sync create
    ceph: add new MDS req field to hold delegated inode number
    ceph: decode interval_sets for delegated inos
    ceph: make ceph_fill_inode non-static
    ceph: perform asynchronous unlink if we have sufficient caps
    ceph: don't take refs to want mask unless we have all bits
    ...

    Linus Torvalds
     
  • Pull watchdog updates from Wim Van Sebroeck:

    - add TI K3 RTI watchdog

    - add stop_on_reboot parameter to control reboot policy

    - wm831x_wdt: Remove GPIO handling

    - several small fixes, improvements and clean-ups

    * tag 'linux-watchdog-5.7-rc1' of git://www.linux-watchdog.org/linux-watchdog:
    watchdog: Add K3 RTI watchdog support
    dt-bindings: watchdog: Add support for TI K3 RTI watchdog
    watchdog: ziirave_wdt: change name to be more specific
    watchdog: orion: use 0 for unset heartbeat
    watchdog: npcm: remove whitespaces
    watchdog: reset last_hw_keepalive time at start
    watchdog: imx2_wdt: Drop .remove callback
    watchdog: Add stop_on_reboot parameter to control reboot policy
    watchdog: wm831x_wdt: Remove GPIO handling
    watchdog: imx7ulp: Remove unused include of init.h
    watchdog: imx_sc_wdt: Remove unused includes
    watchdog: qcom: Use irq flags from firmware
    watchdog: pm8916_wdt: Add system sleep callbacks
    watchdog: qcom-wdt: disable pretimeout on timer platform

    Linus Torvalds
     
  • …ernel/git/chrome-platform/linux

    Pull chrome platform updates from Benson Leung:

    cros-usbpd-notify and cros_ec_typec:
    - Add a new notification driver that handles and dispatches USB PD
    related events to other drivers.
    - Add a Type C connector class driver for cros_ec

    CrOS EC:
    - Introduce a new cros_ec_cmd_xfer_status helper

    Sensors/iio:
    - A series from Gwendal that adds Cros EC sensor hub FIFO support

    Wilco EC:
    - Fix a build warning.
    - Platform data shouldn't include kernel.h

    Misc:
    - i2c api conversion complete, with i2c_new_client_device instead of
    i2c_new_device in chromeos_laptop.
    - Replace zero-length array with flexible-array member in
    cros_ec_chardev and wilco_ec
    - Update new structure for SPI transfer delays in cros_ec_spi

    * tag 'tag-chrome-platform-for-v5.7' of git://git.kernel.org/pub/scm/linux/kernel/git/chrome-platform/linux: (34 commits)
    platform/chrome: cros_ec_spi: Wait for USECS, not NSECS
    iio: cros_ec: Use Hertz as unit for sampling frequency
    iio: cros_ec: Report hwfifo_watermark_max
    iio: cros_ec: Expose hwfifo_timeout
    iio: cros_ec: Remove pm function
    iio: cros_ec: Register to cros_ec_sensorhub when EC supports FIFO
    iio: expose iio_device_set_clock
    iio: cros_ec: Move function description to .c file
    platform/chrome: cros_ec_sensorhub: Add median filter
    platform/chrome: cros_ec_sensorhub: Add code to spread timestmap
    platform/chrome: cros_ec_sensorhub: Add FIFO support
    platform/chrome: cros_ec_sensorhub: Add the number of sensors in sensorhub
    platform/chrome: chromeos_laptop: make I2C API conversion complete
    platform/chrome: wilco_ec: event: Replace zero-length array with flexible-array member
    platform/chrome: cros_ec_chardev: Replace zero-length array with flexible-array member
    platform/chrome: cros_ec_typec: Update port info from EC
    platform/chrome: Add Type C connector class driver
    platform/chrome: cros_usbpd_notify: Pull PD_HOST_EVENT status
    platform/chrome: cros_usbpd_notify: Amend ACPI driver to plat
    platform/chrome: cros_usbpd_notify: Add driver data struct
    ...

    Linus Torvalds