All of lore.kernel.org
 help / color / mirror / Atom feed
From: Christian Borntraeger <borntraeger@de.ibm.com>
To: Alexander Graf <agraf@suse.de>
Cc: Cornelia Huck <cornelia.huck@de.ibm.com>,
	Marcelo Tosatti <mtosatti@redhat.com>,
	Gleb Natapov <gleb@redhat.com>, KVM <kvm@vger.kernel.org>,
	linux-s390 <linux-s390@vger.kernel.org>,
	Carsten Otte <cotte@de.ibm.com>,
	Heiko Carstens <heiko.carstens@de.ibm.com>,
	Martin Schwidefsky <schwidefsky@de.ibm.com>,
	Sebastian Ott <sebott@linux.vnet.ibm.com>
Subject: Re: [PATCH 4/4] KVM: s390: Add a channel I/O based virtio transport driver.
Date: Wed, 12 Dec 2012 21:12:26 +0100	[thread overview]
Message-ID: <50C8E52A.1@de.ibm.com> (raw)
In-Reply-To: <50C8CD8F.2000909@suse.de>

On 12/12/12 19:31, Alexander Graf wrote:
 +static inline long do_kvm_notify(struct subchannel_id schid,
>> +                 unsigned long queue_index)
>> +{
>> +    register unsigned long __nr asm("1") = KVM_S390_VIRTIO_CCW_NOTIFY;
>> +    register struct subchannel_id __schid asm("2") = schid;
> 
> How does the compiler know that the struct fits within a register?
> 

Well it knows that sizeof struct subchannel_id is 4.

then we have 
"ELF Application Binary Interface Supplement Linux on zSeries"

[...]
Parameter passing
[...]
- Structures with a size of 1, 2, 4, or 8 bytes are passed as integral values.  <=============
- All other structures are passed by reference. If needed, the called function makes
  a copy of the value.
[...]

while not being a perfect match it gives a good indication that this will work.

Furthermore, we know it is working at least since 
commit 94c12cc7d196bab34aaa98d38521549fa1e5ef76
Author: Martin Schwidefsky <schwidefsky@de.ibm.com>
Date:   Thu Sep 28 16:56:43 2006 +0200
    [S390] Inline assembly cleanup.

in 
drivers/s390/cio/ioasm.h

[...]
94c12cc7 (Martin Schwidefsky  2006-09-28 16:56:43 +0200  30)    register struct subchannel_id reg1 asm ("1") = schid;
94c12cc7 (Martin Schwidefsky  2006-09-28 16:56:43 +0200  31)    int ccode = -EIO;
fb6958a5 (Cornelia Huck       2006-01-06 00:19:25 -0800  32) 
94c12cc7 (Martin Schwidefsky  2006-09-28 16:56:43 +0200  33)    asm volatile(
[...]

So this complies with the coding style of the s390 maintainer :-)

Christian

  reply	other threads:[~2012-12-12 20:12 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-12-12 16:36 [PATCH v4 0/4] s390: Guest support for virtio-ccw Cornelia Huck
2012-12-12 16:36 ` [PATCH 1/4] KVM: s390: Handle hosts not supporting s390-virtio Cornelia Huck
2012-12-12 16:36 ` [PATCH 2/4] s390: Move css limits from drivers/s390/cio/ to include/asm/ Cornelia Huck
2012-12-12 16:36 ` [PATCH 3/4] s390: Add a mechanism to get the subchannel id Cornelia Huck
2012-12-12 16:36 ` [PATCH 4/4] KVM: s390: Add a channel I/O based virtio transport driver Cornelia Huck
2012-12-12 18:31   ` Alexander Graf
2012-12-12 20:12     ` Christian Borntraeger [this message]
2012-12-13 11:06       ` Alexander Graf
2012-12-13 11:13         ` Christian Borntraeger
2012-12-13 11:19           ` Alexander Graf
2012-12-13 16:08             ` Christian Borntraeger

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=50C8E52A.1@de.ibm.com \
    --to=borntraeger@de.ibm.com \
    --cc=agraf@suse.de \
    --cc=cornelia.huck@de.ibm.com \
    --cc=cotte@de.ibm.com \
    --cc=gleb@redhat.com \
    --cc=heiko.carstens@de.ibm.com \
    --cc=kvm@vger.kernel.org \
    --cc=linux-s390@vger.kernel.org \
    --cc=mtosatti@redhat.com \
    --cc=schwidefsky@de.ibm.com \
    --cc=sebott@linux.vnet.ibm.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.