Date: Mon, 17 Feb 2020 18:31:32 +0000 (UTC) From: Dimitry Andric <dim@FreeBSD.org> To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r358029 - projects/clang1000-import/sys/dev/altera/sdcard Message-ID: <202002171831.01HIVWvJ000943@repo.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: dim Date: Mon Feb 17 18:31:32 2020 New Revision: 358029 URL: https://svnweb.freebsd.org/changeset/base/358029 Log: Tentatively apply D23730: Fix compile errors in altera_sdcard_io.c after r357647 Summary: After rS357647, building universe results in compilation errors for _.mips.BERI_DE4_SDROOT: ``` sys/dev/altera/sdcard/altera_sdcard_io.c: In function 'altera_sdcard_io_start_internal': sys/dev/altera/sdcard/altera_sdcard_io.c:299:13: error: '*bp' is a pointer; did you mean to use '->'? switch (*bp->bio_cmd) { ^~ -> sys/dev/altera/sdcard/altera_sdcard_io.c:301:38: error: '*bp' is a pointer; did you mean to use '->'? altera_sdcard_write_cmd_arg(sc, *bp->bio_pblkno * ^~ -> sys/dev/altera/sdcard/altera_sdcard_io.c:307:42: error: '*bp' is a pointer; did you mean to use '->'? altera_sdcard_write_rxtx_buffer(sc, *bp->bio_data, ^~ -> sys/dev/altera/sdcard/altera_sdcard_io.c:308:10: error: '*bp' is a pointer; did you mean to use '->'? *bp->bio_bcount); ^~ -> sys/dev/altera/sdcard/altera_sdcard_io.c:309:38: error: '*bp' is a pointer; did you mean to use '->'? altera_sdcard_write_cmd_arg(sc, *bp->bio_pblkno * ^~ -> sys/dev/altera/sdcard/altera_sdcard_io.c: In function 'altera_sdcard_io_start': sys/dev/altera/sdcard/altera_sdcard_io.c:336:20: error: incompatible types when assigning to type 'struct bio *' from type 'struct bio' sc->as_currentbio = *bp; ^ ``` The first few are because `->` has a higher precedence than `*`, so the expressions should use `(*bp)->foo` instead. I also renamed the variable to `bpp` to make it clearer that it is a pointer-to-pointer. The last one is because `sc->as_currentbio` is already a `struct bio *`, there is no need to dereference `bp` there. Last but not least, I would really suggest rewriting the `altera_sdcard_io_start_internal()` function to just return success or failure, so the caller can decide to set `bp` to NULL. Modified: projects/clang1000-import/sys/dev/altera/sdcard/altera_sdcard_io.c Modified: projects/clang1000-import/sys/dev/altera/sdcard/altera_sdcard_io.c ============================================================================== --- projects/clang1000-import/sys/dev/altera/sdcard/altera_sdcard_io.c Mon Feb 17 18:05:03 2020 (r358028) +++ projects/clang1000-import/sys/dev/altera/sdcard/altera_sdcard_io.c Mon Feb 17 18:31:32 2020 (r358029) @@ -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 **bpp) { - switch (*bp->bio_cmd) { + switch ((*bpp)->bio_cmd) { case BIO_READ: - altera_sdcard_write_cmd_arg(sc, *bp->bio_pblkno * + altera_sdcard_write_cmd_arg(sc, (*bpp)->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, (*bpp)->bio_data, + (*bpp)->bio_bcount); + altera_sdcard_write_cmd_arg(sc, (*bpp)->bio_pblkno * ALTERA_SDCARD_SECTORSIZE); altera_sdcard_write_cmd(sc, ALTERA_SDCARD_CMD_WRITE_BLOCK); break; default: - biofinish(*bp, NULL, EOPNOTSUPP); - *bp = NULL; + biofinish(*bpp, NULL, EOPNOTSUPP); + *bpp = NULL; } } @@ -333,7 +333,7 @@ altera_sdcard_io_start(struct altera_sdcard_softc *sc, 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; + sc->as_currentbio = bp; sc->as_retriesleft = ALTERA_SDCARD_RETRY_LIMIT; }
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202002171831.01HIVWvJ000943>