kern/69752: LOR in sk(4) when booting

Doug White dwhite at gumbysoft.com
Thu Jul 29 11:53:40 PDT 2004


On Thu, 29 Jul 2004, Maxim Maximov wrote:

> > Which LORs are you getting? The patch should get rid of a number of them.
> > I think I have some additional patches at home to clean up some of the
> > other bits.
> >
>
> This is the one and only I saw. And it is still there even after
> applying your patch.

Wierd. I thought I dropped the lock across child attach.  If I get back to
revising the patch I'll try to confirm this.

99% of the LORs on skc0 are harmless; skc used to grab the lock in the
beginning of every function and hold it for the duration, even though it
wasn't necessarily protecting anything.

>
> lock order reversal
>   1st 0xc1b8f8c0 skc0 (network driver) @ /usr/src/sys/pci/if_sk.c:673
>   2nd 0xc08d4d00 kernel environment (kernel environment) @
> /usr/src/sys/kern/kern_environment.c:285
> KDB: stack backtrace:
> kdb_backtrace(0,ffffffff,c08e1b78,c08e2500,c0871a38) at kdb_backtrace+0x29
> witness_checkorder(c08d4d00,1,c080fc8c,11d) at witness_checkorder+0x544
> _sx_slock(c08d4d00,c080fc8c,11d,c0c21878,a) at _sx_slock+0x50
> getenv(c07f60de,c1bd1470,c1b8f900,c1b8f900,0) at getenv+0x2f
> getenv_quad(c07f60de,c0c218b8,c083ae90,c083ae90,c0c218e0) at
> getenv_quad+0x11
> getenv_int(c07f60de,c08cb2c8,c083ae90,c1b8f900,c1b8f900) at getenv_int+0x12
> e1000phy_attach(c1b8f900) at e1000phy_attach+0x18
> device_attach(c1b8f900,c0651a34,c1b8f900,c1bbe8c0,0) at device_attach+0x58
> device_probe_and_attach(c1b8f900) at device_probe_and_attach+0xb4
> bus_generic_attach(c1b8f700,c1bbe8c0,f0000000,c0718104,c0718134) at
> bus_generic_attach+0x16
> miibus_attach(c1b8f700) at miibus_attach+0x3d
> device_attach(c1b8f700,c0716fcc,c1b8f700,0,c1b8f780) at device_attach+0x58
> device_probe_and_attach(c1b8f700) at device_probe_and_attach+0xb4
> bus_generic_attach(c1b8f780,c1b8f8c0,c1bce000,c1bce000,c0c219d8) at
> bus_generic_attach+0x16
> mii_phy_probe(c1b8f780,c1bce234,c0718104,c0718134) at mii_phy_probe+0xd4
> sk_attach(c1b8f780) at sk_attach+0x379
> device_attach(c1b8f780,c1b8fb00,c1b8f780,c1b8f880,c1b8fc00) at
> device_attach+0x58
> device_probe_and_attach(c1b8f780) at device_probe_and_attach+0xb4
> bus_generic_attach(c1b8fc00,0,1700,0,c1b8fc00) at bus_generic_attach+0x16
> skc_attach(c1b8fc00) at skc_attach+0x3ce
> device_attach(c1b8fc00,c1a93060,c1b8fc00,c1b8fb00,c1b8fb00) at
> device_attach+0x58
> device_probe_and_attach(c1b8fc00) at device_probe_and_attach+0xb4
> bus_generic_attach(c1b8fb00,6,c1a93060,1,c0a26154) at
> bus_generic_attach+0x16
> acpi_pci_attach(c1b8fb00) at acpi_pci_attach+0xec
> device_attach(c1b8fb00,c1b8f480,c1b8fb00,c1b8a980,0) at device_attach+0x58
> device_probe_and_attach(c1b8fb00) at device_probe_and_attach+0xb4
> bus_generic_attach(c1b8a980,c1b8a980,c1bbf5f0,2,c0a25dcd) at
> bus_generic_attach+0x16
> acpi_pcib_attach(c1b8a980,c1bbf5f0,2,c1b8a980,c1a93060) at
> acpi_pcib_attach+0x14e
> acpi_pcib_pci_attach(c1b8a980) at acpi_pcib_pci_attach+0x88
> device_attach(c1b8a980,c1b8a900,c1b8a980,c1b8f480,c1b8f480) at
> device_attach+0x58
> device_probe_and_attach(c1b8a980) at device_probe_and_attach+0xb4
> bus_generic_attach(c1b8f480,6,c1a425c0,1,c0a26154) at
> bus_generic_attach+0x16
> acpi_pci_attach(c1b8f480) at acpi_pci_attach+0xec
> device_attach(c1b8f480,c1ad9600,c1b8f480,c1a6da00,0) at device_attach+0x58
> device_probe_and_attach(c1b8f480) at device_probe_and_attach+0xb4
> bus_generic_attach(c1a6da00,c1a6da00,c1b801d4,0,0) at
> bus_generic_attach+0x16
> acpi_pcib_attach(c1a6da00,c1b801d4,0,c0c21c5c,c0654ca0) at
> acpi_pcib_attach+0x14e
> acpi_pcib_acpi_attach(c1a6da00) at acpi_pcib_acpi_attach+0x20a
> device_attach(c1a6da00,c0a3c948,c1a6da00,c1ad9600,0) at device_attach+0x58
> device_probe_and_attach(c1a6da00) at device_probe_and_attach+0xb4
> bus_generic_attach(c1ad9600,c1ad9600,c1a50160,1,c1ad9580) at
> bus_generic_attach+0x16
> acpi_probe_children(c1ad9600,1ae90,c1ad9600,c1ad9600,0) at
> acpi_probe_children+0x63
> acpi_attach(c1ad9600) at acpi_attach+0x52b
> device_attach(c1ad9600,c0a3bae0,c1ad9600,c1ad9780,0) at device_attach+0x58
> device_probe_and_attach(c1ad9600) at device_probe_and_attach+0xb4
> bus_generic_attach(c1ad9780,c1ad9780,c1ad9780,c0c21d44,c06510a0) at
> bus_generic_attach+0x16
> nexus_attach(c1ad9780) at nexus_attach+0x13
> device_attach(c1ad9780,c08a85f0,c1ad9780,c08a85f0,c29000) at
> device_attach+0x58
> device_probe_and_attach(c1ad9780) at device_probe_and_attach+0xb4
> root_bus_configure(c1ad9c80,c082edbc,0) at root_bus_configure+0x16
> configure(0,c1ec00,c1e000,0,c0443195) at configure+0x1b
> mi_startup() at mi_startup+0x96
> begin() at begin+0x2c
>
>

-- 
Doug White                    |  FreeBSD: The Power to Serve
dwhite at gumbysoft.com          |  www.FreeBSD.org


More information about the freebsd-bugs mailing list