All of lore.kernel.org
 help / color / mirror / Atom feed
From: Alberto Garcia <berto@igalia.com>
To: Kevin Wolf <kwolf@redhat.com>
Cc: qemu-devel@nongnu.org, qemu-block@nongnu.org,
	Stefan Hajnoczi <stefanha@redhat.com>,
	Max Reitz <mreitz@redhat.com>,
	Paolo Bonzini <pbonzini@redhat.com>
Subject: Re: [Qemu-devel] [PATCH 2/6] block: Acquire the AioContext in scsi_*_realize()
Date: Fri, 11 Jan 2019 16:05:47 +0100	[thread overview]
Message-ID: <w51muo7qlo4.fsf@maestria.local.igalia.com> (raw)
In-Reply-To: <20190111150213.GK5010@dhcp-200-186.str.redhat.com>

On Fri 11 Jan 2019 04:02:13 PM CET, Kevin Wolf wrote:
>> @@ -2568,7 +2579,10 @@ static void scsi_block_realize(SCSIDevice *dev, Error **errp)
>>      }
>>  
>>      /* check we are using a driver managing SG_IO (version 3 and after) */
>> +    ctx = blk_get_aio_context(s->qdev.conf.blk);
>> +    aio_context_acquire(ctx);
>>      rc = blk_ioctl(s->qdev.conf.blk, SG_GET_VERSION_NUM, &sg_version);
>> +    aio_context_release(ctx);
>>      if (rc < 0) {
>>          error_setg_errno(errp, -rc, "cannot get SG_IO version number");
>>          if (rc != -EPERM) {
>
> This is probably not enough. get_device_type() and
> scsi_generic_read_device_inquiry() below issue more ioctls (but we
> need to be careful not to include the scsi_realize() call in the
> locked section if you take the lock again there).

Hmmm, another alternative is not to take the lock in scsi_realize() and
take it instead in all the functions that call it (it's 4 or 5).

Berto

  reply	other threads:[~2019-01-11 15:05 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-01-10 15:03 [Qemu-devel] [PATCH 0/6] Acquire the AioContext during _realize() Alberto Garcia
2019-01-10 15:03 ` [Qemu-devel] [PATCH 1/6] block: Acquire the AioContext in virtio_blk_device_realize() Alberto Garcia
2019-01-10 15:03 ` [Qemu-devel] [PATCH 2/6] block: Acquire the AioContext in scsi_*_realize() Alberto Garcia
2019-01-11 15:02   ` Kevin Wolf
2019-01-11 15:05     ` Alberto Garcia [this message]
2019-01-11 15:14       ` Kevin Wolf
2019-01-10 15:03 ` [Qemu-devel] [PATCH 3/6] block: Acquire the AioContext in floppy_drive_realize() Alberto Garcia
2019-01-10 15:03 ` [Qemu-devel] [PATCH 4/6] block: Acquire the AioContext in nvme_realize() Alberto Garcia
2019-01-10 15:03 ` [Qemu-devel] [PATCH 5/6] block: Acquire the AioContext in ide_dev_initfn() Alberto Garcia
2019-01-10 15:03 ` [Qemu-devel] [PATCH 6/6] block: Acquire the AioContext in usb_msd_storage_realize() Alberto Garcia
2019-01-11 13:20 ` [Qemu-devel] [PATCH 0/6] Acquire the AioContext during _realize() Markus Armbruster
2019-01-11 15:09 ` Kevin Wolf
2019-01-11 15:13   ` Alberto Garcia

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=w51muo7qlo4.fsf@maestria.local.igalia.com \
    --to=berto@igalia.com \
    --cc=kwolf@redhat.com \
    --cc=mreitz@redhat.com \
    --cc=pbonzini@redhat.com \
    --cc=qemu-block@nongnu.org \
    --cc=qemu-devel@nongnu.org \
    --cc=stefanha@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.