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
 -----BEGIN PGP SIGNATURE-----
 
 iQIcBAABAgAGBQJdQChMAAoJEH8JsnLIjy/WXmgQAItW4Nqmd8NynwWMCLEBRRIV
 4PUa8w0uUQ/5C+CVc0RYzYWtSg9+GRqaMufT1TAAxFaBAavCF7gc6xty9cufCoQY
 LpJRn1PhOzuVpPjALnkjEnlhFAKIvgBkq/lSIq0Ly0gkGN/nlnwohndXQnazjvIp
 +fU8i65kSaCTPJtXC9TSiKWuRewHIcqP1mVuzfjD+arzqB8yQOiOIAj/GB243cGE
 1WbVJPRQhRQ5DDYFMI44mnZcewKjyFMinRzONLuFkn1QoRCV54+5suhcfhdGwUj2
 Qgovg5kZ7TDRO0u3P/S+KJwwLJ1x1wpdq/5Xa8S3UmdRVfujlNcrkR814e43qdLz
 DwrCa0XnQnZKbmkAcOGx5Fi8wt0wo9Yl8Ymyo6mMyNJpgG5hd4NU1Lx6SUkLwir+
 E1Jd8u2HCsOMZeiyAr80/fhp3Lx8eBsALZITJISUTx7oNY5b7+fmXqFr470v58u5
 Q3MkZ3FC1uIJzAQEXA9r+3XrRkxSAFxDyp/Swlwkm1891CkrGXqtE0WohLirgYJs
 alAFJT7nI8tcXmtPLfO+oAbPZY+EGgI/q2puHDNEIMJ/11X/RGi7/4SBWyiAEdtx
 +uLTYK2w5X87QhZHfyr0YSGmOq2WV7BdqTN8a++gf8z31++lmAHKi1/8a887mgeF
 8PDAPMO8z20U2FxU0Z3a
 =Xbui
 -----END PGP SIGNATURE-----

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: Peter Maydell <peter.maydell@linaro.org>
This commit is contained in:
Peter Maydell 2019-07-30 12:25:34 +01:00
commit 6e9a6cbe7d
4 changed files with 23 additions and 19 deletions

View file

@ -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;
*nshared = (shared & PERM_PASSTHROUGH) | PERM_UNCHANGED;
return;
}
*nperm = perm & PERM_PASSTHROUGH;
*nshared = (shared & PERM_PASSTHROUGH) | PERM_UNCHANGED;
*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;
}
}

View file

@ -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;
}

View file

@ -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) : {

View file

@ -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