lkml.org 
[lkml]   [2021]   [Nov]   [26]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH 3/3] btrfs: Avoid live-lock in search_ioctl() on hardware with sub-page faults
    On Wed, Nov 24, 2021 at 07:20:24PM +0000, Catalin Marinas wrote:
    > Commit a48b73eca4ce ("btrfs: fix potential deadlock in the search
    > ioctl") addressed a lockdep warning by pre-faulting the user pages and
    > attempting the copy_to_user_nofault() in an infinite loop. On
    > architectures like arm64 with MTE, an access may fault within a page at
    > a location different from what fault_in_writeable() probed. Since the
    > sk_offset is rewound to the previous struct btrfs_ioctl_search_header
    > boundary, there is no guaranteed forward progress and search_ioctl() may
    > live-lock.
    >
    > Use fault_in_exact_writeable() instead which probes the entire user
    > buffer for faults at sub-page granularity.
    >
    > Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
    > Reported-by: Al Viro <viro@zeniv.linux.org.uk>

    Acked-by: David Sterba <dsterba@suse.com>

    \
     
     \ /
      Last update: 2021-11-26 17:46    [W:2.676 / U:0.092 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site