From mboxrd@z Thu Jan 1 00:00:00 1970 From: Christian Borntraeger Subject: Re: [RFC PATCH v2 1/2] KVM: s390: virtio-ccw: Handle command rejects. Date: Wed, 10 Jul 2013 10:47:25 +0200 Message-ID: <51DD1F9D.9060500@de.ibm.com> References: <1373369657-51675-1-git-send-email-cornelia.huck@de.ibm.com> <1373369657-51675-2-git-send-email-cornelia.huck@de.ibm.com> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <1373369657-51675-2-git-send-email-cornelia.huck@de.ibm.com> Sender: kvm-owner@vger.kernel.org List-Archive: List-Post: To: Cornelia Huck Cc: KVM , linux-s390 , qemu-devel , virtualization@lists.linux-foundation.org List-ID: On 09/07/13 13:34, Cornelia Huck wrote: > A command reject for a ccw may happen if we run on a host not supporting > a certain feature. We want to be able to handle this as special case of > command failure, so let's split this off from the generic -EIO error code. > > Signed-off-by: Cornelia Huck Acked-by: Christian Borntraeger > --- > drivers/s390/kvm/virtio_ccw.c | 11 +++++++++-- > 1 file changed, 9 insertions(+), 2 deletions(-) > > diff --git a/drivers/s390/kvm/virtio_ccw.c b/drivers/s390/kvm/virtio_ccw.c > index 779dc51..d6c7aba 100644 > --- a/drivers/s390/kvm/virtio_ccw.c > +++ b/drivers/s390/kvm/virtio_ccw.c > @@ -639,8 +639,15 @@ static void virtio_ccw_int_handler(struct ccw_device *cdev, > (SCSW_STCTL_ALERT_STATUS | SCSW_STCTL_STATUS_PEND))) { > /* OK */ > } > - if (irb_is_error(irb)) > - vcdev->err = -EIO; /* XXX - use real error */ > + if (irb_is_error(irb)) { > + /* Command reject? */ > + if ((scsw_dstat(&irb->scsw) & DEV_STAT_UNIT_CHECK) && > + (irb->ecw[0] & SNS0_CMD_REJECT)) > + vcdev->err = -EOPNOTSUPP; > + else > + /* Map everything else to -EIO. */ > + vcdev->err = -EIO; > + } > if (vcdev->curr_io & activity) { > switch (activity) { > case VIRTIO_CCW_DOING_READ_FEAT: > From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:42176) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Uwq3g-000590-WC for qemu-devel@nongnu.org; Wed, 10 Jul 2013 04:47:34 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Uwq3g-0003BH-2v for qemu-devel@nongnu.org; Wed, 10 Jul 2013 04:47:32 -0400 Received: from e06smtp10.uk.ibm.com ([195.75.94.106]:58957) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Uwq3f-0003An-Qd for qemu-devel@nongnu.org; Wed, 10 Jul 2013 04:47:32 -0400 Received: from /spool/local by e06smtp10.uk.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted for from ; Wed, 10 Jul 2013 09:44:53 +0100 Received: from b06cxnps4076.portsmouth.uk.ibm.com (d06relay13.portsmouth.uk.ibm.com [9.149.109.198]) by d06dlp01.portsmouth.uk.ibm.com (Postfix) with ESMTP id 320FF17D8063 for ; Wed, 10 Jul 2013 09:49:01 +0100 (BST) Received: from d06av09.portsmouth.uk.ibm.com (d06av09.portsmouth.uk.ibm.com [9.149.37.250]) by b06cxnps4076.portsmouth.uk.ibm.com (8.13.8/8.13.8/NCO v10.0) with ESMTP id r6A8lFCs45285556 for ; Wed, 10 Jul 2013 08:47:15 GMT Received: from d06av09.portsmouth.uk.ibm.com (localhost [127.0.0.1]) by d06av09.portsmouth.uk.ibm.com (8.14.4/8.14.4/NCO v10.0 AVout) with ESMTP id r6A8lQjD005379 for ; Wed, 10 Jul 2013 02:47:26 -0600 Message-ID: <51DD1F9D.9060500@de.ibm.com> Date: Wed, 10 Jul 2013 10:47:25 +0200 From: Christian Borntraeger MIME-Version: 1.0 References: <1373369657-51675-1-git-send-email-cornelia.huck@de.ibm.com> <1373369657-51675-2-git-send-email-cornelia.huck@de.ibm.com> In-Reply-To: <1373369657-51675-2-git-send-email-cornelia.huck@de.ibm.com> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [RFC PATCH v2 1/2] KVM: s390: virtio-ccw: Handle command rejects. List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Cornelia Huck Cc: linux-s390 , qemu-devel , KVM , virtualization@lists.linux-foundation.org On 09/07/13 13:34, Cornelia Huck wrote: > A command reject for a ccw may happen if we run on a host not supporting > a certain feature. We want to be able to handle this as special case of > command failure, so let's split this off from the generic -EIO error code. > > Signed-off-by: Cornelia Huck Acked-by: Christian Borntraeger > --- > drivers/s390/kvm/virtio_ccw.c | 11 +++++++++-- > 1 file changed, 9 insertions(+), 2 deletions(-) > > diff --git a/drivers/s390/kvm/virtio_ccw.c b/drivers/s390/kvm/virtio_ccw.c > index 779dc51..d6c7aba 100644 > --- a/drivers/s390/kvm/virtio_ccw.c > +++ b/drivers/s390/kvm/virtio_ccw.c > @@ -639,8 +639,15 @@ static void virtio_ccw_int_handler(struct ccw_device *cdev, > (SCSW_STCTL_ALERT_STATUS | SCSW_STCTL_STATUS_PEND))) { > /* OK */ > } > - if (irb_is_error(irb)) > - vcdev->err = -EIO; /* XXX - use real error */ > + if (irb_is_error(irb)) { > + /* Command reject? */ > + if ((scsw_dstat(&irb->scsw) & DEV_STAT_UNIT_CHECK) && > + (irb->ecw[0] & SNS0_CMD_REJECT)) > + vcdev->err = -EOPNOTSUPP; > + else > + /* Map everything else to -EIO. */ > + vcdev->err = -EIO; > + } > if (vcdev->curr_io & activity) { > switch (activity) { > case VIRTIO_CCW_DOING_READ_FEAT: >