addr < (unsigned long)_einittext;
 }
 
+/**
+ * __is_kernel_text - checks if the pointer address is located in the
+ *                    .text section
+ *
+ * @addr: address to check
+ *
+ * Returns: true if the address is located in .text, false otherwise.
+ * Note: an internal helper, only check the range of _stext to _etext.
+ */
+static inline bool __is_kernel_text(unsigned long addr)
+{
+       return addr >= (unsigned long)_stext &&
+              addr < (unsigned long)_etext;
+}
+
+/**
+ * __is_kernel - checks if the pointer address is located in the kernel range
+ *
+ * @addr: address to check
+ *
+ * Returns: true if the address is located in the kernel range, false otherwise.
+ * Note: an internal helper, only check the range of _stext to _end.
+ */
+static inline bool __is_kernel(unsigned long addr)
+{
+       return addr >= (unsigned long)_stext &&
+              addr < (unsigned long)_end;
+}
+
 #endif /* _ASM_GENERIC_SECTIONS_H_ */
 
 
 static inline int is_kernel_text(unsigned long addr)
 {
-       if ((addr >= (unsigned long)_stext && addr < (unsigned long)_etext))
+       if (__is_kernel_text(addr))
                return 1;
        return in_gate_area_no_mm(addr);
 }
 
 static inline int is_kernel(unsigned long addr)
 {
-       if (addr >= (unsigned long)_stext && addr < (unsigned long)_end)
+       if (__is_kernel(addr))
                return 1;
        return in_gate_area_no_mm(addr);
 }