Skip to contentSkip to conversation

Specialix RIO Oops fix

PATCH In review Steven Pritchard 3 participants 3 messages Feb 4, 2002 – Feb 8, 2002

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 Specialix RIO Oops fix

The patch below fixes an Oops in the Specialix RIO driver. I sent this to the maintainer a couple of months ago and never got a response.

Note that this patch doesn't actually make the driver *work* for my client... It still causes a hard lockup that I was unable to debug in the short time I had to work on it. Specialix apparently told my client that they would have to switch to the original Red Hat 7.1 kernel (2.4.2-something) if they wanted it to actually work.

In any case, this patch seems to be a no-brainer. It merely adds a check that I see in every other serial driver's set_real_termios() function.

Steve

Signature · 18 lines
[email protected]           | Southern Illinois Linux Users Group
(618)398-7360             | See web site for meeting details.
Steven Pritchard          | http://www.silug.org/

--- linux-2.4.17.orig/drivers/char/rio/rio_linux.c	Thu Oct 25 15:53:47 2001
+++ linux-2.4.17/drivers/char/rio/rio_linux.c	Mon Feb  4 08:53:34 2002
@@ -422,6 +422,11 @@
   struct tty_struct *tty;
   func_enter();
 
+  if (!((struct Port *)ptr)->gs.tty || !((struct Port *)ptr)->gs.tty->termios) {
+    func_exit();
+    return 0;
+  }
+
   tty = ((struct Port *)ptr)->gs.tty;
 
   modem = (MAJOR(tty->device) == RIO_NORMAL_MAJOR0) || (MAJOR(tty->device) == RIO_NORMAL_MAJOR1);
#1 lore raw
Quoted 3 lines

The patch below fixes an Oops in the Specialix RIO driver. I sent this to the maintainer a couple of months ago and never got a response.

Its not really going to help. You need to work out how it got like that to have any chance it broke.

Until then it would be better to use

	if(....)
		BUG()

That will get a stack trace to show why it worked

Quoted 2 lines

client that they would have to switch to the original Red Hat 7.1 kernel (2.4.2-something) if they wanted it to actually work.

Thats not a good idea. 2.4.2 has security holes, and should not be used in production systems.

#2 lore raw
In reply to Steven Pritchard
Quoted 3 lines · Steven Pritchard

The patch below fixes an Oops in the Specialix RIO driver. I sent this to the maintainer a couple of months ago and never got a response.

Hi Steve,

I'm the maintainer, and I just found your 15-11-2001 mail. Indeed I seem to have forgotten to reply.. Sorry about that.

We have fixed a couple of RIO things since 2.4.2, so I would recommend that you try running a more recent kernel....

And keep bugging me and/or perle/specialix support if you need help. This card/driver is supported and you should get the support you require. We'll work with you till it works. (but we do reserve the right to ask you to upgrade to a kernel that has fixes we've done in the past...)

Rogier.

Signature · 4 lines
** [email protected] ** http://www.BitWizard.nl/ ** +31-15-2137555 **
*-- BitWizard writes Linux device drivers for any device you may have! --*
* There are old pilots, and there are bold pilots. 
* There are also old, bald pilots.