From nobody Tue May 7 07:28:42 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 63.128.21.124 as permitted sender) client-ip=63.128.21.124; envelope-from=philmd@redhat.com; helo=us-smtp-delivery-124.mimecast.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 63.128.21.124 as permitted sender) smtp.mailfrom=philmd@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1610989401; cv=none; d=zohomail.com; s=zohoarc; b=Vmb/Cq+FWsG+gDmfVHcS6hoD+edTXG46Gmdi0h3xyV5IRaH3kHg2pDPfw2rAl4GnlgW0y5QXlP/hdB76zdlj2o0x8qj0esdMkDFcE5KVYv9dyU+rPDka5uz/7HEjPL9+uQ4MKtb5xmg/ZUBg1QQqi+VhL7lPixnh//jM6PpGPFc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1610989401; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:MIME-Version:Message-ID:References:Subject:To; bh=r9vxH12UtT37TvoTk3+m2cGKS39O2xLX/8NiKGvhU6w=; b=AMUYCpvDeguEWrDSNJRpLxbNmuGBmmDBruCb3dUoFRGqxDdv/qmGZJbp12QTDC2zxJBPjpY2Sp3+96eZ1cNZIMT7J45f705cL08kqFviH2AIIswsk0rbLcx+ECyunftZEeXeZoHG+QKujqbgwkDnFjVlEKmYO2f83jQnQAEOY5I= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 63.128.21.124 as permitted sender) smtp.mailfrom=philmd@redhat.com; dmarc=pass header.from= (p=none dis=none) header.from= Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [63.128.21.124]) by mx.zohomail.com with SMTPS id 1610989401356696.4608980281712; Mon, 18 Jan 2021 09:03:21 -0800 (PST) Received: from mail-ej1-f69.google.com (mail-ej1-f69.google.com [209.85.218.69]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-430-L6d5fW4ENRah8BNjyJOwAA-1; Mon, 18 Jan 2021 12:03:17 -0500 Received: by mail-ej1-f69.google.com with SMTP id n18so635550ejc.11 for ; Mon, 18 Jan 2021 09:03:17 -0800 (PST) Return-Path: Return-Path: Received: from x1w.redhat.com (13.red-83-57-169.dynamicip.rima-tde.net. [83.57.169.13]) by smtp.gmail.com with ESMTPSA id u17sm11044509edr.0.2021.01.18.09.03.15 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 18 Jan 2021 09:03:15 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1610989400; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=r9vxH12UtT37TvoTk3+m2cGKS39O2xLX/8NiKGvhU6w=; b=B3WVxOo45HHA22AILAj2Q+YrxGpyE2m6iuxUUaZ8RZ1t3rc5BR7FHWa0HOWuMyyoXffB6A DDK5bmJ3Ln8EApqU0nNYuVy3NAwZSJt0sPr0fYicq16wwbtWOT7Ml7GVd3+yQ1IedgsRaL /O0P4QOAXYhWXQPtVx0PnBoXif5RmaY= X-MC-Unique: L6d5fW4ENRah8BNjyJOwAA-1 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:in-reply-to :references:mime-version:content-transfer-encoding; bh=r9vxH12UtT37TvoTk3+m2cGKS39O2xLX/8NiKGvhU6w=; b=hlIUrTIX5zrsNrYk6anuvO2ORZk5fpAvayBf4eiqn0KDUmPdMU1qPEmGwmIGPZ78ls ak2RAtxSlVZU/qmVXzPHdJCc/7R+TxkVBIyVYre+D8eZxuweVj6Kr+EaUxD+MCZllBe1 WxF+FpFo+r4nRT7Rdc1A5obrNZdY00IMdcCLJ9WjgrJXr4ytaVrwTXEvh+7ITKfK/Wx2 aXb/qyPdoE8oKmATh6Y2tu18VvGTg9zij3OZj61qlXerWPG1ydanSWYI7xBR9Bhpka2X aaJ7rsoiFPXHBKSaVOw+G+xrwFDOrtzqbiLdqSYo5fMhwWfFfglD4fc0TTQGn0SzueMk KH9Q== X-Gm-Message-State: AOAM533SwlhDrSQWuZFDJz3Oags1CNOts8W9/DN6KG4FSpmgTn88svn1 K8YYEHIfIZr3+v4R7usoDmM5bYlRcMGCiKorBGOyrlnSCQYHj7jnwzpGyFO/BUBp83pnFtRe0au cyO4d8I1PRrdpoQ== X-Received: by 2002:a05:6402:d05:: with SMTP id eb5mr307984edb.143.1610989396374; Mon, 18 Jan 2021 09:03:16 -0800 (PST) X-Google-Smtp-Source: ABdhPJxMZc2WZRI+2D8TyJbL4IdGeO7PKWQq+ko1kE/C+yj9wp7isYgNp85lrU60/P+diS0Zuuz1FQ== X-Received: by 2002:a05:6402:d05:: with SMTP id eb5mr307974edb.143.1610989396257; Mon, 18 Jan 2021 09:03:16 -0800 (PST) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Gerd Hoffmann , qemu-block@nongnu.org, Paolo Bonzini , Fam Zheng , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [RFC PATCH 1/2] scsi/utils: Add INVALID_PARAM_VALUE sense code definition Date: Mon, 18 Jan 2021 18:03:07 +0100 Message-Id: <20210118170308.282442-2-philmd@redhat.com> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20210118170308.282442-1-philmd@redhat.com> References: <20210118170308.282442-1-philmd@redhat.com> MIME-Version: 1.0 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=philmd@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @redhat.com) Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Eric Blake --- include/scsi/utils.h | 2 ++ scsi/utils.c | 5 +++++ 2 files changed, 7 insertions(+) diff --git a/include/scsi/utils.h b/include/scsi/utils.h index fbc55882799..096489c6cd1 100644 --- a/include/scsi/utils.h +++ b/include/scsi/utils.h @@ -57,6 +57,8 @@ extern const struct SCSISense sense_code_LBA_OUT_OF_RANGE; extern const struct SCSISense sense_code_INVALID_FIELD; /* Illegal request, Invalid field in parameter list */ extern const struct SCSISense sense_code_INVALID_PARAM; +/* Illegal request, Invalid value in parameter list */ +extern const struct SCSISense sense_code_INVALID_PARAM_VALUE; /* Illegal request, Parameter list length error */ extern const struct SCSISense sense_code_INVALID_PARAM_LEN; /* Illegal request, LUN not supported */ diff --git a/scsi/utils.c b/scsi/utils.c index b37c2830148..793c3a6b9c9 100644 --- a/scsi/utils.c +++ b/scsi/utils.c @@ -197,6 +197,11 @@ const struct SCSISense sense_code_INVALID_PARAM =3D { .key =3D ILLEGAL_REQUEST, .asc =3D 0x26, .ascq =3D 0x00 }; =20 +/* Illegal request, Invalid value in parameter list */ +const struct SCSISense sense_code_INVALID_PARAM_VALUE =3D { + .key =3D ILLEGAL_REQUEST, .asc =3D 0x26, .ascq =3D 0x01 +}; + /* Illegal request, Parameter list length error */ const struct SCSISense sense_code_INVALID_PARAM_LEN =3D { .key =3D ILLEGAL_REQUEST, .asc =3D 0x1a, .ascq =3D 0x00 --=20 2.26.2 From nobody Tue May 7 07:28:42 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 216.205.24.124 as permitted sender) client-ip=216.205.24.124; envelope-from=philmd@redhat.com; helo=us-smtp-delivery-124.mimecast.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 216.205.24.124 as permitted sender) smtp.mailfrom=philmd@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1610989405; cv=none; d=zohomail.com; s=zohoarc; b=RUIZU8Rw0LOaA0pmMpLRfP0hJyGpPkx3o0dkPes7cXXv+hfMtVbmU94JETR52ZySYmL1tT2eyjA8GB4+XOljW1nGka8CK2BQSX9g54pf+7HcU44KlEL8d4HBu9RVTEu3axRQJwiv4nVSdTfP2NgHhljVsGlhCdDw35UsyQK5tWI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1610989405; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:MIME-Version:Message-ID:References:Subject:To; bh=BjJm1HCMLbbZqIfMy+Wy6KgF85jtYSbpI+EcijPWuf4=; b=GKis6U9es4kK2WT0xS8OT+6DkERp4gdhI/P4IWJLLzECal6J2zCjIjBtgpDaQxZsRkzjMYh3t/ml0m4UfUAIU3IGTHmwJMj70y0ckMMcWDjvG1p49JBNFeefN7oIcB0fayxOH7X7Cir62lCHIRgm2MnM7Y7Hl0Z+EI50ut8DP2k= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 216.205.24.124 as permitted sender) smtp.mailfrom=philmd@redhat.com; dmarc=pass header.from= (p=none dis=none) header.from= Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [216.205.24.124]) by mx.zohomail.com with SMTPS id 16109894058211003.1369905835152; Mon, 18 Jan 2021 09:03:25 -0800 (PST) Received: from mail-ej1-f70.google.com (mail-ej1-f70.google.com [209.85.218.70]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-5-tA3S4-LJPuS88w1uBWhtLQ-1; Mon, 18 Jan 2021 12:03:23 -0500 Received: by mail-ej1-f70.google.com with SMTP id p1so5370317ejo.4 for ; Mon, 18 Jan 2021 09:03:22 -0800 (PST) Return-Path: Return-Path: Received: from x1w.redhat.com (13.red-83-57-169.dynamicip.rima-tde.net. [83.57.169.13]) by smtp.gmail.com with ESMTPSA id e21sm11024956edv.96.2021.01.18.09.03.20 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 18 Jan 2021 09:03:20 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1610989404; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=BjJm1HCMLbbZqIfMy+Wy6KgF85jtYSbpI+EcijPWuf4=; b=SPpMpyWlhKCSBoSAeLWVLjECQ9BhdX/OPYZJmcyzOvAH+HL02+Z3b+dEGpeguhPorLhxv4 BPSmOQimlj/APrFbpsY1H6Wb2cB2J8OeBd7nzoJs79/E4fpv8iMOC5anHOdEdcpalsGNSu vmaggeo0YRwzNxrUMNe/2ldjOKVjVDw= X-MC-Unique: tA3S4-LJPuS88w1uBWhtLQ-1 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:in-reply-to :references:mime-version:content-transfer-encoding; bh=BjJm1HCMLbbZqIfMy+Wy6KgF85jtYSbpI+EcijPWuf4=; b=asP2x4oP8vhtoPwOrL+S2IIuvmNCCAinz4wAGn/9kI3K+GMM9/zM/0GPLhXEU7Zfv7 dlchYY+x+yQvJpgWJ/0qlba8s3UFjm2F6nekQt3Vz3L5wh5YmZRIvpc5fNcH/YlpDPIT ekcTpKiMXyTc1vF5EVP3JdpoWcA76VDSyAKC6QyxbHaNzekTovXMRSZfd3RZKlJ54IPq 0ojHyE80ZGYjs08gs+ahuzSIp5Yr/GERBQe4Gb8eDDpubyVKqNG65fIybty9yc/ou/qk NvmSdUQVrs7GYISjzbZHHvqpLRfQ0cchH8QbwxiOzCknkdRyznYZd0sGvUqKosLY0Nzx SGSQ== X-Gm-Message-State: AOAM531B70wU1ToRL+ny5UgwHoMKTFaPEr4DUAFYbILkYZ/GDVT1l9do F3k/voOUxuxi/ULXUxwAmBU4+WZ/kepB25sgEdHlPfBY1y2rGV4KrlFu74uaPTVysFBRLZEO3z9 jDaIkcADusCIB3Q== X-Received: by 2002:a17:906:9616:: with SMTP id s22mr432762ejx.270.1610989401886; Mon, 18 Jan 2021 09:03:21 -0800 (PST) X-Google-Smtp-Source: ABdhPJwmkEnjjom0gmHD4h8sReDYhMDCrw2wBg3N/Vjpf0rxYpVT15NH56lTF0ZGrP+HH/3MrlXNBQ== X-Received: by 2002:a17:906:9616:: with SMTP id s22mr432740ejx.270.1610989401664; Mon, 18 Jan 2021 09:03:21 -0800 (PST) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Gerd Hoffmann , qemu-block@nongnu.org, Paolo Bonzini , Fam Zheng , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Daniele Buono , Ed Maste , Han Han , =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= , "Gustavo A . R . Silva" Subject: [RFC PATCH 2/2] hw/usb/dev-uas: Report command additional adb length as unsupported Date: Mon, 18 Jan 2021 18:03:08 +0100 Message-Id: <20210118170308.282442-3-philmd@redhat.com> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20210118170308.282442-1-philmd@redhat.com> References: <20210118170308.282442-1-philmd@redhat.com> MIME-Version: 1.0 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=philmd@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @redhat.com) We are not ready to handle additional CDB data. If a guest send a packet with such additional data, report the command parameter as not supported. We can then explicit there is nothing in this additional buffer, by fixing its size to zero. This fixes an error when building with Clang 11: usb/dev-uas.c:157:31: error: field 'status' with variable sized type 'uas= _iu' not at the end of a struct or class is a GNU extension [-Werror,-Wgnu-= variable-sized-type-not-at-end] uas_iu status; ^ Reported-by: Daniele Buono Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reported-by: Ed Maste Reported-by: Han Han Reviewed-by: Eric Blake --- Cc: Ed Maste Cc: Han Han Cc: Marc-Andr=C3=A9 Lureau Cc: Paolo Bonzini Cc: Gustavo A. R. Silva --- hw/usb/dev-uas.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/hw/usb/dev-uas.c b/hw/usb/dev-uas.c index cec071d96c4..b6434ad4b9c 100644 --- a/hw/usb/dev-uas.c +++ b/hw/usb/dev-uas.c @@ -16,6 +16,7 @@ #include "qemu/error-report.h" #include "qemu/main-loop.h" #include "qemu/module.h" +#include "qemu/log.h" =20 #include "hw/usb.h" #include "migration/vmstate.h" @@ -70,7 +71,7 @@ typedef struct { uint8_t reserved_2; uint64_t lun; uint8_t cdb[16]; - uint8_t add_cdb[]; + uint8_t add_cdb[0]; /* not supported by QEMU */ } QEMU_PACKED uas_iu_command; =20 typedef struct { @@ -700,6 +701,11 @@ static void usb_uas_command(UASDevice *uas, uas_iu *iu) uint32_t len; uint16_t tag =3D be16_to_cpu(iu->hdr.tag); =20 + if (iu->command.add_cdb_length > 0) { + qemu_log_mask(LOG_UNIMP, "additional adb length not yet supported\= n"); + goto unsupported_len; + } + if (uas_using_streams(uas) && tag > UAS_MAX_STREAMS) { goto invalid_tag; } @@ -735,6 +741,10 @@ static void usb_uas_command(UASDevice *uas, uas_iu *iu) } return; =20 +unsupported_len: + usb_uas_queue_fake_sense(uas, tag, sense_code_INVALID_PARAM_VALUE); + return; + invalid_tag: usb_uas_queue_fake_sense(uas, tag, sense_code_INVALID_TAG); return; --=20 2.26.2