Revision f35ea98c hw/ide/macio.c

b/hw/ide/macio.c
87 87
        s->io_buffer_index &= 0x7ff;
88 88
    }
89 89

  
90
    s->io_buffer_size = io->len;
90
    s->io_buffer_size = MIN(io->len, s->packet_transfer_size);
91 91

  
92 92
    MACIO_DPRINTF("remainder: %d io->len: %d size: %d\n", io->remainder_len,
93 93
                  io->len, s->packet_transfer_size);
......
253 253
    /* launch next transfer */
254 254

  
255 255
    s->io_buffer_index = 0;
256
    s->io_buffer_size = io->len;
256
    s->io_buffer_size = MIN(io->len, s->nsector * 512);
257 257

  
258 258
    /* handle unaligned accesses first, get them over with and only do the
259 259
       remaining bulk transfer using our async DMA helpers */

Also available in: Unified diff