Search Linux Wireless

[PATCH] backports: rename some mem functions to not break custom kernels

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



When custom patches are cherry-picked to a kernel, some symbols exported
by backports may clash with the built-in ones. Rename the backports
symbols using the standard backport_ prefix to prevent that. Backported
drivers will resolve to the correct function via a define.

The offending symbols were exported by the patch below:

commit 2ce5c22448bb45998318267c00b5d6ef9cff3170
Author: Hauke Mehrtens <hauke@xxxxxxxxxx>
Date:   Thu Jun 6 13:48:04 2013 +0200

    backports: backport some memory functions

Signed-off-by: Arik Nemtsov <arik@xxxxxxxxxx>
---
 backport/backport-include/asm/mtrr.h |  7 +++++--
 backport/backport-include/linux/io.h | 14 +++++++-------
 backport/compat/backport-3.11.c      | 16 ++++++++--------
 3 files changed, 20 insertions(+), 17 deletions(-)

diff --git a/backport/backport-include/asm/mtrr.h b/backport/backport-include/asm/mtrr.h
index cf0f6fd..c5760b4 100644
--- a/backport/backport-include/asm/mtrr.h
+++ b/backport/backport-include/asm/mtrr.h
@@ -7,14 +7,17 @@
  * The following functions are for use by other drivers that cannot use
  * arch_phys_wc_add and arch_phys_wc_del.
  */
+#ifndef phys_wc_to_mtrr_index
 #ifdef CONFIG_MTRR
-extern int phys_wc_to_mtrr_index(int handle);
+extern int backport_phys_wc_to_mtrr_index(int handle);
 #else
-static inline int phys_wc_to_mtrr_index(int handle)
+static inline int backport_phys_wc_to_mtrr_index(int handle)
 {
 	return -1;
 }
 #endif /* CONFIG_MTRR */
+#define phys_wc_to_mtrr_index LINUX_BACKPORT(phys_wc_to_mtrr_index)
+#endif
 #endif /* (LINUX_VERSION_CODE < KERNEL_VERSION(3,11,0)) */
 
 #endif /* __BACKPORT_ASM_MTRR_H */
diff --git a/backport/backport-include/linux/io.h b/backport/backport-include/linux/io.h
index 9a5b308..5f62c62 100644
--- a/backport/backport-include/linux/io.h
+++ b/backport/backport-include/linux/io.h
@@ -15,22 +15,22 @@
  */
 #ifndef arch_phys_wc_add
 #ifdef CONFIG_MTRR
-extern int __must_check arch_phys_wc_add(unsigned long base,
-					 unsigned long size);
-extern void arch_phys_wc_del(int handle);
+extern int __must_check backport_arch_phys_wc_add(unsigned long base,
+						  unsigned long size);
+extern void backport_arch_phys_wc_del(int handle);
 #else
-static inline int __must_check arch_phys_wc_add(unsigned long base,
-						unsigned long size)
+static inline int __must_check backport_arch_phys_wc_add(unsigned long base,
+							 unsigned long size)
 {
 	return 0;  /* It worked (i.e. did nothing). */
 }
 
-static inline void arch_phys_wc_del(int handle)
+static inline void backport_arch_phys_wc_del(int handle)
 {
 }
 #endif /* CONFIG_MTRR */
 
-#define arch_phys_wc_add arch_phys_wc_add
+#define arch_phys_wc_add LINUX_BACKPORT(arch_phys_wc_add)
 #endif
 
 #endif /* __BACKPORT_LINUX_IO_H */
diff --git a/backport/compat/backport-3.11.c b/backport/compat/backport-3.11.c
index c6d5a02..5ff17d1 100644
--- a/backport/compat/backport-3.11.c
+++ b/backport/compat/backport-3.11.c
@@ -21,7 +21,7 @@
 #define MTRR_TO_PHYS_WC_OFFSET 1000
 
 /**
- * arch_phys_wc_add - add a WC MTRR and handle errors if PAT is unavailable
+ * backport_arch_phys_wc_add - add a WC MTRR and handle errors if PAT is unavailable
  * @base: Physical base address
  * @size: Size of region
  *
@@ -32,7 +32,7 @@
  * Drivers must store the return value to pass to mtrr_del_wc_if_needed,
  * but drivers should not try to interpret that return value.
  */
-int arch_phys_wc_add(unsigned long base, unsigned long size)
+int backport_arch_phys_wc_add(unsigned long base, unsigned long size)
 {
 	int ret;
 
@@ -49,7 +49,7 @@ int arch_phys_wc_add(unsigned long base, unsigned long size)
 	}
 	return ret + MTRR_TO_PHYS_WC_OFFSET;
 }
-EXPORT_SYMBOL_GPL(arch_phys_wc_add);
+EXPORT_SYMBOL_GPL(backport_arch_phys_wc_add);
 
 /*
  * arch_phys_wc_del - undoes arch_phys_wc_add
@@ -60,17 +60,17 @@ EXPORT_SYMBOL_GPL(arch_phys_wc_add);
  * The API guarantees that mtrr_del_wc_if_needed(error code) and
  * mtrr_del_wc_if_needed(0) do nothing.
  */
-void arch_phys_wc_del(int handle)
+void backport_arch_phys_wc_del(int handle)
 {
 	if (handle >= 1) {
 		WARN_ON(handle < MTRR_TO_PHYS_WC_OFFSET);
 		mtrr_del(handle - MTRR_TO_PHYS_WC_OFFSET, 0, 0);
 	}
 }
-EXPORT_SYMBOL_GPL(arch_phys_wc_del);
+EXPORT_SYMBOL_GPL(backport_arch_phys_wc_del);
 
 /*
- * phys_wc_to_mtrr_index - translates arch_phys_wc_add's return value
+ * backport_phys_wc_to_mtrr_index - translates arch_phys_wc_add's return value
  * @handle: Return value from arch_phys_wc_add
  *
  * This will turn the return value from arch_phys_wc_add into an mtrr
@@ -80,13 +80,13 @@ EXPORT_SYMBOL_GPL(arch_phys_wc_del);
  * in printk line.  Alas there is an illegitimate use in some ancient
  * drm ioctls.
  */
-int phys_wc_to_mtrr_index(int handle)
+int backport_phys_wc_to_mtrr_index(int handle)
 {
 	if (handle < MTRR_TO_PHYS_WC_OFFSET)
 		return -1;
 	else
 		return handle - MTRR_TO_PHYS_WC_OFFSET;
 }
-EXPORT_SYMBOL_GPL(phys_wc_to_mtrr_index);
+EXPORT_SYMBOL_GPL(backport_phys_wc_to_mtrr_index);
 
 #endif /* CONFIG_MTRR */
-- 
1.8.1.2

--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Wireless Personal Area Network]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite Hiking]     [MIPS Linux]     [ARM Linux]     [Linux RAID]

  Powered by Linux