From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id ACF11E7716C for ; Thu, 5 Dec 2024 15:20:54 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 5924C6B00F0; Thu, 5 Dec 2024 10:19:14 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id E05C16B00CC; Thu, 5 Dec 2024 10:19:13 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 30B746B00CB; Thu, 5 Dec 2024 10:19:10 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0010.hostedemail.com [216.40.44.10]) by kanga.kvack.org (Postfix) with ESMTP id 8866C6B00D2 for ; Mon, 7 Oct 2024 09:23:57 -0400 (EDT) Received: from smtpin04.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id 000401612F6 for ; Mon, 7 Oct 2024 13:23:56 +0000 (UTC) X-FDA: 82646874072.04.D8BC600 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by imf02.hostedemail.com (Postfix) with ESMTP id D061F80018 for ; Mon, 7 Oct 2024 13:23:54 +0000 (UTC) Authentication-Results: imf02.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b="I/NqYNHp"; dmarc=pass (policy=none) header.from=redhat.com; spf=pass (imf02.hostedemail.com: domain of peterx@redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=peterx@redhat.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1728307336; a=rsa-sha256; cv=none; b=f0PF+Ux8zmqmO2c3Yb/9RKHkzgSJCItKDlLGWu99fvCpLAWNJMLQQhPaJoRR2QQMsLjq23 KUX3jXwzDGeFCje1ABg6HN/dbrTKgWUAUifRqPQ8hvD8K3uSjpDKfoGWq2T4mbAWuOIzkw O7kjOnqMjlKtwLG/lfA5izorZp7pkzY= ARC-Authentication-Results: i=1; imf02.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b="I/NqYNHp"; dmarc=pass (policy=none) header.from=redhat.com; spf=pass (imf02.hostedemail.com: domain of peterx@redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=peterx@redhat.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1728307336; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=oss3ICSNrAKdOFGCKeG0o3dAFNOBHVsvSmNPB5Fkn9w=; b=KarRWENwgiJczuR5Z7ZVqeNjqbx6N+1+NG48yEiZuwRd0jjioAYHmE5aIbY41/P0R2SN4e emwMSQUq1vqbsUXaDMPhphT3WRaNVKFcBIQAD5JDEsISplgmqozlY5zJQG+oJUF05uk72N AC1YjbQtg9/xhwV2FGsGn6FVUvezQWM= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1728307434; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=oss3ICSNrAKdOFGCKeG0o3dAFNOBHVsvSmNPB5Fkn9w=; b=I/NqYNHp83ucZSXPeuNeDWh7kbjzvy3uO5XOmmxG3UeWlDsnu8avx5S8QublCrS3Rj8FBB /XTDmc+tcm7ikvVD2gChYMJJFw5dN5nT80GyvAZwattXb/+s0Anev+wJch5GxdiqUcVk/q Z7g0HgvjXFfj6CPLCDQN5IEqFQni0SQ= Received: from mail-qk1-f198.google.com (mail-qk1-f198.google.com [209.85.222.198]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-78-l03tEiAOMMSBccK1FS5-1A-1; Mon, 07 Oct 2024 09:23:51 -0400 X-MC-Unique: l03tEiAOMMSBccK1FS5-1A-1 Received: by mail-qk1-f198.google.com with SMTP id af79cd13be357-7ae48475234so1207368285a.0 for ; Mon, 07 Oct 2024 06:23:51 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1728307430; x=1728912230; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=oss3ICSNrAKdOFGCKeG0o3dAFNOBHVsvSmNPB5Fkn9w=; b=SXWR11+RT8t7wZdjyjpjaQkEQIrwAjJkTfszTalhhXT8Y84E2UklGEkuh/3XmcBa82 24Vke5cPJrjHMnah9MKP6WGkYt1YFEKJEuUqBmCxc4IDMsIQ9VeIsBJH7Qj3ENPANicz QxYYkSG9EMmU3bn/SM97fxog7YVrp+cf9fXp3t5Edb9PbG0CuaZYkmWnfuhgxdeU1MXA 6v/lZaFub9SWZJyazg/RsIINWmhEG5m53XgeoLGtF2BF25wZFFRIhKMDOCKDY21rJDKn twl80GjuRyOwkkwdGkFIqZPxNcMgpuApLAG7Ruzdf1gPZSqM963paYl371Ofc9PhweNv rVrg== X-Forwarded-Encrypted: i=1; AJvYcCUR43A4q2se0yBtE6tBpAiYmFiK42lb7rsVNvRk3O6pWnJySArNoIoOBqvJ4N38uPTWqC7oS94oqA==@kvack.org X-Gm-Message-State: AOJu0YybtqvNrNjTwZJKF9nuXj66Pc5OBuz5h8G8v8vIuIRLNZVrsrLA GGH4xoWwmnqdqD5r82PX9KohML56D4Jna9xmcsQrFqlw51ugrikdXVtbQ6qCIO15/6T2AwNVuWF apTEOLz+l6U6OAVUU5flPTrZ0/CknjpgPXdLFw0awPw02p9+T X-Received: by 2002:a05:6214:2d4a:b0:6c1:8663:e8f0 with SMTP id 6a1803df08f44-6cb9a438d1emr180438106d6.28.1728307430596; Mon, 07 Oct 2024 06:23:50 -0700 (PDT) X-Google-Smtp-Source: AGHT+IFOwuVLJDMVviv8FvhVYRSLdM+vw/6uHZ/RtpIv7gJwA0MDjLHNEEhXPwvBiBNetWVJSwIfsg== X-Received: by 2002:a05:6214:2d4a:b0:6c1:8663:e8f0 with SMTP id 6a1803df08f44-6cb9a438d1emr180437856d6.28.1728307430224; Mon, 07 Oct 2024 06:23:50 -0700 (PDT) Received: from x1n (pool-99-254-114-190.cpe.net.cable.rogers.com. [99.254.114.190]) by smtp.gmail.com with ESMTPSA id 6a1803df08f44-6cba46e267bsm25698446d6.46.2024.10.07.06.23.49 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 07 Oct 2024 06:23:49 -0700 (PDT) Date: Mon, 7 Oct 2024 09:23:47 -0400 From: Peter Xu To: Matthew Wilcox Cc: manas18244@iiitd.ac.in, Andrew Morton , Shuah Khan , Anup Sharma , linux-mm@kvack.org, linux-kernel@vger.kernel.org, syzbot+093d096417e7038a689b@syzkaller.appspotmail.com Subject: Re: [PATCH v3] Fixes: null pointer dereference in pfnmap_lockdep_assert Message-ID: References: <20241004-fix-null-deref-v3-1-f9459b1cc95f@iiitd.ac.in> MIME-Version: 1.0 In-Reply-To: X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset=utf-8 Content-Disposition: inline X-Rspamd-Queue-Id: D061F80018 X-Rspam-User: X-Rspamd-Server: rspam05 X-Stat-Signature: ur5rwf6tojzk5xkzur43m4xmq1jxtf1f X-HE-Tag: 1728307434-544363 X-HE-Meta: U2FsdGVkX1/qkk+TlaFmpvjUsHI7HprA/V8ym1SvzrcxlcjvOIYYfCLtH0tG95O+F0mlQv14fpjm0ngJN9cOvJTfcdELV8qngrSQ3qeUBECJWbON3a+d9fXR5Zx15cKJVJoVJnl2Hh/AWId47LUXSsMNQrCw2mKRvvjahPHqNZTqHIsKO2Pv3h8NBKoIcvRLQkPcQ7KQuZMSuftMDVvGI4yKeSxHJTGloQ1HadFyKxQHyKE2B8wfT2Dok8L6gMoNw3wY1VMDlMhDLZhrGh6y1bNXsuoySFk9jzXPxRzNtRtkHIeCBCjJnWSD9LLEQXUx/3v3+31rMto/DMqFm9OtvdgkAgdy7PuJXqgwQkfVmTBdbQl7DNPNe+2425hTGbfJq3TcLoyHLk/sRAi+Li/SragohGunE2mN12NogLLjD6wqtx6+svbEH1vd9mB/zz6QO1z7LFogAE97wFrM7VYmvbG9xa8sfu7DM7XQJkvT1OrB84Flb+Iai8ig4NRW2ipuhqPs4rBb//sBqcfTHQAkpFDJHBcO0A6kSL3JGZkbAEmEt98uJn8Hi/v5wjZcagNFqB3Dm/VgPJ9X5y1tIk3A7iaRamx3olDOt1aTMQfeJZO9t+4x8uYc5ZBZRzf3IpnM4L967K8IIA93w09HmJk4qsXmlidSfIQ874SWlOV5J9DjbcmoOuBmS4G1cJZxTDGuNHALgLfkXcPZGyyLhvsi6cSpZkppnMGYoC/AEuQEKJ+B/bYkv9nzgJvI4STuSm9hoeQL1ddOuGRcmtyTsCnsr6IIMuFfhonkxwt8REtRsF/jjeu1Ni+AOMrI9CHLHhq3l4LNjhaGYg/GBqmF8LR2O4c+b2ukpVjS8Rk3opA728oPxjEghoHRaJ/4duJdzbmNB9YM/Q11DLMr3JAcmBBzkCbOvPI/2yjLMSoSbdaSszftzFlanU06PR7h3Oaz7Ji4U3wYmfsvJ6P4+jqZChG NWqOITtT Gis8M0E2xvMpsdpQ+iUWU49tUyp4eyzKuYQmfHuA3vp/JMG2CYe1hg0CZhFbBqU5TOZ6D6cFgLHfNmdT1p/6nXgk+j/6qu/El/9e6L7Nd1O5BEkpbZves5DrS9gmphdYuYsfqH2MEQ+CmUOBuR9U387azJoBsz7HkyPFvnIn4lXDcbLczMk8jh8EVgaq8aRc2WggV7DP56WVTn8ZPZ5vUJApZsWyKuz07Md6OfrxAQVQcDA4Q6TvCdPrUNM0iaPKmAYSGnYHrTa5gs59N9O8liDUwA2U/F07CdIpBKvfW09M83c/Zs7a8tKU/JS4rrdjxi8WyMp8Gw0I1shBV3kPya81AnA2RslsxPV3a8pstho2f8YiLbwbxX9uAx1sqyvORakAjBc3feZ0L2SrnwLipxIodLqKddYryinPBz143B7FxnmVn6QGTH9UagLh7TiBfRxUp0V7dudZgidnDww5lzHGtHJ9+PBPaFavPbVV3Wghzf/GUHiK3ow5dySPus84FqDMtTvwtd4Nu6E3/pwqsuYlqcC12t4GW/Wow6OnKwmWwq6qAACDqRWWpvpTprediP0y0jn2Rjh06Lm2hlRT1Wdz8+D9+Wh//yuanW0Ifvug+4XlzeRjk9AHmOusIIkHToSY5 X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: On Fri, Oct 04, 2024 at 04:17:42PM +0100, Matthew Wilcox wrote: > On Fri, Oct 04, 2024 at 07:15:48PM +0530, Manas via B4 Relay wrote: > > +++ b/mm/memory.c > > @@ -6346,10 +6346,10 @@ static inline void pfnmap_args_setup(struct follow_pfnmap_args *args, > > static inline void pfnmap_lockdep_assert(struct vm_area_struct *vma) > > { > > #ifdef CONFIG_LOCKDEP > > - struct address_space *mapping = vma->vm_file->f_mapping; > > + struct address_space *mapping = vma->vm_file ? vma->vm_file->f_mapping : NULL; > > Overly long and complex line. Much simpler to write: > > struct address_space *mapping = NULL; > > if (vma->vm_file) > mapping = vma->vm_file->f_mapping; > > > if (mapping) > > - lockdep_assert(lockdep_is_held(&vma->vm_file->f_mapping->i_mmap_rwsem) || > > + lockdep_assert(lockdep_is_held(&mapping->i_mmap_rwsem) || > > lockdep_is_held(&vma->vm_mm->mmap_lock)); > > else > > lockdep_assert(lockdep_is_held(&vma->vm_mm->mmap_lock)); > > This one should have been lockdep_assert_held(&vma->vm_mm->mmap_lock). > > I'm not sure that the previous one is correct. The > lockdep_assert_held() macro is pretty careful about checking > LOCK_STATE_NOT_HELD to avoid the LOCK_STATE_UNKNOWN possibility. > But I'll leave that for Peter to fix. Indeed.. Then looks like we could have quite a few other places in Linux that can have used this wrong.. when the assert wants to check against either of the two locks (one mutex or rcu read lock, for example) is held. I'll send a patch after this one lands. Thanks, -- Peter Xu