diff mbox series

ARM: at91: move platform-specific asm-offset.h to arch/arm/mach-at91

Message ID 20190823024346.591-1-yamada.masahiro@socionext.com
State Accepted
Commit 9fac85a6db8999922f2cd92dfe2e83e063b31a94
Headers show
Series ARM: at91: move platform-specific asm-offset.h to arch/arm/mach-at91 | expand

Commit Message

Masahiro Yamada Aug. 23, 2019, 2:43 a.m. UTC
<generated/at91_pm_data-offsets.h> is only generated and included by
arch/arm/mach-at91/, so it does not need to reside in the globally
visible include/generated/.

I renamed it to arch/arm/mach-at91/pm_data-offsets.h since the prefix
'at91_' is just redundant in mach-at91/.

My main motivation of this change is to avoid the race condition for
the parallel build (-j) when CONFIG_IKHEADERS is enabled.

When it is enabled, all the headers under include/ are archived into
kernel/kheaders_data.tar.xz and exposed in the sysfs.

In the parallel build, we have no idea in which order files are built.

 - If at91_pm_data-offsets.h is built before kheaders_data.tar.xz,
   the header will be included in the archive. Probably nobody will
   use it, but it is harmless except that it will increase the archive
   size needlessly.

 - If kheaders_data.tar.xz is built before at91_pm_data-offsets.h,
   the header will not be included in the archive. However, in the next
   build, the archive will be re-generated to include the newly-found
   at91_pm_data-offsets.h. This is not nice from the build system point
   of view.

 - If at91_pm_data-offsets.h and kheaders_data.tar.xz are built at the
   same time, the corrupted header might be included in the archive,
   which does not look nice either.

This commit fixes the race.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>

---

 arch/arm/mach-at91/.gitignore   | 1 +
 arch/arm/mach-at91/Makefile     | 5 +++--
 arch/arm/mach-at91/pm_suspend.S | 2 +-
 3 files changed, 5 insertions(+), 3 deletions(-)
 create mode 100644 arch/arm/mach-at91/.gitignore

-- 
2.17.1

Comments

Alexandre Belloni Aug. 23, 2019, 7:50 p.m. UTC | #1
On 23/08/2019 11:43:45+0900, Masahiro Yamada wrote:
> <generated/at91_pm_data-offsets.h> is only generated and included by

> arch/arm/mach-at91/, so it does not need to reside in the globally

> visible include/generated/.

> 

> I renamed it to arch/arm/mach-at91/pm_data-offsets.h since the prefix

> 'at91_' is just redundant in mach-at91/.

> 

> My main motivation of this change is to avoid the race condition for

> the parallel build (-j) when CONFIG_IKHEADERS is enabled.

> 

> When it is enabled, all the headers under include/ are archived into

> kernel/kheaders_data.tar.xz and exposed in the sysfs.

> 

> In the parallel build, we have no idea in which order files are built.

> 

>  - If at91_pm_data-offsets.h is built before kheaders_data.tar.xz,

>    the header will be included in the archive. Probably nobody will

>    use it, but it is harmless except that it will increase the archive

>    size needlessly.

> 

>  - If kheaders_data.tar.xz is built before at91_pm_data-offsets.h,

>    the header will not be included in the archive. However, in the next

>    build, the archive will be re-generated to include the newly-found

>    at91_pm_data-offsets.h. This is not nice from the build system point

>    of view.

> 

>  - If at91_pm_data-offsets.h and kheaders_data.tar.xz are built at the

>    same time, the corrupted header might be included in the archive,

>    which does not look nice either.

> 

> This commit fixes the race.

> 

> Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>

> ---

> 

>  arch/arm/mach-at91/.gitignore   | 1 +

>  arch/arm/mach-at91/Makefile     | 5 +++--

>  arch/arm/mach-at91/pm_suspend.S | 2 +-

>  3 files changed, 5 insertions(+), 3 deletions(-)

>  create mode 100644 arch/arm/mach-at91/.gitignore

> 

Applied, thanks.

-- 
Alexandre Belloni, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com
diff mbox series

Patch

diff --git a/arch/arm/mach-at91/.gitignore b/arch/arm/mach-at91/.gitignore
new file mode 100644
index 000000000000..2ecd6f51c8a9
--- /dev/null
+++ b/arch/arm/mach-at91/.gitignore
@@ -0,0 +1 @@ 
+pm_data-offsets.h
diff --git a/arch/arm/mach-at91/Makefile b/arch/arm/mach-at91/Makefile
index 31b61f0e1c07..de64301dcff2 100644
--- a/arch/arm/mach-at91/Makefile
+++ b/arch/arm/mach-at91/Makefile
@@ -19,9 +19,10 @@  ifeq ($(CONFIG_PM_DEBUG),y)
 CFLAGS_pm.o += -DDEBUG
 endif
 
-include/generated/at91_pm_data-offsets.h: arch/arm/mach-at91/pm_data-offsets.s FORCE
+$(obj)/pm_data-offsets.h: $(obj)/pm_data-offsets.s FORCE
 	$(call filechk,offsets,__PM_DATA_OFFSETS_H__)
 
-arch/arm/mach-at91/pm_suspend.o: include/generated/at91_pm_data-offsets.h
+$(obj)/pm_suspend.o: $(obj)/pm_data-offsets.h
 
 targets += pm_data-offsets.s
+clean-files += pm_data-offsets.h
diff --git a/arch/arm/mach-at91/pm_suspend.S b/arch/arm/mach-at91/pm_suspend.S
index c751f047b116..ed57c879d4e1 100644
--- a/arch/arm/mach-at91/pm_suspend.S
+++ b/arch/arm/mach-at91/pm_suspend.S
@@ -10,7 +10,7 @@ 
 #include <linux/linkage.h>
 #include <linux/clk/at91_pmc.h>
 #include "pm.h"
-#include "generated/at91_pm_data-offsets.h"
+#include "pm_data-offsets.h"
 
 #define	SRAMC_SELF_FRESH_ACTIVE		0x01
 #define	SRAMC_SELF_FRESH_EXIT		0x00