From: Andrew Morton <akpm@linux-foundation.org> To: akpm@linux-foundation.org, dan.j.williams@intel.com, dave.hansen@linux.intel.com, david@redhat.com, linux-mm@kvack.org, mhocko@suse.com, mm-commits@vger.kernel.org, pasha.tatashin@soleen.com, stable@vger.kernel.org, torvalds@linux-foundation.org, vishal.l.verma@intel.com Subject: [patch 006/118] mm/memory_hotplug: fix remove_memory() lockdep splat Date: Thu, 30 Jan 2020 22:11:17 -0800 [thread overview] Message-ID: <20200131061117.PIFGHXwry%akpm@linux-foundation.org> (raw) In-Reply-To: <20200130221021.5f0211c56346d5485af07923@linux-foundation.org> From: Dan Williams <dan.j.williams@intel.com> Subject: mm/memory_hotplug: fix remove_memory() lockdep splat The daxctl unit test for the dax_kmem driver currently triggers the (false positive) lockdep splat below. It results from the fact that remove_memory_block_devices() is invoked under the mem_hotplug_lock() causing lockdep entanglements with cpu_hotplug_lock() and sysfs (kernfs active state tracking). It is a false positive because the sysfs attribute path triggering the memory remove is not the same attribute path associated with memory-block device. sysfs_break_active_protection() is not applicable since there is no real deadlock conflict, instead move memory-block device removal outside the lock. The mem_hotplug_lock() is not needed to synchronize the memory-block device removal vs the page online state, that is already handled by lock_device_hotplug(). Specifically, lock_device_hotplug() is sufficient to allow try_remove_memory() to check the offline state of the memblocks and be assured that any in progress online attempts are flushed / blocked by kernfs_drain() / attribute removal. The add_memory() path safely creates memblock devices under the mem_hotplug_lock(). There is no kernfs active state synchronization in the memblock device_register() path, so nothing to fix there. This change is only possible thanks to the recent change that refactored memory block device removal out of arch_remove_memory() (commit 4c4b7f9ba948 mm/memory_hotplug: remove memory block devices before arch_remove_memory()), and David's due diligence tracking down the guarantees afforded by kernfs_drain(). Not flagged for -stable since this only impacts ongoing development and lockdep validation, not a runtime issue. ====================================================== WARNING: possible circular locking dependency detected 5.5.0-rc3+ #230 Tainted: G OE ------------------------------------------------------ lt-daxctl/6459 is trying to acquire lock: ffff99c7f0003510 (kn->count#241){++++}, at: kernfs_remove_by_name_ns+0x41/0x80 but task is already holding lock: ffffffffa76a5450 (mem_hotplug_lock.rw_sem){++++}, at: percpu_down_write+0x20/0xe0 which lock already depends on the new lock. the existing dependency chain (in reverse order) is: -> #2 (mem_hotplug_lock.rw_sem){++++}: __lock_acquire+0x39c/0x790 lock_acquire+0xa2/0x1b0 get_online_mems+0x3e/0xb0 kmem_cache_create_usercopy+0x2e/0x260 kmem_cache_create+0x12/0x20 ptlock_cache_init+0x20/0x28 start_kernel+0x243/0x547 secondary_startup_64+0xb6/0xc0 -> #1 (cpu_hotplug_lock.rw_sem){++++}: __lock_acquire+0x39c/0x790 lock_acquire+0xa2/0x1b0 cpus_read_lock+0x3e/0xb0 online_pages+0x37/0x300 memory_subsys_online+0x17d/0x1c0 device_online+0x60/0x80 state_store+0x65/0xd0 kernfs_fop_write+0xcf/0x1c0 vfs_write+0xdb/0x1d0 ksys_write+0x65/0xe0 do_syscall_64+0x5c/0xa0 entry_SYSCALL_64_after_hwframe+0x49/0xbe -> #0 (kn->count#241){++++}: check_prev_add+0x98/0xa40 validate_chain+0x576/0x860 __lock_acquire+0x39c/0x790 lock_acquire+0xa2/0x1b0 __kernfs_remove+0x25f/0x2e0 kernfs_remove_by_name_ns+0x41/0x80 remove_files.isra.0+0x30/0x70 sysfs_remove_group+0x3d/0x80 sysfs_remove_groups+0x29/0x40 device_remove_attrs+0x39/0x70 device_del+0x16a/0x3f0 device_unregister+0x16/0x60 remove_memory_block_devices+0x82/0xb0 try_remove_memory+0xb5/0x130 remove_memory+0x26/0x40 dev_dax_kmem_remove+0x44/0x6a [kmem] device_release_driver_internal+0xe4/0x1c0 unbind_store+0xef/0x120 kernfs_fop_write+0xcf/0x1c0 vfs_write+0xdb/0x1d0 ksys_write+0x65/0xe0 do_syscall_64+0x5c/0xa0 entry_SYSCALL_64_after_hwframe+0x49/0xbe other info that might help us debug this: Chain exists of: kn->count#241 --> cpu_hotplug_lock.rw_sem --> mem_hotplug_lock.rw_sem Possible unsafe locking scenario: CPU0 CPU1 ---- ---- lock(mem_hotplug_lock.rw_sem); lock(cpu_hotplug_lock.rw_sem); lock(mem_hotplug_lock.rw_sem); lock(kn->count#241); *** DEADLOCK *** No fixes tag as this has been a long standing issue that predated the addition of kernfs lockdep annotations. Link: http://lkml.kernel.org/r/157991441887.2763922.4770790047389427325.stgit@dwillia2-desk3.amr.corp.intel.com Signed-off-by: Dan Williams <dan.j.williams@intel.com> Acked-by: Michal Hocko <mhocko@suse.com> Reviewed-by: David Hildenbrand <david@redhat.com> Cc: Vishal Verma <vishal.l.verma@intel.com> Cc: Pavel Tatashin <pasha.tatashin@soleen.com> Cc: Dave Hansen <dave.hansen@linux.intel.com> Cc: <stable@vger.kernel.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> --- mm/memory_hotplug.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) --- a/mm/memory_hotplug.c~mm-memory_hotplug-fix-remove_memory-lockdep-splat +++ a/mm/memory_hotplug.c @@ -1764,8 +1764,6 @@ static int __ref try_remove_memory(int n BUG_ON(check_hotplug_memory_range(start, size)); - mem_hotplug_begin();
WARNING: multiple messages have this Message-ID (diff)
From: Andrew Morton <akpm@linux-foundation.org> To: akpm@linux-foundation.org, dan.j.williams@intel.com, dave.hansen@linux.intel.com, david@redhat.com, linux-mm@kvack.org, mhocko@suse.com, mm-commits@vger.kernel.org, pasha.tatashin@soleen.com, stable@vger.kernel.org, torvalds@linux-foundation.org, vishal.l.verma@intel.com Subject: [patch 006/118] mm/memory_hotplug: fix remove_memory() lockdep splat Date: Thu, 30 Jan 2020 22:11:17 -0800 [thread overview] Message-ID: <20200131061117.PIFGHXwry%akpm@linux-foundation.org> (raw) In-Reply-To: <20200130221021.5f0211c56346d5485af07923@linux-foundation.org> From: Dan Williams <dan.j.williams@intel.com> Subject: mm/memory_hotplug: fix remove_memory() lockdep splat The daxctl unit test for the dax_kmem driver currently triggers the (false positive) lockdep splat below. It results from the fact that remove_memory_block_devices() is invoked under the mem_hotplug_lock() causing lockdep entanglements with cpu_hotplug_lock() and sysfs (kernfs active state tracking). It is a false positive because the sysfs attribute path triggering the memory remove is not the same attribute path associated with memory-block device. sysfs_break_active_protection() is not applicable since there is no real deadlock conflict, instead move memory-block device removal outside the lock. The mem_hotplug_lock() is not needed to synchronize the memory-block device removal vs the page online state, that is already handled by lock_device_hotplug(). Specifically, lock_device_hotplug() is sufficient to allow try_remove_memory() to check the offline state of the memblocks and be assured that any in progress online attempts are flushed / blocked by kernfs_drain() / attribute removal. The add_memory() path safely creates memblock devices under the mem_hotplug_lock(). There is no kernfs active state synchronization in the memblock device_register() path, so nothing to fix there. This change is only possible thanks to the recent change that refactored memory block device removal out of arch_remove_memory() (commit 4c4b7f9ba948 mm/memory_hotplug: remove memory block devices before arch_remove_memory()), and David's due diligence tracking down the guarantees afforded by kernfs_drain(). Not flagged for -stable since this only impacts ongoing development and lockdep validation, not a runtime issue. ====================================================== WARNING: possible circular locking dependency detected 5.5.0-rc3+ #230 Tainted: G OE ------------------------------------------------------ lt-daxctl/6459 is trying to acquire lock: ffff99c7f0003510 (kn->count#241){++++}, at: kernfs_remove_by_name_ns+0x41/0x80 but task is already holding lock: ffffffffa76a5450 (mem_hotplug_lock.rw_sem){++++}, at: percpu_down_write+0x20/0xe0 which lock already depends on the new lock. the existing dependency chain (in reverse order) is: -> #2 (mem_hotplug_lock.rw_sem){++++}: __lock_acquire+0x39c/0x790 lock_acquire+0xa2/0x1b0 get_online_mems+0x3e/0xb0 kmem_cache_create_usercopy+0x2e/0x260 kmem_cache_create+0x12/0x20 ptlock_cache_init+0x20/0x28 start_kernel+0x243/0x547 secondary_startup_64+0xb6/0xc0 -> #1 (cpu_hotplug_lock.rw_sem){++++}: __lock_acquire+0x39c/0x790 lock_acquire+0xa2/0x1b0 cpus_read_lock+0x3e/0xb0 online_pages+0x37/0x300 memory_subsys_online+0x17d/0x1c0 device_online+0x60/0x80 state_store+0x65/0xd0 kernfs_fop_write+0xcf/0x1c0 vfs_write+0xdb/0x1d0 ksys_write+0x65/0xe0 do_syscall_64+0x5c/0xa0 entry_SYSCALL_64_after_hwframe+0x49/0xbe -> #0 (kn->count#241){++++}: check_prev_add+0x98/0xa40 validate_chain+0x576/0x860 __lock_acquire+0x39c/0x790 lock_acquire+0xa2/0x1b0 __kernfs_remove+0x25f/0x2e0 kernfs_remove_by_name_ns+0x41/0x80 remove_files.isra.0+0x30/0x70 sysfs_remove_group+0x3d/0x80 sysfs_remove_groups+0x29/0x40 device_remove_attrs+0x39/0x70 device_del+0x16a/0x3f0 device_unregister+0x16/0x60 remove_memory_block_devices+0x82/0xb0 try_remove_memory+0xb5/0x130 remove_memory+0x26/0x40 dev_dax_kmem_remove+0x44/0x6a [kmem] device_release_driver_internal+0xe4/0x1c0 unbind_store+0xef/0x120 kernfs_fop_write+0xcf/0x1c0 vfs_write+0xdb/0x1d0 ksys_write+0x65/0xe0 do_syscall_64+0x5c/0xa0 entry_SYSCALL_64_after_hwframe+0x49/0xbe other info that might help us debug this: Chain exists of: kn->count#241 --> cpu_hotplug_lock.rw_sem --> mem_hotplug_lock.rw_sem Possible unsafe locking scenario: CPU0 CPU1 ---- ---- lock(mem_hotplug_lock.rw_sem); lock(cpu_hotplug_lock.rw_sem); lock(mem_hotplug_lock.rw_sem); lock(kn->count#241); *** DEADLOCK *** No fixes tag as this has been a long standing issue that predated the addition of kernfs lockdep annotations. Link: http://lkml.kernel.org/r/157991441887.2763922.4770790047389427325.stgit@dwillia2-desk3.amr.corp.intel.com Signed-off-by: Dan Williams <dan.j.williams@intel.com> Acked-by: Michal Hocko <mhocko@suse.com> Reviewed-by: David Hildenbrand <david@redhat.com> Cc: Vishal Verma <vishal.l.verma@intel.com> Cc: Pavel Tatashin <pasha.tatashin@soleen.com> Cc: Dave Hansen <dave.hansen@linux.intel.com> Cc: <stable@vger.kernel.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> --- mm/memory_hotplug.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) --- a/mm/memory_hotplug.c~mm-memory_hotplug-fix-remove_memory-lockdep-splat +++ a/mm/memory_hotplug.c @@ -1764,8 +1764,6 @@ static int __ref try_remove_memory(int n BUG_ON(check_hotplug_memory_range(start, size)); - mem_hotplug_begin(); - /* * All memory blocks must be offlined before removing memory. Check * whether all memory blocks in question are offline and return error @@ -1778,9 +1776,14 @@ static int __ref try_remove_memory(int n /* remove memmap entry */ firmware_map_remove(start, start + size, "System RAM"); - /* remove memory block devices before removing memory */ + /* + * Memory block device removal under the device_hotplug_lock is + * a barrier against racing online attempts. + */ remove_memory_block_devices(start, size); + mem_hotplug_begin(); + arch_remove_memory(nid, start, size, NULL); memblock_free(start, size); memblock_remove(start, size); _
next prev parent reply other threads:[~2020-01-31 6:11 UTC|newest] Thread overview: 147+ messages / expand[flat|nested] mbox.gz Atom feed top 2020-01-31 6:10 incoming Andrew Morton 2020-01-31 6:11 ` [patch 001/118] lib/test_bitmap: correct test data offsets for 32-bit Andrew Morton 2020-01-31 6:11 ` [patch 002/118] memcg: fix a crash in wb_workfn when a device disappears Andrew Morton 2020-01-31 6:11 ` [patch 003/118] mm/mempolicy.c: fix out of bounds write in mpol_parse_str() Andrew Morton 2020-01-31 6:11 ` Andrew Morton 2020-01-31 6:11 ` [patch 004/118] mm/sparse.c: reset section's mem_map when fully deactivated Andrew Morton 2020-01-31 6:11 ` Andrew Morton 2020-01-31 6:11 ` [patch 005/118] mm/migrate.c: also overwrite error when it is bigger than zero Andrew Morton 2020-01-31 6:11 ` Andrew Morton [this message] 2020-01-31 6:11 ` [patch 006/118] mm/memory_hotplug: fix remove_memory() lockdep splat Andrew Morton 2020-01-31 6:11 ` [patch 007/118] mm: thp: don't need care deferred split queue in memcg charge move path Andrew Morton 2020-01-31 6:11 ` Andrew Morton 2020-01-31 6:11 ` [patch 008/118] mm: move_pages: report the number of non-attempted pages Andrew Morton 2020-01-31 6:11 ` [patch 009/118] scripts/spelling.txt: add more spellings to spelling.txt Andrew Morton 2020-01-31 6:11 ` [patch 010/118] scripts/spelling.txt: add "issus" typo Andrew Morton 2020-01-31 6:11 ` [patch 011/118] fs: ocfs: remove unnecessary assertion in dlm_migrate_lockres Andrew Morton 2020-01-31 6:11 ` Andrew Morton 2020-01-31 6:11 ` [patch 012/118] ocfs2: remove unneeded semicolons Andrew Morton 2020-01-31 6:11 ` [patch 013/118] ocfs2: make local header paths relative to C files Andrew Morton 2020-01-31 6:11 ` Andrew Morton 2020-01-31 6:11 ` [patch 014/118] ocfs2/dlm: remove redundant assignment to ret Andrew Morton 2020-01-31 6:11 ` [patch 015/118] ocfs2/dlm: move BITS_TO_BYTES() to bitops.h for wider use Andrew Morton 2020-01-31 6:11 ` Andrew Morton 2020-01-31 6:11 ` [patch 016/118] ocfs2: fix a NULL pointer dereference when call ocfs2_update_inode_fsync_trans() Andrew Morton 2020-01-31 6:11 ` [patch 017/118] ocfs2: use ocfs2_update_inode_fsync_trans() to access t_tid in handle->h_transaction Andrew Morton 2020-01-31 6:11 ` [patch 018/118] mm/slub.c: avoid slub allocation while holding list_lock Andrew Morton 2020-02-03 17:25 ` Christopher Lameter 2020-01-31 6:12 ` [patch 019/118] mm/kmemleak: turn kmemleak_lock and object->lock to raw_spinlock_t Andrew Morton 2020-01-31 6:12 ` [patch 020/118] mm/debug.c: always print flags in dump_page() Andrew Morton 2020-01-31 6:12 ` [patch 021/118] mm/filemap.c: clean up filemap_write_and_wait() Andrew Morton 2020-01-31 6:12 ` Andrew Morton 2020-01-31 6:12 ` [patch 022/118] mm: fix gup_pud_range Andrew Morton 2020-01-31 6:12 ` [patch 023/118] mm/gup.c: use is_vm_hugetlb_page() to check whether to follow huge Andrew Morton 2020-01-31 6:12 ` [patch 024/118] mm/gup: factor out duplicate code from four routines Andrew Morton 2020-01-31 6:12 ` [patch 025/118] mm/gup: move try_get_compound_head() to top, fix minor issues Andrew Morton 2020-01-31 6:12 ` Andrew Morton 2020-01-31 6:12 ` [patch 026/118] mm: Cleanup __put_devmap_managed_page() vs ->page_free() Andrew Morton 2020-01-31 6:12 ` [patch 027/118] mm: devmap: refactor 1-based refcounting for ZONE_DEVICE pages Andrew Morton 2020-01-31 6:12 ` [patch 028/118] goldish_pipe: rename local pin_user_pages() routine Andrew Morton 2020-01-31 6:12 ` [patch 029/118] mm: fix get_user_pages_remote()'s handling of FOLL_LONGTERM Andrew Morton 2020-01-31 6:12 ` [patch 030/118] vfio: fix FOLL_LONGTERM use, simplify get_user_pages_remote() call Andrew Morton 2020-01-31 6:12 ` Andrew Morton 2020-01-31 6:12 ` [patch 031/118] mm/gup: allow FOLL_FORCE for get_user_pages_fast() Andrew Morton 2020-01-31 6:12 ` [patch 032/118] IB/umem: use get_user_pages_fast() to pin DMA pages Andrew Morton 2020-01-31 6:12 ` Andrew Morton 2020-01-31 6:12 ` [patch 033/118] media/v4l2-core: set pages dirty upon releasing DMA buffers Andrew Morton 2020-01-31 6:12 ` [patch 034/118] mm/gup: introduce pin_user_pages*() and FOLL_PIN Andrew Morton 2020-01-31 6:12 ` [patch 035/118] goldish_pipe: convert to pin_user_pages() and put_user_page() Andrew Morton 2020-01-31 6:12 ` Andrew Morton 2020-01-31 6:13 ` [patch 036/118] IB/{core,hw,umem}: set FOLL_PIN via pin_user_pages*(), fix up ODP Andrew Morton 2020-01-31 6:13 ` [patch 037/118] mm/process_vm_access: set FOLL_PIN via pin_user_pages_remote() Andrew Morton 2020-01-31 6:13 ` [patch 038/118] drm/via: set FOLL_PIN via pin_user_pages_fast() Andrew Morton 2020-01-31 6:13 ` [patch 039/118] fs/io_uring: set FOLL_PIN via pin_user_pages() Andrew Morton 2020-01-31 6:13 ` [patch 040/118] net/xdp: " Andrew Morton 2020-01-31 6:13 ` [patch 041/118] media/v4l2-core: pin_user_pages (FOLL_PIN) and put_user_page() conversion Andrew Morton 2020-01-31 6:13 ` [patch 042/118] vfio, mm: " Andrew Morton 2020-01-31 6:13 ` [patch 043/118] powerpc: book3s64: convert to pin_user_pages() and put_user_page() Andrew Morton 2020-01-31 6:13 ` [patch 044/118] mm/gup_benchmark: use proper FOLL_WRITE flags instead of hard-coding "1" Andrew Morton 2020-01-31 6:13 ` [patch 045/118] mm, tree-wide: rename put_user_page*() to unpin_user_page*() Andrew Morton 2020-01-31 6:13 ` [patch 046/118] mm/swapfile.c: swap_next should increase position index Andrew Morton 2020-01-31 6:13 ` [patch 047/118] mm/memcontrol.c: cleanup some useless code Andrew Morton 2020-01-31 6:13 ` [patch 048/118] mm/page_vma_mapped.c: explicitly compare pfn for normal, hugetlbfs and THP page Andrew Morton 2020-01-31 6:13 ` [patch 049/118] mm, tracing: print symbol name for kmem_alloc_node call_site events Andrew Morton 2020-01-31 6:13 ` [patch 050/118] lib/test_kasan.c: fix memory leak in kmalloc_oob_krealloc_more() Andrew Morton 2020-01-31 6:13 ` [patch 051/118] mm/early_ioremap.c: use %pa to print resource_size_t variables Andrew Morton 2020-01-31 6:13 ` [patch 052/118] mm/page_alloc: skip non present sections on zone initialization Andrew Morton 2020-01-31 6:14 ` [patch 053/118] mm: remove the memory isolate notifier Andrew Morton 2020-01-31 6:14 ` Andrew Morton 2020-01-31 6:14 ` [patch 054/118] mm: remove "count" parameter from has_unmovable_pages() Andrew Morton 2020-01-31 6:14 ` [patch 055/118] mm/vmscan.c: remove unused return value of shrink_node Andrew Morton 2020-01-31 6:14 ` Andrew Morton 2020-01-31 6:14 ` [patch 056/118] mm/vmscan: remove prefetch_prev_lru_page Andrew Morton 2020-01-31 6:14 ` Andrew Morton 2020-01-31 6:14 ` [patch 057/118] mm/vmscan: remove unused RECLAIM_OFF/RECLAIM_ZONE Andrew Morton 2020-01-31 6:14 ` [patch 058/118] tools/vm/slabinfo: fix sanity checks enabling Andrew Morton 2020-01-31 6:14 ` [patch 059/118] mm/memblock: define memblock_physmem_add() Andrew Morton 2020-01-31 6:14 ` [patch 060/118] memblock: Use __func__ in remaining memblock_dbg() call sites Andrew Morton 2020-01-31 6:14 ` [patch 061/118] mm, oom: dump stack of victim when reaping failed Andrew Morton 2020-01-31 6:14 ` [patch 062/118] mm/huge_memory.c: use head to check huge zero page Andrew Morton 2020-01-31 6:14 ` [patch 063/118] mm/huge_memory.c: use head to emphasize the purpose of page Andrew Morton 2020-01-31 6:14 ` [patch 064/118] mm/huge_memory.c: reduce critical section protected by split_queue_lock Andrew Morton 2020-01-31 6:14 ` [patch 065/118] mm/migrate: remove useless mask of start address Andrew Morton 2020-01-31 6:14 ` [patch 066/118] mm/migrate: clean up some minor coding style Andrew Morton 2020-01-31 6:14 ` [patch 067/118] mm/migrate: add stable check in migrate_vma_insert_page() Andrew Morton 2020-01-31 6:14 ` [patch 068/118] mm, thp: fix defrag setting if newline is not used Andrew Morton 2020-01-31 6:14 ` [patch 069/118] mm/mmap.c: get rid of odd jump labels in find_mergeable_anon_vma() Andrew Morton 2020-01-31 6:14 ` [patch 070/118] mm/memory_hotplug: pass in nid to online_pages() Andrew Morton 2020-01-31 6:14 ` Andrew Morton 2020-01-31 6:14 ` [patch 071/118] mm/hotplug: silence a lockdep splat with printk() Andrew Morton 2020-01-31 6:15 ` [patch 072/118] mm/page_isolation: fix potential warning from user Andrew Morton 2020-01-31 6:15 ` [patch 073/118] mm/zswap.c: add allocation hysteresis if pool limit is hit Andrew Morton 2020-01-31 6:15 ` [patch 074/118] zswap: potential NULL dereference on error in init_zswap() Andrew Morton 2020-01-31 6:15 ` [patch 075/118] include/linux/mm.h: clean up obsolete check on space in page->flags Andrew Morton 2020-01-31 6:15 ` Andrew Morton 2020-01-31 6:15 ` [patch 076/118] include/linux/mm.h: remove dead code totalram_pages_set() Andrew Morton 2020-01-31 6:15 ` Andrew Morton 2020-01-31 6:15 ` [patch 077/118] include/linux/memory.h: drop fields 'hw' and 'phys_callback' from struct memory_block Andrew Morton 2020-01-31 6:15 ` [patch 078/118] mm: fix comments related to node reclaim Andrew Morton 2020-01-31 6:15 ` [patch 079/118] zram: try to avoid worst-case scenario on same element pages Andrew Morton 2020-01-31 6:15 ` [patch 080/118] drivers/block/zram/zram_drv.c: fix error return codes not being returned in writeback_store Andrew Morton 2020-01-31 6:15 ` [patch 081/118] include/linux/units.h: add helpers for kelvin to/from Celsius conversion Andrew Morton 2020-01-31 6:15 ` [patch 082/118] ACPI: thermal: switch to use <linux/units.h> helpers Andrew Morton 2020-01-31 6:15 ` [patch 083/118] platform/x86: asus-wmi: " Andrew Morton 2020-01-31 6:15 ` Andrew Morton 2020-01-31 6:15 ` [patch 084/118] platform/x86: intel_menlow: " Andrew Morton 2020-01-31 6:15 ` [patch 085/118] thermal: int340x: " Andrew Morton 2020-01-31 6:15 ` [patch 086/118] thermal: intel_pch: " Andrew Morton 2020-01-31 6:15 ` [patch 087/118] nvme: hwmon: " Andrew Morton 2020-01-31 6:15 ` [patch 088/118] thermal: remove kelvin to/from Celsius conversion helpers from <linux/thermal.h> Andrew Morton 2020-01-31 6:15 ` Andrew Morton 2020-01-31 6:16 ` [patch 089/118] iwlegacy: use <linux/units.h> helpers Andrew Morton 2020-01-31 6:16 ` Andrew Morton 2020-01-31 6:16 ` [patch 090/118] iwlwifi: " Andrew Morton 2020-01-31 6:28 ` Luciano Coelho 2020-01-31 6:16 ` [patch 091/118] thermal: armada: remove unused TO_MCELSIUS macro Andrew Morton 2020-01-31 6:16 ` Andrew Morton 2020-01-31 6:16 ` [patch 092/118] iio: adc: qcom-vadc-common: use <linux/units.h> helpers Andrew Morton 2020-01-31 6:16 ` [patch 093/118] lib/zlib: add s390 hardware support for kernel zlib_deflate Andrew Morton 2020-01-31 6:16 ` [patch 094/118] s390/boot: rename HEAP_SIZE due to name collision Andrew Morton 2020-01-31 6:16 ` [patch 095/118] lib/zlib: add s390 hardware support for kernel zlib_inflate Andrew Morton 2020-01-31 6:16 ` [patch 096/118] s390/boot: add dfltcc= kernel command line parameter Andrew Morton 2020-01-31 6:16 ` [patch 097/118] lib/zlib: add zlib_deflate_dfltcc_enabled() function Andrew Morton 2020-01-31 6:16 ` Andrew Morton 2020-01-31 6:16 ` [patch 098/118] btrfs: use larger zlib buffer for s390 hardware compression Andrew Morton 2020-01-31 6:16 ` [patch 099/118] lib/scatterlist.c: adjust indentation in __sg_alloc_table Andrew Morton 2020-01-31 6:16 ` [patch 100/118] uapi: rename ext2_swab() to swab() and share globally in swab.h Andrew Morton 2020-01-31 6:16 ` Andrew Morton 2020-01-31 6:16 ` [patch 101/118] lib/find_bit.c: join _find_next_bit{_le} Andrew Morton 2020-01-31 6:16 ` Andrew Morton 2020-01-31 6:16 ` [patch 102/118] lib/find_bit.c: uninline helper _find_next_bit() Andrew Morton 2020-01-31 6:16 ` [patch 103/118] fs/binfmt_elf.c: smaller code generation around auxv vector fill Andrew Morton 2020-01-31 6:16 ` [patch 104/118] fs/binfmt_elf.c: fix ->start_code calculation Andrew Morton 2020-01-31 6:16 ` [patch 105/118] fs/binfmt_elf.c: don't copy ELF header around Andrew Morton 2023-11-22 7:15 ` Jinjie Ruan 2020-01-31 6:16 ` [patch 106/118] fs/binfmt_elf.c: better codegen around current->mm Andrew Morton 2020-01-31 6:17 ` [patch 107/118] fs/binfmt_elf.c: make BAD_ADDR() unlikely Andrew Morton 2020-01-31 6:17 ` [patch 108/118] fs/binfmt_elf.c: coredump: allocate core ELF header on stack Andrew Morton 2020-01-31 6:17 ` [patch 109/118] fs/binfmt_elf.c: coredump: delete duplicated overflow check Andrew Morton 2020-01-31 6:17 ` [patch 110/118] fs/binfmt_elf.c: coredump: allow process with empty address space to coredump Andrew Morton 2020-01-31 6:17 ` [patch 111/118] init/main.c: log arguments and environment passed to init Andrew Morton 2020-01-31 6:17 ` [patch 112/118] init/main.c: remove unnecessary repair_env_string in do_initcall_level Andrew Morton 2020-01-31 6:17 ` [patch 113/118] init/main.c: fix quoted value handling in unknown_bootoption Andrew Morton 2020-01-31 6:17 ` [patch 114/118] init/main.c: fix misleading "This architecture does not have kernel memory protection" message Andrew Morton 2020-01-31 6:17 ` [patch 115/118] reiserfs: prevent NULL pointer dereference in reiserfs_insert_item() Andrew Morton 2020-01-31 6:17 ` [patch 116/118] execve: warn if process starts with executable stack Andrew Morton 2020-01-31 6:17 ` [patch 117/118] include/linux/io-mapping.h-mapping: use PHYS_PFN() macro in io_mapping_map_atomic_wc() Andrew Morton 2020-01-31 6:17 ` [patch 118/118] kcov: ignore fault-inject and stacktrace Andrew Morton
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20200131061117.PIFGHXwry%akpm@linux-foundation.org \ --to=akpm@linux-foundation.org \ --cc=dan.j.williams@intel.com \ --cc=dave.hansen@linux.intel.com \ --cc=david@redhat.com \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-mm@kvack.org \ --cc=mhocko@suse.com \ --cc=mm-commits@vger.kernel.org \ --cc=pasha.tatashin@soleen.com \ --cc=stable@vger.kernel.org \ --cc=torvalds@linux-foundation.org \ --cc=vishal.l.verma@intel.com \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.