Skip to content

Commit

Permalink
pc-bios/s390-ccw: virtio_load_direct() can't load max number of sectors
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
David Hildenbrand authored and cohuck committed Jun 23, 2014
1 parent 910f66f commit 554f808
Showing 1 changed file with 1 addition and 1 deletion.
2 changes: 1 addition & 1 deletion pc-bios/s390-ccw/virtio.c
Expand Up @@ -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;

Expand Down

0 comments on commit 554f808

Please sign in to comment.