Re: [PATCH] hexagon: Fix build failures in linux-next

From: Guenter Roeck
Date: Tue Dec 09 2014 - 22:14:10 EST

On 12/09/2014 04:25 PM, rkuo wrote:
On Tue, Dec 09, 2014 at 02:21:45PM -0800, Guenter Roeck wrote:
hexagon:defconfig fails to build in linux-next since commit 332fd7c4fef5
("genirq: Generic chip: Change irq_reg_{readl,writel} arguments").

The primary build failure is

arch/hexagon/include/asm/cacheflush.h: In function 'copy_to_user_page':
arch/hexagon/include/asm/cacheflush.h:89:22: error: 'VM_EXEC' undeclared

This is the result of including of <linux/io.h> from <linux/irq.h>,
which is now necessary due to the use of readl and writel from irq.h.
This causes recursive inclusions in hexagon code; cacheflush.h is included
from mm.h prior to the definition of VM_EXEC.

Fix the problem by moving copy_to_user_page from the hexagon include file to
arch/hexagon/mm/cache.c, similar to other architectures. After this change,
several redefinitions of readl and writel are reported. Those are caused
by recursive inclusions of io.h and asm/cacheflush.h. Fix those problems by
reducing the number of files included from those files. Also, it was necessary
to stop including asm-generic/cacheflush.h from asm/cacheflush.h. Instead,
functionality originally provided by asm-generic/cacheflush.h is now coded
in asm/cacheflush.h directly.

Cc: Kevin Cernekee <cernekee@xxxxxxxxx>
Cc: Jason Cooper <jason@xxxxxxxxxxxxxx>
Signed-off-by: Guenter Roeck <linux@xxxxxxxxxxxx>
Compile tested only. Applies to linux-next as well as mainline.

arch/hexagon/include/asm/cacheflush.h | 36 ++++++++++++++++++-----------------
arch/hexagon/include/asm/io.h | 5 -----
arch/hexagon/kernel/setup.c | 1 +
arch/hexagon/mm/cache.c | 10 ++++++++++
arch/hexagon/mm/ioremap.c | 1 +
5 files changed, 31 insertions(+), 22 deletions(-)

Thanks for the cleanup; tested working on hardware.

I'm fine taking this into my tree, or it can go via another tree if more

Hi Richard,

Your tree should be fine as long as you plan to push your changes to Linus
during the current release cycle.


To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at
Please read the FAQ at