On Fri, Oct 14, 2016 at 12:25:56AM +0100, Mark Rutland wrote: > Hi, > > On Thu, Oct 13, 2016 at 01:57:11PM +0200, Heiko Carstens wrote: > > The generic preempt code needs to include <asm/current.h>. Otherwise > > compilation fails if THREAD_INFO_IN_TASK is selected and the generic > > preempt code is used: > > > > ./include/linux/thread_info.h:17:54: error: 'current' undeclared (first use in this function) > > #define current_thread_info() ((struct thread_info *)current) > > I don't think this is the right fix. Users of current_thread_info() should only > have to include <linux/thread_info.h>, as <asm-generic/preempt.h> already does. > > I have a patch [1] which has <linux/thread_info.h> include <asm/current.h> the > THREAD_INFO_IN_TASK case (while avoiding circular includes over <asm/current.h> > and <asm/thread_info.h> in the !THREAD_INFO_IN_TASK case). I added that include initially to <linux/thread_info.h> too, but was afraid of include dependency hell. So I tried the minimal version, and it worked. However with the ifdef within your patch you make sure that nothing breaks by accident; so I think your version is better. > I was planning on posting an updated series with that come -rc1. That could/should also go into 4.9, so architectures could independently convert to THREAD_INFO_IN_TASK for the next merge window. -- To unsubscribe from this list: send the line "unsubscribe linux-arch" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html