Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc

Pull sparc fixes from David Miller:

- Fix symbol version generation for assembler on sparc, from
Nagarathnam Muthusamy.

- Fix compound page handling in gup_huge_pmd(), from Nitin Gupta.

* git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc:
sparc64: Fix gup_huge_pmd
Adding the type of exported symbols
sed regex in Makefile.build requires line break between exported symbols
Adding asm-prototypes.h for genksyms to generate crc

+57 -20
+24
arch/sparc/include/asm/asm-prototypes.h
··· 1 + /* 2 + * Copyright (c) 2017 Oracle and/or its affiliates. All rights reserved. 3 + */ 4 + 5 + #include <asm/xor.h> 6 + #include <asm/checksum.h> 7 + #include <asm/trap_block.h> 8 + #include <asm/uaccess.h> 9 + #include <asm/atomic.h> 10 + #include <asm/ftrace.h> 11 + #include <asm/cacheflush.h> 12 + #include <asm/oplib.h> 13 + #include <linux/atomic.h> 14 + 15 + void *__memscan_zero(void *, size_t); 16 + void *__memscan_generic(void *, int, size_t); 17 + void *__bzero(void *, size_t); 18 + void VISenter(void); /* Dummy prototype to supress warning */ 19 + #undef memcpy 20 + #undef memset 21 + void *memcpy(void *dest, const void *src, size_t n); 22 + void *memset(void *s, int c, size_t n); 23 + typedef int TItype __attribute__((mode(TI))); 24 + TItype __multi3(TItype a, TItype b);
+26 -18
arch/sparc/lib/atomic_64.S
··· 62 62 ENDPROC(atomic_fetch_##op); \ 63 63 EXPORT_SYMBOL(atomic_fetch_##op); 64 64 65 - #define ATOMIC_OPS(op) ATOMIC_OP(op) ATOMIC_OP_RETURN(op) ATOMIC_FETCH_OP(op) 65 + ATOMIC_OP(add) 66 + ATOMIC_OP_RETURN(add) 67 + ATOMIC_FETCH_OP(add) 66 68 67 - ATOMIC_OPS(add) 68 - ATOMIC_OPS(sub) 69 + ATOMIC_OP(sub) 70 + ATOMIC_OP_RETURN(sub) 71 + ATOMIC_FETCH_OP(sub) 69 72 70 - #undef ATOMIC_OPS 71 - #define ATOMIC_OPS(op) ATOMIC_OP(op) ATOMIC_FETCH_OP(op) 73 + ATOMIC_OP(and) 74 + ATOMIC_FETCH_OP(and) 72 75 73 - ATOMIC_OPS(and) 74 - ATOMIC_OPS(or) 75 - ATOMIC_OPS(xor) 76 + ATOMIC_OP(or) 77 + ATOMIC_FETCH_OP(or) 76 78 77 - #undef ATOMIC_OPS 79 + ATOMIC_OP(xor) 80 + ATOMIC_FETCH_OP(xor) 81 + 78 82 #undef ATOMIC_FETCH_OP 79 83 #undef ATOMIC_OP_RETURN 80 84 #undef ATOMIC_OP ··· 128 124 ENDPROC(atomic64_fetch_##op); \ 129 125 EXPORT_SYMBOL(atomic64_fetch_##op); 130 126 131 - #define ATOMIC64_OPS(op) ATOMIC64_OP(op) ATOMIC64_OP_RETURN(op) ATOMIC64_FETCH_OP(op) 127 + ATOMIC64_OP(add) 128 + ATOMIC64_OP_RETURN(add) 129 + ATOMIC64_FETCH_OP(add) 132 130 133 - ATOMIC64_OPS(add) 134 - ATOMIC64_OPS(sub) 131 + ATOMIC64_OP(sub) 132 + ATOMIC64_OP_RETURN(sub) 133 + ATOMIC64_FETCH_OP(sub) 135 134 136 - #undef ATOMIC64_OPS 137 - #define ATOMIC64_OPS(op) ATOMIC64_OP(op) ATOMIC64_FETCH_OP(op) 135 + ATOMIC64_OP(and) 136 + ATOMIC64_FETCH_OP(and) 138 137 139 - ATOMIC64_OPS(and) 140 - ATOMIC64_OPS(or) 141 - ATOMIC64_OPS(xor) 138 + ATOMIC64_OP(or) 139 + ATOMIC64_FETCH_OP(or) 142 140 143 - #undef ATOMIC64_OPS 141 + ATOMIC64_OP(xor) 142 + ATOMIC64_FETCH_OP(xor) 143 + 144 144 #undef ATOMIC64_FETCH_OP 145 145 #undef ATOMIC64_OP_RETURN 146 146 #undef ATOMIC64_OP
+1
arch/sparc/lib/checksum_64.S
··· 38 38 39 39 .align 32 40 40 .globl csum_partial 41 + .type csum_partial,#function 41 42 EXPORT_SYMBOL(csum_partial) 42 43 csum_partial: /* %o0=buff, %o1=len, %o2=sum */ 43 44 prefetch [%o0 + 0x000], #n_reads
+1
arch/sparc/lib/csum_copy.S
··· 65 65 add %o5, %o4, %o4 66 66 67 67 .globl FUNC_NAME 68 + .type FUNC_NAME,#function 68 69 EXPORT_SYMBOL(FUNC_NAME) 69 70 FUNC_NAME: /* %o0=src, %o1=dst, %o2=len, %o3=sum */ 70 71 LOAD(prefetch, %o0 + 0x000, #n_reads)
+2
arch/sparc/lib/memscan_64.S
··· 14 14 .text 15 15 .align 32 16 16 .globl __memscan_zero, __memscan_generic 17 + .type __memscan_zero,#function 18 + .type __memscan_generic,#function 17 19 .globl memscan 18 20 EXPORT_SYMBOL(__memscan_zero) 19 21 EXPORT_SYMBOL(__memscan_generic)
+1
arch/sparc/lib/memset.S
··· 63 63 __bzero_begin: 64 64 65 65 .globl __bzero 66 + .type __bzero,#function 66 67 .globl memset 67 68 EXPORT_SYMBOL(__bzero) 68 69 EXPORT_SYMBOL(memset)
+2 -2
arch/sparc/mm/gup.c
··· 78 78 return 0; 79 79 80 80 refs = 0; 81 - head = pmd_page(pmd); 82 - page = head + ((addr & ~PMD_MASK) >> PAGE_SHIFT); 81 + page = pmd_page(pmd) + ((addr & ~PMD_MASK) >> PAGE_SHIFT); 82 + head = compound_head(page); 83 83 do { 84 84 VM_BUG_ON(compound_head(page) != head); 85 85 pages[*nr] = page;