25 Jan, 2021

1 commit


20 Jan, 2021

3 commits

  • This is the 5.10.9 stable release

    * tag 'v5.10.9': (153 commits)
    Linux 5.10.9
    netfilter: nf_nat: Fix memleak in nf_nat_init
    netfilter: conntrack: fix reading nf_conntrack_buckets
    ...

    Signed-off-by: Jason Liu

    Jason Liu
     
  • Changes in 5.10.9
    btrfs: reloc: fix wrong file extent type check to avoid false ENOENT
    btrfs: prevent NULL pointer dereference in extent_io_tree_panic
    ALSA: hda/realtek: fix right sounds and mute/micmute LEDs for HP machines
    ALSA: doc: Fix reference to mixart.rst
    ASoC: AMD Renoir - add DMI entry for Lenovo ThinkPad X395
    ASoC: dapm: remove widget from dirty list on free
    x86/hyperv: check cpu mask after interrupt has been disabled
    drm/amdgpu: add green_sardine device id (v2)
    drm/amdgpu: fix DRM_INFO flood if display core is not supported (bug 210921)
    Revert "drm/amd/display: Fixed Intermittent blue screen on OLED panel"
    drm/amdgpu: add new device id for Renior
    drm/i915: Allow the sysadmin to override security mitigations
    drm/i915/gt: Limit VFE threads based on GT
    drm/i915/backlight: fix CPU mode backlight takeover on LPT
    drm/bridge: sii902x: Refactor init code into separate function
    dt-bindings: display: sii902x: Add supply bindings
    drm/bridge: sii902x: Enable I/O and core VCC supplies if present
    tracing/kprobes: Do the notrace functions check without kprobes on ftrace
    tools/bootconfig: Add tracing_on support to helper scripts
    ext4: use IS_ERR instead of IS_ERR_OR_NULL and set inode null when IS_ERR
    ext4: fix wrong list_splice in ext4_fc_cleanup
    ext4: fix bug for rename with RENAME_WHITEOUT
    cifs: check pointer before freeing
    cifs: fix interrupted close commands
    riscv: Drop a duplicated PAGE_KERNEL_EXEC
    riscv: return -ENOSYS for syscall -1
    riscv: Fixup CONFIG_GENERIC_TIME_VSYSCALL
    riscv: Fix KASAN memory mapping.
    mips: fix Section mismatch in reference
    mips: lib: uncached: fix non-standard usage of variable 'sp'
    MIPS: boot: Fix unaligned access with CONFIG_MIPS_RAW_APPENDED_DTB
    MIPS: Fix malformed NT_FILE and NT_SIGINFO in 32bit coredumps
    MIPS: relocatable: fix possible boot hangup with KASLR enabled
    RDMA/ocrdma: Fix use after free in ocrdma_dealloc_ucontext_pd()
    ACPI: scan: Harden acpi_device_add() against device ID overflows
    xen/privcmd: allow fetching resource sizes
    compiler.h: Raise minimum version of GCC to 5.1 for arm64
    mm/vmalloc.c: fix potential memory leak
    mm/hugetlb: fix potential missing huge page size info
    mm/process_vm_access.c: include compat.h
    dm raid: fix discard limits for raid1
    dm snapshot: flush merged data before committing metadata
    dm integrity: fix flush with external metadata device
    dm integrity: fix the maximum number of arguments
    dm crypt: use GFP_ATOMIC when allocating crypto requests from softirq
    dm crypt: do not wait for backlogged crypto request completion in softirq
    dm crypt: do not call bio_endio() from the dm-crypt tasklet
    dm crypt: defer decryption to a tasklet if interrupts disabled
    stmmac: intel: change all EHL/TGL to auto detect phy addr
    r8152: Add Lenovo Powered USB-C Travel Hub
    btrfs: tree-checker: check if chunk item end overflows
    ext4: don't leak old mountpoint samples
    io_uring: don't take files/mm for a dead task
    io_uring: drop mm and files after task_work_run
    ARC: build: remove non-existing bootpImage from KBUILD_IMAGE
    ARC: build: add uImage.lzma to the top-level target
    ARC: build: add boot_targets to PHONY
    ARC: build: move symlink creation to arch/arc/Makefile to avoid race
    ARM: omap2: pmic-cpcap: fix maximum voltage to be consistent with defaults on xt875
    ath11k: fix crash caused by NULL rx_channel
    netfilter: ipset: fixes possible oops in mtype_resize
    ath11k: qmi: try to allocate a big block of DMA memory first
    btrfs: fix async discard stall
    btrfs: merge critical sections of discard lock in workfn
    btrfs: fix transaction leak and crash after RO remount caused by qgroup rescan
    regulator: bd718x7: Add enable times
    ethernet: ucc_geth: fix definition and size of ucc_geth_tx_global_pram
    ARM: dts: ux500/golden: Set display max brightness
    habanalabs: adjust pci controller init to new firmware
    habanalabs/gaudi: retry loading TPC f/w on -EINTR
    habanalabs: register to pci shutdown callback
    staging: spmi: hisi-spmi-controller: Fix some error handling paths
    spi: altera: fix return value for altera_spi_txrx()
    habanalabs: Fix memleak in hl_device_reset
    hwmon: (pwm-fan) Ensure that calculation doesn't discard big period values
    lib/raid6: Let $(UNROLL) rules work with macOS userland
    kconfig: remove 'kvmconfig' and 'xenconfig' shorthands
    spi: fix the divide by 0 error when calculating xfer waiting time
    io_uring: drop file refs after task cancel
    bfq: Fix computation of shallow depth
    arch/arc: add copy_user_page() to to fix build error on ARC
    misdn: dsp: select CONFIG_BITREVERSE
    net: ethernet: fs_enet: Add missing MODULE_LICENSE
    selftests: fix the return value for UDP GRO test
    nvme-pci: mark Samsung PM1725a as IGNORE_DEV_SUBNQN
    nvme: avoid possible double fetch in handling CQE
    nvmet-rdma: Fix list_del corruption on queue establishment failure
    drm/amd/display: fix sysfs amdgpu_current_backlight_pwm NULL pointer issue
    drm/amdgpu: fix a GPU hang issue when remove device
    drm/amd/pm: fix the failure when change power profile for renoir
    drm/amdgpu: fix potential memory leak during navi12 deinitialization
    usb: typec: Fix copy paste error for NVIDIA alt-mode description
    iommu/vt-d: Fix lockdep splat in sva bind()/unbind()
    ACPI: scan: add stub acpi_create_platform_device() for !CONFIG_ACPI
    drm/msm: Call msm_init_vram before binding the gpu
    ARM: picoxcell: fix missing interrupt-parent properties
    poll: fix performance regression due to out-of-line __put_user()
    rcu-tasks: Move RCU-tasks initialization to before early_initcall()
    bpf: Simplify task_file_seq_get_next()
    bpf: Save correct stopping point in file seq iteration
    x86/sev-es: Fix SEV-ES OUT/IN immediate opcode vc handling
    cfg80211: select CONFIG_CRC32
    nvme-fc: avoid calling _nvme_fc_abort_outstanding_ios from interrupt context
    iommu/vt-d: Update domain geometry in iommu_ops.at(de)tach_dev
    net/mlx5e: CT: Use per flow counter when CT flow accounting is enabled
    net/mlx5: Fix passing zero to 'PTR_ERR'
    net/mlx5: E-Switch, fix changing vf VLANID
    blk-mq-debugfs: Add decode for BLK_MQ_F_TAG_HCTX_SHARED
    mm: fix clear_refs_write locking
    mm: don't play games with pinned pages in clear_page_refs
    mm: don't put pinned pages into the swap cache
    perf intel-pt: Fix 'CPU too large' error
    dump_common_audit_data(): fix racy accesses to ->d_name
    ASoC: meson: axg-tdm-interface: fix loopback
    ASoC: meson: axg-tdmin: fix axg skew offset
    ASoC: Intel: fix error code cnl_set_dsp_D0()
    nvmet-rdma: Fix NULL deref when setting pi_enable and traddr INADDR_ANY
    nvme: don't intialize hwmon for discovery controllers
    nvme-tcp: fix possible data corruption with bio merges
    nvme-tcp: Fix warning with CONFIG_DEBUG_PREEMPT
    NFS4: Fix use-after-free in trace_event_raw_event_nfs4_set_lock
    pNFS: We want return-on-close to complete when evicting the inode
    pNFS: Mark layout for return if return-on-close was not sent
    pNFS: Stricter ordering of layoutget and layoutreturn
    NFS: Adjust fs_context error logging
    NFS/pNFS: Don't call pnfs_free_bucket_lseg() before removing the request
    NFS/pNFS: Don't leak DS commits in pnfs_generic_retry_commit()
    NFS/pNFS: Fix a leak of the layout 'plh_outstanding' counter
    NFS: nfs_delegation_find_inode_server must first reference the superblock
    NFS: nfs_igrab_and_active must first reference the superblock
    scsi: ufs: Fix possible power drain during system suspend
    ext4: fix superblock checksum failure when setting password salt
    RDMA/restrack: Don't treat as an error allocation ID wrapping
    RDMA/usnic: Fix memleak in find_free_vf_and_create_qp_grp
    bnxt_en: Improve stats context resource accounting with RDMA driver loaded.
    RDMA/mlx5: Fix wrong free of blue flame register on error
    IB/mlx5: Fix error unwinding when set_has_smi_cap fails
    umount(2): move the flag validity checks first
    dm zoned: select CONFIG_CRC32
    drm/i915/dsi: Use unconditional msleep for the panel_on_delay when there is no reset-deassert MIPI-sequence
    drm/i915/icl: Fix initing the DSI DSC power refcount during HW readout
    drm/i915/gt: Restore clear-residual mitigations for Ivybridge, Baytrail
    mm, slub: consider rest of partial list if acquire_slab() fails
    riscv: Trace irq on only interrupt is enabled
    iommu/vt-d: Fix unaligned addresses for intel_flush_svm_range_dev()
    net: sunrpc: interpret the return value of kstrtou32 correctly
    selftests: netfilter: Pass family parameter "-f" to conntrack tool
    dm: eliminate potential source of excessive kernel log noise
    ALSA: fireface: Fix integer overflow in transmit_midi_msg()
    ALSA: firewire-tascam: Fix integer overflow in midi_port_work()
    netfilter: conntrack: fix reading nf_conntrack_buckets
    netfilter: nf_nat: Fix memleak in nf_nat_init
    Linux 5.10.9

    Signed-off-by: Greg Kroah-Hartman
    Change-Id: I609e501511889081e03d2d18ee7e1be95406f396

    Greg Kroah-Hartman
     
  • commit c22ee5284cf58017fa8c6d21d8f8c68159b6faab upstream.

    In VM_MAP_PUT_PAGES case, we should put pages and free array in vfree.
    But we missed to set area->nr_pages in vmap(). So we would fail to put
    pages in __vunmap() because area->nr_pages = 0.

    Link: https://lkml.kernel.org/r/20210107123541.39206-1-linmiaohe@huawei.com
    Fixes: b944afc9d64d ("mm: add a VM_MAP_PUT_PAGES flag for vmap")
    Signed-off-by: Shijie Luo
    Signed-off-by: Miaohe Lin
    Reviewed-by: Uladzislau Rezki (Sony)
    Cc:
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds
    Signed-off-by: Greg Kroah-Hartman

    Miaohe Lin
     

