From 2ba254fbddded71b3af509b9970a739fc667318a Mon Sep 17 00:00:00 2001 From: Greg Kroah-Hartman Date: Fri, 16 Aug 2013 05:41:27 -0700 Subject: [PATCH] 3.4-stable patches added patches: mips-rewrite-pfn_valid-to-work-in-modules-too.patch sparc32-add-ucmpdi2.o-to-obj-y-instead-of-lib-y.patch sparc32-add-ucmpdi2.patch --- ...ite-pfn_valid-to-work-in-modules-too.patch | 59 ++++++++++++++++++ queue-3.4/series | 3 + ...-ucmpdi2.o-to-obj-y-instead-of-lib-y.patch | 40 ++++++++++++ queue-3.4/sparc32-add-ucmpdi2.patch | 61 +++++++++++++++++++ 4 files changed, 163 insertions(+) create mode 100644 queue-3.4/mips-rewrite-pfn_valid-to-work-in-modules-too.patch create mode 100644 queue-3.4/sparc32-add-ucmpdi2.o-to-obj-y-instead-of-lib-y.patch create mode 100644 queue-3.4/sparc32-add-ucmpdi2.patch diff --git a/queue-3.4/mips-rewrite-pfn_valid-to-work-in-modules-too.patch b/queue-3.4/mips-rewrite-pfn_valid-to-work-in-modules-too.patch new file mode 100644 index 00000000000..6a297bb6745 --- /dev/null +++ b/queue-3.4/mips-rewrite-pfn_valid-to-work-in-modules-too.patch @@ -0,0 +1,59 @@ +From linux@roeck-us.net Fri Aug 16 05:40:22 2013 +From: Ralf Baechle +Date: Thu, 15 Aug 2013 22:35:53 -0700 +Subject: MIPS: Rewrite pfn_valid to work in modules, too. +To: linux-stable@vger.kernel.org +Cc: Greg Kroah-Hartman , Ralf Baechle , Guenter Roeck +Message-ID: <1376631353-26726-1-git-send-email-linux@roeck-us.net> + +From: Ralf Baechle + +Upstream commit 8b9232141bf40788cce31f893c13f344ec31ee66. + +This fixes: + + MODPOST 393 modules +ERROR: "min_low_pfn" [arch/mips/kvm/kvm.ko] undefined! +make[3]: *** [__modpost] Error 1 + +It would have been possible to just export min_low_pfn but in the end +pfn_valid should return 1 for any pfn argument for which a struct page +exists so using min_low_pfn was wrong anyway. + +[Backport to 3.4 kernel. Applies cleanly on top of current 3.4 patch queue, +and fixes "make ARCH=mips allmodconfig; make ARCH=mips" build problem. - Guenter] + +Signed-off-by: Ralf Baechle +Signed-off-by: Guenter Roeck +Signed-off-by: Greg Kroah-Hartman +--- + + arch/mips/include/asm/page.h | 17 +++++++++-------- + 1 file changed, 9 insertions(+), 8 deletions(-) + +--- a/arch/mips/include/asm/page.h ++++ b/arch/mips/include/asm/page.h +@@ -175,14 +175,15 @@ typedef struct { unsigned long pgprot; } + + #ifdef CONFIG_FLATMEM + +-#define pfn_valid(pfn) \ +-({ \ +- unsigned long __pfn = (pfn); \ +- /* avoid include hell */ \ +- extern unsigned long min_low_pfn; \ +- \ +- __pfn >= min_low_pfn && __pfn < max_mapnr; \ +-}) ++#ifndef __ASSEMBLY__ ++static inline int pfn_valid(unsigned long pfn) ++{ ++ /* avoid include hell */ ++ extern unsigned long max_mapnr; ++ ++ return pfn >= ARCH_PFN_OFFSET && pfn < max_mapnr; ++} ++#endif + + #elif defined(CONFIG_SPARSEMEM) + diff --git a/queue-3.4/series b/queue-3.4/series index 11025beb3cd..c161451084f 100644 --- a/queue-3.4/series +++ b/queue-3.4/series @@ -16,3 +16,6 @@ frv-use-core-allocator-for-task_struct.patch powerpc-numa-avoid-stupid-uninitialized-warning-from-gcc.patch alpha-makefile-don-t-enforce-small-data-model-for-kernel-builds.patch md-raid1-raid10-use-freeze_array-in-place-of-raise_barrier.patch +sparc32-add-ucmpdi2.patch +sparc32-add-ucmpdi2.o-to-obj-y-instead-of-lib-y.patch +mips-rewrite-pfn_valid-to-work-in-modules-too.patch diff --git a/queue-3.4/sparc32-add-ucmpdi2.o-to-obj-y-instead-of-lib-y.patch b/queue-3.4/sparc32-add-ucmpdi2.o-to-obj-y-instead-of-lib-y.patch new file mode 100644 index 00000000000..7f5009149a0 --- /dev/null +++ b/queue-3.4/sparc32-add-ucmpdi2.o-to-obj-y-instead-of-lib-y.patch @@ -0,0 +1,40 @@ +From 74c7b28953d4eaa6a479c187aeafcfc0280da5e8 Mon Sep 17 00:00:00 2001 +From: "David S. Miller" +Date: Sat, 19 May 2012 15:27:01 -0700 +Subject: sparc32: Add ucmpdi2.o to obj-y instead of lib-y. + +From: "David S. Miller" + +commit 74c7b28953d4eaa6a479c187aeafcfc0280da5e8 upstream. + +Otherwise if no references exist in the static kernel image, +we won't export the symbol properly to modules. + +Signed-off-by: David S. Miller +Cc: Guenter Roeck +Signed-off-by: Greg Kroah-Hartman + +--- + arch/sparc/lib/Makefile | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +--- a/arch/sparc/lib/Makefile ++++ b/arch/sparc/lib/Makefile +@@ -15,7 +15,7 @@ lib-$(CONFIG_SPARC32) += divdi3.o udivdi + lib-$(CONFIG_SPARC32) += copy_user.o locks.o + lib-y += atomic_$(BITS).o + lib-$(CONFIG_SPARC32) += lshrdi3.o ashldi3.o +-lib-$(CONFIG_SPARC32) += muldi3.o bitext.o cmpdi2.o ucmpdi2.o ++lib-$(CONFIG_SPARC32) += muldi3.o bitext.o cmpdi2.o + + lib-$(CONFIG_SPARC64) += copy_page.o clear_page.o bzero.o + lib-$(CONFIG_SPARC64) += csum_copy.o csum_copy_from_user.o csum_copy_to_user.o +@@ -40,7 +40,7 @@ lib-$(CONFIG_SPARC64) += copy_in_user.o + lib-$(CONFIG_SPARC64) += mcount.o ipcsum.o xor.o hweight.o ffs.o + + obj-y += iomap.o +-obj-$(CONFIG_SPARC32) += atomic32.o ++obj-$(CONFIG_SPARC32) += atomic32.o ucmpdi2.o + obj-y += ksyms.o + obj-$(CONFIG_SPARC64) += PeeCeeI.o + obj-y += usercopy.o diff --git a/queue-3.4/sparc32-add-ucmpdi2.patch b/queue-3.4/sparc32-add-ucmpdi2.patch new file mode 100644 index 00000000000..3bfa2889593 --- /dev/null +++ b/queue-3.4/sparc32-add-ucmpdi2.patch @@ -0,0 +1,61 @@ +From de36e66d5fa52bc6e2dacd95c701a1762b5308a7 Mon Sep 17 00:00:00 2001 +From: Sam Ravnborg +Date: Sat, 19 May 2012 11:54:11 +0200 +Subject: sparc32: add ucmpdi2 + +From: Sam Ravnborg + +commit de36e66d5fa52bc6e2dacd95c701a1762b5308a7 upstream. + +Based on copy from microblaze add ucmpdi2 implementation. +This fixes build of niu driver which failed with: + +drivers/built-in.o: In function `niu_get_nfc': +niu.c:(.text+0x91494): undefined reference to `__ucmpdi2' + +This driver will never be used on a sparc32 system, +but patch added to fix build breakage with all*config builds. + +Signed-off-by: Sam Ravnborg +Signed-off-by: David S. Miller +Cc: Guenter Roeck +Signed-off-by: Greg Kroah-Hartman + +--- + arch/sparc/lib/Makefile | 2 +- + arch/sparc/lib/ucmpdi2.c | 19 +++++++++++++++++++ + 2 files changed, 20 insertions(+), 1 deletion(-) + +--- a/arch/sparc/lib/Makefile ++++ b/arch/sparc/lib/Makefile +@@ -15,7 +15,7 @@ lib-$(CONFIG_SPARC32) += divdi3.o udivdi + lib-$(CONFIG_SPARC32) += copy_user.o locks.o + lib-y += atomic_$(BITS).o + lib-$(CONFIG_SPARC32) += lshrdi3.o ashldi3.o +-lib-$(CONFIG_SPARC32) += muldi3.o bitext.o cmpdi2.o ++lib-$(CONFIG_SPARC32) += muldi3.o bitext.o cmpdi2.o ucmpdi2.o + + lib-$(CONFIG_SPARC64) += copy_page.o clear_page.o bzero.o + lib-$(CONFIG_SPARC64) += csum_copy.o csum_copy_from_user.o csum_copy_to_user.o +--- /dev/null ++++ b/arch/sparc/lib/ucmpdi2.c +@@ -0,0 +1,19 @@ ++#include ++#include "libgcc.h" ++ ++word_type __ucmpdi2(unsigned long long a, unsigned long long b) ++{ ++ const DWunion au = {.ll = a}; ++ const DWunion bu = {.ll = b}; ++ ++ if ((unsigned int) au.s.high < (unsigned int) bu.s.high) ++ return 0; ++ else if ((unsigned int) au.s.high > (unsigned int) bu.s.high) ++ return 2; ++ if ((unsigned int) au.s.low < (unsigned int) bu.s.low) ++ return 0; ++ else if ((unsigned int) au.s.low > (unsigned int) bu.s.low) ++ return 2; ++ return 1; ++} ++EXPORT_SYMBOL(__ucmpdi2); -- 2.47.3