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 branch 'parisc-4.11-4' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux

Pull parisc fix from Helge Deller:
"Mikulas Patocka fixed a few bugs in our new pa_memcpy() assembler
function, e.g. one bug made the kernel unbootable if source and
destination address are the same"

* 'parisc-4.11-4' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux:
parisc: fix bugs in pa_memcpy

+14 -13
+14 -13
arch/parisc/lib/lusercopy.S
··· 201 201 add dst,len,end 202 202 203 203 /* short copy with less than 16 bytes? */ 204 - cmpib,>>=,n 15,len,.Lbyte_loop 204 + cmpib,COND(>>=),n 15,len,.Lbyte_loop 205 205 206 206 /* same alignment? */ 207 207 xor src,dst,t0 ··· 216 216 /* loop until we are 64-bit aligned */ 217 217 .Lalign_loop64: 218 218 extru dst,31,3,t1 219 - cmpib,=,n 0,t1,.Lcopy_loop_16 219 + cmpib,=,n 0,t1,.Lcopy_loop_16_start 220 220 20: ldb,ma 1(srcspc,src),t1 221 221 21: stb,ma t1,1(dstspc,dst) 222 222 b .Lalign_loop64 ··· 225 225 ASM_EXCEPTIONTABLE_ENTRY(20b,.Lcopy_done) 226 226 ASM_EXCEPTIONTABLE_ENTRY(21b,.Lcopy_done) 227 227 228 + .Lcopy_loop_16_start: 228 229 ldi 31,t0 229 230 .Lcopy_loop_16: 230 231 cmpb,COND(>>=),n t0,len,.Lword_loop ··· 268 267 /* loop until we are 32-bit aligned */ 269 268 .Lalign_loop32: 270 269 extru dst,31,2,t1 271 - cmpib,=,n 0,t1,.Lcopy_loop_4 270 + cmpib,=,n 0,t1,.Lcopy_loop_8 272 271 20: ldb,ma 1(srcspc,src),t1 273 272 21: stb,ma t1,1(dstspc,dst) 274 273 b .Lalign_loop32 ··· 278 277 ASM_EXCEPTIONTABLE_ENTRY(21b,.Lcopy_done) 279 278 280 279 281 - .Lcopy_loop_4: 280 + .Lcopy_loop_8: 282 281 cmpib,COND(>>=),n 15,len,.Lbyte_loop 283 282 284 283 10: ldw 0(srcspc,src),t1 ··· 300 299 ASM_EXCEPTIONTABLE_ENTRY(16b,.Lcopy_done) 301 300 ASM_EXCEPTIONTABLE_ENTRY(17b,.Lcopy_done) 302 301 303 - b .Lcopy_loop_4 302 + b .Lcopy_loop_8 304 303 ldo -16(len),len 305 304 306 305 .Lbyte_loop: ··· 325 324 .Lunaligned_copy: 326 325 /* align until dst is 32bit-word-aligned */ 327 326 extru dst,31,2,t1 328 - cmpib,COND(=),n 0,t1,.Lcopy_dstaligned 327 + cmpib,=,n 0,t1,.Lcopy_dstaligned 329 328 20: ldb 0(srcspc,src),t1 330 329 ldo 1(src),src 331 330 21: stb,ma t1,1(dstspc,dst) ··· 363 362 cmpiclr,<> 1,t0,%r0 364 363 b,n .Lcase1 365 364 .Lcase0: 366 - cmpb,= %r0,len,.Lcda_finish 365 + cmpb,COND(=) %r0,len,.Lcda_finish 367 366 nop 368 367 369 368 1: ldw,ma 4(srcspc,src), a3 ··· 377 376 1: ldw,ma 4(srcspc,src), a3 378 377 ASM_EXCEPTIONTABLE_ENTRY(1b,.Lcda_rdfault) 379 378 ldo -1(len),len 380 - cmpb,=,n %r0,len,.Ldo0 379 + cmpb,COND(=),n %r0,len,.Ldo0 381 380 .Ldo4: 382 381 1: ldw,ma 4(srcspc,src), a0 383 382 ASM_EXCEPTIONTABLE_ENTRY(1b,.Lcda_rdfault) ··· 403 402 1: stw,ma t0, 4(dstspc,dst) 404 403 ASM_EXCEPTIONTABLE_ENTRY(1b,.Lcopy_done) 405 404 ldo -4(len),len 406 - cmpb,<> %r0,len,.Ldo4 405 + cmpb,COND(<>) %r0,len,.Ldo4 407 406 nop 408 407 .Ldo0: 409 408 shrpw a2, a3, %sar, t0 ··· 437 436 /* fault exception fixup handlers: */ 438 437 #ifdef CONFIG_64BIT 439 438 .Lcopy16_fault: 440 - 10: b .Lcopy_done 441 - std,ma t1,8(dstspc,dst) 439 + b .Lcopy_done 440 + 10: std,ma t1,8(dstspc,dst) 442 441 ASM_EXCEPTIONTABLE_ENTRY(10b,.Lcopy_done) 443 442 #endif 444 443 445 444 .Lcopy8_fault: 446 - 10: b .Lcopy_done 447 - stw,ma t1,4(dstspc,dst) 445 + b .Lcopy_done 446 + 10: stw,ma t1,4(dstspc,dst) 448 447 ASM_EXCEPTIONTABLE_ENTRY(10b,.Lcopy_done) 449 448 450 449 .exit