make UML to compile in 2.5 bk-curr
Hello!
After MIngo's patches named "atomic-thread-signals" and "tq_struct removal fixups.." were merged into bk current, patch below is necessary for UML to compile.
Bye,
Oleg
Hello!
Quoted 3 lines · Oleg Drokin
After MIngo's patches named "atomic-thread-signals" and "
tq_structremoval fixups.." were merged into bk current, patch below is necessary for UML to compile.
And here is forgotten patch.
===== arch/um/drivers/chan_kern.c 1.1 vs edited =====
arch/um/drivers/chan_kern.c +1 -1
@@ -409,7 +409,7 @@ do { if((tty != NULL) && (tty->flip.count >= TTY_FLIPBUF_SIZE)){ - queue_task(task, &tq_timer); + schedule_task(task); goto out; } err = chan->ops->read(chan->fd, &c, chan->data);
===== arch/um/kernel/signal_kern.c 1.1 vs edited =====
arch/um/kernel/signal_kern.c +10 -10
@@ -101,12 +101,12 @@ ka->sa.sa_handler =SIG_DFL ;if (!(ka->sa.sa_flags &SA_NODEFER )) { -spin_lock_irq (¤t->sigmask_lock); +spin_lock_irq (¤t->sig->siglock);sigorsets (¤t->blocked, ¤t->blocked, &ka->sa.sa_mask);sigaddset (¤t->blocked, signr);recalc_sigpending (); -spin_unlock_irq (¤t->sigmask_lock); +spin_unlock_irq (¤t->sig->siglock); } sp =PT_REGS_SP (regs);
@@ -188,11 +188,11 @@sigset_t saveset; mask &= _BLOCKABLE; -spin_lock_irq (¤t->sigmask_lock); +spin_lock_irq (¤t->sig->siglock); saveset = current->blocked;siginitset (¤t->blocked, mask);recalc_sigpending (); -spin_unlock_irq (¤t->sigmask_lock); +spin_unlock_irq (¤t->sig->siglock);while (1 ) { current->state =TASK_INTERRUPTIBLE ;
@@ -214,11 +214,11 @@return -EFAULT ;sigdelsetmask (&newset, ~_BLOCKABLE); -spin_lock_irq (¤t->sigmask_lock); +spin_lock_irq (¤t->sig->siglock); saveset = current->blocked; current->blocked = newset;recalc_sigpending (); -spin_unlock_irq (¤t->sigmask_lock); +spin_unlock_irq (¤t->sig->siglock);while (1 ) { current->state =TASK_INTERRUPTIBLE ;
@@ -234,13 +234,13 @@void *mask =sp_to_mask (PT_REGS_SP (®s));int sig_size = (_NSIG_WORDS -1 ) *sizeof (unsigned long ); -spin_lock_irq (¤t->sigmask_lock); +spin_lock_irq (¤t->sig->siglock);copy_from_user (¤t->blocked.sig[0 ],sc_sigmask (sc),sizeof (current->blocked.sig[0 ]));copy_from_user (¤t->blocked.sig[1 ], mask, sig_size);sigdelsetmask (¤t->blocked, ~_BLOCKABLE);recalc_sigpending (); -spin_unlock_irq (¤t->sigmask_lock); +spin_unlock_irq (¤t->sig->siglock);copy_sc_from_user (current->thread.regs.regs.sc, sc, &signal_frame_sc.arch);return (PT_REGS_SYSCALL_RET (¤t->thread.regs));
@@ -252,11 +252,11 @@void *mask =sp_to_rt_mask (PT_REGS_SP (®s));int sig_size = _NSIG_WORDS *sizeof (unsigned long ); -spin_lock_irq (¤t->sigmask_lock); +spin_lock_irq (¤t->sig->siglock);copy_from_user (¤t->blocked, mask, sig_size);sigdelsetmask (¤t->blocked, ~_BLOCKABLE);recalc_sigpending (); -spin_unlock_irq (¤t->sigmask_lock); +spin_unlock_irq (¤t->sig->siglock);copy_sc_from_user (current->thread.regs.regs.sc, sc, &signal_frame_sc.arch);return (PT_REGS_SYSCALL_RET (¤t->thread.regs));