version 1.64, 2004/08/12 05:02:50 |
version 1.65, 2004/08/12 21:34:52 |
Line 176 wdc_ata_bio(struct ata_drive_datas *drvp |
|
Line 176 wdc_ata_bio(struct ata_drive_datas *drvp |
|
struct wdc_channel *chp = drvp->chnl_softc; |
struct wdc_channel *chp = drvp->chnl_softc; |
struct wdc_softc *wdc = chp->ch_wdc; |
struct wdc_softc *wdc = chp->ch_wdc; |
|
|
xfer = wdc_get_xfer(WDC_NOSLEEP); |
xfer = ata_get_xfer(ATAXF_NOSLEEP); |
if (xfer == NULL) |
if (xfer == NULL) |
return ATACMD_TRY_AGAIN; |
return ATACMD_TRY_AGAIN; |
if (wdc->cap & WDC_CAPABILITY_NOIRQ) |
if (wdc->cap & WDC_CAPABILITY_NOIRQ) |
Line 684 wdc_ata_bio_kill_xfer(struct wdc_channel |
|
Line 684 wdc_ata_bio_kill_xfer(struct wdc_channel |
|
struct ata_bio *ata_bio = xfer->c_cmd; |
struct ata_bio *ata_bio = xfer->c_cmd; |
int drive = xfer->c_drive; |
int drive = xfer->c_drive; |
|
|
wdc_free_xfer(chp, xfer); |
ata_free_xfer(chp, xfer); |
|
|
ata_bio->flags |= ATA_ITSDONE; |
ata_bio->flags |= ATA_ITSDONE; |
switch (reason) { |
switch (reason) { |
Line 723 wdc_ata_bio_done(struct wdc_channel *chp |
|
Line 723 wdc_ata_bio_done(struct wdc_channel *chp |
|
|
|
/* mark controller inactive and free xfer */ |
/* mark controller inactive and free xfer */ |
chp->ch_queue->active_xfer = NULL; |
chp->ch_queue->active_xfer = NULL; |
wdc_free_xfer(chp, xfer); |
ata_free_xfer(chp, xfer); |
|
|
if (chp->ch_drive[drive].drive_flags & DRIVE_WAITDRAIN) { |
if (chp->ch_drive[drive].drive_flags & DRIVE_WAITDRAIN) { |
ata_bio->error = ERR_NODEV; |
ata_bio->error = ERR_NODEV; |