Bug #2652 » xpt_init_tsleep.diff
| sys/bus/cam/cam_xpt.c | ||
|---|---|---|
|
sysctl_cam_search_luns, "I",
|
||
|
"allow search above LUN 7 for SCSI3 and greater devices");
|
||
|
static int cam_init_delay = 0;
|
||
|
TUNABLE_INT("kern.cam.init_delay", &cam_init_delay);
|
||
|
SYSCTL_INT(_kern_cam, OID_AUTO, init_delay, CTLFLAG_RDTUN,
|
||
|
&cam_init_delay, 0, "Delay in millisecs in xpt_init");
|
||
|
#define CAM_SCSI2_MAXLUN 8
|
||
|
/*
|
||
|
* If we're not quirked to search <= the first 8 luns
|
||
| ... | ... | |
|
struct cam_path *path;
|
||
|
struct cam_devq *devq;
|
||
|
cam_status status;
|
||
|
int sleepch;
|
||
|
TAILQ_INIT(&xsoftc.xpt_busses);
|
||
|
TAILQ_INIT(&cam_simq);
|
||
| ... | ... | |
|
if (kthread_create(xpt_scanner_thread, NULL, NULL, "xpt_thrd")) {
|
||
|
kprintf("xpt_init: failed to create rescan thread\n");
|
||
|
}
|
||
|
/* Resolves part of Bug 2652 */
|
||
|
if (0 < (hz * cam_init_delay / 1000)) {
|
||
|
tsleep((void *)&sleepch, PCATCH, "xptdel",
|
||
|
hz * cam_init_delay / 1000);
|
||
|
}
|
||
|
/* Install our software interrupt handlers */
|
||
|
register_swi(SWI_CAMBIO, swi_cambio, NULL, "swi_cambio", NULL, -1);
|
||
- « Previous
- 1
- 2
- Next »