Module Name: src Committed By: hannken Date: Sun Mar 31 14:56:41 UTC 2024
Modified Files: src/sys/dev: ccd.c Log Message: Using a ccd(4) with GPT (dk* at ccd*) the disk framework will call ccdstrategy() -> ccdstart() -> ccdbuffer() from softint context. Allocating the buffer with PR_WAITOK here is forbidden. Change ccdstart() / ccdbuffer() to report failure back to caller and pass PR_WAITOK / PR_NOWAIT as an additional argument. Call ccdstart() with PR_NOPWAIT from ccdstrategy() and on error defer to the kthread. Call ccdstart() with PR_WAITOK from kthread so requests from kthread always succeed to allocate the buffers. Remove the (non working) throttling on low memory as it is no longer needed. Fixes PR kern/58043 "kernel crash in assert_sleepable() in -current, dk(4) driver?" To generate a diff of this commit: cvs rdiff -u -r1.189 -r1.190 src/sys/dev/ccd.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.