> Date: Wed, 3 Feb 2016 23:04:25 -0500 > From: James Hastings <[email protected]> > > On 2/2/16, Jonathan Gray <[email protected]> wrote: > > > > Putting a "return false;" at the top of radeon_read_platform_bios() > > should prevent this method from being tried entirely. > > > > Following up on this. I continued to encounter panics afterward. I > even substituted all the code in radeon_read_platform_bios() with a > printf and return false; > > Was the stack trace wrong? I instrumented many printfs in > radeon_read_bios() and this is what I see. > > OpenBSD 5.9 (GENERIC.MP) #9: Wed Feb 3 21:56:18 EST 2016 > [email protected]:/usr/src/sys/arch/amd64/compile/GENERIC.MP > RTC BIOS diagnostic error 80<clock_battery> > real mem = 1690714112 (1612MB) > avail mem = 1635336192 (1559MB) > mpath0 at root > scsibus0 at mpath0: 256 targets > mainbus0 at root > bios0 at mainbus0: SMBIOS rev. 2.7 @ 0x66abc000 (45 entries) > bios0: vendor Insyde version "F.65" date 06/04/2014 > bios0: Hewlett-Packard Compaq CQ58 Notebook PC > acpi0 at bios0: rev 2 > acpi0: sleep states S0 S3 S4 S5 > acpi0: tables DSDT FACP UEFI HPET APIC MCFG ASF! BOOT SPCR WDRT WDAT > FPDT MSDM SSDT SSDT VFCT BGRT > acpi0: wakeup devices PB6_(S4) SPB0(S4) XPDV(S4) SPB1(S4) SPB3(S4) > GEC_(S4) OHC1(S3) OHC2(S3) OHC3(S3) OHC4(S3) EHC1(S3) EHC2(S3) > EHC3(S3) P2P_(S5) > acpitimer0 at acpi0: 3579545 Hz, 32 bits > acpihpet0 at acpi0: 14318180 Hz > acpimadt0 at acpi0 addr 0xfee00000: PC-AT compat > cpu0 at mainbus0: apid 0 (boot processor) > cpu0: AMD C-60 APU with Radeon(tm) HD Graphics, 998.69 MHz > cpu0: > FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,MMX,FXSR,SSE,SSE2,HTT,SSE3,MWAIT,SSSE3,CX16,POPCNT,NXE,MMXX,FFXSR,PAGE1GB,LONG,LAHF,CMPLEG,SVM,EAPICSP,AMCR8,ABM,SSE4A,MASSE,3DNOWP,IBS,SKINIT,ITSC > cpu0: 32KB 64b/line 2-way I-cache, 32KB 64b/line 8-way D-cache, 512KB > 64b/line 16-way L2 cache > cpu0: 8 4MB entries fully associative > cpu0: DTLB 40 4KB entries fully associative, 8 4MB entries fully associative > cpu0: smt 0, core 0, package 0 > mtrr: Pentium Pro MTRR support, 8 var ranges, 88 fixed ranges > cpu0: apic clock running at 199MHz > cpu0: mwait min=64, max=64, IBE > cpu1 at mainbus0: apid 1 (application processor) > cpu1: AMD C-60 APU with Radeon(tm) HD Graphics, 997.87 MHz > cpu1: > FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,MMX,FXSR,SSE,SSE2,HTT,SSE3,MWAIT,SSSE3,CX16,POPCNT,NXE,MMXX,FFXSR,PAGE1GB,LONG,LAHF,CMPLEG,SVM,EAPICSP,AMCR8,ABM,SSE4A,MASSE,3DNOWP,IBS,SKINIT,ITSC > cpu1: 32KB 64b/line 2-way I-cache, 32KB 64b/line 8-way D-cache, 512KB > 64b/line 16-way L2 cache > cpu1: 8 4MB entries fully associative > cpu1: DTLB 40 4KB entries fully associative, 8 4MB entries fully associative > cpu1: smt 0, core 1, package 0 > ioapic0 at mainbus0: apid 4 pa 0xfec00000, version 21, 24 pins > ioapic0: misconfigured as apic 0, remapped to apid 4 > acpimcfg0 at acpi0 addr 0xf8000000, bus 0-63 > acpiprt0 at acpi0: bus 0 (PCI0) > acpiprt1 at acpi0: bus -1 (PB4_) > acpiprt2 at acpi0: bus -1 (PB5_) > acpiprt3 at acpi0: bus -1 (PB6_) > acpiprt4 at acpi0: bus -1 (PB7_) > acpiprt5 at acpi0: bus 2 (SPB0) > acpiprt6 at acpi0: bus 6 (SPB1) > acpiprt7 at acpi0: bus 7 (SPB2) > acpiprt8 at acpi0: bus -1 (SPB3) > acpiprt9 at acpi0: bus 1 (P2P_) > acpiec0 at acpi0 > acpicpu0 at acpi0: C2(0@100 io@0xf800), C1(@1 halt!), PSS > acpicpu1 at acpi0: C2(0@100 io@0xf800), C1(@1 halt!), PSS > acpipwrres0 at acpi0: FN00, resource for FAN0 > acpitz0 at acpi0: critical temperature is 125 degC > acpibtn0 at acpi0: PWRB > acpiac0 at acpi0: AC unit online > acpibat0 at acpi0: BAT0 not present > acpibtn1 at acpi0: LID_ > acpivideo0 at acpi0: VGA_ > acpivideo1 at acpi0: VGA_ > cpu0: 998 MHz: speeds: 1000 800 MHz > pci0 at mainbus0 bus 0 > pchb0 at pci0 dev 0 function 0 "AMD AMD64 14h Host" rev 0x00 > radeondrm0 at pci0 dev 1 function 0 "ATI Radeon HD 6290" rev 0x00 > drm0 at radeondrm0 > radeondrm0: msi > ahci0 at pci0 dev 17 function 0 "ATI SBx00 SATA" rev 0x00: apic 4 int > 19, AHCI 1.2 > ahci0: port 0: 3.0Gb/s > ahci0: port 2: 1.5Gb/s > scsibus1 at ahci0: 32 targets > sd0 at scsibus1 targ 0 lun 0: <ATA, ST320LT020-9YG14, 0002> SCSI3 > 0/direct fixed naa.5000c500536c9072 > sd0: 305245MB, 512 bytes/sector, 625142448 sectors > cd0 at scsibus1 targ 2 lun 0: <hp, DVDRAM GT50N, MP01> ATAPI 5/cdrom removable > ohci0 at pci0 dev 18 function 0 "ATI SB700 USB" rev 0x00: apic 4 int > 18, version 1.0, legacy support > ehci0 at pci0 dev 18 function 2 "ATI SB700 USB2" rev 0x00: apic 4 int 17 > usb0 at ehci0: USB revision 2.0 > uhub0 at usb0 "ATI EHCI root hub" rev 2.00/1.00 addr 1 > ohci1 at pci0 dev 19 function 0 "ATI SB700 USB" rev 0x00: apic 4 int > 18, version 1.0, legacy support > ehci1 at pci0 dev 19 function 2 "ATI SB700 USB2" rev 0x00: apic 4 int 17 > usb1 at ehci1: USB revision 2.0 > uhub1 at usb1 "ATI EHCI root hub" rev 2.00/1.00 addr 1 > piixpm0 at pci0 dev 20 function 0 "ATI SBx00 SMBus" rev 0x42: polling > iic0 at piixpm0 > spdmem0 at iic0 addr 0x51: 2GB DDR3 SDRAM PC3-12800 SO-DIMM > azalia0 at pci0 dev 20 function 2 "ATI SBx00 HD Audio" rev 0x40: apic 4 int 16 > azalia0: codecs: IDT 92HD81B1X > audio0 at azalia0 > pcib0 at pci0 dev 20 function 3 "ATI SB700 ISA" rev 0x40 > ppb0 at pci0 dev 20 function 4 "ATI SB600 PCI" rev 0x40 > pci1 at ppb0 bus 1 > ppb1 at pci0 dev 21 function 0 "ATI SB800 PCIE" rev 0x00 > pci2 at ppb1 bus 2 > re0 at pci2 dev 0 function 0 "Realtek 8101E" rev 0x05: RTL8105E > (0x4080), msi, address c8:cb:b8:01:0d:22 > rlphy0 at re0 phy 7: RTL8201E 10/100 PHY, rev. 2 > ppb2 at pci0 dev 21 function 1 "ATI SB800 PCIE" rev 0x00 > pci3 at ppb2 bus 6 > vendor "Ralink", unknown product 0x539b (class network subclass > miscellaneous, rev 0x00) at pci3 dev 0 function 0 not configured > ppb3 at pci0 dev 21 function 2 "ATI SB800 PCIE" rev 0x00 > pci4 at ppb3 bus 7 > rtsx0 at pci4 dev 0 function 0 "Realtek RTS5209 Card Reader" rev 0x01: msi > sdmmc0 at rtsx0 > pchb1 at pci0 dev 24 function 0 "AMD AMD64 14h Link Cfg" rev 0x43 > pchb2 at pci0 dev 24 function 1 "AMD AMD64 14h Address Map" rev 0x00 > pchb3 at pci0 dev 24 function 2 "AMD AMD64 14h DRAM Cfg" rev 0x00 > km0 at pci0 dev 24 function 3 "AMD AMD64 14h Misc Cfg" rev 0x00 > pchb4 at pci0 dev 24 function 4 "AMD AMD64 14h CPU Power" rev 0x00 > pchb5 at pci0 dev 24 function 5 "AMD AMD64 14h Reserved" rev 0x00 > pchb6 at pci0 dev 24 function 6 "AMD AMD64 14h NB Power" rev 0x00 > pchb7 at pci0 dev 24 function 7 "AMD AMD64 14h Reserved" rev 0x00 > usb2 at ohci0: USB revision 1.0 > uhub2 at usb2 "ATI OHCI root hub" rev 1.00/1.00 addr 1 > usb3 at ohci1: USB revision 1.0 > uhub3 at usb3 "ATI OHCI root hub" rev 1.00/1.00 addr 1 > isa0 at pcib0 > isadma0 at isa0 > pckbc0 at isa0 port 0x60/5 irq 1 irq 12 > pckbd0 at pckbc0 (kbd slot) > wskbd0 at pckbd0: console keyboard > pms0 at pckbc0 (aux slot) > wsmouse0 at pms0 mux 0 > pms0: Synaptics touchpad, firmware 7.5 > pcppi0 at isa0 port 0x61 > spkr0 at pcppi0 > efifb at mainbus0 not configured > uvideo0 at uhub1 port 1 configuration 1 interface 0 "Generic HP > Truevision HD" rev 2.00/1.07 addr 2 > video0 at uvideo0 > vscsi0 at root > scsibus2 at vscsi0: 256 targets > softraid0 at root > scsibus3 at softraid0: 256 targets > root on sd0a (25d8a15ad48f6fbb.a) swap on sd0b dump on sd0b > radeon_read_platform_bios() > radeon_read_bios() > radeon_read_bios() address = pci_conf_read() > radeon_read_bios() address: 0 > radeon_read_bios() pci_conf_write > radeon_read_bios() mask = pci_conf_read() > radeon_read_bios() mask: 0 > radeon_read_bios() pci_conf_write() > radeon_read_bios() address: 1 > radeon_read_bios() bus_space_map > extent_alloc_region: extent `iomem', size 0x0 > panic: extent_alloc_region: bad size
Right. The compiler is fooling us here. I've just committed a fix for this. Basically, just return false if the size turns out to be zero. Probably doesn't make your machine magically work, but I'm curious how far it gets with this issue addressed.
