Skip to content
Permalink
luo-penghao/dr…
Switch branches/tags

Commits on Oct 18, 2021

  1. drm/i915/display: Remove unused variable in the for loop.

    Variable is not used in the loop, and its assignment is redundant too.
    So it should be deleted.
    
    The clang_analyzer complains as follows:
    
    drivers/gpu/drm/i915/display/intel_fb.c:1018:3 warning:
    
    Value stored to 'cpp' is never read.
    
    Reported-by: Zeal Robot <zealci@zte.com.cn>
    Signed-off-by: luo penghao <luo.penghao@zte.com.cn>
    luo penghao authored and intel-lab-lkp committed Oct 18, 2021

Commits on Oct 15, 2021

  1. Add linux-next specific files for 20211015

    Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
    sfrothwell committed Oct 15, 2021
  2. Merge branch 'akpm/master'

    sfrothwell committed Oct 15, 2021
  3. mm: unexport {,un}lock_page_memcg

    These are only used in built-in core mm code.
    
    Link: https://lkml.kernel.org/r/20210820095815.445392-3-hch@lst.de
    Signed-off-by: Christoph Hellwig <hch@lst.de>
    Acked-by: Johannes Weiner <hannes@cmpxchg.org>
    Cc: Michal Hocko <mhocko@kernel.org>
    Cc: Vladimir Davydov <vdavydov.dev@gmail.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
    Christoph Hellwig authored and sfrothwell committed Oct 15, 2021
  4. mm: unexport folio_memcg_{,un}lock

    Patch series "unexport memcg locking helpers".
    
    Neither the old page-based nor the new folio-based memcg locking helpers
    are used in modular code at all, so drop the exports.
    
    This patch (of 2):
    
    folio_memcg_{,un}lock are only used in built-in core mm code.
    
    Link: https://lkml.kernel.org/r/20210820095815.445392-1-hch@lst.de
    Link: https://lkml.kernel.org/r/20210820095815.445392-2-hch@lst.de
    Signed-off-by: Christoph Hellwig <hch@lst.de>
    Cc: Johannes Weiner <hannes@cmpxchg.org>
    Cc: Michal Hocko <mhocko@kernel.org>
    Cc: Vladimir Davydov <vdavydov.dev@gmail.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
    Christoph Hellwig authored and sfrothwell committed Oct 15, 2021
  5. mm: migrate: simplify the file-backed pages validation when migrating…

    … its mapping
    
    Patch series "Some cleanup for page migration", v3.
    
    This patchset does some cleanups and improvements for page migration.
    
    This patch (of 4):
    
    There is no need to validate the file-backed page's refcount before trying
    to freeze the page's expected refcount, instead we can rely on the
    folio_ref_freeze() to validate if the page has the expected refcount
    before migrating its mapping.
    
    Moreover we are always under the page lock when migrating the page
    mapping, which means nowhere else can remove it from the page cache, so we
    can remove the xas_load() validation under the i_pages lock.
    
    Link: https://lkml.kernel.org/r/cover.1629447552.git.baolin.wang@linux.alibaba.com
    Link: https://lkml.kernel.org/r/df4c129fd8e86a95dbc55f4663d77441cc0d3bd1.1629447552.git.baolin.wang@linux.alibaba.com
    Signed-off-by: Baolin Wang <baolin.wang@linux.alibaba.com>
    Suggested-by: Matthew Wilcox <willy@infradead.org>
    Cc: Yang Shi <shy828301@gmail.com>
    Cc: Alistair Popple <apopple@nvidia.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
    Baolin Wang authored and sfrothwell committed Oct 15, 2021
  6. drm/locking: fix for name conflict

    Fixes: cd06ab2 ("drm/locking: add backtrace for locking contended locks without backoff")
    Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
    sfrothwell committed Oct 15, 2021
  7. bottom_half.h needs kernel.h

    for _THIS_IP_ on arm at least
    
    Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
    sfrothwell committed Oct 15, 2021
  8. ipc/ipc_sysctl.c: remove fallback for !CONFIG_PROC_SYSCTL

    Compilation of ipc/ipc_sysctl.c is controlled by
    obj-$(CONFIG_SYSVIPC_SYSCTL)
    [see ipc/Makefile]
    
    And CONFIG_SYSVIPC_SYSCTL depends on SYSCTL
    [see init/Kconfig]
    
    An SYSCTL is selected by PROC_SYSCTL.
    [see fs/proc/Kconfig]
    
    Thus: #ifndef CONFIG_PROC_SYSCTL in ipc/ipc_sysctl.c is impossible, the
    fallback can be removed.
    
    Link: https://lkml.kernel.org/r/20210918145337.3369-1-manfred@colorfullife.com
    Signed-off-by: Manfred Spraul <manfred@colorfullife.com>
    Reviewed-by: "Eric W. Biederman" <ebiederm@xmission.com>
    Acked-by: Davidlohr Bueso <dbueso@suse.de>
    Cc: Manfred Spraul <manfred@colorfullife.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
    manfred-colorfu authored and sfrothwell committed Oct 15, 2021
  9. ipc-check-checkpoint_restore_ns_capable-to-modify-c-r-proc-files-fix

    ipc/ipc_sysctl.c needs capability.h for checkpoint_restore_ns_capable()
    
    Cc: Davidlohr Bueso <dave@stgolabs.net>
    Cc: "Eric W. Biederman" <ebiederm@xmission.com>
    Cc: Manfred Spraul <manfred@colorfullife.com>
    Cc: Michal Clapinski <mclapinski@google.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
    akpm00 authored and sfrothwell committed Oct 15, 2021
  10. ipc: check checkpoint_restore_ns_capable() to modify C/R proc files

    This commit removes the requirement to be root to modify sem_next_id,
    msg_next_id and shm_next_id and checks checkpoint_restore_ns_capable
    instead.
    
    Since those files are specific to the IPC namespace, there is no reason
    they should require root privileges.  This is similar to ns_last_pid,
    which also only checks checkpoint_restore_ns_capable.
    
    Link: https://lkml.kernel.org/r/20210916163717.3179496-1-mclapinski@google.com
    Signed-off-by: Michal Clapinski <mclapinski@google.com>
    Reviewed-by: Davidlohr Bueso <dbueso@suse.de>
    Reviewed-by: Manfred Spraul <manfred@colorfullife.com>
    Cc: "Eric W. Biederman" <ebiederm@xmission.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
    mclapinski authored and sfrothwell committed Oct 15, 2021
  11. virtio-mem: disallow mapping virtio-mem memory via /dev/mem

    We don't want user space to be able to map virtio-mem device memory
    directly (e.g., via /dev/mem) in order to have guarantees that in a sane
    setup we'll never accidentially access unplugged memory within the
    device-managed region of a virtio-mem device, just as required by the
    virtio-spec.
    
    As soon as the virtio-mem driver is loaded, the device region is visible
    in /proc/iomem via the parent device region.  From that point on user
    space is aware of the device region and we want to disallow mapping
    anything inside that region (where we will dynamically (un)plug memory)
    until the driver has been unloaded cleanly and e.g., another driver might
    take over.
    
    By creating our parent IORESOURCE_SYSTEM_RAM resource with
    IORESOURCE_EXCLUSIVE, we will disallow any /dev/mem access to our device
    region until the driver was unloaded cleanly and removed the parent
    region.  This will work even though only some memory blocks are actually
    currently added to Linux and appear as busy in the resource tree.
    
    So access to the region from user space is only possible
    a) if we don't load the virtio-mem driver.
    b) after unloading the virtio-mem driver cleanly.
    
    Don't build virtio-mem if access to /dev/mem cannot be restricticted -- if
    we have CONFIG_DEVMEM=y but CONFIG_STRICT_DEVMEM is not set.
    
    Link: https://lkml.kernel.org/r/20210920142856.17758-4-david@redhat.com
    Signed-off-by: David Hildenbrand <david@redhat.com>
    Reviewed-by: Dan Williams <dan.j.williams@intel.com>
    Acked-by: Michael S. Tsirkin <mst@redhat.com>
    Cc: Andy Shevchenko <andy.shevchenko@gmail.com>
    Cc: Arnd Bergmann <arnd@arndb.de>
    Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Cc: Hanjun Guo <guohanjun@huawei.com>
    Cc: Jason Wang <jasowang@redhat.com>
    Cc: "Rafael J. Wysocki" <rafael.j.wysocki@intel.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
    davidhildenbrand authored and sfrothwell committed Oct 15, 2021
  12. kernel/resource: disallow access to exclusive system RAM regions

    virtio-mem dynamically exposes memory inside a device memory region as
    system RAM to Linux, coordinating with the hypervisor which parts are
    actually "plugged" and consequently usable/accessible.  On the one hand,
    the virtio-mem driver adds/removes whole memory blocks, creating/removing
    busy IORESOURCE_SYSTEM_RAM resources, on the other hand, it logically
    (un)plugs memory inside added memory blocks, dynamically either exposing
    them to the buddy or hiding them from the buddy and marking them
    PG_offline.
    
    In contrast to physical devices, like a DIMM, the virtio-mem driver is
    required to actually make use of any of the device-provided memory,
    because it performs the handshake with the hypervisor.  virtio-mem memory
    cannot simply be access via /dev/mem without a driver.
    
    There is no safe way to:
    a) Access plugged memory blocks via /dev/mem, as they might contain
       unplugged holes or might get silently unplugged by the virtio-mem
       driver and consequently turned inaccessible.
    b) Access unplugged memory blocks via /dev/mem because the virtio-mem
       driver is required to make them actually accessible first.
    
    The virtio-spec states that unplugged memory blocks MUST NOT be written,
    and only selected unplugged memory blocks MAY be read.  We want to make
    sure, this is the case in sane environments -- where the virtio-mem driver
    was loaded.
    
    We want to make sure that in a sane environment, nobody "accidentially"
    accesses unplugged memory inside the device managed region.  For example,
    a user might spot a memory region in /proc/iomem and try accessing it via
    /dev/mem via gdb or dumping it via something else.  By the time the mmap()
    happens, the memory might already have been removed by the virtio-mem
    driver silently: the mmap() would succeeed and user space might
    accidentially access unplugged memory.
    
    So once the driver was loaded and detected the device along the
    device-managed region, we just want to disallow any access via /dev/mem to
    it.
    
    In an ideal world, we would mark the whole region as busy ("owned by a
    driver") and exclude it; however, that would be wrong, as we don't really
    have actual system RAM at these ranges added to Linux ("busy system RAM").
    Instead, we want to mark such ranges as "not actual busy system RAM but
    still soft-reserved and prepared by a driver for future use."
    
    Let's teach iomem_is_exclusive() to reject access to any range with
    "IORESOURCE_SYSTEM_RAM | IORESOURCE_EXCLUSIVE", even if not busy and even
    if "iomem=relaxed" is set.  Introduce EXCLUSIVE_SYSTEM_RAM to make it
    easier for applicable drivers to depend on this setting in their Kconfig.
    
    For now, there are no applicable ranges and we'll modify virtio-mem next
    to properly set IORESOURCE_EXCLUSIVE on the parent resource container it
    creates to contain all actual busy system RAM added via
    add_memory_driver_managed().
    
    Link: https://lkml.kernel.org/r/20210920142856.17758-3-david@redhat.com
    Signed-off-by: David Hildenbrand <david@redhat.com>
    Reviewed-by: Dan Williams <dan.j.williams@intel.com>
    Cc: Andy Shevchenko <andy.shevchenko@gmail.com>
    Cc: Arnd Bergmann <arnd@arndb.de>
    Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Cc: Hanjun Guo <guohanjun@huawei.com>
    Cc: Jason Wang <jasowang@redhat.com>
    Cc: "Michael S. Tsirkin" <mst@redhat.com>
    Cc: "Rafael J. Wysocki" <rafael.j.wysocki@intel.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
    davidhildenbrand authored and sfrothwell committed Oct 15, 2021
  13. kernel/resource: clean up and optimize iomem_is_exclusive()

    Patch series "virtio-mem: disallow mapping virtio-mem memory via /dev/mem", v5.
    
    Let's add the basic infrastructure to exclude some physical memory regions
    marked as "IORESOURCE_SYSTEM_RAM" completely from /dev/mem access, even
    though they are not marked IORESOURCE_BUSY and even though "iomem=relaxed"
    is set.  Resource IORESOURCE_EXCLUSIVE for that purpose instead of adding
    new flags to express something similar to "soft-busy" or "not busy yet,
    but already prepared by a driver and not to be mapped by user space".
    
    Use it for virtio-mem, to disallow mapping any virtio-mem memory via
    /dev/mem to user space after the virtio-mem driver was loaded.
    
    This patch (of 3):
    
    We end up traversing subtrees of ranges we are not interested in; let's
    optimize this case, skipping such subtrees, cleaning up the function a
    bit.
    
    For example, in the following configuration (/proc/iomem):
    
    00000000-00000fff : Reserved
    00001000-00057fff : System RAM
    00058000-00058fff : Reserved
    00059000-0009cfff : System RAM
    0009d000-000fffff : Reserved
       000a0000-000bffff : PCI Bus 0000:00
       000c0000-000c3fff : PCI Bus 0000:00
       000c4000-000c7fff : PCI Bus 0000:00
       000c8000-000cbfff : PCI Bus 0000:00
       000cc000-000cffff : PCI Bus 0000:00
       000d0000-000d3fff : PCI Bus 0000:00
       000d4000-000d7fff : PCI Bus 0000:00
       000d8000-000dbfff : PCI Bus 0000:00
       000dc000-000dffff : PCI Bus 0000:00
       000e0000-000e3fff : PCI Bus 0000:00
       000e4000-000e7fff : PCI Bus 0000:00
       000e8000-000ebfff : PCI Bus 0000:00
       000ec000-000effff : PCI Bus 0000:00
       000f0000-000fffff : PCI Bus 0000:00
         000f0000-000fffff : System ROM
    00100000-3fffffff : System RAM
    40000000-403fffff : Reserved
       40000000-403fffff : pnp 00:00
    40400000-80a79fff : System RAM
    ...
    
    We don't have to look at any children of "0009d000-000fffff : Reserved" if
    we can just skip these 15 items directly because the parent range is not
    of interest.
    
    Link: https://lkml.kernel.org/r/20210920142856.17758-1-david@redhat.com
    Link: https://lkml.kernel.org/r/20210920142856.17758-2-david@redhat.com
    Signed-off-by: David Hildenbrand <david@redhat.com>
    Reviewed-by: Dan Williams <dan.j.williams@intel.com>
    Cc: Arnd Bergmann <arnd@arndb.de>
    Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Cc: "Michael S. Tsirkin" <mst@redhat.com>
    Cc: Jason Wang <jasowang@redhat.com>
    Cc: "Rafael J. Wysocki" <rafael.j.wysocki@intel.com>
    Cc: Hanjun Guo <guohanjun@huawei.com>
    Cc: Andy Shevchenko <andy.shevchenko@gmail.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
    davidhildenbrand authored and sfrothwell committed Oct 15, 2021
  14. kcov: replace local_irq_save() with a local_lock_t

    The kcov code mixes local_irq_save() and spin_lock() in
    kcov_remote_{start|end}().  This creates a warning on PREEMPT_RT because
    local_irq_save() disables interrupts and spin_lock_t is turned into a
    sleeping lock which can not be acquired in a section with disabled
    interrupts.
    
    The kcov_remote_lock is used to synchronize the access to the hash-list
    kcov_remote_map.  The local_irq_save() block protects access to the
    per-CPU data kcov_percpu_data.
    
    There is no compelling reason to change the lock type to raw_spin_lock_t
    to make it work with local_irq_save().  Changing it would require to move
    memory allocation (in kcov_remote_add()) and deallocation outside of the
    locked section.
    
    Adding an unlimited amount of entries to the hashlist will increase the
    IRQ-off time during lookup.  It could be argued that this is debug code
    and the latency does not matter.  There is however no need to do so and it
    would allow to use this facility in an RT enabled build.
    
    Using a local_lock_t instead of local_irq_save() has the befit of adding a
    protection scope within the source which makes it obvious what is
    protected.  On a !PREEMPT_RT && !LOCKDEP build the local_lock_irqsave()
    maps directly to local_irq_save() so there is overhead at runtime.
    
    Replace the local_irq_save() section with a local_lock_t.
    
    Link: https://lkml.kernel.org/r/20210923164741.1859522-6-bigeasy@linutronix.de
    Link: https://lore.kernel.org/r/20210830172627.267989-6-bigeasy@linutronix.de
    Reported-by: Clark Williams <williams@redhat.com>
    Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
    Acked-by: Dmitry Vyukov <dvyukov@google.com>
    Acked-by: Marco Elver <elver@google.com>
    Tested-by: Marco Elver <elver@google.com>
    Reviewed-by: Andrey Konovalov <andreyknvl@gmail.com>
    Cc: Steven Rostedt <rostedt@goodmis.org>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
    Sebastian Andrzej Siewior authored and sfrothwell committed Oct 15, 2021
  15. kcov: avoid enable+disable interrupts if !in_task()

    kcov_remote_start() may need to allocate memory in the in_task() case
    (otherwise per-CPU memory has been pre-allocated) and therefore requires
    enabled interrupts.
    
    The interrupts are enabled before checking if the allocation is required
    so if no allocation is required then the interrupts are needlessly enabled
    and disabled again.
    
    Enable interrupts only if memory allocation is performed.
    
    Link: https://lkml.kernel.org/r/20210923164741.1859522-5-bigeasy@linutronix.de
    Link: https://lore.kernel.org/r/20210830172627.267989-5-bigeasy@linutronix.de
    Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
    Acked-by: Dmitry Vyukov <dvyukov@google.com>
    Acked-by: Marco Elver <elver@google.com>
    Tested-by: Marco Elver <elver@google.com>
    Reviewed-by: Andrey Konovalov <andreyknvl@gmail.com>
    Cc: Clark Williams <williams@redhat.com>
    Cc: Steven Rostedt <rostedt@goodmis.org>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
    Sebastian Andrzej Siewior authored and sfrothwell committed Oct 15, 2021
  16. kcov: allocate per-CPU memory on the relevant node

    During boot kcov allocates per-CPU memory which is used later if remote/
    softirq processing is enabled.
    
    Allocate the per-CPU memory on the CPU local node to avoid cross node
    memory access.
    
    Link: https://lkml.kernel.org/r/20210923164741.1859522-4-bigeasy@linutronix.de
    Link: https://lore.kernel.org/r/20210830172627.267989-4-bigeasy@linutronix.de
    Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
    Acked-by: Dmitry Vyukov <dvyukov@google.com>
    Acked-by: Marco Elver <elver@google.com>
    Tested-by: Marco Elver <elver@google.com>
    Reviewed-by: Andrey Konovalov <andreyknvl@gmail.com>
    Cc: Clark Williams <williams@redhat.com>
    Cc: Steven Rostedt <rostedt@goodmis.org>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
    Sebastian Andrzej Siewior authored and sfrothwell committed Oct 15, 2021
  17. Documentation/kcov: define `ip' in the example

    The example code uses the variable `ip' but never declares it.
    
    Declare `ip' as a 64bit variable which is the same type as the array
    from which it loads its value.
    
    Link: https://lkml.kernel.org/r/20210923164741.1859522-3-bigeasy@linutronix.de
    Link: https://lore.kernel.org/r/20210830172627.267989-3-bigeasy@linutronix.de
    Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
    Acked-by: Dmitry Vyukov <dvyukov@google.com>
    Acked-by: Marco Elver <elver@google.com>
    Tested-by: Marco Elver <elver@google.com>
    Reviewed-by: Andrey Konovalov <andreyknvl@gmail.com>
    Cc: Clark Williams <williams@redhat.com>
    Cc: Steven Rostedt <rostedt@goodmis.org>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
    Sebastian Andrzej Siewior authored and sfrothwell committed Oct 15, 2021
  18. Documentation/kcov: include types.h in the example

    Patch series "kcov: PREEMPT_RT fixup + misc", v2.
    
    The last patch in series is follow-up to address the PREEMPT_RT issue
    within in kcov reported by Clark [1].  Patches 1-3 are smaller things that
    I noticed while staring at it.  Patch 4 is small change which makes
    replacement in #5 simpler / more obvious.
    
    [1] https://lkml.kernel.org/r/20210809155909.333073de@theseus.lan
    
    This patch (of 5):
    
    The first example code has includes at the top, the following two
    example share that part. The last example (remote coverage collection)
    requires the linux/types.h header file due its __aligned_u64 usage.
    
    Add the linux/types.h to the top most example and a comment that the
    header files from above are required as it is done in the second
    example.
    
    Link: https://lkml.kernel.org/r/20210923164741.1859522-1-bigeasy@linutronix.de
    Link: https://lore.kernel.org/r/20210830172627.267989-2-bigeasy@linutronix.de
    Link: https://lkml.kernel.org/r/20210923164741.1859522-2-bigeasy@linutronix.de
    Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
    Acked-by: Dmitry Vyukov <dvyukov@google.com>
    Acked-by: Marco Elver <elver@google.com>
    Tested-by: Marco Elver <elver@google.com>
    Reviewed-by: Andrey Konovalov <andreyknvl@gmail.com>
    Cc: Steven Rostedt <rostedt@goodmis.org>
    Cc: Clark Williams <williams@redhat.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
    Sebastian Andrzej Siewior authored and sfrothwell committed Oct 15, 2021
  19. sysv: use BUILD_BUG_ON instead of runtime check

    There were runtime checks about sizes of struct v7_super_block and struct
    sysv_inode.  If one of these checks fail the kernel will panic.  Since
    these values are known at compile time let's use BUILD_BUG_ON(), because
    it's a standard mechanism for validation checking at build time
    
    Link: https://lkml.kernel.org/r/20210813123020.22971-1-paskripkin@gmail.com
    Fixes: 1da177e ("Linux-2.6.12-rc2")
    Signed-off-by: Pavel Skripkin <paskripkin@gmail.com>
    Cc: Christoph Hellwig <hch@lst.de>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
    pskrgag authored and sfrothwell committed Oct 15, 2021
  20. kernel/fork.c: unshare(): use swap() to make code cleaner

    Use swap() instead of reimplementing it.
    
    Link: https://lkml.kernel.org/r/20210909022046.8151-1-ran.xiaokai@zte.com.cn
    Signed-off-by: Ran Xiaokai <ran.xiaokai@zte.com.cn>
    Cc: Gabriel Krisman Bertazi <krisman@collabora.com>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Eric W. Biederman <ebiederm@xmission.com>
    Cc: Jens Axboe <axboe@kernel.dk>
    Cc: Alexey Gladkov <legion@kernel.org>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
    ranxiaokai authored and sfrothwell committed Oct 15, 2021
  21. seq_file: move seq_escape() to a header

    Move seq_escape() to the header as inliner, for a small kernel text size
    reduction.
    
    Link: https://lkml.kernel.org/r/20211001122917.67228-1-andriy.shevchenko@linux.intel.com
    Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
    andy-shev authored and sfrothwell committed Oct 15, 2021
  22. hfsplus: fix out-of-bounds warnings in __hfsplus_setxattr

    Fix the following out-of-bounds warnings by enclosing structure members
    file and finder into new struct info:
    
    fs/hfsplus/xattr.c:300:5: warning: 'memcpy' offset [65, 80] from the object at 'entry' is out of the bounds of referenced subobject 'user_info' with type 'struct DInfo' at offset 48 [-Warray-bounds]
    fs/hfsplus/xattr.c:313:5: warning: 'memcpy' offset [65, 80] from the object at 'entry' is out of the bounds of referenced subobject 'user_info' with type 'struct FInfo' at offset 48 [-Warray-bounds]
    
    Refactor the code by making it more "structured."
    
    Also, this helps with the ongoing efforts to enable -Warray-bounds and
    makes the code clearer and avoid confusing the compiler.
    
    Matthew said:
    
    : The offending line is this:
    :
    : -                               memcpy(&entry.file.user_info, value,
    : +                               memcpy(&entry.file.info, value,
    :                                                 file_finderinfo_len);
    :
    : what it's trying to do is copy two structs which are adjacent to each
    : other in a single call to memcpy().  gcc legitimately complains that
    : the memcpy to this struct overruns the bounds of the struct.  What
    : Gustavo has done here is introduce a new struct that contains the two
    : structs, and now gcc is happy that the memcpy doesn't overrun the
    : length of this containing struct.
    
    Link: KSPP#109
    Link: https://lkml.kernel.org/r/20210330145226.GA207011@embeddedor
    Signed-off-by: Gustavo A. R. Silva <gustavoars@kernel.org>
    Reported-by: kernel test robot <lkp@intel.com>
    Cc: Matthew Wilcox <willy@infradead.org>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
    GustavoARSilva authored and sfrothwell committed Oct 15, 2021
  23. hfs/hfsplus: use WARN_ON for sanity check

    gcc warns about a couple of instances in which a sanity check exists but
    the author wasn't sure how to react to it failing, which makes it look
    like a possible bug:
    
    fs/hfsplus/inode.c: In function 'hfsplus_cat_read_inode':
    fs/hfsplus/inode.c:503:37: error: suggest braces around empty body in an 'if' statement [-Werror=empty-body]
      503 |                         /* panic? */;
          |                                     ^
    fs/hfsplus/inode.c:524:37: error: suggest braces around empty body in an 'if' statement [-Werror=empty-body]
      524 |                         /* panic? */;
          |                                     ^
    fs/hfsplus/inode.c: In function 'hfsplus_cat_write_inode':
    fs/hfsplus/inode.c:582:37: error: suggest braces around empty body in an 'if' statement [-Werror=empty-body]
      582 |                         /* panic? */;
          |                                     ^
    fs/hfsplus/inode.c:608:37: error: suggest braces around empty body in an 'if' statement [-Werror=empty-body]
      608 |                         /* panic? */;
          |                                     ^
    fs/hfs/inode.c: In function 'hfs_write_inode':
    fs/hfs/inode.c:464:37: error: suggest braces around empty body in an 'if' statement [-Werror=empty-body]
      464 |                         /* panic? */;
          |                                     ^
    fs/hfs/inode.c:485:37: error: suggest braces around empty body in an 'if' statement [-Werror=empty-body]
      485 |                         /* panic? */;
          |                                     ^
    
    panic() is probably not the correct choice here, but a WARN_ON
    seems appropriate and avoids the compile-time warning.
    
    Link: https://lkml.kernel.org/r/20210927102149.1809384-1-arnd@kernel.org
    Link: https://lore.kernel.org/all/20210322223249.2632268-1-arnd@kernel.org/
    Signed-off-by: Arnd Bergmann <arnd@arndb.de>
    Reviewed-by: Christian Brauner <christian.brauner@ubuntu.com>
    Cc: Alexander Viro <viro@zeniv.linux.org.uk>
    Cc: Christian Brauner <christian.brauner@ubuntu.com>
    Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Cc: Jan Kara <jack@suse.cz>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
    arndb authored and sfrothwell committed Oct 15, 2021
  24. coda: bump module version to 7.2

    Helps with tracking which patches have been propagated upstream and if
    users are running the latest known version.
    
    Link: https://lkml.kernel.org/r/20210908140308.18491-10-jaharkes@cs.cmu.edu
    Signed-off-by: Jan Harkes <jaharkes@cs.cmu.edu>
    Cc: Alex Shi <alex.shi@linux.alibaba.com>
    Cc: Jing Yangyang <jing.yangyang@zte.com.cn>
    Cc: Xin Tan <tanxin.ctf@gmail.com>
    Cc: Xiyu Yang <xiyuyang19@fudan.edu.cn>
    Cc: Zeal Robot <zealci@zte.com.cn>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
    jaharkes authored and sfrothwell committed Oct 15, 2021
  25. coda: use vmemdup_user to replace the open code

    vmemdup_user is better than duplicating its implementation, So just
    replace the open code.
    
    ./fs/coda/psdev.c:125:10-18:WARNING:opportunity for vmemdup_user
    
    The issue is detected with the help of Coccinelle.
    
    Link: https://lkml.kernel.org/r/20210908140308.18491-9-jaharkes@cs.cmu.edu
    Reported-by: Zeal Robot <zealci@zte.com.cn>
    Signed-off-by: Jing Yangyang <jing.yangyang@zte.com.cn>
    Signed-off-by: Jan Harkes <jaharkes@cs.cmu.edu>
    Cc: Alex Shi <alex.shi@linux.alibaba.com>
    Cc: Xin Tan <tanxin.ctf@gmail.com>
    Cc: Xiyu Yang <xiyuyang19@fudan.edu.cn>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
    Jing Yangyang authored and sfrothwell committed Oct 15, 2021
  26. coda: convert from atomic_t to refcount_t on coda_vm_ops->refcnt

    refcount_t type and corresponding API can protect refcounters from
    accidental underflow and overflow and further use-after-free situations.
    
    Link: https://lkml.kernel.org/r/20210908140308.18491-8-jaharkes@cs.cmu.edu
    Signed-off-by: Xiyu Yang <xiyuyang19@fudan.edu.cn>
    Signed-off-by: Xin Tan <tanxin.ctf@gmail.com>
    Signed-off-by: Jan Harkes <jaharkes@cs.cmu.edu>
    Cc: Alex Shi <alex.shi@linux.alibaba.com>
    Cc: Jing Yangyang <jing.yangyang@zte.com.cn>
    Cc: Zeal Robot <zealci@zte.com.cn>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
    sherlly authored and sfrothwell committed Oct 15, 2021
  27. coda: avoid doing bad things on inode type changes during revalidation

    When Coda discovers an inconsistent object, it turns it into a symlink.
    However we can't just follow this change in the kernel on an existing file
    or directory inode that may still have references.
    
    This patch removes the inconsistent inode from the inode hash and
    allocates a new inode for the symlink object.
    
    Link: https://lkml.kernel.org/r/20210908140308.18491-7-jaharkes@cs.cmu.edu
    Signed-off-by: Jan Harkes <jaharkes@cs.cmu.edu>
    Cc: Alex Shi <alex.shi@linux.alibaba.com>
    Cc: Jing Yangyang <jing.yangyang@zte.com.cn>
    Cc: Xin Tan <tanxin.ctf@gmail.com>
    Cc: Xiyu Yang <xiyuyang19@fudan.edu.cn>
    Cc: Zeal Robot <zealci@zte.com.cn>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
    jaharkes authored and sfrothwell committed Oct 15, 2021
  28. coda: avoid hidden code duplication in rename

    We were actually fixing up the directory mtime in both branches after the
    negative dentry test, it was just that one branch was only flagging the
    directory inodes to refresh their attributes while the other branch used
    the optional optimization to set mtime to the current time and not go back
    to the Coda client.
    
    Link: https://lkml.kernel.org/r/20210908140308.18491-6-jaharkes@cs.cmu.edu
    Signed-off-by: Jan Harkes <jaharkes@cs.cmu.edu>
    Cc: Alex Shi <alex.shi@linux.alibaba.com>
    Cc: Jing Yangyang <jing.yangyang@zte.com.cn>
    Cc: Xin Tan <tanxin.ctf@gmail.com>
    Cc: Xiyu Yang <xiyuyang19@fudan.edu.cn>
    Cc: Zeal Robot <zealci@zte.com.cn>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
    jaharkes authored and sfrothwell committed Oct 15, 2021
  29. coda: avoid flagging NULL inodes

    Somehow we hit a negative dentry in coda_rename even after checking with
    d_really_is_positive.  Maybe something raced and turned the new_dentry
    negative while we were fixing up directory link counts.
    
    Link: https://lkml.kernel.org/r/20210908140308.18491-5-jaharkes@cs.cmu.edu
    Signed-off-by: Jan Harkes <jaharkes@cs.cmu.edu>
    Cc: Alex Shi <alex.shi@linux.alibaba.com>
    Cc: Jing Yangyang <jing.yangyang@zte.com.cn>
    Cc: Xin Tan <tanxin.ctf@gmail.com>
    Cc: Xiyu Yang <xiyuyang19@fudan.edu.cn>
    Cc: Zeal Robot <zealci@zte.com.cn>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
    jaharkes authored and sfrothwell committed Oct 15, 2021
  30. coda: remove err which no one care

    No one care 'err' in func coda_release, so better remove it.
    
    Link: https://lkml.kernel.org/r/20210908140308.18491-4-jaharkes@cs.cmu.edu
    Signed-off-by: Alex Shi <alex.shi@linux.alibaba.com>
    Signed-off-by: Jan Harkes <jaharkes@cs.cmu.edu>
    Cc: Jing Yangyang <jing.yangyang@zte.com.cn>
    Cc: Xin Tan <tanxin.ctf@gmail.com>
    Cc: Xiyu Yang <xiyuyang19@fudan.edu.cn>
    Cc: Zeal Robot <zealci@zte.com.cn>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
    alexshi authored and sfrothwell committed Oct 15, 2021
  31. coda: check for async upcall request using local state

    Originally flagged by Smatch because the code implicitly assumed outSize
    is not NULL for non-async upcalls because of a flag that was (not) set in
    req->uc_flags.
    
    However req->uc_flags field is in shared state and although the current
    code will not allow it to be changed before the async request check the
    code is more robust when it tests against the local outSize variable.
    
    Link: https://lkml.kernel.org/r/20210908140308.18491-3-jaharkes@cs.cmu.edu
    Signed-off-by: Jan Harkes <jaharkes@cs.cmu.edu>
    Cc: Alex Shi <alex.shi@linux.alibaba.com>
    Cc: Jing Yangyang <jing.yangyang@zte.com.cn>
    Cc: Xin Tan <tanxin.ctf@gmail.com>
    Cc: Xiyu Yang <xiyuyang19@fudan.edu.cn>
    Cc: Zeal Robot <zealci@zte.com.cn>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
    jaharkes authored and sfrothwell committed Oct 15, 2021
  32. coda: avoid NULL pointer dereference from a bad inode

    Patch series "Coda updates for -next".
    
    The following patch series contains some fixes for the Coda kernel module
    I've had sitting around and were tested extensively in a development
    version of the Coda kernel module that lives outside of the main kernel.
    
    This patch (of 9):
    
    Avoid accessing coda_inode_info from a dentry with a bad inode.
    
    Link: https://lkml.kernel.org/r/20210908140308.18491-1-jaharkes@cs.cmu.edu
    Link: https://lkml.kernel.org/r/20210908140308.18491-2-jaharkes@cs.cmu.edu
    Signed-off-by: Jan Harkes <jaharkes@cs.cmu.edu>
    Cc: Alex Shi <alex.shi@linux.alibaba.com>
    Cc: Jing Yangyang <jing.yangyang@zte.com.cn>
    Cc: Xin Tan <tanxin.ctf@gmail.com>
    Cc: Xiyu Yang <xiyuyang19@fudan.edu.cn>
    Cc: Zeal Robot <zealci@zte.com.cn>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
    jaharkes authored and sfrothwell committed Oct 15, 2021
  33. init/main.c: silence some -Wunused-parameter warnings

    There are a bunch of callbacks with unused arguments, go ahead and silence
    those so "make KCFLAGS=-W init/main.o" is a little quieter.  Here's a
    little sample:
    
    init/main.c:182:43: warning: unused parameter 'str' [-Wunused-parameter]
    static int __init set_reset_devices(char *str)
    
    Link: https://lkml.kernel.org/r/20210519162341.1275452-1-ahalaney@redhat.com
    Signed-off-by: Andrew Halaney <ahalaney@redhat.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
    ahalaney authored and sfrothwell committed Oct 15, 2021
Older