All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Radim Krčmář" <rkrcmar@redhat.com>
To: Christian Borntraeger <borntraeger@de.ibm.com>
Cc: Gleb Fotengauer-Malinovskiy <glebfm@altlinux.org>,
	Paolo Bonzini <pbonzini@redhat.com>,
	Claudio Imbrenda <imbrenda@linux.vnet.ibm.com>,
	"Dmitry V. Levin" <ldv@altlinux.org>,
	kvm@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH] KVM: s390: Fix KVM_S390_GET_CMMA_BITS ioctl definition
Date: Tue, 11 Jul 2017 16:21:28 +0200	[thread overview]
Message-ID: <20170711142127.GA3442@potion> (raw)
In-Reply-To: <c5586f91-9a06-ee45-18ec-848cc0ed44ff@de.ibm.com>

2017-07-11 10:21+0200, Christian Borntraeger:
> On 07/10/2017 11:23 PM, Gleb Fotengauer-Malinovskiy wrote:
> > On Mon, Jul 10, 2017 at 08:43:12PM +0200, Christian Borntraeger wrote:
> >> On 07/10/2017 04:44 PM, Gleb Fotengauer-Malinovskiy wrote:
> >>> This ioctl actually writes to parameter too.
> >>
> >> Maybe rephrase that to:
> >> The kernel does not only read struct kvm_s390_cmma_log for KVM_S390_GET_CMMA_BITS,
> >> it also writes back a return value making this _IOWR instead of _IOW.
> > 
> > Ok, see v2.
> > 
> >>> Fixes: 4036e387 ("KVM: s390: ioctls to get and set guest storage attributes")
> >>> Signed-off-by: Gleb Fotengauer-Malinovskiy <glebfm@altlinux.org>
> >> Acked-by: Christian Borntraeger <borntraeger@de.ibm.com>
> >>
> >>
> >> Out of curiosity, how did you notice that? 
> > 
> > I regenerated strace's ioctl lists.  It was obvious from the diff that
> > *GET* and *SET* could not be both _IOC_WRITE.
> > 
> 
> In fact we do have multiple GET/SET ioctls in KVM, where both provide a control
> block that is _IOC_WRITE only. That control block then has an address that will 
> be read/written to depending on get/set. 
> E.g. look at 
> #define KVM_SET_DEVICE_ATTR       _IOW(KVMIO,  0xe1, struct kvm_device_attr)
> #define KVM_GET_DEVICE_ATTR       _IOW(KVMIO,  0xe2, struct kvm_device_attr)
> 
> but as far as I understand, the direction hints only qualify the referenced
> struct and not the side effects. So for KVM_*_DEVICE_ATTR it is correct to have
> IOW for both cases.
> 
> But for GET_CMMA we do indeed write back data. 
> 
> Paolo, Radim,
> 
> if we want to fix the direction hint, it would be good to merge this in as soon
> as possible. The new interface was added during this merge window.

Having correct hints would allow us to have one common
copy_from_user/copy_to_user and I think it's not too late to rename it
with the real behavior.  Applied for the second merge-window pull
request,

thanks.

      reply	other threads:[~2017-07-11 14:21 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-07-10 14:44 [PATCH] KVM: s390: Fix KVM_S390_GET_CMMA_BITS ioctl definition Gleb Fotengauer-Malinovskiy
2017-07-10 18:43 ` Christian Borntraeger
2017-07-10 21:22   ` [PATCH v2] " Gleb Fotengauer-Malinovskiy
2017-07-10 21:23   ` [PATCH] " Gleb Fotengauer-Malinovskiy
2017-07-11  8:21     ` Christian Borntraeger
2017-07-11 14:21       ` Radim Krčmář [this message]

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=20170711142127.GA3442@potion \
    --to=rkrcmar@redhat.com \
    --cc=borntraeger@de.ibm.com \
    --cc=glebfm@altlinux.org \
    --cc=imbrenda@linux.vnet.ibm.com \
    --cc=kvm@vger.kernel.org \
    --cc=ldv@altlinux.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=pbonzini@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.