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>
This commit is contained in:
parent
910f66fcda
commit
554f80896d
@ -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;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user