Re: [v3.11][v3.12][v3.13][Regression] EISA: Initialize device beforeits resources

From: Bjorn Helgaas
Date: Fri Jan 17 2014 - 12:02:14 EST


On Thu, Jan 16, 2014 at 01:14:01PM -0500, Joseph Salisbury wrote:
> On 01/16/2014 01:12 PM, Bjorn Helgaas wrote:
> > On Thu, Jan 16, 2014 at 10:53 AM, Joseph Salisbury
> > <joseph.salisbury@xxxxxxxxxxxxx> wrote:
> >> Hi Bjorn,
> >>
> >> A kernel bug was opened against Ubuntu [0]. After a kernel bisect, it
> >> was found the following commit introduced this bug:
> > Sorry about that, and thanks for the report. Did you mean to include
> > URL for the bug?
> Yes, sorry about that:
> http://pad.lv/1251816

Hi Joseph,

Can you attach the 3.8.0-32-generic config (the one matching the successful
boot at https://launchpadlibrarian.net/156685076/BootDmesg.txt) to the bug?

The only way I can match up the output:

EISA: Probing bus 0 at eisa.0
Cannot allocate resource for EISA slot 1
Cannot allocate resource for EISA slot 2
Cannot allocate resource for EISA slot 4
Cannot allocate resource for EISA slot 5
EISA: Detected 0 cards.

with the code is if we have root->force_probe set, and the only way I see for
that to happen is if we're in the virtual_eisa_root_init() path and
CONFIG_EISA_VLB_PRIMING=y:

#if defined(CONFIG_ALPHA_JENSEN) || defined(CONFIG_EISA_VLB_PRIMING)
#define EISA_FORCE_PROBE_DEFAULT 1
#else
#define EISA_FORCE_PROBE_DEFAULT 0
#endif

static int force_probe = EISA_FORCE_PROBE_DEFAULT;

virtual_eisa_root_init
eisa_bus_root.force_probe = force_probe
eisa_root_register(&eisa_bus_root)
eisa_probe(root)
printk("EISA: Probing bus %d at %s")
if (eisa_request_resources)
printk("EISA: Cannot allocate resource for mainboard") # we don't see this
if (eisa_init_device)
eisa_release_resources
kfree
if (!root->force_probe)
return -ENODEV
goto force_probe
printk("EISA: Mainboard %s detected") # we don't see this

force_probe:
for (i = 1; ...; i++)
if (eisa_request_resources(i))
printk("Cannot allocate resource for EISA slot %d", i)
printk("EISA: Detected %d cards")

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