Skip to contentSkip to conversation

make UML to compile in 2.5 bk-curr

DISCUSSION Applied Oleg Drokin 2 participants 4 messages Sep 30, 2002 – Oct 1, 2002 User-mode Linux (UML)

lore
Share & tools
lore
#0 lore raw

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

#1 lore raw

Hello!

Quoted 3 lines · Oleg Drokin

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.

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(&current->sigmask_lock);
+		spin_lock_irq(&current->sig->siglock);
 		sigorsets(&current->blocked, &current->blocked, 
 			  &ka->sa.sa_mask);
 		sigaddset(&current->blocked, signr);
 		recalc_sigpending();
-		spin_unlock_irq(&current->sigmask_lock);
+		spin_unlock_irq(&current->sig->siglock);
 	}
 
 	sp = PT_REGS_SP(regs);
@@ -188,11 +188,11 @@
 	sigset_t saveset;
 
 	mask &= _BLOCKABLE;
-	spin_lock_irq(&current->sigmask_lock);
+	spin_lock_irq(&current->sig->siglock);
 	saveset = current->blocked;
 	siginitset(&current->blocked, mask);
 	recalc_sigpending();
-	spin_unlock_irq(&current->sigmask_lock);
+	spin_unlock_irq(&current->sig->siglock);
 
 	while (1) {
 		current->state = TASK_INTERRUPTIBLE;
@@ -214,11 +214,11 @@
 		return -EFAULT;
 	sigdelsetmask(&newset, ~_BLOCKABLE);
 
-	spin_lock_irq(&current->sigmask_lock);
+	spin_lock_irq(&current->sig->siglock);
 	saveset = current->blocked;
 	current->blocked = newset;
 	recalc_sigpending();
-	spin_unlock_irq(&current->sigmask_lock);
+	spin_unlock_irq(&current->sig->siglock);
 
 	while (1) {
 		current->state = TASK_INTERRUPTIBLE;
@@ -234,13 +234,13 @@
 	void *mask = sp_to_mask(PT_REGS_SP(&regs));
 	int sig_size = (_NSIG_WORDS - 1) * sizeof(unsigned long);
 
-	spin_lock_irq(&current->sigmask_lock);
+	spin_lock_irq(&current->sig->siglock);
 	copy_from_user(&current->blocked.sig[0], sc_sigmask(sc), 
 		       sizeof(current->blocked.sig[0]));
 	copy_from_user(&current->blocked.sig[1], mask, sig_size);
 	sigdelsetmask(&current->blocked, ~_BLOCKABLE);
 	recalc_sigpending();
-	spin_unlock_irq(&current->sigmask_lock);
+	spin_unlock_irq(&current->sig->siglock);
 	copy_sc_from_user(current->thread.regs.regs.sc, sc,
 			  &signal_frame_sc.arch);
 	return(PT_REGS_SYSCALL_RET(&current->thread.regs));
@@ -252,11 +252,11 @@
 	void *mask = sp_to_rt_mask(PT_REGS_SP(&regs));
 	int sig_size = _NSIG_WORDS * sizeof(unsigned long);
 
-	spin_lock_irq(&current->sigmask_lock);
+	spin_lock_irq(&current->sig->siglock);
 	copy_from_user(&current->blocked, mask, sig_size);
 	sigdelsetmask(&current->blocked, ~_BLOCKABLE);
 	recalc_sigpending();
-	spin_unlock_irq(&current->sigmask_lock);
+	spin_unlock_irq(&current->sig->siglock);
 	copy_sc_from_user(current->thread.regs.regs.sc, sc,
 			  &signal_frame_sc.arch);
 	return(PT_REGS_SYSCALL_RET(&current->thread.regs));