Author: tsoome Date: Wed Aug 15 21:21:16 2018 New Revision: 337872 URL: https://svnweb.freebsd.org/changeset/base/337872
Log: libi386: remove BD_SUPPORT_FRAGS BD_SUPPORT_FRAGS is preprocessor knob to allow partial reads in bioscd/biosdisk level. However, we already have support for partial reads in bcache, and there is no need to have duplication via preprocessor controls. Note that bioscd/biosdisk interface is assumed to perform IO in 512B blocks, so the only translation we have to do is 512 <-> native block size. Differential Revision: https://reviews.freebsd.org/D16600 Modified: head/stand/i386/libi386/bioscd.c head/stand/i386/libi386/biosdisk.c Modified: head/stand/i386/libi386/bioscd.c ============================================================================== --- head/stand/i386/libi386/bioscd.c Wed Aug 15 21:13:10 2018 (r337871) +++ head/stand/i386/libi386/bioscd.c Wed Aug 15 21:21:16 2018 (r337872) @@ -258,15 +258,9 @@ bc_realstrategy(void *devdata, int rw, daddr_t dblk, s struct i386_devdesc *dev; int unit; int blks; -#ifdef BD_SUPPORT_FRAGS - char fragbuf[BIOSCD_SECSIZE]; - size_t fragsize; - fragsize = size % BIOSCD_SECSIZE; -#else if (size % BIOSCD_SECSIZE) return (EINVAL); -#endif if ((rw & F_MASK) != F_READ) return(EROFS); @@ -290,20 +284,6 @@ bc_realstrategy(void *devdata, int rw, daddr_t dblk, s return (0); } } -#ifdef BD_SUPPORT_FRAGS - DEBUG("frag read %d from %lld+%d to %p", - fragsize, dblk, blks, buf + (blks * BIOSCD_SECSIZE)); - if (fragsize && bc_read(unit, dblk + blks, 1, fragbuf) != 1) { - if (blks) { - if (rsize) - *rsize = blks * BIOSCD_SECSIZE; - return (0); - } - DEBUG("frag read error"); - return(EIO); - } - bcopy(fragbuf, buf + (blks * BIOSCD_SECSIZE), fragsize); -#endif if (rsize) *rsize = size; return (0); Modified: head/stand/i386/libi386/biosdisk.c ============================================================================== --- head/stand/i386/libi386/biosdisk.c Wed Aug 15 21:13:10 2018 (r337871) +++ head/stand/i386/libi386/biosdisk.c Wed Aug 15 21:21:16 2018 (r337872) @@ -451,17 +451,11 @@ bd_realstrategy(void *devdata, int rw, daddr_t dblk, s struct disk_devdesc *dev = (struct disk_devdesc *)devdata; uint64_t disk_blocks; int blks, rc; -#ifdef BD_SUPPORT_FRAGS /* XXX: sector size */ - char fragbuf[BIOSDISK_SECSIZE]; - size_t fragsize; - fragsize = size % BIOSDISK_SECSIZE; -#else if (size % BD(dev).bd_sectorsize) { panic("bd_strategy: %d bytes I/O not multiple of block size", size); } -#endif DEBUG("open_disk %p", dev); @@ -520,15 +514,6 @@ bd_realstrategy(void *devdata, int rw, daddr_t dblk, s } return (EIO); } -#ifdef BD_SUPPORT_FRAGS /* XXX: sector size */ - DEBUG("bd_strategy: frag read %d from %d+%d to %p", - fragsize, dblk, blks, buf + (blks * BIOSDISK_SECSIZE)); - if (fragsize && bd_read(od, dblk + blks, 1, fragsize)) { - DEBUG("frag read error"); - return (EIO); - } - bcopy(fragbuf, buf + (blks * BIOSDISK_SECSIZE), fragsize); -#endif break; case F_WRITE : DEBUG("write %d from %lld to %p", blks, dblk, buf); @@ -537,12 +522,6 @@ bd_realstrategy(void *devdata, int rw, daddr_t dblk, s DEBUG("write error"); return (EIO); } -#ifdef BD_SUPPORT_FRAGS - if (fragsize) { - DEBUG("Attempted to write a frag"); - return (EIO); - } -#endif break; default: /* DO NOTHING */ _______________________________________________ svn-src-head@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/svn-src-head To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"