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

Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mattst88/alpha

Pull alpha updates from Matt Turner:
"A few small fixes and clean ups"

* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mattst88/alpha:
alpha: fix crash if pthread_create races with signal delivery
alpha: fix formating of stack content
alpha: fix reboot on Avanti platform
alpha: deprecate pci_get_bus_and_slot()
alpha: Fix mixed up args in EXC macro in futex operations
alpha: osf_sys.c: use timespec64 where appropriate
alpha: osf_sys.c: fix put_tv32 regression
alpha: make thread_saved_pc static
alpha: make XTABS equivalent to TAB3

+26 -18
+4 -4
arch/alpha/include/asm/futex.h
··· 20 20 "3: .subsection 2\n" \ 21 21 "4: br 1b\n" \ 22 22 " .previous\n" \ 23 - EXC(1b,3b,%1,$31) \ 24 - EXC(2b,3b,%1,$31) \ 23 + EXC(1b,3b,$31,%1) \ 24 + EXC(2b,3b,$31,%1) \ 25 25 : "=&r" (oldval), "=&r"(ret) \ 26 26 : "r" (uaddr), "r"(oparg) \ 27 27 : "memory") ··· 82 82 "3: .subsection 2\n" 83 83 "4: br 1b\n" 84 84 " .previous\n" 85 - EXC(1b,3b,%0,$31) 86 - EXC(2b,3b,%0,$31) 85 + EXC(1b,3b,$31,%0) 86 + EXC(2b,3b,$31,%0) 87 87 : "+r"(ret), "=&r"(prev), "=&r"(cmp) 88 88 : "r"(uaddr), "r"((long)(int)oldval), "r"(newval) 89 89 : "memory");
+1 -4
arch/alpha/include/asm/processor.h
··· 40 40 struct thread_struct { }; 41 41 #define INIT_THREAD { } 42 42 43 - /* Return saved PC of a blocked thread. */ 44 - struct task_struct; 45 - extern unsigned long thread_saved_pc(struct task_struct *); 46 - 47 43 /* Do necessary setup to start up a newly executed thread. */ 48 44 struct pt_regs; 49 45 extern void start_thread(struct pt_regs *, unsigned long, unsigned long); 50 46 51 47 /* Free all resources held by a thread. */ 48 + struct task_struct; 52 49 extern void release_thread(struct task_struct *); 53 50 54 51 unsigned long get_wchan(struct task_struct *p);
+5 -1
arch/alpha/include/uapi/asm/termbits.h
··· 110 110 #define VTDLY 00200000 111 111 #define VT0 00000000 112 112 #define VT1 00200000 113 - #define XTABS 01000000 /* Hmm.. Linux/i386 considers this part of TABDLY.. */ 113 + /* 114 + * Should be equivalent to TAB3, see description of TAB3 in 115 + * POSIX.1-2008, Ch. 11.2.3 "Output Modes" 116 + */ 117 + #define XTABS TAB3 114 118 115 119 /* c_cflag bit meaning */ 116 120 #define CBAUD 0000037
+1 -1
arch/alpha/kernel/pci.c
··· 425 425 if (bus == 0 && dfn == 0) { 426 426 hose = pci_isa_hose; 427 427 } else { 428 - dev = pci_get_bus_and_slot(bus, dfn); 428 + dev = pci_get_domain_bus_and_slot(0, bus, dfn); 429 429 if (!dev) 430 430 return -ENODEV; 431 431 hose = dev->sysdata;
+2 -1
arch/alpha/kernel/pci_impl.h
··· 144 144 }; 145 145 146 146 #if defined(CONFIG_ALPHA_SRM) && \ 147 - (defined(CONFIG_ALPHA_CIA) || defined(CONFIG_ALPHA_LCA)) 147 + (defined(CONFIG_ALPHA_CIA) || defined(CONFIG_ALPHA_LCA) || \ 148 + defined(CONFIG_ALPHA_AVANTI)) 148 149 # define NEED_SRM_SAVE_RESTORE 149 150 #else 150 151 # undef NEED_SRM_SAVE_RESTORE
+3 -2
arch/alpha/kernel/process.c
··· 269 269 application calling fork. */ 270 270 if (clone_flags & CLONE_SETTLS) 271 271 childti->pcb.unique = regs->r20; 272 + else 273 + regs->r20 = 0; /* OSF/1 has some strange fork() semantics. */ 272 274 childti->pcb.usp = usp ?: rdusp(); 273 275 *childregs = *regs; 274 276 childregs->r0 = 0; 275 277 childregs->r19 = 0; 276 278 childregs->r20 = 1; /* OSF/1 has some strange fork() semantics. */ 277 - regs->r20 = 0; 278 279 stack = ((struct switch_stack *) regs) - 1; 279 280 *childstack = *stack; 280 281 childstack->r26 = (unsigned long) ret_from_fork; ··· 362 361 * all. -- r~ 363 362 */ 364 363 365 - unsigned long 364 + static unsigned long 366 365 thread_saved_pc(struct task_struct *t) 367 366 { 368 367 unsigned long base = (unsigned long)task_stack_page(t);
+1 -1
arch/alpha/kernel/sys_nautilus.c
··· 237 237 bus = hose->bus = bridge->bus; 238 238 pcibios_claim_one_bus(bus); 239 239 240 - irongate = pci_get_bus_and_slot(0, 0); 240 + irongate = pci_get_domain_bus_and_slot(pci_domain_nr(bus), 0, 0); 241 241 bus->self = irongate; 242 242 bus->resource[0] = &irongate_io; 243 243 bus->resource[1] = &irongate_mem;
+9 -4
arch/alpha/kernel/traps.c
··· 160 160 for(i=0; i < kstack_depth_to_print; i++) { 161 161 if (((long) stack & (THREAD_SIZE-1)) == 0) 162 162 break; 163 - if (i && ((i % 4) == 0)) 164 - printk("\n "); 165 - printk("%016lx ", *stack++); 163 + if ((i % 4) == 0) { 164 + if (i) 165 + pr_cont("\n"); 166 + printk(" "); 167 + } else { 168 + pr_cont(" "); 169 + } 170 + pr_cont("%016lx", *stack++); 166 171 } 167 - printk("\n"); 172 + pr_cont("\n"); 168 173 dik_show_trace(sp); 169 174 } 170 175