13 Jan, 2021

1 commit


04 Jan, 2021

1 commit

  • This is the 5.10.4 stable release

    * tag 'v5.10.4': (717 commits)
    Linux 5.10.4
    x86/CPU/AMD: Save AMD NodeId as cpu_die_id
    drm/edid: fix objtool warning in drm_cvt_modes()
    ...

    Signed-off-by: Jason Liu

    Conflicts:
    drivers/gpu/drm/imx/dcss/dcss-plane.c
    drivers/media/i2c/ov5640.c

    Jason Liu
     

30 Dec, 2020

2 commits

  • [ Upstream commit c041098c690fe53cea5d20c62f128a4f7a5c19fe ]

    The size of vm area can be affected by the presence or not of the guard
    page. In particular when VM_NO_GUARD is present, the actual accessible
    size has to be considered like the real size minus the guard page.

    Currently kasan does not keep into account this information during the
    poison operation and in particular tries to poison the guard page as well.

    This approach, even if incorrect, does not cause an issue because the tags
    for the guard page are written in the shadow memory. With the future
    introduction of the Tag-Based KASAN, being the guard page inaccessible by
    nature, the write tag operation on this page triggers a fault.

    Fix kasan shadow poisoning size invoking get_vm_area_size() instead of
    accessing directly the field in the data structure to detect the correct
    value.

    Link: https://lkml.kernel.org/r/20201027160213.32904-1-vincenzo.frascino@arm.com
    Fixes: d98c9e83b5e7c ("kasan: fix crashes on access to memory mapped by vm_map_ram()")
    Signed-off-by: Vincenzo Frascino
    Cc: Andrey Konovalov
    Cc: Dmitry Vyukov
    Cc: Andrey Ryabinin
    Cc: Alexander Potapenko
    Cc: Marco Elver
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds
    Signed-off-by: Sasha Levin

    Vincenzo Frascino
     
  • [ Upstream commit 0a7dd4e901b8a4ee040ba953900d1d7120b34ee5 ]

    When multiple locks are acquired, they should be released in reverse
    order. For s_start() and s_stop() in mm/vmalloc.c, that is not the
    case.

    s_start: mutex_lock(&vmap_purge_lock); spin_lock(&vmap_area_lock);
    s_stop : mutex_unlock(&vmap_purge_lock); spin_unlock(&vmap_area_lock);

    This unlock sequence, though allowed, is not optimal. If a waiter is
    present, mutex_unlock() will need to go through the slowpath of waking
    up the waiter with preemption disabled. Fix that by releasing the
    spinlock first before the mutex.

    Link: https://lkml.kernel.org/r/20201213180843.16938-1-longman@redhat.com
    Fixes: e36176be1c39 ("mm/vmalloc: rework vmap_area_lock")
    Signed-off-by: Waiman Long
    Reviewed-by: Uladzislau Rezki (Sony)
    Reviewed-by: David Hildenbrand
    Cc: Matthew Wilcox
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds
    Signed-off-by: Sasha Levin

    Waiman Long
     

