Please add backports mailing list ( backports@xxxxxxxxxxxxxxx ) next time. On 08/07/2013 10:52 AM, Arik Nemtsov wrote: > 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) You should put this line before the #ifndef phy_.... and then you do not have to use backport_phys_wc_to_mtrr_index with the prefix anywhere in backports. This also applies for the other places where you manually add backport_. > +#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 */ > -- 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