Skip to content
Permalink
Kumar-Thangave…
Switch branches/tags

Commits on Nov 10, 2021

  1. Add payload to be 32-bit aligned to fix dropped packets

    Update NC-SI command handler (both standard and OEM) to take into
    account of payload paddings in allocating skb (in case of payload
    size is not 32-bit aligned).
    
    The checksum field follows payload field, without taking payload
    padding into account can cause checksum being truncated, leading to
    dropped packets.
    
    Signed-off-by: Kumar Thangavel <thangavel.k@hcl.com>
    Acked-by: Samuel Mendoza-Jonas <sam@mendozajonas.com>
    Reviewed-by: Paul Menzel <pmenzel@molgen.mpg.de>
    Kumar Thangavel authored and intel-lab-lkp committed Nov 10, 2021

Commits on Nov 9, 2021

  1. Merge tag 'for-5.16/drivers-2021-11-09' of git://git.kernel.dk/linux-…

    …block
    
    Pull more block driver updates from Jens Axboe:
    
     - Last series adding error handling support for add_disk() in drivers.
       After this one, and once the SCSI side has been merged, we can
       finally annotate add_disk() as must_check. (Luis)
    
     - bcache fixes (Coly)
    
     - zram fixes (Ming)
    
     - ataflop locking fix (Tetsuo)
    
     - nbd fixes (Ye, Yu)
    
     - MD merge via Song
          - Cleanup (Yang)
          - sysfs fix (Guoqing)
    
     - Misc fixes (Geert, Wu, luo)
    
    * tag 'for-5.16/drivers-2021-11-09' of git://git.kernel.dk/linux-block: (34 commits)
      bcache: Revert "bcache: use bvec_virt"
      ataflop: Add missing semicolon to return statement
      floppy: address add_disk() error handling on probe
      ataflop: address add_disk() error handling on probe
      block: update __register_blkdev() probe documentation
      ataflop: remove ataflop_probe_lock mutex
      mtd/ubi/block: add error handling support for add_disk()
      block/sunvdc: add error handling support for add_disk()
      z2ram: add error handling support for add_disk()
      nvdimm/pmem: use add_disk() error handling
      nvdimm/pmem: cleanup the disk if pmem_release_disk() is yet assigned
      nvdimm/blk: add error handling support for add_disk()
      nvdimm/blk: avoid calling del_gendisk() on early failures
      nvdimm/btt: add error handling support for add_disk()
      nvdimm/btt: use goto error labels on btt_blk_init()
      loop: Remove duplicate assignments
      drbd: Fix double free problem in drbd_create_device
      nvdimm/btt: do not call del_gendisk() if not needed
      bcache: fix use-after-free problem in bcache_device_free()
      zram: replace fsync_bdev with sync_blockdev
      ...
    torvalds committed Nov 9, 2021
  2. Merge tag 'for-5.16/block-2021-11-09' of git://git.kernel.dk/linux-block

    Pull block fixes from Jens Axboe:
    
     - Set of fixes for the batched tag allocation (Ming, me)
    
     - add_disk() error handling fix (Luis)
    
     - Nested queue quiesce fixes (Ming)
    
     - Shared tags init error handling fix (Ye)
    
     - Misc cleanups (Jean, Ming, me)
    
    * tag 'for-5.16/block-2021-11-09' of git://git.kernel.dk/linux-block:
      nvme: wait until quiesce is done
      scsi: make sure that request queue queiesce and unquiesce balanced
      scsi: avoid to quiesce sdev->request_queue two times
      blk-mq: add one API for waiting until quiesce is done
      blk-mq: don't free tags if the tag_set is used by other device in queue initialztion
      block: fix device_add_disk() kobject_create_and_add() error handling
      block: ensure cached plug request matches the current queue
      block: move queue enter logic into blk_mq_submit_bio()
      block: make bio_queue_enter() fast-path available inline
      block: split request allocation components into helpers
      block: have plug stored requests hold references to the queue
      blk-mq: update hctx->nr_active in blk_mq_end_request_batch()
      blk-mq: add RQF_ELV debug entry
      blk-mq: only try to run plug merge if request has same queue with incoming bio
      block: move RQF_ELV setting into allocators
      dm: don't stop request queue after the dm device is suspended
      block: replace always false argument with 'false'
      block: assign correct tag before doing prefetch of request
      blk-mq: fix redundant check of !e expression
    torvalds committed Nov 9, 2021
  3. Merge tag 'for-5.16/bdev-size-2021-11-09' of git://git.kernel.dk/linu…

    …x-block
    
    Pull more bdev size updates from Jens Axboe:
     "Two followup changes for the bdev-size series from this merge window:
    
       - Add loff_t cast to bdev_nr_bytes() (Christoph)
    
       - Use bdev_nr_bytes() consistently for the block parts at least (me)"
    
    * tag 'for-5.16/bdev-size-2021-11-09' of git://git.kernel.dk/linux-block:
      block: use new bdev_nr_bytes() helper for blkdev_{read,write}_iter()
      block: add a loff_t cast to bdev_nr_bytes
    torvalds committed Nov 9, 2021
  4. Merge tag 'io_uring-5.16-2021-11-09' of git://git.kernel.dk/linux-block

    Pull io_uring fixes from Jens Axboe:
     "Minor fixes that should go into the 5.16 release:
    
       - Fix max worker setting not working correctly on NUMA (Beld)
    
       - Correctly return current setting for max workers if zeroes are
         passed in (Pavel)
    
       - io_queue_sqe_arm_apoll() cleanup, as identified during the initial
         merge (Pavel)
    
       - Misc fixes (Nghia, me)"
    
    * tag 'io_uring-5.16-2021-11-09' of git://git.kernel.dk/linux-block:
      io_uring: honour zeroes as io-wq worker limits
      io_uring: remove dead 'sqe' store
      io_uring: remove redundant assignment to ret in io_register_iowq_max_workers()
      io-wq: fix max-workers not correctly set on multi-node system
      io_uring: clean up io_queue_sqe_arm_apoll
    torvalds committed Nov 9, 2021
  5. Merge tag 'for-5.16/dm-changes' of git://git.kernel.org/pub/scm/linux…

    …/kernel/git/device-mapper/linux-dm
    
    Pull device mapper updates from Mike Snitzer:
    
     - Add DM core support for emitting audit events through the audit
       subsystem. Also enhance both the integrity and crypt targets to emit
       events to via dm-audit.
    
     - Various other simple code improvements and cleanups.
    
    * tag 'for-5.16/dm-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm:
      dm table: log table creation error code
      dm: make workqueue names device-specific
      dm writecache: Make use of the helper macro kthread_run()
      dm crypt: Make use of the helper macro kthread_run()
      dm verity: use bvec_kmap_local in verity_for_bv_block
      dm log writes: use memcpy_from_bvec in log_writes_map
      dm integrity: use bvec_kmap_local in __journal_read_write
      dm integrity: use bvec_kmap_local in integrity_metadata
      dm: add add_disk() error handling
      dm: Remove redundant flush_workqueue() calls
      dm crypt: log aead integrity violations to audit subsystem
      dm integrity: log audit events for dm-integrity target
      dm: introduce audit event module for device mapper
    torvalds committed Nov 9, 2021
  6. Merge tag 'dma-mapping-5.16' of git://git.infradead.org/users/hch/dma…

    …-mapping
    
    Pull dma-mapping updates from Christoph Hellwig:
     "Just a small set of changes this time. The request dma_direct_alloc
      cleanups are still under review and haven't made the cut.
    
      Summary:
    
       - convert sparc32 to the generic dma-direct code
    
       - use bitmap_zalloc (Christophe JAILLET)"
    
    * tag 'dma-mapping-5.16' of git://git.infradead.org/users/hch/dma-mapping:
      dma-mapping: use 'bitmap_zalloc()' when applicable
      sparc32: use DMA_DIRECT_REMAP
      sparc32: remove dma_make_coherent
      sparc32: remove the call to dma_make_coherent in arch_dma_free
    torvalds committed Nov 9, 2021
  7. Merge tag 'ovl-update-5.16' of git://git.kernel.org/pub/scm/linux/ker…

    …nel/git/mszeredi/vfs
    
    Pull overlayfs updates from Miklos Szeredi:
    
     - Fix a regression introduced in the last cycle
    
     - Fix a use-after-free in the AIO path
    
     - Fix a bogus warning reported by syzbot
    
    * tag 'ovl-update-5.16' of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/vfs:
      ovl: fix filattr copy-up failure
      ovl: fix warning in ovl_create_real()
      ovl: fix use after free in struct ovl_aio_req
    torvalds committed Nov 9, 2021
  8. Merge tag 'fuse-update-5.16' of git://git.kernel.org/pub/scm/linux/ke…

    …rnel/git/mszeredi/fuse
    
    Pull fuse updates from Miklos Szeredi:
    
     - Fix a possible of deadlock in case inode writeback is in progress
       during dentry reclaim
    
     - Fix a crash in case of page stealing
    
     - Selectively invalidate cached attributes, possibly improving
       performance
    
     - Allow filesystems to disable data flushing from ->flush()
    
     - Misc fixes and cleanups
    
    * tag 'fuse-update-5.16' of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/fuse: (23 commits)
      fuse: fix page stealing
      virtiofs: use strscpy for copying the queue name
      fuse: add FOPEN_NOFLUSH
      fuse: only update necessary attributes
      fuse: take cache_mask into account in getattr
      fuse: add cache_mask
      fuse: move reverting attributes to fuse_change_attributes()
      fuse: simplify local variables holding writeback cache state
      fuse: cleanup code conditional on fc->writeback_cache
      fuse: fix attr version comparison in fuse_read_update_size()
      fuse: always invalidate attributes after writes
      fuse: rename fuse_write_update_size()
      fuse: don't bump attr_version in cached write
      fuse: selective attribute invalidation
      fuse: don't increment nlink in link()
      fuse: decrement nlink on overwriting rename
      fuse: simplify __fuse_write_file_get()
      fuse: move fuse_invalidate_attr() into fuse_update_ctime()
      fuse: delete redundant code
      fuse: use kmap_local_page()
      ...
    torvalds committed Nov 9, 2021
  9. Merge tag 'for-linus-5.16-ofs1' of git://git.kernel.org/pub/scm/linux…

    …/kernel/git/hubcap/linux
    
    Pull orangefs fixes from Mike Marshall:
    
     - fix sb refcount leak when allocate sb info failed (Chenyuan Mi)
    
     - fix error return code of orangefs_revalidate_lookup() (Jia-Ju Bai)
    
     - remove redundant initialization of variable ret (Colin Ian King)
    
    * tag 'for-linus-5.16-ofs1' of git://git.kernel.org/pub/scm/linux/kernel/git/hubcap/linux:
      orangefs: Fix sb refcount leak when allocate sb info failed.
      fs: orangefs: fix error return code of orangefs_revalidate_lookup()
      orangefs: Remove redundant initialization of variable ret
    torvalds committed Nov 9, 2021
  10. Merge tag '9p-for-5.16-rc1' of git://github.com/martinetd/linux

    Pull 9p updates from Dominique Martinet:
     "Fixes, netfs read support and checkpatch rewrite:
    
       - fix syzcaller uninitialized value usage after missing error check
    
       - add module autoloading based on transport name
    
       - convert cached reads to use netfs helpers
    
       - adjust readahead based on transport msize
    
       - and many, many checkpatch.pl warning fixes..."
    
    * tag '9p-for-5.16-rc1' of git://github.com/martinetd/linux:
      9p: fix a bunch of checkpatch warnings
      9p: set readahead and io size according to maxsize
      9p p9mode2perm: remove useless strlcpy and check sscanf return code
      9p v9fs_parse_options: replace simple_strtoul with kstrtouint
      9p: fix file headers
      fs/9p: fix indentation and Add missing a blank line after declaration
      fs/9p: fix warnings found by checkpatch.pl
      9p: fix minor indentation and codestyle
      fs/9p: cleanup: opening brace at the beginning of the next line
      9p: Convert to using the netfs helper lib to do reads and caching
      fscache_cookie_enabled: check cookie is valid before accessing it
      net/9p: autoload transport modules
      9p/net: fix missing error check in p9_check_errors
    torvalds committed Nov 9, 2021
  11. Merge branch 'akpm' (patches from Andrew)

    Merge more updates from Andrew Morton:
     "87 patches.
    
      Subsystems affected by this patch series: mm (pagecache and hugetlb),
      procfs, misc, MAINTAINERS, lib, checkpatch, binfmt, kallsyms, ramfs,
      init, codafs, nilfs2, hfs, crash_dump, signals, seq_file, fork,
      sysvfs, kcov, gdb, resource, selftests, and ipc"
    
    * emailed patches from Andrew Morton <akpm@linux-foundation.org>: (87 commits)
      ipc/ipc_sysctl.c: remove fallback for !CONFIG_PROC_SYSCTL
      ipc: check checkpoint_restore_ns_capable() to modify C/R proc files
      selftests/kselftest/runner/run_one(): allow running non-executable files
      virtio-mem: disallow mapping virtio-mem memory via /dev/mem
      kernel/resource: disallow access to exclusive system RAM regions
      kernel/resource: clean up and optimize iomem_is_exclusive()
      scripts/gdb: handle split debug for vmlinux
      kcov: replace local_irq_save() with a local_lock_t
      kcov: avoid enable+disable interrupts if !in_task()
      kcov: allocate per-CPU memory on the relevant node
      Documentation/kcov: define `ip' in the example
      Documentation/kcov: include types.h in the example
      sysv: use BUILD_BUG_ON instead of runtime check
      kernel/fork.c: unshare(): use swap() to make code cleaner
      seq_file: fix passing wrong private data
      seq_file: move seq_escape() to a header
      signal: remove duplicate include in signal.h
      crash_dump: remove duplicate include in crash_dump.h
      crash_dump: fix boolreturn.cocci warning
      hfs/hfsplus: use WARN_ON for sanity check
      ...
    torvalds committed Nov 9, 2021
  12. 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: Linus Torvalds <torvalds@linux-foundation.org>
    manfred-colorfu authored and torvalds committed Nov 9, 2021
  13. 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.
    
    [akpm@linux-foundation.org: ipc/ipc_sysctl.c needs capability.h for 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: Linus Torvalds <torvalds@linux-foundation.org>
    mclapinski authored and torvalds committed Nov 9, 2021
  14. selftests/kselftest/runner/run_one(): allow running non-executable files

    When running a test program, 'run_one()' checks if the program has the
    execution permission and fails if it doesn't.  However, it's easy to
    mistakenly lose the permissions, as some common tools like 'diff' don't
    support the permission change well[1].  Compared to that, making mistakes
    in the test program's path would only rare, as those are explicitly listed
    in 'TEST_PROGS'.  Therefore, it might make more sense to resolve the
    situation on our own and run the program.
    
    For this reason, this commit makes the test program runner function still
    print the warning message but to try parsing the interpreter of the
    program and to explicitly run it with the interpreter, in this case.
    
    [1] https://lore.kernel.org/mm-commits/YRJisBs9AunccCD4@kroah.com/
    
    Link: https://lkml.kernel.org/r/20210810164534.25902-1-sj38.park@gmail.com
    Signed-off-by: SeongJae Park <sjpark@amazon.de>
    Suggested-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Cc: Shuah Khan <shuah@kernel.org>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    sj-aws authored and torvalds committed Nov 9, 2021
  15. 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: Linus Torvalds <torvalds@linux-foundation.org>
    davidhildenbrand authored and torvalds committed Nov 9, 2021
  16. 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: Linus Torvalds <torvalds@linux-foundation.org>
    davidhildenbrand authored and torvalds committed Nov 9, 2021
  17. 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: Linus Torvalds <torvalds@linux-foundation.org>
    davidhildenbrand authored and torvalds committed Nov 9, 2021
  18. scripts/gdb: handle split debug for vmlinux

    This is related to two previous changes.  Commit dfe4529
    ("scripts/gdb: find vmlinux where it was before") and commit da036ae
    ("scripts/gdb: handle split debug").
    
    Although Chrome OS has been using the debug suffix for modules for a
    while, it has just recently started using it for vmlinux as well.  That
    means we've now got to improve the detection of "vmlinux" to also handle
    that it might end with ".debug".
    
    Link: https://lkml.kernel.org/r/20211028151120.v2.1.Ie6bd5a232f770acd8c9ffae487a02170bad3e963@changeid
    Signed-off-by: Douglas Anderson <dianders@chromium.org>
    Reviewed-by: Stephen Boyd <swboyd@chromium.org>
    Cc: Jan Kiszka <jan.kiszka@siemens.com>
    Cc: Kieran Bingham <kbingham@kernel.org>
    Cc: Johannes Berg <johannes.berg@intel.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    dianders authored and torvalds committed Nov 9, 2021
  19. 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: Linus Torvalds <torvalds@linux-foundation.org>
    Sebastian Andrzej Siewior authored and torvalds committed Nov 9, 2021
  20. 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: Linus Torvalds <torvalds@linux-foundation.org>
    Sebastian Andrzej Siewior authored and torvalds committed Nov 9, 2021
  21. 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: Linus Torvalds <torvalds@linux-foundation.org>
    Sebastian Andrzej Siewior authored and torvalds committed Nov 9, 2021
  22. 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: Linus Torvalds <torvalds@linux-foundation.org>
    Sebastian Andrzej Siewior authored and torvalds committed Nov 9, 2021
  23. 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: Linus Torvalds <torvalds@linux-foundation.org>
    Sebastian Andrzej Siewior authored and torvalds committed Nov 9, 2021
  24. 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: Linus Torvalds <torvalds@linux-foundation.org>
    pskrgag authored and torvalds committed Nov 9, 2021
  25. 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: Linus Torvalds <torvalds@linux-foundation.org>
    ranxiaokai authored and torvalds committed Nov 9, 2021
  26. seq_file: fix passing wrong private data

    DEFINE_PROC_SHOW_ATTRIBUTE() is supposed to be used to define a series
    of functions and variables to register proc file easily. And the users
    can use proc_create_data() to pass their own private data and get it
    via seq->private in the callback. Unfortunately, the proc file system
    use PDE_DATA() to get private data instead of inode->i_private. So fix
    it. Fortunately, there only one user of it which does not pass any
    private data, so this bug does not break any in-tree codes.
    
    Link: https://lkml.kernel.org/r/20211029032638.84884-1-songmuchun@bytedance.com
    Fixes: 97a3253 ("proc: convert everything to "struct proc_ops"")
    Signed-off-by: Muchun Song <songmuchun@bytedance.com>
    Cc: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
    Cc: Stephen Rothwell <sfr@canb.auug.org.au>
    Cc: Florent Revest <revest@chromium.org>
    Cc: Alexey Dobriyan <adobriyan@gmail.com>
    Cc: Christian Brauner <christian.brauner@ubuntu.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Muchun Song authored and torvalds committed Nov 9, 2021
  27. 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: Linus Torvalds <torvalds@linux-foundation.org>
    andy-shev authored and torvalds committed Nov 9, 2021
  28. signal: remove duplicate include in signal.h

    'linux/string.h' included in 'signal.h' is duplicated.
    it's also included at line 7.
    
    Link: https://lkml.kernel.org/r/20211019024934.973008-1-ye.guojin@zte.com.cn
    Signed-off-by: Ye Guojin <ye.guojin@zte.com.cn>
    Reported-by: Zeal Robot <zealci@zte.com.cn>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Ye Guojin authored and torvalds committed Nov 9, 2021
  29. crash_dump: remove duplicate include in crash_dump.h

    In crash_dump.h, header file <linux/pgtable.h> is included twice.  This
    duplication was introduced in commit 65fddcf("mm: reorder includes
    after introduction of linux/pgtable.h") where the order of the header
    files is adjusted, while the old one was not removed.
    
    Clean it up here.
    
    Link: https://lkml.kernel.org/r/20211020090659.1038877-1-ye.guojin@zte.com.cn
    Signed-off-by: Ye Guojin <ye.guojin@zte.com.cn>
    Reported-by: Zeal Robot <zealci@zte.com.cn>
    Acked-by: Baoquan He <bhe@redhat.com>
    Cc: Dave Young <dyoung@redhat.com>
    Cc: Mike Rapoport <rppt@linux.ibm.com>
    Cc: Vivek Goyal <vgoyal@redhat.com>
    Cc: Changcheng Deng <deng.changcheng@zte.com.cn>
    Cc: Simon Horman <horms@kernel.org>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Ye Guojin authored and torvalds committed Nov 9, 2021
  30. crash_dump: fix boolreturn.cocci warning

    ./include/linux/crash_dump.h: 119: 50-51: WARNING: return of 0/1 in
    function 'is_kdump_kernel' with return type bool
    
    Return statements in functions returning bool should use true/false
    instead of 1/0.
    
    Link: https://lkml.kernel.org/r/20211020083905.1037952-1-deng.changcheng@zte.com.cn
    Signed-off-by: Changcheng Deng <deng.changcheng@zte.com.cn>
    Reported-by: Zeal Robot <zealci@zte.com.cn>
    Reviewed-by: Simon Horman <horms@kernel.org>
    Acked-by: Baoquan He <bhe@redhat.com>
    Cc: Dave Young <dyoung@redhat.com>
    Cc: Mike Rapoport <rppt@linux.ibm.com>
    Cc: Vivek Goyal <vgoyal@redhat.com>
    Cc: Ye Guojin <ye.guojin@zte.com.cn>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Changcheng Deng authored and torvalds committed Nov 9, 2021
  31. 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: Linus Torvalds <torvalds@linux-foundation.org>
    arndb authored and torvalds committed Nov 9, 2021
  32. nilfs2: remove filenames from file comments

    Remove filenames that are not particularly useful in file comments, and
    suppress checkpatch warnings
    
      WARNING: It's generally not useful to have the filename in the file
    
    Link: https://lkml.kernel.org/r/1635151862-11547-3-git-send-email-konishi.ryusuke@gmail.com
    Signed-off-by: Ryusuke Konishi <konishi.ryusuke@gmail.com>
    Cc: Qing Wang <wangqing@vivo.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    konis authored and torvalds committed Nov 9, 2021
  33. nilfs2: replace snprintf in show functions with sysfs_emit

    Patch series "nilfs2 updates".
    
    This patch (of 2):
    
    coccicheck complains about the use of snprintf() in sysfs show functions.
    
    Fix the coccicheck warning:
    
      WARNING: use scnprintf or sprintf.
    
    Use sysfs_emit instead of scnprintf or sprintf makes more sense.
    
    Link: https://lkml.kernel.org/r/1635151862-11547-1-git-send-email-konishi.ryusuke@gmail.com
    Link: https://lkml.kernel.org/r/1634095759-4625-1-git-send-email-wangqing@vivo.com
    Link: https://lkml.kernel.org/r/1635151862-11547-2-git-send-email-konishi.ryusuke@gmail.com
    Signed-off-by: Qing Wang <wangqing@vivo.com>
    Signed-off-by: Ryusuke Konishi <konishi.ryusuke@gmail.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Qing Wang authored and torvalds committed Nov 9, 2021
  34. 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: Linus Torvalds <torvalds@linux-foundation.org>
    jaharkes authored and torvalds committed Nov 9, 2021
Older