14 Dec, 2020

1 commit


19 Oct, 2020

6 commits

  • No point in having the filename inside the file.

    Signed-off-by: Christoph Hellwig
    Signed-off-by: Andrew Morton
    Cc: Uladzislau Rezki (Sony)
    Link: https://lkml.kernel.org/r/20201002124035.1539300-3-hch@lst.de
    Signed-off-by: Linus Torvalds

    Christoph Hellwig
     
  • Patch series "two small vmalloc cleanups".

    This patch (of 2):

    __vmalloc_area_node currently has four different gfp_t variables to
    just express this simple logic:

    - use the passed in mask, plus __GFP_NOWARN and __GFP_HIGHMEM (if
    suitable) for the underlying page allocation
    - use just the reclaim flags from the passed in mask plus __GFP_ZERO
    for allocating the page array

    Simplify this down to just use the pre-existing nested_gfp as-is for
    the page array allocation, and just the passed in gfp_mask for the
    page allocation, after conditionally ORing __GFP_HIGHMEM into it. This
    also makes the allocation warning a little more correct.

    Also initialize two variables at the time of declaration while touching
    this area.

    Signed-off-by: Christoph Hellwig
    Signed-off-by: Andrew Morton
    Cc: Uladzislau Rezki (Sony)
    Link: https://lkml.kernel.org/r/20201002124035.1539300-1-hch@lst.de
    Link: https://lkml.kernel.org/r/20201002124035.1539300-2-hch@lst.de
    Signed-off-by: Linus Torvalds

    Christoph Hellwig
     
  • All users are gone now.

    Signed-off-by: Christoph Hellwig
    Signed-off-by: Andrew Morton
    Cc: Boris Ostrovsky
    Cc: Chris Wilson
    Cc: Jani Nikula
    Cc: Joonas Lahtinen
    Cc: Juergen Gross
    Cc: Matthew Auld
    Cc: "Matthew Wilcox (Oracle)"
    Cc: Minchan Kim
    Cc: Nitin Gupta
    Cc: Peter Zijlstra
    Cc: Rodrigo Vivi
    Cc: Stefano Stabellini
    Cc: Tvrtko Ursulin
    Cc: Uladzislau Rezki (Sony)
    Link: https://lkml.kernel.org/r/20201002122204.1534411-12-hch@lst.de
    Signed-off-by: Linus Torvalds

    Christoph Hellwig
     
  • Add a proper helper to remap PFNs into kernel virtual space so that
    drivers don't have to abuse alloc_vm_area and open coded PTE manipulation
    for it.

    Signed-off-by: Christoph Hellwig
    Signed-off-by: Andrew Morton
    Cc: Boris Ostrovsky
    Cc: Chris Wilson
    Cc: Jani Nikula
    Cc: Joonas Lahtinen
    Cc: Juergen Gross
    Cc: Matthew Auld
    Cc: "Matthew Wilcox (Oracle)"
    Cc: Minchan Kim
    Cc: Nitin Gupta
    Cc: Peter Zijlstra
    Cc: Rodrigo Vivi
    Cc: Stefano Stabellini
    Cc: Tvrtko Ursulin
    Cc: Uladzislau Rezki (Sony)
    Link: https://lkml.kernel.org/r/20201002122204.1534411-4-hch@lst.de
    Signed-off-by: Linus Torvalds

    Christoph Hellwig
     
  • Add a flag so that vmap takes ownership of the passed in page array. When
    vfree is called on such an allocation it will put one reference on each
    page, and free the page array itself.

    Signed-off-by: Christoph Hellwig
    Signed-off-by: Andrew Morton
    Cc: Boris Ostrovsky
    Cc: Chris Wilson
    Cc: Jani Nikula
    Cc: Joonas Lahtinen
    Cc: Juergen Gross
    Cc: Matthew Auld
    Cc: "Matthew Wilcox (Oracle)"
    Cc: Minchan Kim
    Cc: Nitin Gupta
    Cc: Peter Zijlstra
    Cc: Rodrigo Vivi
    Cc: Stefano Stabellini
    Cc: Tvrtko Ursulin
    Cc: Uladzislau Rezki (Sony)
    Link: https://lkml.kernel.org/r/20201002122204.1534411-3-hch@lst.de
    Signed-off-by: Linus Torvalds

    Christoph Hellwig
     
  • Patch series "remove alloc_vm_area", v4.

    This series removes alloc_vm_area, which was left over from the big
    vmalloc interface rework. It is a rather arkane interface, basicaly the
    equivalent of get_vm_area + actually faulting in all PTEs in the allocated
    area. It was originally addeds for Xen (which isn't modular to start
    with), and then grew users in zsmalloc and i915 which seems to mostly
    qualify as abuses of the interface, especially for i915 as a random driver
    should not set up PTE bits directly.

    This patch (of 11):

    * Document that you can call vfree() on an address returned from vmap()
    * Remove the note about the minimum size -- the minimum size of a vmalloc
    allocation is one page
    * Add a Context: section
    * Fix capitalisation
    * Reword the prohibition on calling from NMI context to avoid a double
    negative

    Signed-off-by: Matthew Wilcox (Oracle)
    Signed-off-by: Christoph Hellwig
    Signed-off-by: Andrew Morton
    Cc: Peter Zijlstra
    Cc: Boris Ostrovsky
    Cc: Juergen Gross
    Cc: Stefano Stabellini
    Cc: Jani Nikula
    Cc: Joonas Lahtinen
    Cc: Tvrtko Ursulin
    Cc: Chris Wilson
    Cc: Matthew Auld
    Cc: Rodrigo Vivi
    Cc: Minchan Kim
    Cc: Matthew Wilcox
    Cc: Nitin Gupta
    Cc: Uladzislau Rezki (Sony)
    Link: https://lkml.kernel.org/r/20201002122204.1534411-1-hch@lst.de
    Link: https://lkml.kernel.org/r/20201002122204.1534411-2-hch@lst.de
    Signed-off-by: Linus Torvalds

    Matthew Wilcox (Oracle)
     

