1. 10 8月, 2012 2 次提交
    • J
      ahci: Fix sglist memleak in ahci_dma_rw_buf() · ea8d82a1
      Jason Baron 提交于
      I noticed that in hw/ide/ahci:ahci_dma_rw_buf() we do not free the sglist. Thus,
      I've added a call to qemu_sglist_destroy() to fix this memory leak.
      
      In addition, I've adeed a call in qemu_sglist_destroy() to 0 all of the sglist
      fields, in case there is some other codepath that tries to free the sglist.
      Signed-off-by: NJason Baron <jbaron@redhat.com>
      Signed-off-by: NKevin Wolf <kwolf@redhat.com>
      ea8d82a1
    • J
      ahci: Fix ahci cdrom read corruptions for reads > 128k · 61f52e06
      Jason Baron 提交于
      While testing q35, which has its cdrom attached to the ahci controller, I found
      that the Fedora 17 install would panic on boot. The panic occurs while
      squashfs is trying to read from the cdrom. The errors are:
      
      [    8.622711] SQUASHFS error: xz_dec_run error, data probably corrupt
      [    8.625180] SQUASHFS error: squashfs_read_data failed to read block
      0x20be48a
      
      I was also able to produce corrupt data reads using an installed piix based
      qemu machine, using 'dd'. I found that the corruptions were only occuring when
      then read size was greater than 128k. For example, the following command
      results in corrupted reads:
      
      dd if=/dev/sr0 of=/tmp/blah bs=256k iflag=direct
      
      The > 128k size reads exercise a different code path than 128k and below. In
      ide_atapi_cmd_read_dma_cb() s->io_buffer_size is capped at 128k. Thus,
      ide_atapi_cmd_read_dma_cb() is called a second time when the read is > 128k.
      However, ahci_dma_rw_buf() restart the read from offset 0, instead of at 128k.
      Thus, resulting in a corrupted read.
      
      To fix this, I've introduced 'io_buffer_offset' field in IDEState to keep
      track of the offset. I've also modified ahci_populate_sglist() to take a new
      3rd offset argument, so that the sglist is property initialized.
      
      I've tested this patch using 'dd' testing, and Fedora 17 now correctly boots
      and installs on q35 with the cdrom ahci controller.
      Signed-off-by: NJason Baron <jbaron@redhat.com>
      Tested-by: NAndreas Färber <afaerber@suse.de>
      Signed-off-by: NKevin Wolf <kwolf@redhat.com>
      61f52e06
  2. 07 8月, 2012 1 次提交
  3. 28 7月, 2012 1 次提交
  4. 17 7月, 2012 13 次提交
  5. 04 7月, 2012 1 次提交
  6. 02 7月, 2012 1 次提交
  7. 28 6月, 2012 2 次提交
  8. 20 6月, 2012 1 次提交
  9. 18 6月, 2012 3 次提交
    • A
      qdev: Convert busses to QEMU Object Model · 0d936928
      Anthony Liguori 提交于
      This is far less interesting than it sounds.  We simply add an Object to each
      BusState and then register the types appropriately.  Most of the interesting
      refactoring will follow in the next patches.
      
      Since we're changing fundamental type names (BusInfo -> BusClass), it all needs
      to convert at once.  Fortunately, not a lot of code is affected.
      Signed-off-by: NAnthony Liguori <aliguori@us.ibm.com>
      Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
      [AF: Made all new bus TypeInfos static const.]
      [AF: Made qbus_free() call object_delete(), required {qom,glib}_allocated]
      Signed-off-by: NAndreas Färber <afaerber@suse.de>
      0d936928
    • P
      qdev: Move bus properties to abstract superclasses · bce54474
      Paolo Bonzini 提交于
      In qdev, each bus in practice identified an abstract superclass, but
      this was mostly hidden.  In QOM, instead, these abstract classes are
      explicit so we can move bus properties there.
      
      All bus property walks are removed, and all device property walks
      are changed to look along the class hierarchy instead.
      
      We would have duplicates if class A defines some properties and its
      subclass B does not define any, because class_b->props will be
      left equal to class_a->props.
      
      The solution here is to reintroduce the class_base_init TypeInfo
      callback, that was present in one of the early QOM versions but
      removed (on my request...) before committing.
      
      This breaks global bus properties, an obscure feature when used
      with the command-line which is actually useful and used when used by
      backwards-compatible machine types.  So this patch also adjusts the
      global bus properties in hw/pc_piix.c to refer to the abstract class.
      
      Globals and other properties must be modified in the same patch to
      avoid complications related to initialization ordering.
      Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
      Signed-off-by: NAndreas Färber <afaerber@suse.de>
      bce54474
    • P
      qdev: Move bus properties to a separate global · 3cb75a7c
      Paolo Bonzini 提交于
      Simple code movement in order to simplify future refactoring.
      Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
      Signed-off-by: NAndreas Färber <afaerber@suse.de>
      3cb75a7c
  10. 15 6月, 2012 2 次提交
  11. 07 6月, 2012 5 次提交
  12. 30 5月, 2012 1 次提交
  13. 03 5月, 2012 1 次提交
    • A
      ATA: Allow WIN_SECURITY_FREEZE_LOCK as nop · d5b406d9
      Alexander Graf 提交于
      When using Windows 8 with an AHCI disk drive, it issues a blue screen.
      The reason is that WIN_SECURITY_FREEZE_LOCK / CFA_WEAR_LEVEL is not
      supported by our ATA implementation, but Windows expects it to be there.
      
      Since without security stuff implemented, the lock would be a nop anyway
      and CFA_WEAR_LEVEL already is treated as a nop, let's just allow the cmd
      for HD drives as well. That way Windows is happy.
      Signed-off-by: NAlexander Graf <agraf@suse.de>
      Signed-off-by: NKevin Wolf <kwolf@redhat.com>
      d5b406d9
  14. 19 4月, 2012 2 次提交
  15. 05 4月, 2012 4 次提交