From owner-freebsd-current@FreeBSD.ORG Thu Feb 23 14:34:17 2012 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 49C851065675; Thu, 23 Feb 2012 14:34:17 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from cyrus.watson.org (cyrus.watson.org [65.122.17.42]) by mx1.freebsd.org (Postfix) with ESMTP id 049A58FC15; Thu, 23 Feb 2012 14:34:17 +0000 (UTC) Received: from bigwig.baldwin.cx (bigwig.baldwin.cx [96.47.65.170]) by cyrus.watson.org (Postfix) with ESMTPSA id 9639846B17; Thu, 23 Feb 2012 09:34:16 -0500 (EST) Received: from jhbbsd.localnet (unknown [209.249.190.124]) by bigwig.baldwin.cx (Postfix) with ESMTPSA id 04DB4B974; Thu, 23 Feb 2012 09:34:16 -0500 (EST) From: John Baldwin To: Alexey Dokuchaev Date: Thu, 23 Feb 2012 08:28:47 -0500 User-Agent: KMail/1.13.5 (FreeBSD/8.2-CBSD-20110714-p10; KDE/4.5.5; amd64; ; ) References: <20110109140215.000011b8@unknown> <201101190814.19810.jhb@freebsd.org> <20120223064449.GA19082@FreeBSD.org> In-Reply-To: <20120223064449.GA19082@FreeBSD.org> MIME-Version: 1.0 Content-Type: Text/Plain; charset="koi8-r" Content-Transfer-Encoding: 7bit Message-Id: <201202230828.48022.jhb@freebsd.org> X-Greylist: Sender succeeded SMTP AUTH, not delayed by milter-greylist-4.2.7 (bigwig.baldwin.cx); Thu, 23 Feb 2012 09:34:16 -0500 (EST) Cc: Bruce Cran , freebsd-current@freebsd.org Subject: Re: Loading uart module fails X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 23 Feb 2012 14:34:17 -0000 On Thursday, February 23, 2012 1:44:49 am Alexey Dokuchaev wrote: > On Wed, Jan 19, 2011 at 08:14:19AM -0500, John Baldwin wrote: > > On Wednesday, January 19, 2011 5:08:10 am Bruce Cran wrote: > > > On Tue, 18 Jan 2011 11:25:38 -0500 > > > John Baldwin wrote: > > > > > > > Oh, the uart[01] devices already exist. I suspect if you removed the > > > > hints from /boot/device.hints and then kldloaded uart you would be > > > > ok. I think this is an "old" bug that might also be in 8.x. > > > > > > I'm running -CURRENT from a couple of weeks ago so it if it's an old > > > bug it apparently hasn't been fixed yet. > > > > Yes, I don't think it is fixed, and I think 8.x is likely broken in this > > regard as well. Can you verify that removing the hints "fixes" the issue? > > Same thing here, default uart settings in /boot/device.hints prevent the > module from loading correctly. Moreover, unloading it and then doing > "devinfo -rv" panics my 8.3-PRERELEASE laptop: > > Fatal trap 12: page fault while in kernel mode > fault virtual address = 0xc5511205 > fault code = supervisor read, page not present > instruction pointer = 0x20:0xc05783ad > stack pointer = 0x28:0xe789c994 > frame pointer = 0x28:0xe789c99c > code segment = base 0x0, limit 0xfffff, type 0x1b > = DPL 0, pres 1, def32 1, gran 1 > processor eflags = interrupt enabled, resume, IOPL = 0 > current process = 2522 (devinfo) > > (kgdb) bt > ... > #10 0xc05783ad in strlcpy (dst=0xe789c9d8 "", > src=0xc5511205
, siz=32) > at /usr/src/sys/libkern/strlcpy.c:54 > #11 0xc050b1df in sysctl_devices (oidp=0xc06f4880, arg1=0xe789cc04, arg2=2, > req=0xe789cb8c) at /usr/src/sys/kern/subr_bus.c:4575 > #12 0xc04efb23 in sysctl_root (oidp=Variable "oidp" is not available. > ) at /usr/src/sys/kern/kern_sysctl.c:1455 > #13 0xc04efdc2 in userland_sysctl (td=0xc5d6c5c0, name=0xe789cbf8, > namelen=5, > old=0xbfbfea9c, oldlenp=0xbfbfea94, inkernel=0, new=0x0, newlen=0, > retval=0xe789cc58, flags=0) at /usr/src/sys/kern/kern_sysctl.c:1565 > #14 0xc04f014a in __sysctl (td=0xc5d6c5c0, uap=0xe789ccec) > ... > (kgdb) f 11 > #11 0xc050b1df in sysctl_devices (oidp=0xc06f4880, arg1=0xe789cc04, arg2=2, > req=0xe789cb8c) at /usr/src/sys/kern/subr_bus.c:4575 > 4575 strlcpy(udev.dv_desc, dev->desc, sizeof(udev.dv_desc)); > (kgdb) l > 4570 udev.dv_handle = (uintptr_t)dev; > 4571 udev.dv_parent = (uintptr_t)dev->parent; > 4572 if (dev->nameunit != NULL) > 4573 strlcpy(udev.dv_name, dev->nameunit, sizeof(udev.dv_name)); > 4574 if (dev->desc != NULL) > 4575 strlcpy(udev.dv_desc, dev->desc, sizeof(udev.dv_desc)); > 4576 if (dev->driver != NULL && dev->driver->name != NULL) > 4577 strlcpy(udev.dv_drivername, dev->driver->name, > 4578 sizeof(udev.dv_drivername)); > 4579 bus_child_pnpinfo_str(dev, udev.dv_pnpinfo, sizeof(udev.dv_pnpinfo)); Hmm, can you see what 'dev->nameunit' is? Maybe just do 'p *dev' actually and reply with that. -- John Baldwin