Skip to contentSkip to conversation

HVSI hangup oops

PATCH RESEND New Hollis Blanchard 1 participant 1 message Oct 27, 2004

lore
Share & tools
lore
#0 lore raw

PATCH RESEND 1/1 HVSI hangup oops

Hi Linus, I've tested this with the current BK tree as you requested.

Testing revealed that the HVSI driver could oops if carrier detect dropped mid-data transfer. Please apply this fix.

Signature · 23 lines
Hollis Blanchard
IBM Linux Technology Center

--- drivers/char/hvsi.c.orig	2004-10-11 11:36:36.000000000 -0500
+++ drivers/char/hvsi.c	2004-10-11 13:24:13.000000000 -0500
@@ -927,11 +927,17 @@ static void hvsi_close(struct tty_struct
 static void hvsi_hangup(struct tty_struct *tty)
 {
 	struct hvsi_struct *hp = tty->driver_data;
+	unsigned long flags;
 
 	pr_debug("%s\n", __FUNCTION__);
 
+	spin_lock_irqsave(&hp->lock, flags);
+
 	hp->count = 0;
+	hp->n_outbuf = 0;
 	hp->tty = NULL;
+
+	spin_unlock_irqrestore(&hp->lock, flags);
 }
 
 /* called with hp->lock held */