[Concept,02/10] linux: Use asm/atomic.h in fs, buffer_head, refcount

Message ID 20260418004014.1889749-3-sjg@u-boot.org
State New
Headers
Series efi-x86: boot Ubuntu live ISOs via U-Boot + BLS |

Commit Message

Simon Glass April 18, 2026, 12:39 a.m. UTC
  From: Simon Glass <sjg@chromium.org>

Including <asm-generic/atomic.h> directly in linux/fs.h,
linux/buffer_head.h and linux/refcount.h forces every consumer to the
generic implementation, even on architectures with their own
asm/atomic.h. On x86 this means atomic_add() and friends call
local_irq_save() and local_irq_restore(), which are not declared, so any
file that drags these headers in fails to build with
-Werror=implicit-function-declaration.

Switch the includes to <asm/atomic.h> so each architecture's per-arch
atomic header wins. Architectures without one fall through to
asm-generic transparently.

Signed-off-by: Simon Glass <sjg@chromium.org>
---

 include/linux/buffer_head.h | 2 +-
 include/linux/fs.h          | 2 +-
 include/linux/refcount.h    | 2 +-
 3 files changed, 3 insertions(+), 3 deletions(-)
  

Patch

diff --git a/include/linux/buffer_head.h b/include/linux/buffer_head.h
index 3b829e035aa..e844402500d 100644
--- a/include/linux/buffer_head.h
+++ b/include/linux/buffer_head.h
@@ -13,7 +13,7 @@ 
 #include <linux/list.h>
 #include <linux/spinlock.h>
 #include <linux/errno.h>
-#include <asm-generic/atomic.h>
+#include <asm/atomic.h>
 
 enum bh_state_bits {
 	BH_Uptodate,	/* Contains valid data */
diff --git a/include/linux/fs.h b/include/linux/fs.h
index c8b95528013..89e683ca647 100644
--- a/include/linux/fs.h
+++ b/include/linux/fs.h
@@ -14,7 +14,7 @@ 
 #include <linux/cred.h>
 #include <linux/rwsem.h>
 #include <linux/time.h>
-#include <asm-generic/atomic.h>
+#include <asm/atomic.h>
 
 /* Forward declarations */
 struct buffer_head;
diff --git a/include/linux/refcount.h b/include/linux/refcount.h
index ce001b437bf..6b6d84f308c 100644
--- a/include/linux/refcount.h
+++ b/include/linux/refcount.h
@@ -7,7 +7,7 @@ 
 #ifndef _LINUX_REFCOUNT_H
 #define _LINUX_REFCOUNT_H
 
-#include <asm-generic/atomic.h>
+#include <asm/atomic.h>
 
 /**
  * typedef refcount_t - reference count type