Source-Changes archive

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

CVS commit: src/sys/dev/mscp



Module Name:    src
Committed By:   mrg
Date:           Thu Jan 11 06:19:49 UTC 2024

Modified Files:
        src/sys/dev/mscp: mscp.c mscp_disk.c mscp_tape.c mscpvar.h

Log Message:
mscp(4): add ability for rronline() callback in a workqueue

when an ra(4) disk comes online the hardware interrupt ends up calling
disk_set_info(), which triggers a sleep lock/alloc in this path which
is triggered by LOCKDEBUG.

piggy-back on the existing workqueue for autoconfiguration to handle
this path and run the online completion in the work queue.

this is a little ugly, in that it puts two different types of work
into the one queue, but seems less ugly than creating a second
workqueue for what is likely another one-time event (infact, the other
user may be better handled via config_defer() -- i did not look too
closely.)

with this, LOCKDEBUG kernels work.

tested in simh.


To generate a diff of this commit:
cvs rdiff -u -r1.38 -r1.39 src/sys/dev/mscp/mscp.c
cvs rdiff -u -r1.90 -r1.91 src/sys/dev/mscp/mscp_disk.c
cvs rdiff -u -r1.43 -r1.44 src/sys/dev/mscp/mscp_tape.c
cvs rdiff -u -r1.18 -r1.19 src/sys/dev/mscp/mscpvar.h

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.




Home | Main Index | Thread Index | Old Index