14 Oct, 2020

2 commits

  • Fix the comment of find_vm_area() and get_vm_area()

    Signed-off-by: Hui Su
    Signed-off-by: Andrew Morton
    Reviewed-by: Andrew Morton
    Link: https://lkml.kernel.org/r/20200927153034.GA199877@rlk
    Signed-off-by: Linus Torvalds

    Hui Su
     
  • Since c67dc624757 ("mm/vmalloc: do not call kmemleak_free() on not yet
    accounted memory"), the __vunmap() have been changed to __vfree(), so
    update the confusing comment().

    Signed-off-by: Hui Su
    Signed-off-by: Andrew Morton
    Reviewed-by: Andrew Morton
    Cc: Roman Penyaev
    Link: https://lkml.kernel.org/r/20200927155409.GA3315@rlk
    Signed-off-by: Linus Torvalds

    Hui Su
     

22 Aug, 2020

1 commit

  • Like zap_pte_range add cond_resched so that we can avoid softlockups as
    reported below. On non-preemptible kernel with large I/O map region (like
    the one we get when using persistent memory with sector mode), an unmap of
    the namespace can report below softlockups.

    22724.027334] watchdog: BUG: soft lockup - CPU#49 stuck for 23s! [ndctl:50777]
    NIP [c0000000000dc224] plpar_hcall+0x38/0x58
    LR [c0000000000d8898] pSeries_lpar_hpte_invalidate+0x68/0xb0
    Call Trace:
    flush_hash_page+0x114/0x200
    hpte_need_flush+0x2dc/0x540
    vunmap_page_range+0x538/0x6f0
    free_unmap_vmap_area+0x30/0x70
    remove_vm_area+0xfc/0x140
    __vunmap+0x68/0x270
    __iounmap.part.0+0x34/0x60
    memunmap+0x54/0x70
    release_nodes+0x28c/0x300
    device_release_driver_internal+0x16c/0x280
    unbind_store+0x124/0x170
    drv_attr_store+0x44/0x60
    sysfs_kf_write+0x64/0x90
    kernfs_fop_write+0x1b0/0x290
    __vfs_write+0x3c/0x70
    vfs_write+0xd8/0x260
    ksys_write+0xdc/0x130
    system_call+0x5c/0x70

    Reported-by: Harish Sriram
    Signed-off-by: Aneesh Kumar K.V
    Signed-off-by: Andrew Morton
    Reviewed-by: Andrew Morton
    Cc:
    Link: http://lkml.kernel.org/r/20200807075933.310240-1-aneesh.kumar@linux.ibm.com
    Signed-off-by: Linus Torvalds

    Aneesh Kumar K.V
     

