1. 14 1月, 2019 13 次提交
  2. 12 1月, 2019 4 次提交
  3. 11 1月, 2019 23 次提交
    • P
      Merge remote-tracking branch 'remotes/bonzini/tags/for-upstream' into staging · 15bede55
      Peter Maydell 提交于
      * HAX support for Linux hosts (Alejandro)
      * esp bugfixes (Guenter)
      * Windows build cleanup (Marc-André)
      * checkpatch logic improvements (Paolo)
      * coalesced range bugfix (Paolo)
      * switch testsuite to TAP (Paolo)
      * QTAILQ rewrite (Paolo)
      * block/iscsi.c cancellation fixes (Stefan)
      * improve selection of the default accelerator (Thomas)
      
      # gpg: Signature made Fri 11 Jan 2019 14:47:40 GMT
      # gpg:                using RSA key BFFBD25F78C7AE83
      # gpg: Good signature from "Paolo Bonzini <bonzini@gnu.org>"
      # gpg:                 aka "Paolo Bonzini <pbonzini@redhat.com>"
      # Primary key fingerprint: 46F5 9FBD 57D6 12E7 BFD4  E2F7 7E15 100C CD36 69B1
      #      Subkey fingerprint: F133 3857 4B66 2389 866C  7682 BFFB D25F 78C7 AE83
      
      * remotes/bonzini/tags/for-upstream: (34 commits)
        avoid TABs in files that only contain a few
        remove space-tab sequences
        scripts: add script to convert multiline comments into 4-line format
        hw/watchdog/wdt_i6300esb: remove a unnecessary comment
        checkpatch: warn about qemu/queue.h head structs that are not typedef-ed
        qemu/queue.h: simplify reverse access to QTAILQ
        qemu/queue.h: reimplement QTAILQ without pointer-to-pointers
        qemu/queue.h: remove Q_TAILQ_{HEAD,ENTRY}
        qemu/queue.h: typedef QTAILQ heads
        qemu/queue.h: leave head structs anonymous unless necessary
        vfio: make vfio_address_spaces static
        qemu/queue.h: do not access tqe_prev directly
        test: replace gtester with a TAP driver
        test: execute g_test_run when tests are skipped
        qga: drop < Vista compatibility
        build-sys: build with Vista API by default
        build-sys: move windows defines in osdep.h header
        build-sys: don't include windows.h, osdep.h does it
        scsi: esp: Defer command completion until previous interrupts have been handled
        esp-pci: Fix status register write erase control
        ...
      Signed-off-by: NPeter Maydell <peter.maydell@linaro.org>
      15bede55
    • P
      avoid TABs in files that only contain a few · 7d37435b
      Paolo Bonzini 提交于
      Most files that have TABs only contain a handful of them.  Change
      them to spaces so that we don't confuse people.
      
      disas, standard-headers, linux-headers and libdecnumber are imported
      from other projects and probably should be exempted from the check.
      Outside those, after this patch the following files still contain both
      8-space and TAB sequences at the beginning of the line.  Many of them
      have a majority of TABs, or were initially committed with all tabs.
      
          bsd-user/i386/target_syscall.h
          bsd-user/x86_64/target_syscall.h
          crypto/aes.c
          hw/audio/fmopl.c
          hw/audio/fmopl.h
          hw/block/tc58128.c
          hw/display/cirrus_vga.c
          hw/display/xenfb.c
          hw/dma/etraxfs_dma.c
          hw/intc/sh_intc.c
          hw/misc/mst_fpga.c
          hw/net/pcnet.c
          hw/sh4/sh7750.c
          hw/timer/m48t59.c
          hw/timer/sh_timer.c
          include/crypto/aes.h
          include/disas/bfd.h
          include/hw/sh4/sh.h
          libdecnumber/decNumber.c
          linux-headers/asm-generic/unistd.h
          linux-headers/linux/kvm.h
          linux-user/alpha/target_syscall.h
          linux-user/arm/nwfpe/double_cpdo.c
          linux-user/arm/nwfpe/fpa11_cpdt.c
          linux-user/arm/nwfpe/fpa11_cprt.c
          linux-user/arm/nwfpe/fpa11.h
          linux-user/flat.h
          linux-user/flatload.c
          linux-user/i386/target_syscall.h
          linux-user/ppc/target_syscall.h
          linux-user/sparc/target_syscall.h
          linux-user/syscall.c
          linux-user/syscall_defs.h
          linux-user/x86_64/target_syscall.h
          slirp/cksum.c
          slirp/if.c
          slirp/ip.h
          slirp/ip_icmp.c
          slirp/ip_icmp.h
          slirp/ip_input.c
          slirp/ip_output.c
          slirp/mbuf.c
          slirp/misc.c
          slirp/sbuf.c
          slirp/socket.c
          slirp/socket.h
          slirp/tcp_input.c
          slirp/tcpip.h
          slirp/tcp_output.c
          slirp/tcp_subr.c
          slirp/tcp_timer.c
          slirp/tftp.c
          slirp/udp.c
          slirp/udp.h
          target/cris/cpu.h
          target/cris/mmu.c
          target/cris/op_helper.c
          target/sh4/helper.c
          target/sh4/op_helper.c
          target/sh4/translate.c
          tcg/sparc/tcg-target.inc.c
          tests/tcg/cris/check_addo.c
          tests/tcg/cris/check_moveq.c
          tests/tcg/cris/check_swap.c
          tests/tcg/multiarch/test-mmap.c
          ui/vnc-enc-hextile-template.h
          ui/vnc-enc-zywrle.h
          util/envlist.c
          util/readline.c
      
      The following have only TABs:
      
          bsd-user/i386/target_signal.h
          bsd-user/sparc64/target_signal.h
          bsd-user/sparc64/target_syscall.h
          bsd-user/sparc/target_signal.h
          bsd-user/sparc/target_syscall.h
          bsd-user/x86_64/target_signal.h
          crypto/desrfb.c
          hw/audio/intel-hda-defs.h
          hw/core/uboot_image.h
          hw/sh4/sh7750_regnames.c
          hw/sh4/sh7750_regs.h
          include/hw/cris/etraxfs_dma.h
          linux-user/alpha/termbits.h
          linux-user/arm/nwfpe/fpopcode.h
          linux-user/arm/nwfpe/fpsr.h
          linux-user/arm/syscall_nr.h
          linux-user/arm/target_signal.h
          linux-user/cris/target_signal.h
          linux-user/i386/target_signal.h
          linux-user/linux_loop.h
          linux-user/m68k/target_signal.h
          linux-user/microblaze/target_signal.h
          linux-user/mips64/target_signal.h
          linux-user/mips/target_signal.h
          linux-user/mips/target_syscall.h
          linux-user/mips/termbits.h
          linux-user/ppc/target_signal.h
          linux-user/sh4/target_signal.h
          linux-user/sh4/termbits.h
          linux-user/sparc64/target_syscall.h
          linux-user/sparc/target_signal.h
          linux-user/x86_64/target_signal.h
          linux-user/x86_64/termbits.h
          pc-bios/optionrom/optionrom.h
          slirp/mbuf.h
          slirp/misc.h
          slirp/sbuf.h
          slirp/tcp.h
          slirp/tcp_timer.h
          slirp/tcp_var.h
          target/i386/svm.h
          target/sparc/asi.h
          target/xtensa/core-dc232b/xtensa-modules.inc.c
          target/xtensa/core-dc233c/xtensa-modules.inc.c
          target/xtensa/core-de212/core-isa.h
          target/xtensa/core-de212/xtensa-modules.inc.c
          target/xtensa/core-fsf/xtensa-modules.inc.c
          target/xtensa/core-sample_controller/core-isa.h
          target/xtensa/core-sample_controller/xtensa-modules.inc.c
          target/xtensa/core-test_kc705_be/core-isa.h
          target/xtensa/core-test_kc705_be/xtensa-modules.inc.c
          tests/tcg/cris/check_abs.c
          tests/tcg/cris/check_addc.c
          tests/tcg/cris/check_addcm.c
          tests/tcg/cris/check_addoq.c
          tests/tcg/cris/check_bound.c
          tests/tcg/cris/check_ftag.c
          tests/tcg/cris/check_int64.c
          tests/tcg/cris/check_lz.c
          tests/tcg/cris/check_openpf5.c
          tests/tcg/cris/check_sigalrm.c
          tests/tcg/cris/crisutils.h
          tests/tcg/cris/sys.c
          tests/tcg/i386/test-i386-ssse3.c
          ui/vgafont.h
      Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
      Message-Id: <20181213223737.11793-3-pbonzini@redhat.com>
      Reviewed-by: NAleksandar Markovic <amarkovic@wavecomp.com>
      Reviewed-by: NStefan Hajnoczi <stefanha@redhat.com>
      Reviewed-by: NWainer dos Santos Moschetta <wainersm@redhat.com>
      Acked-by: NRichard Henderson <richard.henderson@linaro.org>
      Acked-by: NEric Blake <eblake@redhat.com>
      Acked-by: NDavid Gibson <david@gibson.dropbear.id.au>
      Reviewed-by: NStefan Markovic <smarkovic@wavecomp.com>
      Reviewed-by: NMichael S. Tsirkin <mst@redhat.com>
      Reviewed-by: NAlex Bennée <alex.bennee@linaro.org>
      Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
      7d37435b
    • P
      remove space-tab sequences · 72e21db7
      Paolo Bonzini 提交于
      There are not many, and they are all simple mistakes that ended up
      being committed.  Remove them.
      Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
      Message-Id: <20181213223737.11793-2-pbonzini@redhat.com>
      Reviewed-by: NWainer dos Santos Moschetta <wainersm@redhat.com>
      Acked-by: NRichard Henderson <richard.henderson@linaro.org>
      Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
      72e21db7
    • P
      scripts: add script to convert multiline comments into 4-line format · 6afeb397
      Paolo Bonzini 提交于
      Since we're adding checkpatch rules to enforce 4-line multiline comment
      format, i.e. with lone /* and */, this script can be run on existing
      code so that the comment style does not become inconsistent within a
      file.
      
      The alternative to awk-in-a-shell-script could be Perl, which also
      supports -i directly, but a2p seems to have bitrotten and I didn't quite
      feel like writing this twice...
      Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
      6afeb397
    • P
      hw/watchdog/wdt_i6300esb: remove a unnecessary comment · 7d2fcebb
      Peng Hao 提交于
      The registered memory region of i6300esb is not suitable for coalesced
      mmio, because a write for the region may trigger an immediate action
      and can't be delayed.
      Signed-off-by: NPeng Hao <peng.hao2@zte.com.cn>
      Message-Id: <1544253511-82742-1-git-send-email-peng.hao2@zte.com.cn>
      Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
      7d2fcebb
    • P
      checkpatch: warn about qemu/queue.h head structs that are not typedef-ed · 50db69a1
      Paolo Bonzini 提交于
      These are just like any other struct or union, so they should have
      CamelCase typedefs.
      Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
      50db69a1
    • P
      qemu/queue.h: simplify reverse access to QTAILQ · eae3eb3e
      Paolo Bonzini 提交于
      The new definition of QTAILQ does not require passing the headname,
      remove it.
      Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
      eae3eb3e
    • P
      qemu/queue.h: reimplement QTAILQ without pointer-to-pointers · 7274f01b
      Paolo Bonzini 提交于
      QTAILQ is a doubly linked list, with a pointer-to-pointer to the last
      element from the head, and the previous element from each node.
      
      But if you squint enough, QTAILQ becomes a combination of a singly-linked
      forwards list, and another singly-linked list which goes backwards and
      is circular.  This is the idea that lets QTAILQ implement reverse
      iteration: only, because the backwards list points inside the node,
      accessing the previous element needs to go two steps back and one
      forwards.
      
      What this patch does is implement it in these terms, without actually
      changing the in-memory layout at all.  The coexistence of the two lists
      is realized by making QTAILQ_HEAD and QTAILQ_ENTRY unions of the forwards
      pointer and a generic QTailQLink node.  Thq QTailQLink can walk the list in
      both directions; the union is needed so that the forwards pointer can
      have the correct type, as a sort of poor man's template.  While there
      are other ways to get the same layout without a union, this one has
      the advantage of simpler operation in the debugger, because the fields
      tqh_first and tqe_next still exist as before the patch.  Those fields are
      also used by scripts/qemugdb/mtree.py, so it's a good idea to preserve them.
      
      The advantage of the new representation is that the two-back-one-forward
      dance done by backwards accesses can be done all while operating on
      QTailQLinks.  No casting to the head struct is needed anymore because,
      even though the QTailQLink's forward pointer is a void *, we can use
      typeof to recover the correct type.  This patch only changes the
      implementation, not the interface.  The next patch will remove the head
      struct name from the backwards visit macros.
      Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
      7274f01b
    • P
      qemu/queue.h: remove Q_TAILQ_{HEAD,ENTRY} · f95bb39c
      Paolo Bonzini 提交于
      These are not present for other kinds of queue, and unused.
      Zap them before more changes are made to the QTAILQ
      implementation.
      Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
      f95bb39c
    • P
      qemu/queue.h: typedef QTAILQ heads · f481ee2d
      Paolo Bonzini 提交于
      This will be needed when we change the QTAILQ head and elem structs
      to unions.  However, it is also consistent with the usage elsewhere
      in QEMU for other list head structs (see for example FsMountList).
      
      Note that most QTAILQs only need their name in order to do backwards
      walks.  Those do not break with the struct->union change, and anyway
      the change will also remove the need to name heads when doing backwards
      walks, so those are not touched here.
      Reviewed-by: NPhilippe Mathieu-Daudé <philmd@redhat.com>
      Reviewed-by: NMarkus Armbruster <armbru@redhat.com>
      Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
      f481ee2d
    • P
      qemu/queue.h: leave head structs anonymous unless necessary · b58deb34
      Paolo Bonzini 提交于
      Most list head structs need not be given a name.  In most cases the
      name is given just in case one is going to use QTAILQ_LAST, QTAILQ_PREV
      or reverse iteration, but this does not apply to lists of other kinds,
      and even for QTAILQ in practice this is only rarely needed.  In addition,
      we will soon reimplement those macros completely so that they do not
      need a name for the head struct.  So clean up everything, not giving a
      name except in the rare case where it is necessary.
      Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
      b58deb34
    • P
      vfio: make vfio_address_spaces static · 10ca76b4
      Paolo Bonzini 提交于
      It is not used outside hw/vfio/common.c, so it does not need to
      be extern.
      Acked-by: NAlex Williamson <alex.williamson@redhat.com>
      Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
      10ca76b4
    • P
      qemu/queue.h: do not access tqe_prev directly · 70537ed5
      Paolo Bonzini 提交于
      Use the QTAILQ_IN_USE macro instead, it does the same thing but the next
      patch will change it to a different definition.
      Reviewed-by: NPhilippe Mathieu-Daudé <philmd@redhat.com>
      Reviewed-by: NMarkus Armbruster <armbru@redhat.com>
      Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
      70537ed5
    • P
      test: replace gtester with a TAP driver · 9df43317
      Paolo Bonzini 提交于
      gtester is deprecated by upstream glib (see for example the announcement
      at https://blog.gtk.org/2018/07/11/news-from-glib-2-58/) and it does
      not support tests that call g_test_skip in some glib stable releases.
      
      glib suggests instead using Automake's TAP support, which gtest itself
      supports since version 2.38 (QEMU's minimum requirement is 2.40).
      We do not support Automake, but we can use Automake's code to beautify
      the TAP output.  I chose to use the Perl copy rather than the shell/awk
      one, with some changes so that it can accept TAP through stdin, in order
      to reuse Perl's TAP parsing package.  This also avoids duplicating the
      parser between tap-driver.pl and tap-merge.pl.
      Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
      Message-Id: <1543513531-1151-3-git-send-email-pbonzini@redhat.com>
      Reviewed-by: NEric Blake <eblake@redhat.com>
      Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
      9df43317
    • P
      Merge remote-tracking branch 'remotes/ehabkost/tags/machine-next-pull-request' into staging · e53f7796
      Peter Maydell 提交于
      Machine queue, 2019-01-10
      
      * Simplify GlobalProperty array declarations (Eduardo Habkost)
      * Deprecate cpu-add commands (Kashyap Chamarthy)
      * range/memory-device cleanups (David Hildenbrand)
      * Fix -device scsi-hd,help regression (Marc-André Lureau)
      * Fix crash when -global generates multiple warnings (Eduardo
        Habkost)
      
      # gpg: Signature made Thu 10 Jan 2019 14:28:23 GMT
      # gpg:                using RSA key 2807936F984DC5A6
      # gpg: Good signature from "Eduardo Habkost <ehabkost@redhat.com>"
      # Primary key fingerprint: 5A32 2FD5 ABC4 D3DB ACCF  D1AA 2807 936F 984D C5A6
      
      * remotes/ehabkost/tags/machine-next-pull-request:
        qom: Don't keep error value between object_property_parse() calls
        qdev: fix -device scsi-hd,help regression
        machine: Use shorter format for GlobalProperty arrays
        machine: Eliminate unnecessary stringify() usage
        spapr: Eliminate SPAPR_PCI_2_7_MMIO_WIN_SIZE macro
        memory-device: rewrite address assignment using ranges
        range: add some more functions
        Mention that QMP 'cpu-add' will be deprecated
        Update that HMP 'cpu-add' is deprecated in 4.0
        qemu-deprecated.texi: Rename the HMP section
      Signed-off-by: NPeter Maydell <peter.maydell@linaro.org>
      e53f7796
    • P
      test: execute g_test_run when tests are skipped · 4848cb3d
      Paolo Bonzini 提交于
      Sometimes a test's main() function recognizes that the environment
      does not support the test, and therefore exits.  In this case, we
      still should run g_test_run() so that a TAP harness will print the
      test plan ("1..0") and the test will be marked as skipped.
      Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
      Message-Id: <1543513531-1151-2-git-send-email-pbonzini@redhat.com>
      Reviewed-by: NEric Blake <eblake@redhat.com>
      Reviewed-by: NThomas Huth <thuth@redhat.com>
      Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
      4848cb3d
    • M
      qga: drop < Vista compatibility · 4ac80866
      Marc-André Lureau 提交于
      Building QGA for XP seems possible so far: the dependency on
      libqemuutil.a implies building qemu-thread-win32.c, which requires
      Vista API since commit 12f8def0 (v2.9). But qemu-thread isn't being
      used in QGA, the resulting binary may still work on XP.  XP is no
      longer supported for the past 4.5y, it's time to drop support for it.
      Signed-off-by: NMarc-André Lureau <marcandre.lureau@redhat.com>
      Message-Id: <20181122110039.15972-5-marcandre.lureau@redhat.com>
      Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
      4ac80866
    • M
      build-sys: build with Vista API by default · 56cdca1d
      Marc-André Lureau 提交于
      Both qemu & qga build with Vista API by default already, by defining
      _WIN32_WINNT 0x0600. Set it globally in osdep.h instead.
      
      This replaces WINVER by _WIN32_WINNT in osdep.h. WINVER doesn't seem
      to be really useful these days.
      (see also https://blogs.msdn.microsoft.com/oldnewthing/20070411-00/?p=27283)
      Signed-off-by: NMarc-André Lureau <marcandre.lureau@redhat.com>
      Message-Id: <20181122110039.15972-4-marcandre.lureau@redhat.com>
      Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
      56cdca1d
    • M
      build-sys: move windows defines in osdep.h header · 007e722c
      Marc-André Lureau 提交于
      This removes some clutter in compilation logging, and allows some
      easier tweaking per compilation unit/CFLAGS overriding.
      
      Note that we can't move those define in os-win32.h, since they must be
      set before the first system headers are included.
      Signed-off-by: NMarc-André Lureau <marcandre.lureau@redhat.com>
      Message-Id: <20181122110039.15972-3-marcandre.lureau@redhat.com>
      Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
      007e722c
    • M
      build-sys: don't include windows.h, osdep.h does it · 444e20a3
      Marc-André Lureau 提交于
      osdep.h will also define the available Windows API version for QEMU.
      Signed-off-by: NMarc-André Lureau <marcandre.lureau@redhat.com>
      Message-Id: <20181122110039.15972-2-marcandre.lureau@redhat.com>
      Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
      444e20a3
    • G
      scsi: esp: Defer command completion until previous interrupts have been handled · ea84a442
      Guenter Roeck 提交于
      The guest OS reads RSTAT, RSEQ, and RINTR, and expects those registers
      to reflect a consistent state. However, it is possible that the registers
      can change after RSTAT was read, but before RINTR is read, when
      esp_command_complete() is called.
      
      Guest OS		qemu
      --------		----
      [handle interrupt]
      Read RSTAT
      			esp_command_complete()
      			 RSTAT = STAT_ST
      			 esp_dma_done()
      			  RSTAT |= STAT_TC
      			  RSEQ = 0
      			  RINTR = INTR_BS
      
      Read RSEQ
      Read RINTR		RINTR = 0
      			RSTAT &= ~STAT_TC
      			RSEQ = SEQ_CD
      
      The guest OS would then try to handle INTR_BS combined with an old
      value of RSTAT. This sometimes resulted in lost events, spurious
      interrupts, guest OS confusion, and stalled SCSI operations.
      A typical guest error log (observed with various versions of Linux)
      looks as follows.
      
      scsi host1: Spurious irq, sreg=13.
      ...
      scsi host1: Aborting command [84531f10:2a]
      scsi host1: Current command [f882eea8:35]
      scsi host1: Queued command [84531f10:2a]
      scsi host1:  Active command [f882eea8:35]
      scsi host1: Dumping command log
      scsi host1: ent[15] CMD val[44] sreg[90] seqreg[00] sreg2[00] ireg[20] ss[00] event[0c]
      scsi host1: ent[16] CMD val[01] sreg[90] seqreg[00] sreg2[00] ireg[20] ss[02] event[0c]
      scsi host1: ent[17] CMD val[43] sreg[90] seqreg[00] sreg2[00] ireg[20] ss[02] event[0c]
      scsi host1: ent[18] EVENT val[0d] sreg[92] seqreg[04] sreg2[00] ireg[18] ss[00] event[0c]
      ...
      
      Defer handling command completion until previous interrupts have been
      handled to fix the problem.
      Signed-off-by: NGuenter Roeck <linux@roeck-us.net>
      ea84a442
    • G
      esp-pci: Fix status register write erase control · c2d6eeda
      Guenter Roeck 提交于
      Per AM53C974 datasheet, definition of "SCSI Bus and Control (SBAC)"
      register:
      
      Bit 24 'STATUS' Write Erase Control
      
      This bit controls the Write Erase feature on bits 3:1 and bit 6 of the DMA
      Status Register ((B)+54h). When this bit is programmed to '1', the state
      of bits 3:1 are preserved when read. Bits 3:1 are only cleared when a '1'
      is written to the corresponding bit location. For example, to clear bit 1,
      the value of '0000_0010b' should be written to the register. When the DMA
      Status Preserve bit is '0', bits 3:1 are cleared when read.
      
      The status register is currently defined to bit 12, not bit 24.
      Also, its implementation is reversed: The status is auto-cleared if
      the bit is set to 1, and must be cleared explicitly when the bit is
      set to 0. This results in spurious interrupts reported by the Linux
      kernel, and in some cases even results in stalled SCSI operations.
      
      Set SBAC_STATUS to bit 24 and reverse the logic to fix the problem.
      Signed-off-by: NGuenter Roeck <linux@roeck-us.net>
      Message-Id: <1543442171-24863-1-git-send-email-linux@roeck-us.net>
      Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
      c2d6eeda
    • S
      block/iscsi: cancel libiscsi task when ABORT TASK TMF completes · 88e94fd2
      Stefan Hajnoczi 提交于
      The libiscsi iscsi_task_mgmt_async() API documentation says:
      
        abort_task will also cancel the scsi task. The callback for the scsi
        task will be invoked with SCSI_STATUS_CANCELLED
      
      The libiscsi implementation does not fulfil this promise.  The task's
      callback is not invoked and its struct iscsi_pdu remains in the internal
      list (effectively leaked).
      
      This patch invokes the libiscsi iscsi_scsi_cancel_task() API to force
      the task's callback to be invoked with SCSI_STATUS_CANCELLED when the
      ABORT TASK TMF completes and the task's callback hasn't been invoked
      yet.
      Signed-off-by: NStefan Hajnoczi <stefanha@redhat.com>
      Message-Id: <20180215111526.2464-1-stefanha@redhat.com>
      Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
      88e94fd2