From nobody Sun May 5 13:52:25 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1505312182210870.6370624890646; Wed, 13 Sep 2017 07:16:22 -0700 (PDT) Received: from localhost ([::1]:42762 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ds8Sj-0003DR-4a for importer@patchew.org; Wed, 13 Sep 2017 10:16:21 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:60597) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ds8Ru-0002sa-ST for qemu-devel@nongnu.org; Wed, 13 Sep 2017 10:15:31 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ds8Ro-0000NU-Ri for qemu-devel@nongnu.org; Wed, 13 Sep 2017 10:15:30 -0400 Received: from mail-lf0-x243.google.com ([2a00:1450:4010:c07::243]:37748) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1ds8Ro-0000MI-KO for qemu-devel@nongnu.org; Wed, 13 Sep 2017 10:15:24 -0400 Received: by mail-lf0-x243.google.com with SMTP id q132so180538lfe.4 for ; Wed, 13 Sep 2017 07:15:23 -0700 (PDT) Received: from localhost.localdomain (home.eubridge.org. [194.28.30.174]) by smtp.gmail.com with ESMTPSA id q18sm1729505lja.19.2017.09.13.07.15.21 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Wed, 13 Sep 2017 07:15:21 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id; bh=JVWM3xgmVxpDy1YniKnCKE90Gi9Fp6lrGfC01l7FWeo=; b=uTb8sGfMrnAA8w/jP449+TQ0Ouu3/CdFQmNPkizhl/TKxrKkr7G3x+ANK+lQQ9nDbu d53Ny20DwfU/iKC2nU/312HpeRCNzfQyc6Fbgo9fMIGDMkga9jSyH7J5WPR9DGKQ1obd BDbdXvCaMlUWCdQClIp0jROC0u2ammha/h1S6scIVurg2hlsEjDp3hFapFUqMElpt+9g 29HyqSUOFPAnilFt81P3qx0j5fwIufirLuJPeLwpH9kFLcPB0S8yFu90uethbZfcjF0y oyXrcztm73JXwpib4N+7mIxzQVgczD9dp4cOw+bXH7w5+SWcxDspJdIyr/3KyyfvjbJm vvjw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id; bh=JVWM3xgmVxpDy1YniKnCKE90Gi9Fp6lrGfC01l7FWeo=; b=MBWbtmGUeWFmaF0VTz/0z0hi2NS26v2Rz8+qAxxDJfA3kEW42VKB0/GWOEff+w5q7L hPqjEdFi/D3jlCySbXz9Gy+yT4lw8vWcqIzkoKHEiZhJvc3oUJ6V30thuRNwj0SHnh8q 0e4+HkdyV/Qy2s986cmRPKOodBKBBapA367uyuvcZIsEUefp+pbJ00tx6HFvcV+5Dkx+ j+nlZw1CYn+MhqrB0ue9ntrrOMwhTyZDKynQUVC75RciqR2HSGxDJAiTZHaGdohQ+Jpw TUcNW8z96vfvYxykICr3D4VjDk7rwky27KMww1MrtK01zrf+dkqP9FQOVfeKxPtW4tL1 7wiQ== X-Gm-Message-State: AHPjjUhA8A03OkdEX0P1nwe4fai9wIU8v6r6l83X2VkQaXbjIW/FUlP6 nI0hT7YdY2FRJA== X-Google-Smtp-Source: AOwi7QByortpVJE2cLMGshNxV5TqEe8yNYEzJ7ENcQehIq9gJT/UmwxQjWduLkQ3MVT2xq3ZRRR+eg== X-Received: by 10.46.20.84 with SMTP id 20mr544937lju.125.1505312122022; Wed, 13 Sep 2017 07:15:22 -0700 (PDT) From: Jan Dakinevich To: Greg Kurz , qemu-devel@nongnu.org Date: Wed, 13 Sep 2017 17:16:43 +0300 Message-Id: <1505312203-6319-1-git-send-email-jan.dakinevich@gmail.com> X-Mailer: git-send-email 2.1.4 X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:4010:c07::243 Subject: [Qemu-devel] [PATCH] virtio-9p: don't break device on marshaling fail X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Jan Dakinevich , "Aneesh Kumar K.V" , "Michael S. Tsirkin" Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Fix regression from commit 8d37de41cab145cbba250a8f1f1372b0a5cdf26f. The situation when pdu_marshal returns an error should be considered valid. At least `v9fs_do_readdir_with_stat' relies on that to place in responce buffer as much data as can fit. Signed-off-by: Jan Dakinevich --- hw/9pfs/virtio-9p-device.c | 19 ++----------------- 1 file changed, 2 insertions(+), 17 deletions(-) diff --git a/hw/9pfs/virtio-9p-device.c b/hw/9pfs/virtio-9p-device.c index 62650b0..c3e5935 100644 --- a/hw/9pfs/virtio-9p-device.c +++ b/hw/9pfs/virtio-9p-device.c @@ -146,16 +146,8 @@ static ssize_t virtio_pdu_vmarshal(V9fsPDU *pdu, size_= t offset, V9fsState *s =3D pdu->s; V9fsVirtioState *v =3D container_of(s, V9fsVirtioState, state); VirtQueueElement *elem =3D v->elems[pdu->idx]; - ssize_t ret; =20 - ret =3D v9fs_iov_vmarshal(elem->in_sg, elem->in_num, offset, 1, fmt, a= p); - if (ret < 0) { - VirtIODevice *vdev =3D VIRTIO_DEVICE(v); - - virtio_error(vdev, "Failed to encode VirtFS reply type %d", - pdu->id + 1); - } - return ret; + return v9fs_iov_vmarshal(elem->in_sg, elem->in_num, offset, 1, fmt, ap= ); } =20 static ssize_t virtio_pdu_vunmarshal(V9fsPDU *pdu, size_t offset, @@ -164,15 +156,8 @@ static ssize_t virtio_pdu_vunmarshal(V9fsPDU *pdu, siz= e_t offset, V9fsState *s =3D pdu->s; V9fsVirtioState *v =3D container_of(s, V9fsVirtioState, state); VirtQueueElement *elem =3D v->elems[pdu->idx]; - ssize_t ret; =20 - ret =3D v9fs_iov_vunmarshal(elem->out_sg, elem->out_num, offset, 1, fm= t, ap); - if (ret < 0) { - VirtIODevice *vdev =3D VIRTIO_DEVICE(v); - - virtio_error(vdev, "Failed to decode VirtFS request type %d", pdu-= >id); - } - return ret; + return v9fs_iov_vunmarshal(elem->out_sg, elem->out_num, offset, 1, fmt= , ap); } =20 static void virtio_init_in_iov_from_pdu(V9fsPDU *pdu, struct iovec **piov, --=20 2.1.4