All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Du, Changbin" <changbin.du@intel.com>
To: Steven Rostedt <rostedt@goodmis.org>
Cc: changbin.du@intel.com, yamada.masahiro@socionext.com,
	michal.lkml@markovi.net, tglx@linutronix.de, mingo@redhat.com,
	akpm@linux-foundation.org, rdunlap@infradead.org, x86@kernel.org,
	lgirdwood@gmail.com, broonie@kernel.org, arnd@arndb.de,
	linux-kbuild@vger.kernel.org, linux-kernel@vger.kernel.org,
	linux-arch@vger.kernel.org
Subject: Re: [PATCH v2 5/5] asm-generic: fix build error in fix_to_virt with CONFIG_DEBUG_EXPERIENCE
Date: Thu, 3 May 2018 21:25:08 +0800	[thread overview]
Message-ID: <20180503132508.qudxf67tyijvjndo@intel.com> (raw)
In-Reply-To: <20180502101930.25a5437d@gandalf.local.home>

On Wed, May 02, 2018 at 10:19:30AM -0400, Steven Rostedt wrote:
> On Wed,  2 May 2018 21:45:00 +0800
> changbin.du@intel.com wrote:
> 
> > From: Changbin Du <changbin.du@intel.com>
> > 
> > With '-Og' optimization level, GCC would not optimize a count for a loop
> > as a constant value. But BUILD_BUG_ON() only accept compile-time constant
> > values.
> > 
> > arch/arm/mm/mmu.o: In function `fix_to_virt':
> > /home/changbin/work/linux/./include/asm-generic/fixmap.h:31: undefined reference to `__compiletime_assert_31'
> > Makefile:1051: recipe for target 'vmlinux' failed
> > make: *** [vmlinux] Error 1
> > 
> > Signed-off-by: Changbin Du <changbin.du@intel.com>
> > ---
> >  include/asm-generic/fixmap.h | 3 ++-
> >  1 file changed, 2 insertions(+), 1 deletion(-)
> > 
> > diff --git a/include/asm-generic/fixmap.h b/include/asm-generic/fixmap.h
> > index 827e4d3..a6576d4 100644
> > --- a/include/asm-generic/fixmap.h
> > +++ b/include/asm-generic/fixmap.h
> > @@ -28,7 +28,8 @@
> >   */
> >  static __always_inline unsigned long fix_to_virt(const unsigned int idx)
> >  {
> > -	BUILD_BUG_ON(idx >= __end_of_fixed_addresses);
> > +	BUILD_BUG_ON(__builtin_constant_p(idx) &&
> > +		     idx >= __end_of_fixed_addresses);
> 
> Hmm, this changes the check slightly. Perhaps we should only do this
> when your config is active:
> 
> {
> 	BUILD_BUG_ON(
> /* CONFIG_DEBUG_OPTIMIZE may cause idx not to be constant */
> #ifdef CONFIG_DEBUG_OPTIMIZE
> 		__builtin_constant_p(idx) &&
> #endif
> 		idx >= __end_of_fixed_addresses);
> 
> }
I think fix_to_virt() is designed for constant idx only. So I think we should
fix it at the caller side by replacing it with __fix_to_virt().

--- a/arch/arm/mm/mmu.c
+++ b/arch/arm/mm/mmu.c
@@ -1599,7 +1599,7 @@ static void __init early_fixmap_shutdown(void)
                pte_t *pte;
                struct map_desc map;

-               map.virtual = fix_to_virt(i);
+               map.virtual = __fix_to_virt(i);
                pte = pte_offset_early_fixmap(pmd_off_k(map.virtual), map.virtual);

> 
> -- Steve
> 
> >  	return __fix_to_virt(idx);
> >  }
> >  
> 

-- 
Thanks,
Changbin Du

  reply	other threads:[~2018-05-03 13:35 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-05-02 13:44 [PATCH v2 0/5] kernel hacking: GCC optimization for debug experience (-Og) changbin.du
2018-05-02 13:44 ` [PATCH v2 1/5] x86/mm: surround level4_kernel_pgt with #ifdef CONFIG_X86_5LEVEL...#endif changbin.du
2018-05-02 13:44 ` [PATCH v2 2/5] regulator: add dummy function of_find_regulator_by_node changbin.du
2018-05-02 13:44 ` [PATCH v2 3/5] kernel hacking: new config NO_AUTO_INLINE to disable compiler auto-inline optimizations changbin.du
2018-05-02 14:07   ` Steven Rostedt
2018-05-02 20:27   ` Arnd Bergmann
2018-05-03 13:00     ` Du, Changbin
2018-05-03 14:16       ` Steven Rostedt
2018-05-02 13:44 ` [PATCH v2 4/5] kernel hacking: new config DEBUG_EXPERIENCE to apply GCC -Og optimization changbin.du
2018-05-02 14:17   ` Steven Rostedt
2018-05-02 20:45     ` Andrew Morton
2018-05-03  1:19       ` Steven Rostedt
2018-05-03 13:45         ` Du, Changbin
2018-05-03 14:28           ` Steven Rostedt
2018-05-05 23:57             ` Du, Changbin
2018-05-06  0:27               ` Randy Dunlap
2018-05-02 19:26   ` Randy Dunlap
2018-05-02 13:45 ` [PATCH v2 5/5] asm-generic: fix build error in fix_to_virt with CONFIG_DEBUG_EXPERIENCE changbin.du
2018-05-02 14:19   ` Steven Rostedt
2018-05-03 13:25     ` Du, Changbin [this message]
2018-05-03 14:19       ` Steven Rostedt
2018-05-03 16:39         ` weylin
2018-05-02 14:56 ` [PATCH v2 0/5] kernel hacking: GCC optimization for debug experience (-Og) Daniel Thompson
2018-05-03 13:49   ` Du, Changbin

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=20180503132508.qudxf67tyijvjndo@intel.com \
    --to=changbin.du@intel.com \
    --cc=akpm@linux-foundation.org \
    --cc=arnd@arndb.de \
    --cc=broonie@kernel.org \
    --cc=lgirdwood@gmail.com \
    --cc=linux-arch@vger.kernel.org \
    --cc=linux-kbuild@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=michal.lkml@markovi.net \
    --cc=mingo@redhat.com \
    --cc=rdunlap@infradead.org \
    --cc=rostedt@goodmis.org \
    --cc=tglx@linutronix.de \
    --cc=x86@kernel.org \
    --cc=yamada.masahiro@socionext.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: link
Be 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.