version 1.107.10.2, 2008/12/13 01:14:48 |
version 1.108, 2008/10/02 21:05:17 |
Line 46 __KERNEL_RCSID(0, "$NetBSD$"); |
|
Line 46 __KERNEL_RCSID(0, "$NetBSD$"); |
|
#include <sys/device.h> |
#include <sys/device.h> |
#include <sys/syslog.h> |
#include <sys/syslog.h> |
#include <sys/proc.h> |
#include <sys/proc.h> |
|
#include <sys/cpu.h> |
#include <sys/dvdio.h> |
#include <sys/dvdio.h> |
|
|
#include <sys/intr.h> |
#include <sys/intr.h> |
Line 470 wdc_atapi_start(struct ata_channel *chp, |
|
Line 471 wdc_atapi_start(struct ata_channel *chp, |
|
/* Do control operations specially. */ |
/* Do control operations specially. */ |
if (__predict_false(drvp->state < READY)) { |
if (__predict_false(drvp->state < READY)) { |
/* If it's not a polled command, we need the kernel thread */ |
/* If it's not a polled command, we need the kernel thread */ |
if ((sc_xfer->xs_control & XS_CTL_POLL) == 0 && |
if ((sc_xfer->xs_control & XS_CTL_POLL) == 0 && cpu_intr_p()) { |
(chp->ch_flags & ATACH_TH_RUN) == 0) { |
|
chp->ch_queue->queue_freeze++; |
chp->ch_queue->queue_freeze++; |
wakeup(&chp->ch_thread); |
wakeup(&chp->ch_thread); |
return; |
return; |