lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [day] [month] [year] [list]
Message-ID: <89E85E0168AD994693B574C80EDB9C270464C771@uk-email.terastack.bluearc.com>
Date:	Mon, 17 Jul 2006 11:44:08 +0100
From:	"Andy Chittenden" <AChittenden@...earc.com>
To:	"Andrew Morton" <akpm@...l.org>,
	"Alan Stern" <stern@...land.harvard.edu>
Cc:	<david-b@...bell.net>, <greg@...ah.com>,
	<linux-kernel@...r.kernel.org>,
	<linux-usb-devel@...ts.sourceforge.net>
Subject: RE: [linux-usb-devel] 2.6.17 hangs during boot on ASUS M2NPV-VM motherboard

> On Fri, 14 Jul 2006 14:50:16 -0400 (EDT)
> Alan Stern <stern@...land.harvard.edu> wrote:
> 
> > On Fri, 14 Jul 2006, Andrew Morton wrote:
> > 
> > > On Fri, 14 Jul 2006 16:54:25 +0100
> > > "Andy Chittenden" <AChittenden@...earc.com> wrote:
> > 
> > > > > So I guess there's something awry with the USB 
> controller driver?
> > > > > 
> > > > 
> > > > Is there any other info that someone wants to track 
> this down? Or has
> > > > someone got a fix?
> > 
> > It's hard to come up with a fix without knowing what's 
> wrong.  The current 
> > development version of that subroutine is essentially the 
> same as the 
> > version in 2.6.17.
> > 
> > If you want to pin down the problem more precisely, try 
> adding a whole 
> > bunch of printk() statements to the 
> quirk_usb_handoff_ohci() function in
> > drivers/usb/host/pci-quirks.c.
> > 
> 
> Andy, please add the below, work out what line it gets stuck 
> at and then
> let us know?  Thanks.

Well I did that and the kernel got a lot further! It ran through the
pci_init stuff without a hitch and then hung just after this line was
output:

ohci_hcd: 2005 April 22 USB 1.1 'Open' Host Controller (OHCI) Driver
(PCI)

So I littered drivers/usb/host/ohci-pci.c with similar debugging and the
last line it printed was from (marked with --->):

static int __init ohci_hcd_pci_init (void)
{
    int ret;
        printk (KERN_DEBUG "%s: " DRIVER_INFO " (PCI)\n", hcd_name);
        if (usb_disabled())
                return -ENODEV;

        D();

        pr_debug ("%s: block sizes: ed %Zd td %Zd\n", hcd_name,
                sizeof (struct ed), sizeof (struct td));
--->         D();

        ret = pci_register_driver (&ohci_pci_driver);
        D();
        return ret;

}

IE it never returned from pci_register_driver.

A bit more sprinkling of debugging showed it got to drivers/base/bus.c
(bus_add_driver()):

        D();

                driver_attach(drv);
        D();

It never returned from driver_attach().

More debugging in drivers/base/dd.c showed the last output to be (marked
with --->):

static int __driver_attach(struct device * dev, void * data)
{
        struct device_driver * drv = data;

        /*
         * Lock device and try to bind to it. We drop the error
         * here and always return 0, because we need to keep trying
         * to bind to devices and some drivers will return an error
         * simply if it didn't support the device.
         *
         * driver_probe_device() will spit a warning if there
         * is an error.
         */

--->        D();

        if (dev->parent)        /* Needed for USB */
                down(&dev->parent->sem);
        D();

IE it never returned from down.

So why did putting in the initial lot of debug alter where the kernel
hung? And what's next?

NB a reminder: 2.6.16 boots up fine on this machine.

-- 
Andy, BlueArc Engineering
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