Commit 098e732d authored by Eric Blake's avatar Eric Blake Committed by Kevin Wolf
Browse files

pflash: Switch to byte-based block access



Sector-based blk_write() should die; switch to byte-based
blk_pwrite() instead.  Likewise for blk_read().

Signed-off-by: default avatarEric Blake <eblake@redhat.com>
Signed-off-by: default avatarKevin Wolf <kwolf@redhat.com>
parent 441692dd
Loading
Loading
Loading
Loading
+6 −6
Original line number Diff line number Diff line
@@ -413,11 +413,11 @@ static void pflash_update(pflash_t *pfl, int offset,
    int offset_end;
    if (pfl->blk) {
        offset_end = offset + size;
        /* round to sectors */
        offset = offset >> 9;
        offset_end = (offset_end + 511) >> 9;
        blk_write(pfl->blk, offset, pfl->storage + (offset << 9),
                  offset_end - offset);
        /* widen to sector boundaries */
        offset = QEMU_ALIGN_DOWN(offset, BDRV_SECTOR_SIZE);
        offset_end = QEMU_ALIGN_UP(offset_end, BDRV_SECTOR_SIZE);
        blk_pwrite(pfl->blk, offset, pfl->storage + offset,
                   offset_end - offset, 0);
    }
}

@@ -739,7 +739,7 @@ static void pflash_cfi01_realize(DeviceState *dev, Error **errp)

    if (pfl->blk) {
        /* read the initial flash content */
        ret = blk_read(pfl->blk, 0, pfl->storage, total_len >> 9);
        ret = blk_pread(pfl->blk, 0, pfl->storage, total_len);

        if (ret < 0) {
            vmstate_unregister_ram(&pfl->mem, DEVICE(pfl));
+6 −6
Original line number Diff line number Diff line
@@ -253,11 +253,11 @@ static void pflash_update(pflash_t *pfl, int offset,
    int offset_end;
    if (pfl->blk) {
        offset_end = offset + size;
        /* round to sectors */
        offset = offset >> 9;
        offset_end = (offset_end + 511) >> 9;
        blk_write(pfl->blk, offset, pfl->storage + (offset << 9),
                  offset_end - offset);
        /* widen to sector boundaries */
        offset = QEMU_ALIGN_DOWN(offset, BDRV_SECTOR_SIZE);
        offset_end = QEMU_ALIGN_UP(offset_end, BDRV_SECTOR_SIZE);
        blk_pwrite(pfl->blk, offset, pfl->storage + offset,
                   offset_end - offset, 0);
    }
}

@@ -622,7 +622,7 @@ static void pflash_cfi02_realize(DeviceState *dev, Error **errp)
    pfl->chip_len = chip_len;
    if (pfl->blk) {
        /* read the initial flash content */
        ret = blk_read(pfl->blk, 0, pfl->storage, chip_len >> 9);
        ret = blk_pread(pfl->blk, 0, pfl->storage, chip_len);
        if (ret < 0) {
            vmstate_unregister_ram(&pfl->orig_mem, DEVICE(pfl));
            error_setg(errp, "failed to read the initial flash content");