diff options
author | David Hildenbrand <dahi@linux.vnet.ibm.com> | 2014-06-18 14:16:44 +0200 |
---|---|---|
committer | Cornelia Huck <cornelia.huck@de.ibm.com> | 2014-06-23 14:03:31 +0200 |
commit | 554f80896dbdc6ce5bb01eab9659facf05ccf168 (patch) | |
tree | f54ebb91830d1e7f997e174d00cfdc3e92273426 /pc-bios/s390-ccw | |
parent | 910f66fcda2d410249697d959dcbdf8c82d77844 (diff) | |
download | qemu-554f80896dbdc6ce5bb01eab9659facf05ccf168.zip qemu-554f80896dbdc6ce5bb01eab9659facf05ccf168.tar.gz qemu-554f80896dbdc6ce5bb01eab9659facf05ccf168.tar.bz2 |
pc-bios/s390-ccw: virtio_load_direct() can't load max number of sectors
The number of sectors to read is given by the last 16 bit of rec_list2.
1 is added in order to get to the real number of sectors to read (0x0000
-> read 1 block). For now, the maximum number (0xffff) led to 0 sectors
being read.
This fixes a bug where a large initrd (62MB) could not be ipled anymore.
Signed-off-by: David Hildenbrand <dahi@linux.vnet.ibm.com>
Signed-off-by: Jens Freimann <jfrei@linux.vnet.ibm.com>
Reviewed-by: Cornelia Huck <cornelia.huck@de.ibm.com>
Reviewed-by: Alexander Graf <agraf@suse.de>
Signed-off-by: Cornelia Huck <cornelia.huck@de.ibm.com>
Diffstat (limited to 'pc-bios/s390-ccw')
-rw-r--r-- | pc-bios/s390-ccw/virtio.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/pc-bios/s390-ccw/virtio.c b/pc-bios/s390-ccw/virtio.c index a46914d..bbb3c4f 100644 --- a/pc-bios/s390-ccw/virtio.c +++ b/pc-bios/s390-ccw/virtio.c @@ -240,7 +240,7 @@ unsigned long virtio_load_direct(ulong rec_list1, ulong rec_list2, { u8 status; int sec = rec_list1; - int sec_num = (((rec_list2 >> 32)+ 1) & 0xffff); + int sec_num = ((rec_list2 >> 32) & 0xffff) + 1; int sec_len = rec_list2 >> 48; ulong addr = (ulong)load_addr; |