Date: Fri, 20 Jun 2003 04:21:27 -0500 From: "Frank S. Fejes III" <frank@oopdreams.com> To: freebsd-questions@freebsd.org Subject: System freeze after PPP disconnect on Sony Vaio R505 and Message-ID: <E19TI5u-0003q0-00@pintail.mail.pas.earthlink.net>
next in thread | raw e-mail | index | archive | help
5.1-RELEASE Message-Id: <20030620042127.000360f5.frank@oopdreams.com> Organization: oopdreams software, inc. X-Mailer: Sylpheed version 0.9.2 (GTK+ 1.2.10; i686-pc-linux-gnu) Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Hello all. I have installed FreeBSD 5.1-RELEASE on a Sony R505JL laptop and the system is regularly hanging/freezing after disconnecting ppp connections. This laptop has required a few slight configuration changes to run at all including: + changing the BIOS to disable plug and play...the kernel would panic during the installation otherwise + adding hw.pci.allow_unsupported_io_range="1" to the loader.conf file... the system would freeze with the insertion of a pcmcia card otherwise + patching /usr/src/sys/dev/pci/pci.c in order to get USB to work at all (see the end of the post for this patch if interested) As a little background on the laptop, it is ACPI-based and ships with a firewire docking station with cdrom and floppy. Both work under FreeBSD and, in fact, FreeBSD is the first free unix I've used on the laptop that can actually install off that firewire cdrom device (Debian Linux and NetBSD were the other two operating systems I've run on the laptop - btw the machine is stable with both). Back to the freeze, all I need to do to repeat it is to connect using ppp (ie, ppp -ddial isp) then disconnect (kill pid of the ppp process). A few seconds after the process has been killed the system will freeze and the fan will immediately start blowing on high. I cannot ping or otherwise connect to the machine from another machine on the network and am forced to use the power button. I see nothing in the error logs except, as I connect, I occasionally see an entry like: Jun 18 17:22:23 vaibsd kernel: sio4: 1 more silo overflow (total 1) I have enabled debugging in the kernel in hopes of perhaps seeing more detail before/during the freeze but see no other messages. On a similar (hopefully related) note, if I attempt to power down the machine using 'shutdown -p now', the system will also freeze at the poweroff point and the fan will start blowing at high. The only difference is that even the power button will not allow the system to reboot...I must physically remove and reattach the battery pack. If I disable ACPI then the system does not hang but I also cannot use the firewire device, USB, or the pcmcia slot so that's not really an option. Has anyone seen this problem or worked around it? Is there anything I can do on my end to try to get more detail that could help pin down the problem? Thanks! --frank PS: Here is the pci.c patch I referred to above that made USB work. Even if I do NOT use this patch, the system will still freeze upon ppp disconnect and shutdown with the -p option. *** pci.c.orig Tue Apr 15 22:15:08 2003 --- pci.c Mon Jun 16 13:45:09 2003 *************** *** 169,173 **** --- 169,175 ---- static int pci_enable_io_modes = 1; + static int pci_route_existing = 1; TUNABLE_INT("hw.pci.enable_io_modes", (int *)&pci_enable_io_modes); + TUNABLE_INT("hw.pci.route_existing", (int *)&pci_route_existing); SYSCTL_INT(_hw_pci, OID_AUTO, enable_io_modes, CTLFLAG_RW, &pci_enable_io_modes, 1, *************** *** 175,178 **** --- 177,185 ---- enable these bits correctly. We'd like to do this all the time, but there\n\ are some peripherals that this causes problems with."); + SYSCTL_INT(_hw_pci, OID_AUTO, route_existing, CTLFLAG_RW, + &pci_route_existing, 1, + "Perform interrupt routing for devices with wired PCI interrupt pins\n\ + and legacy interrupt lines. Sony VAIO GRX670 requires this for audio\n\ + interrupts."); /* Find a device_t by bus/slot/function */ *************** *** 808,811 **** --- 815,824 ---- */ cfg->intline = PCIB_ROUTE_INTERRUPT(pcib, dev, cfg->intpin); + #else + /* + * XXX: Do we need to re-program the device's PCIREG intline? + */ + if (pci_route_existing) + cfg->intline = PCIB_ROUTE_INTERRUPT(pcib, dev, + cfg->intpin); #endif resource_list_add(rl, SYS_RES_IRQ, 0, cfg->intline,
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?E19TI5u-0003q0-00>