08 Aug, 2020

8 commits

  • Get rid of BUG() macro, that should be used only when a critical situation
    happens and a system is not able to function anymore.

    Replace it with WARN() macro instead, dump some extra information about
    start/end addresses of both VAs which overlap. Such overlap data can help
    to figure out what happened making further analysis easier. For example
    if both areas are identical it could mean a double free.

    A recovery process consists of declining all further steps regarding
    inserting of conflicting overlap range. In that sense find_va_links() now
    can return NULL, so its return value has to be checked by callers.

    Side effect of such process is it can leak memory, but it is better than
    just killing a machine for no good reason. Apart of that a debugging
    process can be done on alive system.

    Signed-off-by: Uladzislau Rezki (Sony)
    Signed-off-by: Andrew Morton
    Cc: Hillf Danton
    Cc: Michal Hocko
    Cc: Matthew Wilcox
    Cc: Oleksiy Avramchenko
    Cc: Steven Rostedt
    Link: http://lkml.kernel.org/r/20200711104531.12242-1-urezki@gmail.com
    Signed-off-by: Linus Torvalds

    Uladzislau Rezki (Sony)
     
  • 'addr' is set to 'start' and then a few lines afterwards 'start' is set to
    'addr'. Remove the second asignment.

    Fixes: 2ba3e6947aed ("mm/vmalloc: track which page-table levels were modified")
    Signed-off-by: Mike Rapoport
    Signed-off-by: Andrew Morton
    Reviewed-by: David Hildenbrand
    Cc: Joerg Roedel
    Link: http://lkml.kernel.org/r/20200707163226.374685-1-rppt@kernel.org
    Signed-off-by: Linus Torvalds

    Mike Rapoport
     
  • Reflect information about the author, date and year when the KVA rework
    was done.

    Signed-off-by: Uladzislau Rezki (Sony)
    Signed-off-by: Andrew Morton
    Reviewed-by: Andrew Morton
    Link: http://lkml.kernel.org/r/20200622195821.4796-1-urezki@gmail.com
    Signed-off-by: Linus Torvalds

    Uladzislau Rezki (Sony)
     
  • An augment_tree_propagate_from() function uses its own implementation that
    populates a tree from the specified node toward a root node.

    On the other hand the RB_DECLARE_CALLBACKS_MAX macro provides the
    "propagate()" callback that does exactly the same. Having two similar
    functions does not make sense and is redundant.

    Reuse "built in" functionality to the macros. So the code size gets
    reduced.

    Signed-off-by: Uladzislau Rezki (Sony)
    Signed-off-by: Andrew Morton
    Link: http://lkml.kernel.org/r/20200527205054.1696-3-urezki@gmail.com
    Signed-off-by: Linus Torvalds

    Uladzislau Rezki (Sony)
     
  • This function is for debug purpose only. Currently it uses recursion for
    tree traversal, checking an augmented value of each node to find out if it
    is valid or not.

    The recursion can corrupt the stack because the tree can be huge if
    synthetic tests are applied. To prevent it, navigate the tree from bottom
    to upper levels using a regular list instead, because nodes are linked
    among each other also. It is faster and without recursion.

    Signed-off-by: Uladzislau Rezki (Sony)
    Signed-off-by: Andrew Morton
    Link: http://lkml.kernel.org/r/20200527205054.1696-2-urezki@gmail.com
    Signed-off-by: Linus Torvalds

    Uladzislau Rezki (Sony)
     
  • Currently when a VA is deallocated and is about to be placed back to the
    tree, it can be either: merged with next/prev neighbors or inserted if not
    coalesced.

    On those steps the tree can be populated several times. For example when
    both neighbors are merged. It can be avoided and simplified in fact.

    Therefore do it only once when VA points to final merged area, after all
    manipulations: merging/removing/inserting.

    Signed-off-by: Uladzislau Rezki (Sony)
    Signed-off-by: Andrew Morton
    Link: http://lkml.kernel.org/r/20200527205054.1696-1-urezki@gmail.com
    Signed-off-by: Linus Torvalds

    Uladzislau Rezki (Sony)
     
  • The radix tree of vmap blocks is simpler to express as an XArray. Reduces
    both the text and data sizes of the object file and eliminates a user of
    the radix tree preload API.

    Signed-off-by: Matthew Wilcox (Oracle)
    Signed-off-by: Andrew Morton
    Reviewed-by: William Kucharski
    Link: http://lkml.kernel.org/r/20200603171448.5894-1-willy@infradead.org
    Signed-off-by: Linus Torvalds

    Matthew Wilcox (Oracle)
     
  • The functions are only used in two source files, so there is no need for
    them to be in the global header. Move them to the new
    header and include it only where needed.

    Signed-off-by: Joerg Roedel
    Signed-off-by: Andrew Morton
    Reviewed-by: Pekka Enberg
    Cc: Peter Zijlstra (Intel)
    Cc: Andy Lutomirski
    Cc: Abdul Haleem
    Cc: Satheesh Rajendran
    Cc: Stephen Rothwell
    Cc: Steven Rostedt (VMware)
    Cc: Mike Rapoport
    Cc: Christophe Leroy
    Cc: Arnd Bergmann
    Cc: Max Filippov
    Cc: Stafford Horne
    Cc: Geert Uytterhoeven
    Cc: Matthew Wilcox
    Link: http://lkml.kernel.org/r/20200609120533.25867-1-joro@8bytes.org
    Signed-off-by: Linus Torvalds

    Joerg Roedel
     

