Re: linux-next: build failure after merge of the vfs tree

From: Josh Poimboeuf
Date: Tue Oct 06 2020 - 10:30:26 EST


On Mon, Sep 28, 2020 at 11:10:56PM -0500, Josh Poimboeuf wrote:
> > Josh, any ideas? We could, of course, make it "r"(size), but that would
> > be unpleasant in all existing callers...
>
> Sorry, I've been traveling. I'd just vote for making it "r".
>
> array_index_nospec() is always called after a usercopy. I don't think
> anyone will notice the extra mov, for the cases where it would be
> propagated as an immediate. And the argument *is* an unsigned long
> after all.
>
> Stephen, can you confirm this fixes it?

Still traveling, I didn't see an update on this. Any objections to the
below? I assume it fixes Stephen's build issue.

>
> diff --git a/arch/x86/include/asm/barrier.h b/arch/x86/include/asm/barrier.h
> index d158ea1fa250..69045ac62f58 100644
> --- a/arch/x86/include/asm/barrier.h
> +++ b/arch/x86/include/asm/barrier.h
> @@ -40,7 +40,7 @@ static inline unsigned long array_index_mask_nospec(unsigned long index,
>
> asm volatile ("cmp %1,%2; sbb %0,%0;"
> :"=r" (mask)
> - :"g"(size),"r" (index)
> + :"r"(size), "r"(index)
> :"cc");
> return mask;
> }
>

--
Josh