From: Luc Van Oostenryck <luc.vanoostenryck@gmail.com>
To: Matthew Wilcox <willy@infradead.org>
Cc: Souptick Joarder <jrdr.linux@gmail.com>,
akpm@linux-foundation.org, mike.kravetz@oracle.com,
linux-mm@kvack.org, linux-kernel@vger.kernel.org,
linux-sparse@vger.kernel.org
Subject: Re: [PATCH] include/linux/hugetlb.h: Convert to use vm_fault_t
Date: Tue, 19 Mar 2019 18:51:08 +0100 [thread overview]
Message-ID: <20190319175107.oxwjf72hpcqqmo3l@ltop.local> (raw)
In-Reply-To: <20190319032022.GR19508@bombadil.infradead.org>
On Mon, Mar 18, 2019 at 08:20:22PM -0700, Matthew Wilcox wrote:
> On Mon, Mar 18, 2019 at 09:56:05PM +0530, Souptick Joarder wrote:
> > >> mm/memory.c:3968:21: sparse: incorrect type in assignment (different
> > >> base types) @@ expected restricted vm_fault_t [usertype] ret @@
> > >> got e] ret @@
> > mm/memory.c:3968:21: expected restricted vm_fault_t [usertype] ret
> > mm/memory.c:3968:21: got int
>
> I think this may be a sparse bug.
>
> Compare:
>
> +++ b/mm/memory.c
> @@ -3964,6 +3964,9 @@ vm_fault_t handle_mm_fault(struct vm_area_struct *vma, unsigned long address,
> if (flags & FAULT_FLAG_USER)
> mem_cgroup_enter_user_fault();
>
> + ret = 0;
> + ret = ({ BUG(); 0; });
> + ret = 1;
> if (unlikely(is_vm_hugetlb_page(vma)))
> ret = hugetlb_fault(vma->vm_mm, vma, address, flags);
> else
>
> ../mm/memory.c:3968:13: sparse: warning: incorrect type in assignment (different base types)
> ../mm/memory.c:3968:13: sparse: expected restricted vm_fault_t [assigned] [usertype] ret
> ../mm/memory.c:3968:13: sparse: got int
> ../mm/memory.c:3969:13: sparse: warning: incorrect type in assignment (different base types)
> ../mm/memory.c:3969:13: sparse: expected restricted vm_fault_t [assigned] [usertype] ret
> ../mm/memory.c:3969:13: sparse: got int
>
> vm_fault_t is __bitwise:
>
> include/linux/mm_types.h:typedef __bitwise unsigned int vm_fault_t;
>
> so simply assigning 0 to ret should work (and does on line 3967), but
> sparse doesn't seem to like it as part of a ({ .. }) expression.
This is the expected behaviour. The constant 0 is magic regarding
bitwise types but ({ ...; 0; }) is not, it is just an ordinary expression
of type 'int'.
So, IMHO, Souptick's patch is the right thing to do.
Best regards,
-- Luc Van Oostenryck
prev parent reply other threads:[~2019-03-19 17:51 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-03-18 16:26 [PATCH] include/linux/hugetlb.h: Convert to use vm_fault_t Souptick Joarder
2019-03-19 0:17 ` Mike Kravetz
2019-03-19 2:34 ` Souptick Joarder
2019-03-19 3:20 ` Matthew Wilcox
2019-03-19 17:51 ` Luc Van Oostenryck [this message]
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=20190319175107.oxwjf72hpcqqmo3l@ltop.local \
--to=luc.vanoostenryck@gmail.com \
--cc=akpm@linux-foundation.org \
--cc=jrdr.linux@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=linux-sparse@vger.kernel.org \
--cc=mike.kravetz@oracle.com \
--cc=willy@infradead.org \
/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: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).