NetBSD-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

port-alpha/58602: cy82c693_init() calls bus_space_map() with spin lock held



>Number:         58602
>Category:       port-alpha
>Synopsis:       cy82c693_init() calls bus_space_map() with spin lock held
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    port-alpha-maintainer
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Thu Aug 15 21:55:01 +0000 2024
>Originator:     Tobias Nygren
>Release:        
>Organization:
>Environment:
>Description:
cy82c693_init() calls bus_space_map with it's spin lock (cyhc_lock) held.
This results in a LOCKDEBUG panic with this backtrace:

lockdebug_abort1()
mutex_enter()
vmem_xalloc()
vmem_xalloc_addr()
cia_swiz_io_map()
cy82c693_init()
cy82c693_setup_elcr()
sio_intr_setup()
pci_eb164_pickintr()
alpha_pci_intr_init()
ciaattach()
...
>How-To-Repeat:
Boot pc164sx with LOCKDEBUG kernel.
>Fix:
Rewrite the init code so it doesn't hold a spin lock.
It looks ok to me to use a regular IPL_NONE mutex instead.
None of this code seems to be called from interrupt handlers.




Home | Main Index | Thread Index | Old Index