Commit 6e9a6cbe authored by Peter Maydell's avatar Peter Maydell
Browse files

Merge remote-tracking branch 'remotes/kevin/tags/for-upstream' into staging



Block layer patches:

- scsi-cd: Fix inserting read-only media in empty drive
- block/copy-on-read: Fix permissions for inactive node
- Test case fixes

# gpg: Signature made Tue 30 Jul 2019 12:21:48 BST
# gpg:                using RSA key 7F09B272C88F2FD6
# gpg: Good signature from "Kevin Wolf <kwolf@redhat.com>" [full]
# Primary key fingerprint: DC3D EB15 9A9A F95D 3D74  56FE 7F09 B272 C88F 2FD6

* remotes/kevin/tags/for-upstream:
  scsi-cd: Fix inserting read-only media in empty drive
  block/copy-on-read: Fix permissions for inactive node
  Fixes: add read-zeroes to 051.out
  tests/multiboot: Fix load address of test kernels

Signed-off-by: default avatarPeter Maydell <peter.maydell@linaro.org>
parents ee9545ed 7cef3d12
Loading
Loading
Loading
Loading
+7 −9
Original line number Diff line number Diff line
@@ -56,16 +56,14 @@ static void cor_child_perm(BlockDriverState *bs, BdrvChild *c,
                           uint64_t perm, uint64_t shared,
                           uint64_t *nperm, uint64_t *nshared)
{
    if (c == NULL) {
        *nperm = (perm & PERM_PASSTHROUGH) | BLK_PERM_WRITE_UNCHANGED;
    *nperm = perm & PERM_PASSTHROUGH;
    *nshared = (shared & PERM_PASSTHROUGH) | PERM_UNCHANGED;
        return;
    }

    *nperm = (perm & PERM_PASSTHROUGH) |
             (c->perm & PERM_UNCHANGED);
    *nshared = (shared & PERM_PASSTHROUGH) |
               (c->shared_perm & PERM_UNCHANGED);
    /* We must not request write permissions for an inactive node, the child
     * cannot provide it. */
    if (!(bs->open_flags & BDRV_O_INACTIVE)) {
        *nperm |= BLK_PERM_WRITE_UNCHANGED;
    }
}


+8 −2
Original line number Diff line number Diff line
@@ -2318,6 +2318,7 @@ static void scsi_disk_unit_attention_reported(SCSIDevice *dev)
static void scsi_realize(SCSIDevice *dev, Error **errp)
{
    SCSIDiskState *s = DO_UPCAST(SCSIDiskState, qdev, dev);
    bool read_only;

    if (!s->qdev.conf.blk) {
        error_setg(errp, "drive property not set");
@@ -2351,8 +2352,13 @@ static void scsi_realize(SCSIDevice *dev, Error **errp)
            return;
        }
    }
    if (!blkconf_apply_backend_options(&dev->conf,
                                       blk_is_read_only(s->qdev.conf.blk),

    read_only = blk_is_read_only(s->qdev.conf.blk);
    if (dev->type == TYPE_ROM) {
        read_only = true;
    }

    if (!blkconf_apply_backend_options(&dev->conf, read_only,
                                       dev->type == TYPE_DISK, errp)) {
        return;
    }
+3 −3
Original line number Diff line number Diff line
@@ -3,14 +3,14 @@ ENTRY(_start)
SECTIONS
{
    . = 0x100000;
    .text : {
    .text : AT(ADDR(.text)) {
        *(multiboot)
        *(.text)
    }
    .data ALIGN(4096) : {
    .data ALIGN(4096) : AT(ADDR(.data)) {
        *(.data)
    }
    .rodata ALIGN(4096) : {
    .rodata ALIGN(4096) : AT(ADDR(.rodata)) {
        *(.rodata)
    }
    .bss ALIGN(4096) : {
+5 −5
Original line number Diff line number Diff line
@@ -149,23 +149,23 @@ QEMU X.Y.Z monitor - type 'help' for more information

=== Cache modes ===

Testing: -drive driver=null-co,cache=none
Testing: -drive driver=null-co,read-zeroes=on,cache=none
QEMU X.Y.Z monitor - type 'help' for more information
(qemu) quit

Testing: -drive driver=null-co,cache=directsync
Testing: -drive driver=null-co,read-zeroes=on,cache=directsync
QEMU X.Y.Z monitor - type 'help' for more information
(qemu) quit

Testing: -drive driver=null-co,cache=writeback
Testing: -drive driver=null-co,read-zeroes=on,cache=writeback
QEMU X.Y.Z monitor - type 'help' for more information
(qemu) quit

Testing: -drive driver=null-co,cache=writethrough
Testing: -drive driver=null-co,read-zeroes=on,cache=writethrough
QEMU X.Y.Z monitor - type 'help' for more information
(qemu) quit

Testing: -drive driver=null-co,cache=unsafe
Testing: -drive driver=null-co,read-zeroes=on,cache=unsafe
QEMU X.Y.Z monitor - type 'help' for more information
(qemu) quit