26 Jun, 2020

2 commits

  • Merge vmalloc_exec into its only caller. Note that for !CONFIG_MMU
    __vmalloc_node_range maps to __vmalloc, which directly clears the
    __GFP_HIGHMEM added by the vmalloc_exec stub anyway.

    Link: http://lkml.kernel.org/r/20200618064307.32739-4-hch@lst.de
    Signed-off-by: Christoph Hellwig
    Reviewed-by: David Hildenbrand
    Acked-by: Peter Zijlstra (Intel)
    Cc: Catalin Marinas
    Cc: Dexuan Cui
    Cc: Jessica Yu
    Cc: Vitaly Kuznetsov
    Cc: Wei Liu
    Cc: Will Deacon
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Christoph Hellwig
     
  • This patch fixes following warning while "make xmldocs"

    mm/vmalloc.c:1877: warning: Excess function parameter 'prot' description in 'vm_map_ram'

    This warning started since commit d4efd79a81ab ("mm: remove the prot
    argument from vm_map_ram").

    Link: http://lkml.kernel.org/r/20200622152850.140871-1-standby24x7@gmail.com
    Fixes: d4efd79a81ab ("mm: remove the prot argument from vm_map_ram")
    Signed-off-by: Masanari Iida
    Reviewed-by: Andrew Morton
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Masanari Iida
     

05 Jun, 2020

1 commit

  • There is a typo in comment, fix it.
    "nother" -> "another"

    Signed-off-by: Jeongtae Park
    Signed-off-by: Andrew Morton
    Reviewed-by: David Hildenbrand
    Cc: Andrey Ryabinin
    Cc: Christoph Hellwig
    Link: http://lkml.kernel.org/r/20200604185239.20765-1-jtp.park@samsung.com
    Signed-off-by: Linus Torvalds

    Jeongtae Park
     

03 Jun, 2020

11 commits

  • These functions are not needed anymore because the vmalloc and ioremap
    mappings are now synchronized when they are created or torn down.

    Remove all callers and function definitions.

    Signed-off-by: Joerg Roedel
    Signed-off-by: Andrew Morton
    Tested-by: Steven Rostedt (VMware)
    Acked-by: Andy Lutomirski
    Acked-by: Peter Zijlstra (Intel)
    Cc: Arnd Bergmann
    Cc: Christoph Hellwig
    Cc: Dave Hansen
    Cc: "H . Peter Anvin"
    Cc: Ingo Molnar
    Cc: Matthew Wilcox (Oracle)
    Cc: Michal Hocko
    Cc: "Rafael J. Wysocki"
    Cc: Thomas Gleixner
    Cc: Vlastimil Babka
    Link: http://lkml.kernel.org/r/20200515140023.25469-7-joro@8bytes.org
    Signed-off-by: Linus Torvalds

    Joerg Roedel
     
  • Track at which levels in the page-table entries were modified by
    vmap/vunmap.

    After the page-table has been modified, use that information do decide
    whether the new arch_sync_kernel_mappings() needs to be called.

    [akpm@linux-foundation.org: map_kernel_range_noflush() needs the arch_sync_kernel_mappings() call]
    Signed-off-by: Joerg Roedel
    Signed-off-by: Andrew Morton
    Acked-by: Andy Lutomirski
    Acked-by: Peter Zijlstra (Intel)
    Cc: Arnd Bergmann
    Cc: Christoph Hellwig
    Cc: Dave Hansen
    Cc: "H . Peter Anvin"
    Cc: Ingo Molnar
    Cc: Matthew Wilcox (Oracle)
    Cc: Michal Hocko
    Cc: "Rafael J. Wysocki"
    Cc: Steven Rostedt (VMware)
    Cc: Thomas Gleixner
    Cc: Vlastimil Babka
    Link: http://lkml.kernel.org/r/20200515140023.25469-3-joro@8bytes.org
    Signed-off-by: Linus Torvalds

    Joerg Roedel
     
  • Open code it in __bpf_map_area_alloc, which is the only caller. Also
    clean up __bpf_map_area_alloc to have a single vmalloc call with slightly
    different flags instead of the current two different calls.

    For this to compile for the nommu case add a __vmalloc_node_range stub to
    nommu.c.

    [akpm@linux-foundation.org: fix nommu.c build]
    Signed-off-by: Christoph Hellwig
    Signed-off-by: Andrew Morton
    Acked-by: Peter Zijlstra (Intel)
    Acked-by: Johannes Weiner
    Cc: Christian Borntraeger
    Cc: Christophe Leroy
    Cc: Daniel Vetter
    Cc: David Airlie
    Cc: Gao Xiang
    Cc: Greg Kroah-Hartman
    Cc: Haiyang Zhang
    Cc: "K. Y. Srinivasan"
    Cc: Laura Abbott
    Cc: Mark Rutland
    Cc: Michael Kelley
    Cc: Minchan Kim
    Cc: Nitin Gupta
    Cc: Robin Murphy
    Cc: Sakari Ailus
    Cc: Stephen Hemminger
    Cc: Sumit Semwal
    Cc: Wei Liu
    Cc: Benjamin Herrenschmidt
    Cc: Catalin Marinas
    Cc: Heiko Carstens
    Cc: Paul Mackerras
    Cc: Vasily Gorbik
    Cc: Will Deacon
    Cc: Stephen Rothwell
    Link: http://lkml.kernel.org/r/20200414131348.444715-27-hch@lst.de
    Signed-off-by: Linus Torvalds

    Christoph Hellwig
     
  • No need to export the very low-level __vmalloc_node_range when the test
    module can use a slightly higher level variant.

    [akpm@linux-foundation.org: add missing `node' arg]
    [akpm@linux-foundation.org: fix riscv nommu build]
    Signed-off-by: Christoph Hellwig
    Signed-off-by: Andrew Morton
    Acked-by: Peter Zijlstra (Intel)
    Cc: Christian Borntraeger
    Cc: Christophe Leroy
    Cc: Daniel Vetter
    Cc: David Airlie
    Cc: Gao Xiang
    Cc: Greg Kroah-Hartman
    Cc: Haiyang Zhang
    Cc: Johannes Weiner
    Cc: "K. Y. Srinivasan"
    Cc: Laura Abbott
    Cc: Mark Rutland
    Cc: Michael Kelley
    Cc: Minchan Kim
    Cc: Nitin Gupta
    Cc: Robin Murphy
    Cc: Sakari Ailus
    Cc: Stephen Hemminger
    Cc: Sumit Semwal
    Cc: Wei Liu
    Cc: Benjamin Herrenschmidt
    Cc: Catalin Marinas
    Cc: Heiko Carstens
    Cc: Paul Mackerras
    Cc: Vasily Gorbik
    Cc: Will Deacon
    Link: http://lkml.kernel.org/r/20200414131348.444715-26-hch@lst.de
    Signed-off-by: Linus Torvalds

    Christoph Hellwig
     
  • Just use __vmalloc_node instead which gets and extra argument. To be able
    to to use __vmalloc_node in all caller make it available outside of
    vmalloc and implement it in nommu.c.

    [akpm@linux-foundation.org: fix nommu build]
    Signed-off-by: Christoph Hellwig
    Signed-off-by: Andrew Morton
    Acked-by: Peter Zijlstra (Intel)
    Cc: Christian Borntraeger
    Cc: Christophe Leroy
    Cc: Daniel Vetter
    Cc: David Airlie
    Cc: Gao Xiang
    Cc: Greg Kroah-Hartman
    Cc: Haiyang Zhang
    Cc: Johannes Weiner
    Cc: "K. Y. Srinivasan"
    Cc: Laura Abbott
    Cc: Mark Rutland
    Cc: Michael Kelley
    Cc: Minchan Kim
    Cc: Nitin Gupta
    Cc: Robin Murphy
    Cc: Sakari Ailus
    Cc: Stephen Hemminger
    Cc: Sumit Semwal
    Cc: Wei Liu
    Cc: Benjamin Herrenschmidt
    Cc: Catalin Marinas
    Cc: Heiko Carstens
    Cc: Paul Mackerras
    Cc: Vasily Gorbik
    Cc: Will Deacon
    Cc: Stephen Rothwell
    Link: http://lkml.kernel.org/r/20200414131348.444715-25-hch@lst.de
    Signed-off-by: Linus Torvalds

    Christoph Hellwig
     
  • The real version just had a few callers that can open code it and remove
    one layer of indirection. The nommu stub was public but only had a single
    caller, so remove it and avoid a CONFIG_MMU ifdef in vmalloc.h.

    Signed-off-by: Christoph Hellwig
    Signed-off-by: Andrew Morton
    Acked-by: Peter Zijlstra (Intel)
    Cc: Christian Borntraeger
    Cc: Christophe Leroy
    Cc: Daniel Vetter
    Cc: David Airlie
    Cc: Gao Xiang
    Cc: Greg Kroah-Hartman
    Cc: Haiyang Zhang
    Cc: Johannes Weiner
    Cc: "K. Y. Srinivasan"
    Cc: Laura Abbott
    Cc: Mark Rutland
    Cc: Michael Kelley
    Cc: Minchan Kim
    Cc: Nitin Gupta
    Cc: Robin Murphy
    Cc: Sakari Ailus
    Cc: Stephen Hemminger
    Cc: Sumit Semwal
    Cc: Wei Liu
    Cc: Benjamin Herrenschmidt
    Cc: Catalin Marinas
    Cc: Heiko Carstens
    Cc: Paul Mackerras
    Cc: Vasily Gorbik
    Cc: Will Deacon
    Link: http://lkml.kernel.org/r/20200414131348.444715-24-hch@lst.de
    Signed-off-by: Linus Torvalds

    Christoph Hellwig
     
  • This is always PAGE_KERNEL now.

    Signed-off-by: Christoph Hellwig
    Signed-off-by: Andrew Morton
    Acked-by: Peter Zijlstra (Intel)
    Cc: Christian Borntraeger
    Cc: Christophe Leroy
    Cc: Daniel Vetter
    Cc: David Airlie
    Cc: Gao Xiang
    Cc: Greg Kroah-Hartman
    Cc: Haiyang Zhang
    Cc: Johannes Weiner
    Cc: "K. Y. Srinivasan"
    Cc: Laura Abbott
    Cc: Mark Rutland
    Cc: Michael Kelley
    Cc: Minchan Kim
    Cc: Nitin Gupta
    Cc: Robin Murphy
    Cc: Sakari Ailus
    Cc: Stephen Hemminger
    Cc: Sumit Semwal
    Cc: Wei Liu
    Cc: Benjamin Herrenschmidt
    Cc: Catalin Marinas
    Cc: Heiko Carstens
    Cc: Paul Mackerras
    Cc: Vasily Gorbik
    Cc: Will Deacon
    Link: http://lkml.kernel.org/r/20200414131348.444715-23-hch@lst.de
    Signed-off-by: Linus Torvalds

    Christoph Hellwig
     
  • The pgprot argument to __vmalloc is always PAGE_KERNEL now, so remove it.

    Signed-off-by: Christoph Hellwig
    Signed-off-by: Andrew Morton
    Reviewed-by: Michael Kelley [hyperv]
    Acked-by: Gao Xiang [erofs]
    Acked-by: Peter Zijlstra (Intel)
    Acked-by: Wei Liu
    Cc: Christian Borntraeger
    Cc: Christophe Leroy
    Cc: Daniel Vetter
    Cc: David Airlie
    Cc: Greg Kroah-Hartman
    Cc: Haiyang Zhang
    Cc: Johannes Weiner
    Cc: "K. Y. Srinivasan"
    Cc: Laura Abbott
    Cc: Mark Rutland
    Cc: Minchan Kim
    Cc: Nitin Gupta
    Cc: Robin Murphy
    Cc: Sakari Ailus
    Cc: Stephen Hemminger
    Cc: Sumit Semwal
    Cc: Benjamin Herrenschmidt
    Cc: Catalin Marinas
    Cc: Heiko Carstens
    Cc: Paul Mackerras
    Cc: Vasily Gorbik
    Cc: Will Deacon
    Link: http://lkml.kernel.org/r/20200414131348.444715-22-hch@lst.de
    Signed-off-by: Linus Torvalds

    Christoph Hellwig
     
  • To help enforcing the W^X protection don't allow remapping existing pages
    as executable.

    x86 bits from Peter Zijlstra, arm64 bits from Mark Rutland.

    Signed-off-by: Christoph Hellwig
    Signed-off-by: Andrew Morton
    Acked-by: Peter Zijlstra (Intel)
    Cc: Mark Rutland .
    Cc: Christian Borntraeger
    Cc: Christophe Leroy
    Cc: Daniel Vetter
    Cc: David Airlie
    Cc: Gao Xiang
    Cc: Greg Kroah-Hartman
    Cc: Haiyang Zhang
    Cc: Johannes Weiner
    Cc: "K. Y. Srinivasan"
    Cc: Laura Abbott
    Cc: Michael Kelley
    Cc: Minchan Kim
    Cc: Nitin Gupta
    Cc: Robin Murphy
    Cc: Sakari Ailus
    Cc: Stephen Hemminger
    Cc: Sumit Semwal
    Cc: Wei Liu
    Cc: Benjamin Herrenschmidt
    Cc: Catalin Marinas
    Cc: Heiko Carstens
    Cc: Paul Mackerras
    Cc: Vasily Gorbik
    Cc: Will Deacon
    Link: http://lkml.kernel.org/r/20200414131348.444715-20-hch@lst.de
    Signed-off-by: Linus Torvalds

    Christoph Hellwig
     
  • This is always PAGE_KERNEL - for long term mappings with other properties
    vmap should be used.

    Signed-off-by: Christoph Hellwig
    Signed-off-by: Andrew Morton
    Acked-by: Peter Zijlstra (Intel)
    Cc: Christian Borntraeger
    Cc: Christophe Leroy
    Cc: Daniel Vetter
    Cc: David Airlie
    Cc: Gao Xiang
    Cc: Greg Kroah-Hartman
    Cc: Haiyang Zhang
    Cc: Johannes Weiner
    Cc: "K. Y. Srinivasan"
    Cc: Laura Abbott
    Cc: Mark Rutland
    Cc: Michael Kelley
    Cc: Minchan Kim
    Cc: Nitin Gupta
    Cc: Robin Murphy
    Cc: Sakari Ailus
    Cc: Stephen Hemminger
    Cc: Sumit Semwal
    Cc: Wei Liu
    Cc: Benjamin Herrenschmidt
    Cc: Catalin Marinas
    Cc: Heiko Carstens
    Cc: Paul Mackerras
    Cc: Vasily Gorbik
    Cc: Will Deacon
    Link: http://lkml.kernel.org/r/20200414131348.444715-19-hch@lst.de
    Signed-off-by: Linus Torvalds

    Christoph Hellwig
     
  • This function just has a single caller, open code it there.

    Signed-off-by: Christoph Hellwig
    Signed-off-by: Andrew Morton
    Acked-by: Peter Zijlstra (Intel)
    Cc: Christian Borntraeger
    Cc: Christophe Leroy
    Cc: Daniel Vetter
    Cc: David Airlie
    Cc: Gao Xiang
    Cc: Greg Kroah-Hartman
    Cc: Haiyang Zhang
    Cc: Johannes Weiner
    Cc: "K. Y. Srinivasan"
    Cc: Laura Abbott
    Cc: Mark Rutland
    Cc: Michael Kelley
    Cc: Minchan Kim
    Cc: Nitin Gupta
    Cc: Robin Murphy
    Cc: Sakari Ailus
    Cc: Stephen Hemminger
    Cc: Sumit Semwal
    Cc: Wei Liu
    Cc: Benjamin Herrenschmidt
    Cc: Catalin Marinas
    Cc: Heiko Carstens
    Cc: Paul Mackerras
    Cc: Vasily Gorbik
    Cc: Will Deacon
    Link: http://lkml.kernel.org/r/20200414131348.444715-18-hch@lst.de
    Signed-off-by: Linus Torvalds

    Christoph Hellwig