svn commit: r296607 - head/sys/mips/cavium
Warner Losh
imp at FreeBSD.org
Thu Mar 10 06:25:49 UTC 2016
Author: imp
Date: Thu Mar 10 06:25:47 2016
New Revision: 296607
URL: https://svnweb.freebsd.org/changeset/base/296607
Log:
Don't assume that bio_cmd is a bitfield.
Differential Revision: https://reviews.freebsd.org/D5591
Modified:
head/sys/mips/cavium/octeon_ebt3000_cf.c
Modified: head/sys/mips/cavium/octeon_ebt3000_cf.c
==============================================================================
--- head/sys/mips/cavium/octeon_ebt3000_cf.c Thu Mar 10 06:25:39 2016 (r296606)
+++ head/sys/mips/cavium/octeon_ebt3000_cf.c Thu Mar 10 06:25:47 2016 (r296607)
@@ -215,37 +215,38 @@ static void cf_start (struct bio *bp)
* the bio struct.
*/
- if(bp->bio_cmd & BIO_GETATTR) {
+ switch (bp->bio_cmd) {
+ case BIO_GETATTR:
if (g_handleattr_int(bp, "GEOM::fwsectors", cf_priv->drive_param.sec_track))
return;
if (g_handleattr_int(bp, "GEOM::fwheads", cf_priv->drive_param.heads))
return;
g_io_deliver(bp, ENOIOCTL);
return;
- }
-
- if ((bp->bio_cmd & (BIO_READ | BIO_WRITE))) {
- if (bp->bio_cmd & BIO_READ) {
- error = cf_cmd_read(bp->bio_length / cf_priv->drive_param.sector_size,
- bp->bio_offset / cf_priv->drive_param.sector_size, bp->bio_data);
- } else if (bp->bio_cmd & BIO_WRITE) {
- error = cf_cmd_write(bp->bio_length / cf_priv->drive_param.sector_size,
- bp->bio_offset/cf_priv->drive_param.sector_size, bp->bio_data);
- } else {
- printf("%s: unrecognized bio_cmd %x.\n", __func__, bp->bio_cmd);
- error = ENOTSUP;
- }
+ case BIO_READ:
+ error = cf_cmd_read(bp->bio_length / cf_priv->drive_param.sector_size,
+ bp->bio_offset / cf_priv->drive_param.sector_size, bp->bio_data);
+ break;
+ case BIO_WRITE:
+ error = cf_cmd_write(bp->bio_length / cf_priv->drive_param.sector_size,
+ bp->bio_offset/cf_priv->drive_param.sector_size, bp->bio_data);
+ break;
- if (error != 0) {
- g_io_deliver(bp, error);
- return;
- }
+ default:
+ printf("%s: unrecognized bio_cmd %x.\n", __func__, bp->bio_cmd);
+ error = ENOTSUP;
+ break;
+ }
- bp->bio_resid = 0;
- bp->bio_completed = bp->bio_length;
- g_io_deliver(bp, 0);
+ if (error != 0) {
+ g_io_deliver(bp, error);
+ return;
}
+
+ bp->bio_resid = 0;
+ bp->bio_completed = bp->bio_length;
+ g_io_deliver(bp, 0);
}
More information about the svn-src-all
mailing list