On Thu, Oct 27, 2016 at 04:13:49PM -0700, Andy Lutomirski wrote: > On Wed, Oct 19, 2016 at 11:28 AM, Mark Rutland <mark.rutland@xxxxxxx> wrote: > > When CONFIG_THREAD_INFO_IN_TASK is selected, the current_thread_info() > > macro relies on current having been defined prior to its use. However, > > not all users of current_thread_info() include <asm/current.h>, and thus > > current is not guaranteed to be defined. > > > > When CONFIG_THREAD_INFO_IN_TASK is not selected, it's possible that > > get_current() / current are based upon current_thread_info(), and > > <asm/current.h> includes <asm/thread_info.h>. Thus always including > > <asm/current.h> would result in circular dependences on some platforms. > > > > To ensure both cases work, this patch includes <asm/current.h>, but only > > when CONFIG_THREAD_INFO_IN_TASK is selected. > > Reviewed-by: Andy Lutomirski <luto@xxxxxxxxxx> Cheers! > although it would be nice if you moved your description of why the > include is conditional into a comment. Agreed. I've folded in the below: #ifdef CONFIG_THREAD_INFO_IN_TASK /* * For CONFIG_THREAD_INFO_IN_TASK kernels we need <asm/current.h> for the * definition of current, but for !CONFIG_THREAD_INFO_IN_TASK kernels, * including <asm/current.h> can cause a circular dependency on some platforms. */ #include <asm/current.h> #define current_thread_info() ((struct thread_info *)current) #endif Thanks, Mark. -- 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