DragonFly BSD
DragonFly bugs List (threaded) for 2004-08
[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]

Re: Problem with CUPS?


From: Matthew Dillon <dillon@xxxxxxxxxxxxxxxxxxxx>
Date: Thu, 19 Aug 2004 16:45:45 -0700 (PDT)

:Has anyone had any issues with their machines locking up soon after
:cups starts up? :-)  Nothing shows up on the console (ie. no debugger),
:but my entire machine locks solid.
:
:Adam

    Adam (and anyone with the freeze-on-serial-port or freeze-on-CUPS-start
    problem), do me a favor and try some things:

    (1) rename /dev/ttyd0, ttyd1, ttyd2, and ttyd3 to something else, e.g.
	/dev/ttyd0.x, /dev/ttyd1.x, ...  Then see if CUPS starts up.

    (2) Restore the original namings and try to run a getty on ttyd0 by
	editing /etc/ttys and HUPing init.  See if that crashes the machine.

    (3) If it does crash the machine, reboot (single user) and fix ttys back,
	remove the last modification I had made to the serial port code 
	(see patch below), and try running a getty on ttyd0 again to see if
	it still crashes.


					Matthew Dillon 
					<dillon@xxxxxxxxxxxxx>


Index: sio.c
===================================================================
RCS file: /cvs/src/sys/dev/serial/sio/sio.c,v
retrieving revision 1.17
retrieving revision 1.16
diff -u -r1.17 -r1.16
--- sio.c	3 Jul 2004 21:23:37 -0000	1.17
+++ sio.c	19 May 2004 22:52:49 -0000	1.16
@@ -31,7 +31,7 @@
  * SUCH DAMAGE.
  *
  * $FreeBSD: src/sys/isa/sio.c,v 1.291.2.35 2003/05/18 08:51:15 murray Exp $
- * $DragonFly: src/sys/dev/serial/sio/sio.c,v 1.17 2004/07/03 21:23:37 dillon Exp $
+ * $DragonFly: src/sys/dev/serial/sio/sio.c,v 1.16 2004/05/19 22:52:49 dillon Exp $
  *	from: @(#)com.c	7.5 (Berkeley) 5/16/91
  *	from: i386/isa sio.c,v 1.234
  */
@@ -733,21 +733,6 @@
 	}
 
 	/*
-	 * Make sure we can drain the receiver.  If we can't, the serial
-	 * port may not exist.
-	 */
-	for (fn = 0; fn < 256; ++fn) {
-		if ((sio_getreg(com, com_lsr) & LSR_RXRDY) == 0)
-			break;
-		(void)sio_getreg(com, com_data);
-	}
-	if (fn == 256) {
-		printf("sio%d: can't drain, serial port might "
-			"not exist, disabling\n", device_get_unit(dev));
-		return (ENXIO);
-	}
-
-	/*
 	 * Enable the interrupt gate and disable device interupts.  This
 	 * should leave the device driving the interrupt line low and
 	 * guarantee an edge trigger if an interrupt can be generated.



[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]