NetBSD-Bugs archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: kern/50453: "no console" panic after pci ext. conf change
The following reply was made to PR kern/50453; it has been noted by GNATS.
From: Patrick Welche <prlw1%cam.ac.uk@localhost>
To: gnats-bugs%NetBSD.org@localhost
Cc:
Subject: Re: kern/50453: "no console" panic after pci ext. conf change
Date: Fri, 22 Jan 2016 14:39:24 +0000
The EAGAIN is coming from bus_space_map - with the little patch below
I see:
agp0: Try bus_space_map again
agp0: bus_space_map returned error = 35 (addr = e0000001)
agp0: can't set up chipset flush page: 35
Another work-around is to keep acpi but build a kernel with
options NO_PCI_EXTENDED_CONFIG
Index: sys/dev/pci/agp_i810.c
===================================================================
RCS file: /cvsroot/src/sys/dev/pci/agp_i810.c,v
retrieving revision 1.121
diff -u -p -r1.121 agp_i810.c
--- sys/dev/pci/agp_i810.c 21 Oct 2015 15:37:35 -0000 1.121
+++ sys/dev/pci/agp_i810.c 22 Jan 2016 14:38:29 -0000
@@ -706,15 +706,27 @@ agp_i810_setup_chipset_flush_page(struct
/* BIOS allocated it for us. Use that. */
error = bus_space_map(isc->flush_bst, addr & ~1, PAGE_SIZE, 0,
&isc->flush_bsh);
- if (error)
+ if (error == EAGAIN) {
+ aprint_debug_dev(sc->as_dev, "Try bus_space_map again\n");
+ error = bus_space_map(isc->flush_bst, addr & ~1,
+ PAGE_SIZE, 0, &isc->flush_bsh);
+ }
+ if (error) {
+ aprint_debug_dev(sc->as_dev, "bus_space_map returned "
+ "error = %d (addr = %"PRIx64")\n", error,
+ (uint64_t)addr);
return error;
+ }
} else {
/* None allocated. Allocate one. */
error = bus_space_alloc(isc->flush_bst, minaddr, maxaddr,
PAGE_SIZE, PAGE_SIZE, 0, 0,
&isc->flush_addr, &isc->flush_bsh);
- if (error)
+ if (error) {
+ aprint_debug_dev(sc->as_dev, "bus_space_alloc returned "
+ "error = %d\n", error);
return error;
+ }
KASSERT(isc->flush_addr != 0);
/* Write it into the PCI config register. */
addr = isc->flush_addr | 1;
Home |
Main Index |
Thread Index |
Old Index