diff options
Diffstat (limited to 'sys/dev/altera/sdcard/altera_sdcard_io.c')
-rw-r--r-- | sys/dev/altera/sdcard/altera_sdcard_io.c | 22 |
1 files changed, 11 insertions, 11 deletions
diff --git a/sys/dev/altera/sdcard/altera_sdcard_io.c b/sys/dev/altera/sdcard/altera_sdcard_io.c index dc1b615bd60a..546e0af2b907 100644 --- a/sys/dev/altera/sdcard/altera_sdcard_io.c +++ b/sys/dev/altera/sdcard/altera_sdcard_io.c @@ -293,27 +293,27 @@ recheck: } static void -altera_sdcard_io_start_internal(struct altera_sdcard_softc *sc, struct bio *bp) +altera_sdcard_io_start_internal(struct altera_sdcard_softc *sc, struct bio **bp) { - switch (bp->bio_cmd) { + switch (*bp->bio_cmd) { case BIO_READ: - altera_sdcard_write_cmd_arg(sc, bp->bio_pblkno * + altera_sdcard_write_cmd_arg(sc, *bp->bio_pblkno * ALTERA_SDCARD_SECTORSIZE); altera_sdcard_write_cmd(sc, ALTERA_SDCARD_CMD_READ_BLOCK); break; case BIO_WRITE: - altera_sdcard_write_rxtx_buffer(sc, bp->bio_data, - bp->bio_bcount); - altera_sdcard_write_cmd_arg(sc, bp->bio_pblkno * + altera_sdcard_write_rxtx_buffer(sc, *bp->bio_data, + *bp->bio_bcount); + altera_sdcard_write_cmd_arg(sc, *bp->bio_pblkno * ALTERA_SDCARD_SECTORSIZE); altera_sdcard_write_cmd(sc, ALTERA_SDCARD_CMD_WRITE_BLOCK); break; default: - panic("%s: unsupported I/O operation %d", __func__, - bp->bio_cmd); + biofinish(*bp, NULL, EOPNOTSUPP); + *bp = NULL; } } @@ -332,8 +332,8 @@ altera_sdcard_io_start(struct altera_sdcard_softc *sc, struct bio *bp) */ KASSERT(bp->bio_bcount == ALTERA_SDCARD_SECTORSIZE, ("%s: I/O size not %d", __func__, ALTERA_SDCARD_SECTORSIZE)); - altera_sdcard_io_start_internal(sc, bp); - sc->as_currentbio = bp; + altera_sdcard_io_start_internal(sc, &bp); + sc->as_currentbio = *bp; sc->as_retriesleft = ALTERA_SDCARD_RETRY_LIMIT; } @@ -406,7 +406,7 @@ altera_sdcard_io_complete(struct altera_sdcard_softc *sc, uint16_t asr) */ if (sc->as_retriesleft != 0) { sc->as_flags |= ALTERA_SDCARD_FLAG_IOERROR; - altera_sdcard_io_start_internal(sc, bp); + altera_sdcard_io_start_internal(sc, &bp); return (0); } sc->as_flags &= ~ALTERA_SDCARD_FLAG_IOERROR; |